{"$schema":"https://json.schemastore.org/sarif-2.1.0.json","version":"2.1.0","runs":[{"tool":{"driver":{"name":"codehealth","informationUri":"https://codehealth.canine.dev","rules":[{"id":"D1","name":"Cyclomatic Complexity","shortDescription":{"text":"Cyclomatic Complexity"},"helpUri":"https://codehealth.canine.dev/dimensions/D1"},{"id":"D2","name":"Cognitive Complexity","shortDescription":{"text":"Cognitive Complexity"},"helpUri":"https://codehealth.canine.dev/dimensions/D2"},{"id":"D3","name":"God Classes","shortDescription":{"text":"God Classes"},"helpUri":"https://codehealth.canine.dev/dimensions/D3"},{"id":"D4","name":"Code Duplication","shortDescription":{"text":"Code Duplication"},"helpUri":"https://codehealth.canine.dev/dimensions/D4"},{"id":"D5","name":"Coupling","shortDescription":{"text":"Coupling"},"helpUri":"https://codehealth.canine.dev/dimensions/D5"},{"id":"D9","name":"Test Distribution","shortDescription":{"text":"Test Distribution"},"helpUri":"https://codehealth.canine.dev/dimensions/D9"},{"id":"D13","name":"Secret Scanning","shortDescription":{"text":"Secret Scanning"},"helpUri":"https://codehealth.canine.dev/dimensions/D13","relationships":[{"target":{"id":"CWE-798","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},"kinds":["relevant"]},{"target":{"id":"CWE-259","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},"kinds":["relevant"]}],"properties":{"cwe":["CWE-798","CWE-259"]}},{"id":"D14","name":"License Compliance","shortDescription":{"text":"License Compliance"},"helpUri":"https://codehealth.canine.dev/dimensions/D14"},{"id":"D15","name":"Churn \u00D7 Complexity Hotspots","shortDescription":{"text":"Churn \u00D7 Complexity Hotspots"},"helpUri":"https://codehealth.canine.dev/dimensions/D15"},{"id":"D16","name":"Bus Factor","shortDescription":{"text":"Bus Factor"},"helpUri":"https://codehealth.canine.dev/dimensions/D16"},{"id":"D19","name":"Documentation Quality","shortDescription":{"text":"Documentation Quality"},"helpUri":"https://codehealth.canine.dev/dimensions/D19"},{"id":"D20","name":"ADR Quality","shortDescription":{"text":"ADR Quality"},"helpUri":"https://codehealth.canine.dev/dimensions/D20"},{"id":"D21","name":"Naming Consistency","shortDescription":{"text":"Naming Consistency"},"helpUri":"https://codehealth.canine.dev/dimensions/D21"},{"id":"D28","name":"Secrets (history)","shortDescription":{"text":"Secrets (history)"},"helpUri":"https://codehealth.canine.dev/dimensions/D28","relationships":[{"target":{"id":"CWE-798","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},"kinds":["relevant"]},{"target":{"id":"CWE-259","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},"kinds":["relevant"]}],"properties":{"cwe":["CWE-798","CWE-259"]}},{"id":"D29","name":"Static Analysis (SAST)","shortDescription":{"text":"Static Analysis (SAST)"},"helpUri":"https://codehealth.canine.dev/dimensions/D29","relationships":[{"target":{"id":"CWE-79","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},"kinds":["relevant"]},{"target":{"id":"CWE-89","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},"kinds":["relevant"]},{"target":{"id":"CWE-78","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},"kinds":["relevant"]},{"target":{"id":"CWE-94","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},"kinds":["relevant"]},{"target":{"id":"CWE-77","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},"kinds":["relevant"]}],"properties":{"cwe":["CWE-79","CWE-89","CWE-78","CWE-94","CWE-77"]}},{"id":"D30","name":"Dependency Vulnerabilities","shortDescription":{"text":"Dependency Vulnerabilities"},"helpUri":"https://codehealth.canine.dev/dimensions/D30","relationships":[{"target":{"id":"CWE-1395","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},"kinds":["relevant"]},{"target":{"id":"CWE-937","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},"kinds":["relevant"]}],"properties":{"cwe":["CWE-1395","CWE-937"]}},{"id":"D31","name":"IaC \u0026 Container Security","shortDescription":{"text":"IaC \u0026 Container Security"},"helpUri":"https://codehealth.canine.dev/dimensions/D31","relationships":[{"target":{"id":"CWE-1032","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},"kinds":["relevant"]},{"target":{"id":"CWE-732","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},"kinds":["relevant"]},{"target":{"id":"CWE-16","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},"kinds":["relevant"]}],"properties":{"cwe":["CWE-1032","CWE-732","CWE-16"]}},{"id":"D32","name":"Data Compliance (PII/GDPR)","shortDescription":{"text":"Data Compliance (PII/GDPR)"},"helpUri":"https://codehealth.canine.dev/dimensions/D32","relationships":[{"target":{"id":"CWE-359","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},"kinds":["relevant"]},{"target":{"id":"CWE-312","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},"kinds":["relevant"]},{"target":{"id":"CWE-200","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},"kinds":["relevant"]}],"properties":{"cwe":["CWE-359","CWE-312","CWE-200"]}},{"id":"D33","name":"JS/npm Dependency Vulnerabilities","shortDescription":{"text":"JS/npm Dependency Vulnerabilities"},"helpUri":"https://codehealth.canine.dev/dimensions/D33","relationships":[{"target":{"id":"CWE-1395","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},"kinds":["relevant"]},{"target":{"id":"CWE-937","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},"kinds":["relevant"]}],"properties":{"cwe":["CWE-1395","CWE-937"]}},{"id":"D34","name":"Knowledge Freshness","shortDescription":{"text":"Knowledge Freshness"},"helpUri":"https://codehealth.canine.dev/dimensions/D34"},{"id":"D35","name":"Change Coupling","shortDescription":{"text":"Change Coupling"},"helpUri":"https://codehealth.canine.dev/dimensions/D35"},{"id":"D36","name":"Supply-chain Provenance \u0026 Signing","shortDescription":{"text":"Supply-chain Provenance \u0026 Signing"},"helpUri":"https://codehealth.canine.dev/dimensions/D36","relationships":[{"target":{"id":"CWE-1357","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},"kinds":["relevant"]},{"target":{"id":"CWE-494","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},"kinds":["relevant"]}],"properties":{"cwe":["CWE-1357","CWE-494"]}},{"id":"D37","name":"Vulnerability-disclosure Policy","shortDescription":{"text":"Vulnerability-disclosure Policy"},"helpUri":"https://codehealth.canine.dev/dimensions/D37","relationships":[{"target":{"id":"CWE-1059","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},"kinds":["relevant"]}],"properties":{"cwe":["CWE-1059"]}},{"id":"D38","name":"OSV Dependency Vulnerabilities","shortDescription":{"text":"OSV Dependency Vulnerabilities"},"helpUri":"https://codehealth.canine.dev/dimensions/D38","relationships":[{"target":{"id":"CWE-1395","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},"kinds":["relevant"]},{"target":{"id":"CWE-937","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},"kinds":["relevant"]}],"properties":{"cwe":["CWE-1395","CWE-937"]}}]}},"results":[{"ruleId":"D1","level":"warning","message":{"text":"doltWorkflowManager.updateExistingWorkflow (cyclomatic 193): doltWorkflowManager.updateExistingWorkflow has cyclomatic complexity 193 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/env/actions/dolt_ci/workflow_manager.go"},"region":{"startLine":1055}}}],"partialFingerprints":{"codehealthFindingId/v1":"4ae9a9e2357dfe0ba2878aaed47cbe8ab69ef3b7256af1bb48229b8f47ddaaef"}},{"ruleId":"D1","level":"warning","message":{"text":"Database.getTableInsensitiveWithRoot (cyclomatic 191): Database.getTableInsensitiveWithRoot has cyclomatic complexity 191 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/database.go"},"region":{"startLine":404}}}],"partialFingerprints":{"codehealthFindingId/v1":"1ef928b9d94fe9069e80f9530a3150fb17c673d416024aa37c164fea3d9327bd"}},{"ruleId":"D1","level":"warning","message":{"text":"sqlserver.ConfigureServices (cyclomatic 89): sqlserver.ConfigureServices has cyclomatic complexity 89 (threshold 15). Most of this is not in the body itself: 2 of the 89 points are its own statements and the rest belongs to 29 function literals inside it that branch (lines 651, 432, 507, \u2026). The decisions are inside those literals, which nothing outside this body can call, review or test on its own, so splitting the enclosing body is not the move available here. To reduce it, lift the literals\u0027 work into a named function or method at the enclosing scope and have each literal call it, then reduce whichever part then reads as the largest."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/sqlserver/server.go"},"region":{"startLine":125}}}],"partialFingerprints":{"codehealthFindingId/v1":"24537c44daf2de4b2803a20a06b66440879bcc6d4d956e79efbc6d30ee97aace"}},{"ruleId":"D1","level":"warning","message":{"text":"tree.PutField (cyclomatic 75): tree.PutField has cyclomatic complexity 75 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/prolly/tree/prolly_fields.go"},"region":{"startLine":419}}}],"partialFingerprints":{"codehealthFindingId/v1":"2f1b07833b66091f593c6f4ac464f7f4a421ac3b1b60806a7fe4331622640858"}},{"ruleId":"D1","level":"warning","message":{"text":"merge.computeProllyTreePatches (cyclomatic 64): merge.computeProllyTreePatches has cyclomatic complexity 64 (threshold 15). Of this number, 59 points are the body\u0027s own statements and 5 belong to one function literal inside it that branches. To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/merge/merge_prolly_rows.go"},"region":{"startLine":149}}}],"partialFingerprints":{"codehealthFindingId/v1":"d90006a0e8d34efe967b47b418d391b854424dcad8f564bb23f7a9419839212c"}},{"ruleId":"D1","level":"warning","message":{"text":"main.runMain (cyclomatic 61): main.runMain has cyclomatic complexity 61 (threshold 15). Of this number, 58 points are the body\u0027s own statements and 3 belong to 2 function literals inside it that branch. To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/dolt.go"},"region":{"startLine":229}}}],"partialFingerprints":{"codehealthFindingId/v1":"745efc03e8ae662cccdb730f344437a2e0ae195ec164920f2baa04d67a16d401"}},{"ruleId":"D1","level":"warning","message":{"text":"tree.SendPatches (cyclomatic 59): tree.SendPatches has cyclomatic complexity 59 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/prolly/tree/merge.go"},"region":{"startLine":166}}}],"partialFingerprints":{"codehealthFindingId/v1":"9212c067335749689a50390b3994dfe39145e1fe7fbad19c54094998530fc6b0"}},{"ruleId":"D1","level":"warning","message":{"text":"SerialMessage.WalkAddrs (cyclomatic 57): SerialMessage.WalkAddrs has cyclomatic complexity 57 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/types/serial_message.go"},"region":{"startLine":590}}}],"partialFingerprints":{"codehealthFindingId/v1":"ad54d25a83e335248d267dc1f243e3c161102b1add843ee7e82eecfb8f90ee64"}},{"ruleId":"D1","level":"warning","message":{"text":"mergeJoinKvIter.Next (cyclomatic 56): mergeJoinKvIter.Next has cyclomatic complexity 56 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/kvexec/merge_join.go"},"region":{"startLine":104}}}],"partialFingerprints":{"codehealthFindingId/v1":"87c2a6e97ceea5db542eb8381cd833f464822c706db6a0b8a8a51bd0cb6b3ba9"}},{"ruleId":"D1","level":"warning","message":{"text":"typeinfo.FromSqlType (cyclomatic 55): typeinfo.FromSqlType has cyclomatic complexity 55 (threshold 15). To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Where every arm is uniform \u2014 the same kind of value, with no behaviour of its own \u2014 a table keyed by the case is the shorter form; wherever the arms carry different data or different behaviour, keep them as cases, because collapsing those trades an explicit, reviewable set of cases for nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/schema/typeinfo/typeinfo.go"},"region":{"startLine":65}}}],"partialFingerprints":{"codehealthFindingId/v1":"e052013192f25153acff17a7bf5eb8b62c35c1ea1d7ec0c820f90f73115da1dc"}},{"ruleId":"D1","level":"warning","message":{"text":"PullCmd.Exec (cyclomatic 54): PullCmd.Exec has cyclomatic complexity 54 (threshold 15). Of this number, 26 points are the body\u0027s own statements and 28 belong to one function literal inside it that branches. To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/pull.go"},"region":{"startLine":79}}}],"partialFingerprints":{"codehealthFindingId/v1":"b1585c7f4e379d0262d85509ed34d9cd79f148bac8305bb43ab9eb4ac8cd16a0"}},{"ruleId":"D1","level":"warning","message":{"text":"doltWorkflowManager.createWorkflow (cyclomatic 54): doltWorkflowManager.createWorkflow has cyclomatic complexity 54 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/env/actions/dolt_ci/workflow_manager.go"},"region":{"startLine":1937}}}],"partialFingerprints":{"codehealthFindingId/v1":"6870ac0193de39288e3862286328d537ef27f79eac492827a56c3299f97aacf7"}},{"ruleId":"D1","level":"warning","message":{"text":"tree.GetField (cyclomatic 54): tree.GetField has cyclomatic complexity 54 (threshold 15). To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Where every arm is uniform \u2014 the same kind of value, with no behaviour of its own \u2014 a table keyed by the case is the shorter form; wherever the arms carry different data or different behaviour, keep them as cases, because collapsing those trades an explicit, reviewable set of cases for nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/prolly/tree/prolly_fields.go"},"region":{"startLine":42}}}],"partialFingerprints":{"codehealthFindingId/v1":"d28c40d4dfef24f84f8244dd16cbed5b619ed0193ea603acb3290c02eca107ef"}},{"ruleId":"D1","level":"warning","message":{"text":"dprocedures.doDoltPull (cyclomatic 53): dprocedures.doDoltPull has cyclomatic complexity 53 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dprocedures/dolt_pull.go"},"region":{"startLine":73}}}],"partialFingerprints":{"codehealthFindingId/v1":"e4d32c4eed9ae772c932833d2c7d9108a9261cd2c83ae729310a97b6655de8fa"}},{"ruleId":"D1","level":"warning","message":{"text":"IndexedJsonDiffer.Next (cyclomatic 52): IndexedJsonDiffer.Next has cyclomatic complexity 52 (threshold 15). Of this number, 48 points are the body\u0027s own statements and 4 belong to 2 function literals inside it that branch. To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/prolly/tree/indexed_json_diff.go"},"region":{"startLine":102}}}],"partialFingerprints":{"codehealthFindingId/v1":"b88ec9f2079b864aa0c828acd4c4734ab768a4f20d593e18dad3f10273c65577"}},{"ruleId":"D1","level":"warning","message":{"text":"dprocedures.doDoltCheckout (cyclomatic 48): dprocedures.doDoltCheckout has cyclomatic complexity 48 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dprocedures/dolt_checkout.go"},"region":{"startLine":63}}}],"partialFingerprints":{"codehealthFindingId/v1":"c78fba01dfe7ab77b9c5c9a522145501008516bdaaeb6219e4a2181d9336a055"}},{"ruleId":"D1","level":"warning","message":{"text":"merge.MergeRoots (cyclomatic 47): merge.MergeRoots has cyclomatic complexity 47 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/merge/merge.go"},"region":{"startLine":169}}}],"partialFingerprints":{"codehealthFindingId/v1":"b60083873bced135376484c47fe41a7664a0e14da8d4d019d231bc7b4a35b337"}},{"ruleId":"D1","level":"warning","message":{"text":"nbs.snappyFuzzyDecode (cyclomatic 46): nbs.snappyFuzzyDecode has cyclomatic complexity 46 (threshold 15). Of this number, 39 points are the body\u0027s own statements and 7 belong to one function literal inside it that branches. To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/nbs/journal_inspect.go"},"region":{"startLine":387}}}],"partialFingerprints":{"codehealthFindingId/v1":"0cc4d24776f0110c85aa6ae144e1c95acdc04627ab0be1b9f80f4eacb7b49c91"}},{"ruleId":"D1","level":"warning","message":{"text":"commands.printEverything (cyclomatic 45): commands.printEverything has cyclomatic complexity 45 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/status.go"},"region":{"startLine":463}}}],"partialFingerprints":{"codehealthFindingId/v1":"7059c053397f71a75a52e33df68108878469f06dec9ed1d19915e574b2fa09ac"}},{"ruleId":"D1","level":"warning","message":{"text":"dprocedures.doDoltCommit (cyclomatic 43): dprocedures.doDoltCommit has cyclomatic complexity 43 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dprocedures/dolt_commit.go"},"region":{"startLine":63}}}],"partialFingerprints":{"codehealthFindingId/v1":"9cc881f266c81f8bd895510d3e3e2e6266e2a74b5e529489751ab3f74db2a89a"}},{"ruleId":"D1","level":"warning","message":{"text":"dprocedures.continueRebase (cyclomatic 43): dprocedures.continueRebase has cyclomatic complexity 43 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dprocedures/dolt_rebase.go"},"region":{"startLine":657}}}],"partialFingerprints":{"codehealthFindingId/v1":"4233ca93ba05b6ae78cb8da3948517553622faa714d4e440a595b51a76917893"}},{"ruleId":"D1","level":"warning","message":{"text":"ThreeWayDiffer.Next (cyclomatic 43): ThreeWayDiffer.Next has cyclomatic complexity 43 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/prolly/tree/three_way_differ.go"},"region":{"startLine":105}}}],"partialFingerprints":{"codehealthFindingId/v1":"28d68ae559e77378e6b6bc7fdf7da6b165ddbba00a43d249a58f29dc37816a9c"}},{"ruleId":"D1","level":"warning","message":{"text":"engine.NewSqlEngine (cyclomatic 42): engine.NewSqlEngine has cyclomatic complexity 42 (threshold 15). Of this number, 39 points are the body\u0027s own statements and 3 belong to 2 function literals inside it that branch. To reduce it, split the body: these branches sit side by side rather than nested inside one another, so extracting each one on its own would leave a function per branch. Group the statements between the checks into named steps and move each step into its own function, so the body reads as a short sequence of named stages."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/engine/sqlengine.go"},"region":{"startLine":109}}}],"partialFingerprints":{"codehealthFindingId/v1":"09da557bc0e5d111fd1a752afa3170661fd7c07ec8d24aa44c23d3706c45b5b1"}},{"ruleId":"D1","level":"warning","message":{"text":"cherry_pick.cherryPick (cyclomatic 42): cherry_pick.cherryPick has cyclomatic complexity 42 (threshold 15). To reduce it, split the body: these branches sit side by side rather than nested inside one another, so extracting each one on its own would leave a function per branch. Group the statements between the checks into named steps and move each step into its own function, so the body reads as a short sequence of named stages."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/cherry_pick/cherry_pick.go"},"region":{"startLine":376}}}],"partialFingerprints":{"codehealthFindingId/v1":"533430d644166c15bfa219147dd54447cc3808250c505115085afcd494fb11f6"}},{"ruleId":"D1","level":"warning","message":{"text":"commands.PrintDiffsNotStaged (cyclomatic 41): commands.PrintDiffsNotStaged has cyclomatic complexity 41 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/commit.go"},"region":{"startLine":455}}}],"partialFingerprints":{"codehealthFindingId/v1":"b10d4f8408ec579d54b44dec1951f1f89f6cb9a052aa8b878ba51c7e51263525"}},{"ruleId":"D1","level":"warning","message":{"text":"dtablefunctions.expectSingleValue (cyclomatic 41): dtablefunctions.expectSingleValue has cyclomatic complexity 41 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dtablefunctions/dolt_test_run.go"},"region":{"startLine":476}}}],"partialFingerprints":{"codehealthFindingId/v1":"e1b4fc8c7363c79a7ad7d374186ecb4fef99d1b64968b8df0f9aec98cd59c0ad"}},{"ruleId":"D1","level":"warning","message":{"text":"valueDecoder.readValue (cyclomatic 40): valueDecoder.readValue has cyclomatic complexity 40 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/types/value_decoder.go"},"region":{"startLine":121}}}],"partialFingerprints":{"codehealthFindingId/v1":"3a6725e67570122a41774e4d1065c76224485198d93ee4d0fdf218d25d50b8d9"}},{"ruleId":"D1","level":"warning","message":{"text":"commands.diffRows (cyclomatic 39): commands.diffRows has cyclomatic complexity 39 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/diff.go"},"region":{"startLine":1568}}}],"partialFingerprints":{"codehealthFindingId/v1":"96683d0e7c31e526bcf9a22a5fc3a6275000547d1aa2c1a5846160bc60a0496c"}},{"ruleId":"D1","level":"warning","message":{"text":"main.buildLateBinder (cyclomatic 39): main.buildLateBinder has cyclomatic complexity 39 (threshold 15). Of this number, 33 points are the body\u0027s own statements and 6 belong to 2 function literals inside it that branch. To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/dolt.go"},"region":{"startLine":636}}}],"partialFingerprints":{"codehealthFindingId/v1":"0710c74857dd8fcc5b5db6a686e81ab39316b32a426b7fc315a3cf5564147db5"}},{"ruleId":"D1","level":"warning","message":{"text":"RootMerger.MaybeShortCircuit (cyclomatic 39): RootMerger.MaybeShortCircuit has cyclomatic complexity 39 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/merge/merge_rows.go"},"region":{"startLine":371}}}],"partialFingerprints":{"codehealthFindingId/v1":"fa3445ad6b4641502dfd4641419057c5d1c4e4bfc5258f7ce19f6afa42b07c2b"}},{"ruleId":"D1","level":"warning","message":{"text":"benchmark_runner.FromHeaderResultFieldValue (cyclomatic 39): benchmark_runner.FromHeaderResultFieldValue has cyclomatic complexity 39 (threshold 15). To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Where every arm is uniform \u2014 the same kind of value, with no behaviour of its own \u2014 a table keyed by the case is the shorter form; wherever the arms carry different data or different behaviour, keep them as cases, because collapsing those trades an explicit, reviewable set of cases for nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/performance/utils/benchmark_runner/csv.go"},"region":{"startLine":139}}}],"partialFingerprints":{"codehealthFindingId/v1":"722af1b68a769873b1bc9b83d0bfd89d8d1df9ac9dc292d880d0d709bbe06510"}},{"ruleId":"D1","level":"warning","message":{"text":"benchmark_runner.updateResult (cyclomatic 39): benchmark_runner.updateResult has cyclomatic complexity 39 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/performance/utils/benchmark_runner/results.go"},"region":{"startLine":180}}}],"partialFingerprints":{"codehealthFindingId/v1":"8ad368770c194f21792c93ab9dd30180c789fbf42cc40d88a09612ec384d78be"}},{"ruleId":"D1","level":"warning","message":{"text":"tree.GetFieldValue (cyclomatic 39): tree.GetFieldValue has cyclomatic complexity 39 (threshold 15). To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Where every arm is uniform \u2014 the same kind of value, with no behaviour of its own \u2014 a table keyed by the case is the shorter form; wherever the arms carry different data or different behaviour, keep them as cases, because collapsing those trades an explicit, reviewable set of cases for nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/prolly/tree/prolly_fields.go"},"region":{"startLine":199}}}],"partialFingerprints":{"codehealthFindingId/v1":"b5f955a63054ad3cbf163cbebc1a1be2287fb44dda0fbcd42bd41d9dc16738cd"}},{"ruleId":"D1","level":"warning","message":{"text":"binlogReplicaApplier.processBinlogEvent (cyclomatic 38): binlogReplicaApplier.processBinlogEvent has cyclomatic complexity 38 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/binlogreplication/binlog_replica_applier.go"},"region":{"startLine":383}}}],"partialFingerprints":{"codehealthFindingId/v1":"b37999bfcae0b152179b3a901513453437a4130b1eebef29fe9728074c9d23d0"}},{"ruleId":"D1","level":"warning","message":{"text":"commands.createPrintData (cyclomatic 37): commands.createPrintData has cyclomatic complexity 37 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/status.go"},"region":{"startLine":130}}}],"partialFingerprints":{"codehealthFindingId/v1":"eda207423277ddc94a0cbd831d77bdbbf23363e81bb9640475d6fd0a9df45bb8"}},{"ruleId":"D1","level":"warning","message":{"text":"doltWorkflowManager.getWorkflowConfig (cyclomatic 37): doltWorkflowManager.getWorkflowConfig has cyclomatic complexity 37 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/env/actions/dolt_ci/workflow_manager.go"},"region":{"startLine":2135}}}],"partialFingerprints":{"codehealthFindingId/v1":"4cd13b38aa9daca91176302875c54ae377d4242cb3e923e5a3cb06c4cd4155e5"}},{"ruleId":"D1","level":"warning","message":{"text":"DoltTransaction.validateWorkingSetForCommit (cyclomatic 37): DoltTransaction.validateWorkingSetForCommit has cyclomatic complexity 37 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dsess/transactions.go"},"region":{"startLine":645}}}],"partialFingerprints":{"codehealthFindingId/v1":"62d7173bf0dd407cd7fe18189ce3917ac5737a4f45a8f48e9cf600d44aa8f758"}},{"ruleId":"D1","level":"warning","message":{"text":"database.doFastForward (cyclomatic 37): database.doFastForward has cyclomatic complexity 37 (threshold 15). Most of this is not in the body itself: 13 of the 37 points are its own statements and the rest belongs to one function literal inside it that branches (line 388). The decisions are inside the literal, which nothing outside this body can call, review or test on its own, so splitting the enclosing body is not the move available here. To reduce it, lift the literal\u0027s work into a named function or method at the enclosing scope and have the literal call it, then reduce whichever part then reads as the largest."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/datas/database_common.go"},"region":{"startLine":346}}}],"partialFingerprints":{"codehealthFindingId/v1":"d4f9dd018863ef333b7ae7a3d16abdcc28082dbd938d33c2d924f8b61e3f54cf"}},{"ruleId":"D1","level":"warning","message":{"text":"actions.fetchRefSpecsWithDepth (cyclomatic 36): actions.fetchRefSpecsWithDepth has cyclomatic complexity 36 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/env/actions/remotes.go"},"region":{"startLine":487}}}],"partialFingerprints":{"codehealthFindingId/v1":"bb8a5f992f4ebef4be324d644673fc7bc46ed36a9cd27c83d0f24cc7cd335f59"}},{"ruleId":"D1","level":"warning","message":{"text":"valueMerger.processColumn (cyclomatic 36): valueMerger.processColumn has cyclomatic complexity 36 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/merge/merge_prolly_rows.go"},"region":{"startLine":2144}}}],"partialFingerprints":{"codehealthFindingId/v1":"07d334d029d8028a47825ddabc0a8ebc16c3b3d2f3577b8e12aa86a4a50a135c"}},{"ruleId":"D1","level":"warning","message":{"text":"merge.mergeColumns (cyclomatic 35): merge.mergeColumns has cyclomatic complexity 35 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/merge/merge_schema.go"},"region":{"startLine":405}}}],"partialFingerprints":{"codehealthFindingId/v1":"b3a1a7016c74f0ba8e355089e81693fcb170a4e1f5bb034f04bfb6eca386ca0b"}},{"ruleId":"D1","level":"warning","message":{"text":"schema.encodingFromQueryType (cyclomatic 35): schema.encodingFromQueryType has cyclomatic complexity 35 (threshold 15). To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Where every arm is uniform \u2014 the same kind of value, with no behaviour of its own \u2014 a table keyed by the case is the shorter form; wherever the arms carry different data or different behaviour, keep them as cases, because collapsing those trades an explicit, reviewable set of cases for nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/schema/serial_encoding.go"},"region":{"startLine":27}}}],"partialFingerprints":{"codehealthFindingId/v1":"11295a5b3883b69dec8f1b6d494ee8723bb46a59bc2c17a498fa46d98551eb57"}},{"ruleId":"D1","level":"warning","message":{"text":"AlterableDoltTable.RewriteInserter (cyclomatic 35): AlterableDoltTable.RewriteInserter has cyclomatic complexity 35 (threshold 15). Of this number, 34 points are the body\u0027s own statements and 1 belongs to one function literal inside it that branches. To reduce it, split the body: these branches sit side by side rather than nested inside one another, so extracting each one on its own would leave a function per branch. Group the statements between the checks into named steps and move each step into its own function, so the body reads as a short sequence of named stages."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/tables.go"},"region":{"startLine":1667}}}],"partialFingerprints":{"codehealthFindingId/v1":"4cd62d19e058fcba4a251764100cca2ed7bc574afb67466aa9a156ba6afd774f"}},{"ruleId":"D1","level":"warning","message":{"text":"RebaseCmd.Exec (cyclomatic 34): RebaseCmd.Exec has cyclomatic complexity 34 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/rebase.go"},"region":{"startLine":87}}}],"partialFingerprints":{"codehealthFindingId/v1":"0d00d79cb5fc3e997fe7a6a0555520d27042f94fcbdb036644ec771ac01a405f"}},{"ruleId":"D1","level":"warning","message":{"text":"tblcmds.validateImportArgs (cyclomatic 34): tblcmds.validateImportArgs has cyclomatic complexity 34 (threshold 15). To reduce it, split the body: these branches sit side by side rather than nested inside one another, so extracting each one on its own would leave a function per branch. Group the statements between the checks into named steps and move each step into its own function, so the body reads as a short sequence of named stages."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/tblcmds/import.go"},"region":{"startLine":307}}}],"partialFingerprints":{"codehealthFindingId/v1":"2dc88eb56ef1192369454cc6b9aea52f22fcd6ae3fbb640b25bdb5409bb7686b"}},{"ruleId":"D1","level":"warning","message":{"text":"revert.ContinueRevert (cyclomatic 34): revert.ContinueRevert has cyclomatic complexity 34 (threshold 15). To reduce it, split the body: these branches sit side by side rather than nested inside one another, so extracting each one on its own would leave a function per branch. Group the statements between the checks into named steps and move each step into its own function, so the body reads as a short sequence of named stages."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/revert/revert.go"},"region":{"startLine":183}}}],"partialFingerprints":{"codehealthFindingId/v1":"02ea5984bf4c358378f60f45d6a2a996240f4b61a302f715c1be1324f93b095e"}},{"ruleId":"D1","level":"warning","message":{"text":"dtablefunctions.didTableChangeBetweenRootValues (cyclomatic 34): dtablefunctions.didTableChangeBetweenRootValues has cyclomatic complexity 34 (threshold 15). To reduce it, split the body: these branches sit side by side rather than nested inside one another, so extracting each one on its own would leave a function per branch. Group the statements between the checks into named steps and move each step into its own function, so the body reads as a short sequence of named stages."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dtablefunctions/dolt_log.go"},"region":{"startLine":747}}}],"partialFingerprints":{"codehealthFindingId/v1":"7307d10ca56c267f3e080db90d164c215a6391176af5059747c8bc56fd2c9bfb"}},{"ruleId":"D1","level":"warning","message":{"text":"pull.clone (cyclomatic 34): pull.clone has cyclomatic complexity 34 (threshold 15). Of this number, 16 points are the body\u0027s own statements and 18 belong to 4 function literals inside it that branch. To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/datas/pull/clone.go"},"region":{"startLine":98}}}],"partialFingerprints":{"codehealthFindingId/v1":"a0856d06285141ee79f53c35e397ebc725050e4d43fec636506ecec673ba7062"}},{"ruleId":"D1","level":"warning","message":{"text":"nbs.JournalInspect (cyclomatic 34): nbs.JournalInspect has cyclomatic complexity 34 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/nbs/journal_inspect.go"},"region":{"startLine":98}}}],"partialFingerprints":{"codehealthFindingId/v1":"6e106f9b2dc3b3e6aff9fc7807137652b474ada56f874b39fb92aaf5cde4c5a2"}},{"ruleId":"D1","level":"warning","message":{"text":"NomsBlockStore.updateManifestAddFiles (cyclomatic 34): NomsBlockStore.updateManifestAddFiles has cyclomatic complexity 34 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/nbs/store.go"},"region":{"startLine":444}}}],"partialFingerprints":{"codehealthFindingId/v1":"427576199a799a3caef826e0ca070d7ad8ef3e90eb9033e1f86063ffd552f1e1"}},{"ruleId":"D1","level":"warning","message":{"text":"PatchGenerator.advanceFromPreviousPatch (cyclomatic 34): PatchGenerator.advanceFromPreviousPatch has cyclomatic complexity 34 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/prolly/tree/patch_generator.go"},"region":{"startLine":207}}}],"partialFingerprints":{"codehealthFindingId/v1":"e78bd8ae510f0901b231f49daae40e91404ad6df237a88802c6a75fc586f9d85"}},{"ruleId":"D1","level":"warning","message":{"text":"DebugCmd.Exec (cyclomatic 33): DebugCmd.Exec has cyclomatic complexity 33 (threshold 15). Of this number, 24 points are the body\u0027s own statements and 9 belong to 4 function literals inside it that branch. To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/debug.go"},"region":{"startLine":95}}}],"partialFingerprints":{"codehealthFindingId/v1":"b0b5206a23d7157a14f191962adde6f40e93b6180cb2198a8ee4e612e305b218"}},{"ruleId":"D1","level":"warning","message":{"text":"actions.GetCommitStaged (cyclomatic 33): actions.GetCommitStaged has cyclomatic complexity 33 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/env/actions/commit.go"},"region":{"startLine":79}}}],"partialFingerprints":{"codehealthFindingId/v1":"dcddb1a74c3261b2aa4dbcddbfbb73d0e68485e0739c8777e0f1538612be5f2c"}},{"ruleId":"D1","level":"warning","message":{"text":"doltIndex.prollyRangesFromSqlRanges (cyclomatic 33): doltIndex.prollyRangesFromSqlRanges has cyclomatic complexity 33 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/index/dolt_index.go"},"region":{"startLine":1169}}}],"partialFingerprints":{"codehealthFindingId/v1":"6869d851e07f45a45df562d8ab3a26d1f41563eb677a436d7eec8715e95e36e3"}},{"ruleId":"D1","level":"warning","message":{"text":"CheckoutCmd.Exec (cyclomatic 32): CheckoutCmd.Exec has cyclomatic complexity 32 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/checkout.go"},"region":{"startLine":91}}}],"partialFingerprints":{"codehealthFindingId/v1":"fa7e33a4a470d578e7a1c73a72b5ea9a4ea6ca444872b73d78e574f69c8074b5"}},{"ruleId":"D1","level":"warning","message":{"text":"nullValidator.validateDiff (cyclomatic 32): nullValidator.validateDiff has cyclomatic complexity 32 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/merge/merge_prolly_rows.go"},"region":{"startLine":1163}}}],"partialFingerprints":{"codehealthFindingId/v1":"d75ccd9cef130cbe8a061b1844eda87f3631aae333784061f4465b1815ce1e6c"}},{"ruleId":"D1","level":"warning","message":{"text":"rebase.rebaseRefs (cyclomatic 32): rebase.rebaseRefs has cyclomatic complexity 32 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/rebase/filter_branch.go"},"region":{"startLine":105}}}],"partialFingerprints":{"codehealthFindingId/v1":"35d945e9b77c2e0d32152f868d80cdd71f35d209f501777318d6c2b2e78b024f"}},{"ruleId":"D1","level":"warning","message":{"text":"binlogProducer.createRowEvents (cyclomatic 32): binlogProducer.createRowEvents has cyclomatic complexity 32 (threshold 15). Of this number, 21 points are the body\u0027s own statements and 11 belong to one function literal inside it that branches. To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/binlogreplication/binlog_producer.go"},"region":{"startLine":377}}}],"partialFingerprints":{"codehealthFindingId/v1":"189eed4312334de5f8d8df669b45b536c52adba245145da5a4909dee11edadde"}},{"ruleId":"D1","level":"warning","message":{"text":"dtables.NewWorkspaceTable (cyclomatic 32): dtables.NewWorkspaceTable has cyclomatic complexity 32 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dtables/workspace_table.go"},"region":{"startLine":565}}}],"partialFingerprints":{"codehealthFindingId/v1":"285e4218615df08051bcdb7b525ec85b1586f33e15c889836f217f53e7f76341"}},{"ruleId":"D1","level":"warning","message":{"text":"kvexec.getSourceKv (cyclomatic 32): kvexec.getSourceKv has cyclomatic complexity 32 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/kvexec/builder.go"},"region":{"startLine":344}}}],"partialFingerprints":{"codehealthFindingId/v1":"5f693c3321e8257027e9e8869972fb3f23af4deb4a84c07bf55fc66ecf934f6f"}},{"ruleId":"D1","level":"warning","message":{"text":"minver.NullUnsupported (cyclomatic 32): minver.NullUnsupported has cyclomatic complexity 32 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/utils/minver/minver.go"},"region":{"startLine":36}}}],"partialFingerprints":{"codehealthFindingId/v1":"06955590d81db3073c9880c1e12b42f059c53ce9d144eb619e8fa6232842dff4"}},{"ruleId":"D1","level":"warning","message":{"text":"StreamScanner.seekDelimiter (cyclomatic 31): StreamScanner.seekDelimiter has cyclomatic complexity 31 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/sql_statement_scanner.go"},"region":{"startLine":265}}}],"partialFingerprints":{"codehealthFindingId/v1":"44c971e96d9e18c950c7bfda08dffaa144d5938b34f9134f80c98384deac0496"}},{"ruleId":"D1","level":"warning","message":{"text":"ForeignKeyCollection.GetMatchingKey (cyclomatic 31): ForeignKeyCollection.GetMatchingKey has cyclomatic complexity 31 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/doltdb/foreign_key_coll.go"},"region":{"startLine":478}}}],"partialFingerprints":{"codehealthFindingId/v1":"f0b1638b328757f1e91bba89050babceedd0e932d2d2d333e07c03d322e548ab"}},{"ruleId":"D1","level":"warning","message":{"text":"dolt_ci.ValidateWorkflowConfig (cyclomatic 31): dolt_ci.ValidateWorkflowConfig has cyclomatic complexity 31 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/env/actions/dolt_ci/workflow_config.go"},"region":{"startLine":251}}}],"partialFingerprints":{"codehealthFindingId/v1":"4ce181ce6b8ab6da99234ba777c37f8eace23fc27849bb7add2b870a9e7b3556"}},{"ruleId":"D1","level":"warning","message":{"text":"DoltDatabaseProvider.CreateCollatedDatabase (cyclomatic 31): DoltDatabaseProvider.CreateCollatedDatabase has cyclomatic complexity 31 (threshold 15). Of this number, 29 points are the body\u0027s own statements and 2 belong to 2 function literals inside it that branch. To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/database_provider.go"},"region":{"startLine":684}}}],"partialFingerprints":{"codehealthFindingId/v1":"05ba6b38c877a27403ad201886b0734c29b0ab27dd7a1cc77efb083bb7e382c0"}},{"ruleId":"D1","level":"warning","message":{"text":"GitBlobstore.buildCommitForKeyWrite (cyclomatic 31): GitBlobstore.buildCommitForKeyWrite has cyclomatic complexity 31 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/blobstore/git_blobstore.go"},"region":{"startLine":1292}}}],"partialFingerprints":{"codehealthFindingId/v1":"5718a319fa84d7b0c7873539a4a93c8a714cf68992c3b87e8329107f867ccee3"}},{"ruleId":"D1","level":"warning","message":{"text":"database.doSetHead (cyclomatic 31): database.doSetHead has cyclomatic complexity 31 (threshold 15). Most of this is not in the body itself: 13 of the 31 points are its own statements and the rest belongs to one function literal inside it that branches (line 256). The decisions are inside the literal, which nothing outside this body can call, review or test on its own, so splitting the enclosing body is not the move available here. To reduce it, lift the literal\u0027s work into a named function or method at the enclosing scope and have the literal call it, then reduce whichever part then reads as the largest."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/datas/database_common.go"},"region":{"startLine":206}}}],"partialFingerprints":{"codehealthFindingId/v1":"17fb3b2b9a8ff3d5097c41614f5836fe6c9ca49536a0bc070d6a7119392a9684"}},{"ruleId":"D1","level":"warning","message":{"text":"prolly.IncrementTuple (cyclomatic 31): prolly.IncrementTuple has cyclomatic complexity 31 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/prolly/tuple_range.go"},"region":{"startLine":270}}}],"partialFingerprints":{"codehealthFindingId/v1":"714c24482f1137ebf612e88b6fdd968a52c94d804e8f1dd75f29e0eba3af2054"}},{"ruleId":"D1","level":"warning","message":{"text":"SerialMessage.HumanReadableStringAtIndentationLevel (cyclomatic 31): SerialMessage.HumanReadableStringAtIndentationLevel has cyclomatic complexity 31 (threshold 15). To reduce it, separate the branches: extract each independent case into its own named function so the top-level body reads as a short sequence of named decisions."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/types/serial_message.go"},"region":{"startLine":69}}}],"partialFingerprints":{"codehealthFindingId/v1":"750026cd3360a3fc8c5b2f4a6b2dc3b1a995bf319d1bfb1f824a1f3ca3da7f0b"}},{"ruleId":"D1","level":"warning","message":{"text":"ValueStore.GC (cyclomatic 31): ValueStore.GC has cyclomatic complexity 31 (threshold 15). Most of this is not in the body itself: 9 of the 31 points are its own statements and the rest belongs to 2 function literals inside it that branch (lines 591, 680). The decisions are inside those literals, which nothing outside this body can call, review or test on its own, so splitting the enclosing body is not the move available here. To reduce it, lift the literals\u0027 work into a named function or method at the enclosing scope and have each literal call it, then reduce whichever part then reads as the largest."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/types/value_store.go"},"region":{"startLine":568}}}],"partialFingerprints":{"codehealthFindingId/v1":"dcf76934af82c7af244e2a8ef256273534e366c38b4b54c6b222310edecd8783"}},{"ruleId":"D1","level":"warning","message":{"text":"doltdb.newWorkingSet (cyclomatic 29): doltdb.newWorkingSet has cyclomatic complexity 29 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/doltdb/workingset.go"},"region":{"startLine":509}}}],"partialFingerprints":{"codehealthFindingId/v1":"0360985972fc447708803e924bb1f1d2b906f5a89afa2c8261d589adf766b11f"}},{"ruleId":"D1","level":"warning","message":{"text":"env.multiEnvForConfigDirectoryEnv (cyclomatic 29): env.multiEnvForConfigDirectoryEnv has cyclomatic complexity 29 (threshold 15). Of this number, 20 points are the body\u0027s own statements and 9 belong to one function literal inside it that branches. To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/env/multi_repo_env.go"},"region":{"startLine":159}}}],"partialFingerprints":{"codehealthFindingId/v1":"ccdf0b72b5e96c0c09f3aa1f9bc77df7d136ef64b4120eab702c6060ad3366e3"}},{"ruleId":"D1","level":"warning","message":{"text":"dprocedures.performMerge (cyclomatic 29): dprocedures.performMerge has cyclomatic complexity 29 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dprocedures/dolt_merge.go"},"region":{"startLine":201}}}],"partialFingerprints":{"codehealthFindingId/v1":"f07b5d9953d48c2e57f22e4b6150335190de50ff40781c9f70b3da4ba5fe3b45"}},{"ruleId":"D1","level":"warning","message":{"text":"DiffTableFunction.filterDeltaSchemaToSkinnyCols (cyclomatic 29): DiffTableFunction.filterDeltaSchemaToSkinnyCols has cyclomatic complexity 29 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dtablefunctions/dolt_diff.go"},"region":{"startLine":582}}}],"partialFingerprints":{"codehealthFindingId/v1":"2b58451740499d7e7337abf6c8d9e99cd873c9005b298e53a77f05c6e75dc88f"}},{"ruleId":"D1","level":"warning","message":{"text":"kvexec.getMergeKv (cyclomatic 29): kvexec.getMergeKv has cyclomatic complexity 29 (threshold 15). Of this number, 26 points are the body\u0027s own statements and 3 belong to one function literal inside it that branches. To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/kvexec/builder.go"},"region":{"startLine":507}}}],"partialFingerprints":{"codehealthFindingId/v1":"6a4ed4dc6d97d9cd17b92d17f00c0cfe31dcf231017d1ec8e956908399b765b1"}},{"ruleId":"D1","level":"warning","message":{"text":"commands.diffUserTables (cyclomatic 28): commands.diffUserTables has cyclomatic complexity 28 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/diff.go"},"region":{"startLine":896}}}],"partialFingerprints":{"codehealthFindingId/v1":"09601429fef81f9d1a624e67265c6e45c15a771ad6b11bfed15d55d0041304d6"}},{"ruleId":"D1","level":"warning","message":{"text":"commands.diffDoltSchemasTable (cyclomatic 28): commands.diffDoltSchemasTable has cyclomatic complexity 28 (threshold 15). Of this number, 26 points are the body\u0027s own statements and 2 belong to one function literal inside it that branches. To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/diff.go"},"region":{"startLine":1351}}}],"partialFingerprints":{"codehealthFindingId/v1":"95c67c3d08f8438af8b8d197ce824db8ea16fef0d354ea90a721a2e0ac316c40"}},{"ruleId":"D1","level":"warning","message":{"text":"commands.drawCommitDotsAndBranchPaths (cyclomatic 28): commands.drawCommitDotsAndBranchPaths has cyclomatic complexity 28 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/log_graph.go"},"region":{"startLine":480}}}],"partialFingerprints":{"codehealthFindingId/v1":"464f7cc1a8ee9d7673c9b0f8d59355ca151d3a6a559dd9ef1d93599f8ec5e7c4"}},{"ruleId":"D1","level":"warning","message":{"text":"commands.validateSqlArgs (cyclomatic 28): commands.validateSqlArgs has cyclomatic complexity 28 (threshold 15). To reduce it, split the body: these branches sit side by side rather than nested inside one another, so extracting each one on its own would leave a function per branch. Group the statements between the checks into named steps and move each step into its own function, so the body reads as a short sequence of named stages."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/sql.go"},"region":{"startLine":556}}}],"partialFingerprints":{"codehealthFindingId/v1":"820bb2b4dae695207fae139a515ea17a13ae3b927d88a7cfd0f1897b6237f08c"}},{"ruleId":"D1","level":"warning","message":{"text":"RootMerger.MakeTableMerger (cyclomatic 28): RootMerger.MakeTableMerger has cyclomatic complexity 28 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/merge/merge_rows.go"},"region":{"startLine":269}}}],"partialFingerprints":{"codehealthFindingId/v1":"fb5dc424abe2f3db841c05e73d8de77afb2f8a7fd3716ddc958f7a6a09fd4c96"}},{"ruleId":"D1","level":"warning","message":{"text":"dprocedures.MoveWorkingSetToBranch (cyclomatic 28): dprocedures.MoveWorkingSetToBranch has cyclomatic complexity 28 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dprocedures/dolt_checkout_helpers.go"},"region":{"startLine":31}}}],"partialFingerprints":{"codehealthFindingId/v1":"0777fbc19b9800e79e16508090168812e4ec068d2e6cc9d46ba21f47e170291c"}},{"ruleId":"D1","level":"warning","message":{"text":"expreval.newComparisonFunc (cyclomatic 28): expreval.newComparisonFunc has cyclomatic complexity 28 (threshold 15). Of this number, 17 points are the body\u0027s own statements and 11 belong to 3 function literals inside it that branch. To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/expreval/expression_evaluator.go"},"region":{"startLine":229}}}],"partialFingerprints":{"codehealthFindingId/v1":"22f8b09a4ac8487768f568aff0be93c8d04957bc78991c45419bc8f5619cde4e"}},{"ruleId":"D1","level":"warning","message":{"text":"Builder.Build (cyclomatic 28): Builder.Build has cyclomatic complexity 28 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/kvexec/builder.go"},"region":{"startLine":40}}}],"partialFingerprints":{"codehealthFindingId/v1":"a69ec44b0df80480782b75fd352be539bff483afd1b1a0ba8fd9c02dcb0d887e"}},{"ruleId":"D1","level":"warning","message":{"text":"sqlfmt.generateNonCreateNonDropTableSqlSchemaDiff (cyclomatic 28): sqlfmt.generateNonCreateNonDropTableSqlSchemaDiff has cyclomatic complexity 28 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/sqlfmt/schema_fmt.go"},"region":{"startLine":99}}}],"partialFingerprints":{"codehealthFindingId/v1":"2017da5ba0c3c2a5b4f17b66f01318cbe0000c8bb9569f75b8d76e66cfb48515"}},{"ruleId":"D1","level":"warning","message":{"text":"StatsController.updateTable (cyclomatic 28): StatsController.updateTable has cyclomatic complexity 28 (threshold 15). Of this number, 20 points are the body\u0027s own statements and 8 belong to 3 function literals inside it that branch. To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/statspro/worker.go"},"region":{"startLine":461}}}],"partialFingerprints":{"codehealthFindingId/v1":"7bbdce8e3e4ffeaa57009663be6ac3c062b47d40d1704a77411393c11b845fc0"}},{"ruleId":"D1","level":"warning","message":{"text":"commands.printBranches (cyclomatic 27): commands.printBranches has cyclomatic complexity 27 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/branch.go"},"region":{"startLine":289}}}],"partialFingerprints":{"codehealthFindingId/v1":"b42f09812fcc9466d78915af76aaf624be0f0c707561cb2d389b708e44729d2d"}},{"ruleId":"D1","level":"warning","message":{"text":"SqlEngineTableWriter.WriteRows (cyclomatic 27): SqlEngineTableWriter.WriteRows has cyclomatic complexity 27 (threshold 15). Of this number, 22 points are the body\u0027s own statements and 5 belong to 2 function literals inside it that branch. To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/mvdata/engine_table_writer.go"},"region":{"startLine":107}}}],"partialFingerprints":{"codehealthFindingId/v1":"03bac7e419c205cd497a65adcbab7a03f8a8f84ad0c892e5c6a4652ac2e8392a"}},{"ruleId":"D1","level":"warning","message":{"text":"dprocedures.renameBranch (cyclomatic 27): dprocedures.renameBranch has cyclomatic complexity 27 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dprocedures/dolt_branch.go"},"region":{"startLine":117}}}],"partialFingerprints":{"codehealthFindingId/v1":"0c6805cefb031ccdb023ed130df355e4ada831a1609f8b0b0004ad299fe857f2"}},{"ruleId":"D1","level":"warning","message":{"text":"dprocedures.checkoutNewBranch (cyclomatic 27): dprocedures.checkoutNewBranch has cyclomatic complexity 27 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dprocedures/dolt_checkout.go"},"region":{"startLine":404}}}],"partialFingerprints":{"codehealthFindingId/v1":"f7d76acd0e9becaf76b112f9e94d8f8743d4931455dddb987e1437bf5bc38f77"}},{"ruleId":"D1","level":"warning","message":{"text":"dprocedures.resolveProllyConflicts (cyclomatic 27): dprocedures.resolveProllyConflicts has cyclomatic complexity 27 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dprocedures/dolt_conflicts_resolve.go"},"region":{"startLine":79}}}],"partialFingerprints":{"codehealthFindingId/v1":"870c07e611620f5b878c24d939446f9443de991a7b55024a147eb7c5ddc83856"}},{"ruleId":"D1","level":"warning","message":{"text":"DoltSession.addDB (cyclomatic 27): DoltSession.addDB has cyclomatic complexity 27 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dsess/session.go"},"region":{"startLine":1316}}}],"partialFingerprints":{"codehealthFindingId/v1":"402d0737d187aec80abe73f0961d17f5e19500b57eb43885a0f72a84db8b07ed"}},{"ruleId":"D1","level":"warning","message":{"text":"tree.jsonPathElementsFromMySQLJsonPath (cyclomatic 27): tree.jsonPathElementsFromMySQLJsonPath has cyclomatic complexity 27 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/prolly/tree/json_location.go"},"region":{"startLine":313}}}],"partialFingerprints":{"codehealthFindingId/v1":"d9cc05e7a3907aca1502202d6133923d25f699db0c89e4be557eb6b682754feb"}},{"ruleId":"D1","level":"warning","message":{"text":"commands.revert (cyclomatic 26): commands.revert has cyclomatic complexity 26 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/revert.go"},"region":{"startLine":98}}}],"partialFingerprints":{"codehealthFindingId/v1":"b1d02b9c359c107dd1b14435fddc0287714e81638e2aa36abe56a4138b651a4b"}},{"ruleId":"D1","level":"warning","message":{"text":"commands.execShell (cyclomatic 26): commands.execShell has cyclomatic complexity 26 (threshold 15). Most of this is not in the body itself: 4 of the 26 points are its own statements and the rest belongs to 2 function literals inside it that branch (lines 773, 753). The decisions are inside those literals, which nothing outside this body can call, review or test on its own, so splitting the enclosing body is not the move available here. To reduce it, lift the literals\u0027 work into a named function or method at the enclosing scope and have each literal call it, then reduce whichever part then reads as the largest."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/sql.go"},"region":{"startLine":705}}}],"partialFingerprints":{"codehealthFindingId/v1":"3103b358bca9314ad91c6faa0b4886686635ef4970b7db635d3ceb904b7a0ff0"}},{"ruleId":"D1","level":"warning","message":{"text":"commands.BuildSqlEngineQueryist (cyclomatic 26): commands.BuildSqlEngineQueryist has cyclomatic complexity 26 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/utils.go"},"region":{"startLine":131}}}],"partialFingerprints":{"codehealthFindingId/v1":"6da66b765dcfd3d351de79f85986ca9e8b04c5c6f818bd946b6f5c8724ff23b4"}},{"ruleId":"D1","level":"warning","message":{"text":"sqlserver.NewCommandLineConfig (cyclomatic 26): sqlserver.NewCommandLineConfig has cyclomatic complexity 26 (threshold 15). To reduce it, split the body: these branches sit side by side rather than nested inside one another, so extracting each one on its own would leave a function per branch. Group the statements between the checks into named steps and move each step into its own function, so the body reads as a short sequence of named stages."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/sqlserver/command_line_config.go"},"region":{"startLine":110}}}],"partialFingerprints":{"codehealthFindingId/v1":"fe4307fd4430e26993d84c285066b2b9bf94d45af63e2f8d6d6726287d6dc794"}},{"ruleId":"D1","level":"warning","message":{"text":"merge.checkSchemaConflicts (cyclomatic 26): merge.checkSchemaConflicts has cyclomatic complexity 26 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/merge/merge_schema.go"},"region":{"startLine":582}}}],"partialFingerprints":{"codehealthFindingId/v1":"b84d1dfffdc393b1fc963e20e75c4f4bfd259c7c69006c6a58e72dd674605b25"}},{"ruleId":"D1","level":"warning","message":{"text":"merge.mergeChecks (cyclomatic 26): merge.mergeChecks has cyclomatic complexity 26 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/merge/merge_schema.go"},"region":{"startLine":1211}}}],"partialFingerprints":{"codehealthFindingId/v1":"2997d8278ee4a0e0c8bdd657e439a6e97349ac380b410d9c3bc094c705a290f3"}},{"ruleId":"D1","level":"warning","message":{"text":"DoltProceduresDiffPartitionItr.Next (cyclomatic 26): DoltProceduresDiffPartitionItr.Next has cyclomatic complexity 26 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dolt_procedures_diff_table.go"},"region":{"startLine":146}}}],"partialFingerprints":{"codehealthFindingId/v1":"5fce3f9e23176c795e2952f330123fb4b1cd9ef5bf814c40706a61c8932f657c"}},{"ruleId":"D1","level":"warning","message":{"text":"DoltSchemasDiffPartitionItr.Next (cyclomatic 26): DoltSchemasDiffPartitionItr.Next has cyclomatic complexity 26 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dolt_schemas_diff_table.go"},"region":{"startLine":146}}}],"partialFingerprints":{"codehealthFindingId/v1":"d934ff3accaba3cc4aa16838ae5dcfe0f195b95a20422d6d46b64b1abe5feb24"}},{"ruleId":"D1","level":"warning","message":{"text":"lookupJoinKvIter.Next (cyclomatic 26): lookupJoinKvIter.Next has cyclomatic complexity 26 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/kvexec/lookup_join.go"},"region":{"startLine":95}}}],"partialFingerprints":{"codehealthFindingId/v1":"67bd7c7e945afe4157ea79b088ae6a02b8010cc6663ba06386ab916b9d24955e"}},{"ruleId":"D1","level":"warning","message":{"text":"creation.BuildProllyIndexExternal (cyclomatic 26): creation.BuildProllyIndexExternal has cyclomatic complexity 26 (threshold 15). Of this number, 24 points are the body\u0027s own statements and 2 belong to one function literal inside it that branches. To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/table/editor/creation/external_build_index.go"},"region":{"startLine":43}}}],"partialFingerprints":{"codehealthFindingId/v1":"38fcf684fa9919a9fdf74309a9778adfd455a2c40ded6ec53d29bac18ed34ca9"}},{"ruleId":"D1","level":"warning","message":{"text":"tree.compareCollatedChunkDiffer (cyclomatic 26): tree.compareCollatedChunkDiffer has cyclomatic complexity 26 (threshold 15). Of this number, 18 points are the body\u0027s own statements and 8 belong to one function literal inside it that branches. To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/prolly/tree/node_store.go"},"region":{"startLine":306}}}],"partialFingerprints":{"codehealthFindingId/v1":"12f6ec183b9843182519a8d85cb23a5d4e0a4248b0cbc9f1667cf938ed73456e"}},{"ruleId":"D1","level":"warning","message":{"text":"IndexedJsonDocument.insertIntoCursor (cyclomatic 26): IndexedJsonDocument.insertIntoCursor has cyclomatic complexity 26 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/prolly/tree/json_indexed_document.go"},"region":{"startLine":295}}}],"partialFingerprints":{"codehealthFindingId/v1":"4b9973874d6daf47ee18fd37c6add4bfe015c4b69187be25aced8698af625d2c"}},{"ruleId":"D1","level":"warning","message":{"text":"commands.cherryPick (cyclomatic 25): commands.cherryPick has cyclomatic complexity 25 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/cherry-pick.go"},"region":{"startLine":142}}}],"partialFingerprints":{"codehealthFindingId/v1":"036104d03781f891f5b0e5a60088059e4c96e1850954239b7599b92990b2ed99"}},{"ruleId":"D1","level":"warning","message":{"text":"commands.dumpViews (cyclomatic 25): commands.dumpViews has cyclomatic complexity 25 (threshold 15). Of this number, 23 points are the body\u0027s own statements and 2 belong to one function literal inside it that branches. To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/dump.go"},"region":{"startLine":403}}}],"partialFingerprints":{"codehealthFindingId/v1":"90a3e21b93ca225b6484e8cd3cf44cf68004e9243964c9fd2889f13ebf56fa41"}},{"ruleId":"D1","level":"warning","message":{"text":"ArchiveInspectCmd.Exec (cyclomatic 25): ArchiveInspectCmd.Exec has cyclomatic complexity 25 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/admin/archive_inspect.go"},"region":{"startLine":74}}}],"partialFingerprints":{"codehealthFindingId/v1":"4dd0d31865f2716fcfe05c662c897bb45ded2547ace54f43c906e052912d3f0a"}},{"ruleId":"D1","level":"warning","message":{"text":"engine.prettyPrintResultsWithSummary (cyclomatic 25): engine.prettyPrintResultsWithSummary has cyclomatic complexity 25 (threshold 15). Most of this is not in the body itself: 12 of the 25 points are its own statements and the rest belongs to 2 function literals inside it that branch (lines 95, 70). The decisions are inside those literals, which nothing outside this body can call, review or test on its own, so splitting the enclosing body is not the move available here. To reduce it, lift the literals\u0027 work into a named function or method at the enclosing scope and have each literal call it, then reduce whichever part then reads as the largest."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/engine/sql_print.go"},"region":{"startLine":69}}}],"partialFingerprints":{"codehealthFindingId/v1":"26bcb0f638b60f8dbd53824567796d402e80e1b2840bbb77a49f2907c8aab064"}},{"ruleId":"D1","level":"warning","message":{"text":"SqlCmd.Exec (cyclomatic 25): SqlCmd.Exec has cyclomatic complexity 25 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/sql.go"},"region":{"startLine":180}}}],"partialFingerprints":{"codehealthFindingId/v1":"de355ae81892adc6295afd3257aaf87c0317be12483d0d94ac18fa6968d1345b"}},{"ruleId":"D1","level":"warning","message":{"text":"filehandler.ServeHTTP (cyclomatic 25): filehandler.ServeHTTP has cyclomatic complexity 25 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/remotesrv/http.go"},"region":{"startLine":78}}}],"partialFingerprints":{"codehealthFindingId/v1":"c9233eacd07c305e495294f7e3046318b973c583d509e87f95eea2d685976599"}},{"ruleId":"D1","level":"warning","message":{"text":"typeinfo.PreserveAdaptiveEncoding (cyclomatic 25): typeinfo.PreserveAdaptiveEncoding has cyclomatic complexity 25 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/schema/typeinfo/typeinfo.go"},"region":{"startLine":231}}}],"partialFingerprints":{"codehealthFindingId/v1":"3fdd3dbfd5e05ac80b5b03db32a5c4c63ed0041ce5eb0fc6e7033028780bc2b7"}},{"ruleId":"D1","level":"warning","message":{"text":"binlogReplicaApplier.processRowEvent (cyclomatic 25): binlogReplicaApplier.processRowEvent has cyclomatic complexity 25 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/binlogreplication/binlog_replica_applier.go"},"region":{"startLine":661}}}],"partialFingerprints":{"codehealthFindingId/v1":"1755067b5ad4a9caa76179c2fd1e0d45d7ee65210bf2acdbbb65fa4ba09e57c4"}},{"ruleId":"D1","level":"warning","message":{"text":"DoltSession.VisitGCRoots (cyclomatic 25): DoltSession.VisitGCRoots has cyclomatic complexity 25 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dsess/session.go"},"region":{"startLine":812}}}],"partialFingerprints":{"codehealthFindingId/v1":"30748669f4eb1355e1135781016abc7bbcb51dd5c55d0f22c1f2461fe564c626"}},{"ruleId":"D1","level":"warning","message":{"text":"ReadReplicaDatabase.PullFromRemote (cyclomatic 25): ReadReplicaDatabase.PullFromRemote has cyclomatic complexity 25 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/read_replica_database.go"},"region":{"startLine":116}}}],"partialFingerprints":{"codehealthFindingId/v1":"f0a52ebf02a05a09a046f8929ed50819517c0be1484eb7de94d84117f6320fe6"}},{"ruleId":"D1","level":"warning","message":{"text":"ArgParser.parseToken (cyclomatic 25): ArgParser.parseToken has cyclomatic complexity 25 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/utils/argparser/parser.go"},"region":{"startLine":391}}}],"partialFingerprints":{"codehealthFindingId/v1":"bd981f259008f36f3d0c244c78b9b8c9547eb37a010ce4f60c1569d4d9e83593"}},{"ruleId":"D1","level":"warning","message":{"text":"val.CompareCollatedStrings (cyclomatic 25): val.CompareCollatedStrings has cyclomatic complexity 25 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/val/codec.go"},"region":{"startLine":706}}}],"partialFingerprints":{"codehealthFindingId/v1":"090b8a5df9794654bdf4fa841878c0850c061617aea1d29ed4f2c1f4356a561b"}},{"ruleId":"D1","level":"warning","message":{"text":"commands.diffUserTable (cyclomatic 24): commands.diffUserTable has cyclomatic complexity 24 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/diff.go"},"region":{"startLine":1249}}}],"partialFingerprints":{"codehealthFindingId/v1":"0b4af59b70c3242373e20bf901690cafb61c7c846f34822fe0f552b960e00725"}},{"ruleId":"D1","level":"warning","message":{"text":"commands.getCommitInfoWithOptions (cyclomatic 24): commands.getCommitInfoWithOptions has cyclomatic complexity 24 (threshold 15). To reduce it, split the body: these branches sit side by side rather than nested inside one another, so extracting each one on its own would leave a function per branch. Group the statements between the checks into named steps and move each step into its own function, so the body reads as a short sequence of named stages."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/utils.go"},"region":{"startLine":690}}}],"partialFingerprints":{"codehealthFindingId/v1":"7b75c26139cb24146194948f76ae56d44397f443f475cfd6df4450f35b483a8f"}},{"ruleId":"D1","level":"warning","message":{"text":"tblcmds.getImportMoveOptions (cyclomatic 24): tblcmds.getImportMoveOptions has cyclomatic complexity 24 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/tblcmds/import.go"},"region":{"startLine":197}}}],"partialFingerprints":{"codehealthFindingId/v1":"eaafd6e8323bccf55ca1f0ccc4cb68da286eaf50e87f9e8c9f3faf0be95693fe"}},{"ruleId":"D1","level":"warning","message":{"text":"dprocedures.doDoltAdd (cyclomatic 24): dprocedures.doDoltAdd has cyclomatic complexity 24 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dprocedures/dolt_add.go"},"region":{"startLine":41}}}],"partialFingerprints":{"codehealthFindingId/v1":"a9af3eeb4b277598dfb8069e906d5a6010c02e4e63c1e49a74f732615f71315a"}},{"ruleId":"D1","level":"warning","message":{"text":"SequenceTracker.deepSet (cyclomatic 24): SequenceTracker.deepSet has cyclomatic complexity 24 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dsess/sequence_tracker.go"},"region":{"startLine":314}}}],"partialFingerprints":{"codehealthFindingId/v1":"d2c44c7801f4ef023d5a916ee10b9c6aa389e7c69317df003c6fea82b07e19a4"}},{"ruleId":"D1","level":"warning","message":{"text":"DiffTableFunction.GetIndexes (cyclomatic 24): DiffTableFunction.GetIndexes has cyclomatic complexity 24 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dtablefunctions/dolt_diff.go"},"region":{"startLine":84}}}],"partialFingerprints":{"codehealthFindingId/v1":"c244eaaaacfceb5c401bd9ff9871eac711f65f0bcd46a35edfba881f5108e3dc"}},{"ruleId":"D1","level":"warning","message":{"text":"LogTableFunction.RowIter (cyclomatic 24): LogTableFunction.RowIter has cyclomatic complexity 24 (threshold 15). Of this number, 23 points are the body\u0027s own statements and 1 belongs to one function literal inside it that branches. To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dtablefunctions/dolt_log.go"},"region":{"startLine":446}}}],"partialFingerprints":{"codehealthFindingId/v1":"0dabd828480885a026f2c38af43678e56b0f54a99c229ca093fa216baaec4e37"}},{"ruleId":"D1","level":"warning","message":{"text":"StatsController.collectIndexNodes (cyclomatic 24): StatsController.collectIndexNodes has cyclomatic complexity 24 (threshold 15). Most of this is not in the body itself: 6 of the 24 points are its own statements and the rest belongs to 3 function literals inside it that branch (lines 365, 430, 346). The decisions are inside those literals, which nothing outside this body can call, review or test on its own, so splitting the enclosing body is not the move available here. To reduce it, lift the literals\u0027 work into a named function or method at the enclosing scope and have each literal call it, then reduce whichever part then reads as the largest."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/statspro/worker.go"},"region":{"startLine":339}}}],"partialFingerprints":{"codehealthFindingId/v1":"fc0f6d16bfbae5d2020abdbc6fc0dd208a55f417fb59717d94b695baab85a291"}},{"ruleId":"D1","level":"warning","message":{"text":"WritableDoltTable.createForeignKey (cyclomatic 24): WritableDoltTable.createForeignKey has cyclomatic complexity 24 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/tables.go"},"region":{"startLine":2597}}}],"partialFingerprints":{"codehealthFindingId/v1":"516123ed5c8d8a2893244833122e4c046fa162da51c74fd2c6e49cbd5ec1f634"}},{"ruleId":"D1","level":"warning","message":{"text":"awsTablePersister.assembleTable (cyclomatic 24): awsTablePersister.assembleTable has cyclomatic complexity 24 (threshold 15). Of this number, 18 points are the body\u0027s own statements and 6 belong to 2 function literals inside it that branch. To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/nbs/aws_table_persister.go"},"region":{"startLine":286}}}],"partialFingerprints":{"codehealthFindingId/v1":"5d6213cc1324fab9d3d2c9b5fc8b5afd6b4b790f3a9d31ddb41d0cfd882127ff"}},{"ruleId":"D1","level":"warning","message":{"text":"commands.chooseMostFlexibleType (cyclomatic 23): commands.chooseMostFlexibleType has cyclomatic complexity 23 (threshold 15). To reduce it, split the body: these branches sit side by side rather than nested inside one another, so extracting each one on its own would leave a function per branch. Group the statements between the checks into named steps and move each step into its own function, so the body reads as a short sequence of named stages."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/diff.go"},"region":{"startLine":1793}}}],"partialFingerprints":{"codehealthFindingId/v1":"2d660682912104b83299247de3f82de57363257ea9199ba664b894d750efd35e"}},{"ruleId":"D1","level":"warning","message":{"text":"commands.writeDiffResults (cyclomatic 23): commands.writeDiffResults has cyclomatic complexity 23 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/diff.go"},"region":{"startLine":1869}}}],"partialFingerprints":{"codehealthFindingId/v1":"00111c6ff807b9201df56329b3dd4476fb4fc9fd29e012a88dff314467dacc48"}},{"ruleId":"D1","level":"warning","message":{"text":"schcmds.getSchemaImportArgs (cyclomatic 23): schcmds.getSchemaImportArgs has cyclomatic complexity 23 (threshold 15). To reduce it, split the body: these branches sit side by side rather than nested inside one another, so extracting each one on its own would leave a function per branch. Group the statements between the checks into named steps and move each step into its own function, so the body reads as a short sequence of named stages."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/schcmds/import.go"},"region":{"startLine":176}}}],"partialFingerprints":{"codehealthFindingId/v1":"d34b78df0851f7aec4bba7d14284b33e8bb9eff030fd778a3006fc95c9060429"}},{"ruleId":"D1","level":"warning","message":{"text":"ShowCmd.Exec (cyclomatic 23): ShowCmd.Exec has cyclomatic complexity 23 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/show.go"},"region":{"startLine":101}}}],"partialFingerprints":{"codehealthFindingId/v1":"09665c3e740161c9924736a12396f1c175add19436fa8e546523175010d2016b"}},{"ruleId":"D1","level":"warning","message":{"text":"main.createBootstrapConfig (cyclomatic 23): main.createBootstrapConfig has cyclomatic complexity 23 (threshold 15). Of this number, 21 points are the body\u0027s own statements and 2 belong to one function literal inside it that branches. To reduce it, split the body: these branches sit side by side rather than nested inside one another, so extracting each one on its own would leave a function per branch. Group the statements between the checks into named steps and move each step into its own function, so the body reads as a short sequence of named stages."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/dolt.go"},"region":{"startLine":917}}}],"partialFingerprints":{"codehealthFindingId/v1":"6a718862e4d835b34d49dd946d5c2b27e2e1d499dadc9ce1ee69d1a79e2a0152"}},{"ruleId":"D1","level":"warning","message":{"text":"checkValidator.validateDiff (cyclomatic 23): checkValidator.validateDiff has cyclomatic complexity 23 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/merge/merge_prolly_rows.go"},"region":{"startLine":667}}}],"partialFingerprints":{"codehealthFindingId/v1":"de6dec4c0698b3bdb32f425fa1542062b9af386654c7c27f5b8d72d28d162853"}},{"ruleId":"D1","level":"warning","message":{"text":"doltBinlogReplicaController.SetReplicationSourceOptions (cyclomatic 23): doltBinlogReplicaController.SetReplicationSourceOptions has cyclomatic complexity 23 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/binlogreplication/binlog_replica_controller.go"},"region":{"startLine":203}}}],"partialFingerprints":{"codehealthFindingId/v1":"8e03a0c1570f71d53a7b89b74d4441b09dbaaa165715a65ffd0f45308a900162"}},{"ruleId":"D1","level":"warning","message":{"text":"dprocedures.countCommits (cyclomatic 23): dprocedures.countCommits has cyclomatic complexity 23 (threshold 15). To reduce it, split the body: these branches sit side by side rather than nested inside one another, so extracting each one on its own would leave a function per branch. Group the statements between the checks into named steps and move each step into its own function, so the body reads as a short sequence of named stages."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dprocedures/dolt_count_commits.go"},"region":{"startLine":39}}}],"partialFingerprints":{"codehealthFindingId/v1":"594b58edd7ba90dfd554bca814cc20782005fc2e53eeebabf9dfbb5d28fd4f46"}},{"ruleId":"D1","level":"warning","message":{"text":"dprocedures.startRebase (cyclomatic 23): dprocedures.startRebase has cyclomatic complexity 23 (threshold 15). To reduce it, split the body: these branches sit side by side rather than nested inside one another, so extracting each one on its own would leave a function per branch. Group the statements between the checks into named steps and move each step into its own function, so the body reads as a short sequence of named stages."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dprocedures/dolt_rebase.go"},"region":{"startLine":279}}}],"partialFingerprints":{"codehealthFindingId/v1":"7ed81342b1a084250e20056cd7c4581db774acb6bfca09eeac70e426aa39f142"}},{"ruleId":"D1","level":"warning","message":{"text":"dprocedures.doDoltSquashHistory (cyclomatic 23): dprocedures.doDoltSquashHistory has cyclomatic complexity 23 (threshold 15). To reduce it, split the body: these branches sit side by side rather than nested inside one another, so extracting each one on its own would leave a function per branch. Group the statements between the checks into named steps and move each step into its own function, so the body reads as a short sequence of named stages."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dprocedures/dolt_squash_history.go"},"region":{"startLine":46}}}],"partialFingerprints":{"codehealthFindingId/v1":"2f0265f63fceffeb274adcc433ac61a511917c078da15c1b2c885fdc8e4b72e6"}},{"ruleId":"D1","level":"warning","message":{"text":"DiffTableFunction.generateSchema (cyclomatic 23): DiffTableFunction.generateSchema has cyclomatic complexity 23 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dtablefunctions/dolt_diff.go"},"region":{"startLine":765}}}],"partialFingerprints":{"codehealthFindingId/v1":"c03c86199925e537e0c2e616cc6ea2a73d7dd4067ba0f63b46c7d0a47a6baf5e"}},{"ruleId":"D1","level":"warning","message":{"text":"logTableFunctionRowIter.Next (cyclomatic 23): logTableFunctionRowIter.Next has cyclomatic complexity 23 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dtablefunctions/dolt_log.go"},"region":{"startLine":644}}}],"partialFingerprints":{"codehealthFindingId/v1":"e3507d405df499a7099d1ac60873dc99f0d23a6a96138a8f15c9d74591ab7862"}},{"ruleId":"D1","level":"warning","message":{"text":"ReflogTableFunction.RowIter (cyclomatic 23): ReflogTableFunction.RowIter has cyclomatic complexity 23 (threshold 15). Most of this is not in the body itself: 9 of the 23 points are its own statements and the rest belongs to one function literal inside it that branches (line 98). The decisions are inside the literal, which nothing outside this body can call, review or test on its own, so splitting the enclosing body is not the move available here. To reduce it, lift the literal\u0027s work into a named function or method at the enclosing scope and have the literal call it, then reduce whichever part then reads as the largest."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dtablefunctions/dolt_reflog.go"},"region":{"startLine":61}}}],"partialFingerprints":{"codehealthFindingId/v1":"8e216da652051f444db6a721c1d92000ea4bea95c63216fae2667d10df8ef457"}},{"ruleId":"D1","level":"warning","message":{"text":"dtables.getStatusRowsData (cyclomatic 23): dtables.getStatusRowsData has cyclomatic complexity 23 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dtables/status_table.go"},"region":{"startLine":131}}}],"partialFingerprints":{"codehealthFindingId/v1":"1001f2970ee161b5cdc637cfb6a1c1dbd4b1a63f4c90ca6de755e2816c4e1775"}},{"ruleId":"D1","level":"warning","message":{"text":"AlterableDoltTable.ModifyColumn (cyclomatic 23): AlterableDoltTable.ModifyColumn has cyclomatic complexity 23 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/tables.go"},"region":{"startLine":2228}}}],"partialFingerprints":{"codehealthFindingId/v1":"031e4811cfdd69030f01ca6e65cb2f5da9d131e8d67a13f0d75e1827036ed67d"}},{"ruleId":"D1","level":"warning","message":{"text":"valueDecoder.SkipValue (cyclomatic 23): valueDecoder.SkipValue has cyclomatic complexity 23 (threshold 15). To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Where every arm is uniform \u2014 the same kind of value, with no behaviour of its own \u2014 a table keyed by the case is the shorter form; wherever the arms carry different data or different behaviour, keep them as cases, because collapsing those trades an explicit, reviewable set of cases for nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/types/value_decoder.go"},"region":{"startLine":266}}}],"partialFingerprints":{"codehealthFindingId/v1":"4062349d89ca10019ec7a81176cc2ee7072f8778a6ce124119a3c5b12c6fa777"}},{"ruleId":"D1","level":"warning","message":{"text":"VerifyConstraintsCmd.Exec (cyclomatic 22): VerifyConstraintsCmd.Exec has cyclomatic complexity 22 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/cvcmds/verify_constraints.go"},"region":{"startLine":65}}}],"partialFingerprints":{"codehealthFindingId/v1":"05995c92cb01252ddfb239876f5a2a96fe9442801910b7ecf52d82d5c7b92752"}},{"ruleId":"D1","level":"warning","message":{"text":"sqlserver.StartServer (cyclomatic 22): sqlserver.StartServer has cyclomatic complexity 22 (threshold 15). To reduce it, split the body: these branches sit side by side rather than nested inside one another, so extracting each one on its own would leave a function per branch. Group the statements between the checks into named steps and move each step into its own function, so the body reads as a short sequence of named stages."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/sqlserver/sqlserver.go"},"region":{"startLine":285}}}],"partialFingerprints":{"codehealthFindingId/v1":"c11784b38039099f5d9d2c0796ecb8858db25c1679e623904c2c5cc50765f003"}},{"ruleId":"D1","level":"warning","message":{"text":"StashCmd.Exec (cyclomatic 22): StashCmd.Exec has cyclomatic complexity 22 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/stash.go"},"region":{"startLine":93}}}],"partialFingerprints":{"codehealthFindingId/v1":"5a2759e318571cab5d1b9c901bf381fef36ae0c5d525248c1ef95f22b3390ca5"}},{"ruleId":"D1","level":"warning","message":{"text":"cherry_pick.CherryPick (cyclomatic 22): cherry_pick.CherryPick has cyclomatic complexity 22 (threshold 15). To reduce it, split the body: these branches sit side by side rather than nested inside one another, so extracting each one on its own would leave a function per branch. Group the statements between the checks into named steps and move each step into its own function, so the body reads as a short sequence of named stages."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/cherry_pick/cherry_pick.go"},"region":{"startLine":76}}}],"partialFingerprints":{"codehealthFindingId/v1":"71789a6e23775c5752836fa589c6e016b311f837985acaaa0b47de5658993414"}},{"ruleId":"D1","level":"warning","message":{"text":"dbfactory.awsConfigFromParams (cyclomatic 22): dbfactory.awsConfigFromParams has cyclomatic complexity 22 (threshold 15). Of this number, 21 points are the body\u0027s own statements and 1 belongs to one function literal inside it that branches. To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/dbfactory/aws.go"},"region":{"startLine":184}}}],"partialFingerprints":{"codehealthFindingId/v1":"1b39386d1d9b163fdf7ed75c40a611ed8361f3ed845cb21b9772b82ef66f2959"}},{"ruleId":"D1","level":"warning","message":{"text":"TableDelta.HasChangesIgnoringColumnTags (cyclomatic 22): TableDelta.HasChangesIgnoringColumnTags has cyclomatic complexity 22 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/diff/table_deltas.go"},"region":{"startLine":506}}}],"partialFingerprints":{"codehealthFindingId/v1":"2deb4ed9bc7bd6cce9fdddb45e084f7418ef86af57045f1815694ef61f684726"}},{"ruleId":"D1","level":"warning","message":{"text":"merge.rebuildFullTextIndexesForTable (cyclomatic 22): merge.rebuildFullTextIndexesForTable has cyclomatic complexity 22 (threshold 15). Of this number, 17 points are the body\u0027s own statements and 5 belong to one function literal inside it that branches. To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/merge/fulltext_rebuild.go"},"region":{"startLine":183}}}],"partialFingerprints":{"codehealthFindingId/v1":"8b499cc9d726b4fa64ce3d1062dad876af9002f7e00ec666519afa1bc0758e01"}},{"ruleId":"D1","level":"warning","message":{"text":"merge.MergeJSON (cyclomatic 22): merge.MergeJSON has cyclomatic complexity 22 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/merge/merge_prolly_rows.go"},"region":{"startLine":2373}}}],"partialFingerprints":{"codehealthFindingId/v1":"1703792d858eaeef54cde24f90045cb4b2705835ce593fd79b8709f50a2ced5f"}},{"ruleId":"D1","level":"warning","message":{"text":"merge.RegisterForeignKeyViolations (cyclomatic 22): merge.RegisterForeignKeyViolations has cyclomatic complexity 22 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/merge/violations_fk.go"},"region":{"startLine":61}}}],"partialFingerprints":{"codehealthFindingId/v1":"f0d6f5b97b0eff6eb8505295ce074333ff4c7f9dddba8a1264c6a0a04cd7ddd4"}},{"ruleId":"D1","level":"warning","message":{"text":"merge.convertNativeEncodedFkField (cyclomatic 22): merge.convertNativeEncodedFkField has cyclomatic complexity 22 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/merge/violations_fk_prolly.go"},"region":{"startLine":723}}}],"partialFingerprints":{"codehealthFindingId/v1":"ca446a8753237b0e934f626ed668c868e6329a4a6a12cc5297d54eaf61790056"}},{"ruleId":"D1","level":"warning","message":{"text":"schemaImpl.getKeyColumnsDescriptor (cyclomatic 22): schemaImpl.getKeyColumnsDescriptor has cyclomatic complexity 22 (threshold 15). Most of this is not in the body itself: 5 of the 22 points are its own statements and the rest belongs to one function literal inside it that branches (line 480). The decisions are inside the literal, which nothing outside this body can call, review or test on its own, so splitting the enclosing body is not the move available here. To reduce it, lift the literal\u0027s work into a named function or method at the enclosing scope and have the literal call it, then reduce whichever part then reads as the largest."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/schema/schema_impl.go"},"region":{"startLine":466}}}],"partialFingerprints":{"codehealthFindingId/v1":"449470a36352d6460bba8aa7976b165b12c3aa3207f55a9641a1c207d31c64fa"}},{"ruleId":"D1","level":"warning","message":{"text":"Controller.setRoleAndEpoch (cyclomatic 22): Controller.setRoleAndEpoch has cyclomatic complexity 22 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/cluster/controller.go"},"region":{"startLine":641}}}],"partialFingerprints":{"codehealthFindingId/v1":"7f6876c982643031ad7d0fa2789309a7d7671845911b534a426894fd919568e3"}},{"ruleId":"D1","level":"warning","message":{"text":"dprocedures.doltBackup (cyclomatic 22): dprocedures.doltBackup has cyclomatic complexity 22 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dprocedures/dolt_backup.go"},"region":{"startLine":58}}}],"partialFingerprints":{"codehealthFindingId/v1":"b69d3d42f6bd40ffa99bbd403b85463696a356df5460ab039ddbf4657761eb75"}},{"ruleId":"D1","level":"warning","message":{"text":"dprocedures.doDoltReset (cyclomatic 22): dprocedures.doDoltReset has cyclomatic complexity 22 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dprocedures/dolt_reset.go"},"region":{"startLine":41}}}],"partialFingerprints":{"codehealthFindingId/v1":"cc3adc39672cfb4359de5a0826e6075087aaa05180e2443efb73fea2f08438f9"}},{"ruleId":"D1","level":"warning","message":{"text":"DoltTransaction.doCommit (cyclomatic 22): DoltTransaction.doCommit has cyclomatic complexity 22 (threshold 15). Most of this is not in the body itself: 8 of the 22 points are its own statements and the rest belongs to one function literal inside it that branches (line 430). The decisions are inside the literal, which nothing outside this body can call, review or test on its own, so splitting the enclosing body is not the move available here. To reduce it, lift the literal\u0027s work into a named function or method at the enclosing scope and have the literal call it, then reduce whichever part then reads as the largest."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dsess/transactions.go"},"region":{"startLine":394}}}],"partialFingerprints":{"codehealthFindingId/v1":"18f87a04dab0b0e816470ac30474c84735867781b2a4af9e4493b401f1c19a78"}},{"ruleId":"D1","level":"warning","message":{"text":"BranchStatusTableFunction.RowIter (cyclomatic 22): BranchStatusTableFunction.RowIter has cyclomatic complexity 22 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dtablefunctions/dolt_branch_status_table_function.go"},"region":{"startLine":119}}}],"partialFingerprints":{"codehealthFindingId/v1":"5c364cb34e6db493de460e7996a4a7c4c3e27444a3b6cdd1b96015e067929442"}},{"ruleId":"D1","level":"warning","message":{"text":"DiffStatTableFunction.WithExpressions (cyclomatic 22): DiffStatTableFunction.WithExpressions has cyclomatic complexity 22 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dtablefunctions/dolt_diff_stat.go"},"region":{"startLine":213}}}],"partialFingerprints":{"codehealthFindingId/v1":"b6ffb5c23cfc860ba0c6875eb3420eb2e7efaca0f77f35282c06c7d1f444d6d5"}},{"ruleId":"D1","level":"warning","message":{"text":"DiffSummaryTableFunction.WithExpressions (cyclomatic 22): DiffSummaryTableFunction.WithExpressions has cyclomatic complexity 22 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dtablefunctions/dolt_diff_summary.go"},"region":{"startLine":205}}}],"partialFingerprints":{"codehealthFindingId/v1":"0a4696226eb7e40bae8f213dd7e0f13c24b0dcf2f885834bfd006ddba5a43bd2"}},{"ruleId":"D1","level":"warning","message":{"text":"PatchTableFunction.WithExpressions (cyclomatic 22): PatchTableFunction.WithExpressions has cyclomatic complexity 22 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dtablefunctions/dolt_patch.go"},"region":{"startLine":356}}}],"partialFingerprints":{"codehealthFindingId/v1":"104eb23408fbf19e91e710e1dd7d1df822c81bf054ea791830ffad3b926b6c4d"}},{"ruleId":"D1","level":"warning","message":{"text":"DoltTable.LookupForExpressions (cyclomatic 22): DoltTable.LookupForExpressions has cyclomatic complexity 22 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/tables.go"},"region":{"startLine":117}}}],"partialFingerprints":{"codehealthFindingId/v1":"537ae5c0aba3c000128aad060476aaaedc989160a26303b4e3727e0eef6b1efa"}},{"ruleId":"D1","level":"warning","message":{"text":"nbs.planArchiveConjoin (cyclomatic 22): nbs.planArchiveConjoin has cyclomatic complexity 22 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/nbs/archive_writer.go"},"region":{"startLine":830}}}],"partialFingerprints":{"codehealthFindingId/v1":"160195ddd95bd45b45be6e47ff555a5d47366097659b9e52fbb3872fde1b1cc2"}},{"ruleId":"D1","level":"warning","message":{"text":"tree.DiffChunksAtLevel (cyclomatic 22): tree.DiffChunksAtLevel has cyclomatic complexity 22 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/prolly/tree/stats.go"},"region":{"startLine":31}}}],"partialFingerprints":{"codehealthFindingId/v1":"1dd6a6a89cc077b710ba1d8debf5a465fcfdb2686f1ed3ea132e1f75befd2dbf"}},{"ruleId":"D1","level":"warning","message":{"text":"commands.fsckHandleProgress (cyclomatic 21): commands.fsckHandleProgress has cyclomatic complexity 21 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/fsck.go"},"region":{"startLine":326}}}],"partialFingerprints":{"codehealthFindingId/v1":"d48626b75de603fc8b06c62e34c0b511aabdad62bda04820daafda2e61c8b714"}},{"ruleId":"D1","level":"warning","message":{"text":"commands.constructInterpolatedDoltMergeQuery (cyclomatic 21): commands.constructInterpolatedDoltMergeQuery has cyclomatic complexity 21 (threshold 15). Of this number, 18 points are the body\u0027s own statements and 3 belong to one function literal inside it that branches. To reduce it, split the body: these branches sit side by side rather than nested inside one another, so extracting each one on its own would leave a function per branch. Group the statements between the checks into named steps and move each step into its own function, so the body reads as a short sequence of named stages."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/merge.go"},"region":{"startLine":250}}}],"partialFingerprints":{"codehealthFindingId/v1":"487d55257129473c7db40aefc97861421bf42085c7e9a49ccec0481353523c8b"}},{"ruleId":"D1","level":"warning","message":{"text":"FileFactory.CreateDbNoCache (cyclomatic 21): FileFactory.CreateDbNoCache has cyclomatic complexity 21 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/dbfactory/file.go"},"region":{"startLine":194}}}],"partialFingerprints":{"codehealthFindingId/v1":"2dc2faa4b527c17e5929f16d6387013c0bad80b4acffa257142d409905522e31"}},{"ruleId":"D1","level":"warning","message":{"text":"actions.MoveTablesBetweenRoots (cyclomatic 21): actions.MoveTablesBetweenRoots has cyclomatic complexity 21 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/env/actions/table.go"},"region":{"startLine":28}}}],"partialFingerprints":{"codehealthFindingId/v1":"c5ad597a669f68da2741d33565e0ed4288f637e28bf63876583a3a8ca0c8be49"}},{"ruleId":"D1","level":"warning","message":{"text":"remotestorage.fetcherRPCChunkLocationsThread (cyclomatic 21): remotestorage.fetcherRPCChunkLocationsThread has cyclomatic complexity 21 (threshold 15). Most of this is not in the body itself: 2 of the 21 points are its own statements and the rest belongs to 2 function literals inside it that branch (lines 406, 391). The decisions are inside those literals, which nothing outside this body can call, review or test on its own, so splitting the enclosing body is not the move available here. To reduce it, lift the literals\u0027 work into a named function or method at the enclosing scope and have each literal call it, then reduce whichever part then reads as the largest."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/remotestorage/chunk_fetcher.go"},"region":{"startLine":371}}}],"partialFingerprints":{"codehealthFindingId/v1":"309c8ffcf6617a6cc6498e913199805b55f3a22a0fc87e8eda902de9ebdd27a4"}},{"ruleId":"D1","level":"warning","message":{"text":"YAMLConfig.withDefaultsFilledIn (cyclomatic 21): YAMLConfig.withDefaultsFilledIn has cyclomatic complexity 21 (threshold 15). To reduce it, split the body: these branches sit side by side rather than nested inside one another, so extracting each one on its own would leave a function per branch. Group the statements between the checks into named steps and move each step into its own function, so the body reads as a short sequence of named stages."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/servercfg/yaml_config.go"},"region":{"startLine":515}}}],"partialFingerprints":{"codehealthFindingId/v1":"b4276de01c6f5b975ce98547e667bb308682dd265811974ea670bf2688f0f92c"}},{"ruleId":"D1","level":"warning","message":{"text":"sqle.replaceColumnInSchema (cyclomatic 21): sqle.replaceColumnInSchema has cyclomatic complexity 21 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/alterschema.go"},"region":{"startLine":194}}}],"partialFingerprints":{"codehealthFindingId/v1":"db66194e1f11bc02985292c2cc9f9b57f3962ccf9fcaa424a0fb6403a601d2e8"}},{"ruleId":"D1","level":"warning","message":{"text":"sqle.RunAsyncReplicationThreads (cyclomatic 21): sqle.RunAsyncReplicationThreads has cyclomatic complexity 21 (threshold 15). Most of this is not in the body itself: 3 of the 21 points are its own statements and the rest belongs to 5 function literals inside it that branch (lines 249, 285, 218, \u2026). The decisions are inside those literals, which nothing outside this body can call, review or test on its own, so splitting the enclosing body is not the move available here. To reduce it, lift the literals\u0027 work into a named function or method at the enclosing scope and have each literal call it, then reduce whichever part then reads as the largest."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/commit_hooks.go"},"region":{"startLine":188}}}],"partialFingerprints":{"codehealthFindingId/v1":"4aa4d404549cbc59f86784e6df663377b085fd2bc2c5c2b6b2d3952eea5ce1e3"}},{"ruleId":"D1","level":"warning","message":{"text":"sqle.pullBranches (cyclomatic 21): sqle.pullBranches has cyclomatic complexity 21 (threshold 15). Most of this is not in the body itself: 4 of the 21 points are its own statements and the rest belongs to one function literal inside it that branches (line 311). The decisions are inside the literal, which nothing outside this body can call, review or test on its own, so splitting the enclosing body is not the move available here. To reduce it, lift the literal\u0027s work into a named function or method at the enclosing scope and have the literal call it, then reduce whichever part then reads as the largest."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/read_replica_database.go"},"region":{"startLine":285}}}],"partialFingerprints":{"codehealthFindingId/v1":"50b99e707ab236953add2c3fb9c78c9f2fd73b71ab4a43bb05c9fa7699fe6409"}},{"ruleId":"D1","level":"warning","message":{"text":"integerSerializer.deserialize (cyclomatic 21): integerSerializer.deserialize has cyclomatic complexity 21 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/binlogreplication/binlog_type_serialization.go"},"region":{"startLine":155}}}],"partialFingerprints":{"codehealthFindingId/v1":"45bf99b991db2f3e8a2a2707ab5ddd193cc4485f8959b6cbd44eb7d2506576d9"}},{"ruleId":"D1","level":"warning","message":{"text":"dprocedures.createNewBranch (cyclomatic 21): dprocedures.createNewBranch has cyclomatic complexity 21 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dprocedures/dolt_branch.go"},"region":{"startLine":411}}}],"partialFingerprints":{"codehealthFindingId/v1":"3ebebf403b63926ba0e5f4ab69120ee038da3ef7b74495dbc7a3d642cb7ee02f"}},{"ruleId":"D1","level":"warning","message":{"text":"dprocedures.doDoltMerge (cyclomatic 21): dprocedures.doDoltMerge has cyclomatic complexity 21 (threshold 15). To reduce it, split the body: these branches sit side by side rather than nested inside one another, so extracting each one on its own would leave a function per branch. Group the statements between the checks into named steps and move each step into its own function, so the body reads as a short sequence of named stages."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dprocedures/dolt_merge.go"},"region":{"startLine":100}}}],"partialFingerprints":{"codehealthFindingId/v1":"af30a41013c0fee2d9626d089d50bb64ad817a4761b3ce158017edc687fc1613"}},{"ruleId":"D1","level":"warning","message":{"text":"DoltSession.StartTransaction (cyclomatic 21): DoltSession.StartTransaction has cyclomatic complexity 21 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dsess/session.go"},"region":{"startLine":348}}}],"partialFingerprints":{"codehealthFindingId/v1":"5c9105243d2342d8b4f651e37a0d703cf67acce0fd35189475ec79cbb86200f4"}},{"ruleId":"D1","level":"warning","message":{"text":"prollyDiffIter.queueRows (cyclomatic 21): prollyDiffIter.queueRows has cyclomatic complexity 21 (threshold 15). Of this number, 15 points are the body\u0027s own statements and 6 belong to one function literal inside it that branches. To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dtables/diff_iter.go"},"region":{"startLine":200}}}],"partialFingerprints":{"codehealthFindingId/v1":"b8293de02ce38d15b462911341839e0c30f76b7765d3de8847172e1129e0d130"}},{"ruleId":"D1","level":"warning","message":{"text":"enginetest.validatePkIndex (cyclomatic 21): enginetest.validatePkIndex has cyclomatic complexity 21 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/enginetest/validation.go"},"region":{"startLine":241}}}],"partialFingerprints":{"codehealthFindingId/v1":"93540f7e9cadcf6feb114321519a9ca33772ad60e95aa3acf20bbbe89d5664f4"}},{"ruleId":"D1","level":"warning","message":{"text":"StatsController.newStatsForRoot (cyclomatic 21): StatsController.newStatsForRoot has cyclomatic complexity 21 (threshold 15). Most of this is not in the body itself: 8 of the 21 points are its own statements and the rest belongs to 2 function literals inside it that branch (lines 234, 215). The decisions are inside those literals, which nothing outside this body can call, review or test on its own, so splitting the enclosing body is not the move available here. To reduce it, lift the literals\u0027 work into a named function or method at the enclosing scope and have each literal call it, then reduce whichever part then reads as the largest."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/statspro/worker.go"},"region":{"startLine":214}}}],"partialFingerprints":{"codehealthFindingId/v1":"95699b8247f3c97b33b049798b0bd9d959a4f9b2ae4407e0af81ad0a3f70455e"}},{"ruleId":"D1","level":"warning","message":{"text":"csv.writeCsvRow (cyclomatic 21): csv.writeCsvRow has cyclomatic complexity 21 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/table/untyped/csv/writer.go"},"region":{"startLine":194}}}],"partialFingerprints":{"codehealthFindingId/v1":"4c430edd8a85d6d28e3b62fd40dea6c145bc79f14c16c562509bfe05e8906364"}},{"ruleId":"D1","level":"warning","message":{"text":"PullChunkTracker.reqRespThread (cyclomatic 21): PullChunkTracker.reqRespThread has cyclomatic complexity 21 (threshold 15). Most of this is not in the body itself: 2 of the 21 points are its own statements and the rest belongs to one function literal inside it that branches (line 140). The decisions are inside the literal, which nothing outside this body can call, review or test on its own, so splitting the enclosing body is not the move available here. To reduce it, lift the literal\u0027s work into a named function or method at the enclosing scope and have the literal call it, then reduce whichever part then reads as the largest."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/datas/pull/pull_chunk_tracker.go"},"region":{"startLine":127}}}],"partialFingerprints":{"codehealthFindingId/v1":"9f996ae8da4164d2fadeec24f7a21e07ca5dace31ff0eac472a2d458c3b26a98"}},{"ruleId":"D1","level":"warning","message":{"text":"NomsBlockStore.updateManifest (cyclomatic 21): NomsBlockStore.updateManifest has cyclomatic complexity 21 (threshold 15). Of this number, 18 points are the body\u0027s own statements and 3 belong to one function literal inside it that branches. To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/nbs/store.go"},"region":{"startLine":1614}}}],"partialFingerprints":{"codehealthFindingId/v1":"6c5bd33eef025322608e4f34419647f9db12898978f3231efec04d41f6613643"}},{"ruleId":"D1","level":"warning","message":{"text":"DumpCmd.Exec (cyclomatic 20): DumpCmd.Exec has cyclomatic complexity 20 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/dump.go"},"region":{"startLine":117}}}],"partialFingerprints":{"codehealthFindingId/v1":"88e87c1afd906e607b1108120879986a539ada3bfe2442b661fb4e7ca8a050a8"}},{"ruleId":"D1","level":"warning","message":{"text":"treeScanner.processCommitContent (cyclomatic 20): treeScanner.processCommitContent has cyclomatic complexity 20 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/fsck.go"},"region":{"startLine":720}}}],"partialFingerprints":{"codehealthFindingId/v1":"4bbedd160d6ac678c4804c01694032882b9b56ae1f297bb2abe34827039258c9"}},{"ruleId":"D1","level":"warning","message":{"text":"MergeCmd.Exec (cyclomatic 20): MergeCmd.Exec has cyclomatic complexity 20 (threshold 15). To reduce it, split the body: these branches sit side by side rather than nested inside one another, so extracting each one on its own would leave a function per branch. Group the statements between the checks into named steps and move each step into its own function, so the body reads as a short sequence of named stages."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/merge.go"},"region":{"startLine":91}}}],"partialFingerprints":{"codehealthFindingId/v1":"fb4f13d2fa1c22bc409786ebb77c359be25dbf9f05ef8c853b9fa00c75782623"}},{"ruleId":"D1","level":"warning","message":{"text":"sqlserver.setupDoltConfig (cyclomatic 20): sqlserver.setupDoltConfig has cyclomatic complexity 20 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/sqlserver/sqlserver.go"},"region":{"startLine":533}}}],"partialFingerprints":{"codehealthFindingId/v1":"72d16371853ccc2ba13643bfba26d5d20b5ef37366ce746c0c7c60e3dc6f0e50"}},{"ruleId":"D1","level":"warning","message":{"text":"cherry_pick.ContinueCherryPick (cyclomatic 20): cherry_pick.ContinueCherryPick has cyclomatic complexity 20 (threshold 15). To reduce it, split the body: these branches sit side by side rather than nested inside one another, so extracting each one on its own would leave a function per branch. Group the statements between the checks into named steps and move each step into its own function, so the body reads as a short sequence of named stages."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/cherry_pick/cherry_pick.go"},"region":{"startLine":269}}}],"partialFingerprints":{"codehealthFindingId/v1":"015380cf927a7173f1646d3ceb77c8f8ea40e5ba945b6344e9b4be1cb5e21b1a"}},{"ruleId":"D1","level":"warning","message":{"text":"ForeignKey.Equals (cyclomatic 20): ForeignKey.Equals has cyclomatic complexity 20 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/doltdb/foreign_key_coll.go"},"region":{"startLine":110}}}],"partialFingerprints":{"codehealthFindingId/v1":"cbc6b2a3ede9924545137d714231d929b9dd15926b9799dac174ad9ddf79eb91"}},{"ruleId":"D1","level":"warning","message":{"text":"actions.SyncRoots (cyclomatic 20): actions.SyncRoots has cyclomatic complexity 20 (threshold 15). Of this number, 16 points are the body\u0027s own statements and 4 belong to one function literal inside it that branches. To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/env/actions/remotes.go"},"region":{"startLine":804}}}],"partialFingerprints":{"codehealthFindingId/v1":"3c4a84e4f0fb9cf9fb53c8e0f4bb5df31d23ba987e1b2a01dec8d8e808869b69"}},{"ruleId":"D1","level":"warning","message":{"text":"Steps.UnmarshalYAML (cyclomatic 20): Steps.UnmarshalYAML has cyclomatic complexity 20 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/env/actions/dolt_ci/workflow_config.go"},"region":{"startLine":93}}}],"partialFingerprints":{"codehealthFindingId/v1":"4f36339a7af04571f3efd726861e41fabbd77d1ce09b75fa0defc4067c04e7dc"}},{"ruleId":"D1","level":"warning","message":{"text":"env.LoadDoltDB (cyclomatic 20): env.LoadDoltDB has cyclomatic complexity 20 (threshold 15). Most of this is not in the body itself: 1 of the 20 points is its own statement and the rest belongs to one function literal inside it that branches (line 225). The decisions are inside the literal, which nothing outside this body can call, review or test on its own, so splitting the enclosing body is not the move available here. To reduce it, lift the literal\u0027s work into a named function or method at the enclosing scope and have the literal call it, then reduce whichever part then reads as the largest."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/env/environment.go"},"region":{"startLine":224}}}],"partialFingerprints":{"codehealthFindingId/v1":"54785e3dae1edf5bf37a97a85e4798d6ef801f75c47bdcab6fade2a39678658d"}},{"ruleId":"D1","level":"warning","message":{"text":"merge.SchemaMerge (cyclomatic 20): merge.SchemaMerge has cyclomatic complexity 20 (threshold 15). To reduce it, split the body: these branches sit side by side rather than nested inside one another, so extracting each one on its own would leave a function per branch. Group the statements between the checks into named steps and move each step into its own function, so the body reads as a short sequence of named stages."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/merge/merge_schema.go"},"region":{"startLine":168}}}],"partialFingerprints":{"codehealthFindingId/v1":"27b7a50d5957bc97ba45ad5ebe699c433a31f98a1941dc256dadd31a7f9e1a91"}},{"ruleId":"D1","level":"warning","message":{"text":"primaryMerger.merge (cyclomatic 20): primaryMerger.merge has cyclomatic complexity 20 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/merge/merge_prolly_rows.go"},"region":{"startLine":1374}}}],"partialFingerprints":{"codehealthFindingId/v1":"802902bee3eb82cae034e6475614f050ddc08386297f552cd6d458d94f9619ab"}},{"ruleId":"D1","level":"warning","message":{"text":"ThreeWayJsonDiffer.Next (cyclomatic 20): ThreeWayJsonDiffer.Next has cyclomatic complexity 20 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/merge/three_way_json_differ.go"},"region":{"startLine":44}}}],"partialFingerprints":{"codehealthFindingId/v1":"81b4e264817dd6584839439d3ede60616e1dc71c0095f4bcce2ec0e28394c640"}},{"ruleId":"D1","level":"warning","message":{"text":"YAMLConfig.withPlaceholdersFilledIn (cyclomatic 20): YAMLConfig.withPlaceholdersFilledIn has cyclomatic complexity 20 (threshold 15). To reduce it, split the body: these branches sit side by side rather than nested inside one another, so extracting each one on its own would leave a function per branch. Group the statements between the checks into named steps and move each step into its own function, so the body reads as a short sequence of named stages."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/servercfg/yaml_config.go"},"region":{"startLine":398}}}],"partialFingerprints":{"codehealthFindingId/v1":"d7811d6999e9bcedd63ec2fa196eb49308c2d18f4f930befb02005f68c24e0c0"}},{"ruleId":"D1","level":"warning","message":{"text":"Controller.outboundTlsConfig (cyclomatic 20): Controller.outboundTlsConfig has cyclomatic complexity 20 (threshold 15). Most of this is not in the body itself: 4 of the 20 points are its own statements and the rest belongs to one function literal inside it that branches (line 1242). The decisions are inside the literal, which nothing outside this body can call, review or test on its own, so splitting the enclosing body is not the move available here. To reduce it, lift the literal\u0027s work into a named function or method at the enclosing scope and have the literal call it, then reduce whichever part then reads as the largest."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/cluster/controller.go"},"region":{"startLine":1227}}}],"partialFingerprints":{"codehealthFindingId/v1":"f0a29c8558459993a13d4225b2ef0305730c82896ced3d68b610fb8f5f57ada6"}},{"ruleId":"D1","level":"warning","message":{"text":"DoltDatabaseProvider.databaseForRevision (cyclomatic 20): DoltDatabaseProvider.databaseForRevision has cyclomatic complexity 20 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/database_provider.go"},"region":{"startLine":1331}}}],"partialFingerprints":{"codehealthFindingId/v1":"cb6254f9e2817f160a19863496a21c3dbf88dc477ff4fb38008bf1b6ea89a66c"}},{"ruleId":"D1","level":"warning","message":{"text":"doltProceduresHistoryRowIter.loadRows (cyclomatic 20): doltProceduresHistoryRowIter.loadRows has cyclomatic complexity 20 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dolt_procedures_history_table.go"},"region":{"startLine":144}}}],"partialFingerprints":{"codehealthFindingId/v1":"98d944e28cf36da48863ffaa45a1cc742745d9ab842f639acb947bbbb4010dc5"}},{"ruleId":"D1","level":"warning","message":{"text":"doltSchemasHistoryRowIter.loadRows (cyclomatic 20): doltSchemasHistoryRowIter.loadRows has cyclomatic complexity 20 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dolt_schemas_history_table.go"},"region":{"startLine":144}}}],"partialFingerprints":{"codehealthFindingId/v1":"dfa73d5d9072e4c815e4c347eccc8e20a9552b4c4b4b94772c0b6a7fe5e2c90d"}},{"ruleId":"D1","level":"warning","message":{"text":"SchemaDiffTableFunction.WithExpressions (cyclomatic 20): SchemaDiffTableFunction.WithExpressions has cyclomatic complexity 20 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dtablefunctions/dolt_schema_diff.go"},"region":{"startLine":214}}}],"partialFingerprints":{"codehealthFindingId/v1":"db03ef43ef1675fc71fb5d286ae5f2751cf773e4a46790e2894bbb3710ea88c9"}},{"ruleId":"D1","level":"warning","message":{"text":"BranchControlTable.Update (cyclomatic 20): BranchControlTable.Update has cyclomatic complexity 20 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dtables/branch_control_table.go"},"region":{"startLine":224}}}],"partialFingerprints":{"codehealthFindingId/v1":"ccf14b10fc7d05a479576bc7906a0fda7919ee1dbad1c1d95a8f5d4f1f102811"}},{"ruleId":"D1","level":"warning","message":{"text":"prollyCVIter.Next (cyclomatic 20): prollyCVIter.Next has cyclomatic complexity 20 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dtables/constraint_violations_prolly.go"},"region":{"startLine":220}}}],"partialFingerprints":{"codehealthFindingId/v1":"0bb59a1fa3c3d2963d92f1496ca9b23724c777422e58f29e3ea397d5f4f27a6f"}},{"ruleId":"D1","level":"warning","message":{"text":"sqlfmt.interfaceValueAsSqlString (cyclomatic 20): sqlfmt.interfaceValueAsSqlString has cyclomatic complexity 20 (threshold 15). To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Where every arm is uniform \u2014 the same kind of value, with no behaviour of its own \u2014 a table keyed by the case is the shorter form; wherever the arms carry different data or different behaviour, keep them as cases, because collapsing those trades an explicit, reviewable set of cases for nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/sqlfmt/row_fmt.go"},"region":{"startLine":322}}}],"partialFingerprints":{"codehealthFindingId/v1":"dbefcf88b5c3d0f7dbb8ff05d0ec3630305243e1ed85183d3d1f5ba3bc9e9423"}},{"ruleId":"D1","level":"warning","message":{"text":"AlterableDoltTable.createIndex (cyclomatic 20): AlterableDoltTable.createIndex has cyclomatic complexity 20 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/tables.go"},"region":{"startLine":2507}}}],"partialFingerprints":{"codehealthFindingId/v1":"a1bcc52fd7850ecc907666e2383cbd8b3b2a6b57fc52b4791bbba81964723323"}},{"ruleId":"D1","level":"warning","message":{"text":"AlterableDoltTable.AddForeignKey (cyclomatic 20): AlterableDoltTable.AddForeignKey has cyclomatic complexity 20 (threshold 15). To reduce it, split the body: these branches sit side by side rather than nested inside one another, so extracting each one on its own would leave a function per branch. Group the statements between the checks into named steps and move each step into its own function, so the body reads as a short sequence of named stages."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/tables.go"},"region":{"startLine":2768}}}],"partialFingerprints":{"codehealthFindingId/v1":"7440a53165d70d633c38f6043a9e0a3f7613d617f535281150d5e3d7fa5bdd59"}},{"ruleId":"D1","level":"warning","message":{"text":"database.CommitWithWorkingSet (cyclomatic 20): database.CommitWithWorkingSet has cyclomatic complexity 20 (threshold 15). Of this number, 14 points are the body\u0027s own statements and 6 belong to one function literal inside it that branches. To reduce it, split the body: these branches sit side by side rather than nested inside one another, so extracting each one on its own would leave a function per branch. Group the statements between the checks into named steps and move each step into its own function, so the body reads as a short sequence of named stages."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/datas/database_common.go"},"region":{"startLine":734}}}],"partialFingerprints":{"codehealthFindingId/v1":"d32e1eebe011c68e841a97df7fd4c579a46ab8e678261b35105e1868c692bd13"}},{"ruleId":"D1","level":"warning","message":{"text":"nbs.updateWithChecker (cyclomatic 20): nbs.updateWithChecker has cyclomatic complexity 20 (threshold 15). Most of this is not in the body itself: 9 of the 20 points are its own statements and the rest belongs to 2 function literals inside it that branch (lines 425, 381). The decisions are inside those literals, which nothing outside this body can call, review or test on its own, so splitting the enclosing body is not the move available here. To reduce it, lift the literals\u0027 work into a named function or method at the enclosing scope and have each literal call it, then reduce whichever part then reads as the largest."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/nbs/file_manifest.go"},"region":{"startLine":376}}}],"partialFingerprints":{"codehealthFindingId/v1":"bc02aa32006125234cb30eb8c36c0a61e7bf8fa6c40d171b358801c126c5dcf9"}},{"ruleId":"D1","level":"warning","message":{"text":"ProximityFlusher.visitNode (cyclomatic 20): ProximityFlusher.visitNode has cyclomatic complexity 20 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/prolly/proximity_mutable_map.go"},"region":{"startLine":151}}}],"partialFingerprints":{"codehealthFindingId/v1":"6301d50bceae4a3f64c875b34ebbcaa988df26062bc2449c6c7d84b424ed7377"}},{"ruleId":"D1","level":"warning","message":{"text":"ProximityFlusher.rebuildNode (cyclomatic 20): ProximityFlusher.rebuildNode has cyclomatic complexity 20 (threshold 15). Of this number, 10 points are the body\u0027s own statements and 10 belong to 2 function literals inside it that branch. To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/prolly/proximity_mutable_map.go"},"region":{"startLine":355}}}],"partialFingerprints":{"codehealthFindingId/v1":"22a7db96a83c14a8c566d7ba70b76b9f865906c18025d3022872d37a79ec0bd6"}},{"ruleId":"D1","level":"warning","message":{"text":"commands.queryForUnstagedChanges (cyclomatic 19): commands.queryForUnstagedChanges has cyclomatic complexity 19 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/add.go"},"region":{"startLine":279}}}],"partialFingerprints":{"codehealthFindingId/v1":"2f5cc0a9071019784c48b357828ea4f23af170e392bf0dc0c3b276edb8b982fc"}},{"ruleId":"D1","level":"warning","message":{"text":"commands.getBranches (cyclomatic 19): commands.getBranches has cyclomatic complexity 19 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/branch.go"},"region":{"startLine":158}}}],"partialFingerprints":{"codehealthFindingId/v1":"d6382e4e4e7e1cf1ec8562ede05ff17663a8ad0fdf5448ed152f603c66bfb7b3"}},{"ruleId":"D1","level":"warning","message":{"text":"commands.dumpTriggers (cyclomatic 19): commands.dumpTriggers has cyclomatic complexity 19 (threshold 15). Of this number, 17 points are the body\u0027s own statements and 2 belong to one function literal inside it that branches. To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/dump.go"},"region":{"startLine":326}}}],"partialFingerprints":{"codehealthFindingId/v1":"1aeaaccd8da68dd75b21b272a5d45fc774f35d2410c5f9a1a6f0ee557faa1825"}},{"ruleId":"D1","level":"warning","message":{"text":"ForeignKeyCollection.RemoveAndUnresolveTables (cyclomatic 19): ForeignKeyCollection.RemoveAndUnresolveTables has cyclomatic complexity 19 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/doltdb/foreign_key_coll.go"},"region":{"startLine":658}}}],"partialFingerprints":{"codehealthFindingId/v1":"a9e4e65fe58fd0c52e1f51ba43db44e1749cdc2f52fa17eb962acacbf98bf271"}},{"ruleId":"D1","level":"warning","message":{"text":"merge.ForeignKeysMerge (cyclomatic 19): merge.ForeignKeysMerge has cyclomatic complexity 19 (threshold 15). Of this number, 11 points are the body\u0027s own statements and 8 belong to 3 function literals inside it that branch. To reduce it, split the body: these branches sit side by side rather than nested inside one another, so extracting each one on its own would leave a function per branch. Group the statements between the checks into named steps and move each step into its own function, so the body reads as a short sequence of named stages."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/merge/merge_schema.go"},"region":{"startLine":266}}}],"partialFingerprints":{"codehealthFindingId/v1":"5ab672198a978987674a7eac8d1e38958d9cfd08e62eb3e372094f17fe61bb9c"}},{"ruleId":"D1","level":"warning","message":{"text":"uniqValidator.validateDiff (cyclomatic 19): uniqValidator.validateDiff has cyclomatic complexity 19 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/merge/merge_prolly_rows.go"},"region":{"startLine":862}}}],"partialFingerprints":{"codehealthFindingId/v1":"1cf43c431a5ed2d0e248f4d03eaa547509b50f8a5642acc636fb5ee51b9bc8cb"}},{"ruleId":"D1","level":"warning","message":{"text":"FileDataLocation.NewReader (cyclomatic 19): FileDataLocation.NewReader has cyclomatic complexity 19 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/mvdata/file_data_loc.go"},"region":{"startLine":82}}}],"partialFingerprints":{"codehealthFindingId/v1":"4548a81827a163f51ab157ba5d8ff1bb05e1d0a394dfd2115f38ae66153c4b7f"}},{"ruleId":"D1","level":"warning","message":{"text":"remotestorage.fetcherRPCDownloadLocsThread (cyclomatic 19): remotestorage.fetcherRPCDownloadLocsThread has cyclomatic complexity 19 (threshold 15). Most of this is not in the body itself: 2 of the 19 points are its own statements and the rest belongs to 2 function literals inside it that branch (lines 316, 300). The decisions are inside those literals, which nothing outside this body can call, review or test on its own, so splitting the enclosing body is not the move available here. To reduce it, lift the literals\u0027 work into a named function or method at the enclosing scope and have each literal call it, then reduce whichever part then reads as the largest."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/remotestorage/chunk_fetcher.go"},"region":{"startLine":282}}}],"partialFingerprints":{"codehealthFindingId/v1":"4ffe73bbf34d115814423fae98850155e715076985d648e81f1a71ff1471b238"}},{"ruleId":"D1","level":"warning","message":{"text":"reliableCallStateMachine.open (cyclomatic 19): reliableCallStateMachine.open has cyclomatic complexity 19 (threshold 15). Most of this is not in the body itself: 3 of the 19 points are its own statements and the rest belongs to one function literal inside it that branches (line 111). The decisions are inside the literal, which nothing outside this body can call, review or test on its own, so splitting the enclosing body is not the move available here. To reduce it, lift the literal\u0027s work into a named function or method at the enclosing scope and have the literal call it, then reduce whichever part then reads as the largest."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/remotestorage/internal/reliable/grpc_state_machine_struct.go"},"region":{"startLine":104}}}],"partialFingerprints":{"codehealthFindingId/v1":"2be52703a334fbcfc47c68d9ced5627ece0b5f704c1e445a6fde223e86997501"}},{"ruleId":"D1","level":"warning","message":{"text":"sqle.DoltProceduresGetAll (cyclomatic 19): sqle.DoltProceduresGetAll has cyclomatic complexity 19 (threshold 15). Of this number, 18 points are the body\u0027s own statements and 1 belongs to one function literal inside it that branches. To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/procedures_table.go"},"region":{"startLine":314}}}],"partialFingerprints":{"codehealthFindingId/v1":"68e9f2757059ae60dd1424fff84b392bf4b45557dd9bdbec8143a6a302548392"}},{"ruleId":"D1","level":"warning","message":{"text":"doltSchemasDiffPartitionRowIter.readDoltSchemasRowsFromRoot (cyclomatic 19): doltSchemasDiffPartitionRowIter.readDoltSchemasRowsFromRoot has cyclomatic complexity 19 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dolt_schemas_diff_table.go"},"region":{"startLine":456}}}],"partialFingerprints":{"codehealthFindingId/v1":"5708628ca0dd96229439cbce60fa4d842e2ab89805877c78a19c81bd9242524f"}},{"ruleId":"D1","level":"warning","message":{"text":"dprocedures.deleteBranches (cyclomatic 19): dprocedures.deleteBranches has cyclomatic complexity 19 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dprocedures/dolt_branch.go"},"region":{"startLine":220}}}],"partialFingerprints":{"codehealthFindingId/v1":"21b3b6e7af4e745515a894d242270a9f3b9bf646772e8387631496e24cb52767"}},{"ruleId":"D1","level":"warning","message":{"text":"dprocedures.handleRebaseCherryPick (cyclomatic 19): dprocedures.handleRebaseCherryPick has cyclomatic complexity 19 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dprocedures/dolt_rebase.go"},"region":{"startLine":990}}}],"partialFingerprints":{"codehealthFindingId/v1":"b49935a673d8ecb0c0645aa07a8f6e8e05464128a4463f32acc3f41fa167f62a"}},{"ruleId":"D1","level":"warning","message":{"text":"dprocedures.doDoltRm (cyclomatic 19): dprocedures.doDoltRm has cyclomatic complexity 19 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dprocedures/dolt_rm.go"},"region":{"startLine":40}}}],"partialFingerprints":{"codehealthFindingId/v1":"fdfabd325f9c16578a1861695efee0975bd2c58023ce228713bcb1f413f44a03"}},{"ruleId":"D1","level":"warning","message":{"text":"DiffTable.toCommitLookupPartitions (cyclomatic 19): DiffTable.toCommitLookupPartitions has cyclomatic complexity 19 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dtables/diff_table.go"},"region":{"startLine":482}}}],"partialFingerprints":{"codehealthFindingId/v1":"5a85d157759277d856f7dcb356ecf18dc7f36ef4a26c555d58abf19b053bf578"}},{"ruleId":"D1","level":"warning","message":{"text":"jsonRowDiffWriter.WriteRow (cyclomatic 19): jsonRowDiffWriter.WriteRow has cyclomatic complexity 19 (threshold 15). To reduce it, split the body: these branches sit side by side rather than nested inside one another, so extracting each one on its own would leave a function per branch. Group the statements between the checks into named steps and move each step into its own function, so the body reads as a short sequence of named stages."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/table/typed/json/json_diff_writer.go"},"region":{"startLine":51}}}],"partialFingerprints":{"codehealthFindingId/v1":"93ce23bf1bfcec4de8d63fe07ec628588aa3d2180dfe2ac1b8eff4324334bd98"}},{"ruleId":"D1","level":"warning","message":{"text":"database.doDelete (cyclomatic 19): database.doDelete has cyclomatic complexity 19 (threshold 15). Most of this is not in the body itself: 1 of the 19 points is its own statement and the rest belongs to one function literal inside it that branches (line 871). The decisions are inside the literal, which nothing outside this body can call, review or test on its own, so splitting the enclosing body is not the move available here. To reduce it, lift the literal\u0027s work into a named function or method at the enclosing scope and have the literal call it, then reduce whichever part then reads as the largest."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/datas/database_common.go"},"region":{"startLine":868}}}],"partialFingerprints":{"codehealthFindingId/v1":"f75bb9c8cc2b4158d3049de05a21459c8f1173fa442031c8832a9c0932d6abf9"}},{"ruleId":"D1","level":"warning","message":{"text":"archiveReader.tolerantIterate (cyclomatic 19): archiveReader.tolerantIterate has cyclomatic complexity 19 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/nbs/archive_reader.go"},"region":{"startLine":750}}}],"partialFingerprints":{"codehealthFindingId/v1":"fd53ca3e340e3716eee12af8458362f0137e65b5719c3c2884b5f3d969d06960"}},{"ruleId":"D1","level":"warning","message":{"text":"markAndSweeper.SaveHashes (cyclomatic 19): markAndSweeper.SaveHashes has cyclomatic complexity 19 (threshold 15). Of this number, 13 points are the body\u0027s own statements and 6 belong to one function literal inside it that branches. To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/nbs/store.go"},"region":{"startLine":2415}}}],"partialFingerprints":{"codehealthFindingId/v1":"1f276086afc30f29ae4ad6127e4f6d51b4715c290f999dfe546b8571b642dfeb"}},{"ruleId":"D1","level":"warning","message":{"text":"tree.ApplyMutations (cyclomatic 19): tree.ApplyMutations has cyclomatic complexity 19 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/prolly/tree/mutator.go"},"region":{"startLine":63}}}],"partialFingerprints":{"codehealthFindingId/v1":"93e1d335be0a9354b47c533703692ffa53cbcd3b0d1f3b8a5644848a0e064613"}},{"ruleId":"D1","level":"warning","message":{"text":"chunker.advanceTo (cyclomatic 19): chunker.advanceTo has cyclomatic complexity 19 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/prolly/tree/chunker.go"},"region":{"startLine":171}}}],"partialFingerprints":{"codehealthFindingId/v1":"9250940fff6719d8ea6706dfa8074075637306be3b6c69e6ca33fc7a72b35e97"}},{"ruleId":"D1","level":"warning","message":{"text":"InMemoryJsonDiffer.Next (cyclomatic 19): InMemoryJsonDiffer.Next has cyclomatic complexity 19 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/prolly/tree/json_diff.go"},"region":{"startLine":109}}}],"partialFingerprints":{"codehealthFindingId/v1":"cf3b10b2dddecbc05887b919a40191a7228e56ea8c2862a17d4fa7b37dcf6a38"}},{"ruleId":"D1","level":"warning","message":{"text":"main.main (cyclomatic 19): main.main has cyclomatic complexity 19 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/utils/3pdeps/main.go"},"region":{"startLine":43}}}],"partialFingerprints":{"codehealthFindingId/v1":"6c90eae85c4d361308f54acf50a5138040a197d7f15a01c0661a16b8afaab4ca"}},{"ruleId":"D1","level":"warning","message":{"text":"commands.performCommit (cyclomatic 18): commands.performCommit has cyclomatic complexity 18 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/commit.go"},"region":{"startLine":100}}}],"partialFingerprints":{"codehealthFindingId/v1":"8533061ea337748d3fda59c340d05251370ad25d6ccfbf445a609ce3b7920cca"}},{"ruleId":"D1","level":"warning","message":{"text":"commands.constructParametrizedDoltCommitQuery (cyclomatic 18): commands.constructParametrizedDoltCommitQuery has cyclomatic complexity 18 (threshold 15). Of this number, 15 points are the body\u0027s own statements and 3 belong to one function literal inside it that branches. To reduce it, split the body: these branches sit side by side rather than nested inside one another, so extracting each one on its own would leave a function per branch. Group the statements between the checks into named steps and move each step into its own function, so the body reads as a short sequence of named stages."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/commit.go"},"region":{"startLine":195}}}],"partialFingerprints":{"codehealthFindingId/v1":"b4c6dd21574331046271617791103aa5e3fc81f95366054a057abb76379c701b"}},{"ruleId":"D1","level":"warning","message":{"text":"commands.dumpProcedures (cyclomatic 18): commands.dumpProcedures has cyclomatic complexity 18 (threshold 15). Of this number, 16 points are the body\u0027s own statements and 2 belong to one function literal inside it that branches. To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/dump.go"},"region":{"startLine":251}}}],"partialFingerprints":{"codehealthFindingId/v1":"ac2b9d8ea7d0c13e4c397d5fd504833964f252bc9af8b113054f6e27a27804f8"}},{"ruleId":"D1","level":"warning","message":{"text":"commands.getRawReferencesFromStoreRoot (cyclomatic 18): commands.getRawReferencesFromStoreRoot has cyclomatic complexity 18 (threshold 15). Of this number, 9 points are the body\u0027s own statements and 9 belong to one function literal inside it that branches. To reduce it, split the body: these branches sit side by side rather than nested inside one another, so extracting each one on its own would leave a function per branch. Group the statements between the checks into named steps and move each step into its own function, so the body reads as a short sequence of named stages."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/fsck.go"},"region":{"startLine":984}}}],"partialFingerprints":{"codehealthFindingId/v1":"bca980ed923d1d339d388a9243eb27d9c2b57b1575cd9257ba699814075d5408"}},{"ruleId":"D1","level":"warning","message":{"text":"commands.constructInterpolatedDoltLogQuery (cyclomatic 18): commands.constructInterpolatedDoltLogQuery has cyclomatic complexity 18 (threshold 15). Of this number, 17 points are the body\u0027s own statements and 1 belongs to one function literal inside it that branches. To reduce it, split the body: these branches sit side by side rather than nested inside one another, so extracting each one on its own would leave a function per branch. Group the statements between the checks into named steps and move each step into its own function, so the body reads as a short sequence of named stages."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/log.go"},"region":{"startLine":192}}}],"partialFingerprints":{"codehealthFindingId/v1":"473d5e3644d86d3db91c326a2114e1ab9f53148c85438896c6eda431885a3517"}},{"ruleId":"D1","level":"warning","message":{"text":"cnfcmds.printConflicts (cyclomatic 18): cnfcmds.printConflicts has cyclomatic complexity 18 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/cnfcmds/cat.go"},"region":{"startLine":122}}}],"partialFingerprints":{"codehealthFindingId/v1":"d04f855f526642c186613afba043004588f91d1b7f9ddf985835adca079d780c"}},{"ruleId":"D1","level":"warning","message":{"text":"diffArgs.applyDiffRoots (cyclomatic 18): diffArgs.applyDiffRoots has cyclomatic complexity 18 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/diff.go"},"region":{"startLine":559}}}],"partialFingerprints":{"codehealthFindingId/v1":"1a898d258af7b6189d7bb07d22d2807de5d343ecbd258685fe2824b6124ed953"}},{"ruleId":"D1","level":"warning","message":{"text":"InitCmd.Exec (cyclomatic 18): InitCmd.Exec has cyclomatic complexity 18 (threshold 15). To reduce it, split the body: these branches sit side by side rather than nested inside one another, so extracting each one on its own would leave a function per branch. Group the statements between the checks into named steps and move each step into its own function, so the body reads as a short sequence of named stages."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/init.go"},"region":{"startLine":87}}}],"partialFingerprints":{"codehealthFindingId/v1":"334e992bfd4d1acf0686a231a982eb80640e43fcf6327cea16a33d35941cc661"}},{"ruleId":"D1","level":"warning","message":{"text":"ReadTablesCmd.Exec (cyclomatic 18): ReadTablesCmd.Exec has cyclomatic complexity 18 (threshold 15). To reduce it, split the body: these branches sit side by side rather than nested inside one another, so extracting each one on its own would leave a function per branch. Group the statements between the checks into named steps and move each step into its own function, so the body reads as a short sequence of named stages."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/read_tables.go"},"region":{"startLine":85}}}],"partialFingerprints":{"codehealthFindingId/v1":"cbc662ad0e7452cbafe4c2730248acc391c33f3b4715fd59148f7c3922164ba1"}},{"ruleId":"D1","level":"warning","message":{"text":"sqlserver.validateAndPrepareMCP (cyclomatic 18): sqlserver.validateAndPrepareMCP has cyclomatic complexity 18 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/sqlserver/mcp_validate.go"},"region":{"startLine":30}}}],"partialFingerprints":{"codehealthFindingId/v1":"3de05acbeac87c92427a0130e0b42e8e8716d3a7a9601e51591a29e1f0c4cf29"}},{"ruleId":"D1","level":"warning","message":{"text":"tblcmds.move (cyclomatic 18): tblcmds.move has cyclomatic complexity 18 (threshold 15). Most of this is not in the body itself: 6 of the 18 points are its own statements and the rest belongs to 2 function literals inside it that branch (lines 675, 729). The decisions are inside those literals, which nothing outside this body can call, review or test on its own, so splitting the enclosing body is not the move available here. To reduce it, lift the literals\u0027 work into a named function or method at the enclosing scope and have each literal call it, then reduce whichever part then reads as the largest."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/tblcmds/import.go"},"region":{"startLine":666}}}],"partialFingerprints":{"codehealthFindingId/v1":"edfd133582fa656cc96c5ee17cbc3ab292c9398d996f010d712b15cfff63dc63"}},{"ruleId":"D1","level":"warning","message":{"text":"MatchNode.Remove (cyclomatic 18): MatchNode.Remove has cyclomatic complexity 18 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/branch_control/expr_parser_node.go"},"region":{"startLine":333}}}],"partialFingerprints":{"codehealthFindingId/v1":"0feeac86118a65cae9a9932846fa60668492d15ebc37d67eec7d48f072b027c8"}},{"ruleId":"D1","level":"warning","message":{"text":"actions.findCommonType (cyclomatic 18): actions.findCommonType has cyclomatic complexity 18 (threshold 15). To reduce it, split the body: these branches sit side by side rather than nested inside one another, so extracting each one on its own would leave a function per branch. Group the statements between the checks into named steps and move each step into its own function, so the body reads as a short sequence of named stages."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/env/actions/infer_schema.go"},"region":{"startLine":322}}}],"partialFingerprints":{"codehealthFindingId/v1":"adbf7bf98045c56e8668016f179f3643673821f246b7f9bfe2a0c14719309c5e"}},{"ruleId":"D1","level":"warning","message":{"text":"doltWorkflowManager.newWorkflowSavedQueryStepExpectedRowColumnResult (cyclomatic 18): doltWorkflowManager.newWorkflowSavedQueryStepExpectedRowColumnResult has cyclomatic complexity 18 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/env/actions/dolt_ci/workflow_manager.go"},"region":{"startLine":402}}}],"partialFingerprints":{"codehealthFindingId/v1":"22dd46d02e5d8beb6f54d6f880b4bfad366ef764868bbb3f89a9c0dc0c925467"}},{"ruleId":"D1","level":"warning","message":{"text":"merge.convertKeyBetweenTypes (cyclomatic 18): merge.convertKeyBetweenTypes has cyclomatic complexity 18 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/merge/violations_fk_prolly.go"},"region":{"startLine":654}}}],"partialFingerprints":{"codehealthFindingId/v1":"4181fd377c92e171cce476c6fc94802d60865429c7ca8fe0f147fe6cffeecf6b"}},{"ruleId":"D1","level":"warning","message":{"text":"secondaryMerger.merge (cyclomatic 18): secondaryMerger.merge has cyclomatic complexity 18 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/merge/merge_prolly_rows.go"},"region":{"startLine":1594}}}],"partialFingerprints":{"codehealthFindingId/v1":"4dbe8a187a65dca47fcbe90526640cdcfb507763c144160f4027c2489c7f1d4e"}},{"ruleId":"D1","level":"warning","message":{"text":"RemoteChunkStore.StreamChunkLocations (cyclomatic 18): RemoteChunkStore.StreamChunkLocations has cyclomatic complexity 18 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/remotesrv/grpc.go"},"region":{"startLine":347}}}],"partialFingerprints":{"codehealthFindingId/v1":"3c598865c85f8c5519fc17f654225fa1f103afed07e66dd637c395ad0d41c717"}},{"ruleId":"D1","level":"warning","message":{"text":"sqle.migrateDoltProceduresSchema (cyclomatic 18): sqle.migrateDoltProceduresSchema has cyclomatic complexity 18 (threshold 15). Of this number, 16 points are the body\u0027s own statements and 2 belong to one function literal inside it that branches. To reduce it, split the body: these branches sit side by side rather than nested inside one another, so extracting each one on its own would leave a function per branch. Group the statements between the checks into named steps and move each step into its own function, so the body reads as a short sequence of named stages."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/procedures_table.go"},"region":{"startLine":204}}}],"partialFingerprints":{"codehealthFindingId/v1":"33871d5e5331e76930f9dee50107c779e175a9244bac4f17e29270ceef59e81f"}},{"ruleId":"D1","level":"warning","message":{"text":"sqle.migrateOldSchemasTableToNew (cyclomatic 18): sqle.migrateOldSchemasTableToNew has cyclomatic complexity 18 (threshold 15). Of this number, 16 points are the body\u0027s own statements and 2 belong to one function literal inside it that branches. To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/schema_table.go"},"region":{"startLine":274}}}],"partialFingerprints":{"codehealthFindingId/v1":"4240b563b306056a350caa589516339a5dc42fba276c382dce707aed8aac4183"}},{"ruleId":"D1","level":"warning","message":{"text":"sqle.getSchemaFragmentsOfType (cyclomatic 18): sqle.getSchemaFragmentsOfType has cyclomatic complexity 18 (threshold 15). Of this number, 16 points are the body\u0027s own statements and 2 belong to one function literal inside it that branches. To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/schema_table.go"},"region":{"startLine":414}}}],"partialFingerprints":{"codehealthFindingId/v1":"e2e2dfbedd398a8355bbddcc18603e0722ba18c53391dd9a28da8d69330d1c5a"}},{"ruleId":"D1","level":"warning","message":{"text":"doltProceduresDiffPartitionRowIter.readDoltProceduresRowsFromRoot (cyclomatic 18): doltProceduresDiffPartitionRowIter.readDoltProceduresRowsFromRoot has cyclomatic complexity 18 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dolt_procedures_diff_table.go"},"region":{"startLine":456}}}],"partialFingerprints":{"codehealthFindingId/v1":"1b6c4cd270f01db3a72cf4929e2fba71e142eafddd344b99060fde016f81ebb1"}},{"ruleId":"D1","level":"warning","message":{"text":"dprocedures.doltBackupRestore (cyclomatic 18): dprocedures.doltBackupRestore has cyclomatic complexity 18 (threshold 15). To reduce it, split the body: these branches sit side by side rather than nested inside one another, so extracting each one on its own would leave a function per branch. Group the statements between the checks into named steps and move each step into its own function, so the body reads as a short sequence of named stages."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dprocedures/dolt_backup.go"},"region":{"startLine":205}}}],"partialFingerprints":{"codehealthFindingId/v1":"1eedf275a4b1116362e00b44fb73e06a3acc5038bb0da2c7515370fa5a5fd53f"}},{"ruleId":"D1","level":"warning","message":{"text":"dprocedures.checkoutTablesFromCommit (cyclomatic 18): dprocedures.checkoutTablesFromCommit has cyclomatic complexity 18 (threshold 15). To reduce it, split the body: these branches sit side by side rather than nested inside one another, so extracting each one on its own would leave a function per branch. Group the statements between the checks into named steps and move each step into its own function, so the body reads as a short sequence of named stages."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dprocedures/dolt_checkout.go"},"region":{"startLine":629}}}],"partialFingerprints":{"codehealthFindingId/v1":"0878cbbab64d7bc0948e43ca723ee8b19b4b627dad4e3fcb8db5c420a10fe37e"}},{"ruleId":"D1","level":"warning","message":{"text":"dprocedures.doDoltGC (cyclomatic 18): dprocedures.doDoltGC has cyclomatic complexity 18 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dprocedures/dolt_gc.go"},"region":{"startLine":208}}}],"partialFingerprints":{"codehealthFindingId/v1":"49f0a12027fe0c652077babf984f075fb74c88127de4fc51ce802fa60b9f26e4"}},{"ruleId":"D1","level":"warning","message":{"text":"DiffSummaryTableFunction.RowIter (cyclomatic 18): DiffSummaryTableFunction.RowIter has cyclomatic complexity 18 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dtablefunctions/dolt_diff_summary.go"},"region":{"startLine":264}}}],"partialFingerprints":{"codehealthFindingId/v1":"5dc019dc9ca5e1beb8eb664ce758ce3bb8e90901e612a770987d4c1c87446ed7"}},{"ruleId":"D1","level":"warning","message":{"text":"QueryDiffTableFunction.pkRowIter (cyclomatic 18): QueryDiffTableFunction.pkRowIter has cyclomatic complexity 18 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dtablefunctions/dolt_query_diff.go"},"region":{"startLine":243}}}],"partialFingerprints":{"codehealthFindingId/v1":"6bef11b3bf840ab79b49bd685ac4d50c62b389ed9a382fd56fc64877345fd0dc"}},{"ruleId":"D1","level":"warning","message":{"text":"SchemaDiffTableFunction.RowIter (cyclomatic 18): SchemaDiffTableFunction.RowIter has cyclomatic complexity 18 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dtablefunctions/dolt_schema_diff.go"},"region":{"startLine":268}}}],"partialFingerprints":{"codehealthFindingId/v1":"032279b6ca797ac8e2dcca6656e6c0adb22c851beea90ec1b2495599c8503355"}},{"ruleId":"D1","level":"warning","message":{"text":"workspaceDiffIter.queueWorkspaceRows (cyclomatic 18): workspaceDiffIter.queueWorkspaceRows has cyclomatic complexity 18 (threshold 15). Of this number, 10 points are the body\u0027s own statements and 8 belong to 2 function literals inside it that branch. To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Where every arm is uniform \u2014 the same kind of value, with no behaviour of its own \u2014 a table keyed by the case is the shorter form; wherever the arms carry different data or different behaviour, keep them as cases, because collapsing those trades an explicit, reviewable set of cases for nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dtables/workspace_table.go"},"region":{"startLine":921}}}],"partialFingerprints":{"codehealthFindingId/v1":"74c94ec39c5873fad9aac79b4a7ab27187fc0c1f7a8f184fd026c3d5c56e8b2e"}},{"ruleId":"D1","level":"warning","message":{"text":"main.outputEncodedValue (cyclomatic 18): main.outputEncodedValue has cyclomatic complexity 18 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/cmd/noms/noms_show.go"},"region":{"startLine":173}}}],"partialFingerprints":{"codehealthFindingId/v1":"cdccc1e6792a73bbd544c753a614f720a7a605f08db409b6c683c2050684054a"}},{"ruleId":"D1","level":"warning","message":{"text":"PullTableFileWriter.addChunkThread (cyclomatic 18): PullTableFileWriter.addChunkThread has cyclomatic complexity 18 (threshold 15). Of this number, 14 points are the body\u0027s own statements and 4 belong to 2 function literals inside it that branch. To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/datas/pull/pull_table_file_writer.go"},"region":{"startLine":223}}}],"partialFingerprints":{"codehealthFindingId/v1":"206f3573bb2fdb7c1d65e0d0be73bd06e777327ae26864bac08adbd13a34ab09"}},{"ruleId":"D1","level":"warning","message":{"text":"Puller.Pull (cyclomatic 18): Puller.Pull has cyclomatic complexity 18 (threshold 15). Most of this is not in the body itself: 6 of the 18 points are its own statements and the rest belongs to 2 function literals inside it that branch (lines 403, 384). The decisions are inside those literals, which nothing outside this body can call, review or test on its own, so splitting the enclosing body is not the move available here. To reduce it, lift the literals\u0027 work into a named function or method at the enclosing scope and have each literal call it, then reduce whichever part then reads as the largest."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/datas/pull/puller.go"},"region":{"startLine":343}}}],"partialFingerprints":{"codehealthFindingId/v1":"c4dcd5793c5a49b110c295d987e85c3bf877c388d99544324329b244522ad2f5"}},{"ruleId":"D1","level":"warning","message":{"text":"nbs.markAndSweepChunks (cyclomatic 18): nbs.markAndSweepChunks has cyclomatic complexity 18 (threshold 15). Of this number, 11 points are the body\u0027s own statements and 7 belong to one function literal inside it that branches. To reduce it, split the body: these branches sit side by side rather than nested inside one another, so extracting each one on its own would leave a function per branch. Group the statements between the checks into named steps and move each step into its own function, so the body reads as a short sequence of named stages."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/nbs/store.go"},"region":{"startLine":2303}}}],"partialFingerprints":{"codehealthFindingId/v1":"40934d4e9ed42fed7f6fb362676ee8e12b3bd70a46037dcd3316c102b27ff585"}},{"ruleId":"D1","level":"warning","message":{"text":"nbs.planTableConjoin (cyclomatic 18): nbs.planTableConjoin has cyclomatic complexity 18 (threshold 15). Of this number, 17 points are the body\u0027s own statements and 1 belongs to one function literal inside it that branches. To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/nbs/table_persister.go"},"region":{"startLine":191}}}],"partialFingerprints":{"codehealthFindingId/v1":"4adff24029b94c9dcb4a6634e23ff19a5a4034e5d6129f8c8dc9789dbfb0d3d0"}},{"ruleId":"D1","level":"warning","message":{"text":"archiveReader.iterate (cyclomatic 18): archiveReader.iterate has cyclomatic complexity 18 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/nbs/archive_reader.go"},"region":{"startLine":647}}}],"partialFingerprints":{"codehealthFindingId/v1":"1bf195b4885952daa73dd615c4f6feedbfaa6aebbf6398e9efee3eb3aa6bc399"}},{"ruleId":"D1","level":"warning","message":{"text":"ChunkJournal.bootstrapJournalWriter (cyclomatic 18): ChunkJournal.bootstrapJournalWriter has cyclomatic complexity 18 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/nbs/journal.go"},"region":{"startLine":155}}}],"partialFingerprints":{"codehealthFindingId/v1":"cb9c58a23d7fffd67753e482702941546dd6980922f8a7254d8bb6ca6b088c9a"}},{"ruleId":"D1","level":"warning","message":{"text":"ProximityMapBuilder.makePathMaps (cyclomatic 18): ProximityMapBuilder.makePathMaps has cyclomatic complexity 18 (threshold 15). Of this number, 15 points are the body\u0027s own statements and 3 belong to one function literal inside it that branches. To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/prolly/proximity_map.go"},"region":{"startLine":396}}}],"partialFingerprints":{"codehealthFindingId/v1":"0297f4b673b396724a3a631c83c7250ecc826488d18a4309bfb9351aad19c391"}},{"ruleId":"D1","level":"warning","message":{"text":"Differ.next (cyclomatic 18): Differ.next has cyclomatic complexity 18 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/prolly/tree/diff.go"},"region":{"startLine":151}}}],"partialFingerprints":{"codehealthFindingId/v1":"da717c7ee809617766251e223af7a780a203f6dc794c750a7e8d53d285de08e7"}},{"ruleId":"D1","level":"warning","message":{"text":"IndexedJsonDocument.Compare (cyclomatic 18): IndexedJsonDocument.Compare has cyclomatic complexity 18 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/prolly/tree/json_indexed_document.go"},"region":{"startLine":732}}}],"partialFingerprints":{"codehealthFindingId/v1":"44d5243cb89a5be66997b5377db81d5695af5c1f0bd39f818b7e662fc358f157"}},{"ruleId":"D1","level":"warning","message":{"text":"Sloppy.Update (cyclomatic 18): Sloppy.Update has cyclomatic complexity 18 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/sloppy/sloppy.go"},"region":{"startLine":107}}}],"partialFingerprints":{"codehealthFindingId/v1":"a60492b1b46d23fff1edae9c7eb3201a13dcc2f474b83c220ee19e39c399ce15"}},{"ruleId":"D1","level":"warning","message":{"text":"main.runBats (cyclomatic 18): main.runBats has cyclomatic complexity 18 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/utils/batsee/main.go"},"region":{"startLine":300}}}],"partialFingerprints":{"codehealthFindingId/v1":"fd66db3923fc6f50a0993f5241370cdb0349e5086fe41bd6c2025b1ee7c08907"}},{"ruleId":"D1","level":"warning","message":{"text":"commands.fsckOnChunkStore (cyclomatic 17): commands.fsckOnChunkStore has cyclomatic complexity 17 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/fsck.go"},"region":{"startLine":415}}}],"partialFingerprints":{"codehealthFindingId/v1":"b6c33336a78f95d785559bf485fca8892ce5ab45b3ade7304f76ed9c50d2f71a"}},{"ruleId":"D1","level":"warning","message":{"text":"commands.printMergeStats (cyclomatic 17): commands.printMergeStats has cyclomatic complexity 17 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/merge.go"},"region":{"startLine":347}}}],"partialFingerprints":{"codehealthFindingId/v1":"1442c7ddaa0fe04e71323ff65a4525ee2bc55818f61140da707ccf82f277aedf"}},{"ruleId":"D1","level":"warning","message":{"text":"LsCmd.Exec (cyclomatic 17): LsCmd.Exec has cyclomatic complexity 17 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/ls.go"},"region":{"startLine":78}}}],"partialFingerprints":{"codehealthFindingId/v1":"9e14328df5d08bb95e01acfd123a8e6ee6169fdcd8e4fe36c0fb7140fe711821"}},{"ruleId":"D1","level":"warning","message":{"text":"Namespace.Deserialize (cyclomatic 17): Namespace.Deserialize has cyclomatic complexity 17 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/branch_control/namespace.go"},"region":{"startLine":209}}}],"partialFingerprints":{"codehealthFindingId/v1":"c0c918e7d187e6669a8b89ab9c9c9b98449417c89fcc0d47e2e64dc3843e3ee3"}},{"ruleId":"D1","level":"warning","message":{"text":"WorkingSet.writeValues (cyclomatic 17): WorkingSet.writeValues has cyclomatic complexity 17 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/doltdb/workingset.go"},"region":{"startLine":698}}}],"partialFingerprints":{"codehealthFindingId/v1":"2f1fd18f7289c7c722cb600136b3bb330502337680a4083d8b77acb21e7fcca4"}},{"ruleId":"D1","level":"warning","message":{"text":"actions.moveModifiedTables (cyclomatic 17): actions.moveModifiedTables has cyclomatic complexity 17 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/env/actions/checkout.go"},"region":{"startLine":278}}}],"partialFingerprints":{"codehealthFindingId/v1":"851b4b7b6bb7ec5798d51deb6039a99c71a08e031cfcdc996a289d81c0ea4f4c"}},{"ruleId":"D1","level":"warning","message":{"text":"actions.mergeForeignKeyChanges (cyclomatic 17): actions.mergeForeignKeyChanges has cyclomatic complexity 17 (threshold 15). Most of this is not in the body itself: 5 of the 17 points are its own statements and the rest belongs to 2 function literals inside it that branch (lines 450, 484). The decisions are inside those literals, which nothing outside this body can call, review or test on its own, so splitting the enclosing body is not the move available here. To reduce it, lift the literals\u0027 work into a named function or method at the enclosing scope and have each literal call it, then reduce whichever part then reads as the largest."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/env/actions/checkout.go"},"region":{"startLine":437}}}],"partialFingerprints":{"codehealthFindingId/v1":"ebd8d017656853987547e08e3e503afb1faad1497dfb35937e6defba3e6d3142"}},{"ruleId":"D1","level":"warning","message":{"text":"merge.prollyParentPriDiffFkConstraintViolations (cyclomatic 17): merge.prollyParentPriDiffFkConstraintViolations has cyclomatic complexity 17 (threshold 15). Most of this is not in the body itself: 7 of the 17 points are its own statements and the rest belongs to one function literal inside it that branches (line 178). The decisions are inside the literal, which nothing outside this body can call, review or test on its own, so splitting the enclosing body is not the move available here. To reduce it, lift the literal\u0027s work into a named function or method at the enclosing scope and have the literal call it, then reduce whichever part then reads as the largest."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/merge/violations_fk_prolly.go"},"region":{"startLine":134}}}],"partialFingerprints":{"codehealthFindingId/v1":"8ed1431d573bcbe8a6646848670f70eaf73ab7db28ff46d63fcec5340118dddd"}},{"ruleId":"D1","level":"warning","message":{"text":"valueMerger.processBaseColumn (cyclomatic 17): valueMerger.processBaseColumn has cyclomatic complexity 17 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/merge/merge_prolly_rows.go"},"region":{"startLine":2042}}}],"partialFingerprints":{"codehealthFindingId/v1":"e181b5250b8f8f2f00c6a03a2f2f6d11adf5c319da6fa6ff481d6cf2e72ff002"}},{"ruleId":"D1","level":"warning","message":{"text":"singleSymmetricKeySealer.Unseal (cyclomatic 17): singleSymmetricKeySealer.Unseal has cyclomatic complexity 17 (threshold 15). To reduce it, split the body: these branches sit side by side rather than nested inside one another, so extracting each one on its own would leave a function per branch. Group the statements between the checks into named steps and move each step into its own function, so the body reads as a short sequence of named stages."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/remotesrv/sealer.go"},"region":{"startLine":106}}}],"partialFingerprints":{"codehealthFindingId/v1":"3e6bef6d8d9a0e77cdc87375bea4198964241031ce55176e4a2322f82660af35"}},{"ruleId":"D1","level":"warning","message":{"text":"reliable.StreamingRangeDownload (cyclomatic 17): reliable.StreamingRangeDownload has cyclomatic complexity 17 (threshold 15). Most of this is not in the body itself: 1 of the 17 points is its own statement and the rest belongs to one function literal inside it that branches (line 129). The decisions are inside the literal, which nothing outside this body can call, review or test on its own, so splitting the enclosing body is not the move available here. To reduce it, lift the literal\u0027s work into a named function or method at the enclosing scope and have the literal call it, then reduce whichever part then reads as the largest."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/remotestorage/internal/reliable/http.go"},"region":{"startLine":110}}}],"partialFingerprints":{"codehealthFindingId/v1":"b7019f6c248c756f33c56c4339962192520bf67561c20c8025d5cb434f666c76"}},{"ruleId":"D1","level":"warning","message":{"text":"Database.createIndexedSqlTable (cyclomatic 17): Database.createIndexedSqlTable has cyclomatic complexity 17 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/database.go"},"region":{"startLine":2101}}}],"partialFingerprints":{"codehealthFindingId/v1":"951a5ff80e395a2d2fa609158949e75f735c077b34b4dc8d52b7d118ba5b9646"}},{"ruleId":"D1","level":"warning","message":{"text":"DoltDatabaseProvider.DropDatabase (cyclomatic 17): DoltDatabaseProvider.DropDatabase has cyclomatic complexity 17 (threshold 15). Of this number, 11 points are the body\u0027s own statements and 6 belong to one function literal inside it that branches. To reduce it, split the body: these branches sit side by side rather than nested inside one another, so extracting each one on its own would leave a function per branch. Group the statements between the checks into named steps and move each step into its own function, so the body reads as a short sequence of named stages."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/database_provider.go"},"region":{"startLine":1087}}}],"partialFingerprints":{"codehealthFindingId/v1":"83da2ee1c407f82205b82ccea728e7ce89b734290ba605e5700b7c68b500d4d9"}},{"ruleId":"D1","level":"warning","message":{"text":"dprocedures.checkoutTablesFromHead (cyclomatic 17): dprocedures.checkoutTablesFromHead has cyclomatic complexity 17 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dprocedures/dolt_checkout.go"},"region":{"startLine":730}}}],"partialFingerprints":{"codehealthFindingId/v1":"c066671457a363ffdcf4458f74e2fee4721c4a56bde868ad8a4287ba8108b70d"}},{"ruleId":"D1","level":"warning","message":{"text":"dprocedures.DoDoltConflictsResolve (cyclomatic 17): dprocedures.DoDoltConflictsResolve has cyclomatic complexity 17 (threshold 15). To reduce it, split the body: these branches sit side by side rather than nested inside one another, so extracting each one on its own would leave a function per branch. Group the statements between the checks into named steps and move each step into its own function, so the body reads as a short sequence of named stages."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dprocedures/dolt_conflicts_resolve.go"},"region":{"startLine":384}}}],"partialFingerprints":{"codehealthFindingId/v1":"4caa96f14ff63cffe62c30b3a836644a8b2daea6074814829b2517a8be7bc451"}},{"ruleId":"D1","level":"warning","message":{"text":"dtablefunctions.getTableName (cyclomatic 17): dtablefunctions.getTableName has cyclomatic complexity 17 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dtablefunctions/dolt_preview_merge_conflicts.go"},"region":{"startLine":285}}}],"partialFingerprints":{"codehealthFindingId/v1":"95472ae3d8ec0a81520fb419b0bbfbb2481db2f4994ab8ebd6300cd770ca0b86"}},{"ruleId":"D1","level":"warning","message":{"text":"DiffTableFunction.WithExpressions (cyclomatic 17): DiffTableFunction.WithExpressions has cyclomatic complexity 17 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dtablefunctions/dolt_diff.go"},"region":{"startLine":229}}}],"partialFingerprints":{"codehealthFindingId/v1":"8c1de24b3a97cb47595e3230295e93c683d64099b02c4e9f6d2d70a756007946"}},{"ruleId":"D1","level":"warning","message":{"text":"BranchNamespaceControlTable.Update (cyclomatic 17): BranchNamespaceControlTable.Update has cyclomatic complexity 17 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dtables/branch_namespace_control.go"},"region":{"startLine":200}}}],"partialFingerprints":{"codehealthFindingId/v1":"a0cd9ff8eb111e53d043b2e1fc365b3206d7147038f9eb1312f44a3dd21daffe"}},{"ruleId":"D1","level":"warning","message":{"text":"CommitDiffTable.LookupPartitions (cyclomatic 17): CommitDiffTable.LookupPartitions has cyclomatic complexity 17 (threshold 15). To reduce it, split the body: these branches sit side by side rather than nested inside one another, so extracting each one on its own would leave a function per branch. Group the statements between the checks into named steps and move each step into its own function, so the body reads as a short sequence of named stages."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dtables/commit_diff_table.go"},"region":{"startLine":159}}}],"partialFingerprints":{"codehealthFindingId/v1":"9505715cda6864ac620fee5da881923d36629b6a045053c9189945e5f0a03b00"}},{"ruleId":"D1","level":"warning","message":{"text":"enginetest.validateKeylessIndex (cyclomatic 17): enginetest.validateKeylessIndex has cyclomatic complexity 17 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/enginetest/validation.go"},"region":{"startLine":163}}}],"partialFingerprints":{"codehealthFindingId/v1":"d16d30cda53ab13d603ca0b82225d2ab7ea5cf696fb085819be8ab76756721d2"}},{"ruleId":"D1","level":"warning","message":{"text":"kvexec.mergeComparer (cyclomatic 17): kvexec.mergeComparer has cyclomatic complexity 17 (threshold 15). To reduce it, split the body: these branches sit side by side rather than nested inside one another, so extracting each one on its own would leave a function per branch. Group the statements between the checks into named steps and move each step into its own function, so the body reads as a short sequence of named stages."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/kvexec/merge_join.go"},"region":{"startLine":428}}}],"partialFingerprints":{"codehealthFindingId/v1":"bc513624efec7b77a9de352f629f935d71aaaa08ca7547aa3b895928653a62e6"}},{"ruleId":"D1","level":"warning","message":{"text":"ImportTest.IterImportTables (cyclomatic 17): ImportTest.IterImportTables has cyclomatic complexity 17 (threshold 15). Of this number, 15 points are the body\u0027s own statements and 2 belong to one function literal inside it that branches. To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/performance/import_benchmarker/testdef.go"},"region":{"startLine":515}}}],"partialFingerprints":{"codehealthFindingId/v1":"ed5830502c7bb8f7ff35658068952661225b22f6da2c6b0b502155ae1b3adf2b"}},{"ruleId":"D1","level":"warning","message":{"text":"datas.writeFbCommitParentClosure (cyclomatic 17): datas.writeFbCommitParentClosure has cyclomatic complexity 17 (threshold 15). Of this number, 16 points are the body\u0027s own statements and 1 belongs to one function literal inside it that branches. To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/datas/commit_closure.go"},"region":{"startLine":125}}}],"partialFingerprints":{"codehealthFindingId/v1":"31e6fa94e7f6d78730900ef6af692522eebb572d4c5690d3246c7b838ea1a5c1"}},{"ruleId":"D1","level":"warning","message":{"text":"NomsBlockStore.hasManyDep (cyclomatic 17): NomsBlockStore.hasManyDep has cyclomatic complexity 17 (threshold 15). Of this number, 16 points are the body\u0027s own statements and 1 belongs to one function literal inside it that branches. To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/nbs/store.go"},"region":{"startLine":1385}}}],"partialFingerprints":{"codehealthFindingId/v1":"459e43aebccdb698bdeba50959f1bfe1dff96f884eb7e866a118973a6314b46b"}},{"ruleId":"D1","level":"warning","message":{"text":"PatchGenerator.split (cyclomatic 17): PatchGenerator.split has cyclomatic complexity 17 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/prolly/tree/patch_generator.go"},"region":{"startLine":401}}}],"partialFingerprints":{"codehealthFindingId/v1":"3c8f854b0c3a249df771607bbae86574b607a5bfa8203be6978fb3be28c38b20"}},{"ruleId":"D1","level":"warning","message":{"text":"spec.parseDatabaseSpec (cyclomatic 17): spec.parseDatabaseSpec has cyclomatic complexity 17 (threshold 15). To reduce it, split the body: these branches sit side by side rather than nested inside one another, so extracting each one on its own would leave a function per branch. Group the statements between the checks into named steps and move each step into its own function, so the body reads as a short sequence of named stages."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/spec/spec.go"},"region":{"startLine":572}}}],"partialFingerprints":{"codehealthFindingId/v1":"f66a1b2a974dc53df512196e71cb1f81b803ffea77aaff4b2977a5d90a3cdde3"}},{"ruleId":"D1","level":"warning","message":{"text":"Test.Run (cyclomatic 17): Test.Run has cyclomatic complexity 17 (threshold 15). Of this number, 15 points are the body\u0027s own statements and 2 belong to 2 function literals inside it that branch. To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"integration-tests/go-sql-server-driver/testdef.go"},"region":{"startLine":352}}}],"partialFingerprints":{"codehealthFindingId/v1":"dc2251190e781473c749e1e7ffbad3b479689e2f7e22fc5107a4691cc17658ff"}},{"ruleId":"D1","level":"warning","message":{"text":"commands.clone (cyclomatic 16): commands.clone has cyclomatic complexity 16 (threshold 15). To reduce it, split the body: these branches sit side by side rather than nested inside one another, so extracting each one on its own would leave a function per branch. Group the statements between the checks into named steps and move each step into its own function, so the body reads as a short sequence of named stages."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/clone.go"},"region":{"startLine":111}}}],"partialFingerprints":{"codehealthFindingId/v1":"c07c65bef87641089b7d340a966d5c09322119b84b91774f9c3fb89af6199d5b"}},{"ruleId":"D1","level":"warning","message":{"text":"commands.parseDiffDisplaySettings (cyclomatic 16): commands.parseDiffDisplaySettings has cyclomatic complexity 16 (threshold 15). To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Where every arm is uniform \u2014 the same kind of value, with no behaviour of its own \u2014 a table keyed by the case is the shorter form; wherever the arms carry different data or different behaviour, keep them as cases, because collapsing those trades an explicit, reviewable set of cases for nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/diff.go"},"region":{"startLine":374}}}],"partialFingerprints":{"codehealthFindingId/v1":"aa608007e8d90a60f289d9fb24bd99b022948ba5537750cc3378c83add2856d2"}},{"ruleId":"D1","level":"warning","message":{"text":"commands.computeColumnEnds (cyclomatic 16): commands.computeColumnEnds has cyclomatic complexity 16 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/log_graph.go"},"region":{"startLine":224}}}],"partialFingerprints":{"codehealthFindingId/v1":"b7b9da50240ebed94bafbf4e9935775e7c55609b77d6c788c6d0ac12729af395"}},{"ruleId":"D1","level":"warning","message":{"text":"commands.execBatchMode (cyclomatic 16): commands.execBatchMode has cyclomatic complexity 16 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/sql.go"},"region":{"startLine":626}}}],"partialFingerprints":{"codehealthFindingId/v1":"4e1c0e339a2f309000e6a55c87b171f66c98cff136ece0db4ace043a18ce7ff9"}},{"ruleId":"D1","level":"warning","message":{"text":"LsCmd.Exec (cyclomatic 16): LsCmd.Exec has cyclomatic complexity 16 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/indexcmds/ls.go"},"region":{"startLine":59}}}],"partialFingerprints":{"codehealthFindingId/v1":"26762e2e8634c0171c5c6d3f23e285ed9fb0ba320ada1c442a781bd1ff4809fe"}},{"ruleId":"D1","level":"warning","message":{"text":"doltdb.resolveConflictingPatterns (cyclomatic 16): doltdb.resolveConflictingPatterns has cyclomatic complexity 16 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/doltdb/ignore.go"},"region":{"startLine":200}}}],"partialFingerprints":{"codehealthFindingId/v1":"9392bbcfd7cb67864c47eb6c7db4b0f7f837080e259b3ff16b23d3f3658f41f8"}},{"ruleId":"D1","level":"warning","message":{"text":"fbRvStorage.EditTablesMap (cyclomatic 16): fbRvStorage.EditTablesMap has cyclomatic complexity 16 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/doltdb/root_val_storage.go"},"region":{"startLine":189}}}],"partialFingerprints":{"codehealthFindingId/v1":"5637eecbb2484835f73166a87ca5c4e59525fc1213a8f6ae72e9a8e58986ecdc"}},{"ruleId":"D1","level":"warning","message":{"text":"actions.CleanUntracked (cyclomatic 16): actions.CleanUntracked has cyclomatic complexity 16 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/env/actions/reset.go"},"region":{"startLine":271}}}],"partialFingerprints":{"codehealthFindingId/v1":"a233e636333a6e3efb260f552d06b33b001413184dab7d2b3db3fa6b88e08ec9"}},{"ruleId":"D1","level":"warning","message":{"text":"env.CanCreateDatabaseAtPath (cyclomatic 16): env.CanCreateDatabaseAtPath has cyclomatic complexity 16 (threshold 15). Of this number, 8 points are the body\u0027s own statements and 8 belong to one function literal inside it that branches. To reduce it, split the body: these branches sit side by side rather than nested inside one another, so extracting each one on its own would leave a function per branch. Group the statements between the checks into named steps and move each step into its own function, so the body reads as a short sequence of named stages."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/env/environment.go"},"region":{"startLine":544}}}],"partialFingerprints":{"codehealthFindingId/v1":"bafda9d9908b8cba0a9e151a5450d45da7acab7a0c0d77f2d1122f83340bfa6a"}},{"ruleId":"D1","level":"warning","message":{"text":"env.NormalizeGitRemoteUrl (cyclomatic 16): env.NormalizeGitRemoteUrl has cyclomatic complexity 16 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/env/git_remote_url.go"},"region":{"startLine":50}}}],"partialFingerprints":{"codehealthFindingId/v1":"416d1f3892c7cf2eef9ec53c1ba86d5b51cba6c869787c1562ad4ff95408ae37"}},{"ruleId":"D1","level":"warning","message":{"text":"merge.rebuildFullTextIndexes (cyclomatic 16): merge.rebuildFullTextIndexes has cyclomatic complexity 16 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/merge/fulltext_rebuild.go"},"region":{"startLine":40}}}],"partialFingerprints":{"codehealthFindingId/v1":"ea565a83fc7aacf0a94a8c4f2bd74a9265ead49d46473dbdc097132f8eaa76b7"}},{"ruleId":"D1","level":"warning","message":{"text":"revert.dirtyTablesConflictWithRevert (cyclomatic 16): revert.dirtyTablesConflictWithRevert has cyclomatic complexity 16 (threshold 15). To reduce it, split the body: these branches sit side by side rather than nested inside one another, so extracting each one on its own would leave a function per branch. Group the statements between the checks into named steps and move each step into its own function, so the body reads as a short sequence of named stages."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/revert/revert.go"},"region":{"startLine":96}}}],"partialFingerprints":{"codehealthFindingId/v1":"79c79c2eef604326629c2a5a7316dd3699add7f27edae063cb113800a19d3991"}},{"ruleId":"D1","level":"warning","message":{"text":"revert.AbortRevert (cyclomatic 16): revert.AbortRevert has cyclomatic complexity 16 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/revert/revert.go"},"region":{"startLine":356}}}],"partialFingerprints":{"codehealthFindingId/v1":"3f1d40edeaaa11f15fea98bcf702ca7be1abc55acdaff4cb6d9aff3a25fcc1ba"}},{"ruleId":"D1","level":"warning","message":{"text":"revert.applySingleRevert (cyclomatic 16): revert.applySingleRevert has cyclomatic complexity 16 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/revert/revert.go"},"region":{"startLine":440}}}],"partialFingerprints":{"codehealthFindingId/v1":"8d0dd548ff2e470d395bed0ef445521c6155412cdd6770d27aa37ffebca5a369"}},{"ruleId":"D1","level":"warning","message":{"text":"servercfg.ValidateClusterConfig (cyclomatic 16): servercfg.ValidateClusterConfig has cyclomatic complexity 16 (threshold 15). To reduce it, split the body: these branches sit side by side rather than nested inside one another, so extracting each one on its own would leave a function per branch. Group the statements between the checks into named steps and move each step into its own function, so the body reads as a short sequence of named stages."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/servercfg/serverconfig.go"},"region":{"startLine":420}}}],"partialFingerprints":{"codehealthFindingId/v1":"4924bfaf1e7945ec1719e3a75df0507324aa44e8fb404740c8d954503476e970"}},{"ruleId":"D1","level":"warning","message":{"text":"decimalSerializer.serialize (cyclomatic 16): decimalSerializer.serialize has cyclomatic complexity 16 (threshold 15). To reduce it, split the body: these branches sit side by side rather than nested inside one another, so extracting each one on its own would leave a function per branch. Group the statements between the checks into named steps and move each step into its own function, so the body reads as a short sequence of named stages."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/binlogreplication/binlog_type_serialization.go"},"region":{"startLine":391}}}],"partialFingerprints":{"codehealthFindingId/v1":"ecfc416823893e64d68a43360780d67a8a982a6aae83d60f88c75158add9848d"}},{"ruleId":"D1","level":"warning","message":{"text":"Database.getNonlocalTableNames (cyclomatic 16): Database.getNonlocalTableNames has cyclomatic complexity 16 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/database.go"},"region":{"startLine":1153}}}],"partialFingerprints":{"codehealthFindingId/v1":"ce0ae6f30cd868707d84d49bb0c03c918d9322ba7ad229a8c1ee29873b1cdcf9"}},{"ruleId":"D1","level":"warning","message":{"text":"Database.getTable (cyclomatic 16): Database.getTable has cyclomatic complexity 16 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/database.go"},"region":{"startLine":1497}}}],"partialFingerprints":{"codehealthFindingId/v1":"ead1dbaaa6697aa0988b109ba38113f65fa6c24734384d8a22bab86f2712e74d"}},{"ruleId":"D1","level":"warning","message":{"text":"Database.RenameTable (cyclomatic 16): Database.RenameTable has cyclomatic complexity 16 (threshold 15). To reduce it, split the body: these branches sit side by side rather than nested inside one another, so extracting each one on its own would leave a function per branch. Group the statements between the checks into named steps and move each step into its own function, so the body reads as a short sequence of named stages."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/database.go"},"region":{"startLine":2356}}}],"partialFingerprints":{"codehealthFindingId/v1":"d1ea4d2942d2c4fce42de7410b6258a839eca8109481166fc46b2741e511569b"}},{"ruleId":"D1","level":"warning","message":{"text":"Database.GetViewDefinition (cyclomatic 16): Database.GetViewDefinition has cyclomatic complexity 16 (threshold 15). To reduce it, split the body: these branches sit side by side rather than nested inside one another, so extracting each one on its own would leave a function per branch. Group the statements between the checks into named steps and move each step into its own function, so the body reads as a short sequence of named stages."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/database.go"},"region":{"startLine":2417}}}],"partialFingerprints":{"codehealthFindingId/v1":"52aa89e0f327398baf45beff542039558407bb16994435ffe084d2ddef066d92"}},{"ruleId":"D1","level":"warning","message":{"text":"HasAncestor.Eval (cyclomatic 16): HasAncestor.Eval has cyclomatic complexity 16 (threshold 15). To reduce it, split the body: these branches sit side by side rather than nested inside one another, so extracting each one on its own would leave a function per branch. Group the statements between the checks into named steps and move each step into its own function, so the body reads as a short sequence of named stages."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dfunctions/has_ancestor.go"},"region":{"startLine":42}}}],"partialFingerprints":{"codehealthFindingId/v1":"a79cfa3867631be53c01be3a2026e73605bbc6154d01c0c68405d6408f310443"}},{"ruleId":"D1","level":"warning","message":{"text":"HashOf.Eval (cyclomatic 16): HashOf.Eval has cyclomatic complexity 16 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dfunctions/hashof.go"},"region":{"startLine":54}}}],"partialFingerprints":{"codehealthFindingId/v1":"54add08ef5ec9d2719b5d9f5795999e76893a6d78fb6c84ce506d5e6544a59f9"}},{"ruleId":"D1","level":"warning","message":{"text":"HashOfDatabase.Eval (cyclomatic 16): HashOfDatabase.Eval has cyclomatic complexity 16 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dfunctions/hashof_database.go"},"region":{"startLine":52}}}],"partialFingerprints":{"codehealthFindingId/v1":"4e2b47908241afdcd6178fa7a344ffa83e15e63e3373ae55b081d948898350db"}},{"ruleId":"D1","level":"warning","message":{"text":"dprocedures.doDoltCherryPick (cyclomatic 16): dprocedures.doDoltCherryPick has cyclomatic complexity 16 (threshold 15). To reduce it, split the body: these branches sit side by side rather than nested inside one another, so extracting each one on its own would leave a function per branch. Group the statements between the checks into named steps and move each step into its own function, so the body reads as a short sequence of named stages."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dprocedures/dolt_cherry_pick.go"},"region":{"startLine":69}}}],"partialFingerprints":{"codehealthFindingId/v1":"9364275018e69ae5c9cd8d782a4d880447a0c5d2d1f63bfca971b6faab75bfd4"}},{"ruleId":"D1","level":"warning","message":{"text":"dprocedures.doDoltRevert (cyclomatic 16): dprocedures.doDoltRevert has cyclomatic complexity 16 (threshold 15). To reduce it, split the body: these branches sit side by side rather than nested inside one another, so extracting each one on its own would leave a function per branch. Group the statements between the checks into named steps and move each step into its own function, so the body reads as a short sequence of named stages."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dprocedures/dolt_revert.go"},"region":{"startLine":67}}}],"partialFingerprints":{"codehealthFindingId/v1":"15debcc77acbd53177b42bb48c018f18349fd894ccd838749c72c9b1e37e3310"}},{"ruleId":"D1","level":"warning","message":{"text":"dprocedures.doDoltTag (cyclomatic 16): dprocedures.doDoltTag has cyclomatic complexity 16 (threshold 15). To reduce it, split the body: these branches sit side by side rather than nested inside one another, so extracting each one on its own would leave a function per branch. Group the statements between the checks into named steps and move each step into its own function, so the body reads as a short sequence of named stages."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dprocedures/dolt_tag.go"},"region":{"startLine":38}}}],"partialFingerprints":{"codehealthFindingId/v1":"73ecc47c5d179f0383f8eaee08e31c3cae347f9b9c72fa9d9eba9db0a42834c6"}},{"ruleId":"D1","level":"warning","message":{"text":"SequenceTracker.Next (cyclomatic 16): SequenceTracker.Next has cyclomatic complexity 16 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dsess/sequence_tracker.go"},"region":{"startLine":202}}}],"partialFingerprints":{"codehealthFindingId/v1":"f95b8a7542ac421f010ccc71558eee8c91983f0043b139c507160d33dadcf00b"}},{"ruleId":"D1","level":"warning","message":{"text":"DoltSession.CommitTransaction (cyclomatic 16): DoltSession.CommitTransaction has cyclomatic complexity 16 (threshold 15). Of this number, 15 points are the body\u0027s own statements and 1 belongs to one function literal inside it that branches. To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dsess/session.go"},"region":{"startLine":446}}}],"partialFingerprints":{"codehealthFindingId/v1":"d97646a57ffe4eea6e6ebb0cdbd451bdaefc2cc696b2156961894a6c1f3ba54c"}},{"ruleId":"D1","level":"warning","message":{"text":"dtablefunctions.getDiffStatNodeFromDelta (cyclomatic 16): dtablefunctions.getDiffStatNodeFromDelta has cyclomatic complexity 16 (threshold 15). To reduce it, split the body: these branches sit side by side rather than nested inside one another, so extracting each one on its own would leave a function per branch. Group the statements between the checks into named steps and move each step into its own function, so the body reads as a short sequence of named stages."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dtablefunctions/dolt_diff_stat.go"},"region":{"startLine":375}}}],"partialFingerprints":{"codehealthFindingId/v1":"b24547e11b59947515a93a198f2ed24ea6d97eac89b1824952af8924731d8b7a"}},{"ruleId":"D1","level":"warning","message":{"text":"PreviewMergeConflictsTableFunction.RowIter (cyclomatic 16): PreviewMergeConflictsTableFunction.RowIter has cyclomatic complexity 16 (threshold 15). To reduce it, split the body: these branches sit side by side rather than nested inside one another, so extracting each one on its own would leave a function per branch. Group the statements between the checks into named steps and move each step into its own function, so the body reads as a short sequence of named stages."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dtablefunctions/dolt_preview_merge_conflicts.go"},"region":{"startLine":437}}}],"partialFingerprints":{"codehealthFindingId/v1":"773067de78c73b9e540d3fa97c0176d453cbee9f149407ec46b4d479cb79d1f4"}},{"ruleId":"D1","level":"warning","message":{"text":"dtables.newWorkspaceDiffIter (cyclomatic 16): dtables.newWorkspaceDiffIter has cyclomatic complexity 16 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dtables/workspace_table.go"},"region":{"startLine":1025}}}],"partialFingerprints":{"codehealthFindingId/v1":"9933f1aec759ed08858781a1d84a2da1ec454bce1bee88b6b1c034ab3778e7a4"}},{"ruleId":"D1","level":"warning","message":{"text":"WorkspaceTableDeleter.Delete (cyclomatic 16): WorkspaceTableDeleter.Delete has cyclomatic complexity 16 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dtables/workspace_table.go"},"region":{"startLine":283}}}],"partialFingerprints":{"codehealthFindingId/v1":"6adf41915ff0b726405b8705ebed3dab72e65a73b6f21f026b55c62724564453"}},{"ruleId":"D1","level":"warning","message":{"text":"expreval.getExpFunc (cyclomatic 16): expreval.getExpFunc has cyclomatic complexity 16 (threshold 15). To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function taking that case\u0027s concrete type, so the dispatch reads one line per case. These arms are selected by TYPE rather than by value, so there is no key a lookup table could be built on; where you own the matched types, giving them one shared interface method and calling that is the form a table would have taken, and where you do not, keep the cases \u2014 they stay explicit and reviewable."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/expreval/expression_evaluator.go"},"region":{"startLine":61}}}],"partialFingerprints":{"codehealthFindingId/v1":"d2f9c08640f4597de0eed820dfcadfb3c477ee34b87abd18046fa95259ec6af0"}},{"ruleId":"D1","level":"warning","message":{"text":"WritableDoltTable.tableSetsForRewrite (cyclomatic 16): WritableDoltTable.tableSetsForRewrite has cyclomatic complexity 16 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/tables.go"},"region":{"startLine":841}}}],"partialFingerprints":{"codehealthFindingId/v1":"82edf12ae8696326dd6da20c04e3d9073e6d2dfd933110b8f21f779ca07ef130"}},{"ruleId":"D1","level":"warning","message":{"text":"AlterableDoltTable.dropIndex (cyclomatic 16): AlterableDoltTable.dropIndex has cyclomatic complexity 16 (threshold 15). To reduce it, split the body: these branches sit side by side rather than nested inside one another, so extracting each one on its own would leave a function per branch. Group the statements between the checks into named steps and move each step into its own function, so the body reads as a short sequence of named stages."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/tables.go"},"region":{"startLine":2997}}}],"partialFingerprints":{"codehealthFindingId/v1":"a25ff60326312ff5619908036ea10bd0cd60ee84a35594d19ac35bd75ed24fc3"}},{"ruleId":"D1","level":"warning","message":{"text":"prollySecondaryIndexWriter.Update (cyclomatic 16): prollySecondaryIndexWriter.Update has cyclomatic complexity 16 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/writer/prolly_index_writer.go"},"region":{"startLine":507}}}],"partialFingerprints":{"codehealthFindingId/v1":"0ed559585319669ead052b1bd73241acbbc6542d2991e0a7bd7ce07c5504466f"}},{"ruleId":"D1","level":"warning","message":{"text":"csv.appendToken (cyclomatic 16): csv.appendToken has cyclomatic complexity 16 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/table/untyped/csv/line.go"},"region":{"startLine":67}}}],"partialFingerprints":{"codehealthFindingId/v1":"7be52a5d460010e9ecabfb391ef7fecea11ff8875a1a65e9ca1a0d2d89da4194"}},{"ruleId":"D1","level":"warning","message":{"text":"CSVReader.csvReadRecords (cyclomatic 16): CSVReader.csvReadRecords has cyclomatic complexity 16 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/table/untyped/csv/reader.go"},"region":{"startLine":334}}}],"partialFingerprints":{"codehealthFindingId/v1":"d4b352d8b5799348f598ba07bb775976d306c18c785a72a8e020fcb69f07e879"}},{"ruleId":"D1","level":"warning","message":{"text":"blobstore.sliceChunkParts (cyclomatic 16): blobstore.sliceChunkParts has cyclomatic complexity 16 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/blobstore/git_blobstore.go"},"region":{"startLine":1731}}}],"partialFingerprints":{"codehealthFindingId/v1":"d358446c6f55047c0fcedc0e10eae43c0bee9eeec97aa511ef47aeacf5005854"}},{"ruleId":"D1","level":"warning","message":{"text":"nbs.validateManifest (cyclomatic 16): nbs.validateManifest has cyclomatic complexity 16 (threshold 15). To reduce it, split the body: these branches sit side by side rather than nested inside one another, so extracting each one on its own would leave a function per branch. Group the statements between the checks into named steps and move each step into its own function, so the body reads as a short sequence of named stages."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/nbs/dynamo_manifest.go"},"region":{"startLine":138}}}],"partialFingerprints":{"codehealthFindingId/v1":"3e4a765be21e838ca91c12e55be9b16e82a1a37fc3c084194dda811c26fe7962"}},{"ruleId":"D1","level":"warning","message":{"text":"main.main (cyclomatic 16): main.main has cyclomatic complexity 16 (threshold 15). Of this number, 14 points are the body\u0027s own statements and 2 belong to one function literal inside it that branches. To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/nbs/frag/main.go"},"region":{"startLine":53}}}],"partialFingerprints":{"codehealthFindingId/v1":"b170178cc088fabdfda0b3124f4132e2454b74e9329fca600618f7b173aa7673"}},{"ruleId":"D1","level":"warning","message":{"text":"journalWriter.readJournalIndex (cyclomatic 16): journalWriter.readJournalIndex has cyclomatic complexity 16 (threshold 15). Most of this is not in the body itself: 5 of the 16 points are its own statements and the rest belongs to 2 function literals inside it that branch (lines 343, 376). The decisions are inside those literals, which nothing outside this body can call, review or test on its own, so splitting the enclosing body is not the move available here. To reduce it, lift the literals\u0027 work into a named function or method at the enclosing scope and have each literal call it, then reduce whichever part then reads as the largest."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/nbs/journal_writer.go"},"region":{"startLine":325}}}],"partialFingerprints":{"codehealthFindingId/v1":"e20e1d1652c0f7256da8e0b18e5f2ed1b35c25188b4e712060eb28cba5c740d3"}},{"ruleId":"D2","level":"warning","message":{"text":"doltWorkflowManager.updateExistingWorkflow (cognitive 944): doltWorkflowManager.updateExistingWorkflow has cognitive complexity 944 (threshold 15). Drivers by points: if/else 688, loops 249, boolean chains 7 (nesting depth added 737). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/env/actions/dolt_ci/workflow_manager.go"},"region":{"startLine":1055}}}],"partialFingerprints":{"codehealthFindingId/v1":"2ff9b06de44671b9f178031b88073abe56bfacb102c720f8ffd56fbd893904a3"}},{"ruleId":"D2","level":"warning","message":{"text":"Database.getTableInsensitiveWithRoot (cognitive 303): Database.getTableInsensitiveWithRoot has cognitive complexity 303 (threshold 15). Drivers by points: if/else 268, boolean chains 31, match/switch 4 (nesting depth added 144). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/database.go"},"region":{"startLine":404}}}],"partialFingerprints":{"codehealthFindingId/v1":"e3c6b0c1d26af387ff4bc7df041a508273f54dced559466fda3ca0c82d9b4894"}},{"ruleId":"D2","level":"warning","message":{"text":"doltWorkflowManager.createWorkflow (cognitive 168): doltWorkflowManager.createWorkflow has cognitive complexity 168 (threshold 15). Drivers by points: if/else 137, loops 29, boolean chains 2 (nesting depth added 111). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/env/actions/dolt_ci/workflow_manager.go"},"region":{"startLine":1937}}}],"partialFingerprints":{"codehealthFindingId/v1":"026490889340a3b02af1f6b42cdb4595353f7b07b8bb28cd04c484a35eebf7fa"}},{"ruleId":"D2","level":"warning","message":{"text":"tree.SendPatches (cognitive 157): tree.SendPatches has cognitive complexity 157 (threshold 15). Drivers by points: if/else 151, boolean chains 2, loops 2, match/switch 2 (nesting depth added 98). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/prolly/tree/merge.go"},"region":{"startLine":166}}}],"partialFingerprints":{"codehealthFindingId/v1":"eb14d83d86d5db32f14791213c680925c147d1fc268a21e414338d0362f42a1d"}},{"ruleId":"D2","level":"warning","message":{"text":"mergeJoinKvIter.Next (cognitive 150): mergeJoinKvIter.Next has cognitive complexity 150 (threshold 15). Drivers by points: if/else 132, boolean chains 10, jumps 4, loops 2, match/switch 2 (nesting depth added 90). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/kvexec/merge_join.go"},"region":{"startLine":104}}}],"partialFingerprints":{"codehealthFindingId/v1":"d71e2cf715178a25b960e6620f502f34e6c64379ef85a3f95b9746fe1589fee2"}},{"ruleId":"D2","level":"warning","message":{"text":"commands.drawCommitDotsAndBranchPaths (cognitive 125): commands.drawCommitDotsAndBranchPaths has cognitive complexity 125 (threshold 15). Drivers by points: if/else 65, loops 60 (nesting depth added 96). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/log_graph.go"},"region":{"startLine":480}}}],"partialFingerprints":{"codehealthFindingId/v1":"1f5c7592eed03083d09ad3edac109df692137682e2d6c8e540944e508e91972b"}},{"ruleId":"D2","level":"warning","message":{"text":"IndexedJsonDiffer.Next (cognitive 124): IndexedJsonDiffer.Next has cognitive complexity 124 (threshold 15). Drivers by points: if/else 111, boolean chains 9, match/switch 3, loops 1 (nesting depth added 75). Of this number, 120 points are the body\u0027s own statements and 4 belong to 2 function literals inside it that branch. To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/prolly/tree/indexed_json_diff.go"},"region":{"startLine":102}}}],"partialFingerprints":{"codehealthFindingId/v1":"3865b02ab53c17610487acac185cef4ce9b4dcf7e8ae8c9ca9c8eaa413a99298"}},{"ruleId":"D2","level":"warning","message":{"text":"sqlserver.ConfigureServices (cognitive 117): sqlserver.ConfigureServices has cognitive complexity 117 (threshold 15). Drivers by points: if/else 109, boolean chains 7, match/switch 1 (nesting depth added 23). Most of this is not in the body itself: 1 of the 117 points is its own statement and the rest belongs to 29 function literals inside it that branch (lines 651, 432, 507, \u2026). The decisions are inside those literals, which nothing outside this body can call, review or test on its own, so splitting the enclosing body is not the move available here. To reduce it, lift the literals\u0027 work into a named function or method at the enclosing scope and have each literal call it, then reduce whichever part then reads as the largest."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/sqlserver/server.go"},"region":{"startLine":125}}}],"partialFingerprints":{"codehealthFindingId/v1":"22eaeb51a136320d4ebef9402589ffd7f185928f533a15a65f38d4d2fa778f46"}},{"ruleId":"D2","level":"warning","message":{"text":"merge.computeProllyTreePatches (cognitive 117): merge.computeProllyTreePatches has cognitive complexity 117 (threshold 15). Drivers by points: if/else 108, boolean chains 3, loops 3, match/switch 3 (nesting depth added 65). Of this number, 105 points are the body\u0027s own statements and 12 belong to one function literal inside it that branches. To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/merge/merge_prolly_rows.go"},"region":{"startLine":149}}}],"partialFingerprints":{"codehealthFindingId/v1":"38091a8fa768e7d58236f6a760a5b364c6fcf83cc56c10efd6564e63976edc40"}},{"ruleId":"D2","level":"warning","message":{"text":"dprocedures.doDoltPull (cognitive 116): dprocedures.doDoltPull has cognitive complexity 116 (threshold 15). Drivers by points: if/else 111, loops 3, boolean chains 2 (nesting depth added 63). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dprocedures/dolt_pull.go"},"region":{"startLine":73}}}],"partialFingerprints":{"codehealthFindingId/v1":"e80edc5768fc95d465870d6579be3ead00672af0b9d86a7e2049e7851e6328c7"}},{"ruleId":"D2","level":"warning","message":{"text":"DoltTransaction.validateWorkingSetForCommit (cognitive 108): DoltTransaction.validateWorkingSetForCommit has cognitive complexity 108 (threshold 15). Drivers by points: if/else 86, loops 15, match/switch 5, boolean chains 2 (nesting depth added 74). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dsess/transactions.go"},"region":{"startLine":645}}}],"partialFingerprints":{"codehealthFindingId/v1":"e94e06a9eda2b51a3dae0627b5d5f57ad3c70175496b6f18f2177ba18b1ce529"}},{"ruleId":"D2","level":"warning","message":{"text":"doltWorkflowManager.getWorkflowConfig (cognitive 104): doltWorkflowManager.getWorkflowConfig has cognitive complexity 104 (threshold 15). Drivers by points: if/else 83, loops 18, match/switch 3 (nesting depth added 70). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/env/actions/dolt_ci/workflow_manager.go"},"region":{"startLine":2135}}}],"partialFingerprints":{"codehealthFindingId/v1":"125f69eccd57ddd0ffd7ff7a6d8b77c266fca8ba8ed210389aa729f094807b0d"}},{"ruleId":"D2","level":"warning","message":{"text":"nbs.JournalInspect (cognitive 104): nbs.JournalInspect has cognitive complexity 104 (threshold 15). Drivers by points: if/else 102, boolean chains 1, loops 1 (nesting depth added 68). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/nbs/journal_inspect.go"},"region":{"startLine":98}}}],"partialFingerprints":{"codehealthFindingId/v1":"232d71239a50d06a53e00ef33d489421c108ef6fbb2398c4882d24c9a899007c"}},{"ruleId":"D2","level":"warning","message":{"text":"tree.PutField (cognitive 102): tree.PutField has cognitive complexity 102 (threshold 15). Drivers by points: if/else 91, match/switch 11 (nesting depth added 61). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/prolly/tree/prolly_fields.go"},"region":{"startLine":419}}}],"partialFingerprints":{"codehealthFindingId/v1":"815c47a1e0d3f6dcfeee8ae9dd3978a5975e36dc591235aedf7d954c24ca818d"}},{"ruleId":"D2","level":"warning","message":{"text":"main.runMain (cognitive 101): main.runMain has cognitive complexity 101 (threshold 15). Drivers by points: if/else 83, match/switch 11, boolean chains 5, loops 2 (nesting depth added 52). Of this number, 94 points are the body\u0027s own statements and 7 belong to 2 function literals inside it that branch. To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/dolt.go"},"region":{"startLine":229}}}],"partialFingerprints":{"codehealthFindingId/v1":"080bc9b336bf3fec3e7f37f798bcc80f4cfb59cf71c188ac5a40ef3098674bc2"}},{"ruleId":"D2","level":"warning","message":{"text":"SerialMessage.WalkAddrs (cognitive 101): SerialMessage.WalkAddrs has cognitive complexity 101 (threshold 15). Drivers by points: if/else 98, loops 2, match/switch 1 (nesting depth added 56). The drivers above price the dispatch low by construction \u2014 a dispatch is charged once however many cases it lists, while each branch inside an arm is charged in full \u2014 so most of this count is what the case bodies hold, and the arms are where it can be reduced. To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Keep every case explicit, and make the behaviour for cases you do not list a deliberate choice rather than an accident."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/types/serial_message.go"},"region":{"startLine":590}}}],"partialFingerprints":{"codehealthFindingId/v1":"ed204ebd0356763581915b46e9cb0fe0a5b086c3f9790d76d3fe417b77f52311"}},{"ruleId":"D2","level":"warning","message":{"text":"PatchGenerator.advanceFromPreviousPatch (cognitive 87): PatchGenerator.advanceFromPreviousPatch has cognitive complexity 87 (threshold 15). Drivers by points: if/else 63, loops 16, boolean chains 4, match/switch 4 (nesting depth added 59). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/prolly/tree/patch_generator.go"},"region":{"startLine":207}}}],"partialFingerprints":{"codehealthFindingId/v1":"e8fee51d54af1bcc799f84099163751add50c130200cfc200162a549c2cd06a3"}},{"ruleId":"D2","level":"warning","message":{"text":"StreamScanner.seekDelimiter (cognitive 86): StreamScanner.seekDelimiter has cognitive complexity 86 (threshold 15). Drivers by points: if/else 76, boolean chains 6, match/switch 3, loops 1 (nesting depth added 58). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/sql_statement_scanner.go"},"region":{"startLine":265}}}],"partialFingerprints":{"codehealthFindingId/v1":"d13c4ee87bff028c4baeacff6f8729f4d8138b3dc19aa6a34d9561da806ea431"}},{"ruleId":"D2","level":"warning","message":{"text":"nullValidator.validateDiff (cognitive 85): nullValidator.validateDiff has cognitive complexity 85 (threshold 15). Drivers by points: if/else 71, loops 12, boolean chains 1, match/switch 1 (nesting depth added 54). The drivers above price the dispatch low by construction \u2014 a dispatch is charged once however many cases it lists, while each branch inside an arm is charged in full \u2014 so most of this count is what the case bodies hold, and the arms are where it can be reduced. To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Keep every case explicit, and make the behaviour for cases you do not list a deliberate choice rather than an accident."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/merge/merge_prolly_rows.go"},"region":{"startLine":1163}}}],"partialFingerprints":{"codehealthFindingId/v1":"29575178948ef1c53d42fe848682d27dd09f0aab8e936ea4be872f1174629a06"}},{"ruleId":"D2","level":"warning","message":{"text":"minver.NullUnsupported (cognitive 85): minver.NullUnsupported has cognitive complexity 85 (threshold 15). Drivers by points: if/else 65, loops 15, boolean chains 5 (nesting depth added 54). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/utils/minver/minver.go"},"region":{"startLine":36}}}],"partialFingerprints":{"codehealthFindingId/v1":"692f7e489192c41e123a4fc6f8b91060ad49bdf944d36f644c7c617413c4b105"}},{"ruleId":"D2","level":"warning","message":{"text":"ThreeWayDiffer.Next (cognitive 85): ThreeWayDiffer.Next has cognitive complexity 85 (threshold 15). Drivers by points: if/else 75, match/switch 5, boolean chains 4, loops 1 (nesting depth added 47). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/prolly/tree/three_way_differ.go"},"region":{"startLine":105}}}],"partialFingerprints":{"codehealthFindingId/v1":"fe4bf4b51d96ea7c053e8ddb066f298fae5ad5cc53b84c184de7bcf6200977ec"}},{"ruleId":"D2","level":"warning","message":{"text":"nbs.snappyFuzzyDecode (cognitive 84): nbs.snappyFuzzyDecode has cognitive complexity 84 (threshold 15). Drivers by points: if/else 73, boolean chains 8, match/switch 2, loops 1 (nesting depth added 44). Of this number, 75 points are the body\u0027s own statements and 9 belong to one function literal inside it that branches. To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/nbs/journal_inspect.go"},"region":{"startLine":387}}}],"partialFingerprints":{"codehealthFindingId/v1":"a65ade5e16a883675157a2788ad845486e5ca9d2a1a9864708a4e8e016141dc6"}},{"ruleId":"D2","level":"warning","message":{"text":"commands.printEverything (cognitive 79): commands.printEverything has cognitive complexity 79 (threshold 15). Drivers by points: if/else 49, loops 22, boolean chains 8 (nesting depth added 33). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/status.go"},"region":{"startLine":463}}}],"partialFingerprints":{"codehealthFindingId/v1":"d8f18559b1b410a93f92b61bcd0e6d9b499dda848bb77949a05d753e24f97015"}},{"ruleId":"D2","level":"warning","message":{"text":"merge.MergeRoots (cognitive 79): merge.MergeRoots has cognitive complexity 79 (threshold 15). Drivers by points: if/else 69, boolean chains 7, loops 3 (nesting depth added 32). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/merge/merge.go"},"region":{"startLine":169}}}],"partialFingerprints":{"codehealthFindingId/v1":"239f2ee300dbd92c646fd6a49bad78fb38f55c9602f9c88786c374b12daa00a0"}},{"ruleId":"D2","level":"warning","message":{"text":"NomsBlockStore.updateManifestAddFiles (cognitive 79): NomsBlockStore.updateManifestAddFiles has cognitive complexity 79 (threshold 15). Drivers by points: if/else 71, boolean chains 4, loops 4 (nesting depth added 44). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/nbs/store.go"},"region":{"startLine":444}}}],"partialFingerprints":{"codehealthFindingId/v1":"ef073fcb0c148a41176abd859ecd0d0583d559ae57bc4bd7e60e7c6c1f1f0c46"}},{"ruleId":"D2","level":"warning","message":{"text":"rebase.rebaseRefs (cognitive 78): rebase.rebaseRefs has cognitive complexity 78 (threshold 15). Drivers by points: if/else 69, match/switch 4, loops 3, boolean chains 2 (nesting depth added 46). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/rebase/filter_branch.go"},"region":{"startLine":105}}}],"partialFingerprints":{"codehealthFindingId/v1":"a21f439d6af96dffeb1b4308c87fb8484ddd78212e8371ca034b0ba54ffa2c0c"}},{"ruleId":"D2","level":"warning","message":{"text":"ForeignKeyCollection.GetMatchingKey (cognitive 76): ForeignKeyCollection.GetMatchingKey has cognitive complexity 76 (threshold 15). Drivers by points: if/else 43, loops 21, boolean chains 6, jumps 6 (nesting depth added 42). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/doltdb/foreign_key_coll.go"},"region":{"startLine":478}}}],"partialFingerprints":{"codehealthFindingId/v1":"ebc3716bab8d405d60dfe51e72f49668c76643ccdc3cacfd66f8b4603f336c18"}},{"ruleId":"D2","level":"warning","message":{"text":"doltIndex.prollyRangesFromSqlRanges (cognitive 76): doltIndex.prollyRangesFromSqlRanges has cognitive complexity 76 (threshold 15). Drivers by points: if/else 60, loops 11, boolean chains 5 (nesting depth added 43). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/index/dolt_index.go"},"region":{"startLine":1169}}}],"partialFingerprints":{"codehealthFindingId/v1":"88885fd997e837f41e546fd3e5b7bd6554fe4503cd641ce3ac3984657ed1a7e3"}},{"ruleId":"D2","level":"warning","message":{"text":"PullCmd.Exec (cognitive 74): PullCmd.Exec has cognitive complexity 74 (threshold 15). Drivers by points: if/else 59, match/switch 8, boolean chains 6, loops 1 (nesting depth added 25). Of this number, 28 points are the body\u0027s own statements and 46 belong to one function literal inside it that branches. To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/pull.go"},"region":{"startLine":79}}}],"partialFingerprints":{"codehealthFindingId/v1":"08738743c3ead2047038eea81fc6320fadeb5029f73de1048b1261d9d480f075"}},{"ruleId":"D2","level":"warning","message":{"text":"actions.fetchRefSpecsWithDepth (cognitive 73): actions.fetchRefSpecsWithDepth has cognitive complexity 73 (threshold 15). Drivers by points: if/else 60, loops 6, match/switch 4, boolean chains 3 (nesting depth added 37). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/env/actions/remotes.go"},"region":{"startLine":487}}}],"partialFingerprints":{"codehealthFindingId/v1":"cc4f9a9ec18b3d01ad789deb6ba42a889fd898ac086ae41dd54fc288e3fc29e4"}},{"ruleId":"D2","level":"warning","message":{"text":"commands.PrintDiffsNotStaged (cognitive 72): commands.PrintDiffsNotStaged has cognitive complexity 72 (threshold 15). Drivers by points: if/else 47, loops 21, boolean chains 4 (nesting depth added 31). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/commit.go"},"region":{"startLine":455}}}],"partialFingerprints":{"codehealthFindingId/v1":"9b80d2a1df52c5ca852e26751a3ea5143f6a7b5e6d19d03d3b5c0d0d0dcb6931"}},{"ruleId":"D2","level":"warning","message":{"text":"database.doFastForward (cognitive 72): database.doFastForward has cognitive complexity 72 (threshold 15). Drivers by points: if/else 69, boolean chains 3 (nesting depth added 34). Most of this is not in the body itself: 15 of the 72 points are its own statements and the rest belongs to one function literal inside it that branches (line 388). The decisions are inside the literal, which nothing outside this body can call, review or test on its own, so splitting the enclosing body is not the move available here. To reduce it, lift the literal\u0027s work into a named function or method at the enclosing scope and have the literal call it, then reduce whichever part then reads as the largest."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/datas/database_common.go"},"region":{"startLine":346}}}],"partialFingerprints":{"codehealthFindingId/v1":"dd5dd126e0965ba81136ddab6c536d094a3a044eb34abfe695cb03a943287c18"}},{"ruleId":"D2","level":"warning","message":{"text":"binlogProducer.createRowEvents (cognitive 70): binlogProducer.createRowEvents has cognitive complexity 70 (threshold 15). Drivers by points: if/else 45, loops 22, match/switch 2, boolean chains 1 (nesting depth added 41). Of this number, 45 points are the body\u0027s own statements and 25 belong to one function literal inside it that branches. To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/binlogreplication/binlog_producer.go"},"region":{"startLine":377}}}],"partialFingerprints":{"codehealthFindingId/v1":"56e64cfcbcc60e29229888d98e17ea5e02f036a14b9519b74162ba7a8f89fb5f"}},{"ruleId":"D2","level":"warning","message":{"text":"pull.clone (cognitive 69): pull.clone has cognitive complexity 69 (threshold 15). Drivers by points: if/else 60, loops 8, boolean chains 1 (nesting depth added 30). Of this number, 27 points are the body\u0027s own statements and 42 belong to 4 function literals inside it that branch. To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/datas/pull/clone.go"},"region":{"startLine":98}}}],"partialFingerprints":{"codehealthFindingId/v1":"6509e3a51038ab2e74121b38f29ae97d905c22b8aaf70f20e5f5ddc99109014b"}},{"ruleId":"D2","level":"warning","message":{"text":"merge.mergeColumns (cognitive 68): merge.mergeColumns has cognitive complexity 68 (threshold 15). Drivers by points: if/else 58, boolean chains 7, match/switch 2, loops 1 (nesting depth added 37). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/merge/merge_schema.go"},"region":{"startLine":405}}}],"partialFingerprints":{"codehealthFindingId/v1":"a240ecc08acf5dcbeeac9eb764e34034f0017f96b1a46c548721915172a841c2"}},{"ruleId":"D2","level":"warning","message":{"text":"commands.createPrintData (cognitive 67): commands.createPrintData has cognitive complexity 67 (threshold 15). Drivers by points: if/else 58, boolean chains 4, match/switch 3, loops 2 (nesting depth added 31). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/status.go"},"region":{"startLine":130}}}],"partialFingerprints":{"codehealthFindingId/v1":"e141914b010ca2948753c3a8cd8c0a797e5bd1a7ed162da8b6173e0420cdb47c"}},{"ruleId":"D2","level":"warning","message":{"text":"DoltSession.VisitGCRoots (cognitive 66): DoltSession.VisitGCRoots has cognitive complexity 66 (threshold 15). Drivers by points: if/else 54, loops 11, boolean chains 1 (nesting depth added 42). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dsess/session.go"},"region":{"startLine":812}}}],"partialFingerprints":{"codehealthFindingId/v1":"14ac02c136e2ef958ba80320805483c8d59ac28d92c7d20e6e7950c07c1f79a0"}},{"ruleId":"D2","level":"warning","message":{"text":"dprocedures.doDoltCommit (cognitive 65): dprocedures.doDoltCommit has cognitive complexity 65 (threshold 15). Drivers by points: if/else 62, boolean chains 3 (nesting depth added 22). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dprocedures/dolt_commit.go"},"region":{"startLine":63}}}],"partialFingerprints":{"codehealthFindingId/v1":"cdb73f4934a008e1112ee1213960cd0f338961339e623a49af261294d9045307"}},{"ruleId":"D2","level":"warning","message":{"text":"archiveReader.tolerantIterate (cognitive 63): archiveReader.tolerantIterate has cognitive complexity 63 (threshold 15). Drivers by points: if/else 59, loops 4 (nesting depth added 37). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/nbs/archive_reader.go"},"region":{"startLine":750}}}],"partialFingerprints":{"codehealthFindingId/v1":"8ab09bb9f094cc5c0e280318769040ea4f7defae151f23cc1c477b551a4837d7"}},{"ruleId":"D2","level":"warning","message":{"text":"main.buildLateBinder (cognitive 62): main.buildLateBinder has cognitive complexity 62 (threshold 15). Drivers by points: if/else 55, boolean chains 7 (nesting depth added 22). Of this number, 49 points are the body\u0027s own statements and 13 belong to 2 function literals inside it that branch. To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/dolt.go"},"region":{"startLine":636}}}],"partialFingerprints":{"codehealthFindingId/v1":"cb373bedd8e63db98c1f02c95baa8f3d1ae3b0a00c5612e2e92af0ab836f5a87"}},{"ruleId":"D2","level":"warning","message":{"text":"dprocedures.doDoltCheckout (cognitive 62): dprocedures.doDoltCheckout has cognitive complexity 62 (threshold 15). Drivers by points: if/else 52, boolean chains 10 (nesting depth added 15). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dprocedures/dolt_checkout.go"},"region":{"startLine":63}}}],"partialFingerprints":{"codehealthFindingId/v1":"bb4f2766ec01447d1593bdd8fddb599f1e827d81f4378527f52b43ec45133b56"}},{"ruleId":"D2","level":"warning","message":{"text":"ValueStore.GC (cognitive 62): ValueStore.GC has cognitive complexity 62 (threshold 15). Drivers by points: if/else 59, match/switch 2, boolean chains 1 (nesting depth added 31). Most of this is not in the body itself: 11 of the 62 points are its own statements and the rest belongs to 2 function literals inside it that branch (lines 591, 680). The decisions are inside those literals, which nothing outside this body can call, review or test on its own, so splitting the enclosing body is not the move available here. To reduce it, lift the literals\u0027 work into a named function or method at the enclosing scope and have each literal call it, then reduce whichever part then reads as the largest."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/types/value_store.go"},"region":{"startLine":568}}}],"partialFingerprints":{"codehealthFindingId/v1":"7d303f29310e1e0e09819eb137aba88185f4018f7e65ec15acd1552d28f7f7a8"}},{"ruleId":"D2","level":"warning","message":{"text":"dolt_ci.ValidateWorkflowConfig (cognitive 61): dolt_ci.ValidateWorkflowConfig has cognitive complexity 61 (threshold 15). Drivers by points: if/else 46, loops 9, boolean chains 3, match/switch 3 (nesting depth added 33). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/env/actions/dolt_ci/workflow_config.go"},"region":{"startLine":251}}}],"partialFingerprints":{"codehealthFindingId/v1":"6ac19e374556ba8dba6546ecfad3fb27aedbfa0e08a0ba8c757c030c6aed9d71"}},{"ruleId":"D2","level":"warning","message":{"text":"logTableFunctionRowIter.Next (cognitive 61): logTableFunctionRowIter.Next has cognitive complexity 61 (threshold 15). Drivers by points: if/else 57, loops 4 (nesting depth added 38). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dtablefunctions/dolt_log.go"},"region":{"startLine":644}}}],"partialFingerprints":{"codehealthFindingId/v1":"652551814fa6673a62608ba0e55f484f4c6144a5dadf6779147a799e8a7da33c"}},{"ruleId":"D2","level":"warning","message":{"text":"expreval.newComparisonFunc (cognitive 61): expreval.newComparisonFunc has cognitive complexity 61 (threshold 15). Drivers by points: if/else 57, loops 4 (nesting depth added 31). Of this number, 33 points are the body\u0027s own statements and 28 belong to 3 function literals inside it that branch. To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/expreval/expression_evaluator.go"},"region":{"startLine":229}}}],"partialFingerprints":{"codehealthFindingId/v1":"0dab17b0858002a33e768d35fe07094006ca5d700b8ae023062073bacd706e76"}},{"ruleId":"D2","level":"warning","message":{"text":"binlogReplicaApplier.processBinlogEvent (cognitive 60): binlogReplicaApplier.processBinlogEvent has cognitive complexity 60 (threshold 15). Drivers by points: if/else 56, loops 2, boolean chains 1, match/switch 1 (nesting depth added 27). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/binlogreplication/binlog_replica_applier.go"},"region":{"startLine":383}}}],"partialFingerprints":{"codehealthFindingId/v1":"a88072afc0a366fea535090405eb7f6242a7907b71906b0b7eab5774bc5b6b61"}},{"ruleId":"D2","level":"warning","message":{"text":"DoltProceduresDiffPartitionItr.Next (cognitive 59): DoltProceduresDiffPartitionItr.Next has cognitive complexity 59 (threshold 15). Drivers by points: if/else 57, boolean chains 1, loops 1 (nesting depth added 34). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dolt_procedures_diff_table.go"},"region":{"startLine":146}}}],"partialFingerprints":{"codehealthFindingId/v1":"6940754cacd0aff0646dcb8e0aab7dca00cd2ddbcb505dae819be3df70a66886"}},{"ruleId":"D2","level":"warning","message":{"text":"DoltSchemasDiffPartitionItr.Next (cognitive 59): DoltSchemasDiffPartitionItr.Next has cognitive complexity 59 (threshold 15). Drivers by points: if/else 57, boolean chains 1, loops 1 (nesting depth added 34). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dolt_schemas_diff_table.go"},"region":{"startLine":146}}}],"partialFingerprints":{"codehealthFindingId/v1":"fcc004afa96f77bd2e0c349ecde020c61008e2b881c782e10d3fea3985b43e4f"}},{"ruleId":"D2","level":"warning","message":{"text":"dprocedures.continueRebase (cognitive 59): dprocedures.continueRebase has cognitive complexity 59 (threshold 15). Drivers by points: if/else 52, boolean chains 6, loops 1 (nesting depth added 19). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dprocedures/dolt_rebase.go"},"region":{"startLine":657}}}],"partialFingerprints":{"codehealthFindingId/v1":"4f69ff44c23af58918bcb883f44a5d4f1429ee915208a733874e1eb68594495f"}},{"ruleId":"D2","level":"warning","message":{"text":"ProximityFlusher.visitNode (cognitive 59): ProximityFlusher.visitNode has cognitive complexity 59 (threshold 15). Drivers by points: if/else 52, loops 7 (nesting depth added 37). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/prolly/proximity_mutable_map.go"},"region":{"startLine":151}}}],"partialFingerprints":{"codehealthFindingId/v1":"77566b96691f68ea8718e761dd7d2e1169efaf00bf87159e0b3558b8ba08352c"}},{"ruleId":"D2","level":"warning","message":{"text":"commands.diffRows (cognitive 58): commands.diffRows has cognitive complexity 58 (threshold 15). Drivers by points: if/else 49, loops 8, boolean chains 1 (nesting depth added 18). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/diff.go"},"region":{"startLine":1568}}}],"partialFingerprints":{"codehealthFindingId/v1":"ee57adb4cd3a46150a807200994788c1d4faf2ec0ea212a712797afd1e86e6d4"}},{"ruleId":"D2","level":"warning","message":{"text":"commands.execShell (cognitive 58): commands.execShell has cognitive complexity 58 (threshold 15). Drivers by points: if/else 50, match/switch 4, boolean chains 2, loops 2 (nesting depth added 24). Most of this is not in the body itself: 4 of the 58 points are its own statements and the rest belongs to 2 function literals inside it that branch (lines 773, 753). The decisions are inside those literals, which nothing outside this body can call, review or test on its own, so splitting the enclosing body is not the move available here. To reduce it, lift the literals\u0027 work into a named function or method at the enclosing scope and have each literal call it, then reduce whichever part then reads as the largest."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/sql.go"},"region":{"startLine":705}}}],"partialFingerprints":{"codehealthFindingId/v1":"114f556525c1ddfd42041659c320ea8e468a2803776066e508a668fba4edc30f"}},{"ruleId":"D2","level":"warning","message":{"text":"treeScanner.processCommitContent (cognitive 58): treeScanner.processCommitContent has cognitive complexity 58 (threshold 15). Drivers by points: if/else 51, loops 7 (nesting depth added 35). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/fsck.go"},"region":{"startLine":720}}}],"partialFingerprints":{"codehealthFindingId/v1":"f10fd6f4bf4e618d261995d0266ba8c9000a5e5619444d788004e97067101144"}},{"ruleId":"D2","level":"warning","message":{"text":"sqle.pullBranches (cognitive 58): sqle.pullBranches has cognitive complexity 58 (threshold 15). Drivers by points: if/else 40, jumps 8, loops 5, match/switch 4, boolean chains 1 (nesting depth added 30). Most of this is not in the body itself: 3 of the 58 points are its own statements and the rest belongs to one function literal inside it that branches (line 311). The decisions are inside the literal, which nothing outside this body can call, review or test on its own, so splitting the enclosing body is not the move available here. To reduce it, lift the literal\u0027s work into a named function or method at the enclosing scope and have the literal call it, then reduce whichever part then reads as the largest."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/read_replica_database.go"},"region":{"startLine":285}}}],"partialFingerprints":{"codehealthFindingId/v1":"de3aafde188ee9a0edc64be59cffbaa5e8a23239498e6dd23f11cebcd88131c1"}},{"ruleId":"D2","level":"warning","message":{"text":"commands.diffDoltSchemasTable (cognitive 57): commands.diffDoltSchemasTable has cognitive complexity 57 (threshold 15). Drivers by points: if/else 52, boolean chains 2, match/switch 2, loops 1 (nesting depth added 30). Of this number, 53 points are the body\u0027s own statements and 4 belong to one function literal inside it that branches. To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/diff.go"},"region":{"startLine":1351}}}],"partialFingerprints":{"codehealthFindingId/v1":"416ca013ea926fe65fda18f8021211cd9a3a5ef4f33ade21c8c619e81b8efe6a"}},{"ruleId":"D2","level":"warning","message":{"text":"SequenceTracker.deepSet (cognitive 56): SequenceTracker.deepSet has cognitive complexity 56 (threshold 15). Drivers by points: if/else 49, loops 3, match/switch 3, boolean chains 1 (nesting depth added 33). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dsess/sequence_tracker.go"},"region":{"startLine":314}}}],"partialFingerprints":{"codehealthFindingId/v1":"7c01d5122cc30096c2c64e0fdd999034a5328af7be15216ee6f83ca9a72cc077"}},{"ruleId":"D2","level":"warning","message":{"text":"lookupJoinKvIter.Next (cognitive 56): lookupJoinKvIter.Next has cognitive complexity 56 (threshold 15). Drivers by points: if/else 50, boolean chains 5, loops 1 (nesting depth added 31). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/kvexec/lookup_join.go"},"region":{"startLine":95}}}],"partialFingerprints":{"codehealthFindingId/v1":"6a9c2a7b8404679be895031c7dee264a13e5b0e8c1ce34f45ce0745e719d3be1"}},{"ruleId":"D2","level":"warning","message":{"text":"database.doSetHead (cognitive 56): database.doSetHead has cognitive complexity 56 (threshold 15). Drivers by points: if/else 54, boolean chains 1, match/switch 1 (nesting depth added 25). Of this number, 19 points are the body\u0027s own statements and 37 belong to one function literal inside it that branches. To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/datas/database_common.go"},"region":{"startLine":206}}}],"partialFingerprints":{"codehealthFindingId/v1":"0645b50c662cdc385913be51ca0f1d22a247cbeb087db9dce726e43c8c3b247f"}},{"ruleId":"D2","level":"warning","message":{"text":"valueMerger.processColumn (cognitive 55): valueMerger.processColumn has cognitive complexity 55 (threshold 15). Drivers by points: if/else 49, boolean chains 5, match/switch 1 (nesting depth added 21). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/merge/merge_prolly_rows.go"},"region":{"startLine":2144}}}],"partialFingerprints":{"codehealthFindingId/v1":"89e7e02fd71ed9f21d33424b6116e42a0a62c308b496231c27dabf2fc8b090a2"}},{"ruleId":"D2","level":"warning","message":{"text":"Builder.Build (cognitive 55): Builder.Build has cognitive complexity 55 (threshold 15). Drivers by points: if/else 44, boolean chains 8, match/switch 3 (nesting depth added 33). The drivers above price the dispatch low by construction \u2014 a dispatch is charged once however many cases it lists, while each branch inside an arm is charged in full \u2014 so most of this count is what the case bodies hold, and the arms are where it can be reduced. To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Keep every case explicit, and make the behaviour for cases you do not list a deliberate choice rather than an accident."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/kvexec/builder.go"},"region":{"startLine":40}}}],"partialFingerprints":{"codehealthFindingId/v1":"402b8d25a5fbbb7d0a781280d839d74178f3d1535486852a70d24c82b9b2e77e"}},{"ruleId":"D2","level":"warning","message":{"text":"tree.jsonPathElementsFromMySQLJsonPath (cognitive 55): tree.jsonPathElementsFromMySQLJsonPath has cognitive complexity 55 (threshold 15). Drivers by points: if/else 50, boolean chains 2, match/switch 2, loops 1 (nesting depth added 29). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/prolly/tree/json_location.go"},"region":{"startLine":313}}}],"partialFingerprints":{"codehealthFindingId/v1":"0e13046c34f8d83484dbe968f99d92eadff47c8dfee29e604ca6f7c991afb70b"}},{"ruleId":"D2","level":"warning","message":{"text":"commands.writeDiffResults (cognitive 54): commands.writeDiffResults has cognitive complexity 54 (threshold 15). Drivers by points: if/else 47, loops 4, boolean chains 3 (nesting depth added 32). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/diff.go"},"region":{"startLine":1869}}}],"partialFingerprints":{"codehealthFindingId/v1":"69a40019c0b904d10f069926cd8d4b33429084a7e5d48f7f55a61978c5d36047"}},{"ruleId":"D2","level":"warning","message":{"text":"kvexec.getSourceKv (cognitive 54): kvexec.getSourceKv has cognitive complexity 54 (threshold 15). Drivers by points: if/else 48, match/switch 5, boolean chains 1 (nesting depth added 28). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/kvexec/builder.go"},"region":{"startLine":344}}}],"partialFingerprints":{"codehealthFindingId/v1":"fa84cf5e3d7c15ecd7fd4ff96ea428002152927dda5ad6e7a9b5652b13a756a7"}},{"ruleId":"D2","level":"warning","message":{"text":"MatchNode.Remove (cognitive 52): MatchNode.Remove has cognitive complexity 52 (threshold 15). Drivers by points: if/else 34, loops 13, boolean chains 4, jumps 1 (nesting depth added 31). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/branch_control/expr_parser_node.go"},"region":{"startLine":333}}}],"partialFingerprints":{"codehealthFindingId/v1":"63656a6f58d3cfc4bc0c47a19c0fc646ef7ef41fb4919febc4fe8a3c41fbd29d"}},{"ruleId":"D2","level":"warning","message":{"text":"secondaryMerger.merge (cognitive 52): secondaryMerger.merge has cognitive complexity 52 (threshold 15). Drivers by points: if/else 49, match/switch 2, loops 1 (nesting depth added 37). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/merge/merge_prolly_rows.go"},"region":{"startLine":1594}}}],"partialFingerprints":{"codehealthFindingId/v1":"d883009bf7de3960178f62c658c27b9c7fdc7aeb85b11d8f374efae6e6bebd19"}},{"ruleId":"D2","level":"warning","message":{"text":"DiffTableFunction.GetIndexes (cognitive 52): DiffTableFunction.GetIndexes has cognitive complexity 52 (threshold 15). Drivers by points: if/else 45, loops 6, boolean chains 1 (nesting depth added 31). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dtablefunctions/dolt_diff.go"},"region":{"startLine":84}}}],"partialFingerprints":{"codehealthFindingId/v1":"53b457881c15cec668e8c24898edc2c45abd3abd400b3927c6103daa7c621c47"}},{"ruleId":"D2","level":"warning","message":{"text":"csv.writeCsvRow (cognitive 52): csv.writeCsvRow has cognitive complexity 52 (threshold 15). Drivers by points: if/else 45, match/switch 4, loops 3 (nesting depth added 32). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/table/untyped/csv/writer.go"},"region":{"startLine":194}}}],"partialFingerprints":{"codehealthFindingId/v1":"89661c46d18f204e7610f5076cc4e553595c87d520a08b17bf9bf57ee5991ea5"}},{"ruleId":"D2","level":"warning","message":{"text":"actions.GetCommitStaged (cognitive 51): actions.GetCommitStaged has cognitive complexity 51 (threshold 15). Drivers by points: if/else 45, boolean chains 5, loops 1 (nesting depth added 20). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/env/actions/commit.go"},"region":{"startLine":79}}}],"partialFingerprints":{"codehealthFindingId/v1":"8748b1e07355d80c23b5cf77c98c4ed7b060530e3704cca2756e757e6f1eabb9"}},{"ruleId":"D2","level":"warning","message":{"text":"RootMerger.MaybeShortCircuit (cognitive 51): RootMerger.MaybeShortCircuit has cognitive complexity 51 (threshold 15). Drivers by points: if/else 39, boolean chains 12 (nesting depth added 16). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/merge/merge_rows.go"},"region":{"startLine":371}}}],"partialFingerprints":{"codehealthFindingId/v1":"cf9f462917be3294fcaf7fd47ad70073be7f4a629809f4177ab47680cbeb82c4"}},{"ruleId":"D2","level":"warning","message":{"text":"ForeignKeyCollection.RemoveAndUnresolveTables (cognitive 50): ForeignKeyCollection.RemoveAndUnresolveTables has cognitive complexity 50 (threshold 15). Drivers by points: if/else 42, loops 7, boolean chains 1 (nesting depth added 32). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/doltdb/foreign_key_coll.go"},"region":{"startLine":658}}}],"partialFingerprints":{"codehealthFindingId/v1":"8cf2ec8ba60ee50416f89b9f5a5dcc24f7ea24e53581c5c5e5ce950921d1b0c0"}},{"ruleId":"D2","level":"warning","message":{"text":"kvexec.getMergeKv (cognitive 50): kvexec.getMergeKv has cognitive complexity 50 (threshold 15). Drivers by points: if/else 39, match/switch 6, loops 4, boolean chains 1 (nesting depth added 25). Of this number, 44 points are the body\u0027s own statements and 6 belong to one function literal inside it that branches. The drivers above price the dispatch low by construction \u2014 a dispatch is charged once however many cases it lists, while each branch inside an arm is charged in full \u2014 so most of this count is what the case bodies hold, and the arms are where it can be reduced. To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Keep every case explicit, and make the behaviour for cases you do not list a deliberate choice rather than an accident."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/kvexec/builder.go"},"region":{"startLine":507}}}],"partialFingerprints":{"codehealthFindingId/v1":"d52f3f31f9217523575ccb83731686bbf9a54b80e7c2374487bd4b7df4ed7884"}},{"ruleId":"D2","level":"warning","message":{"text":"StatsController.collectIndexNodes (cognitive 50): StatsController.collectIndexNodes has cognitive complexity 50 (threshold 15). Drivers by points: if/else 37, loops 11, boolean chains 2 (nesting depth added 27). Most of this is not in the body itself: 7 of the 50 points are its own statements and the rest belongs to 3 function literals inside it that branch (lines 365, 430, 346). The decisions are inside those literals, which nothing outside this body can call, review or test on its own, so splitting the enclosing body is not the move available here. To reduce it, lift the literals\u0027 work into a named function or method at the enclosing scope and have each literal call it, then reduce whichever part then reads as the largest."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/statspro/worker.go"},"region":{"startLine":339}}}],"partialFingerprints":{"codehealthFindingId/v1":"d6310b0410eaaee85d1cc0ed87ddb9881c220c3ae7ab97b6a7a0eacb4dc464b6"}},{"ruleId":"D2","level":"warning","message":{"text":"archiveReader.iterate (cognitive 50): archiveReader.iterate has cognitive complexity 50 (threshold 15). Drivers by points: if/else 46, loops 4 (nesting depth added 30). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/nbs/archive_reader.go"},"region":{"startLine":647}}}],"partialFingerprints":{"codehealthFindingId/v1":"45382ae29d2a90c26ff32131c1a6d342005a19abeec19b5df3abd238efe20374"}},{"ruleId":"D2","level":"warning","message":{"text":"engine.NewSqlEngine (cognitive 49): engine.NewSqlEngine has cognitive complexity 49 (threshold 15). Drivers by points: if/else 42, boolean chains 6, match/switch 1 (nesting depth added 7). Of this number, 44 points are the body\u0027s own statements and 5 belong to 2 function literals inside it that branch. To reduce it, split the body: most of this score is breadth rather than depth \u2014 checks laid out side by side rather than stacked \u2014 so group the statements between the checks into named steps and move each step into its own function. Some of it IS depth: where a check sits inside another whose only job is to reach it, merge the two into one condition, and where an else follows a branch that already returns, drop the trailing else and let the rest of the body continue at one level."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/engine/sqlengine.go"},"region":{"startLine":109}}}],"partialFingerprints":{"codehealthFindingId/v1":"ac63f2c771f27555e3645edaf22bcc6e6827de91b892f05f5a018cf3ea9ea03e"}},{"ruleId":"D2","level":"warning","message":{"text":"dprocedures.performMerge (cognitive 49): dprocedures.performMerge has cognitive complexity 49 (threshold 15). Drivers by points: if/else 47, match/switch 2 (nesting depth added 21). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dprocedures/dolt_merge.go"},"region":{"startLine":201}}}],"partialFingerprints":{"codehealthFindingId/v1":"dc65ff6a31b72cdc3aadd9ade2de759a2c2971f6bcc55aa9359792f6ac0d7605"}},{"ruleId":"D2","level":"warning","message":{"text":"commands.dumpViews (cognitive 48): commands.dumpViews has cognitive complexity 48 (threshold 15). Drivers by points: if/else 46, boolean chains 1, loops 1 (nesting depth added 23). Of this number, 46 points are the body\u0027s own statements and 2 belong to one function literal inside it that branches. To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/dump.go"},"region":{"startLine":403}}}],"partialFingerprints":{"codehealthFindingId/v1":"e8a22364a3bc41526a238dd4d6bffad8a77d596db5ede63530fed250356b518e"}},{"ruleId":"D2","level":"warning","message":{"text":"RebaseCmd.Exec (cognitive 48): RebaseCmd.Exec has cognitive complexity 48 (threshold 15). Drivers by points: if/else 46, boolean chains 2 (nesting depth added 15). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/rebase.go"},"region":{"startLine":87}}}],"partialFingerprints":{"codehealthFindingId/v1":"f93cf94c6cb1db4686493979392181168b6721d1016b7ee4bdd0cf1a87a45cfb"}},{"ruleId":"D2","level":"warning","message":{"text":"doltdb.newWorkingSet (cognitive 48): doltdb.newWorkingSet has cognitive complexity 48 (threshold 15). Drivers by points: if/else 47, boolean chains 1 (nesting depth added 20). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/doltdb/workingset.go"},"region":{"startLine":509}}}],"partialFingerprints":{"codehealthFindingId/v1":"fc7bb8e4d1d303672587c731834f1e0be13d2f8676fd67879a621b132b583f9a"}},{"ruleId":"D2","level":"warning","message":{"text":"merge.RegisterForeignKeyViolations (cognitive 48): merge.RegisterForeignKeyViolations has cognitive complexity 48 (threshold 15). Drivers by points: if/else 45, boolean chains 2, loops 1 (nesting depth added 25). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/merge/violations_fk.go"},"region":{"startLine":61}}}],"partialFingerprints":{"codehealthFindingId/v1":"2167e95efee805147a40ab9d07210dc7b3c96cd0723a8732e856dae413f9bf53"}},{"ruleId":"D2","level":"warning","message":{"text":"ReadReplicaDatabase.PullFromRemote (cognitive 48): ReadReplicaDatabase.PullFromRemote has cognitive complexity 48 (threshold 15). Drivers by points: if/else 34, loops 11, boolean chains 2, match/switch 1 (nesting depth added 24). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/read_replica_database.go"},"region":{"startLine":116}}}],"partialFingerprints":{"codehealthFindingId/v1":"c016377eca855883089bab46614af58134ad58fb1f4ab191df8fec6931edfb30"}},{"ruleId":"D2","level":"warning","message":{"text":"WritableDoltTable.createForeignKey (cognitive 48): WritableDoltTable.createForeignKey has cognitive complexity 48 (threshold 15). Drivers by points: if/else 41, loops 5, boolean chains 2 (nesting depth added 23). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/tables.go"},"region":{"startLine":2597}}}],"partialFingerprints":{"codehealthFindingId/v1":"0e72b970370e8d32a50a24c84d7bd296df8adf10b580bfb13e0c11c4ba44d7c1"}},{"ruleId":"D2","level":"warning","message":{"text":"commands.printBranches (cognitive 47): commands.printBranches has cognitive complexity 47 (threshold 15). Drivers by points: if/else 38, boolean chains 5, loops 4 (nesting depth added 19). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/branch.go"},"region":{"startLine":289}}}],"partialFingerprints":{"codehealthFindingId/v1":"8aa4ee023bf94da4b288ae5fe5f84581faa2bf9a09dd9cb6460fdba017667790"}},{"ruleId":"D2","level":"warning","message":{"text":"actions.MoveTablesBetweenRoots (cognitive 47): actions.MoveTablesBetweenRoots has cognitive complexity 47 (threshold 15). Drivers by points: if/else 44, loops 2, boolean chains 1 (nesting depth added 26). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/env/actions/table.go"},"region":{"startLine":28}}}],"partialFingerprints":{"codehealthFindingId/v1":"b035795e76f3aa8fd4601419cb5699e7d832ce6f6586529316a02c92cb13d0ba"}},{"ruleId":"D2","level":"warning","message":{"text":"ThreeWayJsonDiffer.Next (cognitive 47): ThreeWayJsonDiffer.Next has cognitive complexity 47 (threshold 15). Drivers by points: if/else 43, boolean chains 3, loops 1 (nesting depth added 25). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/merge/three_way_json_differ.go"},"region":{"startLine":44}}}],"partialFingerprints":{"codehealthFindingId/v1":"bb990ff59a96a3f3e1436478ad3b2e7a70e5ba3e766706953660f8cedb1fb02f"}},{"ruleId":"D2","level":"warning","message":{"text":"DoltSession.addDB (cognitive 47): DoltSession.addDB has cognitive complexity 47 (threshold 15). Drivers by points: if/else 44, boolean chains 3 (nesting depth added 20). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dsess/session.go"},"region":{"startLine":1316}}}],"partialFingerprints":{"codehealthFindingId/v1":"51f02185e06342761d1b303e5d2acad25bbea9b7bbd0e357bac4dad72a3003ad"}},{"ruleId":"D2","level":"warning","message":{"text":"enginetest.validatePkIndex (cognitive 47): enginetest.validatePkIndex has cognitive complexity 47 (threshold 15). Drivers by points: if/else 44, loops 3 (nesting depth added 26). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/enginetest/validation.go"},"region":{"startLine":241}}}],"partialFingerprints":{"codehealthFindingId/v1":"58c5ef1a865145995f212be9f8ea52d0b73169b0caa66f84388f9e2eabef3cc8"}},{"ruleId":"D2","level":"warning","message":{"text":"ArgParser.parseToken (cognitive 47): ArgParser.parseToken has cognitive complexity 47 (threshold 15). Drivers by points: if/else 40, boolean chains 5, loops 2 (nesting depth added 19). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/utils/argparser/parser.go"},"region":{"startLine":391}}}],"partialFingerprints":{"codehealthFindingId/v1":"1a5d3333be3febdef429ae8e82cf7e848b90ca37b762de69f78c508e7fb08bdb"}},{"ruleId":"D2","level":"warning","message":{"text":"benchmark_runner.updateResult (cognitive 47): benchmark_runner.updateResult has cognitive complexity 47 (threshold 15). Drivers by points: if/else 46, match/switch 1 (nesting depth added 22). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/performance/utils/benchmark_runner/results.go"},"region":{"startLine":180}}}],"partialFingerprints":{"codehealthFindingId/v1":"aa11e22ef4e27df60a9f44c0f9888817a84f85ca3f6cfaec18b4f4337244aafe"}},{"ruleId":"D2","level":"warning","message":{"text":"GitBlobstore.buildCommitForKeyWrite (cognitive 47): GitBlobstore.buildCommitForKeyWrite has cognitive complexity 47 (threshold 15). Drivers by points: if/else 37, loops 6, boolean chains 4 (nesting depth added 18). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/blobstore/git_blobstore.go"},"region":{"startLine":1292}}}],"partialFingerprints":{"codehealthFindingId/v1":"bb064bc1f8e8f356e621c9a995aae73cb5852701ff8e5c652ec58ceca91e40d0"}},{"ruleId":"D2","level":"warning","message":{"text":"commands.computeColumnEnds (cognitive 46): commands.computeColumnEnds has cognitive complexity 46 (threshold 15). Drivers by points: if/else 31, loops 15 (nesting depth added 29). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/log_graph.go"},"region":{"startLine":224}}}],"partialFingerprints":{"codehealthFindingId/v1":"d2eda1789766f1cec7165e05fcfa8d3f5b208a3dfea624c999ec6ca8a2c090c3"}},{"ruleId":"D2","level":"warning","message":{"text":"ArchiveInspectCmd.Exec (cognitive 46): ArchiveInspectCmd.Exec has cognitive complexity 46 (threshold 15). Drivers by points: if/else 43, loops 2, boolean chains 1 (nesting depth added 16). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/admin/archive_inspect.go"},"region":{"startLine":74}}}],"partialFingerprints":{"codehealthFindingId/v1":"cb68140fe5b336248c6dcf424ed61ff3dd32e4331cd4aab6c277ef86104e9e32"}},{"ruleId":"D2","level":"warning","message":{"text":"DebugCmd.Exec (cognitive 46): DebugCmd.Exec has cognitive complexity 46 (threshold 15). Drivers by points: if/else 37, match/switch 6, loops 3 (nesting depth added 13). Of this number, 31 points are the body\u0027s own statements and 15 belong to 4 function literals inside it that branch. To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/debug.go"},"region":{"startLine":95}}}],"partialFingerprints":{"codehealthFindingId/v1":"21f6798d9512c65e1a7bba9d687911826b095b9ec33cdd1246e7fab23c3dac6f"}},{"ruleId":"D2","level":"warning","message":{"text":"cherry_pick.cherryPick (cognitive 46): cherry_pick.cherryPick has cognitive complexity 46 (threshold 15). Drivers by points: if/else 39, boolean chains 3, loops 2, match/switch 2 (nesting depth added 7). To reduce it, split the body: most of this score is breadth rather than depth \u2014 checks laid out side by side rather than stacked \u2014 so group the statements between the checks into named steps and move each step into its own function. Some of it IS depth: where a check sits inside another whose only job is to reach it, merge the two into one condition."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/cherry_pick/cherry_pick.go"},"region":{"startLine":376}}}],"partialFingerprints":{"codehealthFindingId/v1":"e6906ca54a44b5b0125902c8ddf7e3bf5d1061984167cb1fa61f7740ef6b302d"}},{"ruleId":"D2","level":"warning","message":{"text":"SqlEngineTableWriter.WriteRows (cognitive 46): SqlEngineTableWriter.WriteRows has cognitive complexity 46 (threshold 15). Drivers by points: if/else 39, loops 3, match/switch 3, boolean chains 1 (nesting depth added 18). Of this number, 36 points are the body\u0027s own statements and 10 belong to 2 function literals inside it that branch. To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/mvdata/engine_table_writer.go"},"region":{"startLine":107}}}],"partialFingerprints":{"codehealthFindingId/v1":"8b63545aa195b5aac3c101e3bc319f2fa274626834e12e0735beb11e4b948595"}},{"ruleId":"D2","level":"warning","message":{"text":"dprocedures.doDoltAdd (cognitive 46): dprocedures.doDoltAdd has cognitive complexity 46 (threshold 15). Drivers by points: if/else 38, loops 5, boolean chains 3 (nesting depth added 21). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dprocedures/dolt_add.go"},"region":{"startLine":41}}}],"partialFingerprints":{"codehealthFindingId/v1":"bd72d08f40de33aca9f921bf2a58431cbd7097a487f2052eb1f031780a63938d"}},{"ruleId":"D2","level":"warning","message":{"text":"nbs.planArchiveConjoin (cognitive 45): nbs.planArchiveConjoin has cognitive complexity 45 (threshold 15). Drivers by points: if/else 30, loops 15 (nesting depth added 22). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/nbs/archive_writer.go"},"region":{"startLine":830}}}],"partialFingerprints":{"codehealthFindingId/v1":"039661d0ec39fba3a171363cafb4a20606c80ea5815c6839bdf5b80266b22cf3"}},{"ruleId":"D2","level":"warning","message":{"text":"commands.revert (cognitive 44): commands.revert has cognitive complexity 44 (threshold 15). Drivers by points: if/else 41, loops 2, boolean chains 1 (nesting depth added 17). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/revert.go"},"region":{"startLine":98}}}],"partialFingerprints":{"codehealthFindingId/v1":"02b80b54708d9b83f0414b6246c32296bd6594645b02bb6f8d71c969d49f9c5b"}},{"ruleId":"D2","level":"warning","message":{"text":"merge.mergeChecks (cognitive 44): merge.mergeChecks has cognitive complexity 44 (threshold 15). Drivers by points: if/else 25, loops 18, boolean chains 1 (nesting depth added 19). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/merge/merge_schema.go"},"region":{"startLine":1211}}}],"partialFingerprints":{"codehealthFindingId/v1":"dab81a3a8ddf478557873a6d4bd39da23d5b21ba9b353a1ce34815b61766111a"}},{"ruleId":"D2","level":"warning","message":{"text":"DoltDatabaseProvider.CreateCollatedDatabase (cognitive 44): DoltDatabaseProvider.CreateCollatedDatabase has cognitive complexity 44 (threshold 15). Drivers by points: if/else 43, boolean chains 1 (nesting depth added 14). Of this number, 42 points are the body\u0027s own statements and 2 belong to 2 function literals inside it that branch. To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/database_provider.go"},"region":{"startLine":684}}}],"partialFingerprints":{"codehealthFindingId/v1":"880a49a2c2abd1d96e15b540d83c87d03d2d5c5c9124969f3386fb3e2b97a268"}},{"ruleId":"D2","level":"warning","message":{"text":"dprocedures.resolveProllyConflicts (cognitive 44): dprocedures.resolveProllyConflicts has cognitive complexity 44 (threshold 15). Drivers by points: if/else 40, loops 4 (nesting depth added 16). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dprocedures/dolt_conflicts_resolve.go"},"region":{"startLine":79}}}],"partialFingerprints":{"codehealthFindingId/v1":"bc34d4480130ad1083e2d4a09bf6bfe207fe4e6f715261318065cdfd1846df4e"}},{"ruleId":"D2","level":"warning","message":{"text":"dtablefunctions.expectSingleValue (cognitive 44): dtablefunctions.expectSingleValue has cognitive complexity 44 (threshold 15). Drivers by points: if/else 42, boolean chains 1, match/switch 1 (nesting depth added 18). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dtablefunctions/dolt_test_run.go"},"region":{"startLine":476}}}],"partialFingerprints":{"codehealthFindingId/v1":"74d29d88d59a7f5d0e3170e1c17cb5dc7d436fc662461ecdf649b314785fc4ff"}},{"ruleId":"D2","level":"warning","message":{"text":"commands.diffUserTables (cognitive 43): commands.diffUserTables has cognitive complexity 43 (threshold 15). Drivers by points: if/else 38, boolean chains 4, loops 1 (nesting depth added 16). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/diff.go"},"region":{"startLine":896}}}],"partialFingerprints":{"codehealthFindingId/v1":"564ff0e7b709c70e7f4ee1f7443b690eeb20a3ecc853b0932424bdefa6c97031"}},{"ruleId":"D2","level":"warning","message":{"text":"SqlCmd.Exec (cognitive 43): SqlCmd.Exec has cognitive complexity 43 (threshold 15). Drivers by points: if/else 42, boolean chains 1 (nesting depth added 16). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/sql.go"},"region":{"startLine":180}}}],"partialFingerprints":{"codehealthFindingId/v1":"1e3294da2b2e17abd4729b7dfad20bc75172fa8d2124c41980d8ee0e059adc04"}},{"ruleId":"D2","level":"warning","message":{"text":"RootMerger.MakeTableMerger (cognitive 43): RootMerger.MakeTableMerger has cognitive complexity 43 (threshold 15). Drivers by points: if/else 38, boolean chains 5 (nesting depth added 13). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/merge/merge_rows.go"},"region":{"startLine":269}}}],"partialFingerprints":{"codehealthFindingId/v1":"5e6a380976c39ffdb1daeee893e8d959051dbbecedb5a554b26ee57e2841abdf"}},{"ruleId":"D2","level":"warning","message":{"text":"dtables.getCommitsFromCommitHashEquality (cognitive 43): dtables.getCommitsFromCommitHashEquality has cognitive complexity 43 (threshold 15). Drivers by points: if/else 30, loops 7, match/switch 5, boolean chains 1 (nesting depth added 31). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dtables/unscoped_diff_table.go"},"region":{"startLine":499}}}],"partialFingerprints":{"codehealthFindingId/v1":"08317c77d3277921d13abebf089c041ad292ddc58177d527c553106368abdf77"}},{"ruleId":"D2","level":"warning","message":{"text":"StatsController.newStatsForRoot (cognitive 43): StatsController.newStatsForRoot has cognitive complexity 43 (threshold 15). Drivers by points: if/else 31, loops 9, match/switch 3 (nesting depth added 23). Of this number, 17 points are the body\u0027s own statements and 26 belong to 2 function literals inside it that branch. To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/statspro/worker.go"},"region":{"startLine":214}}}],"partialFingerprints":{"codehealthFindingId/v1":"d4404b4f0d9e73fecfdf177e8cff123085619ee279217c11e40a40cb1572407b"}},{"ruleId":"D2","level":"warning","message":{"text":"AlterableDoltTable.RewriteInserter (cognitive 43): AlterableDoltTable.RewriteInserter has cognitive complexity 43 (threshold 15). Drivers by points: if/else 41, boolean chains 2 (nesting depth added 8). Of this number, 42 points are the body\u0027s own statements and 1 belongs to one function literal inside it that branches. To reduce it, split the body: most of this score is breadth rather than depth \u2014 checks laid out side by side rather than stacked \u2014 so group the statements between the checks into named steps and move each step into its own function. Some of it IS depth: where a check sits inside another whose only job is to reach it, merge the two into one condition, and where an else follows a branch that already returns, drop the trailing else and let the rest of the body continue at one level."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/tables.go"},"region":{"startLine":1667}}}],"partialFingerprints":{"codehealthFindingId/v1":"49bb8578eb2ca38e32ab1afb67bb25e1624c5baf0f978a5086488b25c280519a"}},{"ruleId":"D2","level":"warning","message":{"text":"database.doDelete (cognitive 43): database.doDelete has cognitive complexity 43 (threshold 15). Drivers by points: if/else 42, boolean chains 1 (nesting depth added 24). Most of this is not in the body itself: 0 of the 43 points are its own statements and the rest belongs to one function literal inside it that branches (line 871). The decisions are inside the literal, which nothing outside this body can call, review or test on its own, so splitting the enclosing body is not the move available here. To reduce it, lift the literal\u0027s work into a named function or method at the enclosing scope and have the literal call it, then reduce whichever part then reads as the largest."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/datas/database_common.go"},"region":{"startLine":868}}}],"partialFingerprints":{"codehealthFindingId/v1":"aab7185887de439179d5f1db420c24e14024178d50746ae55aa802cdfae6f5c8"}},{"ruleId":"D2","level":"warning","message":{"text":"ProximityMapBuilder.makePathMaps (cognitive 43): ProximityMapBuilder.makePathMaps has cognitive complexity 43 (threshold 15). Drivers by points: if/else 34, loops 9 (nesting depth added 26). Of this number, 32 points are the body\u0027s own statements and 11 belong to one function literal inside it that branches. To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/prolly/proximity_map.go"},"region":{"startLine":396}}}],"partialFingerprints":{"codehealthFindingId/v1":"5a7c717102c23cc226abc12022257093a80fe9d05cc3406a38d22d8209e7ca7d"}},{"ruleId":"D2","level":"warning","message":{"text":"CheckoutCmd.Exec (cognitive 42): CheckoutCmd.Exec has cognitive complexity 42 (threshold 15). Drivers by points: if/else 36, boolean chains 6 (nesting depth added 12). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/checkout.go"},"region":{"startLine":91}}}],"partialFingerprints":{"codehealthFindingId/v1":"277efaa55afe6ec7e81e52fe681c3372a3989d0550cb8fe45ccd5db0ddb61c67"}},{"ruleId":"D2","level":"warning","message":{"text":"ShowCmd.Exec (cognitive 42): ShowCmd.Exec has cognitive complexity 42 (threshold 15). Drivers by points: if/else 39, loops 2, boolean chains 1 (nesting depth added 20). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/show.go"},"region":{"startLine":101}}}],"partialFingerprints":{"codehealthFindingId/v1":"d365e24e5050ef42ee907e4fda4bc9378fe818e3172df54a1c49c980a422b4bb"}},{"ruleId":"D2","level":"warning","message":{"text":"main.injectProfileArgs (cognitive 42): main.injectProfileArgs has cognitive complexity 42 (threshold 15). Drivers by points: if/else 39, loops 2, boolean chains 1 (nesting depth added 27). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/dolt.go"},"region":{"startLine":1046}}}],"partialFingerprints":{"codehealthFindingId/v1":"8ac6c47460bd2c65def397d2119210ba35c673e46ea2f992f6a640d2471bac21"}},{"ruleId":"D2","level":"warning","message":{"text":"RemoteChunkStore.StreamChunkLocations (cognitive 42): RemoteChunkStore.StreamChunkLocations has cognitive complexity 42 (threshold 15). Drivers by points: if/else 31, loops 11 (nesting depth added 25). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/remotesrv/grpc.go"},"region":{"startLine":347}}}],"partialFingerprints":{"codehealthFindingId/v1":"7ee5965e7eb96d69293d08738392df62909aca12fb12c25d7feb57e2bfdeebe8"}},{"ruleId":"D2","level":"warning","message":{"text":"StatsController.updateTable (cognitive 42): StatsController.updateTable has cognitive complexity 42 (threshold 15). Drivers by points: if/else 39, boolean chains 2, loops 1 (nesting depth added 16). Of this number, 27 points are the body\u0027s own statements and 15 belong to 3 function literals inside it that branch. To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/statspro/worker.go"},"region":{"startLine":461}}}],"partialFingerprints":{"codehealthFindingId/v1":"d46942d610bcf94773a83bae8152bb9fcba585c834b4714a034e3b2a6b49170c"}},{"ruleId":"D2","level":"warning","message":{"text":"env.LoadDoltDB (cognitive 41): env.LoadDoltDB has cognitive complexity 41 (threshold 15). Drivers by points: if/else 35, boolean chains 4, loops 2 (nesting depth added 21). Most of this is not in the body itself: 0 of the 41 points are its own statements and the rest belongs to one function literal inside it that branches (line 225). The decisions are inside the literal, which nothing outside this body can call, review or test on its own, so splitting the enclosing body is not the move available here. To reduce it, lift the literal\u0027s work into a named function or method at the enclosing scope and have the literal call it, then reduce whichever part then reads as the largest."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/env/environment.go"},"region":{"startLine":224}}}],"partialFingerprints":{"codehealthFindingId/v1":"573ecfefd5cf1a54fe85f9d51b2bcbdc2effd3927e3efd952a74b799c05b41a8"}},{"ruleId":"D2","level":"warning","message":{"text":"primaryMerger.merge (cognitive 41): primaryMerger.merge has cognitive complexity 41 (threshold 15). Drivers by points: if/else 40, match/switch 1 (nesting depth added 24). The drivers above price the dispatch low by construction \u2014 a dispatch is charged once however many cases it lists, while each branch inside an arm is charged in full \u2014 so most of this count is what the case bodies hold, and the arms are where it can be reduced. To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Keep every case explicit, and make the behaviour for cases you do not list a deliberate choice rather than an accident."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/merge/merge_prolly_rows.go"},"region":{"startLine":1374}}}],"partialFingerprints":{"codehealthFindingId/v1":"a0a718721d1bbb6330e98241d5a1a62a42a253ebf2d276287b6bc9be5ed3db75"}},{"ruleId":"D2","level":"warning","message":{"text":"dprocedures.MoveWorkingSetToBranch (cognitive 41): dprocedures.MoveWorkingSetToBranch has cognitive complexity 41 (threshold 15). Drivers by points: if/else 40, boolean chains 1 (nesting depth added 13). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dprocedures/dolt_checkout_helpers.go"},"region":{"startLine":31}}}],"partialFingerprints":{"codehealthFindingId/v1":"d0b0457b9fa65a1a7f4a4307570fdf8aff261476436e0d95149873cdcc65e00d"}},{"ruleId":"D2","level":"warning","message":{"text":"DiffTableFunction.filterDeltaSchemaToSkinnyCols (cognitive 41): DiffTableFunction.filterDeltaSchemaToSkinnyCols has cognitive complexity 41 (threshold 15). Drivers by points: if/else 28, boolean chains 7, loops 6 (nesting depth added 13). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dtablefunctions/dolt_diff.go"},"region":{"startLine":582}}}],"partialFingerprints":{"codehealthFindingId/v1":"2941278b02ae499a4014243620d5d413a1def1480cbfddd9d03452b398b25d5c"}},{"ruleId":"D2","level":"warning","message":{"text":"DoltTable.LookupForExpressions (cognitive 41): DoltTable.LookupForExpressions has cognitive complexity 41 (threshold 15). Drivers by points: if/else 33, loops 8 (nesting depth added 18). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/tables.go"},"region":{"startLine":117}}}],"partialFingerprints":{"codehealthFindingId/v1":"c91576a558972f19bb4466eef285ffe72d763e65de701c1a4216d14bf9a7294f"}},{"ruleId":"D2","level":"warning","message":{"text":"TupleBuilder.BuildPermissive (cognitive 41): TupleBuilder.BuildPermissive has cognitive complexity 41 (threshold 15). Drivers by points: if/else 34, loops 6, boolean chains 1 (nesting depth added 27). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/val/tuple_builder.go"},"region":{"startLine":105}}}],"partialFingerprints":{"codehealthFindingId/v1":"e0c18fc382e090a1f64a8bac8c4eb430c56a58ac4b5519cdecf6b3bd3d308698"}},{"ruleId":"D2","level":"warning","message":{"text":"env.multiEnvForConfigDirectoryEnv (cognitive 40): env.multiEnvForConfigDirectoryEnv has cognitive complexity 40 (threshold 15). Drivers by points: if/else 32, boolean chains 4, loops 4 (nesting depth added 10). Of this number, 28 points are the body\u0027s own statements and 12 belong to one function literal inside it that branches. To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/env/multi_repo_env.go"},"region":{"startLine":159}}}],"partialFingerprints":{"codehealthFindingId/v1":"4c27fd419c088e6e1f92865cb65ced5a9d774fcf96d93252cd768bd94035fc2a"}},{"ruleId":"D2","level":"warning","message":{"text":"filehandler.ServeHTTP (cognitive 40): filehandler.ServeHTTP has cognitive complexity 40 (threshold 15). Drivers by points: if/else 36, boolean chains 3, match/switch 1 (nesting depth added 18). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/remotesrv/http.go"},"region":{"startLine":78}}}],"partialFingerprints":{"codehealthFindingId/v1":"0b02b6d1dea12d75936192d8af870fcc7f790a258a01761deacd4bf01913fd19"}},{"ruleId":"D2","level":"warning","message":{"text":"revert.ContinueRevert (cognitive 40): revert.ContinueRevert has cognitive complexity 40 (threshold 15). Drivers by points: if/else 37, boolean chains 2, loops 1 (nesting depth added 8). To reduce it, split the body: most of this score is breadth rather than depth \u2014 checks laid out side by side rather than stacked \u2014 so group the statements between the checks into named steps and move each step into its own function. Some of it IS depth: where a check sits inside another whose only job is to reach it, merge the two into one condition."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/revert/revert.go"},"region":{"startLine":183}}}],"partialFingerprints":{"codehealthFindingId/v1":"bce758cf724f7177a8dd322ca8456591326b480963b41cda2a32f5096b07f698"}},{"ruleId":"D2","level":"warning","message":{"text":"dtables.NewWorkspaceTable (cognitive 40): dtables.NewWorkspaceTable has cognitive complexity 40 (threshold 15). Drivers by points: if/else 30, boolean chains 8, loops 2 (nesting depth added 9). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dtables/workspace_table.go"},"region":{"startLine":565}}}],"partialFingerprints":{"codehealthFindingId/v1":"899059900bc7a264c71bfb67329142a80bf2ee1b4cab8123a7310d31b5ba514e"}},{"ruleId":"D2","level":"warning","message":{"text":"tree.OutputProllyNode (cognitive 40): tree.OutputProllyNode has cognitive complexity 40 (threshold 15). Drivers by points: if/else 33, loops 6, boolean chains 1 (nesting depth added 26). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/prolly/tree/node.go"},"region":{"startLine":258}}}],"partialFingerprints":{"codehealthFindingId/v1":"ad169b3236cfc0017d0f2ff48661a065d60f8982b66c87316d140714014c638c"}},{"ruleId":"D2","level":"warning","message":{"text":"tree.DiffChunksAtLevel (cognitive 40): tree.DiffChunksAtLevel has cognitive complexity 40 (threshold 15). Drivers by points: if/else 22, loops 14, boolean chains 4 (nesting depth added 17). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/prolly/tree/stats.go"},"region":{"startLine":31}}}],"partialFingerprints":{"codehealthFindingId/v1":"44f85c38c4b067d38e79630cfdca7c43eb898c23d8d312e915f1bfefea892e44"}},{"ruleId":"D2","level":"warning","message":{"text":"commands.getBranches (cognitive 39): commands.getBranches has cognitive complexity 39 (threshold 15). Drivers by points: if/else 32, loops 4, boolean chains 3 (nesting depth added 21). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/branch.go"},"region":{"startLine":158}}}],"partialFingerprints":{"codehealthFindingId/v1":"6a3a2470d17fc60d910e88bc6d2df3670ffeae48ca29124abd90a24738c3d20c"}},{"ruleId":"D2","level":"warning","message":{"text":"dprocedures.doDoltReset (cognitive 39): dprocedures.doDoltReset has cognitive complexity 39 (threshold 15). Drivers by points: if/else 37, boolean chains 2 (nesting depth added 15). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dprocedures/dolt_reset.go"},"region":{"startLine":41}}}],"partialFingerprints":{"codehealthFindingId/v1":"841050eb67f3c5b047302b801bbb9af6587d62ffd2d76976f8e5961cd8d25cf5"}},{"ruleId":"D2","level":"warning","message":{"text":"main.outputEncodedValue (cognitive 39): main.outputEncodedValue has cognitive complexity 39 (threshold 15). Drivers by points: if/else 36, match/switch 3 (nesting depth added 25). The drivers above price the dispatch low by construction \u2014 a dispatch is charged once however many cases it lists, while each branch inside an arm is charged in full \u2014 so most of this count is what the case bodies hold, and the arms are where it can be reduced. To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Keep every case explicit, and make the behaviour for cases you do not list a deliberate choice rather than an accident."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/cmd/noms/noms_show.go"},"region":{"startLine":173}}}],"partialFingerprints":{"codehealthFindingId/v1":"c8101d484324dd9ff16b6b2bdb9dbe0e703d2fab8fc0a8c53cbc69e309e0073b"}},{"ruleId":"D2","level":"warning","message":{"text":"tree.compareCollatedChunkDiffer (cognitive 39): tree.compareCollatedChunkDiffer has cognitive complexity 39 (threshold 15). Drivers by points: if/else 26, boolean chains 9, loops 2, match/switch 2 (nesting depth added 16). Of this number, 27 points are the body\u0027s own statements and 12 belong to one function literal inside it that branches. To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/prolly/tree/node_store.go"},"region":{"startLine":306}}}],"partialFingerprints":{"codehealthFindingId/v1":"a7c9cdc49ac85a7b905ef09eba015f0243ca244a7de4d0d59b6ffe0d63f2b6ea"}},{"ruleId":"D2","level":"warning","message":{"text":"fbRvStorage.EditTablesMap (cognitive 38): fbRvStorage.EditTablesMap has cognitive complexity 38 (threshold 15). Drivers by points: if/else 37, loops 1 (nesting depth added 21). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/doltdb/root_val_storage.go"},"region":{"startLine":189}}}],"partialFingerprints":{"codehealthFindingId/v1":"1e7ad10e9a6603ab70a132637fe9f39b1c2f877fbef435e8a2313633986e575e"}},{"ruleId":"D2","level":"warning","message":{"text":"remotestorage.fetcherRPCChunkLocationsThread (cognitive 38): remotestorage.fetcherRPCChunkLocationsThread has cognitive complexity 38 (threshold 15). Drivers by points: if/else 23, match/switch 8, loops 7 (nesting depth added 21). Most of this is not in the body itself: 1 of the 38 points is its own statement and the rest belongs to 2 function literals inside it that branch (lines 406, 391). The decisions are inside those literals, which nothing outside this body can call, review or test on its own, so splitting the enclosing body is not the move available here. To reduce it, lift the literals\u0027 work into a named function or method at the enclosing scope and have each literal call it, then reduce whichever part then reads as the largest."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/remotestorage/chunk_fetcher.go"},"region":{"startLine":371}}}],"partialFingerprints":{"codehealthFindingId/v1":"bd06d0106f76fb0cbd2996910f196f0ba22595a0daedabad1401dfd9b787c1cc"}},{"ruleId":"D2","level":"warning","message":{"text":"Controller.outboundTlsConfig (cognitive 38): Controller.outboundTlsConfig has cognitive complexity 38 (threshold 15). Drivers by points: if/else 26, loops 12 (nesting depth added 19). Most of this is not in the body itself: 3 of the 38 points are its own statements and the rest belongs to one function literal inside it that branches (line 1242). The decisions are inside the literal, which nothing outside this body can call, review or test on its own, so splitting the enclosing body is not the move available here. To reduce it, lift the literal\u0027s work into a named function or method at the enclosing scope and have the literal call it, then reduce whichever part then reads as the largest."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/cluster/controller.go"},"region":{"startLine":1227}}}],"partialFingerprints":{"codehealthFindingId/v1":"ddef2758881fc3768a7dde4aadbae92cafec8c02f54a8ec7f0cb7c8a3114364e"}},{"ruleId":"D2","level":"warning","message":{"text":"dprocedures.renameBranch (cognitive 38): dprocedures.renameBranch has cognitive complexity 38 (threshold 15). Drivers by points: if/else 36, boolean chains 2 (nesting depth added 13). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dprocedures/dolt_branch.go"},"region":{"startLine":117}}}],"partialFingerprints":{"codehealthFindingId/v1":"7f9ba4a0b00118ed5c87946d8ef3ad8aee4a4b6f665f87d5a728b8d7903a1d9b"}},{"ruleId":"D2","level":"warning","message":{"text":"IndexedJsonDocument.insertIntoCursor (cognitive 38): IndexedJsonDocument.insertIntoCursor has cognitive complexity 38 (threshold 15). Drivers by points: if/else 32, boolean chains 5, match/switch 1 (nesting depth added 14). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/prolly/tree/json_indexed_document.go"},"region":{"startLine":295}}}],"partialFingerprints":{"codehealthFindingId/v1":"d7708b416dbe53773a5f998d0bf1108adfec2409a1ad942b4bef8a52ac9d3b7c"}},{"ruleId":"D2","level":"warning","message":{"text":"commands.execBatchMode (cognitive 37): commands.execBatchMode has cognitive complexity 37 (threshold 15). Drivers by points: if/else 32, match/switch 3, boolean chains 1, loops 1 (nesting depth added 19). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/sql.go"},"region":{"startLine":626}}}],"partialFingerprints":{"codehealthFindingId/v1":"9aaa44d90a29fd2dcf28485911030926dea1852349f34b0857a64b8b5dfc37ad"}},{"ruleId":"D2","level":"warning","message":{"text":"commands.BuildSqlEngineQueryist (cognitive 37): commands.BuildSqlEngineQueryist has cognitive complexity 37 (threshold 15). Drivers by points: if/else 33, boolean chains 4 (nesting depth added 11). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/utils.go"},"region":{"startLine":131}}}],"partialFingerprints":{"codehealthFindingId/v1":"f8fdeee10387be8e8fa25b515153500946358a350eef8d37d4e0ef9d16351223"}},{"ruleId":"D2","level":"warning","message":{"text":"tblcmds.validateImportArgs (cognitive 37): tblcmds.validateImportArgs has cognitive complexity 37 (threshold 15). Drivers by points: if/else 26, boolean chains 10, match/switch 1 (nesting depth added 5). To reduce it, split the body: most of this score is breadth rather than depth \u2014 checks laid out side by side rather than stacked \u2014 so group the statements between the checks into named steps and move each step into its own function. Some of it IS depth: where a check sits inside another whose only job is to reach it, merge the two into one condition, and where an else follows a branch that already returns, drop the trailing else and let the rest of the body continue at one level."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/tblcmds/import.go"},"region":{"startLine":307}}}],"partialFingerprints":{"codehealthFindingId/v1":"141d8ef3f40e8a47b76abeaabb077bfdbb8297d80d6cc0d93e1b2b5e829eed8f"}},{"ruleId":"D2","level":"warning","message":{"text":"Steps.UnmarshalYAML (cognitive 37): Steps.UnmarshalYAML has cognitive complexity 37 (threshold 15). Drivers by points: if/else 24, loops 7, match/switch 5, boolean chains 1 (nesting depth added 20). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/env/actions/dolt_ci/workflow_config.go"},"region":{"startLine":93}}}],"partialFingerprints":{"codehealthFindingId/v1":"67f5e7e069f9545f74dfa06b6bf4d05591434792f3efaa59e9d58c7f858fcdfb"}},{"ruleId":"D2","level":"warning","message":{"text":"doltBinlogReplicaController.SetReplicationSourceOptions (cognitive 37): doltBinlogReplicaController.SetReplicationSourceOptions has cognitive complexity 37 (threshold 15). Drivers by points: if/else 34, match/switch 2, loops 1 (nesting depth added 21). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/binlogreplication/binlog_replica_controller.go"},"region":{"startLine":203}}}],"partialFingerprints":{"codehealthFindingId/v1":"f0e2ec262bf34f9879bae5fed91836f7be9a4b0c8dc60d51d144fc641a5aa8b9"}},{"ruleId":"D2","level":"warning","message":{"text":"dprocedures.checkoutNewBranch (cognitive 37): dprocedures.checkoutNewBranch has cognitive complexity 37 (threshold 15). Drivers by points: if/else 34, boolean chains 3 (nesting depth added 11). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dprocedures/dolt_checkout.go"},"region":{"startLine":404}}}],"partialFingerprints":{"codehealthFindingId/v1":"7ff55c07d90f9150e2f2a0438c983f28cd50739f8dca82593e7ea25618786e2f"}},{"ruleId":"D2","level":"warning","message":{"text":"creation.BuildProllyIndexExternal (cognitive 37): creation.BuildProllyIndexExternal has cognitive complexity 37 (threshold 15). Drivers by points: if/else 34, boolean chains 2, loops 1 (nesting depth added 12). Of this number, 35 points are the body\u0027s own statements and 2 belong to one function literal inside it that branches. To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/table/editor/creation/external_build_index.go"},"region":{"startLine":43}}}],"partialFingerprints":{"codehealthFindingId/v1":"63e5244e909018a1276d2e11fd1c7bb23ffbfd93dc873951d2f8b38d47f87b5d"}},{"ruleId":"D2","level":"warning","message":{"text":"ImportTest.IterImportTables (cognitive 37): ImportTest.IterImportTables has cognitive complexity 37 (threshold 15). Drivers by points: if/else 21, loops 12, match/switch 4 (nesting depth added 22). Of this number, 35 points are the body\u0027s own statements and 2 belong to one function literal inside it that branches. To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/performance/import_benchmarker/testdef.go"},"region":{"startLine":515}}}],"partialFingerprints":{"codehealthFindingId/v1":"0c959ddf65a23b406bdfd7ad73d672a8e65a6aebff3326eda1f50386bc6b66e7"}},{"ruleId":"D2","level":"warning","message":{"text":"markAndSweeper.SaveHashes (cognitive 37): markAndSweeper.SaveHashes has cognitive complexity 37 (threshold 15). Drivers by points: if/else 33, loops 3, boolean chains 1 (nesting depth added 18). Of this number, 25 points are the body\u0027s own statements and 12 belong to one function literal inside it that branches. To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/nbs/store.go"},"region":{"startLine":2415}}}],"partialFingerprints":{"codehealthFindingId/v1":"c4a87e8688a9c3ad96103633aa7603d04bdca60d2ad78d5d3a6425f104fa8889"}},{"ruleId":"D2","level":"warning","message":{"text":"tree.ApplyMutations (cognitive 37): tree.ApplyMutations has cognitive complexity 37 (threshold 15). Drivers by points: if/else 34, boolean chains 2, loops 1 (nesting depth added 17). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/prolly/tree/mutator.go"},"region":{"startLine":63}}}],"partialFingerprints":{"codehealthFindingId/v1":"b9a712c8453361c3bec5d906405a614a21dfc8baecf3d2df25d6300dd605edef"}},{"ruleId":"D2","level":"warning","message":{"text":"schcmds.printSchemas (cognitive 36): schcmds.printSchemas has cognitive complexity 36 (threshold 15). Drivers by points: if/else 32, loops 4 (nesting depth added 19). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/schcmds/show.go"},"region":{"startLine":86}}}],"partialFingerprints":{"codehealthFindingId/v1":"0e48b4865ff5f27e4cff44f7051665eb171587db56658b7d9940ffdf56d73b41"}},{"ruleId":"D2","level":"warning","message":{"text":"merge.checkSchemaConflicts (cognitive 36): merge.checkSchemaConflicts has cognitive complexity 36 (threshold 15). Drivers by points: if/else 19, boolean chains 10, match/switch 6, loops 1 (nesting depth added 17). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/merge/merge_schema.go"},"region":{"startLine":582}}}],"partialFingerprints":{"codehealthFindingId/v1":"71f69aabed751a4a1ca0c946cbbd9f49a626d2745ea7fec5d14f278f4d7a5101"}},{"ruleId":"D2","level":"warning","message":{"text":"sqle.replaceColumnInSchema (cognitive 36): sqle.replaceColumnInSchema has cognitive complexity 36 (threshold 15). Drivers by points: if/else 30, loops 6 (nesting depth added 14). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/alterschema.go"},"region":{"startLine":194}}}],"partialFingerprints":{"codehealthFindingId/v1":"78a3a4d0503687e1f9866d963aedd25a3c90922c067b1433c9c1a2505b88d5d2"}},{"ruleId":"D2","level":"warning","message":{"text":"index.HashesToCommits (cognitive 36): index.HashesToCommits has cognitive complexity 36 (threshold 15). Drivers by points: if/else 33, boolean chains 2, loops 1 (nesting depth added 21). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/index/dolt_index.go"},"region":{"startLine":1423}}}],"partialFingerprints":{"codehealthFindingId/v1":"252eb0f020121f17d86a71c5db99072b4f4d98768be7ac887fe68a6edc2f9152"}},{"ruleId":"D2","level":"warning","message":{"text":"NomsBlockStore.hasManyDep (cognitive 36): NomsBlockStore.hasManyDep has cognitive complexity 36 (threshold 15). Drivers by points: if/else 33, loops 3 (nesting depth added 20). Of this number, 35 points are the body\u0027s own statements and 1 belongs to one function literal inside it that branches. To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/nbs/store.go"},"region":{"startLine":1385}}}],"partialFingerprints":{"codehealthFindingId/v1":"61124ecac74846ab465185313d0456864ab295b5131dde831cf9507f4f67109f"}},{"ruleId":"D2","level":"warning","message":{"text":"NomsBlockStore.updateManifest (cognitive 36): NomsBlockStore.updateManifest has cognitive complexity 36 (threshold 15). Drivers by points: if/else 32, loops 3, boolean chains 1 (nesting depth added 16). Of this number, 33 points are the body\u0027s own statements and 3 belong to one function literal inside it that branches. To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/nbs/store.go"},"region":{"startLine":1614}}}],"partialFingerprints":{"codehealthFindingId/v1":"4fcb922ce10079343f8b2387865b83304e7ad35ff5b1f382d4baa01111e0eab1"}},{"ruleId":"D2","level":"warning","message":{"text":"PatchGenerator.split (cognitive 36): PatchGenerator.split has cognitive complexity 36 (threshold 15). Drivers by points: if/else 32, loops 3, match/switch 1 (nesting depth added 20). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/prolly/tree/patch_generator.go"},"region":{"startLine":401}}}],"partialFingerprints":{"codehealthFindingId/v1":"4a187e8c3842eb126534a76f0fbf81e90283ad013444ae6bd62bed05516f7ac9"}},{"ruleId":"D2","level":"warning","message":{"text":"commands.queryForUnstagedChanges (cognitive 35): commands.queryForUnstagedChanges has cognitive complexity 35 (threshold 15). Drivers by points: if/else 29, loops 3, match/switch 3 (nesting depth added 19). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/add.go"},"region":{"startLine":279}}}],"partialFingerprints":{"codehealthFindingId/v1":"039a19b8dd19b51f7652189c8cd74c8b7b6ea47aead4fc086ed4fdb7533d036f"}},{"ruleId":"D2","level":"warning","message":{"text":"merge.convertKeyBetweenTypes (cognitive 35): merge.convertKeyBetweenTypes has cognitive complexity 35 (threshold 15). Drivers by points: if/else 28, match/switch 5, boolean chains 1, loops 1 (nesting depth added 21). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/merge/violations_fk_prolly.go"},"region":{"startLine":654}}}],"partialFingerprints":{"codehealthFindingId/v1":"d70089dffab937ff84d6afdcd57ab021aa3172eb30dcf8ac1d162948c24d63bb"}},{"ruleId":"D2","level":"warning","message":{"text":"checkValidator.validateDiff (cognitive 35): checkValidator.validateDiff has cognitive complexity 35 (threshold 15). Drivers by points: if/else 31, match/switch 3, loops 1 (nesting depth added 18). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/merge/merge_prolly_rows.go"},"region":{"startLine":667}}}],"partialFingerprints":{"codehealthFindingId/v1":"c6513762997b47d739dda2988cd0f84156c322e9a7b374db6bd4ecd80c886e75"}},{"ruleId":"D2","level":"warning","message":{"text":"enginetest.validateKeylessIndex (cognitive 35): enginetest.validateKeylessIndex has cognitive complexity 35 (threshold 15). Drivers by points: if/else 32, loops 3 (nesting depth added 19). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/enginetest/validation.go"},"region":{"startLine":163}}}],"partialFingerprints":{"codehealthFindingId/v1":"5847f1677a884feef40a7293afd3597e62bfc23076bc5f1a9f60713559202bd3"}},{"ruleId":"D2","level":"warning","message":{"text":"SecondaryKeyBuilder.SecondaryKeyFromRow (cognitive 35): SecondaryKeyBuilder.SecondaryKeyFromRow has cognitive complexity 35 (threshold 15). Drivers by points: if/else 34, loops 1 (nesting depth added 22). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/index/key_builder.go"},"region":{"startLine":117}}}],"partialFingerprints":{"codehealthFindingId/v1":"766bcae60c5d76c4332bcf0eb389786c0b1552437749afd3cd6449c68cc13939"}},{"ruleId":"D2","level":"warning","message":{"text":"PullTableFileWriter.addChunkThread (cognitive 35): PullTableFileWriter.addChunkThread has cognitive complexity 35 (threshold 15). Drivers by points: if/else 29, match/switch 3, boolean chains 1, jumps 1, loops 1 (nesting depth added 18). Of this number, 31 points are the body\u0027s own statements and 4 belong to 2 function literals inside it that branch. To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/datas/pull/pull_table_file_writer.go"},"region":{"startLine":223}}}],"partialFingerprints":{"codehealthFindingId/v1":"c4b10f23b5c3d373e5d37c28de15a320f81d72ed0121928c85dfb0efb5af707e"}},{"ruleId":"D2","level":"warning","message":{"text":"valueDecoder.readValue (cognitive 35): valueDecoder.readValue has cognitive complexity 35 (threshold 15). Drivers by points: if/else 32, match/switch 3 (nesting depth added 17). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/types/value_decoder.go"},"region":{"startLine":121}}}],"partialFingerprints":{"codehealthFindingId/v1":"5aca975fd1a438430a9bcee425fe15bae44add161be3ad81e58989d1577ae4b0"}},{"ruleId":"D2","level":"warning","message":{"text":"val.CompareCollatedStrings (cognitive 35): val.CompareCollatedStrings has cognitive complexity 35 (threshold 15). Drivers by points: if/else 23, boolean chains 8, loops 4 (nesting depth added 8). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/val/codec.go"},"region":{"startLine":706}}}],"partialFingerprints":{"codehealthFindingId/v1":"24c9b19df087f126ef83bf34c52ef542b624594fd99df04eaf542ee5a7768297"}},{"ruleId":"D2","level":"warning","message":{"text":"commands.diffUserTable (cognitive 34): commands.diffUserTable has cognitive complexity 34 (threshold 15). Drivers by points: if/else 30, boolean chains 4 (nesting depth added 9). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/diff.go"},"region":{"startLine":1249}}}],"partialFingerprints":{"codehealthFindingId/v1":"e6276d76bb9eb18f09da530c4c13cb67ea50c690aa79858cfafcbc85abc00971"}},{"ruleId":"D2","level":"warning","message":{"text":"DumpCmd.Exec (cognitive 34): DumpCmd.Exec has cognitive complexity 34 (threshold 15). Drivers by points: if/else 31, loops 2, match/switch 1 (nesting depth added 14). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/dump.go"},"region":{"startLine":117}}}],"partialFingerprints":{"codehealthFindingId/v1":"ce98ae90f87db378a026635df118795314bc3a61937b2b78c53aabef29e15af5"}},{"ruleId":"D2","level":"warning","message":{"text":"sqlserver.setupDoltConfig (cognitive 34): sqlserver.setupDoltConfig has cognitive complexity 34 (threshold 15). Drivers by points: if/else 30, boolean chains 4 (nesting depth added 11). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/sqlserver/sqlserver.go"},"region":{"startLine":533}}}],"partialFingerprints":{"codehealthFindingId/v1":"9b3a8191a89e82215c2af653e66aded4df9fe900545932bc3360d1fd3f5a03ba"}},{"ruleId":"D2","level":"warning","message":{"text":"merge.rebuildFullTextIndexesForTable (cognitive 34): merge.rebuildFullTextIndexesForTable has cognitive complexity 34 (threshold 15). Drivers by points: if/else 30, loops 3, boolean chains 1 (nesting depth added 13). Of this number, 28 points are the body\u0027s own statements and 6 belong to one function literal inside it that branches. To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/merge/fulltext_rebuild.go"},"region":{"startLine":183}}}],"partialFingerprints":{"codehealthFindingId/v1":"52eebf598bd5c695a941c570c15f9d415440ac90b04b1a0d5aedb7418870b076"}},{"ruleId":"D2","level":"warning","message":{"text":"commithook.replicate (cognitive 34): commithook.replicate has cognitive complexity 34 (threshold 15). Drivers by points: if/else 33, loops 1 (nesting depth added 20). Of this number, 28 points are the body\u0027s own statements and 6 belong to one function literal inside it that branches. To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/cluster/commithook.go"},"region":{"startLine":140}}}],"partialFingerprints":{"codehealthFindingId/v1":"ec6e8a815b750d0d3a7771c1d26c32235201d9d8b421590ac42265330b36f308"}},{"ruleId":"D2","level":"warning","message":{"text":"DoltSession.StartTransaction (cognitive 34): DoltSession.StartTransaction has cognitive complexity 34 (threshold 15). Drivers by points: if/else 26, boolean chains 6, loops 2 (nesting depth added 13). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dsess/session.go"},"region":{"startLine":348}}}],"partialFingerprints":{"codehealthFindingId/v1":"ae54d5c958a1c7629d38884d941ec2af43209bf49357e84a484c28a542486864"}},{"ruleId":"D2","level":"warning","message":{"text":"DoltTransaction.doCommit (cognitive 34): DoltTransaction.doCommit has cognitive complexity 34 (threshold 15). Drivers by points: if/else 32, boolean chains 1, loops 1 (nesting depth added 13). Most of this is not in the body itself: 8 of the 34 points are its own statements and the rest belongs to one function literal inside it that branches (line 430). The decisions are inside the literal, which nothing outside this body can call, review or test on its own, so splitting the enclosing body is not the move available here. To reduce it, lift the literal\u0027s work into a named function or method at the enclosing scope and have the literal call it, then reduce whichever part then reads as the largest."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dsess/transactions.go"},"region":{"startLine":394}}}],"partialFingerprints":{"codehealthFindingId/v1":"6ee94f3ad31b33ef6423d62e3a2f0cf4fa08677cba7bfd17417272f65d35ce3a"}},{"ruleId":"D2","level":"warning","message":{"text":"BranchStatusTableFunction.RowIter (cognitive 34): BranchStatusTableFunction.RowIter has cognitive complexity 34 (threshold 15). Drivers by points: if/else 28, loops 6 (nesting depth added 13). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dtablefunctions/dolt_branch_status_table_function.go"},"region":{"startLine":119}}}],"partialFingerprints":{"codehealthFindingId/v1":"d058e2652cadd1d2dda8f9a0e5af509e9002e8f285343c986a75bf22d551d853"}},{"ruleId":"D2","level":"warning","message":{"text":"LogTableFunction.RowIter (cognitive 34): LogTableFunction.RowIter has cognitive complexity 34 (threshold 15). Drivers by points: if/else 31, loops 2, boolean chains 1 (nesting depth added 11). Of this number, 33 points are the body\u0027s own statements and 1 belongs to one function literal inside it that branches. To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dtablefunctions/dolt_log.go"},"region":{"startLine":446}}}],"partialFingerprints":{"codehealthFindingId/v1":"85063531b10848f4a5e0154c234d00a9e2624727e56e82b239e45447c7d2ea84"}},{"ruleId":"D2","level":"warning","message":{"text":"sendingThread.run (cognitive 34): sendingThread.run has cognitive complexity 34 (threshold 15). Drivers by points: if/else 29, boolean chains 2, match/switch 2, loops 1 (nesting depth added 20). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/events/collector.go"},"region":{"startLine":158}}}],"partialFingerprints":{"codehealthFindingId/v1":"82206fe2c261a8d4a2080c0c1d451e5768e115a2b610676a1121f50c93af61d2"}},{"ruleId":"D2","level":"warning","message":{"text":"nbs.possibleDataLossCheck (cognitive 34): nbs.possibleDataLossCheck has cognitive complexity 34 (threshold 15). Drivers by points: if/else 30, boolean chains 1, jumps 1, loops 1, match/switch 1 (nesting depth added 21). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/nbs/journal_record.go"},"region":{"startLine":498}}}],"partialFingerprints":{"codehealthFindingId/v1":"3fb21faa44471243bf7b45c9b2b705a61a95d5ea6dcdf81d6bbe6e6c463736e0"}},{"ruleId":"D2","level":"warning","message":{"text":"nbs.planTableConjoin (cognitive 34): nbs.planTableConjoin has cognitive complexity 34 (threshold 15). Drivers by points: if/else 23, loops 11 (nesting depth added 16). Of this number, 33 points are the body\u0027s own statements and 1 belongs to one function literal inside it that branches. To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/nbs/table_persister.go"},"region":{"startLine":191}}}],"partialFingerprints":{"codehealthFindingId/v1":"2dfb3b708934a4430cd1850d5bff7a98413fb84280fab98d52e1b135f262cfd0"}},{"ruleId":"D2","level":"warning","message":{"text":"ProximityFlusher.rebuildNode (cognitive 34): ProximityFlusher.rebuildNode has cognitive complexity 34 (threshold 15). Drivers by points: if/else 28, loops 6 (nesting depth added 14). Most of this is not in the body itself: 13 of the 34 points are its own statements and the rest belongs to 2 function literals inside it that branch (lines 392, 370). The decisions are inside those literals, which nothing outside this body can call, review or test on its own, so splitting the enclosing body is not the move available here. To reduce it, lift the literals\u0027 work into a named function or method at the enclosing scope and have each literal call it, then reduce whichever part then reads as the largest."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/prolly/proximity_mutable_map.go"},"region":{"startLine":355}}}],"partialFingerprints":{"codehealthFindingId/v1":"7b964dcb4a8989402470464c33f67a8bc5078baa108edf8501064c2f0a0911fe"}},{"ruleId":"D2","level":"warning","message":{"text":"main.main (cognitive 34): main.main has cognitive complexity 34 (threshold 15). Drivers by points: if/else 32, loops 2 (nesting depth added 13). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/utils/3pdeps/main.go"},"region":{"startLine":43}}}],"partialFingerprints":{"codehealthFindingId/v1":"497864ed07885afbd1fdb87c30786116786fef459d345db3bde6b13246cc35bd"}},{"ruleId":"D2","level":"warning","message":{"text":"Test.Run (cognitive 34): Test.Run has cognitive complexity 34 (threshold 15). Drivers by points: if/else 17, loops 17 (nesting depth added 17). Of this number, 28 points are the body\u0027s own statements and 6 belong to 2 function literals inside it that branch. To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"integration-tests/go-sql-server-driver/testdef.go"},"region":{"startLine":352}}}],"partialFingerprints":{"codehealthFindingId/v1":"1d67e5a7967de9b41281cc52d5cbfdcb8a764cdf334810d43db002c835638a29"}},{"ruleId":"D2","level":"warning","message":{"text":"commands.validateSqlArgs (cognitive 33): commands.validateSqlArgs has cognitive complexity 33 (threshold 15). Drivers by points: if/else 26, boolean chains 7 (nesting depth added 5). To reduce it, split the body: most of this score is breadth rather than depth \u2014 checks laid out side by side rather than stacked \u2014 so group the statements between the checks into named steps and move each step into its own function. Some of it IS depth: where a check sits inside another whose only job is to reach it, merge the two into one condition, and where an else follows a branch that already returns, drop the trailing else and let the rest of the body continue at one level."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/sql.go"},"region":{"startLine":556}}}],"partialFingerprints":{"codehealthFindingId/v1":"058f6196c7da3348b1e242d3f297d0b04579101157709518a7b1c08146c9d3d6"}},{"ruleId":"D2","level":"warning","message":{"text":"VerifyConstraintsCmd.Exec (cognitive 33): VerifyConstraintsCmd.Exec has cognitive complexity 33 (threshold 15). Drivers by points: if/else 30, loops 3 (nesting depth added 12). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/cvcmds/verify_constraints.go"},"region":{"startLine":65}}}],"partialFingerprints":{"codehealthFindingId/v1":"172b0b448c2c0648d035d297b865d702735aa2b6dfc57a153fee98b7a3579bf2"}},{"ruleId":"D2","level":"warning","message":{"text":"sqlserver.NewCommandLineConfig (cognitive 33): sqlserver.NewCommandLineConfig has cognitive complexity 33 (threshold 15). Drivers by points: if/else 33 (nesting depth added 6). To reduce it, split the body: most of this score is breadth rather than depth \u2014 checks laid out side by side rather than stacked \u2014 so group the statements between the checks into named steps and move each step into its own function. Some of it IS depth: where a check sits inside another whose only job is to reach it, merge the two into one condition, and where an else follows a branch that already returns, drop the trailing else and let the rest of the body continue at one level."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/sqlserver/command_line_config.go"},"region":{"startLine":110}}}],"partialFingerprints":{"codehealthFindingId/v1":"07d6d0b7711fcba51b0ccbc31c54194ed4e0249a8d2f284b7bd2144e3b1e7fec"}},{"ruleId":"D2","level":"warning","message":{"text":"dbfactory.awsConfigFromParams (cognitive 33): dbfactory.awsConfigFromParams has cognitive complexity 33 (threshold 15). Drivers by points: if/else 31, boolean chains 1, match/switch 1 (nesting depth added 13). Of this number, 30 points are the body\u0027s own statements and 3 belong to one function literal inside it that branches. To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/dbfactory/aws.go"},"region":{"startLine":184}}}],"partialFingerprints":{"codehealthFindingId/v1":"d5ce8439d464352e34f71856c6ee369d555d8340a1481bcccacd11c6de4ffdbc"}},{"ruleId":"D2","level":"warning","message":{"text":"RemoteChunkStore.StreamDownloadLocations (cognitive 33): RemoteChunkStore.StreamDownloadLocations has cognitive complexity 33 (threshold 15). Drivers by points: if/else 27, loops 6 (nesting depth added 19). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/remotesrv/grpc.go"},"region":{"startLine":242}}}],"partialFingerprints":{"codehealthFindingId/v1":"297e2d98d5c75a1596ed2df4b6eefb44b14f3917e071d7e89e1a447cd8a412d7"}},{"ruleId":"D2","level":"warning","message":{"text":"remotestorage.fetcherRPCDownloadLocsThread (cognitive 33): remotestorage.fetcherRPCDownloadLocsThread has cognitive complexity 33 (threshold 15). Drivers by points: if/else 20, match/switch 8, loops 5 (nesting depth added 18). Most of this is not in the body itself: 1 of the 33 points is its own statement and the rest belongs to 2 function literals inside it that branch (lines 316, 300). The decisions are inside those literals, which nothing outside this body can call, review or test on its own, so splitting the enclosing body is not the move available here. To reduce it, lift the literals\u0027 work into a named function or method at the enclosing scope and have each literal call it, then reduce whichever part then reads as the largest."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/remotestorage/chunk_fetcher.go"},"region":{"startLine":282}}}],"partialFingerprints":{"codehealthFindingId/v1":"47b6c69728925f16584cf2b9686e3a38059c72653d42bd577e756f7cae6097ca"}},{"ruleId":"D2","level":"warning","message":{"text":"typeinfo.FromSqlType (cognitive 33): typeinfo.FromSqlType has cognitive complexity 33 (threshold 15). Drivers by points: if/else 30, match/switch 3 (nesting depth added 15). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/schema/typeinfo/typeinfo.go"},"region":{"startLine":65}}}],"partialFingerprints":{"codehealthFindingId/v1":"8c9d2b175bc4f53a316027f6ca26a984e6fff2b161cb1fe84f365b1a7ecd27d3"}},{"ruleId":"D2","level":"warning","message":{"text":"sqle.RunAsyncReplicationThreads (cognitive 33): sqle.RunAsyncReplicationThreads has cognitive complexity 33 (threshold 15). Drivers by points: if/else 24, match/switch 5, loops 3, boolean chains 1 (nesting depth added 14). Most of this is not in the body itself: 2 of the 33 points are its own statements and the rest belongs to 5 function literals inside it that branch (lines 249, 218, 285, \u2026). The decisions are inside those literals, which nothing outside this body can call, review or test on its own, so splitting the enclosing body is not the move available here. To reduce it, lift the literals\u0027 work into a named function or method at the enclosing scope and have each literal call it, then reduce whichever part then reads as the largest."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/commit_hooks.go"},"region":{"startLine":188}}}],"partialFingerprints":{"codehealthFindingId/v1":"6ba2e9502976848f2db965931b0068f5ec39c29df787e5718c8780d23aa9ef57"}},{"ruleId":"D2","level":"warning","message":{"text":"Controller.setRoleAndEpoch (cognitive 33): Controller.setRoleAndEpoch has cognitive complexity 33 (threshold 15). Drivers by points: if/else 25, boolean chains 6, loops 2 (nesting depth added 11). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/cluster/controller.go"},"region":{"startLine":641}}}],"partialFingerprints":{"codehealthFindingId/v1":"336badf4e7fd930179d5c83202a459cfb2fd27c1ea7445632b6557fb0f4e8a15"}},{"ruleId":"D2","level":"warning","message":{"text":"dprocedures.handleRebaseCherryPick (cognitive 33): dprocedures.handleRebaseCherryPick has cognitive complexity 33 (threshold 15). Drivers by points: if/else 30, boolean chains 3 (nesting depth added 15). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dprocedures/dolt_rebase.go"},"region":{"startLine":990}}}],"partialFingerprints":{"codehealthFindingId/v1":"7a219777d584abcecf5619761a0750f33df7d97c378a9d60c478eb1034e4fe86"}},{"ruleId":"D2","level":"warning","message":{"text":"DiffStatTableFunction.WithExpressions (cognitive 33): DiffStatTableFunction.WithExpressions has cognitive complexity 33 (threshold 15). Drivers by points: if/else 26, boolean chains 6, loops 1 (nesting depth added 10). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dtablefunctions/dolt_diff_stat.go"},"region":{"startLine":213}}}],"partialFingerprints":{"codehealthFindingId/v1":"eb299db9b6c975cb62a2854c75df692b548c107313ccb2910bf140d7c969a069"}},{"ruleId":"D2","level":"warning","message":{"text":"DiffSummaryTableFunction.WithExpressions (cognitive 33): DiffSummaryTableFunction.WithExpressions has cognitive complexity 33 (threshold 15). Drivers by points: if/else 26, boolean chains 6, loops 1 (nesting depth added 10). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dtablefunctions/dolt_diff_summary.go"},"region":{"startLine":205}}}],"partialFingerprints":{"codehealthFindingId/v1":"c620d9ba7476fb40bdd3af5682be71e3afed5ba0fd75ec037d1060c7e4ab81d9"}},{"ruleId":"D2","level":"warning","message":{"text":"PatchTableFunction.WithExpressions (cognitive 33): PatchTableFunction.WithExpressions has cognitive complexity 33 (threshold 15). Drivers by points: if/else 26, boolean chains 6, loops 1 (nesting depth added 10). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dtablefunctions/dolt_patch.go"},"region":{"startLine":356}}}],"partialFingerprints":{"codehealthFindingId/v1":"ad90ba856cc7eecd5af653f802a8ba6192ab95f8736ebc4e3cce4369b92c1357"}},{"ruleId":"D2","level":"warning","message":{"text":"ReflogTableFunction.RowIter (cognitive 33): ReflogTableFunction.RowIter has cognitive complexity 33 (threshold 15). Drivers by points: if/else 31, boolean chains 1, loops 1 (nesting depth added 10). Of this number, 16 points are the body\u0027s own statements and 17 belong to one function literal inside it that branches. To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dtablefunctions/dolt_reflog.go"},"region":{"startLine":61}}}],"partialFingerprints":{"codehealthFindingId/v1":"b9a52f8b83ba3380dcfba4c9225fe1db487c9bd43cf0254cfe7e7875a875fb31"}},{"ruleId":"D2","level":"warning","message":{"text":"nbs.filterJournalCore (cognitive 33): nbs.filterJournalCore has cognitive complexity 33 (threshold 15). Drivers by points: if/else 30, boolean chains 2, loops 1 (nesting depth added 20). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/nbs/journal_inspect.go"},"region":{"startLine":710}}}],"partialFingerprints":{"codehealthFindingId/v1":"8fc9b37111980e042bd47ed6afad96918d60ebb7311d12a57ae661f79e27e90e"}},{"ruleId":"D2","level":"warning","message":{"text":"conjoinOperation.updateManifest (cognitive 33): conjoinOperation.updateManifest has cognitive complexity 33 (threshold 15). Drivers by points: if/else 27, loops 6 (nesting depth added 20). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/nbs/conjoiner.go"},"region":{"startLine":195}}}],"partialFingerprints":{"codehealthFindingId/v1":"5fa2d554d35b7ff2c1e1d9df231fc827871ef66143c52c72e03427fcbbf6782a"}},{"ruleId":"D2","level":"warning","message":{"text":"tableReader.findOffsets (cognitive 33): tableReader.findOffsets has cognitive complexity 33 (threshold 15). Drivers by points: if/else 26, loops 5, boolean chains 2 (nesting depth added 18). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/nbs/table_reader.go"},"region":{"startLine":544}}}],"partialFingerprints":{"codehealthFindingId/v1":"3f0d3f874c039ae429dd0a56a90436758b6744cfda1e0f973843082d65e2fd16"}},{"ruleId":"D2","level":"warning","message":{"text":"prolly.IncrementTuple (cognitive 33): prolly.IncrementTuple has cognitive complexity 33 (threshold 15). Drivers by points: if/else 31, loops 1, match/switch 1 (nesting depth added 14). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/prolly/tuple_range.go"},"region":{"startLine":270}}}],"partialFingerprints":{"codehealthFindingId/v1":"19f86c635793679ee139cf45384ea3a5616890601a785068e655b6bb8b45b679"}},{"ruleId":"D2","level":"warning","message":{"text":"tree.GetField (cognitive 33): tree.GetField has cognitive complexity 33 (threshold 15). Drivers by points: if/else 28, match/switch 4, boolean chains 1 (nesting depth added 16). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/prolly/tree/prolly_fields.go"},"region":{"startLine":42}}}],"partialFingerprints":{"codehealthFindingId/v1":"a8b5c29b58a6a47bc6b216639859a21ae75397f567d5573d3653f82a86a1ca54"}},{"ruleId":"D2","level":"warning","message":{"text":"InMemoryJsonDiffer.Next (cognitive 33): InMemoryJsonDiffer.Next has cognitive complexity 33 (threshold 15). Drivers by points: if/else 27, boolean chains 5, loops 1 (nesting depth added 13). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/prolly/tree/json_diff.go"},"region":{"startLine":109}}}],"partialFingerprints":{"codehealthFindingId/v1":"956722896c13ea4edbefe4dee8051b6bcce042b52c8d84c3b39a6f0fdcb09cea"}},{"ruleId":"D2","level":"warning","message":{"text":"commands.cherryPick (cognitive 32): commands.cherryPick has cognitive complexity 32 (threshold 15). Drivers by points: if/else 27, boolean chains 2, match/switch 2, loops 1 (nesting depth added 9). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/cherry-pick.go"},"region":{"startLine":142}}}],"partialFingerprints":{"codehealthFindingId/v1":"f9e2797cf540f7b505e8c471c37006b2ebca12b1666a1756824ae4bea8f1d824"}},{"ruleId":"D2","level":"warning","message":{"text":"commands.dumpTriggers (cognitive 32): commands.dumpTriggers has cognitive complexity 32 (threshold 15). Drivers by points: if/else 30, boolean chains 1, loops 1 (nesting depth added 14). Of this number, 30 points are the body\u0027s own statements and 2 belong to one function literal inside it that branches. To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/dump.go"},"region":{"startLine":326}}}],"partialFingerprints":{"codehealthFindingId/v1":"3339d5819d6177383221bf3455886c5af5cdd5198f1f6ad4241356efb9286d7a"}},{"ruleId":"D2","level":"warning","message":{"text":"commands.fsckHandleProgress (cognitive 32): commands.fsckHandleProgress has cognitive complexity 32 (threshold 15). Drivers by points: if/else 18, match/switch 8, boolean chains 3, loops 3 (nesting depth added 16). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/fsck.go"},"region":{"startLine":326}}}],"partialFingerprints":{"codehealthFindingId/v1":"7783806536df1c469e2c0eb8017ca2e01ebd5f969ed465bfab997f2dce34c250"}},{"ruleId":"D2","level":"warning","message":{"text":"merge.convertNativeEncodedFkField (cognitive 32): merge.convertNativeEncodedFkField has cognitive complexity 32 (threshold 15). Drivers by points: if/else 30, match/switch 2 (nesting depth added 16). The drivers above price the dispatch low by construction \u2014 a dispatch is charged once however many cases it lists, while each branch inside an arm is charged in full \u2014 so most of this count is what the case bodies hold, and the arms are where it can be reduced. To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Keep every case explicit, and make the behaviour for cases you do not list a deliberate choice rather than an accident."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/merge/violations_fk_prolly.go"},"region":{"startLine":723}}}],"partialFingerprints":{"codehealthFindingId/v1":"880e8d561ab370ceaef61bc82c61b4a39a146cba50518b6a4196e448eb8370ce"}},{"ruleId":"D2","level":"warning","message":{"text":"sqle.getSchemaFragmentsOfType (cognitive 32): sqle.getSchemaFragmentsOfType has cognitive complexity 32 (threshold 15). Drivers by points: if/else 29, boolean chains 2, loops 1 (nesting depth added 14). Of this number, 30 points are the body\u0027s own statements and 2 belong to one function literal inside it that branches. To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/schema_table.go"},"region":{"startLine":414}}}],"partialFingerprints":{"codehealthFindingId/v1":"f914bb9dfd404b1ab6c3984dd62437fecf78c0fa54bb57f37d513dd5fb689f10"}},{"ruleId":"D2","level":"warning","message":{"text":"dtablefunctions.didTableChangeBetweenRootValues (cognitive 32): dtablefunctions.didTableChangeBetweenRootValues has cognitive complexity 32 (threshold 15). Drivers by points: if/else 21, boolean chains 11 (nesting depth added 3). To reduce it, split the body: most of this score is breadth rather than depth \u2014 checks laid out side by side rather than stacked \u2014 so group the statements between the checks into named steps and move each step into its own function. Some of it IS depth: where a check sits inside another whose only job is to reach it, merge the two into one condition, and where an else follows a branch that already returns, drop the trailing else and let the rest of the body continue at one level."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dtablefunctions/dolt_log.go"},"region":{"startLine":747}}}],"partialFingerprints":{"codehealthFindingId/v1":"0ffa4d6f2dc2f6a2edbbfc06bfcd48608daaa20832011dcbbd0f7c1de4a3dadf"}},{"ruleId":"D2","level":"warning","message":{"text":"DiffTable.toCommitLookupPartitions (cognitive 32): DiffTable.toCommitLookupPartitions has cognitive complexity 32 (threshold 15). Drivers by points: if/else 28, loops 3, boolean chains 1 (nesting depth added 14). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dtables/diff_table.go"},"region":{"startLine":482}}}],"partialFingerprints":{"codehealthFindingId/v1":"309beffc051ddcf140ea2b9c2dc7fa2e2d2c4146dd1020edbbb923f3f7807463"}},{"ruleId":"D2","level":"warning","message":{"text":"Sloppy.Update (cognitive 32): Sloppy.Update has cognitive complexity 32 (threshold 15). Drivers by points: if/else 25, boolean chains 6, loops 1 (nesting depth added 16). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/sloppy/sloppy.go"},"region":{"startLine":107}}}],"partialFingerprints":{"codehealthFindingId/v1":"972884bb114a0146aac522b15009cb6631a8207f1be8abd859dc7bef29f05c15"}},{"ruleId":"D2","level":"warning","message":{"text":"SerialMessage.HumanReadableStringAtIndentationLevel (cognitive 32): SerialMessage.HumanReadableStringAtIndentationLevel has cognitive complexity 32 (threshold 15). Drivers by points: loops 19, if/else 12, match/switch 1 (nesting depth added 17). The drivers above price the dispatch low by construction \u2014 a dispatch is charged once however many cases it lists, while each branch inside an arm is charged in full \u2014 so most of this count is what the case bodies hold, and the arms are where it can be reduced. To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Keep every case explicit, and make the behaviour for cases you do not list a deliberate choice rather than an accident."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/types/serial_message.go"},"region":{"startLine":69}}}],"partialFingerprints":{"codehealthFindingId/v1":"3d0df4f32edb1ef4a5bc32756c29bb822714dddf22d1e80233a164f6f2db129b"}},{"ruleId":"D2","level":"warning","message":{"text":"DumpDocsCmd.dumpDocs (cognitive 31): DumpDocsCmd.dumpDocs has cognitive complexity 31 (threshold 15). Drivers by points: if/else 30, loops 1 (nesting depth added 21). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/dump_docs.go"},"region":{"startLine":129}}}],"partialFingerprints":{"codehealthFindingId/v1":"1dee61c6edf6619e58aeeda0e7e7ef2e6d1f42773f515e8f9889941f3623b9f9"}},{"ruleId":"D2","level":"warning","message":{"text":"LsCmd.Exec (cognitive 31): LsCmd.Exec has cognitive complexity 31 (threshold 15). Drivers by points: if/else 27, loops 4 (nesting depth added 14). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/indexcmds/ls.go"},"region":{"startLine":59}}}],"partialFingerprints":{"codehealthFindingId/v1":"d198855c10a45d2ff4bd337f141d0d2ff3397d261f64e397966ae6b9bf8d75f6"}},{"ruleId":"D2","level":"warning","message":{"text":"main.createBootstrapConfig (cognitive 31): main.createBootstrapConfig has cognitive complexity 31 (threshold 15). Drivers by points: if/else 28, boolean chains 3 (nesting depth added 6). Of this number, 29 points are the body\u0027s own statements and 2 belong to one function literal inside it that branches. To reduce it, split the body: most of this score is breadth rather than depth \u2014 checks laid out side by side rather than stacked \u2014 so group the statements between the checks into named steps and move each step into its own function. Some of it IS depth: where a check sits inside another whose only job is to reach it, merge the two into one condition, and where an else follows a branch that already returns, drop the trailing else and let the rest of the body continue at one level."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/dolt.go"},"region":{"startLine":917}}}],"partialFingerprints":{"codehealthFindingId/v1":"1d3e11ca0c7582fb8a4218e281ccfa5ad64264de272a20a873db16bba35a8e9a"}},{"ruleId":"D2","level":"warning","message":{"text":"FileFactory.CreateDbNoCache (cognitive 31): FileFactory.CreateDbNoCache has cognitive complexity 31 (threshold 15). Drivers by points: if/else 27, boolean chains 4 (nesting depth added 10). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/dbfactory/file.go"},"region":{"startLine":194}}}],"partialFingerprints":{"codehealthFindingId/v1":"56832c1f94578761f556540db055e8056842e2e85fefc24af4db18ac733e1faf"}},{"ruleId":"D2","level":"warning","message":{"text":"actions.SyncRoots (cognitive 31): actions.SyncRoots has cognitive complexity 31 (threshold 15). Drivers by points: if/else 22, loops 7, boolean chains 2 (nesting depth added 13). Of this number, 17 points are the body\u0027s own statements and 14 belong to one function literal inside it that branches. To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/env/actions/remotes.go"},"region":{"startLine":804}}}],"partialFingerprints":{"codehealthFindingId/v1":"1616aba56d7c5c3f789767bdbff14ad138b8572a8fd544a79d3fe94626eef0e5"}},{"ruleId":"D2","level":"warning","message":{"text":"DiffTableFunction.generateSchema (cognitive 31): DiffTableFunction.generateSchema has cognitive complexity 31 (threshold 15). Drivers by points: if/else 29, boolean chains 2 (nesting depth added 9). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dtablefunctions/dolt_diff.go"},"region":{"startLine":765}}}],"partialFingerprints":{"codehealthFindingId/v1":"0d93fddeec17f5347553c67c1efadea14d86efe4a872926da607633153353292"}},{"ruleId":"D2","level":"warning","message":{"text":"prollyCVIter.Next (cognitive 31): prollyCVIter.Next has cognitive complexity 31 (threshold 15). Drivers by points: if/else 24, loops 6, match/switch 1 (nesting depth added 14). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dtables/constraint_violations_prolly.go"},"region":{"startLine":220}}}],"partialFingerprints":{"codehealthFindingId/v1":"d8afa7d38212653fd3bde4fab37280e53a491e0d8e82e4bcce557b321c46ae3c"}},{"ruleId":"D2","level":"warning","message":{"text":"index.SplitNullsFromRange (cognitive 31): index.SplitNullsFromRange has cognitive complexity 31 (threshold 15). Drivers by points: if/else 18, loops 12, boolean chains 1 (nesting depth added 19). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/index/dolt_index.go"},"region":{"startLine":1332}}}],"partialFingerprints":{"codehealthFindingId/v1":"5fd19b3fdf8a33fec7ae65281ce77caf765b0cae0a8dec02e140e6a6958614d3"}},{"ruleId":"D2","level":"warning","message":{"text":"commands.dumpProcedures (cognitive 30): commands.dumpProcedures has cognitive complexity 30 (threshold 15). Drivers by points: if/else 28, boolean chains 1, loops 1 (nesting depth added 13). Of this number, 28 points are the body\u0027s own statements and 2 belong to one function literal inside it that branches. To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/dump.go"},"region":{"startLine":251}}}],"partialFingerprints":{"codehealthFindingId/v1":"38dd08edb0ea6845c382ab87762c9b8a94fd0675157d39dc7b9db09c11463137"}},{"ruleId":"D2","level":"warning","message":{"text":"commands.fsckOnChunkStore (cognitive 30): commands.fsckOnChunkStore has cognitive complexity 30 (threshold 15). Drivers by points: if/else 15, loops 14, boolean chains 1 (nesting depth added 13). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/fsck.go"},"region":{"startLine":415}}}],"partialFingerprints":{"codehealthFindingId/v1":"1f7c4b03ec52f17ba717c6e8bacac29144aaeeabf32f959f71d5700b230b9445"}},{"ruleId":"D2","level":"warning","message":{"text":"tblcmds.getImportMoveOptions (cognitive 30): tblcmds.getImportMoveOptions has cognitive complexity 30 (threshold 15). Drivers by points: if/else 25, boolean chains 3, match/switch 2 (nesting depth added 11). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/tblcmds/import.go"},"region":{"startLine":197}}}],"partialFingerprints":{"codehealthFindingId/v1":"2dbca9388ca8f3e22f922f1a284764ce18860ceafb173fbe0d60a80b0627dfee"}},{"ruleId":"D2","level":"warning","message":{"text":"MultiRepoEnv.ReloadDBs (cognitive 30): MultiRepoEnv.ReloadDBs has cognitive complexity 30 (threshold 15). Drivers by points: if/else 28, boolean chains 1, loops 1 (nesting depth added 16). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/env/multi_repo_env.go"},"region":{"startLine":293}}}],"partialFingerprints":{"codehealthFindingId/v1":"fa59775ad03b4fb554f8abc9967f15b55d45bbb6b172cdad2e58f69f4a2b3f39"}},{"ruleId":"D2","level":"warning","message":{"text":"HashOf.Eval (cognitive 30): HashOf.Eval has cognitive complexity 30 (threshold 15). Drivers by points: if/else 30 (nesting depth added 12). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dfunctions/hashof.go"},"region":{"startLine":54}}}],"partialFingerprints":{"codehealthFindingId/v1":"7d9a96fde4bc605ace084f20fd3dc2475895db787cf8a51c64d38c2fdc309a9c"}},{"ruleId":"D2","level":"warning","message":{"text":"dprocedures.deleteBranches (cognitive 30): dprocedures.deleteBranches has cognitive complexity 30 (threshold 15). Drivers by points: if/else 26, boolean chains 2, loops 2 (nesting depth added 13). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dprocedures/dolt_branch.go"},"region":{"startLine":220}}}],"partialFingerprints":{"codehealthFindingId/v1":"daf1b94cbc236f84713ad5aa80d1c87999fbc0cf4c80b05cd0f1bed6c00c15d4"}},{"ruleId":"D2","level":"warning","message":{"text":"dprocedures.checkoutTablesFromHead (cognitive 30): dprocedures.checkoutTablesFromHead has cognitive complexity 30 (threshold 15). Drivers by points: if/else 26, boolean chains 2, loops 2 (nesting depth added 12). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dprocedures/dolt_checkout.go"},"region":{"startLine":730}}}],"partialFingerprints":{"codehealthFindingId/v1":"11a6aa5e857cc2b58731264da8e50a01b4ac4817d8f1c605028fc7d8869da58f"}},{"ruleId":"D2","level":"warning","message":{"text":"QueryDiffTableFunction.pkRowIter (cognitive 30): QueryDiffTableFunction.pkRowIter has cognitive complexity 30 (threshold 15). Drivers by points: if/else 20, loops 6, boolean chains 2, match/switch 2 (nesting depth added 12). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dtablefunctions/dolt_query_diff.go"},"region":{"startLine":243}}}],"partialFingerprints":{"codehealthFindingId/v1":"fccd8ac01b3cc87489a907f876646f8982b885c9c731935307c54808b2af0c8f"}},{"ruleId":"D2","level":"warning","message":{"text":"dtables.getStatusRowsData (cognitive 30): dtables.getStatusRowsData has cognitive complexity 30 (threshold 15). Drivers by points: if/else 19, loops 11 (nesting depth added 8). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dtables/status_table.go"},"region":{"startLine":131}}}],"partialFingerprints":{"codehealthFindingId/v1":"cbfcb9cc0462bb7e6e3a31f96d33712e4d97d590685eefffa4e2071ea6aa9999"}},{"ruleId":"D2","level":"warning","message":{"text":"prollyDiffIter.queueRows (cognitive 30): prollyDiffIter.queueRows has cognitive complexity 30 (threshold 15). Drivers by points: if/else 15, match/switch 11, boolean chains 2, loops 2 (nesting depth added 13). Of this number, 22 points are the body\u0027s own statements and 8 belong to one function literal inside it that branches. To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dtables/diff_iter.go"},"region":{"startLine":200}}}],"partialFingerprints":{"codehealthFindingId/v1":"bf4918d3e35e51fdd7ae03741457cdb2b77e5a577b085b1c9f0c0aca4a4eeb55"}},{"ruleId":"D2","level":"warning","message":{"text":"awsTablePersister.assembleTable (cognitive 30): awsTablePersister.assembleTable has cognitive complexity 30 (threshold 15). Drivers by points: if/else 21, loops 4, match/switch 4, boolean chains 1 (nesting depth added 8). Of this number, 24 points are the body\u0027s own statements and 6 belong to 2 function literals inside it that branch. To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/nbs/aws_table_persister.go"},"region":{"startLine":286}}}],"partialFingerprints":{"codehealthFindingId/v1":"16bc0a81daeffe46cf6da99618ef75747cc30caab4b38cfc0947ef5ac7a3fa28"}},{"ruleId":"D2","level":"warning","message":{"text":"ChunkJournal.bootstrapJournalWriter (cognitive 30): ChunkJournal.bootstrapJournalWriter has cognitive complexity 30 (threshold 15). Drivers by points: if/else 29, boolean chains 1 (nesting depth added 13). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/nbs/journal.go"},"region":{"startLine":155}}}],"partialFingerprints":{"codehealthFindingId/v1":"ae860e60f1b1de9c760e9a2c615bd538a78bf2cc4caf774b3da1aec14da01a1e"}},{"ruleId":"D2","level":"warning","message":{"text":"NomsBlockStore.addChunk (cognitive 30): NomsBlockStore.addChunk has cognitive complexity 30 (threshold 15). Drivers by points: if/else 26, boolean chains 3, loops 1 (nesting depth added 16). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/nbs/store.go"},"region":{"startLine":1033}}}],"partialFingerprints":{"codehealthFindingId/v1":"0c6753124be7faae70f2b2cf2ff24953796bce45c8eeaf620ce547b572679ba9"}},{"ruleId":"D2","level":"warning","message":{"text":"TableDelta.HasChangesIgnoringColumnTags (cognitive 29): TableDelta.HasChangesIgnoringColumnTags has cognitive complexity 29 (threshold 15). Drivers by points: if/else 25, boolean chains 4 (nesting depth added 9). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/diff/table_deltas.go"},"region":{"startLine":506}}}],"partialFingerprints":{"codehealthFindingId/v1":"f53b861437c9c981781db7debc41f859264f583b32b7b6fd459e01aaee97341b"}},{"ruleId":"D2","level":"warning","message":{"text":"FileDataLocation.NewReader (cognitive 29): FileDataLocation.NewReader has cognitive complexity 29 (threshold 15). Drivers by points: if/else 28, match/switch 1 (nesting depth added 15). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/mvdata/file_data_loc.go"},"region":{"startLine":82}}}],"partialFingerprints":{"codehealthFindingId/v1":"b30bca3d6be0459bd35d8fd6ad68d4177cd10595dcd444472f996079afa449ff"}},{"ruleId":"D2","level":"warning","message":{"text":"sqle.DoltProceduresGetAll (cognitive 29): sqle.DoltProceduresGetAll has cognitive complexity 29 (threshold 15). Drivers by points: if/else 28, loops 1 (nesting depth added 9). Of this number, 28 points are the body\u0027s own statements and 1 belongs to one function literal inside it that branches. To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/procedures_table.go"},"region":{"startLine":314}}}],"partialFingerprints":{"codehealthFindingId/v1":"dc912573dbe36a6df933773d8e1b4b7562ff2958ac32217d3612714f1c365342"}},{"ruleId":"D2","level":"warning","message":{"text":"sqle.modifyIndexesForTableRewrite (cognitive 29): sqle.modifyIndexesForTableRewrite has cognitive complexity 29 (threshold 15). Drivers by points: if/else 24, loops 5 (nesting depth added 17). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/tables.go"},"region":{"startLine":1991}}}],"partialFingerprints":{"codehealthFindingId/v1":"f35358497c313ebddcfded7e42a326715d7f68e4c17996041c5251116cd7ea49"}},{"ruleId":"D2","level":"warning","message":{"text":"dprocedures.doDoltGC (cognitive 29): dprocedures.doDoltGC has cognitive complexity 29 (threshold 15). Drivers by points: if/else 27, boolean chains 2 (nesting depth added 11). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dprocedures/dolt_gc.go"},"region":{"startLine":208}}}],"partialFingerprints":{"codehealthFindingId/v1":"babb0a7d383cbde976b72e5fce2ff736d17488280ba64a0a62d70a1f507c38eb"}},{"ruleId":"D2","level":"warning","message":{"text":"dprocedures.verifyTables (cognitive 29): dprocedures.verifyTables has cognitive complexity 29 (threshold 15). Drivers by points: if/else 26, boolean chains 2, loops 1 (nesting depth added 12). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dprocedures/dolt_rm.go"},"region":{"startLine":125}}}],"partialFingerprints":{"codehealthFindingId/v1":"6dc4c5191c2d8ef310e652e7f9aafe5bd3d2db026d86625b6e154293d9f2a075"}},{"ruleId":"D2","level":"warning","message":{"text":"StatsController.Init (cognitive 29): StatsController.Init has cognitive complexity 29 (threshold 15). Drivers by points: if/else 26, boolean chains 2, loops 1 (nesting depth added 16). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/statspro/listener.go"},"region":{"startLine":152}}}],"partialFingerprints":{"codehealthFindingId/v1":"593b9659901a1c879398c17f05abc66600d24a0c948cbc72d0488e9f11ba6e86"}},{"ruleId":"D2","level":"warning","message":{"text":"AlterableDoltTable.ModifyColumn (cognitive 29): AlterableDoltTable.ModifyColumn has cognitive complexity 29 (threshold 15). Drivers by points: if/else 27, boolean chains 2 (nesting depth added 7). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/tables.go"},"region":{"startLine":2228}}}],"partialFingerprints":{"codehealthFindingId/v1":"17122a55e8d5ad4a5cd5aee5bc2efb19c4b13280ffbb05edcfa28ca6af235a54"}},{"ruleId":"D2","level":"warning","message":{"text":"AlterableDoltTable.createIndex (cognitive 29): AlterableDoltTable.createIndex has cognitive complexity 29 (threshold 15). Drivers by points: if/else 21, loops 5, boolean chains 3 (nesting depth added 10). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/tables.go"},"region":{"startLine":2507}}}],"partialFingerprints":{"codehealthFindingId/v1":"75a0f62f63a9a658524ccf4b331c88e221b60e5bee820e50cd48e8750c43c1c3"}},{"ruleId":"D2","level":"warning","message":{"text":"gpg.DecodeAllPEMBlocks (cognitive 29): gpg.DecodeAllPEMBlocks has cognitive complexity 29 (threshold 15). Drivers by points: if/else 23, loops 5, boolean chains 1 (nesting depth added 18). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/utils/gpg/sign.go"},"region":{"startLine":164}}}],"partialFingerprints":{"codehealthFindingId/v1":"90ce1d6f5276ef372fdbe74e9067edc2e43a14eaed8ac80c36bcb6c02b078d3c"}},{"ruleId":"D2","level":"warning","message":{"text":"datas.writeFbCommitParentClosure (cognitive 29): datas.writeFbCommitParentClosure has cognitive complexity 29 (threshold 15). Drivers by points: if/else 24, loops 4, boolean chains 1 (nesting depth added 12). Of this number, 27 points are the body\u0027s own statements and 2 belong to one function literal inside it that branches. To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/datas/commit_closure.go"},"region":{"startLine":125}}}],"partialFingerprints":{"codehealthFindingId/v1":"083a33d2cb29d4222de42b1fa77b4b091f391d7dce71203163c600c4fcb56da2"}},{"ruleId":"D2","level":"warning","message":{"text":"tableReader.hasMany (cognitive 29): tableReader.hasMany has cognitive complexity 29 (threshold 15). Drivers by points: if/else 22, loops 5, boolean chains 2 (nesting depth added 15). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/nbs/table_reader.go"},"region":{"startLine":207}}}],"partialFingerprints":{"codehealthFindingId/v1":"b7dae8429d499d5b88f71e81853b092138fc9472cb015742b660a689d5818178"}},{"ruleId":"D2","level":"warning","message":{"text":"tree.compareJsonLocations (cognitive 29): tree.compareJsonLocations has cognitive complexity 29 (threshold 15). Drivers by points: if/else 28, loops 1 (nesting depth added 16). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/prolly/tree/json_location.go"},"region":{"startLine":485}}}],"partialFingerprints":{"codehealthFindingId/v1":"3f3282cbb5db3304514dfba1050be6f5bbc949cd8e883d1c20579b6b69bdd8f2"}},{"ruleId":"D2","level":"warning","message":{"text":"blobChunkDiffer.Next (cognitive 29): blobChunkDiffer.Next has cognitive complexity 29 (threshold 15). Drivers by points: if/else 25, boolean chains 3, loops 1 (nesting depth added 16). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/prolly/tree/blob_chunk_differ.go"},"region":{"startLine":158}}}],"partialFingerprints":{"codehealthFindingId/v1":"4f3e57bd38e8252075fd9b39e715310729a26867b7891aaaddcc0e0253539cc2"}},{"ruleId":"D2","level":"warning","message":{"text":"Range.Matches (cognitive 29): Range.Matches has cognitive complexity 29 (threshold 15). Drivers by points: if/else 24, boolean chains 4, loops 1 (nesting depth added 15). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/prolly/tuple_range.go"},"region":{"startLine":161}}}],"partialFingerprints":{"codehealthFindingId/v1":"e71b1dc22783a8ef7d8b1b9912af41185f4b25c23c584ae0a580ad81492596e2"}},{"ruleId":"D2","level":"warning","message":{"text":"types.OutputProllyNodeBytes (cognitive 29): types.OutputProllyNodeBytes has cognitive complexity 29 (threshold 15). Drivers by points: if/else 22, loops 7 (nesting depth added 16). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/types/serial_message.go"},"region":{"startLine":436}}}],"partialFingerprints":{"codehealthFindingId/v1":"6ca7a4ad9ea070c991bbf53f7ed450e9a6e2ae2467d7df453bbf677afaedbde7"}},{"ruleId":"D2","level":"warning","message":{"text":"diffArgs.applyDiffRoots (cognitive 28): diffArgs.applyDiffRoots has cognitive complexity 28 (threshold 15). Drivers by points: if/else 28 (nesting depth added 11). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/diff.go"},"region":{"startLine":559}}}],"partialFingerprints":{"codehealthFindingId/v1":"5d7e39fd128a27c65a17ba2f5e202961f99b886eece62ebe1da1a4ee7113303e"}},{"ruleId":"D2","level":"warning","message":{"text":"engine.prettyPrintResultsWithSummary (cognitive 28): engine.prettyPrintResultsWithSummary has cognitive complexity 28 (threshold 15). Drivers by points: if/else 21, loops 3, boolean chains 2, match/switch 2 (nesting depth added 8). Of this number, 17 points are the body\u0027s own statements and 11 belong to 2 function literals inside it that branch. To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/engine/sql_print.go"},"region":{"startLine":69}}}],"partialFingerprints":{"codehealthFindingId/v1":"9962d12142c1efeefc2e0afed1ad322a51baa98b187168358e81b3b1c275237f"}},{"ruleId":"D2","level":"warning","message":{"text":"WorkingSet.writeValues (cognitive 28): WorkingSet.writeValues has cognitive complexity 28 (threshold 15). Drivers by points: if/else 27, boolean chains 1 (nesting depth added 12). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/doltdb/workingset.go"},"region":{"startLine":698}}}],"partialFingerprints":{"codehealthFindingId/v1":"b75a22c56e6b27e00bd9c468d44e21caebfee3fdb717f88bc3925f6799b971e3"}},{"ruleId":"D2","level":"warning","message":{"text":"actions.moveModifiedTables (cognitive 28): actions.moveModifiedTables has cognitive complexity 28 (threshold 15). Drivers by points: if/else 26, loops 2 (nesting depth added 11). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/env/actions/checkout.go"},"region":{"startLine":278}}}],"partialFingerprints":{"codehealthFindingId/v1":"97fd3e6f4d168c7aa65fbe4cfb9bd76f91e3a62754a563707b39d2dc6644e02a"}},{"ruleId":"D2","level":"warning","message":{"text":"env.NewPushOpts (cognitive 28): env.NewPushOpts has cognitive complexity 28 (threshold 15). Drivers by points: if/else 26, loops 2 (nesting depth added 13). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/env/remotes.go"},"region":{"startLine":209}}}],"partialFingerprints":{"codehealthFindingId/v1":"ba3dbc10149b239be9e1777c129d00e0ef2b479c6a0bb0828d21256045921eb7"}},{"ruleId":"D2","level":"warning","message":{"text":"merge.MergeJSON (cognitive 28): merge.MergeJSON has cognitive complexity 28 (threshold 15). Drivers by points: if/else 24, match/switch 2, boolean chains 1, loops 1 (nesting depth added 10). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/merge/merge_prolly_rows.go"},"region":{"startLine":2373}}}],"partialFingerprints":{"codehealthFindingId/v1":"bc0423f1587dcd8bd51d0e67fdf70fa26114de2b96f710d585b1462c55e1e6a2"}},{"ruleId":"D2","level":"warning","message":{"text":"uniqValidator.validateDiff (cognitive 28): uniqValidator.validateDiff has cognitive complexity 28 (threshold 15). Drivers by points: if/else 19, loops 6, boolean chains 2, match/switch 1 (nesting depth added 13). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/merge/merge_prolly_rows.go"},"region":{"startLine":862}}}],"partialFingerprints":{"codehealthFindingId/v1":"8b368296e922c047648a8f566f3c1e80b08a5a4edeede4774f232a44b25e9ee7"}},{"ruleId":"D2","level":"warning","message":{"text":"commithook.attemptReplicate (cognitive 28): commithook.attemptReplicate has cognitive complexity 28 (threshold 15). Drivers by points: if/else 27, boolean chains 1 (nesting depth added 13). Of this number, 27 points are the body\u0027s own statements and 1 belongs to one function literal inside it that branches. To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/cluster/commithook.go"},"region":{"startLine":298}}}],"partialFingerprints":{"codehealthFindingId/v1":"ffe46e5abff4f94e5dc4edc611c101b704ea54d54a4ea3dc14ac1d3dfd6f834b"}},{"ruleId":"D2","level":"warning","message":{"text":"Controller.gracefulTransitionToStandby (cognitive 28): Controller.gracefulTransitionToStandby has cognitive complexity 28 (threshold 15). Drivers by points: if/else 21, loops 7 (nesting depth added 14). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/cluster/controller.go"},"region":{"startLine":879}}}],"partialFingerprints":{"codehealthFindingId/v1":"8048862eb188288884df285d66c4fc3247a2547d5c95fe9bc8f334ed5dd3ba73"}},{"ruleId":"D2","level":"warning","message":{"text":"Database.getNonlocalTableNames (cognitive 28): Database.getNonlocalTableNames has cognitive complexity 28 (threshold 15). Drivers by points: if/else 27, loops 1 (nesting depth added 12). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/database.go"},"region":{"startLine":1153}}}],"partialFingerprints":{"codehealthFindingId/v1":"107d0eb295d0ddbdfb4fd7db67487435a01260789d77917b6deca62c8058ce81"}},{"ruleId":"D2","level":"warning","message":{"text":"doltProceduresHistoryRowIter.loadRows (cognitive 28): doltProceduresHistoryRowIter.loadRows has cognitive complexity 28 (threshold 15). Drivers by points: if/else 24, loops 4 (nesting depth added 9). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dolt_procedures_history_table.go"},"region":{"startLine":144}}}],"partialFingerprints":{"codehealthFindingId/v1":"f799d22140bff9c6e1c730e1afe77e8a670f2fd6bef1352ed82e77ee257d7723"}},{"ruleId":"D2","level":"warning","message":{"text":"doltSchemasHistoryRowIter.loadRows (cognitive 28): doltSchemasHistoryRowIter.loadRows has cognitive complexity 28 (threshold 15). Drivers by points: if/else 24, loops 4 (nesting depth added 9). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dolt_schemas_history_table.go"},"region":{"startLine":144}}}],"partialFingerprints":{"codehealthFindingId/v1":"e760d3f8855a273db6eac47308603b9d6957d5a965e03b1ae9947904dae79082"}},{"ruleId":"D2","level":"warning","message":{"text":"SequenceTracker.Next (cognitive 28): SequenceTracker.Next has cognitive complexity 28 (threshold 15). Drivers by points: if/else 28 (nesting depth added 13). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dsess/sequence_tracker.go"},"region":{"startLine":202}}}],"partialFingerprints":{"codehealthFindingId/v1":"edb6b8a8c59fb7f35425682e024c411af0c25f5df2af9601b7b7c9591cf4c5a3"}},{"ruleId":"D2","level":"warning","message":{"text":"SchemaDiffTableFunction.WithExpressions (cognitive 28): SchemaDiffTableFunction.WithExpressions has cognitive complexity 28 (threshold 15). Drivers by points: if/else 22, boolean chains 5, loops 1 (nesting depth added 8). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dtablefunctions/dolt_schema_diff.go"},"region":{"startLine":214}}}],"partialFingerprints":{"codehealthFindingId/v1":"0da540a7ccad82b87fefc06c8a5fad05e7f7d7f8dd9005c03d58772d0e26492b"}},{"ruleId":"D2","level":"warning","message":{"text":"sqlfmt.generateNonCreateNonDropTableSqlSchemaDiff (cognitive 28): sqlfmt.generateNonCreateNonDropTableSqlSchemaDiff has cognitive complexity 28 (threshold 15). Drivers by points: if/else 17, match/switch 6, loops 3, boolean chains 2 (nesting depth added 10). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/sqlfmt/schema_fmt.go"},"region":{"startLine":99}}}],"partialFingerprints":{"codehealthFindingId/v1":"0300f506b0d2e5fa109865f244f4a8fc8b4e33b0ed5738679bd79ed2aa41a442"}},{"ruleId":"D2","level":"warning","message":{"text":"FixedWidthDiffTableWriter.generateTextDiff (cognitive 28): FixedWidthDiffTableWriter.generateTextDiff has cognitive complexity 28 (threshold 15). Drivers by points: if/else 13, match/switch 8, loops 7 (nesting depth added 17). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/table/untyped/tabular/fixedwidth_diff_tablewriter.go"},"region":{"startLine":124}}}],"partialFingerprints":{"codehealthFindingId/v1":"dcf7737702e38349a5b400063995f91d7f2db65e10465438e74403cb64b737a7"}},{"ruleId":"D2","level":"warning","message":{"text":"Puller.Pull (cognitive 28): Puller.Pull has cognitive complexity 28 (threshold 15). Drivers by points: if/else 24, boolean chains 2, loops 2 (nesting depth added 11). Most of this is not in the body itself: 6 of the 28 points are its own statements and the rest belongs to 2 function literals inside it that branch (lines 403, 384). The decisions are inside those literals, which nothing outside this body can call, review or test on its own, so splitting the enclosing body is not the move available here. To reduce it, lift the literals\u0027 work into a named function or method at the enclosing scope and have each literal call it, then reduce whichever part then reads as the largest."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/datas/pull/puller.go"},"region":{"startLine":343}}}],"partialFingerprints":{"codehealthFindingId/v1":"272ff0cd31f950f6bff7e7cc3cdc30e1e2a3b2363e77f9b784bed1c875a97f71"}},{"ruleId":"D2","level":"warning","message":{"text":"tree.applyNodePatch (cognitive 28): tree.applyNodePatch has cognitive complexity 28 (threshold 15). Drivers by points: if/else 28 (nesting depth added 14). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/prolly/tree/tree_patcher.go"},"region":{"startLine":148}}}],"partialFingerprints":{"codehealthFindingId/v1":"f00862ec63146a474cf2333c31bb86a2848cdfb9a119fa5291bed69fdc260bf5"}},{"ruleId":"D2","level":"warning","message":{"text":"PatchGenerator.findNextPatch (cognitive 28): PatchGenerator.findNextPatch has cognitive complexity 28 (threshold 15). Drivers by points: if/else 26, boolean chains 1, loops 1 (nesting depth added 12). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/prolly/tree/patch_generator.go"},"region":{"startLine":335}}}],"partialFingerprints":{"codehealthFindingId/v1":"00586a180d6fcec0d8a49c2f12ddd6ac05cdae6f50ede844f86ff7dae3964f42"}},{"ruleId":"D2","level":"warning","message":{"text":"ci.collectIntersectionRows (cognitive 27): ci.collectIntersectionRows has cognitive complexity 27 (threshold 15). Drivers by points: if/else 17, loops 10 (nesting depth added 16). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/ci/dolt_test_step_run.go"},"region":{"startLine":125}}}],"partialFingerprints":{"codehealthFindingId/v1":"c3f4f189b2945f40143697ae27d95546f56ea7179bd3f05c501b8d48fc2ea2c7"}},{"ruleId":"D2","level":"warning","message":{"text":"doltdb.resolveConflictingPatterns (cognitive 27): doltdb.resolveConflictingPatterns has cognitive complexity 27 (threshold 15). Drivers by points: if/else 19, loops 8 (nesting depth added 12). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/doltdb/ignore.go"},"region":{"startLine":200}}}],"partialFingerprints":{"codehealthFindingId/v1":"f8c35466cdd6b22736fe80386e49e1e948df5aec194cba17b1e2957e3da4ed9c"}},{"ruleId":"D2","level":"warning","message":{"text":"actions.fullClone (cognitive 27): actions.fullClone has cognitive complexity 27 (threshold 15). Drivers by points: if/else 25, boolean chains 1, loops 1 (nesting depth added 13). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/env/actions/clone.go"},"region":{"startLine":275}}}],"partialFingerprints":{"codehealthFindingId/v1":"9bc32b0c601857a0f5378760a655276d75f1ac842cb4fce4bf1577155ddd9cef"}},{"ruleId":"D2","level":"warning","message":{"text":"actions.CleanUntracked (cognitive 27): actions.CleanUntracked has cognitive complexity 27 (threshold 15). Drivers by points: if/else 22, loops 5 (nesting depth added 11). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/env/actions/reset.go"},"region":{"startLine":271}}}],"partialFingerprints":{"codehealthFindingId/v1":"404b8e081bdedf25300252d57e48776c0e6985c79f9730d1113a1ad5ef56aee7"}},{"ruleId":"D2","level":"warning","message":{"text":"doltWorkflowManager.newWorkflowSavedQueryStepExpectedRowColumnResult (cognitive 27): doltWorkflowManager.newWorkflowSavedQueryStepExpectedRowColumnResult has cognitive complexity 27 (threshold 15). Drivers by points: if/else 24, match/switch 2, loops 1 (nesting depth added 17). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/env/actions/dolt_ci/workflow_manager.go"},"region":{"startLine":402}}}],"partialFingerprints":{"codehealthFindingId/v1":"29f85158fbd44b819f17f54515a5f86edc520fe497057bbc573293d5b609d8ba"}},{"ruleId":"D2","level":"warning","message":{"text":"doltProceduresDiffPartitionRowIter.readDoltProceduresRowsFromRoot (cognitive 27): doltProceduresDiffPartitionRowIter.readDoltProceduresRowsFromRoot has cognitive complexity 27 (threshold 15). Drivers by points: if/else 22, loops 4, boolean chains 1 (nesting depth added 10). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dolt_procedures_diff_table.go"},"region":{"startLine":456}}}],"partialFingerprints":{"codehealthFindingId/v1":"ca618569d2dd0a4d2154248ec4c51d45bf37381c40766cb7cf971e922b3de298"}},{"ruleId":"D2","level":"warning","message":{"text":"doltSchemasDiffPartitionRowIter.readDoltSchemasRowsFromRoot (cognitive 27): doltSchemasDiffPartitionRowIter.readDoltSchemasRowsFromRoot has cognitive complexity 27 (threshold 15). Drivers by points: if/else 22, loops 4, boolean chains 1 (nesting depth added 10). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dolt_schemas_diff_table.go"},"region":{"startLine":456}}}],"partialFingerprints":{"codehealthFindingId/v1":"4541b2b97cfeb27ea308a8c694f81269b8763a92d296d3ae0e6087509031aadf"}},{"ruleId":"D2","level":"warning","message":{"text":"dprocedures.createNewBranch (cognitive 27): dprocedures.createNewBranch has cognitive complexity 27 (threshold 15). Drivers by points: if/else 24, boolean chains 3 (nesting depth added 6). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dprocedures/dolt_branch.go"},"region":{"startLine":411}}}],"partialFingerprints":{"codehealthFindingId/v1":"ebcef4b1cf195f4efca5b1d2a78881a6c09553986c4ea6c606e0250605edabbc"}},{"ruleId":"D2","level":"warning","message":{"text":"dtablefunctions.getPatchNodes (cognitive 27): dtablefunctions.getPatchNodes has cognitive complexity 27 (threshold 15). Drivers by points: if/else 23, boolean chains 3, loops 1 (nesting depth added 14). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dtablefunctions/dolt_patch.go"},"region":{"startLine":486}}}],"partialFingerprints":{"codehealthFindingId/v1":"5a5ef40fb96519b4917b6fbd714bd8ce9c83ccd983d573f3008396d2ffe8cec4"}},{"ruleId":"D2","level":"warning","message":{"text":"dtablefunctions.getTableName (cognitive 27): dtablefunctions.getTableName has cognitive complexity 27 (threshold 15). Drivers by points: if/else 22, loops 5 (nesting depth added 11). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dtablefunctions/dolt_preview_merge_conflicts.go"},"region":{"startLine":285}}}],"partialFingerprints":{"codehealthFindingId/v1":"24a87af74475a0c4890169dd974bad6aa86437c62e974a0b4df0213127838dd8"}},{"ruleId":"D2","level":"warning","message":{"text":"dtables.PutConflictRowVals (cognitive 27): dtables.PutConflictRowVals has cognitive complexity 27 (threshold 15). Drivers by points: if/else 20, loops 7 (nesting depth added 13). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dtables/conflicts_tables_prolly.go"},"region":{"startLine":282}}}],"partialFingerprints":{"codehealthFindingId/v1":"6b94f943ca8663473f99f00cc5d393630e0109d14a664613627eef8f4e5a2f1c"}},{"ruleId":"D2","level":"warning","message":{"text":"dtables.PutKeylessConflictRowVals (cognitive 27): dtables.PutKeylessConflictRowVals has cognitive complexity 27 (threshold 15). Drivers by points: if/else 21, loops 6 (nesting depth added 12). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dtables/conflicts_tables_prolly.go"},"region":{"startLine":362}}}],"partialFingerprints":{"codehealthFindingId/v1":"2e6639e77524ef8083cabbe9f773418fff0619f224323cd730b33d0a20688c60"}},{"ruleId":"D2","level":"warning","message":{"text":"index.NewSecondaryKeyBuilder (cognitive 27): index.NewSecondaryKeyBuilder has cognitive complexity 27 (threshold 15). Drivers by points: if/else 26, loops 1 (nesting depth added 15). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/index/key_builder.go"},"region":{"startLine":34}}}],"partialFingerprints":{"codehealthFindingId/v1":"6bf6400034063c8fd0398e01d763623d5d1859ddc343a8d26abea9a96be3ca36"}},{"ruleId":"D2","level":"warning","message":{"text":"WritableDoltTable.tableSetsForRewrite (cognitive 27): WritableDoltTable.tableSetsForRewrite has cognitive complexity 27 (threshold 15). Drivers by points: if/else 26, loops 1 (nesting depth added 12). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/tables.go"},"region":{"startLine":841}}}],"partialFingerprints":{"codehealthFindingId/v1":"276796d095bfb9810afba22ad124337e3beb69a91c97875194ad6981667f4c7e"}},{"ruleId":"D2","level":"warning","message":{"text":"prollyFkPkRowIter.Next (cognitive 27): prollyFkPkRowIter.Next has cognitive complexity 27 (threshold 15). Drivers by points: if/else 20, loops 7 (nesting depth added 14). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/writer/prolly_fk_indexer.go"},"region":{"startLine":131}}}],"partialFingerprints":{"codehealthFindingId/v1":"f6cf75746b0f2242716b1ac2678d8f3fcc2ed4efb2731ed685a4b3cd9bf6ba5a"}},{"ruleId":"D2","level":"warning","message":{"text":"writer.newWriterSchema (cognitive 27): writer.newWriterSchema has cognitive complexity 27 (threshold 15). Drivers by points: if/else 22, loops 4, boolean chains 1 (nesting depth added 15). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/writer/schema_cache.go"},"region":{"startLine":66}}}],"partialFingerprints":{"codehealthFindingId/v1":"24e7142e34bf3308fd2d1147bffab3f3a544b7ed635588480721af9668d9c1ed"}},{"ruleId":"D2","level":"warning","message":{"text":"prollyKeylessSecondaryWriter.Insert (cognitive 27): prollyKeylessSecondaryWriter.Insert has cognitive complexity 27 (threshold 15). Drivers by points: if/else 26, loops 1 (nesting depth added 13). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/writer/prolly_index_writer_keyless.go"},"region":{"startLine":272}}}],"partialFingerprints":{"codehealthFindingId/v1":"fa1a97beda5a6b333d4ec11c9346c105f504138547c2f7055060e954f87490af"}},{"ruleId":"D2","level":"warning","message":{"text":"PullChunkTracker.reqRespThread (cognitive 27): PullChunkTracker.reqRespThread has cognitive complexity 27 (threshold 15). Drivers by points: if/else 20, boolean chains 3, loops 2, match/switch 2 (nesting depth added 11). Most of this is not in the body itself: 1 of the 27 points is its own statement and the rest belongs to one function literal inside it that branches (line 140). The decisions are inside the literal, which nothing outside this body can call, review or test on its own, so splitting the enclosing body is not the move available here. To reduce it, lift the literal\u0027s work into a named function or method at the enclosing scope and have the literal call it, then reduce whichever part then reads as the largest."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/datas/pull/pull_chunk_tracker.go"},"region":{"startLine":127}}}],"partialFingerprints":{"codehealthFindingId/v1":"d1daa1d6ca703f4c97d1356cefe18bc7ac2d1301e08097cffe71bb245d4bf675"}},{"ruleId":"D2","level":"warning","message":{"text":"ProximityMap.GetClosest (cognitive 27): ProximityMap.GetClosest has cognitive complexity 27 (threshold 15). Drivers by points: if/else 19, loops 8 (nesting depth added 14). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/prolly/tree/proximity_map.go"},"region":{"startLine":198}}}],"partialFingerprints":{"codehealthFindingId/v1":"d5dd95f36c741921d17e275885b117421e05adbd86ab3e91b1790c2da9c3779d"}},{"ruleId":"D2","level":"warning","message":{"text":"cnfcmds.printConflicts (cognitive 26): cnfcmds.printConflicts has cognitive complexity 26 (threshold 15). Drivers by points: if/else 21, loops 3, boolean chains 2 (nesting depth added 9). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/cnfcmds/cat.go"},"region":{"startLine":122}}}],"partialFingerprints":{"codehealthFindingId/v1":"ddf6a78e22b851ed4229676f881b8d3f7a3707c5c36127294fcc2c2b60aba1a8"}},{"ruleId":"D2","level":"warning","message":{"text":"CopyTagsCmd.Exec (cognitive 26): CopyTagsCmd.Exec has cognitive complexity 26 (threshold 15). Drivers by points: if/else 24, boolean chains 1, loops 1 (nesting depth added 10). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/schcmds/copy-tags.go"},"region":{"startLine":90}}}],"partialFingerprints":{"codehealthFindingId/v1":"e156e8845798f599e5390453f704b4b755d0f8bc46e3454799705f39650617c0"}},{"ruleId":"D2","level":"warning","message":{"text":"tblcmds.move (cognitive 26): tblcmds.move has cognitive complexity 26 (threshold 15). Drivers by points: if/else 22, boolean chains 2, loops 2 (nesting depth added 10). Most of this is not in the body itself: 6 of the 26 points are its own statements and the rest belongs to 2 function literals inside it that branch (lines 675, 729). The decisions are inside those literals, which nothing outside this body can call, review or test on its own, so splitting the enclosing body is not the move available here. To reduce it, lift the literals\u0027 work into a named function or method at the enclosing scope and have each literal call it, then reduce whichever part then reads as the largest."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/tblcmds/import.go"},"region":{"startLine":666}}}],"partialFingerprints":{"codehealthFindingId/v1":"737c4e2650edc5acdaba6352e9a08729cd8243e7e79c1affc19ff4053b5d6dbc"}},{"ruleId":"D2","level":"warning","message":{"text":"MatchNode.Match (cognitive 26): MatchNode.Match has cognitive complexity 26 (threshold 15). Drivers by points: if/else 21, loops 4, boolean chains 1 (nesting depth added 15). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/branch_control/expr_parser_node.go"},"region":{"startLine":77}}}],"partialFingerprints":{"codehealthFindingId/v1":"481d763d8652cef7ce9afd91075b03983e5b13e6473b9d94e72b723c3299761f"}},{"ruleId":"D2","level":"warning","message":{"text":"cherry_pick.CherryPick (cognitive 26): cherry_pick.CherryPick has cognitive complexity 26 (threshold 15). Drivers by points: if/else 25, boolean chains 1 (nesting depth added 5). To reduce it, split the body: most of this score is breadth rather than depth \u2014 checks laid out side by side rather than stacked \u2014 so group the statements between the checks into named steps and move each step into its own function. Some of it IS depth: where a check sits inside another whose only job is to reach it, merge the two into one condition."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/cherry_pick/cherry_pick.go"},"region":{"startLine":76}}}],"partialFingerprints":{"codehealthFindingId/v1":"7d13b329b3d72ee9cecc94d5abee76910c14d57e74cf9df7cb2151fbfee62e52"}},{"ruleId":"D2","level":"warning","message":{"text":"doltdb.ValidateForeignKeysOnSchemas (cognitive 26): doltdb.ValidateForeignKeysOnSchemas has cognitive complexity 26 (threshold 15). Drivers by points: if/else 25, loops 1 (nesting depth added 12). Of this number, 22 points are the body\u0027s own statements and 4 belong to one function literal inside it that branches. To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/doltdb/root_val.go"},"region":{"startLine":1182}}}],"partialFingerprints":{"codehealthFindingId/v1":"8d8a869178fd2805a2cd48e3b9125ccd7f16b575f8d5a71bcf26962c5920c00f"}},{"ruleId":"D2","level":"warning","message":{"text":"actions.leastPermissiveNumericType (cognitive 26): actions.leastPermissiveNumericType has cognitive complexity 26 (threshold 15). Drivers by points: if/else 24, boolean chains 2 (nesting depth added 10). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/env/actions/infer_schema.go"},"region":{"startLine":201}}}],"partialFingerprints":{"codehealthFindingId/v1":"42535e5b0ca6778566879c78e5f72786b3af926b514beebad86fcff0f5a1c65d"}},{"ruleId":"D2","level":"warning","message":{"text":"reliableCallStateMachine.open (cognitive 26): reliableCallStateMachine.open has cognitive complexity 26 (threshold 15). Drivers by points: if/else 20, match/switch 4, loops 2 (nesting depth added 11). Most of this is not in the body itself: 3 of the 26 points are its own statements and the rest belongs to one function literal inside it that branches (line 111). The decisions are inside the literal, which nothing outside this body can call, review or test on its own, so splitting the enclosing body is not the move available here. To reduce it, lift the literal\u0027s work into a named function or method at the enclosing scope and have the literal call it, then reduce whichever part then reads as the largest."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/remotestorage/internal/reliable/grpc_state_machine_struct.go"},"region":{"startLine":104}}}],"partialFingerprints":{"codehealthFindingId/v1":"9d54b1ee6d11073cb95bf3d085e6837c3baa6241674fae2c2d1bce192d6bd7a4"}},{"ruleId":"D2","level":"warning","message":{"text":"schemaImpl.getKeyColumnsDescriptor (cognitive 26): schemaImpl.getKeyColumnsDescriptor has cognitive complexity 26 (threshold 15). Drivers by points: if/else 16, boolean chains 7, match/switch 2, loops 1 (nesting depth added 3). Most of this is not in the body itself: 6 of the 26 points are its own statements and the rest belongs to one function literal inside it that branches (line 480). The decisions are inside the literal, which nothing outside this body can call, review or test on its own, so splitting the enclosing body is not the move available here. To reduce it, lift the literal\u0027s work into a named function or method at the enclosing scope and have the literal call it, then reduce whichever part then reads as the largest."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/schema/schema_impl.go"},"region":{"startLine":466}}}],"partialFingerprints":{"codehealthFindingId/v1":"e0f2f387d82b7b73ba81e885ed2ba5f442040a8da2d3315d5197b4ef08709507"}},{"ruleId":"D2","level":"warning","message":{"text":"binlogStreamer.streamNextEvents (cognitive 26): binlogStreamer.streamNextEvents has cognitive complexity 26 (threshold 15). Drivers by points: if/else 25, loops 1 (nesting depth added 14). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/binlogreplication/binlog_primary_streamer.go"},"region":{"startLine":111}}}],"partialFingerprints":{"codehealthFindingId/v1":"db2514f12582fd5f35e086cdfe0da12781fb2377d11d7d96e1241631b07c5486"}},{"ruleId":"D2","level":"warning","message":{"text":"binlogReplicaApplier.processRowEvent (cognitive 26): binlogReplicaApplier.processRowEvent has cognitive complexity 26 (threshold 15). Drivers by points: if/else 21, match/switch 4, loops 1 (nesting depth added 8). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/binlogreplication/binlog_replica_applier.go"},"region":{"startLine":661}}}],"partialFingerprints":{"codehealthFindingId/v1":"b415417744110ffd235ed99176703db4ca73880e1d5c646826ac9f655d6b68f9"}},{"ruleId":"D2","level":"warning","message":{"text":"DoltDatabaseProvider.databaseForRevision (cognitive 26): DoltDatabaseProvider.databaseForRevision has cognitive complexity 26 (threshold 15). Drivers by points: if/else 24, boolean chains 1, match/switch 1 (nesting depth added 10). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/database_provider.go"},"region":{"startLine":1331}}}],"partialFingerprints":{"codehealthFindingId/v1":"ea05497e19802bac25fb9697fa210696bfda1dbaa835e9f8f7fbb33177fc09c7"}},{"ruleId":"D2","level":"warning","message":{"text":"dprocedures.doDoltRm (cognitive 26): dprocedures.doDoltRm has cognitive complexity 26 (threshold 15). Drivers by points: if/else 24, loops 2 (nesting depth added 7). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dprocedures/dolt_rm.go"},"region":{"startLine":40}}}],"partialFingerprints":{"codehealthFindingId/v1":"18c109b1a928e17c25c1f15385257417ab44cad61badee28101cd5c95905d0be"}},{"ruleId":"D2","level":"warning","message":{"text":"DiffSummaryTableFunction.RowIter (cognitive 26): DiffSummaryTableFunction.RowIter has cognitive complexity 26 (threshold 15). Drivers by points: if/else 24, boolean chains 1, loops 1 (nesting depth added 9). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dtablefunctions/dolt_diff_summary.go"},"region":{"startLine":264}}}],"partialFingerprints":{"codehealthFindingId/v1":"1eaa36335a8dfa79d3dd631af0e18674f6f590cc87d3782539811033cabfad0f"}},{"ruleId":"D2","level":"warning","message":{"text":"DiffTable.fromCommitLookupPartitions (cognitive 26): DiffTable.fromCommitLookupPartitions has cognitive complexity 26 (threshold 15). Drivers by points: if/else 25, loops 1 (nesting depth added 12). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dtables/diff_table.go"},"region":{"startLine":293}}}],"partialFingerprints":{"codehealthFindingId/v1":"416dac97b7010e13d6cd107ac61c5cd6d4617809ae9e6085487005adc96619d2"}},{"ruleId":"D2","level":"warning","message":{"text":"kvexec.mergeComparer (cognitive 26): kvexec.mergeComparer has cognitive complexity 26 (threshold 15). Drivers by points: if/else 25, boolean chains 1 (nesting depth added 6). To reduce it, split the body: most of this score is breadth rather than depth \u2014 checks laid out side by side rather than stacked \u2014 so group the statements between the checks into named steps and move each step into its own function. Some of it IS depth: where a check sits inside another whose only job is to reach it, merge the two into one condition, and where an else follows a branch that already returns, drop the trailing else and let the rest of the body continue at one level."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/kvexec/merge_join.go"},"region":{"startLine":428}}}],"partialFingerprints":{"codehealthFindingId/v1":"d089c5fe11369f62a5372511d16bd7d944efe895be0bf408059b3154b1d8fecd"}},{"ruleId":"D2","level":"warning","message":{"text":"StatsController.runWorker (cognitive 26): StatsController.runWorker has cognitive complexity 26 (threshold 15). Drivers by points: if/else 16, match/switch 8, boolean chains 1, loops 1 (nesting depth added 12). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/statspro/worker.go"},"region":{"startLine":59}}}],"partialFingerprints":{"codehealthFindingId/v1":"add6be8526a5323f58c26553129d772718f7d9b3669eba5dfd487f9f1fc96fdd"}},{"ruleId":"D2","level":"warning","message":{"text":"NomsBlockStore.Get (cognitive 26): NomsBlockStore.Get has cognitive complexity 26 (threshold 15). Drivers by points: if/else 25, loops 1 (nesting depth added 14). Of this number, 25 points are the body\u0027s own statements and 1 belongs to one function literal inside it that branches. To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/nbs/store.go"},"region":{"startLine":1105}}}],"partialFingerprints":{"codehealthFindingId/v1":"e83e23607fac19b50eabd7b02f074f53934e6f3e87e1d2ff5fb1e6fafb22256c"}},{"ruleId":"D2","level":"warning","message":{"text":"NomsBlockStore.getManyWithFunc (cognitive 26): NomsBlockStore.getManyWithFunc has cognitive complexity 26 (threshold 15). Drivers by points: if/else 25, loops 1 (nesting depth added 14). Of this number, 25 points are the body\u0027s own statements and 1 belongs to one function literal inside it that branches. To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/nbs/store.go"},"region":{"startLine":1204}}}],"partialFingerprints":{"codehealthFindingId/v1":"bf83fdca30eb9318ae04f42e1665ee6883e067c763ca0c2343e73ed04fde5fa4"}},{"ruleId":"D2","level":"warning","message":{"text":"CommandDocumentation.executeTemplate (cognitive 25): CommandDocumentation.executeTemplate has cognitive complexity 25 (threshold 15). Drivers by points: if/else 20, loops 4, boolean chains 1 (nesting depth added 12). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/cli/documentation_helper.go"},"region":{"startLine":57}}}],"partialFingerprints":{"codehealthFindingId/v1":"d033aaafe7e9c7e64fcd6b393107849d27ebf9f85e9a22101123c3b854a0aeff"}},{"ruleId":"D2","level":"warning","message":{"text":"commands.getTableDiffStats (cognitive 25): commands.getTableDiffStats has cognitive complexity 25 (threshold 15). Drivers by points: if/else 24, loops 1 (nesting depth added 11). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/diff.go"},"region":{"startLine":1166}}}],"partialFingerprints":{"codehealthFindingId/v1":"70109998bc82a5576e41219896eb94bda6a363010bded686045dcca9a7f1dfc7"}},{"ruleId":"D2","level":"warning","message":{"text":"commands.collectRevisions (cognitive 25): commands.collectRevisions has cognitive complexity 25 (threshold 15). Drivers by points: if/else 16, loops 7, boolean chains 2 (nesting depth added 10). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/log.go"},"region":{"startLine":121}}}],"partialFingerprints":{"codehealthFindingId/v1":"917e344eb438279015985c58069b8d56d3569153236fca021c983fbd72d8475e"}},{"ruleId":"D2","level":"warning","message":{"text":"branch_control.Match (cognitive 25): branch_control.Match has cognitive complexity 25 (threshold 15). Drivers by points: if/else 17, loops 5, boolean chains 3 (nesting depth added 10). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/branch_control/expr_parser.go"},"region":{"startLine":159}}}],"partialFingerprints":{"codehealthFindingId/v1":"ffb73acbc9574a9de4f63d2bd77f4c4480e0b8d37cd524fc4d5938d54c791e10"}},{"ruleId":"D2","level":"warning","message":{"text":"DiffSplitter.SplitDiffResultRow (cognitive 25): DiffSplitter.SplitDiffResultRow has cognitive complexity 25 (threshold 15). Drivers by points: if/else 14, loops 10, match/switch 1 (nesting depth added 13). The drivers above price the dispatch low by construction \u2014 a dispatch is charged once however many cases it lists, while each branch inside an arm is charged in full \u2014 so most of this count is what the case bodies hold, and the arms are where it can be reduced. To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Keep every case explicit, and make the behaviour for cases you do not list a deliberate choice rather than an accident."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/diff/diffsplitter.go"},"region":{"startLine":121}}}],"partialFingerprints":{"codehealthFindingId/v1":"2940acea25995bdfe361191081db20b3100b6390a0cf6f36a2f27d2194ff66fe"}},{"ruleId":"D2","level":"warning","message":{"text":"doltdb.deserializeFlatbufferForeignKeys (cognitive 25): doltdb.deserializeFlatbufferForeignKeys has cognitive complexity 25 (threshold 15). Drivers by points: if/else 14, loops 11 (nesting depth added 12). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/doltdb/foreign_key_serialization.go"},"region":{"startLine":41}}}],"partialFingerprints":{"codehealthFindingId/v1":"677a3326a39cd04a575dfdcb5ade3dd674e6e370a3f4e37f509bf982fda9decd"}},{"ruleId":"D2","level":"warning","message":{"text":"doltdb.GetIgnoredTablePatterns (cognitive 25): doltdb.GetIgnoredTablePatterns has cognitive complexity 25 (threshold 15). Drivers by points: if/else 22, loops 3 (nesting depth added 14). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/doltdb/ignore.go"},"region":{"startLine":83}}}],"partialFingerprints":{"codehealthFindingId/v1":"2cb418e63555cb4ccd68c49087949a11572e5578acb6edaa5f5c9c38ad3958ed"}},{"ruleId":"D2","level":"warning","message":{"text":"actions.MoveTablesFromHeadToWorking (cognitive 25): actions.MoveTablesFromHeadToWorking has cognitive complexity 25 (threshold 15). Drivers by points: if/else 24, loops 1 (nesting depth added 13). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/env/actions/checkout.go"},"region":{"startLine":35}}}],"partialFingerprints":{"codehealthFindingId/v1":"ba58b94f311ae6172fe3842c809cf68717f144ccc95684583d64215f20bfed9d"}},{"ruleId":"D2","level":"warning","message":{"text":"merge.rebuildFullTextIndexes (cognitive 25): merge.rebuildFullTextIndexes has cognitive complexity 25 (threshold 15). Drivers by points: if/else 21, loops 3, boolean chains 1 (nesting depth added 10). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/merge/fulltext_rebuild.go"},"region":{"startLine":40}}}],"partialFingerprints":{"codehealthFindingId/v1":"d2bff22405525ce36e1ee5908e070eca504fb844c90ffe99f57bcba69fa5b77b"}},{"ruleId":"D2","level":"warning","message":{"text":"typeinfo.PreserveAdaptiveEncoding (cognitive 25): typeinfo.PreserveAdaptiveEncoding has cognitive complexity 25 (threshold 15). Drivers by points: if/else 23, boolean chains 1, match/switch 1 (nesting depth added 11). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/schema/typeinfo/typeinfo.go"},"region":{"startLine":231}}}],"partialFingerprints":{"codehealthFindingId/v1":"b696eb8251f3250114b4abb2616de29c899d5fce6de9a06d3f2ae3b891a96c15"}},{"ruleId":"D2","level":"warning","message":{"text":"binlogReplicaApplier.replicaBinlogEventHandler (cognitive 25): binlogReplicaApplier.replicaBinlogEventHandler has cognitive complexity 25 (threshold 15). Drivers by points: if/else 21, match/switch 2, boolean chains 1, loops 1 (nesting depth added 13). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/binlogreplication/binlog_replica_applier.go"},"region":{"startLine":316}}}],"partialFingerprints":{"codehealthFindingId/v1":"cc9ec8ab7809025971fdaa8fa7dd361c83867d175853cb1ac17245a737b263fb"}},{"ruleId":"D2","level":"warning","message":{"text":"SequenceTracker.initWithRoots (cognitive 25): SequenceTracker.initWithRoots has cognitive complexity 25 (threshold 15). Drivers by points: if/else 16, loops 7, boolean chains 1, match/switch 1 (nesting depth added 14). Most of this is not in the body itself: 1 of the 25 points is its own statement and the rest belongs to 2 function literals inside it that branch (lines 551, 539). The decisions are inside those literals, which nothing outside this body can call, review or test on its own, so splitting the enclosing body is not the move available here. To reduce it, lift the literals\u0027 work into a named function or method at the enclosing scope and have each literal call it, then reduce whichever part then reads as the largest."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dsess/sequence_tracker.go"},"region":{"startLine":531}}}],"partialFingerprints":{"codehealthFindingId/v1":"2c491583d0acf7a1cc971751eec82687c6ab63d807d29431bfcf19e38d712358"}},{"ruleId":"D2","level":"warning","message":{"text":"BranchControlTable.Update (cognitive 25): BranchControlTable.Update has cognitive complexity 25 (threshold 15). Drivers by points: if/else 20, boolean chains 5 (nesting depth added 9). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dtables/branch_control_table.go"},"region":{"startLine":224}}}],"partialFingerprints":{"codehealthFindingId/v1":"3e4803b17b1e8ab36e75cb11bbe4b09e436e4c3002c6405c2002267fe82c1d2b"}},{"ruleId":"D2","level":"warning","message":{"text":"DiffPartitions.Next (cognitive 25): DiffPartitions.Next has cognitive complexity 25 (threshold 15). Drivers by points: if/else 22, boolean chains 2, loops 1 (nesting depth added 12). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dtables/diff_table.go"},"region":{"startLine":790}}}],"partialFingerprints":{"codehealthFindingId/v1":"f9bea68c790a2aa71a9db59b1e031d5a06c35625c11895ba8d3da41596b8ad8a"}},{"ruleId":"D2","level":"warning","message":{"text":"HistoryTable.newRowItrForTableAtCommit (cognitive 25): HistoryTable.newRowItrForTableAtCommit has cognitive complexity 25 (threshold 15). Drivers by points: if/else 23, loops 2 (nesting depth added 12). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/history_table.go"},"region":{"startLine":488}}}],"partialFingerprints":{"codehealthFindingId/v1":"3aa7211dd115399f4a15049e6a62ae3264923d36210decbeb0ecfae9e8593a6a"}},{"ruleId":"D2","level":"warning","message":{"text":"csv.appendToken (cognitive 25): csv.appendToken has cognitive complexity 25 (threshold 15). Drivers by points: if/else 19, boolean chains 3, loops 3 (nesting depth added 8). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/table/untyped/csv/line.go"},"region":{"startLine":67}}}],"partialFingerprints":{"codehealthFindingId/v1":"753926f71d51daf6780512b61de86c7e02cb5805b57e9b51315c4c957c9013d2"}},{"ruleId":"D2","level":"warning","message":{"text":"nbs.processJournalRecordsReader (cognitive 25): nbs.processJournalRecordsReader has cognitive complexity 25 (threshold 15). Drivers by points: if/else 24, loops 1 (nesting depth added 13). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/nbs/journal_record.go"},"region":{"startLine":323}}}],"partialFingerprints":{"codehealthFindingId/v1":"f01072bb99293d9d165bece691430261a8764cc1fa6221e2b9ded75590349003"}},{"ruleId":"D2","level":"warning","message":{"text":"tree.DiffKeyRangeOrderedTrees (cognitive 25): tree.DiffKeyRangeOrderedTrees has cognitive complexity 25 (threshold 15). Drivers by points: if/else 24, loops 1 (nesting depth added 10). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/prolly/tree/map.go"},"region":{"startLine":77}}}],"partialFingerprints":{"codehealthFindingId/v1":"f76fd1a83e21f0ec44ee0825e9e630b852c9f7d72531331052132e1ac81d29c6"}},{"ruleId":"D2","level":"warning","message":{"text":"chunker.advanceTo (cognitive 25): chunker.advanceTo has cognitive complexity 25 (threshold 15). Drivers by points: if/else 20, loops 3, boolean chains 2 (nesting depth added 7). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/prolly/tree/chunker.go"},"region":{"startLine":171}}}],"partialFingerprints":{"codehealthFindingId/v1":"0de183190a71c9573ceba5817286f9fc8d350205895366db6d653ab291a2b5d6"}},{"ruleId":"D2","level":"warning","message":{"text":"commands.chooseMostFlexibleType (cognitive 24): commands.chooseMostFlexibleType has cognitive complexity 24 (threshold 15). Drivers by points: if/else 13, boolean chains 11 (nesting depth added 3). To reduce it, split the body: most of this score is breadth rather than depth \u2014 checks laid out side by side rather than stacked \u2014 so group the statements between the checks into named steps and move each step into its own function. Some of it IS depth: where a check sits inside another whose only job is to reach it, merge the two into one condition."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/diff.go"},"region":{"startLine":1793}}}],"partialFingerprints":{"codehealthFindingId/v1":"5e3d6755136f88eae33745e7b1202a1c64aa576c3283cf65357415cf9a9db823"}},{"ruleId":"D2","level":"warning","message":{"text":"commands.processFilterQuery (cognitive 24): commands.processFilterQuery has cognitive complexity 24 (threshold 15). Drivers by points: if/else 21, loops 3 (nesting depth added 11). Of this number, 16 points are the body\u0027s own statements and 8 belong to one function literal inside it that branches. To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/filter-branch.go"},"region":{"startLine":278}}}],"partialFingerprints":{"codehealthFindingId/v1":"2838fcccf98bb2ae36bdc43ab116b118e6d0d9f0a706612a9e8e041575cda326"}},{"ruleId":"D2","level":"warning","message":{"text":"commands.getRawReferencesFromStoreRoot (cognitive 24): commands.getRawReferencesFromStoreRoot has cognitive complexity 24 (threshold 15). Drivers by points: if/else 16, loops 6, match/switch 2 (nesting depth added 8). Most of this is not in the body itself: 8 of the 24 points are its own statements and the rest belongs to one function literal inside it that branches (line 1022). The decisions are inside the literal, which nothing outside this body can call, review or test on its own, so splitting the enclosing body is not the move available here. To reduce it, lift the literal\u0027s work into a named function or method at the enclosing scope and have the literal call it, then reduce whichever part then reads as the largest."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/fsck.go"},"region":{"startLine":984}}}],"partialFingerprints":{"codehealthFindingId/v1":"818e6db2cdd667727b015e3bdb97ce814cdbcc2b89e3424f90b599d9df50320a"}},{"ruleId":"D2","level":"warning","message":{"text":"commands.constructInterpolatedDoltMergeQuery (cognitive 24): commands.constructInterpolatedDoltMergeQuery has cognitive complexity 24 (threshold 15). Drivers by points: if/else 23, boolean chains 1 (nesting depth added 3). Of this number, 21 points are the body\u0027s own statements and 3 belong to one function literal inside it that branches. To reduce it, split the body: most of this score is breadth rather than depth \u2014 checks laid out side by side rather than stacked \u2014 so group the statements between the checks into named steps and move each step into its own function. Some of it IS depth: where a check sits inside another whose only job is to reach it, merge the two into one condition, and where an else follows a branch that already returns, drop the trailing else and let the rest of the body continue at one level."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/merge.go"},"region":{"startLine":250}}}],"partialFingerprints":{"codehealthFindingId/v1":"7cd8cac080bbc6ac20b97faa5781c7b23aa38bcb09e149fc7acf84873d54320f"}},{"ruleId":"D2","level":"warning","message":{"text":"ci.queryAndPrint (cognitive 24): ci.queryAndPrint has cognitive complexity 24 (threshold 15). Drivers by points: if/else 19, loops 3, boolean chains 2 (nesting depth added 11). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/ci/run.go"},"region":{"startLine":122}}}],"partialFingerprints":{"codehealthFindingId/v1":"f9f96a62352c224b80f940036a5aece318205f792cef2c95e2f14399aaabcd6b"}},{"ruleId":"D2","level":"warning","message":{"text":"schcmds.getSchemaImportArgs (cognitive 24): schcmds.getSchemaImportArgs has cognitive complexity 24 (threshold 15). Drivers by points: if/else 21, boolean chains 2, match/switch 1 (nesting depth added 4). To reduce it, split the body: most of this score is breadth rather than depth \u2014 checks laid out side by side rather than stacked \u2014 so group the statements between the checks into named steps and move each step into its own function. Some of it IS depth: where a check sits inside another whose only job is to reach it, merge the two into one condition."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/schcmds/import.go"},"region":{"startLine":176}}}],"partialFingerprints":{"codehealthFindingId/v1":"5fd060d0de5b4170ef7dcfdb8cf74e32046b3b4be84f26d6bfa690711eb0ec16"}},{"ruleId":"D2","level":"warning","message":{"text":"sqlserver.newMetricsListener (cognitive 24): sqlserver.newMetricsListener has cognitive complexity 24 (threshold 15). Drivers by points: if/else 18, loops 5, boolean chains 1 (nesting depth added 12). Of this number, 22 points are the body\u0027s own statements and 2 belong to one function literal inside it that branches. To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/sqlserver/metrics_listener.go"},"region":{"startLine":73}}}],"partialFingerprints":{"codehealthFindingId/v1":"c4d3c128cb29b8a6800fafd3baef6a0afd49de16b555fd92a0cf9331b5937829"}},{"ruleId":"D2","level":"warning","message":{"text":"tblcmds.NameAndTypeTransform (cognitive 24): tblcmds.NameAndTypeTransform has cognitive complexity 24 (threshold 15). Drivers by points: if/else 21, match/switch 2, loops 1 (nesting depth added 14). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/tblcmds/import.go"},"region":{"startLine":941}}}],"partialFingerprints":{"codehealthFindingId/v1":"9982f31fa897b7641e553785a0547a701af7cd2abee0a6510965aa9dc6cd8f5a"}},{"ruleId":"D2","level":"warning","message":{"text":"doltdb.TablesWithDataConflicts (cognitive 24): doltdb.TablesWithDataConflicts has cognitive complexity 24 (threshold 15). Drivers by points: if/else 19, loops 5 (nesting depth added 14). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/doltdb/root_val.go"},"region":{"startLine":622}}}],"partialFingerprints":{"codehealthFindingId/v1":"e57022dd6e6cdb08c49599a5ce81f0332eaade6eb0d37192c9b0f04d86a8bb5f"}},{"ruleId":"D2","level":"warning","message":{"text":"doltdb.TablesWithConstraintViolations (cognitive 24): doltdb.TablesWithConstraintViolations has cognitive complexity 24 (threshold 15). Drivers by points: if/else 19, loops 5 (nesting depth added 14). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/doltdb/root_val.go"},"region":{"startLine":665}}}],"partialFingerprints":{"codehealthFindingId/v1":"f8f51ccb41099bdc10299133b8d2daf4a4659844784047c5db9fbd2ea872bfbc"}},{"ruleId":"D2","level":"warning","message":{"text":"env.NormalizeGitRemoteUrl (cognitive 24): env.NormalizeGitRemoteUrl has cognitive complexity 24 (threshold 15). Drivers by points: if/else 24 (nesting depth added 8). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/env/git_remote_url.go"},"region":{"startLine":50}}}],"partialFingerprints":{"codehealthFindingId/v1":"97e6ebc57e09f47971d36f6faf8b905f0a8a051ba353e21a0526bfdac542525f"}},{"ruleId":"D2","level":"warning","message":{"text":"revert.AbortRevert (cognitive 24): revert.AbortRevert has cognitive complexity 24 (threshold 15). Drivers by points: if/else 24 (nesting depth added 9). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/revert/revert.go"},"region":{"startLine":356}}}],"partialFingerprints":{"codehealthFindingId/v1":"5e2998927c7bd33c2b99b20c1e8ed8dceda939d0c30c15b0958e4fcf713b9a5e"}},{"ruleId":"D2","level":"warning","message":{"text":"binlogReplicaApplier.startReplicationEventStream (cognitive 24): binlogReplicaApplier.startReplicationEventStream has cognitive complexity 24 (threshold 15). Drivers by points: if/else 23, boolean chains 1 (nesting depth added 10). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/binlogreplication/binlog_replica_applier.go"},"region":{"startLine":234}}}],"partialFingerprints":{"codehealthFindingId/v1":"53a102b037c3d1ad19c88e4760cef5bcb5725d07e9733c296cab81d08b8fd1d5"}},{"ruleId":"D2","level":"warning","message":{"text":"dprocedures.checkoutTablesFromCommit (cognitive 24): dprocedures.checkoutTablesFromCommit has cognitive complexity 24 (threshold 15). Drivers by points: if/else 21, loops 2, boolean chains 1 (nesting depth added 6). To reduce it, split the body: most of this score is breadth rather than depth \u2014 checks laid out side by side rather than stacked \u2014 so group the statements between the checks into named steps and move each step into its own function. Some of it IS depth: where a check sits inside another whose only job is to reach it, merge the two into one condition, and where an else follows a branch that already returns, drop the trailing else and let the rest of the body continue at one level."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dprocedures/dolt_checkout.go"},"region":{"startLine":629}}}],"partialFingerprints":{"codehealthFindingId/v1":"eb9fa42cbae4a0b38361eea4f6f4955ecbf6a775c9a7aebc65b3e61c484f5623"}},{"ruleId":"D2","level":"warning","message":{"text":"dprocedures.countCommits (cognitive 24): dprocedures.countCommits has cognitive complexity 24 (threshold 15). Drivers by points: if/else 24 (nesting depth added 2). To reduce it, split the body: most of this score is breadth rather than depth \u2014 checks laid out side by side rather than stacked \u2014 so group the statements between the checks into named steps and move each step into its own function. Some of it IS depth: where a check sits inside another whose only job is to reach it, merge the two into one condition."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dprocedures/dolt_count_commits.go"},"region":{"startLine":39}}}],"partialFingerprints":{"codehealthFindingId/v1":"df33c883e4091aea9b26174d264f57c027a6992dff080209615c4ff652aad015"}},{"ruleId":"D2","level":"warning","message":{"text":"dprocedures.doDoltMerge (cognitive 24): dprocedures.doDoltMerge has cognitive complexity 24 (threshold 15). Drivers by points: if/else 24 (nesting depth added 4). To reduce it, split the body: most of this score is breadth rather than depth \u2014 checks laid out side by side rather than stacked \u2014 so group the statements between the checks into named steps and move each step into its own function. Some of it IS depth: where a check sits inside another whose only job is to reach it, merge the two into one condition."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dprocedures/dolt_merge.go"},"region":{"startLine":100}}}],"partialFingerprints":{"codehealthFindingId/v1":"87198b691bd3b1ffba8a0bb9dbc4e92aa6a909af754caa0834729dcc39c02c4f"}},{"ruleId":"D2","level":"warning","message":{"text":"DoltSession.newPendingCommit (cognitive 24): DoltSession.newPendingCommit has cognitive complexity 24 (threshold 15). Drivers by points: if/else 21, loops 2, boolean chains 1 (nesting depth added 10). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dsess/session.go"},"region":{"startLine":739}}}],"partialFingerprints":{"codehealthFindingId/v1":"f31f9efc980cfb014c788c9679ec2a792cdc91a6a7a4da1535a9dd25b868a1b2"}},{"ruleId":"D2","level":"warning","message":{"text":"DiffTableFunction.WithExpressions (cognitive 24): DiffTableFunction.WithExpressions has cognitive complexity 24 (threshold 15). Drivers by points: if/else 20, loops 4 (nesting depth added 7). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dtablefunctions/dolt_diff.go"},"region":{"startLine":229}}}],"partialFingerprints":{"codehealthFindingId/v1":"8cec390010451c5568dd33fcfa0edf9b0d6aaa49144b83e58e518c7c286fa93c"}},{"ruleId":"D2","level":"warning","message":{"text":"SchemaDiffTableFunction.RowIter (cognitive 24): SchemaDiffTableFunction.RowIter has cognitive complexity 24 (threshold 15). Drivers by points: if/else 20, boolean chains 3, loops 1 (nesting depth added 8). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dtablefunctions/dolt_schema_diff.go"},"region":{"startLine":268}}}],"partialFingerprints":{"codehealthFindingId/v1":"fd51874a9f73dc99b938b3840bf18f6f550e8ef02f46322dcfb82073a29ed8eb"}},{"ruleId":"D2","level":"warning","message":{"text":"ProllyRowConverter.putFields (cognitive 24): ProllyRowConverter.putFields has cognitive complexity 24 (threshold 15). Drivers by points: if/else 19, boolean chains 4, loops 1 (nesting depth added 10). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dtables/prolly_row_conv.go"},"region":{"startLine":115}}}],"partialFingerprints":{"codehealthFindingId/v1":"84fbe7e2381ecc1b0bce3aa5ff368b5a847a73dab2d7b3f45459c1a5998be5c1"}},{"ruleId":"D2","level":"warning","message":{"text":"doltDiffCommitHistoryRowItr.Next (cognitive 24): doltDiffCommitHistoryRowItr.Next has cognitive complexity 24 (threshold 15). Drivers by points: if/else 20, loops 4 (nesting depth added 14). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dtables/unscoped_diff_table.go"},"region":{"startLine":359}}}],"partialFingerprints":{"codehealthFindingId/v1":"b2395c1dc167ba2820b195a60fc4d9cb809752a315fbeaaf595a9aeb67e72f99"}},{"ruleId":"D2","level":"warning","message":{"text":"enginetest.RunTransactionTests (cognitive 24): enginetest.RunTransactionTests has cognitive complexity 24 (threshold 15). Drivers by points: if/else 18, loops 6 (nesting depth added 6). Most of this is not in the body itself: 6 of the 24 points are its own statements and the rest belongs to 6 function literals inside it that branch (lines 590, 601, 612, \u2026). The decisions are inside those literals, which nothing outside this body can call, review or test on its own, so splitting the enclosing body is not the move available here. To reduce it, lift the literals\u0027 work into a named function or method at the enclosing scope and have each literal call it, then reduce whichever part then reads as the largest."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/enginetest/dolt_engine_tests.go"},"region":{"startLine":588}}}],"partialFingerprints":{"codehealthFindingId/v1":"807b4b2b0c33f4c8dee6fb8b28b53e582694e3004433c717bba126167c8829a3"}},{"ruleId":"D2","level":"warning","message":{"text":"DoltHarness.NewEngine (cognitive 24): DoltHarness.NewEngine has cognitive complexity 24 (threshold 15). Drivers by points: if/else 22, loops 2 (nesting depth added 13). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/enginetest/dolt_harness.go"},"region":{"startLine":240}}}],"partialFingerprints":{"codehealthFindingId/v1":"1b5443f31a78cd1f9f2dac6806e472d761889fa520f39e209de7a84bbc756d89"}},{"ruleId":"D2","level":"warning","message":{"text":"kvexec.newLookupKeyMapping (cognitive 24): kvexec.newLookupKeyMapping has cognitive complexity 24 (threshold 15). Drivers by points: if/else 19, loops 2, match/switch 2, boolean chains 1 (nesting depth added 9). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/kvexec/lookup_join.go"},"region":{"startLine":200}}}],"partialFingerprints":{"codehealthFindingId/v1":"de16073ec54a4a9dd70e478537014b6dc9893912d064b4810b016f4bf4e4fb01"}},{"ruleId":"D2","level":"warning","message":{"text":"ArgParser.matchModalOptions (cognitive 24): ArgParser.matchModalOptions has cognitive complexity 24 (threshold 15). Drivers by points: if/else 18, loops 5, boolean chains 1 (nesting depth added 15). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/utils/argparser/parser.go"},"region":{"startLine":213}}}],"partialFingerprints":{"codehealthFindingId/v1":"f9adb2a0e07dbbd3ad7d45778bf04e75303a8f7870f4bdb53fa65c28d9a5dc58"}},{"ruleId":"D2","level":"warning","message":{"text":"journalWriter.loadJournalIndex (cognitive 24): journalWriter.loadJournalIndex has cognitive complexity 24 (threshold 15). Drivers by points: if/else 24 (nesting depth added 10). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/nbs/journal_writer.go"},"region":{"startLine":265}}}],"partialFingerprints":{"codehealthFindingId/v1":"50ca94c68a15a4315e0a1d7543a1bd3422af7dc3e4a11fb5021e06931cd60f91"}},{"ruleId":"D2","level":"warning","message":{"text":"NomsBlockStore.Has (cognitive 24): NomsBlockStore.Has has cognitive complexity 24 (threshold 15). Drivers by points: if/else 23, loops 1 (nesting depth added 13). Of this number, 23 points are the body\u0027s own statements and 1 belongs to one function literal inside it that branches. To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/nbs/store.go"},"region":{"startLine":1316}}}],"partialFingerprints":{"codehealthFindingId/v1":"af2a6d5c0fae397633ff34740289dec072aa3d0c744b4eab8f4c943b16c467e0"}},{"ruleId":"D2","level":"warning","message":{"text":"hrsWriter.writeType (cognitive 24): hrsWriter.writeType has cognitive complexity 24 (threshold 15). Drivers by points: if/else 19, loops 4, match/switch 1 (nesting depth added 13). The drivers above price the dispatch low by construction \u2014 a dispatch is charged once however many cases it lists, while each branch inside an arm is charged in full \u2014 so most of this count is what the case bodies hold, and the arms are where it can be reduced. To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Keep every case explicit, and make the behaviour for cases you do not list a deliberate choice rather than an accident."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/types/encode_human_readable.go"},"region":{"startLine":226}}}],"partialFingerprints":{"codehealthFindingId/v1":"19d34918d7725da4821f5304fa936aba69dadb80fe8fb146a1a807cdafd69c22"}},{"ruleId":"D2","level":"warning","message":{"text":"main.runBats (cognitive 24): main.runBats has cognitive complexity 24 (threshold 15). Drivers by points: if/else 21, boolean chains 3 (nesting depth added 7). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/utils/batsee/main.go"},"region":{"startLine":300}}}],"partialFingerprints":{"codehealthFindingId/v1":"dc9b65beb40ba44bea647d524d4d020999c3b6434c6bda711f5e5b470ec498c7"}},{"ruleId":"D2","level":"warning","message":{"text":"main.RunQueryAttempt (cognitive 24): main.RunQueryAttempt has cognitive complexity 24 (threshold 15). Drivers by points: loops 13, if/else 11 (nesting depth added 13). To reduce it, break up the iteration: give each loop body a named function, and split a multi-phase loop into one function per phase so no single body carries the whole pipeline."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"integration-tests/go-sql-server-driver/testdef.go"},"region":{"startLine":546}}}],"partialFingerprints":{"codehealthFindingId/v1":"a54f28838ab9128b061ffa02387e63220e0abe45ee7e4c1975a231384976d3b9"}},{"ruleId":"D2","level":"warning","message":{"text":"commands.performCommit (cognitive 23): commands.performCommit has cognitive complexity 23 (threshold 15). Drivers by points: if/else 23 (nesting depth added 6). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/commit.go"},"region":{"startLine":100}}}],"partialFingerprints":{"codehealthFindingId/v1":"77ebbd24f5560d098f36cf7f13a471a48d3a5df778d945e3e9bec32c17c4fcdf"}},{"ruleId":"D2","level":"warning","message":{"text":"commands.getCommitInfoWithOptions (cognitive 23): commands.getCommitInfoWithOptions has cognitive complexity 23 (threshold 15). Drivers by points: if/else 21, boolean chains 1, match/switch 1 (nesting depth added 1). To reduce it, split the body: this score is breadth rather than depth \u2014 many checks laid out side by side rather than nested inside one another, so inverting conditions into early returns has nothing left to flatten. Group the statements between the checks into named steps and move each step into its own function, so the body reads as a short sequence of named stages."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/utils.go"},"region":{"startLine":690}}}],"partialFingerprints":{"codehealthFindingId/v1":"52c2b00b4a160c88f79e21234da059c3d70efa8da46ef4e3e7f41afc95860e8f"}},{"ruleId":"D2","level":"warning","message":{"text":"commands.checkAndPrintVersionOutOfDateWarning (cognitive 23): commands.checkAndPrintVersionOutOfDateWarning has cognitive complexity 23 (threshold 15). Drivers by points: if/else 23 (nesting depth added 10). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/version.go"},"region":{"startLine":150}}}],"partialFingerprints":{"codehealthFindingId/v1":"579f39333b904d7f0c1b0aa66ced59bd24a85620ee91e107da5118f16129cf6f"}},{"ruleId":"D2","level":"warning","message":{"text":"ci.updateConfigQueryStatements (cognitive 23): ci.updateConfigQueryStatements has cognitive complexity 23 (threshold 15). Drivers by points: if/else 16, loops 7 (nesting depth added 13). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/ci/view.go"},"region":{"startLine":138}}}],"partialFingerprints":{"codehealthFindingId/v1":"664defc6e2e65a2dfc7b6584b0a19f8405f7499377eb70830ea8ebf62c898850"}},{"ruleId":"D2","level":"warning","message":{"text":"LsCmd.Exec (cognitive 23): LsCmd.Exec has cognitive complexity 23 (threshold 15). Drivers by points: if/else 20, boolean chains 2, loops 1 (nesting depth added 5). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/ls.go"},"region":{"startLine":78}}}],"partialFingerprints":{"codehealthFindingId/v1":"0ad5f648260aa0fcd28c159f2f5c3828eb6ab4635c792f9184e197b7820717aa"}},{"ruleId":"D2","level":"warning","message":{"text":"MergeCmd.Exec (cognitive 23): MergeCmd.Exec has cognitive complexity 23 (threshold 15). Drivers by points: if/else 23 (nesting depth added 4). To reduce it, split the body: most of this score is breadth rather than depth \u2014 checks laid out side by side rather than stacked \u2014 so group the statements between the checks into named steps and move each step into its own function. Some of it IS depth: where a check sits inside another whose only job is to reach it, merge the two into one condition."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/merge.go"},"region":{"startLine":91}}}],"partialFingerprints":{"codehealthFindingId/v1":"dd7c39eaaa5df5e23649ba14b5ddda93b3b793d75855ba705730bad5ed330462"}},{"ruleId":"D2","level":"warning","message":{"text":"StashCmd.Exec (cognitive 23): StashCmd.Exec has cognitive complexity 23 (threshold 15). Drivers by points: if/else 21, match/switch 2 (nesting depth added 6). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/stash.go"},"region":{"startLine":93}}}],"partialFingerprints":{"codehealthFindingId/v1":"d7a35bcb2dd8cd79df0d604602815ac0a57247dbe347ba5882e6cb791ed69207"}},{"ruleId":"D2","level":"warning","message":{"text":"tblcmds.getImportSchema (cognitive 23): tblcmds.getImportSchema has cognitive complexity 23 (threshold 15). Drivers by points: if/else 22, boolean chains 1 (nesting depth added 10). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/tblcmds/import.go"},"region":{"startLine":806}}}],"partialFingerprints":{"codehealthFindingId/v1":"acbc0cd34ac4d594469038da23f8c5a03090055c2f98b91fcc3dd283239ff95b"}},{"ruleId":"D2","level":"warning","message":{"text":"dotDotIter.Next (cognitive 23): dotDotIter.Next has cognitive complexity 23 (threshold 15). Drivers by points: if/else 20, loops 3 (nesting depth added 14). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/commitgraph/commitgraph.go"},"region":{"startLine":259}}}],"partialFingerprints":{"codehealthFindingId/v1":"a3300b45e678b4fbb107ee234fecfede336903912eab2f23982c34bedecf7843"}},{"ruleId":"D2","level":"warning","message":{"text":"actions.clearEmptyConflicts (cognitive 23): actions.clearEmptyConflicts has cognitive complexity 23 (threshold 15). Drivers by points: if/else 22, loops 1 (nesting depth added 14). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/env/actions/staged.go"},"region":{"startLine":161}}}],"partialFingerprints":{"codehealthFindingId/v1":"40eb7a24b3983f7c456e73b08f62c1bf5bb98e9a0cd30938f7faddc3ee90df2d"}},{"ruleId":"D2","level":"warning","message":{"text":"merge.remapTupleWithColumnDefaults (cognitive 23): merge.remapTupleWithColumnDefaults has cognitive complexity 23 (threshold 15). Drivers by points: if/else 20, loops 2, boolean chains 1 (nesting depth added 12). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/merge/merge_prolly_rows.go"},"region":{"startLine":1730}}}],"partialFingerprints":{"codehealthFindingId/v1":"e71cff658180d2bf080ec7df35409cf8817f3d84a7c289ad8b22aad1dd02846c"}},{"ruleId":"D2","level":"warning","message":{"text":"fulltextTable.ApplyToTable (cognitive 23): fulltextTable.ApplyToTable has cognitive complexity 23 (threshold 15). Drivers by points: if/else 17, loops 5, boolean chains 1 (nesting depth added 9). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/merge/fulltext_table.go"},"region":{"startLine":136}}}],"partialFingerprints":{"codehealthFindingId/v1":"c09d0c3c13189964167880b12d2fb78818182bb0424fb22d87c210f1040d219d"}},{"ruleId":"D2","level":"warning","message":{"text":"valueMerger.processBaseColumn (cognitive 23): valueMerger.processBaseColumn has cognitive complexity 23 (threshold 15). Drivers by points: if/else 21, boolean chains 2 (nesting depth added 6). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/merge/merge_prolly_rows.go"},"region":{"startLine":2042}}}],"partialFingerprints":{"codehealthFindingId/v1":"1189016b969a5d289658143f5a4bdb577284f0313513fc4dc77ab0b11e49796a"}},{"ruleId":"D2","level":"warning","message":{"text":"dprocedures.doltBackup (cognitive 23): dprocedures.doltBackup has cognitive complexity 23 (threshold 15). Drivers by points: if/else 18, boolean chains 4, match/switch 1 (nesting depth added 6). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dprocedures/dolt_backup.go"},"region":{"startLine":58}}}],"partialFingerprints":{"codehealthFindingId/v1":"be59f1fc528f048707155ed52fdcea70ecffa6e986e5acc1a8d48b594e9f8631"}},{"ruleId":"D2","level":"warning","message":{"text":"dprocedures.checkoutExistingBranch (cognitive 23): dprocedures.checkoutExistingBranch has cognitive complexity 23 (threshold 15). Drivers by points: if/else 23 (nesting depth added 12). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dprocedures/dolt_checkout.go"},"region":{"startLine":523}}}],"partialFingerprints":{"codehealthFindingId/v1":"d3e4754b0fd05143cfa23789efd00d02ca06df277e1e9a113a3dbb9daf79d154"}},{"ruleId":"D2","level":"warning","message":{"text":"dprocedures.startRebase (cognitive 23): dprocedures.startRebase has cognitive complexity 23 (threshold 15). Drivers by points: if/else 23 (nesting depth added 1). To reduce it, split the body: this score is breadth rather than depth \u2014 many checks laid out side by side rather than nested inside one another, so inverting conditions into early returns has nothing left to flatten. Group the statements between the checks into named steps and move each step into its own function, so the body reads as a short sequence of named stages."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dprocedures/dolt_rebase.go"},"region":{"startLine":279}}}],"partialFingerprints":{"codehealthFindingId/v1":"ab7dceeb45d5bedd8ac100b341c750d440c7c6e190ba668c30675f37f44cdacb"}},{"ruleId":"D2","level":"warning","message":{"text":"dsess.NewSequenceTracker (cognitive 23): dsess.NewSequenceTracker has cognitive complexity 23 (threshold 15). Drivers by points: if/else 20, match/switch 2, loops 1 (nesting depth added 11). Most of this is not in the body itself: 4 of the 23 points are its own statements and the rest belongs to one function literal inside it that branches (line 56). The decisions are inside the literal, which nothing outside this body can call, review or test on its own, so splitting the enclosing body is not the move available here. To reduce it, lift the literal\u0027s work into a named function or method at the enclosing scope and have the literal call it, then reduce whichever part then reads as the largest."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dsess/globalstate.go"},"region":{"startLine":31}}}],"partialFingerprints":{"codehealthFindingId/v1":"560eb93810372a79920c64dbd37b5108adae9ac9cc124952f5cf078a89bf94a3"}},{"ruleId":"D2","level":"warning","message":{"text":"previewMergeConflictsTableFunctionRowIter.loadTableMaps (cognitive 23): previewMergeConflictsTableFunctionRowIter.loadTableMaps has cognitive complexity 23 (threshold 15). Drivers by points: if/else 23 (nesting depth added 10). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dtablefunctions/dolt_preview_merge_conflicts.go"},"region":{"startLine":677}}}],"partialFingerprints":{"codehealthFindingId/v1":"c77524b1311e3e18f9c3064668dd1740316f702c446ec9bf4f7e6080ae3f2af1"}},{"ruleId":"D2","level":"warning","message":{"text":"dtables.calculateColDelta (cognitive 23): dtables.calculateColDelta has cognitive complexity 23 (threshold 15). Drivers by points: if/else 12, loops 11 (nesting depth added 11). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dtables/column_diff_table.go"},"region":{"startLine":529}}}],"partialFingerprints":{"codehealthFindingId/v1":"3d94c407a5095d6294296098a8a8e8593c70d3ddfcafacb0f4feed9c06857213"}},{"ruleId":"D2","level":"warning","message":{"text":"dtables.newSchemaConflict (cognitive 23): dtables.newSchemaConflict has cognitive complexity 23 (threshold 15). Drivers by points: if/else 22, boolean chains 1 (nesting depth added 5). To reduce it, split the body: most of this score is breadth rather than depth \u2014 checks laid out side by side rather than stacked \u2014 so group the statements between the checks into named steps and move each step into its own function. Some of it IS depth: where a check sits inside another whose only job is to reach it, merge the two into one condition, and where an else follows a branch that already returns, drop the trailing else and let the rest of the body continue at one level."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dtables/schema_conflicts_table.go"},"region":{"startLine":156}}}],"partialFingerprints":{"codehealthFindingId/v1":"5a11308cff16e71ed02a601af719b24041af7d7af44a43fdfd29dda14b011b0b"}},{"ruleId":"D2","level":"warning","message":{"text":"prollyConflictRowIter.loadTableMaps (cognitive 23): prollyConflictRowIter.loadTableMaps has cognitive complexity 23 (threshold 15). Drivers by points: if/else 23 (nesting depth added 10). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dtables/conflicts_tables_prolly.go"},"region":{"startLine":491}}}],"partialFingerprints":{"codehealthFindingId/v1":"da7c75e8ce8bbb86e9719a2a097d4b6450490483ed674936222492e54bd3f57a"}},{"ruleId":"D2","level":"warning","message":{"text":"WorkspaceTableDeleter.Delete (cognitive 23): WorkspaceTableDeleter.Delete has cognitive complexity 23 (threshold 15). Drivers by points: if/else 16, loops 5, match/switch 2 (nesting depth added 8). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dtables/workspace_table.go"},"region":{"startLine":283}}}],"partialFingerprints":{"codehealthFindingId/v1":"50f6f04dbbf16e8429f869c8d825b80372c9a62619ab3b208380bc30c3c83d14"}},{"ruleId":"D2","level":"warning","message":{"text":"WritableDoltTable.fulltextTableSets (cognitive 23): WritableDoltTable.fulltextTableSets has cognitive complexity 23 (threshold 15). Drivers by points: if/else 22, loops 1 (nesting depth added 9). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/tables.go"},"region":{"startLine":777}}}],"partialFingerprints":{"codehealthFindingId/v1":"3d994fc58cb71a4391d72ac6b203552e3b60a646e214daf7666c9513750b9734"}},{"ruleId":"D2","level":"warning","message":{"text":"parquet.resolveColumnPrefix (cognitive 23): parquet.resolveColumnPrefix has cognitive complexity 23 (threshold 15). Drivers by points: if/else 18, loops 4, boolean chains 1 (nesting depth added 11). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/table/typed/parquet/reader.go"},"region":{"startLine":154}}}],"partialFingerprints":{"codehealthFindingId/v1":"bdf4043775462bc7aca7aea3930f68cb2f95f9eca35ce42dea4add182d338232"}},{"ruleId":"D2","level":"warning","message":{"text":"CSVReader.csvReadRecords (cognitive 23): CSVReader.csvReadRecords has cognitive complexity 23 (threshold 15). Drivers by points: if/else 17, boolean chains 3, loops 3 (nesting depth added 6). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/table/untyped/csv/reader.go"},"region":{"startLine":334}}}],"partialFingerprints":{"codehealthFindingId/v1":"49b261585a3d21e8cf0c5518413a7e5edceda16791aa288e1b09e97042f42e5c"}},{"ruleId":"D2","level":"warning","message":{"text":"benchmark_runner.Run (cognitive 23): benchmark_runner.Run has cognitive complexity 23 (threshold 15). Drivers by points: if/else 20, match/switch 2, loops 1 (nesting depth added 12). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/performance/utils/benchmark_runner/run.go"},"region":{"startLine":29}}}],"partialFingerprints":{"codehealthFindingId/v1":"5a65c8de7590d48ad762ece40f2bc115af2561b6144bfcc2064f61a62fcb1380"}},{"ruleId":"D2","level":"warning","message":{"text":"blobstore.uploadParts (cognitive 23): blobstore.uploadParts has cognitive complexity 23 (threshold 15). Drivers by points: if/else 16, loops 6, boolean chains 1 (nesting depth added 12). Of this number, 16 points are the body\u0027s own statements and 7 belong to 2 function literals inside it that branch. To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/blobstore/oci.go"},"region":{"startLine":302}}}],"partialFingerprints":{"codehealthFindingId/v1":"1b60ee307a5dc3044b6a3009b964e2ccdbe8ef76d83008f7013ac416818c895f"}},{"ruleId":"D2","level":"warning","message":{"text":"nbs.updateWithChecker (cognitive 23): nbs.updateWithChecker has cognitive complexity 23 (threshold 15). Drivers by points: if/else 22, boolean chains 1 (nesting depth added 4). Most of this is not in the body itself: 9 of the 23 points are its own statements and the rest belongs to 2 function literals inside it that branch (lines 425, 381). The decisions are inside those literals, which nothing outside this body can call, review or test on its own, so splitting the enclosing body is not the move available here. To reduce it, lift the literals\u0027 work into a named function or method at the enclosing scope and have each literal call it, then reduce whichever part then reads as the largest."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/nbs/file_manifest.go"},"region":{"startLine":376}}}],"partialFingerprints":{"codehealthFindingId/v1":"e321257a741b9b9066488db18b43e5b23795a2a436f9fa5e4a8b2cf9abd24db6"}},{"ruleId":"D2","level":"warning","message":{"text":"main.main (cognitive 23): main.main has cognitive complexity 23 (threshold 15). Drivers by points: if/else 14, loops 7, boolean chains 2 (nesting depth added 8). Of this number, 19 points are the body\u0027s own statements and 4 belong to one function literal inside it that branches. To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/nbs/frag/main.go"},"region":{"startLine":53}}}],"partialFingerprints":{"codehealthFindingId/v1":"c764cb8107a710677e58d8672fa4cb56e342c678f86e2e51e82d87510c6d5664"}},{"ruleId":"D2","level":"warning","message":{"text":"NomsBlockStore.getChunkLocations (cognitive 23): NomsBlockStore.getChunkLocations has cognitive complexity 23 (threshold 15). Drivers by points: if/else 18, loops 5 (nesting depth added 9). Most of this is not in the body itself: 9 of the 23 points are its own statements and the rest belongs to 2 function literals inside it that branch (lines 238, 263). The decisions are inside those literals, which nothing outside this body can call, review or test on its own, so splitting the enclosing body is not the move available here. To reduce it, lift the literals\u0027 work into a named function or method at the enclosing scope and have each literal call it, then reduce whichever part then reads as the largest."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/nbs/store.go"},"region":{"startLine":237}}}],"partialFingerprints":{"codehealthFindingId/v1":"07eb543ad22697e2ca4e334adfc6320409dfd889645719bf6d7e67fe2dfbb1cf"}},{"ruleId":"D2","level":"warning","message":{"text":"tree.RandomTuplePairs (cognitive 23): tree.RandomTuplePairs has cognitive complexity 23 (threshold 15). Drivers by points: if/else 17, loops 6 (nesting depth added 12). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/prolly/tree/testutils.go"},"region":{"startLine":50}}}],"partialFingerprints":{"codehealthFindingId/v1":"64867118cb5385235ff0a18ce1bce00e7d9db22132a56a20d9ebcc58f830d197"}},{"ruleId":"D2","level":"warning","message":{"text":"Differ.next (cognitive 23): Differ.next has cognitive complexity 23 (threshold 15). Drivers by points: if/else 16, boolean chains 4, match/switch 2, loops 1 (nesting depth added 10). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/prolly/tree/diff.go"},"region":{"startLine":151}}}],"partialFingerprints":{"codehealthFindingId/v1":"304d77ade21b25f37ada2974b521fc65b32c86ebf543c5bd03f6d354a1c82da5"}},{"ruleId":"D2","level":"warning","message":{"text":"IndexedJsonDocument.Compare (cognitive 23): IndexedJsonDocument.Compare has cognitive complexity 23 (threshold 15). Drivers by points: if/else 20, match/switch 3 (nesting depth added 9). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/prolly/tree/json_indexed_document.go"},"region":{"startLine":732}}}],"partialFingerprints":{"codehealthFindingId/v1":"d753a6512c39cf178c1a5d2bd9fcce6f64c070c91740dd9e78695e7422205cb3"}},{"ruleId":"D2","level":"warning","message":{"text":"mutableMapIter.Next (cognitive 23): mutableMapIter.Next has cognitive complexity 23 (threshold 15). Drivers by points: if/else 18, boolean chains 2, match/switch 2, loops 1 (nesting depth added 12). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/prolly/tuple_range_iter.go"},"region":{"startLine":47}}}],"partialFingerprints":{"codehealthFindingId/v1":"feceede8aa5117e8c91a87d5f7e27e8d9b214a942452ed680719ea189afdf2de"}},{"ruleId":"D2","level":"warning","message":{"text":"outputpager.Start (cognitive 23): outputpager.Start has cognitive complexity 23 (threshold 15). Drivers by points: if/else 19, match/switch 2, boolean chains 1, loops 1 (nesting depth added 8). Of this number, 16 points are the body\u0027s own statements and 7 belong to 2 function literals inside it that branch. To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/util/outputpager/page_output.go"},"region":{"startLine":52}}}],"partialFingerprints":{"codehealthFindingId/v1":"8391ee6bd76e57ab96df475544cf6b71faedad94e5345e5886abe523e804e37a"}},{"ruleId":"D2","level":"warning","message":{"text":"cli.toParagraphLines (cognitive 22): cli.toParagraphLines has cognitive complexity 22 (threshold 15). Drivers by points: if/else 13, loops 7, boolean chains 2 (nesting depth added 12). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/cli/help.go"},"region":{"startLine":234}}}],"partialFingerprints":{"codehealthFindingId/v1":"ff22f40534246f18d1d080680f6be6e82d24023c1ff34eafcd0185bd75ea2aef"}},{"ruleId":"D2","level":"warning","message":{"text":"commands.walkCommitDAGFromRefs (cognitive 22): commands.walkCommitDAGFromRefs has cognitive complexity 22 (threshold 15). Drivers by points: if/else 16, loops 6 (nesting depth added 10). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/fsck.go"},"region":{"startLine":916}}}],"partialFingerprints":{"codehealthFindingId/v1":"83c2a6ed47ec0cc1b4eab6060e02fd3ca74ddba4dde23faa6c3f7b79b89440d5"}},{"ruleId":"D2","level":"warning","message":{"text":"commands.constructInterpolatedDoltLogQuery (cognitive 22): commands.constructInterpolatedDoltLogQuery has cognitive complexity 22 (threshold 15). Drivers by points: if/else 17, loops 4, boolean chains 1 (nesting depth added 5). Of this number, 21 points are the body\u0027s own statements and 1 belongs to one function literal inside it that branches. To reduce it, split the body: most of this score is breadth rather than depth \u2014 checks laid out side by side rather than stacked \u2014 so group the statements between the checks into named steps and move each step into its own function. Some of it IS depth: where a check sits inside another whose only job is to reach it, merge the two into one condition."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/log.go"},"region":{"startLine":192}}}],"partialFingerprints":{"codehealthFindingId/v1":"b2501be70e0c1ea3606599cf05e0f29e487995aa37a170263488e8c8eadc9119"}},{"ruleId":"D2","level":"warning","message":{"text":"DoltDB.getHashFromCommitSpec (cognitive 22): DoltDB.getHashFromCommitSpec has cognitive complexity 22 (threshold 15). Drivers by points: if/else 19, loops 2, match/switch 1 (nesting depth added 11). The drivers above price the dispatch low by construction \u2014 a dispatch is charged once however many cases it lists, while each branch inside an arm is charged in full \u2014 so most of this count is what the case bodies hold, and the arms are where it can be reduced. To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Keep every case explicit, and make the behaviour for cases you do not list a deliberate choice rather than an accident."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/doltdb/doltdb.go"},"region":{"startLine":469}}}],"partialFingerprints":{"codehealthFindingId/v1":"2a16a24e44882ad6363686f81522b5f030dafb5f1571356814f8b862bdada38a"}},{"ruleId":"D2","level":"warning","message":{"text":"MergeState.IterSchemaConflicts (cognitive 22): MergeState.IterSchemaConflicts has cognitive complexity 22 (threshold 15). Drivers by points: if/else 21, loops 1 (nesting depth added 9). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/doltdb/workingset.go"},"region":{"startLine":254}}}],"partialFingerprints":{"codehealthFindingId/v1":"b14a239a3153f749eb8e76734ddefb28d25a4e7096893613268f6d73144d122f"}},{"ruleId":"D2","level":"warning","message":{"text":"actions.MoveUntrackedTables (cognitive 22): actions.MoveUntrackedTables has cognitive complexity 22 (threshold 15). Drivers by points: if/else 14, loops 8 (nesting depth added 8). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/env/actions/reset.go"},"region":{"startLine":78}}}],"partialFingerprints":{"codehealthFindingId/v1":"4a29f7277b11636855d93b8954d4877cd30f3e1cb3b4a13da88f941c665ae70e"}},{"ruleId":"D2","level":"warning","message":{"text":"actions.addFullTextTablesToDelta (cognitive 22): actions.addFullTextTablesToDelta has cognitive complexity 22 (threshold 15). Drivers by points: if/else 11, loops 9, boolean chains 2 (nesting depth added 12). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/env/actions/table.go"},"region":{"startLine":134}}}],"partialFingerprints":{"codehealthFindingId/v1":"30703a4d0b6ddbfdba2806a254c0ac69bf8ce23567827ca383d67c8c1bee8a01"}},{"ruleId":"D2","level":"warning","message":{"text":"GRPCDialProvider.GetGRPCDialParams (cognitive 22): GRPCDialProvider.GetGRPCDialParams has cognitive complexity 22 (threshold 15). Drivers by points: if/else 22 (nesting depth added 7). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/env/grpc_dial_provider.go"},"region":{"startLine":87}}}],"partialFingerprints":{"codehealthFindingId/v1":"f863527d64a2d32e4df5566d52451d1ea4f2ffcb20ce56a7cfbb9b39569d4451"}},{"ruleId":"D2","level":"warning","message":{"text":"merge.GetMutableSecondaryIdxsWithPending (cognitive 22): merge.GetMutableSecondaryIdxsWithPending has cognitive complexity 22 (threshold 15). Drivers by points: if/else 20, boolean chains 1, loops 1 (nesting depth added 10). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/merge/mutable_secondary_index.go"},"region":{"startLine":59}}}],"partialFingerprints":{"codehealthFindingId/v1":"6a387dc0c3f9eab47476f897fc97e85f8c225218eeaab61208c133f910a8d003"}},{"ruleId":"D2","level":"warning","message":{"text":"merge.prollyParentPriDiffFkConstraintViolations (cognitive 22): merge.prollyParentPriDiffFkConstraintViolations has cognitive complexity 22 (threshold 15). Drivers by points: if/else 19, boolean chains 2, match/switch 1 (nesting depth added 7). Most of this is not in the body itself: 6 of the 22 points are its own statements and the rest belongs to one function literal inside it that branches (line 178). The decisions are inside the literal, which nothing outside this body can call, review or test on its own, so splitting the enclosing body is not the move available here. To reduce it, lift the literal\u0027s work into a named function or method at the enclosing scope and have the literal call it, then reduce whichever part then reads as the largest."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/merge/violations_fk_prolly.go"},"region":{"startLine":134}}}],"partialFingerprints":{"codehealthFindingId/v1":"4892c9cbbc1912537f99f9b871e79940ff5cbd1edf3b0735787749c0865f10cb"}},{"ruleId":"D2","level":"warning","message":{"text":"sqle.resolveAsOfTime (cognitive 22): sqle.resolveAsOfTime has cognitive complexity 22 (threshold 15). Drivers by points: if/else 20, boolean chains 1, loops 1 (nesting depth added 8). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/database.go"},"region":{"startLine":1369}}}],"partialFingerprints":{"codehealthFindingId/v1":"fc16575fbeddadadc69e42e0a897a821db386d24e3e354af35d6737464ffb428"}},{"ruleId":"D2","level":"warning","message":{"text":"sqle.migrateOldSchemasTableToNew (cognitive 22): sqle.migrateOldSchemasTableToNew has cognitive complexity 22 (threshold 15). Drivers by points: if/else 19, loops 2, boolean chains 1 (nesting depth added 5). Of this number, 20 points are the body\u0027s own statements and 2 belong to one function literal inside it that branches. To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/schema_table.go"},"region":{"startLine":274}}}],"partialFingerprints":{"codehealthFindingId/v1":"c8abd5ccd0892c39aad57744c332851e079edab87786f0dcd36fa981e69961d2"}},{"ruleId":"D2","level":"warning","message":{"text":"Database.getNonlocalTableEntry (cognitive 22): Database.getNonlocalTableEntry has cognitive complexity 22 (threshold 15). Drivers by points: if/else 21, loops 1 (nesting depth added 9). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/database.go"},"region":{"startLine":1070}}}],"partialFingerprints":{"codehealthFindingId/v1":"9e16c7e8cf3599ecbe6cd902b0ec1bd5fc784327c65246c418d252fe84f2c80a"}},{"ruleId":"D2","level":"warning","message":{"text":"doltProceduresDiffPartitionRowIter.createDiffRow (cognitive 22): doltProceduresDiffPartitionRowIter.createDiffRow has cognitive complexity 22 (threshold 15). Drivers by points: if/else 16, loops 4, boolean chains 2 (nesting depth added 6). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dolt_procedures_diff_table.go"},"region":{"startLine":535}}}],"partialFingerprints":{"codehealthFindingId/v1":"7a318c1db67be075752557bbbeb3ad7ecddaddd352ec76981f200546409f198f"}},{"ruleId":"D2","level":"warning","message":{"text":"doltSchemasDiffPartitionRowIter.createDiffRow (cognitive 22): doltSchemasDiffPartitionRowIter.createDiffRow has cognitive complexity 22 (threshold 15). Drivers by points: if/else 16, loops 4, boolean chains 2 (nesting depth added 6). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dolt_schemas_diff_table.go"},"region":{"startLine":535}}}],"partialFingerprints":{"codehealthFindingId/v1":"e1dca7b403f6137887c86eb37853f692034431a6e66e634c41f8ce66d6745bbf"}},{"ruleId":"D2","level":"warning","message":{"text":"dprocedures.DoDoltConflictsResolve (cognitive 22): dprocedures.DoDoltConflictsResolve has cognitive complexity 22 (threshold 15). Drivers by points: if/else 17, boolean chains 3, loops 2 (nesting depth added 5). To reduce it, split the body: most of this score is breadth rather than depth \u2014 checks laid out side by side rather than stacked \u2014 so group the statements between the checks into named steps and move each step into its own function. Some of it IS depth: where a check sits inside another whose only job is to reach it, merge the two into one condition, and where an else follows a branch that already returns, drop the trailing else and let the rest of the body continue at one level."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dprocedures/dolt_conflicts_resolve.go"},"region":{"startLine":384}}}],"partialFingerprints":{"codehealthFindingId/v1":"974904cbc0ebceb8dd1942020230ccaad72cbf33d550164b917dac4cd3886d3f"}},{"ruleId":"D2","level":"warning","message":{"text":"dprocedures.doDoltSquashHistory (cognitive 22): dprocedures.doDoltSquashHistory has cognitive complexity 22 (threshold 15). Drivers by points: if/else 21, boolean chains 1. To reduce it, split the body: this score is breadth rather than depth \u2014 many checks laid out side by side rather than nested inside one another, so inverting conditions into early returns has nothing left to flatten. Group the statements between the checks into named steps and move each step into its own function, so the body reads as a short sequence of named stages."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dprocedures/dolt_squash_history.go"},"region":{"startLine":46}}}],"partialFingerprints":{"codehealthFindingId/v1":"8573776cd2b65005ae6d23278c82b979c2edc2707f03d323d3b350b7200db96b"}},{"ruleId":"D2","level":"warning","message":{"text":"DoltSession.CommitTransaction (cognitive 22): DoltSession.CommitTransaction has cognitive complexity 22 (threshold 15). Drivers by points: if/else 21, boolean chains 1 (nesting depth added 7). Of this number, 21 points are the body\u0027s own statements and 1 belongs to one function literal inside it that branches. To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dsess/session.go"},"region":{"startLine":446}}}],"partialFingerprints":{"codehealthFindingId/v1":"65dcdfaf1fd5bcb2e8bf0f689ef16300e916b68765a98a35a002865b7d453a2b"}},{"ruleId":"D2","level":"warning","message":{"text":"DoltSession.setDbSessionVars (cognitive 22): DoltSession.setDbSessionVars has cognitive complexity 22 (threshold 15). Drivers by points: if/else 21, boolean chains 1 (nesting depth added 8). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dsess/session.go"},"region":{"startLine":1527}}}],"partialFingerprints":{"codehealthFindingId/v1":"e042e1b9df5d6f193aa3438b4c71d09707ec6549e9e93398c018f4a78721f603"}},{"ruleId":"D2","level":"warning","message":{"text":"dtables.createWriteableSystemTable (cognitive 22): dtables.createWriteableSystemTable has cognitive complexity 22 (threshold 15). Drivers by points: if/else 22 (nesting depth added 7). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dtables/user_space_system_table.go"},"region":{"startLine":210}}}],"partialFingerprints":{"codehealthFindingId/v1":"94231d84457e2949852c1342583765590891993a8e8f9cc21746ddc6733755ca"}},{"ruleId":"D2","level":"warning","message":{"text":"dtables.newWorkspaceDiffIter (cognitive 22): dtables.newWorkspaceDiffIter has cognitive complexity 22 (threshold 15). Drivers by points: if/else 22 (nesting depth added 6). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dtables/workspace_table.go"},"region":{"startLine":1025}}}],"partialFingerprints":{"codehealthFindingId/v1":"1f4ba25bbe5c073d016d1a61044996f06c2835ba0f3b1e71bf51f7b579683c1e"}},{"ruleId":"D2","level":"warning","message":{"text":"SecondaryDiffPartition.GetRowIter (cognitive 22): SecondaryDiffPartition.GetRowIter has cognitive complexity 22 (threshold 15). Drivers by points: if/else 22 (nesting depth added 10). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dtables/diff_secondary_iter.go"},"region":{"startLine":279}}}],"partialFingerprints":{"codehealthFindingId/v1":"3953fd60700ec0a657e53337574a11a976ef21c013b5c7cb69e663e00299b0e7"}},{"ruleId":"D2","level":"warning","message":{"text":"prollyTableWriter.table (cognitive 22): prollyTableWriter.table has cognitive complexity 22 (threshold 15). Drivers by points: if/else 21, loops 1 (nesting depth added 9). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/writer/prolly_table_writer.go"},"region":{"startLine":389}}}],"partialFingerprints":{"codehealthFindingId/v1":"251cb446fe9d5e5982fb8f5f0bc799c9853ad11e76c856969f8dd1a53663312e"}},{"ruleId":"D2","level":"warning","message":{"text":"doltgresBenchmarkerImpl.Benchmark (cognitive 22): doltgresBenchmarkerImpl.Benchmark has cognitive complexity 22 (threshold 15). Drivers by points: if/else 19, loops 3 (nesting depth added 8). Of this number, 20 points are the body\u0027s own statements and 2 belong to 2 function literals inside it that branch. To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/performance/utils/benchmark_runner/doltgres.go"},"region":{"startLine":91}}}],"partialFingerprints":{"codehealthFindingId/v1":"e931ed930169d41e0a8536c9a10e20a7aca0ef43434a662d2ed204d0207d5cf6"}},{"ruleId":"D2","level":"warning","message":{"text":"GitBlobstore.CheckAndPut (cognitive 22): GitBlobstore.CheckAndPut has cognitive complexity 22 (threshold 15). Drivers by points: if/else 16, loops 6 (nesting depth added 11). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/blobstore/git_blobstore.go"},"region":{"startLine":1428}}}],"partialFingerprints":{"codehealthFindingId/v1":"08af9caefca4742cb8485cb47da7ea970d7830b4bd37c87a6a9684a0195f4c7c"}},{"ruleId":"D2","level":"warning","message":{"text":"nbs.MoveNewGenToOldGen (cognitive 22): nbs.MoveNewGenToOldGen has cognitive complexity 22 (threshold 15). Drivers by points: if/else 18, loops 4 (nesting depth added 12). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/nbs/admin_newgen_to_oldgen.go"},"region":{"startLine":27}}}],"partialFingerprints":{"codehealthFindingId/v1":"6e9c4cfac0d1719a9ee1724923dee78b0c586b9ab7c3b84d6f1bc3bc0aa0714f"}},{"ruleId":"D2","level":"warning","message":{"text":"tree.insertNode (cognitive 22): tree.insertNode has cognitive complexity 22 (threshold 15). Drivers by points: if/else 18, loops 4 (nesting depth added 10). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/prolly/tree/chunker.go"},"region":{"startLine":258}}}],"partialFingerprints":{"codehealthFindingId/v1":"5a7423b6402831f0ace21d31ed744286ed81e0d8e87ee96088d396ce737e05aa"}},{"ruleId":"D2","level":"warning","message":{"text":"tree.GetFieldValue (cognitive 22): tree.GetFieldValue has cognitive complexity 22 (threshold 15). Drivers by points: if/else 21, match/switch 1 (nesting depth added 11). The drivers above price the dispatch low by construction \u2014 a dispatch is charged once however many cases it lists, while each branch inside an arm is charged in full \u2014 so most of this count is what the case bodies hold, and the arms are where it can be reduced. To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Keep every case explicit, and make the behaviour for cases you do not list a deliberate choice rather than an accident."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/prolly/tree/prolly_fields.go"},"region":{"startLine":199}}}],"partialFingerprints":{"codehealthFindingId/v1":"42210d2488b6b89d49679ef85bcf8c6519a379cd15a33984cd18bd60bf011762"}},{"ruleId":"D2","level":"warning","message":{"text":"main.main (cognitive 22): main.main has cognitive complexity 22 (threshold 15). Drivers by points: if/else 16, loops 6 (nesting depth added 9). Most of this is not in the body itself: 6 of the 22 points are its own statements and the rest belongs to 2 function literals inside it that branch (lines 88, 63). The decisions are inside those literals, which nothing outside this body can call, review or test on its own, so splitting the enclosing body is not the move available here. To reduce it, lift the literals\u0027 work into a named function or method at the enclosing scope and have each literal call it, then reduce whichever part then reads as the largest."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"integration-tests/mysql-client-tests/go/sql-driver-mysql-test.go"},"region":{"startLine":82}}}],"partialFingerprints":{"codehealthFindingId/v1":"7c76098a89b8fda7c01e135bb1e422a983aa0659569969f353aa0a510d2755ea"}},{"ruleId":"D2","level":"warning","message":{"text":"commands.printDiffStats (cognitive 21): commands.printDiffStats has cognitive complexity 21 (threshold 15). Drivers by points: if/else 16, loops 5 (nesting depth added 10). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/log.go"},"region":{"startLine":412}}}],"partialFingerprints":{"codehealthFindingId/v1":"749b0b3055f11381b96ceca0188384daaec42c440dd074bbe66663c097975c5c"}},{"ruleId":"D2","level":"warning","message":{"text":"commands.calculateMergeStats (cognitive 21): commands.calculateMergeStats has cognitive complexity 21 (threshold 15). Drivers by points: if/else 17, boolean chains 2, loops 2 (nesting depth added 7). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/merge.go"},"region":{"startLine":479}}}],"partialFingerprints":{"codehealthFindingId/v1":"b0d62cc6a8cfbace94415941496f0b9826d27b78fd15347a690c3e4642e3f5a2"}},{"ruleId":"D2","level":"warning","message":{"text":"commands.formatQueryError (cognitive 21): commands.formatQueryError has cognitive complexity 21 (threshold 15). Drivers by points: if/else 17, loops 4 (nesting depth added 10). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/sql.go"},"region":{"startLine":477}}}],"partialFingerprints":{"codehealthFindingId/v1":"aee9cf589612cc7aafbe26aba50298609ccdd411aeee378d7d7676a4dfc8884a"}},{"ruleId":"D2","level":"warning","message":{"text":"ConjoinCmd.Exec (cognitive 21): ConjoinCmd.Exec has cognitive complexity 21 (threshold 15). Drivers by points: if/else 17, boolean chains 2, loops 2 (nesting depth added 5). To reduce it, split the body: most of this score is breadth rather than depth \u2014 checks laid out side by side rather than stacked \u2014 so group the statements between the checks into named steps and move each step into its own function. Some of it IS depth: where a check sits inside another whose only job is to reach it, merge the two into one condition, and where an else follows a branch that already returns, drop the trailing else and let the rest of the body continue at one level."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/admin/conjoin.go"},"region":{"startLine":77}}}],"partialFingerprints":{"codehealthFindingId/v1":"9ba15ea394ec4d2b7618e4715ae91ed6f580de59a01532a530b70165c57eca13"}},{"ruleId":"D2","level":"warning","message":{"text":"CreateCommitCmd.Exec (cognitive 21): CreateCommitCmd.Exec has cognitive complexity 21 (threshold 15). Drivers by points: if/else 20, loops 1 (nesting depth added 5). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/admin/createchunk/createcommit.go"},"region":{"startLine":63}}}],"partialFingerprints":{"codehealthFindingId/v1":"a7e223efcae362a90c4a2f6e5097c6494e83a45d21ddca16cac0580dd566385c"}},{"ruleId":"D2","level":"warning","message":{"text":"Assist.handleResponse (cognitive 21): Assist.handleResponse has cognitive complexity 21 (threshold 15). Drivers by points: if/else 16, match/switch 3, loops 2 (nesting depth added 12). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/assist.go"},"region":{"startLine":181}}}],"partialFingerprints":{"codehealthFindingId/v1":"659b84a65165765552388c3c82d6bf9b3262b7fe5ad30babe4018f1d8429255b"}},{"ruleId":"D2","level":"warning","message":{"text":"cnfcmds.newConflictSplitter (cognitive 21): cnfcmds.newConflictSplitter has cognitive complexity 21 (threshold 15). Drivers by points: if/else 19, boolean chains 1, loops 1 (nesting depth added 9). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/cnfcmds/conflictsplitter.go"},"region":{"startLine":42}}}],"partialFingerprints":{"codehealthFindingId/v1":"1f29c372693a9edf0561fc38722c5626a8baa1cd5d97cc0bc81f409fbf30b88f"}},{"ruleId":"D2","level":"warning","message":{"text":"ReadTablesCmd.Exec (cognitive 21): ReadTablesCmd.Exec has cognitive complexity 21 (threshold 15). Drivers by points: if/else 19, boolean chains 1, loops 1 (nesting depth added 3). To reduce it, split the body: most of this score is breadth rather than depth \u2014 checks laid out side by side rather than stacked \u2014 so group the statements between the checks into named steps and move each step into its own function. Some of it IS depth: where a check sits inside another whose only job is to reach it, merge the two into one condition, and where an else follows a branch that already returns, drop the trailing else and let the rest of the body continue at one level."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/read_tables.go"},"region":{"startLine":85}}}],"partialFingerprints":{"codehealthFindingId/v1":"4fa7be529140d3655ed891ad07abb08df940a46a6d5c2c8d39cf68b0b74044d8"}},{"ruleId":"D2","level":"warning","message":{"text":"tblcmds.moveRows (cognitive 21): tblcmds.moveRows has cognitive complexity 21 (threshold 15). Drivers by points: if/else 17, match/switch 3, loops 1 (nesting depth added 11). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/tblcmds/import.go"},"region":{"startLine":760}}}],"partialFingerprints":{"codehealthFindingId/v1":"80b570fc04ac1cbdb3aa5bf0bbe5bf2c25201d5bae4175e984f4de6ba0425f8a"}},{"ruleId":"D2","level":"warning","message":{"text":"diff.diffProllyTrees (cognitive 21): diff.diffProllyTrees has cognitive complexity 21 (threshold 15). Drivers by points: if/else 20, boolean chains 1 (nesting depth added 8). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/diff/diff_stat.go"},"region":{"startLine":99}}}],"partialFingerprints":{"codehealthFindingId/v1":"8629068995c08f9c9b5280b2dd15476458385fa8da3a077060c566255861506f"}},{"ruleId":"D2","level":"warning","message":{"text":"diff.DiffForeignKeys (cognitive 21): diff.DiffForeignKeys has cognitive complexity 21 (threshold 15). Drivers by points: if/else 14, loops 6, boolean chains 1 (nesting depth added 11). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/diff/schema_diff.go"},"region":{"startLine":157}}}],"partialFingerprints":{"codehealthFindingId/v1":"b88bcdb709f69633d20d942ee1f7c430b9204f13bf5145581bf45741683c5382"}},{"ruleId":"D2","level":"warning","message":{"text":"ForeignKey.Equals (cognitive 21): ForeignKey.Equals has cognitive complexity 21 (threshold 15). Drivers by points: if/else 18, loops 2, boolean chains 1 (nesting depth added 6). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/doltdb/foreign_key_coll.go"},"region":{"startLine":110}}}],"partialFingerprints":{"codehealthFindingId/v1":"789c5063d63fe33a1812950127754a0d1a02cc2bcf88151418198a9afa5c0820"}},{"ruleId":"D2","level":"warning","message":{"text":"hooksDatabase.ExecuteCommitHooks (cognitive 21): hooksDatabase.ExecuteCommitHooks has cognitive complexity 21 (threshold 15). Drivers by points: if/else 15, boolean chains 3, loops 3 (nesting depth added 9). Of this number, 13 points are the body\u0027s own statements and 8 belong to one function literal inside it that branches. To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/doltdb/hooksdatabase.go"},"region":{"startLine":101}}}],"partialFingerprints":{"codehealthFindingId/v1":"41c0316ed271360b8628a7ca652571da588c133da61f5ff93cc43f566d8017fa"}},{"ruleId":"D2","level":"warning","message":{"text":"actions.DeleteBranchOnDB (cognitive 21): actions.DeleteBranchOnDB has cognitive complexity 21 (threshold 15). Drivers by points: if/else 20, boolean chains 1 (nesting depth added 8). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/env/actions/branch.go"},"region":{"startLine":140}}}],"partialFingerprints":{"codehealthFindingId/v1":"67dfac6896179a01540a13a358b26c2ea338ffa818c4b9d80a8ca266ede5d8af"}},{"ruleId":"D2","level":"warning","message":{"text":"actions.findCommonType (cognitive 21): actions.findCommonType has cognitive complexity 21 (threshold 15). Drivers by points: if/else 14, loops 5, boolean chains 2 (nesting depth added 4). To reduce it, split the body: most of this score is breadth rather than depth \u2014 checks laid out side by side rather than stacked \u2014 so group the statements between the checks into named steps and move each step into its own function. Some of it IS depth: where a check sits inside another whose only job is to reach it, merge the two into one condition."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/env/actions/infer_schema.go"},"region":{"startLine":322}}}],"partialFingerprints":{"codehealthFindingId/v1":"b978d2d64ba338db40077d70e3e0f41dfdd1ef75671e849f50cfa3cbeb5eb200"}},{"ruleId":"D2","level":"warning","message":{"text":"actions.DeleteWorkspaceOnDB (cognitive 21): actions.DeleteWorkspaceOnDB has cognitive complexity 21 (threshold 15). Drivers by points: if/else 19, boolean chains 2 (nesting depth added 8). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/env/actions/workspace.go"},"region":{"startLine":109}}}],"partialFingerprints":{"codehealthFindingId/v1":"315cbebfb6d95c6ddd12d8080271d115008407e8f5b9beb0639d1248f098c999"}},{"ruleId":"D2","level":"warning","message":{"text":"merge.resolveDefaults (cognitive 21): merge.resolveDefaults has cognitive complexity 21 (threshold 15). Drivers by points: if/else 18, loops 2, boolean chains 1 (nesting depth added 10). Most of this is not in the body itself: 7 of the 21 points are its own statements and the rest belongs to 2 function literals inside it that branch (lines 1486, 1516). The decisions are inside those literals, which nothing outside this body can call, review or test on its own, so splitting the enclosing body is not the move available here. To reduce it, lift the literals\u0027 work into a named function or method at the enclosing scope and have each literal call it, then reduce whichever part then reads as the largest."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/merge/merge_prolly_rows.go"},"region":{"startLine":1480}}}],"partialFingerprints":{"codehealthFindingId/v1":"080e3efc7bbe42e3853ba660e6aadeac4564764072a006d5812f5c0d19ed9955"}},{"ruleId":"D2","level":"warning","message":{"text":"SqlEngineTableWriter.DropCreatedTable (cognitive 21): SqlEngineTableWriter.DropCreatedTable has cognitive complexity 21 (threshold 15). Drivers by points: if/else 17, loops 4 (nesting depth added 12). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/mvdata/engine_table_writer.go"},"region":{"startLine":251}}}],"partialFingerprints":{"codehealthFindingId/v1":"6958c439fc3790a21264b7faaf97ea0c2058ec22f653ff7c614f0248f426f925"}},{"ruleId":"D2","level":"warning","message":{"text":"remotestorage.fetcherDownloadRangesThread (cognitive 21): remotestorage.fetcherDownloadRangesThread has cognitive complexity 21 (threshold 15). Drivers by points: if/else 12, loops 5, boolean chains 2, match/switch 2 (nesting depth added 10). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/remotestorage/chunk_fetcher.go"},"region":{"startLine":643}}}],"partialFingerprints":{"codehealthFindingId/v1":"b807ca3a9f2de18ff988fa4e259bc39a22fdf155b4a3fbc2740fe102fa7793f9"}},{"ruleId":"D2","level":"warning","message":{"text":"reliable.StreamingRangeDownload (cognitive 21): reliable.StreamingRangeDownload has cognitive complexity 21 (threshold 15). Drivers by points: if/else 17, boolean chains 4 (nesting depth added 3). Most of this is not in the body itself: 0 of the 21 points are its own statements and the rest belongs to one function literal inside it that branches (line 129). The decisions are inside the literal, which nothing outside this body can call, review or test on its own, so splitting the enclosing body is not the move available here. To reduce it, lift the literal\u0027s work into a named function or method at the enclosing scope and have the literal call it, then reduce whichever part then reads as the largest."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/remotestorage/internal/reliable/http.go"},"region":{"startLine":110}}}],"partialFingerprints":{"codehealthFindingId/v1":"fd64f85f42d1a5bd43ef2ed0c5c13309c39b7ca74e13af1cc95715a1794594ab"}},{"ruleId":"D2","level":"warning","message":{"text":"sqle.migrateDoltProceduresSchema (cognitive 21): sqle.migrateDoltProceduresSchema has cognitive complexity 21 (threshold 15). Drivers by points: if/else 18, loops 2, boolean chains 1 (nesting depth added 4). Of this number, 19 points are the body\u0027s own statements and 2 belong to one function literal inside it that branches. To reduce it, split the body: most of this score is breadth rather than depth \u2014 checks laid out side by side rather than stacked \u2014 so group the statements between the checks into named steps and move each step into its own function. Some of it IS depth: where a check sits inside another whose only job is to reach it, merge the two into one condition."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/procedures_table.go"},"region":{"startLine":204}}}],"partialFingerprints":{"codehealthFindingId/v1":"39dfad08bfe02639a5bfaba519edc85f7a908eee38bef13a0afe9812a26fe95f"}},{"ruleId":"D2","level":"warning","message":{"text":"logManager.findLogFileForPosition (cognitive 21): logManager.findLogFileForPosition has cognitive complexity 21 (threshold 15). Drivers by points: if/else 20, loops 1 (nesting depth added 10). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/binlogreplication/binlog_primary_log_manager.go"},"region":{"startLine":235}}}],"partialFingerprints":{"codehealthFindingId/v1":"741a91e1d74a88b519ffc97fd68e76c44fc1e6b62be4938749617e031d808da0"}},{"ruleId":"D2","level":"warning","message":{"text":"integerSerializer.deserialize (cognitive 21): integerSerializer.deserialize has cognitive complexity 21 (threshold 15). Drivers by points: if/else 20, match/switch 1 (nesting depth added 10). The drivers above price the dispatch low by construction \u2014 a dispatch is charged once however many cases it lists, while each branch inside an arm is charged in full \u2014 so most of this count is what the case bodies hold, and the arms are where it can be reduced. To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Keep every case explicit, and make the behaviour for cases you do not list a deliberate choice rather than an accident."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/binlogreplication/binlog_type_serialization.go"},"region":{"startLine":155}}}],"partialFingerprints":{"codehealthFindingId/v1":"78f1363573079be00ac9bf7cd80c47e7a4d6fc1dc15ae9fbec4663f3d643ee11"}},{"ruleId":"D2","level":"warning","message":{"text":"Database.getTable (cognitive 21): Database.getTable has cognitive complexity 21 (threshold 15). Drivers by points: if/else 21 (nesting depth added 6). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/database.go"},"region":{"startLine":1497}}}],"partialFingerprints":{"codehealthFindingId/v1":"d1fd9a0a4b7d00d05b77a55d6c17a7d36efa0e5c9f7aa4d2937232cf1d159f41"}},{"ruleId":"D2","level":"warning","message":{"text":"dsess.doltCommit (cognitive 21): dsess.doltCommit has cognitive complexity 21 (threshold 15). Drivers by points: if/else 20, boolean chains 1 (nesting depth added 8). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dsess/transactions.go"},"region":{"startLine":194}}}],"partialFingerprints":{"codehealthFindingId/v1":"d6a5bfc15f921d808551d60ec6ef92bf9d1d220f6f40d25db5da93c9e0494d98"}},{"ruleId":"D2","level":"warning","message":{"text":"dtablefunctions.getDataSqlPatchResults (cognitive 21): dtablefunctions.getDataSqlPatchResults has cognitive complexity 21 (threshold 15). Drivers by points: if/else 20, loops 1 (nesting depth added 10). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dtablefunctions/dolt_patch.go"},"region":{"startLine":575}}}],"partialFingerprints":{"codehealthFindingId/v1":"d34f4d5b8e03fbd5cb0346fb8c3e1dc42c5ac39dc06c696a1099e17c0f8dc530"}},{"ruleId":"D2","level":"warning","message":{"text":"DiffTableFunction.cacheTableDelta (cognitive 21): DiffTableFunction.cacheTableDelta has cognitive complexity 21 (threshold 15). Drivers by points: if/else 19, boolean chains 2 (nesting depth added 9). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dtablefunctions/dolt_diff.go"},"region":{"startLine":886}}}],"partialFingerprints":{"codehealthFindingId/v1":"5e3c2fa14776a3779c28e88702a8c33f447baa2a270e79eb9fe96b97444a5b9a"}},{"ruleId":"D2","level":"warning","message":{"text":"DiffStatTableFunction.RowIter (cognitive 21): DiffStatTableFunction.RowIter has cognitive complexity 21 (threshold 15). Drivers by points: if/else 20, loops 1 (nesting depth added 8). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dtablefunctions/dolt_diff_stat.go"},"region":{"startLine":272}}}],"partialFingerprints":{"codehealthFindingId/v1":"8decafa0cde0bd066263d0e0e6541bd42db08ed4c4ee468bb92fdf8e981480f8"}},{"ruleId":"D2","level":"warning","message":{"text":"PatchTableFunction.PartitionRows (cognitive 21): PatchTableFunction.PartitionRows has cognitive complexity 21 (threshold 15). Drivers by points: if/else 17, boolean chains 4 (nesting depth added 7). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dtablefunctions/dolt_patch.go"},"region":{"startLine":122}}}],"partialFingerprints":{"codehealthFindingId/v1":"306793b1996e4d14f81abd340a49149481b4bd3424957f793bd014ffb1e9c878"}},{"ruleId":"D2","level":"warning","message":{"text":"doltColDiffCommitHistoryRowItr.Next (cognitive 21): doltColDiffCommitHistoryRowItr.Next has cognitive complexity 21 (threshold 15). Drivers by points: if/else 17, loops 4 (nesting depth added 12). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dtables/column_diff_table.go"},"region":{"startLine":335}}}],"partialFingerprints":{"codehealthFindingId/v1":"32d6ae616fa4420fe15946cf171d97d3aca2b8d16b967aae06be8274779fabb8"}},{"ruleId":"D2","level":"warning","message":{"text":"enginetest.RunSystemTableIndexesTests (cognitive 21): enginetest.RunSystemTableIndexesTests has cognitive complexity 21 (threshold 15). Drivers by points: if/else 12, loops 8, boolean chains 1 (nesting depth added 13). Most of this is not in the body itself: 5 of the 21 points are its own statements and the rest belongs to one function literal inside it that branches (line 1679). The decisions are inside the literal, which nothing outside this body can call, review or test on its own, so splitting the enclosing body is not the move available here. To reduce it, lift the literal\u0027s work into a named function or method at the enclosing scope and have the literal call it, then reduce whichever part then reads as the largest."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/enginetest/dolt_engine_tests.go"},"region":{"startLine":1663}}}],"partialFingerprints":{"codehealthFindingId/v1":"fe4ab01a30cb643ca99ec6567fb35921185567c688082ece41fff76e10a30ff6"}},{"ruleId":"D2","level":"warning","message":{"text":"StatsController.trySwapStats (cognitive 21): StatsController.trySwapStats has cognitive complexity 21 (threshold 15). Drivers by points: if/else 21 (nesting depth added 11). Of this number, 13 points are the body\u0027s own statements and 8 belong to 3 function literals inside it that branch. To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/statspro/worker.go"},"region":{"startLine":134}}}],"partialFingerprints":{"codehealthFindingId/v1":"e7b31aebc5fc265f314f1724e5130c9ea7b7d697d12020001643cbf2950631d5"}},{"ruleId":"D2","level":"warning","message":{"text":"AlterableDoltTable.dropIndex (cognitive 21): AlterableDoltTable.dropIndex has cognitive complexity 21 (threshold 15). Drivers by points: if/else 18, loops 3 (nesting depth added 5). To reduce it, split the body: most of this score is breadth rather than depth \u2014 checks laid out side by side rather than stacked \u2014 so group the statements between the checks into named steps and move each step into its own function. Some of it IS depth: where a check sits inside another whose only job is to reach it, merge the two into one condition, and where an else follows a branch that already returns, drop the trailing else and let the rest of the body continue at one level."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/tables.go"},"region":{"startLine":2997}}}],"partialFingerprints":{"codehealthFindingId/v1":"0a9201d941a68481d7656e6809b0ed38e04b0843d94120a20c5ac1ff7dbe52cd"}},{"ruleId":"D2","level":"warning","message":{"text":"blobstore.sliceChunkParts (cognitive 21): blobstore.sliceChunkParts has cognitive complexity 21 (threshold 15). Drivers by points: if/else 18, loops 2, boolean chains 1 (nesting depth added 7). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/blobstore/git_blobstore.go"},"region":{"startLine":1731}}}],"partialFingerprints":{"codehealthFindingId/v1":"f53ca5073cf040b55446daa5697ed32191b8137f625a4d2f502202691fefce62"}},{"ruleId":"D2","level":"warning","message":{"text":"main.runCat (cognitive 21): main.runCat has cognitive complexity 21 (threshold 15). Drivers by points: if/else 20, loops 1 (nesting depth added 9). Of this number, 18 points are the body\u0027s own statements and 3 belong to one function literal inside it that branches. To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/cmd/noms/noms_cat.go"},"region":{"startLine":101}}}],"partialFingerprints":{"codehealthFindingId/v1":"0cc8fcdad69bb86c5f44c4f1490e8d6819b1cf21ae9031f6345071e114f77990"}},{"ruleId":"D2","level":"warning","message":{"text":"datas.findCommonAncestorUsingParentsList (cognitive 21): datas.findCommonAncestorUsingParentsList has cognitive complexity 21 (threshold 15). Drivers by points: if/else 19, boolean chains 1, loops 1 (nesting depth added 11). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/datas/commit.go"},"region":{"startLine":269}}}],"partialFingerprints":{"codehealthFindingId/v1":"d8a36335131961d9cd2c509e081adc8122b5aefd513320f6eb3cba2fe5bbc369"}},{"ruleId":"D2","level":"warning","message":{"text":"database.CommitWithWorkingSet (cognitive 21): database.CommitWithWorkingSet has cognitive complexity 21 (threshold 15). Drivers by points: if/else 20, boolean chains 1 (nesting depth added 3). Of this number, 15 points are the body\u0027s own statements and 6 belong to one function literal inside it that branches. To reduce it, split the body: most of this score is breadth rather than depth \u2014 checks laid out side by side rather than stacked \u2014 so group the statements between the checks into named steps and move each step into its own function. Some of it IS depth: where a check sits inside another whose only job is to reach it, merge the two into one condition."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/datas/database_common.go"},"region":{"startLine":734}}}],"partialFingerprints":{"codehealthFindingId/v1":"b9644accd35129e9b14b2737dea7b9f0b7f18ae4eb6a8443affa75abfa02bf1f"}},{"ruleId":"D2","level":"warning","message":{"text":"tableSet.openForAdd (cognitive 21): tableSet.openForAdd has cognitive complexity 21 (threshold 15). Drivers by points: if/else 18, loops 3 (nesting depth added 9). Of this number, 18 points are the body\u0027s own statements and 3 belong to 2 function literals inside it that branch. To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/nbs/table_set.go"},"region":{"startLine":424}}}],"partialFingerprints":{"codehealthFindingId/v1":"dd57199208911c679e2d4059eae1efdbfdcffe20248961d33ddada94e2901ada"}},{"ruleId":"D2","level":"warning","message":{"text":"types.OutputVectorIndexNodeBytes (cognitive 21): types.OutputVectorIndexNodeBytes has cognitive complexity 21 (threshold 15). Drivers by points: if/else 15, loops 6 (nesting depth added 11). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/types/serial_message.go"},"region":{"startLine":510}}}],"partialFingerprints":{"codehealthFindingId/v1":"6c19b5b08b77f261f00e8e7d526d094d5190089b1cb3c15d5a070f0f186f731a"}},{"ruleId":"D2","level":"warning","message":{"text":"cli.BuildUserPasswordPrompt (cognitive 20): cli.BuildUserPasswordPrompt has cognitive complexity 20 (threshold 15). Drivers by points: if/else 16, boolean chains 4 (nesting depth added 5). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/cli/credentials.go"},"region":{"startLine":36}}}],"partialFingerprints":{"codehealthFindingId/v1":"c1e2cb4dcab093d78a613e424dba1ae944bcdb1840e274e8247afdf4285c99eb"}},{"ruleId":"D2","level":"warning","message":{"text":"commands.updateUpstream (cognitive 20): commands.updateUpstream has cognitive complexity 20 (threshold 15). Drivers by points: if/else 19, boolean chains 1 (nesting depth added 6). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/branch.go"},"region":{"startLine":462}}}],"partialFingerprints":{"codehealthFindingId/v1":"87d479592ff380de547141438c24e935ae66be8fa0aca63e38373f5506b7c5fd"}},{"ruleId":"D2","level":"warning","message":{"text":"commands.getTableNamesAtRef (cognitive 20): commands.getTableNamesAtRef has cognitive complexity 20 (threshold 15). Drivers by points: if/else 18, loops 2 (nesting depth added 8). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/diff.go"},"region":{"startLine":505}}}],"partialFingerprints":{"codehealthFindingId/v1":"bb1b0ee30e709e7a617ef717c68f8e529033930c09c4d3da1f9da6111786a8c8"}},{"ruleId":"D2","level":"warning","message":{"text":"commands.schemaFromCreateTableStmt (cognitive 20): commands.schemaFromCreateTableStmt has cognitive complexity 20 (threshold 15). Drivers by points: if/else 15, loops 5 (nesting depth added 8). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/diff.go"},"region":{"startLine":1095}}}],"partialFingerprints":{"codehealthFindingId/v1":"ffe24daa8f1a9e3cf2da751b56e400d4ee587e518ee88af15c5ee103f42dc8b4"}},{"ruleId":"D2","level":"warning","message":{"text":"commands.logCompact (cognitive 20): commands.logCompact has cognitive complexity 20 (threshold 15). Drivers by points: if/else 15, loops 4, boolean chains 1 (nesting depth added 11). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/log.go"},"region":{"startLine":333}}}],"partialFingerprints":{"codehealthFindingId/v1":"67626bc17e77e80704f1f43d11d3c7aedf002417bbb5ba0c942ce55cc8dd91ff"}},{"ruleId":"D2","level":"warning","message":{"text":"commands.printMergeStats (cognitive 20): commands.printMergeStats has cognitive complexity 20 (threshold 15). Drivers by points: if/else 18, boolean chains 2 (nesting depth added 6). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/merge.go"},"region":{"startLine":347}}}],"partialFingerprints":{"codehealthFindingId/v1":"71b28dfee830afd3125feb96912fa245aa665ab07a4963833f4d3b68a6ef3234"}},{"ruleId":"D2","level":"warning","message":{"text":"commands.calculateMergeConflicts (cognitive 20): commands.calculateMergeConflicts has cognitive complexity 20 (threshold 15). Drivers by points: if/else 16, loops 3, boolean chains 1 (nesting depth added 5). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/merge.go"},"region":{"startLine":422}}}],"partialFingerprints":{"codehealthFindingId/v1":"a91420efadc6aac782053f8f7a07a1be289bf52de8322a29201188d155d78261"}},{"ruleId":"D2","level":"warning","message":{"text":"commands.getRemoteHashForPull (cognitive 20): commands.getRemoteHashForPull has cognitive complexity 20 (threshold 15). Drivers by points: if/else 17, loops 2, boolean chains 1 (nesting depth added 8). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/pull.go"},"region":{"startLine":351}}}],"partialFingerprints":{"codehealthFindingId/v1":"8bd60a3c3e6d2cf8b6412911cbd642930c68e52305906700b206e0b5a4eed5d2"}},{"ruleId":"D2","level":"warning","message":{"text":"InitCmd.Exec (cognitive 20): InitCmd.Exec has cognitive complexity 20 (threshold 15). Drivers by points: if/else 19, boolean chains 1 (nesting depth added 3). To reduce it, split the body: most of this score is breadth rather than depth \u2014 checks laid out side by side rather than stacked \u2014 so group the statements between the checks into named steps and move each step into its own function. Some of it IS depth: where a check sits inside another whose only job is to reach it, merge the two into one condition."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/init.go"},"region":{"startLine":87}}}],"partialFingerprints":{"codehealthFindingId/v1":"7f2cb97303dd32ee0a838b0790e0141649a525c1052290a942318b51075c05ae"}},{"ruleId":"D2","level":"warning","message":{"text":"StreamScanner.isDelimiterExpr (cognitive 20): StreamScanner.isDelimiterExpr has cognitive complexity 20 (threshold 15). Drivers by points: if/else 15, boolean chains 3, loops 2 (nesting depth added 9). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/sql_statement_scanner.go"},"region":{"startLine":223}}}],"partialFingerprints":{"codehealthFindingId/v1":"9a30b0fa25d6bb3230123fc9f59f604a9d8206a4c9019d1006cf6fc1ad14535f"}},{"ruleId":"D2","level":"warning","message":{"text":"sqlserver.validateAndPrepareMCP (cognitive 20): sqlserver.validateAndPrepareMCP has cognitive complexity 20 (threshold 15). Drivers by points: if/else 14, boolean chains 6 (nesting depth added 4). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/sqlserver/mcp_validate.go"},"region":{"startLine":30}}}],"partialFingerprints":{"codehealthFindingId/v1":"c9760bd98578def5d0be6ab34fb6e52667b12fe2e455d6c7246d089e213aca04"}},{"ruleId":"D2","level":"warning","message":{"text":"sql_server_driver.multiCopyWithNamePrefix (cognitive 20): sql_server_driver.multiCopyWithNamePrefix has cognitive complexity 20 (threshold 15). Drivers by points: if/else 18, boolean chains 1, loops 1 (nesting depth added 10). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/dtestutils/sql_server_driver/cmd.go"},"region":{"startLine":350}}}],"partialFingerprints":{"codehealthFindingId/v1":"d78e2618117190249d9b38e3c4375a7bd2ad7be325bb6d8cab7aa3c1a26697c3"}},{"ruleId":"D2","level":"warning","message":{"text":"actions.mergeForeignKeyChanges (cognitive 20): actions.mergeForeignKeyChanges has cognitive complexity 20 (threshold 15). Drivers by points: if/else 19, loops 1 (nesting depth added 3). Most of this is not in the body itself: 4 of the 20 points are its own statements and the rest belongs to 2 function literals inside it that branch (lines 484, 450). The decisions are inside those literals, which nothing outside this body can call, review or test on its own, so splitting the enclosing body is not the move available here. To reduce it, lift the literals\u0027 work into a named function or method at the enclosing scope and have each literal call it, then reduce whichever part then reads as the largest."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/env/actions/checkout.go"},"region":{"startLine":437}}}],"partialFingerprints":{"codehealthFindingId/v1":"4436a40fff0f4ae06934d4617b0469cafd6578b111f8805661c3da8d8bac892d"}},{"ruleId":"D2","level":"warning","message":{"text":"actions.clonePrint (cognitive 20): actions.clonePrint has cognitive complexity 20 (threshold 15). Drivers by points: loops 18, match/switch 2 (nesting depth added 12). To reduce it, break up the iteration: give each loop body a named function, and split a multi-phase loop into one function per phase so no single body carries the whole pipeline."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/env/actions/clone.go"},"region":{"startLine":107}}}],"partialFingerprints":{"codehealthFindingId/v1":"63dcb3137de40c8657902d4ddd2b1c93617eb9b338766c1a35573306c539d48c"}},{"ruleId":"D2","level":"warning","message":{"text":"env.CanCreateDatabaseAtPath (cognitive 20): env.CanCreateDatabaseAtPath has cognitive complexity 20 (threshold 15). Drivers by points: if/else 17, boolean chains 3 (nesting depth added 4). Of this number, 10 points are the body\u0027s own statements and 10 belong to one function literal inside it that branches. To reduce it, split the body: most of this score is breadth rather than depth \u2014 checks laid out side by side rather than stacked \u2014 so group the statements between the checks into named steps and move each step into its own function. Some of it IS depth: where a check sits inside another whose only job is to reach it, merge the two into one condition, and where an else follows a branch that already returns, drop the trailing else and let the rest of the body continue at one level."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/env/environment.go"},"region":{"startLine":544}}}],"partialFingerprints":{"codehealthFindingId/v1":"f96dc2022ff214b329b3f33b1300af924eae85cdb2af6905f0bfbcab36e5d41c"}},{"ruleId":"D2","level":"warning","message":{"text":"ref.ParseRefSpecForRemote (cognitive 20): ref.ParseRefSpecForRemote has cognitive complexity 20 (threshold 15). Drivers by points: if/else 17, boolean chains 3 (nesting depth added 5). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/ref/ref_spec.go"},"region":{"startLine":61}}}],"partialFingerprints":{"codehealthFindingId/v1":"6cfd1baf330e920108fbaa205878edb9f5d8af5017aaf5b7a13ba5f37a49c108"}},{"ruleId":"D2","level":"warning","message":{"text":"remotestorage.fetcherHashSetToReqsThread (cognitive 20): remotestorage.fetcherHashSetToReqsThread has cognitive complexity 20 (threshold 15). Drivers by points: if/else 13, loops 4, match/switch 2, boolean chains 1 (nesting depth added 11). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/remotestorage/chunk_fetcher.go"},"region":{"startLine":218}}}],"partialFingerprints":{"codehealthFindingId/v1":"2a2f6ed8d3367fd8aa6e007d907888eacbb85aa8664c7a6a97310990839ae077"}},{"ruleId":"D2","level":"warning","message":{"text":"revert.applySingleRevert (cognitive 20): revert.applySingleRevert has cognitive complexity 20 (threshold 15). Drivers by points: if/else 20 (nesting depth added 5). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/revert/revert.go"},"region":{"startLine":440}}}],"partialFingerprints":{"codehealthFindingId/v1":"600638d51dceeb1744c312df05cf42b312c2516cf6efd5acfd57fec6961703a6"}},{"ruleId":"D2","level":"warning","message":{"text":"encoding.serializeSecondaryIndexes (cognitive 20): encoding.serializeSecondaryIndexes has cognitive complexity 20 (threshold 15). Drivers by points: if/else 12, loops 8 (nesting depth added 9). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/schema/encoding/serialization.go"},"region":{"startLine":414}}}],"partialFingerprints":{"codehealthFindingId/v1":"61c388632405e677ee223ae1b05f9e2c5acbcff15ad088945f613d51ccecde06"}},{"ruleId":"D2","level":"warning","message":{"text":"YAMLConfig.withDefaultsFilledIn (cognitive 20): YAMLConfig.withDefaultsFilledIn has cognitive complexity 20 (threshold 15). Drivers by points: if/else 20. To reduce it, split the body: this score is breadth rather than depth \u2014 many checks laid out side by side rather than nested inside one another, so inverting conditions into early returns has nothing left to flatten. Group the statements between the checks into named steps and move each step into its own function, so the body reads as a short sequence of named stages."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/servercfg/yaml_config.go"},"region":{"startLine":515}}}],"partialFingerprints":{"codehealthFindingId/v1":"e685518ed0c4bed27c490ab28377abdd58ad081c6fe0a9642b5cad4ec1c2113f"}},{"ruleId":"D2","level":"warning","message":{"text":"binlogreplication.encodeJsonObject (cognitive 20): binlogreplication.encodeJsonObject has cognitive complexity 20 (threshold 15). Drivers by points: if/else 15, loops 3, boolean chains 2 (nesting depth added 7). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/binlogreplication/binlog_json_serialization.go"},"region":{"startLine":149}}}],"partialFingerprints":{"codehealthFindingId/v1":"a3a9d2d0f6c021aa1d4dad0d42901890bd51cdfb65bc512e82e166232764f5e4"}},{"ruleId":"D2","level":"warning","message":{"text":"Database.tableInsensitive (cognitive 20): Database.tableInsensitive has cognitive complexity 20 (threshold 15). Drivers by points: if/else 18, loops 2 (nesting depth added 7). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/database.go"},"region":{"startLine":1583}}}],"partialFingerprints":{"codehealthFindingId/v1":"fd5d27c8a9d9a529da48cc3154a10671dda5df62280067eb363b57a08dcadca4"}},{"ruleId":"D2","level":"warning","message":{"text":"Database.getAllTableNames (cognitive 20): Database.getAllTableNames has cognitive complexity 20 (threshold 15). Drivers by points: if/else 15, loops 4, boolean chains 1 (nesting depth added 8). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/database.go"},"region":{"startLine":1713}}}],"partialFingerprints":{"codehealthFindingId/v1":"14f258237d0c67fbd40da8205047b821841501064b6a5852ff94ed2a94959359"}},{"ruleId":"D2","level":"warning","message":{"text":"DoltDatabaseProvider.Close (cognitive 20): DoltDatabaseProvider.Close has cognitive complexity 20 (threshold 15). Drivers by points: if/else 13, loops 7 (nesting depth added 11). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/database_provider.go"},"region":{"startLine":309}}}],"partialFingerprints":{"codehealthFindingId/v1":"f67532e6ba6aa44a2b84e181a9c95cfb2be18ceb6e3e061a39238b39acd44430"}},{"ruleId":"D2","level":"warning","message":{"text":"DoltDatabaseProvider.DropDatabase (cognitive 20): DoltDatabaseProvider.DropDatabase has cognitive complexity 20 (threshold 15). Drivers by points: if/else 15, loops 5 (nesting depth added 4). Of this number, 13 points are the body\u0027s own statements and 7 belong to one function literal inside it that branches. To reduce it, split the body: most of this score is breadth rather than depth \u2014 checks laid out side by side rather than stacked \u2014 so group the statements between the checks into named steps and move each step into its own function. Some of it IS depth: where a check sits inside another whose only job is to reach it, merge the two into one condition."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/database_provider.go"},"region":{"startLine":1087}}}],"partialFingerprints":{"codehealthFindingId/v1":"5c3c79c1eb469cf95f06a02bf44a0da88ef84a4187722fcf14f38377e01caadb"}},{"ruleId":"D2","level":"warning","message":{"text":"HashOfDatabase.Eval (cognitive 20): HashOfDatabase.Eval has cognitive complexity 20 (threshold 15). Drivers by points: if/else 14, loops 3, boolean chains 2, match/switch 1 (nesting depth added 7). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dfunctions/hashof_database.go"},"region":{"startLine":52}}}],"partialFingerprints":{"codehealthFindingId/v1":"2668149f3ca73059440a2cc65c71c2dff5f4e3c0f56ccf6f564e90c31b2b73e9"}},{"ruleId":"D2","level":"warning","message":{"text":"dprocedures.doltBackupRestore (cognitive 20): dprocedures.doltBackupRestore has cognitive complexity 20 (threshold 15). Drivers by points: if/else 16, boolean chains 4 (nesting depth added 3). To reduce it, split the body: most of this score is breadth rather than depth \u2014 checks laid out side by side rather than stacked \u2014 so group the statements between the checks into named steps and move each step into its own function. Some of it IS depth: where a check sits inside another whose only job is to reach it, merge the two into one condition."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dprocedures/dolt_backup.go"},"region":{"startLine":205}}}],"partialFingerprints":{"codehealthFindingId/v1":"0418cd6229045080376dbdc0f6007c9a9a6ed5a2aac29eedde24728ea3dfc637"}},{"ruleId":"D2","level":"warning","message":{"text":"dprocedures.doDoltTag (cognitive 20): dprocedures.doDoltTag has cognitive complexity 20 (threshold 15). Drivers by points: if/else 19, boolean chains 1 (nesting depth added 4). To reduce it, split the body: most of this score is breadth rather than depth \u2014 checks laid out side by side rather than stacked \u2014 so group the statements between the checks into named steps and move each step into its own function. Some of it IS depth: where a check sits inside another whose only job is to reach it, merge the two into one condition, and where an else follows a branch that already returns, drop the trailing else and let the rest of the body continue at one level."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dprocedures/dolt_tag.go"},"region":{"startLine":38}}}],"partialFingerprints":{"codehealthFindingId/v1":"04b3b0d7bc1c0f70ad3fa79b907db4a373b0f0b5f439f82251ebb2a2c1fd3653"}},{"ruleId":"D2","level":"warning","message":{"text":"dtablefunctions.resolveCommitStrings (cognitive 20): dtablefunctions.resolveCommitStrings has cognitive complexity 20 (threshold 15). Drivers by points: if/else 20 (nesting depth added 10). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dtablefunctions/dolt_diff.go"},"region":{"startLine":407}}}],"partialFingerprints":{"codehealthFindingId/v1":"647c7de179c36ac6a4ab01a1044987934186f7daee66f5b10e28b1f6c9f056ad"}},{"ruleId":"D2","level":"warning","message":{"text":"LogTableFunctionArgs.addOptions (cognitive 20): LogTableFunctionArgs.addOptions has cognitive complexity 20 (threshold 15). Drivers by points: if/else 17, loops 3 (nesting depth added 5). To reduce it, split the body: most of this score is breadth rather than depth \u2014 checks laid out side by side rather than stacked \u2014 so group the statements between the checks into named steps and move each step into its own function. Some of it IS depth: where a check sits inside another whose only job is to reach it, merge the two into one condition, and where an else follows a branch that already returns, drop the trailing else and let the rest of the body continue at one level."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dtablefunctions/dolt_log.go"},"region":{"startLine":103}}}],"partialFingerprints":{"codehealthFindingId/v1":"91be4a0f34421e81603008fabf39d46acf501ca57cbc243d1fdfe4d08bc0db72"}},{"ruleId":"D2","level":"warning","message":{"text":"dtables.generateProcedureHelpRows (cognitive 20): dtables.generateProcedureHelpRows has cognitive complexity 20 (threshold 15). Drivers by points: if/else 12, loops 6, boolean chains 2 (nesting depth added 8). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dtables/help_table.go"},"region":{"startLine":157}}}],"partialFingerprints":{"codehealthFindingId/v1":"e45eb9f765665f48866deaf2ab73a7c59eda44ea5d0ed03fa5b8b47cf03b77fe"}},{"ruleId":"D2","level":"warning","message":{"text":"BranchNamespaceControlTable.Update (cognitive 20): BranchNamespaceControlTable.Update has cognitive complexity 20 (threshold 15). Drivers by points: if/else 18, boolean chains 2 (nesting depth added 8). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dtables/branch_namespace_control.go"},"region":{"startLine":200}}}],"partialFingerprints":{"codehealthFindingId/v1":"ba44d70f905c92e7c06951a0b54873676ab5dbb143568d0c48d1c58bc4a2b150"}},{"ruleId":"D2","level":"warning","message":{"text":"enginetest.testMultiSessionScriptTests (cognitive 20): enginetest.testMultiSessionScriptTests has cognitive complexity 20 (threshold 15). Drivers by points: if/else 15, loops 5 (nesting depth added 8). Most of this is not in the body itself: 1 of the 20 points is its own statement and the rest belongs to one function literal inside it that branches (line 633). The decisions are inside the literal, which nothing outside this body can call, review or test on its own, so splitting the enclosing body is not the move available here. To reduce it, lift the literal\u0027s work into a named function or method at the enclosing scope and have the literal call it, then reduce whichever part then reads as the largest."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/enginetest/dolt_server_tests.go"},"region":{"startLine":631}}}],"partialFingerprints":{"codehealthFindingId/v1":"d63107b96eda2df85e603197ee5929bd8aaebc078cfe018dbc648a641bcf806e"}},{"ruleId":"D2","level":"warning","message":{"text":"kvexec.newRowJoiner (cognitive 20): kvexec.newRowJoiner has cognitive complexity 20 (threshold 15). Drivers by points: if/else 16, boolean chains 2, loops 2 (nesting depth added 8). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/kvexec/builder.go"},"region":{"startLine":188}}}],"partialFingerprints":{"codehealthFindingId/v1":"b6b5501e6ebe1090ab503ab03e3cfed0347d6dd36f6a7e107e025010cc86f6c8"}},{"ruleId":"D2","level":"warning","message":{"text":"mergeJoinKvIter.buildResultRow (cognitive 20): mergeJoinKvIter.buildResultRow has cognitive complexity 20 (threshold 15). Drivers by points: if/else 16, boolean chains 3, loops 1 (nesting depth added 6). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/kvexec/merge_join.go"},"region":{"startLine":301}}}],"partialFingerprints":{"codehealthFindingId/v1":"172f0acaa3837da8e27246ff31adaed650fde53977f03bcdbb23352ca283d28c"}},{"ruleId":"D2","level":"warning","message":{"text":"MultiJWKS.thread (cognitive 20): MultiJWKS.thread has cognitive complexity 20 (threshold 15). Drivers by points: if/else 10, match/switch 6, loops 4 (nesting depth added 12). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/utils/jwtauth/jwks.go"},"region":{"startLine":245}}}],"partialFingerprints":{"codehealthFindingId/v1":"7b51be2e32c26982b72d0668fff29e03f115e6c0ced65f46e82d48b28865f2e4"}},{"ruleId":"D2","level":"warning","message":{"text":"GitBlobstore.validateAndSizeChunkedParts (cognitive 20): GitBlobstore.validateAndSizeChunkedParts has cognitive complexity 20 (threshold 15). Drivers by points: if/else 18, loops 2 (nesting depth added 7). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/blobstore/git_blobstore.go"},"region":{"startLine":1101}}}],"partialFingerprints":{"codehealthFindingId/v1":"e830b97237f32193666555a9721514e293c07081029dd0cbf8f01749d9ac5e99"}},{"ruleId":"D2","level":"warning","message":{"text":"ArchiveStreamWriter.writeCompressedChunk (cognitive 20): ArchiveStreamWriter.writeCompressedChunk has cognitive complexity 20 (threshold 15). Drivers by points: if/else 16, loops 4 (nesting depth added 10). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/nbs/archive_writer.go"},"region":{"startLine":671}}}],"partialFingerprints":{"codehealthFindingId/v1":"70548ea7d5665f62b3e7f43577584ed36395e57f1e0b6e85af149fe0f12a6a08"}},{"ruleId":"D2","level":"warning","message":{"text":"main.main (cognitive 20): main.main has cognitive complexity 20 (threshold 15). Drivers by points: if/else 14, loops 5, boolean chains 1 (nesting depth added 6). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/nbs/benchmarks/main.go"},"region":{"startLine":79}}}],"partialFingerprints":{"codehealthFindingId/v1":"67b80933b36da40c37480060670803e060b3b7daf04f97ca27ef056b682e962c"}},{"ruleId":"D2","level":"warning","message":{"text":"ArtifactsEditor.ReplaceConstraintViolation (cognitive 20): ArtifactsEditor.ReplaceConstraintViolation has cognitive complexity 20 (threshold 15). Drivers by points: if/else 19, loops 1 (nesting depth added 8). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/prolly/artifact_map.go"},"region":{"startLine":396}}}],"partialFingerprints":{"codehealthFindingId/v1":"9d6737aa1de199c62e19608cfc00d0d874da8acb8a207cc7c600b1bd22bb0db8"}},{"ruleId":"D2","level":"warning","message":{"text":"tree.ApplyPatches (cognitive 20): tree.ApplyPatches has cognitive complexity 20 (threshold 15). Drivers by points: if/else 19, loops 1 (nesting depth added 6). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/prolly/tree/tree_patcher.go"},"region":{"startLine":26}}}],"partialFingerprints":{"codehealthFindingId/v1":"0a64f9f3985b9711258ac8767bc93ea310a368091fbf7bcbfe264f370f2012cf"}},{"ruleId":"D2","level":"warning","message":{"text":"sqlDBActiveBranchResolver.Resolve (cognitive 19): sqlDBActiveBranchResolver.Resolve has cognitive complexity 19 (threshold 15). Drivers by points: if/else 15, boolean chains 2, loops 2 (nesting depth added 7). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/cli/prompt/resolver.go"},"region":{"startLine":75}}}],"partialFingerprints":{"codehealthFindingId/v1":"b3cc43bdba464ddadb967453acb07e2ad2586611f76ece2c5b91c4d834070a54"}},{"ruleId":"D2","level":"warning","message":{"text":"commands.getModifiedCols (cognitive 19): commands.getModifiedCols has cognitive complexity 19 (threshold 15). Drivers by points: if/else 12, loops 5, boolean chains 2 (nesting depth added 9). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/diff.go"},"region":{"startLine":1949}}}],"partialFingerprints":{"codehealthFindingId/v1":"c1c9d7ae1eb7ec51278e014a1b4da76e517767a48b245b71c859417ca0ab0002"}},{"ruleId":"D2","level":"warning","message":{"text":"engine.InitClientCommitIdentSession (cognitive 19): engine.InitClientCommitIdentSession has cognitive complexity 19 (threshold 15). Drivers by points: if/else 16, loops 3 (nesting depth added 6). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/engine/sqlengine.go"},"region":{"startLine":650}}}],"partialFingerprints":{"codehealthFindingId/v1":"ac656196c45f47e85507f8711173862a4e69bc1a0e06a2df7c014322754e8dc2"}},{"ruleId":"D2","level":"warning","message":{"text":"sqlserver.StartServer (cognitive 19): sqlserver.StartServer has cognitive complexity 19 (threshold 15). Drivers by points: if/else 15, boolean chains 4. To reduce it, split the body: this score is breadth rather than depth \u2014 many checks laid out side by side rather than nested inside one another, so inverting conditions into early returns has nothing left to flatten. Group the statements between the checks into named steps and move each step into its own function, so the body reads as a short sequence of named stages."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/sqlserver/sqlserver.go"},"region":{"startLine":285}}}],"partialFingerprints":{"codehealthFindingId/v1":"e48885c12f29f6d2cf8b8d669eabc73ed6310b62904d14d75a36487c5c95f430"}},{"ruleId":"D2","level":"warning","message":{"text":"VersionCmd.ExecWithArgParser (cognitive 19): VersionCmd.ExecWithArgParser has cognitive complexity 19 (threshold 15). Drivers by points: if/else 17, boolean chains 2 (nesting depth added 5). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/version.go"},"region":{"startLine":97}}}],"partialFingerprints":{"codehealthFindingId/v1":"c24732de1b4c68ebdf8de8a59c7a7c524761c692d72f9e9763d12990b3c9e930"}},{"ruleId":"D2","level":"warning","message":{"text":"Namespace.Deserialize (cognitive 19): Namespace.Deserialize has cognitive complexity 19 (threshold 15). Drivers by points: if/else 13, loops 5, boolean chains 1 (nesting depth added 5). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/branch_control/namespace.go"},"region":{"startLine":209}}}],"partialFingerprints":{"codehealthFindingId/v1":"bbadef32c128fd5f006bfd1e52df82297bafa7461ba2b2c8deda8f1e5a80d982"}},{"ruleId":"D2","level":"warning","message":{"text":"cherry_pick.ContinueCherryPick (cognitive 19): cherry_pick.ContinueCherryPick has cognitive complexity 19 (threshold 15). Drivers by points: if/else 18, boolean chains 1 (nesting depth added 1). To reduce it, split the body: this score is breadth rather than depth \u2014 many checks laid out side by side rather than nested inside one another, so inverting conditions into early returns has nothing left to flatten. Group the statements between the checks into named steps and move each step into its own function, so the body reads as a short sequence of named stages."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/cherry_pick/cherry_pick.go"},"region":{"startLine":269}}}],"partialFingerprints":{"codehealthFindingId/v1":"6a1d7cca5ee531d01795b45c98dc7b0f0c56b0d45b46d2c00996e48d2234852d"}},{"ruleId":"D2","level":"warning","message":{"text":"ForeignKeyCollection.GetByTags (cognitive 19): ForeignKeyCollection.GetByTags has cognitive complexity 19 (threshold 15). Drivers by points: if/else 11, loops 5, jumps 2, boolean chains 1 (nesting depth added 8). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/doltdb/foreign_key_coll.go"},"region":{"startLine":429}}}],"partialFingerprints":{"codehealthFindingId/v1":"1f5b58c6aaff6e9063a91f03d00293c02c65397f18f1cfe6464239ecf148b4ec"}},{"ruleId":"D2","level":"warning","message":{"text":"env.NewPullSpec (cognitive 19): env.NewPullSpec has cognitive complexity 19 (threshold 15). Drivers by points: if/else 18, loops 1 (nesting depth added 6). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/env/remotes.go"},"region":{"startLine":627}}}],"partialFingerprints":{"codehealthFindingId/v1":"8d17da047a760736ceb7fed410305122b6c10440b6f6083574e65f9ebaf0c66f"}},{"ruleId":"D2","level":"warning","message":{"text":"DoltEnv.FindRef (cognitive 19): DoltEnv.FindRef has cognitive complexity 19 (threshold 15). Drivers by points: if/else 19 (nesting depth added 10). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/env/environment.go"},"region":{"startLine":1224}}}],"partialFingerprints":{"codehealthFindingId/v1":"a22009ce0880a4b51145ac0c8de603b6254de7dd4652b99a7d7c0247501a93a7"}},{"ruleId":"D2","level":"warning","message":{"text":"merge.mergeProllySecondaryIndexes (cognitive 19): merge.mergeProllySecondaryIndexes has cognitive complexity 19 (threshold 15). Drivers by points: if/else 15, boolean chains 3, loops 1 (nesting depth added 5). Of this number, 12 points are the body\u0027s own statements and 7 belong to 2 function literals inside it that branch. To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/merge/merge_prolly_indexes.go"},"region":{"startLine":39}}}],"partialFingerprints":{"codehealthFindingId/v1":"5345ab5898b18b1db2264d7c64c254591e0174622b9500cf1ad1d703c930b6c0"}},{"ruleId":"D2","level":"warning","message":{"text":"merge.SchemaMerge (cognitive 19): merge.SchemaMerge has cognitive complexity 19 (threshold 15). Drivers by points: if/else 15, boolean chains 2, loops 2 (nesting depth added 1). To reduce it, split the body: this score is breadth rather than depth \u2014 many checks laid out side by side rather than nested inside one another, so inverting conditions into early returns has nothing left to flatten. Group the statements between the checks into named steps and move each step into its own function, so the body reads as a short sequence of named stages."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/merge/merge_schema.go"},"region":{"startLine":168}}}],"partialFingerprints":{"codehealthFindingId/v1":"fe1778e7cc3ad532ab7e3397c3fb1e16c1c349577cff23b53e8a8130f40ba1c4"}},{"ruleId":"D2","level":"warning","message":{"text":"merge.prollyChildSecDiffFkConstraintViolations (cognitive 19): merge.prollyChildSecDiffFkConstraintViolations has cognitive complexity 19 (threshold 15). Drivers by points: if/else 15, loops 2, boolean chains 1, match/switch 1 (nesting depth added 7). Most of this is not in the body itself: 5 of the 19 points are its own statements and the rest belongs to one function literal inside it that branches (line 342). The decisions are inside the literal, which nothing outside this body can call, review or test on its own, so splitting the enclosing body is not the move available here. To reduce it, lift the literal\u0027s work into a named function or method at the enclosing scope and have the literal call it, then reduce whichever part then reads as the largest."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/merge/violations_fk_prolly.go"},"region":{"startLine":316}}}],"partialFingerprints":{"codehealthFindingId/v1":"6febe55e3817a3fc1dc713027fa7bad07e5e1bd897910afd516f9551292aa56a"}},{"ruleId":"D2","level":"warning","message":{"text":"encoding.deserializeSecondaryIndexes (cognitive 19): encoding.deserializeSecondaryIndexes has cognitive complexity 19 (threshold 15). Drivers by points: if/else 13, loops 6 (nesting depth added 10). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/schema/encoding/serialization.go"},"region":{"startLine":493}}}],"partialFingerprints":{"codehealthFindingId/v1":"21852259771d6fa4f11bf9c77431d63e9a1f2d65617accac93049c4859a13e5d"}},{"ruleId":"D2","level":"warning","message":{"text":"YAMLConfig.withPlaceholdersFilledIn (cognitive 19): YAMLConfig.withPlaceholdersFilledIn has cognitive complexity 19 (threshold 15). Drivers by points: if/else 19. To reduce it, split the body: this score is breadth rather than depth \u2014 many checks laid out side by side rather than nested inside one another, so inverting conditions into early returns has nothing left to flatten. Group the statements between the checks into named steps and move each step into its own function, so the body reads as a short sequence of named stages."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/servercfg/yaml_config.go"},"region":{"startLine":398}}}],"partialFingerprints":{"codehealthFindingId/v1":"2117cc02a9dfc77ea21b8dfa1447149827a81c435428734cba5ea48809866e17"}},{"ruleId":"D2","level":"warning","message":{"text":"sqle.getOrCreateDoltSchemasTable (cognitive 19): sqle.getOrCreateDoltSchemasTable has cognitive complexity 19 (threshold 15). Drivers by points: if/else 18, boolean chains 1 (nesting depth added 4). To reduce it, split the body: most of this score is breadth rather than depth \u2014 checks laid out side by side rather than stacked \u2014 so group the statements between the checks into named steps and move each step into its own function. Some of it IS depth: where a check sits inside another whose only job is to reach it, merge the two into one condition, and where an else follows a branch that already returns, drop the trailing else and let the rest of the body continue at one level."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/schema_table.go"},"region":{"startLine":213}}}],"partialFingerprints":{"codehealthFindingId/v1":"37b6f620ef6620085910c7d31a21ac50663dc4e459f1f7bd0c0828af0c4d0632"}},{"ruleId":"D2","level":"warning","message":{"text":"sqle.ExecuteSqlOnEngine (cognitive 19): sqle.ExecuteSqlOnEngine has cognitive complexity 19 (threshold 15). Drivers by points: if/else 16, match/switch 2, loops 1 (nesting depth added 9). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/testutil.go"},"region":{"startLine":64}}}],"partialFingerprints":{"codehealthFindingId/v1":"e6f380b3f7d1550950a9930263e2d62087ad1227fced1d8fc30d31857f7fa944"}},{"ruleId":"D2","level":"warning","message":{"text":"binlogReplicaApplier.connectAndStartReplicationEventStream (cognitive 19): binlogReplicaApplier.connectAndStartReplicationEventStream has cognitive complexity 19 (threshold 15). Drivers by points: if/else 15, match/switch 3, loops 1 (nesting depth added 8). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/binlogreplication/binlog_replica_applier.go"},"region":{"startLine":147}}}],"partialFingerprints":{"codehealthFindingId/v1":"76d0bf17426668cf59308e6a72f9bb8761e668b355fa8e6c31afbf2028f44238"}},{"ruleId":"D2","level":"warning","message":{"text":"decimalSerializer.serialize (cognitive 19): decimalSerializer.serialize has cognitive complexity 19 (threshold 15). Drivers by points: if/else 16, loops 3 (nesting depth added 4). To reduce it, split the body: most of this score is breadth rather than depth \u2014 checks laid out side by side rather than stacked \u2014 so group the statements between the checks into named steps and move each step into its own function. Some of it IS depth: where a check sits inside another whose only job is to reach it, merge the two into one condition."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/binlogreplication/binlog_type_serialization.go"},"region":{"startLine":391}}}],"partialFingerprints":{"codehealthFindingId/v1":"8b86ed0e31707e03b667d18cca01b269484632c415a741f3d7f61d569efaca1b"}},{"ruleId":"D2","level":"warning","message":{"text":"commithook.Execute (cognitive 19): commithook.Execute has cognitive complexity 19 (threshold 15). Drivers by points: if/else 18, boolean chains 1 (nesting depth added 8). Of this number, 11 points are the body\u0027s own statements and 8 belong to one function literal inside it that branches. To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/cluster/commithook.go"},"region":{"startLine":502}}}],"partialFingerprints":{"codehealthFindingId/v1":"0a9c150341712609b28e5aa83a9a9c30af544889a18911de3c3ae4b40fb76d2e"}},{"ruleId":"D2","level":"warning","message":{"text":"serverinterceptor.handleRequestHeaders (cognitive 19): serverinterceptor.handleRequestHeaders has cognitive complexity 19 (threshold 15). Drivers by points: if/else 17, boolean chains 2 (nesting depth added 10). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/cluster/interceptors.go"},"region":{"startLine":269}}}],"partialFingerprints":{"codehealthFindingId/v1":"18aff18fde7b1aa2582e7848e8b4f0a47e0428fab8a76999c4425d90129489f7"}},{"ruleId":"D2","level":"warning","message":{"text":"mysqlDbReplica.Run (cognitive 19): mysqlDbReplica.Run has cognitive complexity 19 (threshold 15). Drivers by points: if/else 18, loops 1 (nesting depth added 10). Of this number, 15 points are the body\u0027s own statements and 4 belong to one function literal inside it that branches. To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/cluster/mysqldb_persister.go"},"region":{"startLine":98}}}],"partialFingerprints":{"codehealthFindingId/v1":"acbf5b3135961679e290f1cb7c0bda979a2d1fbf2f91accc58ed4c3e88440bf8"}},{"ruleId":"D2","level":"warning","message":{"text":"Database.createIndexedSqlTable (cognitive 19): Database.createIndexedSqlTable has cognitive complexity 19 (threshold 15). Drivers by points: if/else 16, boolean chains 2, loops 1 (nesting depth added 4). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/database.go"},"region":{"startLine":2101}}}],"partialFingerprints":{"codehealthFindingId/v1":"d9195a03dc074d6aa003f0366437ac94e81cea35816f8daabc80e20604d8fa09"}},{"ruleId":"D2","level":"warning","message":{"text":"DoltDatabaseProvider.SessionDatabase (cognitive 19): DoltDatabaseProvider.SessionDatabase has cognitive complexity 19 (threshold 15). Drivers by points: if/else 17, boolean chains 2 (nesting depth added 6). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/database_provider.go"},"region":{"startLine":1712}}}],"partialFingerprints":{"codehealthFindingId/v1":"f3b11d268773e808845162a0cf1f4962168e52dd3fa5783f065c12f4ffd0d9e9"}},{"ruleId":"D2","level":"warning","message":{"text":"dprocedures.hasUnstagedChanges (cognitive 19): dprocedures.hasUnstagedChanges has cognitive complexity 19 (threshold 15). Drivers by points: if/else 15, boolean chains 3, loops 1 (nesting depth added 6). Of this number, 12 points are the body\u0027s own statements and 7 belong to one function literal inside it that branches. To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dprocedures/dolt_rm.go"},"region":{"startLine":188}}}],"partialFingerprints":{"codehealthFindingId/v1":"a5afb6a14645730b115445518fef97838d7e0ccc881d0b9f5ff8307dbb9ba8a6"}},{"ruleId":"D2","level":"warning","message":{"text":"SequenceTracker.DropRelation (cognitive 19): SequenceTracker.DropRelation has cognitive complexity 19 (threshold 15). Drivers by points: if/else 18, loops 1 (nesting depth added 8). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dsess/sequence_tracker.go"},"region":{"startLine":447}}}],"partialFingerprints":{"codehealthFindingId/v1":"952c0aefa0e4ea34e3b1c4efced981b500e8dd7cf8a5dda69d3c91c79ecc8387"}},{"ruleId":"D2","level":"warning","message":{"text":"dtablefunctions.getDiffStatNodeFromDelta (cognitive 19): dtablefunctions.getDiffStatNodeFromDelta has cognitive complexity 19 (threshold 15). Drivers by points: if/else 17, boolean chains 2 (nesting depth added 4). To reduce it, split the body: most of this score is breadth rather than depth \u2014 checks laid out side by side rather than stacked \u2014 so group the statements between the checks into named steps and move each step into its own function. Some of it IS depth: where a check sits inside another whose only job is to reach it, merge the two into one condition, and where an else follows a branch that already returns, drop the trailing else and let the rest of the body continue at one level."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dtablefunctions/dolt_diff_stat.go"},"region":{"startLine":375}}}],"partialFingerprints":{"codehealthFindingId/v1":"985f1b05fce620cec19db5ca8b6eb4aa6d9617219f0ce0763582dad4b0b9193b"}},{"ruleId":"D2","level":"warning","message":{"text":"dtablefunctions.getTablesWithConflicts (cognitive 19): dtablefunctions.getTablesWithConflicts has cognitive complexity 19 (threshold 15). Drivers by points: if/else 17, boolean chains 1, loops 1 (nesting depth added 7). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dtablefunctions/dolt_preview_merge_conflicts_summary.go"},"region":{"startLine":345}}}],"partialFingerprints":{"codehealthFindingId/v1":"4357d90b3d1667e7a7ad1100ca1766beacb4ebffd358bedc80ca24d5c25203d7"}},{"ruleId":"D2","level":"warning","message":{"text":"TestsRunTableFunction.getDoltTestsData (cognitive 19): TestsRunTableFunction.getDoltTestsData has cognitive complexity 19 (threshold 15). Drivers by points: if/else 16, loops 3 (nesting depth added 9). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dtablefunctions/dolt_test_run.go"},"region":{"startLine":302}}}],"partialFingerprints":{"codehealthFindingId/v1":"c16c13598d03768733f5e86e52d1d3e5904b64462e4b67c0639b6a6f5f5e1bbf"}},{"ruleId":"D2","level":"warning","message":{"text":"dtables.newProllyDiffIter (cognitive 19): dtables.newProllyDiffIter has cognitive complexity 19 (threshold 15). Drivers by points: if/else 18, boolean chains 1 (nesting depth added 6). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dtables/diff_iter.go"},"region":{"startLine":78}}}],"partialFingerprints":{"codehealthFindingId/v1":"e299e88520a320d0f83d9d1acbbf98031540beecbfb284d30e61e02ed1187500"}},{"ruleId":"D2","level":"warning","message":{"text":"BranchItr.Next (cognitive 19): BranchItr.Next has cognitive complexity 19 (threshold 15). Drivers by points: if/else 17, boolean chains 1, loops 1 (nesting depth added 9). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dtables/branches_table.go"},"region":{"startLine":376}}}],"partialFingerprints":{"codehealthFindingId/v1":"53322f8527ba65d13393e7450f27839dd58ef88e42f11676f101d7ce5c474bb3"}},{"ruleId":"D2","level":"warning","message":{"text":"AlterableDoltTable.AddForeignKey (cognitive 19): AlterableDoltTable.AddForeignKey has cognitive complexity 19 (threshold 15). Drivers by points: if/else 15, boolean chains 4. To reduce it, split the body: this score is breadth rather than depth \u2014 many checks laid out side by side rather than nested inside one another, so inverting conditions into early returns has nothing left to flatten. Group the statements between the checks into named steps and move each step into its own function, so the body reads as a short sequence of named stages."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/tables.go"},"region":{"startLine":2768}}}],"partialFingerprints":{"codehealthFindingId/v1":"df9d5937bf96fa60aa4d507ef8e87205a14f5efae0c538c068f1da960f072ae0"}},{"ruleId":"D2","level":"warning","message":{"text":"prollySecondaryIndexWriter.Update (cognitive 19): prollySecondaryIndexWriter.Update has cognitive complexity 19 (threshold 15). Drivers by points: if/else 17, boolean chains 2 (nesting depth added 6). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/writer/prolly_index_writer.go"},"region":{"startLine":507}}}],"partialFingerprints":{"codehealthFindingId/v1":"3b67974580924d7bf22000e4346a61f01f87f97f90154621d1319b65f7d58708"}},{"ruleId":"D2","level":"warning","message":{"text":"creation.BuildUniqueProllyIndex (cognitive 19): creation.BuildUniqueProllyIndex has cognitive complexity 19 (threshold 15). Drivers by points: if/else 18, loops 1 (nesting depth added 6). Of this number, 17 points are the body\u0027s own statements and 2 belong to one function literal inside it that branches. To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/table/editor/creation/index.go"},"region":{"startLine":200}}}],"partialFingerprints":{"codehealthFindingId/v1":"3962f48d7003355a42586f14f8397879434227be723b05745673304df23f50ec"}},{"ruleId":"D2","level":"warning","message":{"text":"tupleIterWithCb.Next (cognitive 19): tupleIterWithCb.Next has cognitive complexity 19 (threshold 15). Drivers by points: if/else 17, boolean chains 1, loops 1 (nesting depth added 11). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/table/editor/creation/external_build_index.go"},"region":{"startLine":203}}}],"partialFingerprints":{"codehealthFindingId/v1":"d27871c2cc7dfb7c029bccbee14a33e3f063e1a9fb22941e6cd289b34a74840f"}},{"ruleId":"D2","level":"warning","message":{"text":"benchmark_runner.FromHeaderResultFieldValue (cognitive 19): benchmark_runner.FromHeaderResultFieldValue has cognitive complexity 19 (threshold 15). Drivers by points: if/else 18, match/switch 1 (nesting depth added 9). The drivers above price the dispatch low by construction \u2014 a dispatch is charged once however many cases it lists, while each branch inside an arm is charged in full \u2014 so most of this count is what the case bodies hold, and the arms are where it can be reduced. To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Keep every case explicit, and make the behaviour for cases you do not list a deliberate choice rather than an accident."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/performance/utils/benchmark_runner/csv.go"},"region":{"startLine":139}}}],"partialFingerprints":{"codehealthFindingId/v1":"0de35b1970bf23ef84cc9ff94f3cd3c689dc6de58b26255923aeaa13f6685533"}},{"ruleId":"D2","level":"warning","message":{"text":"doltProfilerImpl.Profile (cognitive 19): doltProfilerImpl.Profile has cognitive complexity 19 (threshold 15). Drivers by points: if/else 16, loops 3 (nesting depth added 5). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/performance/utils/benchmark_runner/profile.go"},"region":{"startLine":62}}}],"partialFingerprints":{"codehealthFindingId/v1":"096ca17515ad807c0b4a3e220c3cbd68087baf65265954486e2e9fe918dfb155"}},{"ruleId":"D2","level":"warning","message":{"text":"main.runWalk (cognitive 19): main.runWalk has cognitive complexity 19 (threshold 15). Drivers by points: if/else 18, boolean chains 1 (nesting depth added 5). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/cmd/noms/noms_walk.go"},"region":{"startLine":58}}}],"partialFingerprints":{"codehealthFindingId/v1":"24f59d957dded231265e18c98b2d57cf4d9cabf6df1c3682aa2e4394a4be825b"}},{"ruleId":"D2","level":"warning","message":{"text":"datas.FindCommonAncestor (cognitive 19): datas.FindCommonAncestor has cognitive complexity 19 (threshold 15). Drivers by points: if/else 18, loops 1 (nesting depth added 8). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/datas/commit.go"},"region":{"startLine":310}}}],"partialFingerprints":{"codehealthFindingId/v1":"3915131bf1e6d8c100b48e71a183979cdf68f9fa5b78e666ef656a2fdba75608"}},{"ruleId":"D2","level":"warning","message":{"text":"pull.emitStats (cognitive 19): pull.emitStats has cognitive complexity 19 (threshold 15). Drivers by points: if/else 13, match/switch 4, loops 2 (nesting depth added 10). Most of this is not in the body itself: 0 of the 19 points are its own statements and the rest belongs to 2 function literals inside it that branch (lines 192, 243). The decisions are inside those literals, which nothing outside this body can call, review or test on its own, so splitting the enclosing body is not the move available here. To reduce it, lift the literals\u0027 work into a named function or method at the enclosing scope and have each literal call it, then reduce whichever part then reads as the largest."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/datas/pull/puller.go"},"region":{"startLine":183}}}],"partialFingerprints":{"codehealthFindingId/v1":"20d8d6b1fe168b576419a701fd39357babf5b0f3fabda6e13fd76d6cf958c619"}},{"ruleId":"D2","level":"warning","message":{"text":"nbs.markAndSweepChunks (cognitive 19): nbs.markAndSweepChunks has cognitive complexity 19 (threshold 15). Drivers by points: if/else 13, boolean chains 2, loops 2, match/switch 2 (nesting depth added 2). Of this number, 11 points are the body\u0027s own statements and 8 belong to one function literal inside it that branches. To reduce it, split the body: this score is breadth rather than depth \u2014 many checks laid out side by side rather than nested inside one another, so inverting conditions into early returns has nothing left to flatten. Group the statements between the checks into named steps and move each step into its own function, so the body reads as a short sequence of named stages."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/nbs/store.go"},"region":{"startLine":2303}}}],"partialFingerprints":{"codehealthFindingId/v1":"135d6de7cfbe7575f45eab1cee99e4a03b5ed210f545dc944436aa674a0789b6"}},{"ruleId":"D2","level":"warning","message":{"text":"nbs.IterChunks (cognitive 19): nbs.IterChunks has cognitive complexity 19 (threshold 15). Drivers by points: if/else 18, loops 1 (nesting depth added 10). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/nbs/util.go"},"region":{"startLine":26}}}],"partialFingerprints":{"codehealthFindingId/v1":"516c1efae56ac4a98bef706ad8ffb2131358e658da1d9f76897a764aa3c78e20"}},{"ruleId":"D2","level":"warning","message":{"text":"journalWriter.readJournalIndex (cognitive 19): journalWriter.readJournalIndex has cognitive complexity 19 (threshold 15). Drivers by points: if/else 12, loops 4, match/switch 3 (nesting depth added 6). Most of this is not in the body itself: 5 of the 19 points are its own statements and the rest belongs to 2 function literals inside it that branch (lines 376, 343). The decisions are inside those literals, which nothing outside this body can call, review or test on its own, so splitting the enclosing body is not the move available here. To reduce it, lift the literals\u0027 work into a named function or method at the enclosing scope and have each literal call it, then reduce whichever part then reads as the largest."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/nbs/journal_writer.go"},"region":{"startLine":325}}}],"partialFingerprints":{"codehealthFindingId/v1":"def77aac0d05e433e481ff37e6eaa5053ed18e2e861c5da74951b917c1ac0c6a"}},{"ruleId":"D2","level":"warning","message":{"text":"tree.recursiveFetchLeafNodeSpan (cognitive 19): tree.recursiveFetchLeafNodeSpan has cognitive complexity 19 (threshold 15). Drivers by points: if/else 13, loops 5, boolean chains 1 (nesting depth added 9). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/prolly/tree/node_cursor.go"},"region":{"startLine":286}}}],"partialFingerprints":{"codehealthFindingId/v1":"409803c88bfdfdc2aa0577048530e1f371499ca6001db4c8b79ac55f41f65adb"}},{"ruleId":"D2","level":"warning","message":{"text":"JsonCursor.AdvanceToLocation (cognitive 19): JsonCursor.AdvanceToLocation has cognitive complexity 19 (threshold 15). Drivers by points: if/else 18, loops 1 (nesting depth added 6). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/prolly/tree/json_cursor.go"},"region":{"startLine":166}}}],"partialFingerprints":{"codehealthFindingId/v1":"41e61db94be9784205779a35e44f19de1c3f2bc4e564f23d31efd1d9f24ac014"}},{"ruleId":"D2","level":"warning","message":{"text":"stripe.sanityCheck (cognitive 19): stripe.sanityCheck has cognitive complexity 19 (threshold 15). Drivers by points: if/else 15, loops 4 (nesting depth added 9). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/prolly/tree/node_cache.go"},"region":{"startLine":154}}}],"partialFingerprints":{"codehealthFindingId/v1":"cd1dd2d62922a923e20c7527ef63d79a99f0e38d5a93e493a1f2d1546edecaae"}},{"ruleId":"D2","level":"warning","message":{"text":"main.MakeServer (cognitive 19): main.MakeServer has cognitive complexity 19 (threshold 15). Drivers by points: if/else 10, loops 9 (nesting depth added 6). Of this number, 11 points are the body\u0027s own statements and 8 belong to one function literal inside it that branches. To reduce it, split the body: this score is breadth rather than depth \u2014 many checks laid out side by side rather than nested inside one another, so inverting conditions into early returns has nothing left to flatten. Group the statements between the checks into named steps and move each step into its own function, so the body reads as a short sequence of named stages."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"integration-tests/go-sql-server-driver/testdef.go"},"region":{"startLine":275}}}],"partialFingerprints":{"codehealthFindingId/v1":"ff0c1fb0c412c13597bc10f654e80323d1b909b2800fee9abcb9e645b77cdfd9"}},{"ruleId":"D2","level":"warning","message":{"text":"commands.clone (cognitive 18): commands.clone has cognitive complexity 18 (threshold 15). Drivers by points: if/else 18 (nesting depth added 2). To reduce it, split the body: most of this score is breadth rather than depth \u2014 checks laid out side by side rather than stacked \u2014 so group the statements between the checks into named steps and move each step into its own function. Some of it IS depth: where a check sits inside another whose only job is to reach it, merge the two into one condition, and where an else follows a branch that already returns, drop the trailing else and let the rest of the body continue at one level."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/clone.go"},"region":{"startLine":111}}}],"partialFingerprints":{"codehealthFindingId/v1":"dd657bf53e2692b9a12da0047314120f74aed0631c024befda852ca615ea3c68"}},{"ruleId":"D2","level":"warning","message":{"text":"commands.constructParametrizedDoltCommitQuery (cognitive 18): commands.constructParametrizedDoltCommitQuery has cognitive complexity 18 (threshold 15). Drivers by points: if/else 17, boolean chains 1 (nesting depth added 1). Of this number, 15 points are the body\u0027s own statements and 3 belong to one function literal inside it that branches. To reduce it, split the body: this score is breadth rather than depth \u2014 many checks laid out side by side rather than nested inside one another, so inverting conditions into early returns has nothing left to flatten. Group the statements between the checks into named steps and move each step into its own function, so the body reads as a short sequence of named stages."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/commit.go"},"region":{"startLine":195}}}],"partialFingerprints":{"codehealthFindingId/v1":"72189e02dea6da8a990de534d737f57b0905261e876853105fc1203da8e6806e"}},{"ruleId":"D2","level":"warning","message":{"text":"commands.getUpstreamInfo (cognitive 18): commands.getUpstreamInfo has cognitive complexity 18 (threshold 15). Drivers by points: if/else 17, boolean chains 1 (nesting depth added 7). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/status.go"},"region":{"startLine":303}}}],"partialFingerprints":{"codehealthFindingId/v1":"4a410a43815619af727717b77e92b8ee95cb3cfd233673bd33be03735cf34aa2"}},{"ruleId":"D2","level":"warning","message":{"text":"ci.getSavedQueries (cognitive 18): ci.getSavedQueries has cognitive complexity 18 (threshold 15). Drivers by points: if/else 16, loops 2 (nesting depth added 8). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/ci/view.go"},"region":{"startLine":185}}}],"partialFingerprints":{"codehealthFindingId/v1":"133001621b5594205d1a80659f3294c435dad507fe46ef1a331d8f48c2f6f285"}},{"ruleId":"D2","level":"warning","message":{"text":"PushCmd.Exec (cognitive 18): PushCmd.Exec has cognitive complexity 18 (threshold 15). Drivers by points: if/else 11, match/switch 6, loops 1 (nesting depth added 8). Of this number, 16 points are the body\u0027s own statements and 2 belong to one function literal inside it that branches. To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/push.go"},"region":{"startLine":86}}}],"partialFingerprints":{"codehealthFindingId/v1":"dac38fdc8fa51b1d8a7e8c3a4c95fb6168cd4d60469a6b12bb273609047259ae"}},{"ruleId":"D2","level":"warning","message":{"text":"RootsCmd.processTableFile (cognitive 18): RootsCmd.processTableFile has cognitive complexity 18 (threshold 15). Drivers by points: if/else 18 (nesting depth added 9). Most of this is not in the body itself: 1 of the 18 points is its own statement and the rest belongs to one function literal inside it that branches (line 115). The decisions are inside the literal, which nothing outside this body can call, review or test on its own, so splitting the enclosing body is not the move available here. To reduce it, lift the literal\u0027s work into a named function or method at the enclosing scope and have the literal call it, then reduce whichever part then reads as the largest."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/roots.go"},"region":{"startLine":105}}}],"partialFingerprints":{"codehealthFindingId/v1":"96b5ffa25c1f6abd9eccb758f6fee63d46edffe020b4affa080b9e04f5217694"}},{"ruleId":"D2","level":"warning","message":{"text":"schcmds.exportSchemas (cognitive 18): schcmds.exportSchemas has cognitive complexity 18 (threshold 15). Drivers by points: if/else 15, boolean chains 1, loops 1, match/switch 1 (nesting depth added 5). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/schcmds/export.go"},"region":{"startLine":92}}}],"partialFingerprints":{"codehealthFindingId/v1":"c137b685c1631d5b8dbf7b02744747189ce942c14161dad27bd2851e7e6f486c"}},{"ruleId":"D2","level":"warning","message":{"text":"branch_control.FoldExpression (cognitive 18): branch_control.FoldExpression has cognitive complexity 18 (threshold 15). Drivers by points: if/else 8, match/switch 7, loops 3 (nesting depth added 10). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/branch_control/expr_parser.go"},"region":{"startLine":68}}}],"partialFingerprints":{"codehealthFindingId/v1":"bcbeca218d189914118a478a0b6a1ef3219e31edbee8383c43cd84059b0d0d18"}},{"ruleId":"D2","level":"warning","message":{"text":"MatchNode.ExactMatch (cognitive 18): MatchNode.ExactMatch has cognitive complexity 18 (threshold 15). Drivers by points: if/else 13, boolean chains 3, jumps 1, loops 1 (nesting depth added 6). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/branch_control/expr_parser_node.go"},"region":{"startLine":152}}}],"partialFingerprints":{"codehealthFindingId/v1":"6d9c1a030e0fcdb57db5cce06a1ac1c66f6af1d0e3574dcf0c7c2151dcaf8d28"}},{"ruleId":"D2","level":"warning","message":{"text":"MatchNode.Add (cognitive 18): MatchNode.Add has cognitive complexity 18 (threshold 15). Drivers by points: if/else 13, boolean chains 3, jumps 1, loops 1 (nesting depth added 6). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/branch_control/expr_parser_node.go"},"region":{"startLine":252}}}],"partialFingerprints":{"codehealthFindingId/v1":"8faea7308e982dc42aa92f8bedf5513b5fe3a2bd71706894586ae684702bdc1a"}},{"ruleId":"D2","level":"warning","message":{"text":"DoltDB.writeWorkingSet (cognitive 18): DoltDB.writeWorkingSet has cognitive complexity 18 (threshold 15). Drivers by points: if/else 16, loops 2 (nesting depth added 8). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/doltdb/doltdb.go"},"region":{"startLine":1861}}}],"partialFingerprints":{"codehealthFindingId/v1":"4508b42dae4307398dd82b4fa78debd2ee0138ee54170db0b3490cd8d4b06786"}},{"ruleId":"D2","level":"warning","message":{"text":"DoltDB.StoreSizes (cognitive 18): DoltDB.StoreSizes has cognitive complexity 18 (threshold 15). Drivers by points: if/else 17, boolean chains 1 (nesting depth added 7). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/doltdb/doltdb.go"},"region":{"startLine":2219}}}],"partialFingerprints":{"codehealthFindingId/v1":"af5809279abaf874eac6d223e53c3e8ea5cc7dfa3b90d985b3bd372f69d769c6"}},{"ruleId":"D2","level":"warning","message":{"text":"doltWorkflowManager.newWorkflowStep (cognitive 18): doltWorkflowManager.newWorkflowStep has cognitive complexity 18 (threshold 15). Drivers by points: if/else 15, match/switch 2, loops 1 (nesting depth added 11). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/env/actions/dolt_ci/workflow_manager.go"},"region":{"startLine":498}}}],"partialFingerprints":{"codehealthFindingId/v1":"5ea678b7b25a39c8997ba44d6144760871403b2876c684f9b284dbb940d90e78"}},{"ruleId":"D2","level":"warning","message":{"text":"merge.tableNeedsFullTextIndexRebuild (cognitive 18): merge.tableNeedsFullTextIndexRebuild has cognitive complexity 18 (threshold 15). Drivers by points: if/else 14, loops 3, boolean chains 1 (nesting depth added 9). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/merge/fulltext_rebuild.go"},"region":{"startLine":137}}}],"partialFingerprints":{"codehealthFindingId/v1":"f1860f78ba3d6c35824aacbd1e5bd034f3f17b0fdd81abf9beec1da73d9d3fb5"}},{"ruleId":"D2","level":"warning","message":{"text":"merge.ForeignKeysMerge (cognitive 18): merge.ForeignKeysMerge has cognitive complexity 18 (threshold 15). Drivers by points: if/else 14, boolean chains 4. Of this number, 10 points are the body\u0027s own statements and 8 belong to 3 function literals inside it that branch. To reduce it, split the body: this score is breadth rather than depth \u2014 many checks laid out side by side rather than nested inside one another, so inverting conditions into early returns has nothing left to flatten. Group the statements between the checks into named steps and move each step into its own function, so the body reads as a short sequence of named stages."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/merge/merge_schema.go"},"region":{"startLine":266}}}],"partialFingerprints":{"codehealthFindingId/v1":"ca4bafd302c71053f1586d418e54bd0a5f6995ed1cf5acd393f3fc2f0b9033a7"}},{"ruleId":"D2","level":"warning","message":{"text":"TableMerger.tableHashes (cognitive 18): TableMerger.tableHashes has cognitive complexity 18 (threshold 15). Drivers by points: if/else 18 (nesting depth added 6). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/merge/merge_rows.go"},"region":{"startLine":120}}}],"partialFingerprints":{"codehealthFindingId/v1":"6c0fe356b8317b79e19321594f73fb47ebcd4c65f643d25dfbbf7a71b7824197"}},{"ruleId":"D2","level":"warning","message":{"text":"ref.Parse (cognitive 18): ref.Parse has cognitive complexity 18 (threshold 15). Drivers by points: if/else 10, match/switch 6, loops 2 (nesting depth added 7). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/ref/ref.go"},"region":{"startLine":164}}}],"partialFingerprints":{"codehealthFindingId/v1":"7f4911b024caf094d7ddbfaee4b1f2c63c9a854969d83f4b1350526966b963c8"}},{"ruleId":"D2","level":"warning","message":{"text":"binlogProducer.createSchemaChangeQueryEvents (cognitive 18): binlogProducer.createSchemaChangeQueryEvents has cognitive complexity 18 (threshold 15). Drivers by points: if/else 13, loops 3, boolean chains 2 (nesting depth added 8). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/binlogreplication/binlog_producer.go"},"region":{"startLine":286}}}],"partialFingerprints":{"codehealthFindingId/v1":"5b8dff30d3a2297b86143efaeeba253848167b9d17cc896b50915717afd9072b"}},{"ruleId":"D2","level":"warning","message":{"text":"branchControlReplication.waitForReplication (cognitive 18): branchControlReplication.waitForReplication has cognitive complexity 18 (threshold 15). Drivers by points: if/else 10, loops 7, match/switch 1 (nesting depth added 7). Of this number, 12 points are the body\u0027s own statements and 6 belong to one function literal inside it that branches. To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/cluster/branch_control_replica.go"},"region":{"startLine":241}}}],"partialFingerprints":{"codehealthFindingId/v1":"58ea5b3838b5fd14245c145f5f71d8be2dd87f835626b938e5843a4b932201dd"}},{"ruleId":"D2","level":"warning","message":{"text":"replicatingMySQLDbPersister.waitForReplication (cognitive 18): replicatingMySQLDbPersister.waitForReplication has cognitive complexity 18 (threshold 15). Drivers by points: if/else 10, loops 7, match/switch 1 (nesting depth added 7). Of this number, 12 points are the body\u0027s own statements and 6 belong to one function literal inside it that branches. To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/cluster/mysqldb_persister.go"},"region":{"startLine":274}}}],"partialFingerprints":{"codehealthFindingId/v1":"382054efa6f297ba96b0d96dbe9305408b744b986f32bf386cb1b8438518f859"}},{"ruleId":"D2","level":"warning","message":{"text":"Database.GetViewDefinition (cognitive 18): Database.GetViewDefinition has cognitive complexity 18 (threshold 15). Drivers by points: if/else 16, boolean chains 1, match/switch 1 (nesting depth added 3). To reduce it, split the body: most of this score is breadth rather than depth \u2014 checks laid out side by side rather than stacked \u2014 so group the statements between the checks into named steps and move each step into its own function. Some of it IS depth: where a check sits inside another whose only job is to reach it, merge the two into one condition."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/database.go"},"region":{"startLine":2417}}}],"partialFingerprints":{"codehealthFindingId/v1":"81e19898b04609333895089087b973e23e3aa79cbb9abc3cb8f5ee18f625431f"}},{"ruleId":"D2","level":"warning","message":{"text":"dprocedures.checkoutRemoteBranch (cognitive 18): dprocedures.checkoutRemoteBranch has cognitive complexity 18 (threshold 15). Drivers by points: if/else 18 (nesting depth added 7). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dprocedures/dolt_checkout.go"},"region":{"startLine":330}}}],"partialFingerprints":{"codehealthFindingId/v1":"b073a9586a59c130f4eeacdc2e9d71e63d1428ab79193605b3291d6f67306c34"}},{"ruleId":"D2","level":"warning","message":{"text":"dprocedures.doDoltCherryPick (cognitive 18): dprocedures.doDoltCherryPick has cognitive complexity 18 (threshold 15). Drivers by points: if/else 17, boolean chains 1 (nesting depth added 3). To reduce it, split the body: most of this score is breadth rather than depth \u2014 checks laid out side by side rather than stacked \u2014 so group the statements between the checks into named steps and move each step into its own function. Some of it IS depth: where a check sits inside another whose only job is to reach it, merge the two into one condition."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dprocedures/dolt_cherry_pick.go"},"region":{"startLine":69}}}],"partialFingerprints":{"codehealthFindingId/v1":"9a1bd72beead4e4b769509552e1acb0a02a1679300f300eed7ce5c819281afd7"}},{"ruleId":"D2","level":"warning","message":{"text":"dprocedures.executeNoFFMerge (cognitive 18): dprocedures.executeNoFFMerge has cognitive complexity 18 (threshold 15). Drivers by points: if/else 18 (nesting depth added 4). To reduce it, split the body: most of this score is breadth rather than depth \u2014 checks laid out side by side rather than stacked \u2014 so group the statements between the checks into named steps and move each step into its own function. Some of it IS depth: where a check sits inside another whose only job is to reach it, merge the two into one condition."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dprocedures/dolt_merge.go"},"region":{"startLine":415}}}],"partialFingerprints":{"codehealthFindingId/v1":"77ef09782289cb398113b6c8414717422a99278f0611ae7655ddd28e970f95c3"}},{"ruleId":"D2","level":"warning","message":{"text":"dprocedures.doDoltRebase (cognitive 18): dprocedures.doDoltRebase has cognitive complexity 18 (threshold 15). Drivers by points: if/else 17, match/switch 1 (nesting depth added 6). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dprocedures/dolt_rebase.go"},"region":{"startLine":189}}}],"partialFingerprints":{"codehealthFindingId/v1":"e8ea29621a65876cece52d80738e31bb6ba9d6011226bde97500f16469aa7545"}},{"ruleId":"D2","level":"warning","message":{"text":"dprocedures.doDoltRevert (cognitive 18): dprocedures.doDoltRevert has cognitive complexity 18 (threshold 15). Drivers by points: if/else 16, boolean chains 1, loops 1 (nesting depth added 3). To reduce it, split the body: most of this score is breadth rather than depth \u2014 checks laid out side by side rather than stacked \u2014 so group the statements between the checks into named steps and move each step into its own function. Some of it IS depth: where a check sits inside another whose only job is to reach it, merge the two into one condition."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dprocedures/dolt_revert.go"},"region":{"startLine":67}}}],"partialFingerprints":{"codehealthFindingId/v1":"c0031d938064788b677642a3ad7347384919b2acf648f6a90e9974900fdbc4f2"}},{"ruleId":"D2","level":"warning","message":{"text":"dprocedures.defaultFirstCommit (cognitive 18): dprocedures.defaultFirstCommit has cognitive complexity 18 (threshold 15). Drivers by points: if/else 13, loops 4, match/switch 1 (nesting depth added 7). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dprocedures/dolt_squash_history.go"},"region":{"startLine":184}}}],"partialFingerprints":{"codehealthFindingId/v1":"90c813d466435d2290effac80ffdf134f56763168a74488094309cb1411f1e81"}},{"ruleId":"D2","level":"warning","message":{"text":"dtables.NewBranchItr (cognitive 18): dtables.NewBranchItr has cognitive complexity 18 (threshold 15). Drivers by points: if/else 17, loops 1 (nesting depth added 7). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dtables/branches_table.go"},"region":{"startLine":311}}}],"partialFingerprints":{"codehealthFindingId/v1":"51f3e7959930485a7fb6715f80d65d4678e0ff5d7b223416922b902604674b27"}},{"ruleId":"D2","level":"warning","message":{"text":"enginetest.ordinalMappingsForSecondaryIndex (cognitive 18): enginetest.ordinalMappingsForSecondaryIndex has cognitive complexity 18 (threshold 15). Drivers by points: if/else 13, loops 5 (nesting depth added 10). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/enginetest/validation.go"},"region":{"startLine":450}}}],"partialFingerprints":{"codehealthFindingId/v1":"e378b5f536c8e7be6f8d5bf8ac096e585bce6f20d7b5442eb41f534f76b94296"}},{"ruleId":"D2","level":"warning","message":{"text":"expreval.GetComparisonType (cognitive 18): expreval.GetComparisonType has cognitive complexity 18 (threshold 15). Drivers by points: if/else 12, loops 4, match/switch 2 (nesting depth added 8). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/expreval/expression_evaluator.go"},"region":{"startLine":171}}}],"partialFingerprints":{"codehealthFindingId/v1":"85ff316c4f74f38c3baeda26318fb6b5ee619f5b9bb66ddef20458c54e519dc7"}},{"ruleId":"D2","level":"warning","message":{"text":"HistoryTable.LookupPartitions (cognitive 18): HistoryTable.LookupPartitions has cognitive complexity 18 (threshold 15). Drivers by points: if/else 16, loops 2 (nesting depth added 10). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/history_table.go"},"region":{"startLine":124}}}],"partialFingerprints":{"codehealthFindingId/v1":"f84f5489fd2d71f34398368096ad9b24dd07cf10d33df9813a1afdff425b6bab"}},{"ruleId":"D2","level":"warning","message":{"text":"resolve.GetGeneratedSystemTablesBySchema (cognitive 18): resolve.GetGeneratedSystemTablesBySchema has cognitive complexity 18 (threshold 15). Drivers by points: if/else 9, loops 7, boolean chains 2 (nesting depth added 7). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/resolve/system_tables.go"},"region":{"startLine":52}}}],"partialFingerprints":{"codehealthFindingId/v1":"cb24a1f5d01a9a449f45be53eb6d8152e148a3cf84cc920f6f472b49a2a42783"}},{"ruleId":"D2","level":"warning","message":{"text":"sqlfmt.interfaceValueAsSqlString (cognitive 18): sqlfmt.interfaceValueAsSqlString has cognitive complexity 18 (threshold 15). Drivers by points: if/else 13, match/switch 5 (nesting depth added 8). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/sqlfmt/row_fmt.go"},"region":{"startLine":322}}}],"partialFingerprints":{"codehealthFindingId/v1":"6e0dbc8f9526af1b2762fe163f42de57ee0d11a7448fb6204c59da67cec42d12"}},{"ruleId":"D2","level":"warning","message":{"text":"prollyStats.decodeBucketTuple (cognitive 18): prollyStats.decodeBucketTuple has cognitive complexity 18 (threshold 15). Drivers by points: if/else 13, loops 4, boolean chains 1 (nesting depth added 7). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/statspro/stats_kv.go"},"region":{"startLine":383}}}],"partialFingerprints":{"codehealthFindingId/v1":"212242d8dcdbb43ffeae5f42961c8406c20bcda1fa107eae09a0ec9268e1b0a8"}},{"ruleId":"D2","level":"warning","message":{"text":"creation.CreateIndex (cognitive 18): creation.CreateIndex has cognitive complexity 18 (threshold 15). Drivers by points: if/else 14, loops 3, boolean chains 1 (nesting depth added 4). To reduce it, split the body: most of this score is breadth rather than depth \u2014 checks laid out side by side rather than stacked \u2014 so group the statements between the checks into named steps and move each step into its own function. Some of it IS depth: where a check sits inside another whose only job is to reach it, merge the two into one condition."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/table/editor/creation/index.go"},"region":{"startLine":45}}}],"partialFingerprints":{"codehealthFindingId/v1":"f6190ba0db183e0fc98b3bc7dbfa15b08de983cc6e581e213531aaf6658834cf"}},{"ruleId":"D2","level":"warning","message":{"text":"JSONLReader.ReadSqlRow (cognitive 18): JSONLReader.ReadSqlRow has cognitive complexity 18 (threshold 15). Drivers by points: if/else 16, boolean chains 1, loops 1 (nesting depth added 8). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/table/typed/json/jsonl_reader.go"},"region":{"startLine":110}}}],"partialFingerprints":{"codehealthFindingId/v1":"2ed5703bc864e046119773eda2097170bb88fca0dc765f8385e414d31b20727f"}},{"ruleId":"D2","level":"warning","message":{"text":"CSVReader.parseQuotedField (cognitive 18): CSVReader.parseQuotedField has cognitive complexity 18 (threshold 15). Drivers by points: if/else 13, match/switch 3, boolean chains 1, loops 1 (nesting depth added 9). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/table/untyped/csv/reader.go"},"region":{"startLine":423}}}],"partialFingerprints":{"codehealthFindingId/v1":"a645ce1c7ffcd160ad9f99b73c626f9bd058ce4efa86ffb06876ee90cb0b8beb"}},{"ruleId":"D2","level":"warning","message":{"text":"editor.getCmdNameAndArgsForEditor (cognitive 18): editor.getCmdNameAndArgsForEditor has cognitive complexity 18 (threshold 15). Drivers by points: if/else 15, loops 2, match/switch 1 (nesting depth added 8). Of this number, 17 points are the body\u0027s own statements and 1 belongs to one function literal inside it that branches. To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/utils/editor/edit.go"},"region":{"startLine":68}}}],"partialFingerprints":{"codehealthFindingId/v1":"79dfa6a54f7221d081b6858f60d5ee0e81c779de5cc29f215880f9c25d74b51d"}},{"ruleId":"D2","level":"warning","message":{"text":"minver.ValidateMinVerFunc (cognitive 18): minver.ValidateMinVerFunc has cognitive complexity 18 (threshold 15). Drivers by points: if/else 13, boolean chains 3, loops 2 (nesting depth added 6). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/utils/minver/minvertesting.go"},"region":{"startLine":124}}}],"partialFingerprints":{"codehealthFindingId/v1":"1baca24f0003d6edd681b1e9217b5e032ef5fc1a698ceaac5184694631340dec"}},{"ruleId":"D2","level":"warning","message":{"text":"GitBlobstore.remoteManagedWrite (cognitive 18): GitBlobstore.remoteManagedWrite has cognitive complexity 18 (threshold 15). Drivers by points: if/else 16, loops 2 (nesting depth added 4). Most of this is not in the body itself: 4 of the 18 points are its own statements and the rest belongs to one function literal inside it that branches (line 889). The decisions are inside the literal, which nothing outside this body can call, review or test on its own, so splitting the enclosing body is not the move available here. To reduce it, lift the literal\u0027s work into a named function or method at the enclosing scope and have the literal call it, then reduce whichever part then reads as the largest."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/blobstore/git_blobstore.go"},"region":{"startLine":874}}}],"partialFingerprints":{"codehealthFindingId/v1":"ce4e9ed04c04ac476ad760c8e1d7f9a6dd691d777010d8d4ea44c7dc10890053"}},{"ruleId":"D2","level":"warning","message":{"text":"PullTableFileWriter.uploadThread (cognitive 18): PullTableFileWriter.uploadThread has cognitive complexity 18 (threshold 15). Drivers by points: if/else 12, match/switch 5, loops 1 (nesting depth added 11). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/datas/pull/pull_table_file_writer.go"},"region":{"startLine":320}}}],"partialFingerprints":{"codehealthFindingId/v1":"3e831e6b5e32b40fa3af893d2b755cd736311b4015663f89c366d10bf74c3269"}},{"ruleId":"D2","level":"warning","message":{"text":"nbs.processJournalRecords (cognitive 18): nbs.processJournalRecords has cognitive complexity 18 (threshold 15). Drivers by points: if/else 16, boolean chains 2 (nesting depth added 6). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/nbs/journal_record.go"},"region":{"startLine":427}}}],"partialFingerprints":{"codehealthFindingId/v1":"dcf9f9aee4e8ae72741271ef5a33b4850c5acd7f38b4dea03ce2e2df706689af"}},{"ruleId":"D2","level":"warning","message":{"text":"blobstorePersister.CopyTableFile (cognitive 18): blobstorePersister.CopyTableFile has cognitive complexity 18 (threshold 15). Drivers by points: if/else 18 (nesting depth added 9). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/nbs/bs_persister.go"},"region":{"startLine":259}}}],"partialFingerprints":{"codehealthFindingId/v1":"3bdb6acdd11adcd5f8f466f27fb2adf8e831f7ec099a52e716c5b36d77e35aa1"}},{"ruleId":"D2","level":"warning","message":{"text":"fsTablePersister.ConjoinAll (cognitive 18): fsTablePersister.ConjoinAll has cognitive complexity 18 (threshold 15). Drivers by points: if/else 16, loops 2 (nesting depth added 5). Most of this is not in the body itself: 5 of the 18 points are its own statements and the rest belongs to 2 function literals inside it that branch (lines 320, 360). The decisions are inside those literals, which nothing outside this body can call, review or test on its own, so splitting the enclosing body is not the move available here. To reduce it, lift the literals\u0027 work into a named function or method at the enclosing scope and have each literal call it, then reduce whichever part then reads as the largest."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/nbs/file_table_persister.go"},"region":{"startLine":309}}}],"partialFingerprints":{"codehealthFindingId/v1":"b869b68cbdc788e804171c430ad596965569790096d318fe037d750926c4e47a"}},{"ruleId":"D2","level":"warning","message":{"text":"fsTablePersister.PruneTableFiles (cognitive 18): fsTablePersister.PruneTableFiles has cognitive complexity 18 (threshold 15). Drivers by points: if/else 15, boolean chains 2, loops 1 (nesting depth added 7). Of this number, 17 points are the body\u0027s own statements and 1 belongs to one function literal inside it that branches. To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/nbs/file_table_persister.go"},"region":{"startLine":373}}}],"partialFingerprints":{"codehealthFindingId/v1":"985059b07b147f224b413059b6f2d315af380b258deaec2592b5022fcd820253"}},{"ruleId":"D2","level":"warning","message":{"text":"tree.skipCommon (cognitive 18): tree.skipCommon has cognitive complexity 18 (threshold 15). Drivers by points: if/else 15, boolean chains 2, loops 1 (nesting depth added 9). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/prolly/tree/diff.go"},"region":{"startLine":251}}}],"partialFingerprints":{"codehealthFindingId/v1":"966b06cbd6bcdf835a6e9912056d992f00efb15cf0734cdcd49fbad96fd6261d"}},{"ruleId":"D2","level":"warning","message":{"text":"ValueStore.ReadManyValues (cognitive 18): ValueStore.ReadManyValues has cognitive complexity 18 (threshold 15). Drivers by points: if/else 16, loops 2 (nesting depth added 5). Of this number, 10 points are the body\u0027s own statements and 8 belong to 2 function literals inside it that branch. To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/types/value_store.go"},"region":{"startLine":253}}}],"partialFingerprints":{"codehealthFindingId/v1":"8d9461a00a389a50cc7d97bd0611bf08a48e0b34f2ff14f8b6f657ae3daceece"}},{"ruleId":"D2","level":"warning","message":{"text":"commands.doltExec (cognitive 17): commands.doltExec has cognitive complexity 17 (threshold 15). Drivers by points: if/else 16, loops 1 (nesting depth added 8). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/assist.go"},"region":{"startLine":283}}}],"partialFingerprints":{"codehealthFindingId/v1":"79db24192c987e05c72d818741bd1d62a8a23333b39914f3d3788c090e4e872a"}},{"ruleId":"D2","level":"warning","message":{"text":"commands.parseArgs (cognitive 17): commands.parseArgs has cognitive complexity 17 (threshold 15). Drivers by points: if/else 15, boolean chains 2 (nesting depth added 5). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/clone.go"},"region":{"startLine":208}}}],"partialFingerprints":{"codehealthFindingId/v1":"7de2b07720d0cf5000b27d720a9d21a45aec0af759946d58b7562ec5cc80ba93"}},{"ruleId":"D2","level":"warning","message":{"text":"commands.addOperation (cognitive 17): commands.addOperation has cognitive complexity 17 (threshold 15). Drivers by points: if/else 11, match/switch 3, boolean chains 2, loops 1 (nesting depth added 6). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/config.go"},"region":{"startLine":211}}}],"partialFingerprints":{"codehealthFindingId/v1":"8eb5231b275ba7160b5b22051d585c5bb6fb9349860d2e8eeaa1351333642ecf"}},{"ruleId":"D2","level":"warning","message":{"text":"commands.parseDiffTableSetSql (cognitive 17): commands.parseDiffTableSetSql has cognitive complexity 17 (threshold 15). Drivers by points: if/else 11, loops 6 (nesting depth added 8). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/diff.go"},"region":{"startLine":454}}}],"partialFingerprints":{"codehealthFindingId/v1":"9e62593259b3a13e590d8b7dc5277577ed03a4fd6ecef4f35f9973e17ce50ac8"}},{"ruleId":"D2","level":"warning","message":{"text":"commands.formatOption (cognitive 17): commands.formatOption has cognitive complexity 17 (threshold 15). Drivers by points: if/else 14, boolean chains 3 (nesting depth added 3). To reduce it, split the body: most of this score is breadth rather than depth \u2014 checks laid out side by side rather than stacked \u2014 so group the statements between the checks into named steps and move each step into its own function. Some of it IS depth: where a check sits inside another whose only job is to reach it, merge the two into one condition, and where an else follows a branch that already returns, drop the trailing else and let the rest of the body continue at one level."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/gen_zsh_comp.go"},"region":{"startLine":223}}}],"partialFingerprints":{"codehealthFindingId/v1":"8926b89a4cfa009f28981d6b2a4837763eb163da1416e122101b49b7dd24bd7c"}},{"ruleId":"D2","level":"warning","message":{"text":"commands.validateDoltMergeArgs (cognitive 17): commands.validateDoltMergeArgs has cognitive complexity 17 (threshold 15). Drivers by points: if/else 15, boolean chains 2 (nesting depth added 3). To reduce it, split the body: most of this score is breadth rather than depth \u2014 checks laid out side by side rather than stacked \u2014 so group the statements between the checks into named steps and move each step into its own function. Some of it IS depth: where a check sits inside another whose only job is to reach it, merge the two into one condition."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/merge.go"},"region":{"startLine":199}}}],"partialFingerprints":{"codehealthFindingId/v1":"ea3537d38cf17ada5f4d32ca392c5c008fc2f0896d9d2a1d35475309bc57b927"}},{"ruleId":"D2","level":"warning","message":{"text":"credcmds.getJWKHandler (cognitive 17): credcmds.getJWKHandler has cognitive complexity 17 (threshold 15). Drivers by points: if/else 16, boolean chains 1 (nesting depth added 8). Most of this is not in the body itself: 0 of the 17 points are its own statements and the rest belongs to one function literal inside it that branches (line 98). The decisions are inside the literal, which nothing outside this body can call, review or test on its own, so splitting the enclosing body is not the move available here. To reduce it, lift the literal\u0027s work into a named function or method at the enclosing scope and have the literal call it, then reduce whichever part then reads as the largest."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/credcmds/ls.go"},"region":{"startLine":95}}}],"partialFingerprints":{"codehealthFindingId/v1":"a7b17fe64118c34ec309ae316c7998f7d6164b5bc6c581c4ec21ab392fa18628"}},{"ruleId":"D2","level":"warning","message":{"text":"UseCmd.Exec (cognitive 17): UseCmd.Exec has cognitive complexity 17 (threshold 15). Drivers by points: if/else 17 (nesting depth added 9). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/credcmds/use.go"},"region":{"startLine":78}}}],"partialFingerprints":{"codehealthFindingId/v1":"be5b520a8d644e7964cae6ee29c9f6bd51ea0d52a4af53eb00654ffef4b452b9"}},{"ruleId":"D2","level":"warning","message":{"text":"FetchCmd.Exec (cognitive 17): FetchCmd.Exec has cognitive complexity 17 (threshold 15). Drivers by points: if/else 10, match/switch 6, loops 1 (nesting depth added 8). Of this number, 16 points are the body\u0027s own statements and 1 belongs to one function literal inside it that branches. To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/fetch.go"},"region":{"startLine":74}}}],"partialFingerprints":{"codehealthFindingId/v1":"93ac445c25673f229eb9452de46b21ca55d5920e08129e6f856f334268b98d21"}},{"ruleId":"D2","level":"warning","message":{"text":"tblcmds.newImportSqlEngineMover (cognitive 17): tblcmds.newImportSqlEngineMover has cognitive complexity 17 (threshold 15). Drivers by points: if/else 10, loops 6, boolean chains 1 (nesting depth added 6). Of this number, 15 points are the body\u0027s own statements and 2 belong to one function literal inside it that branches. To reduce it, split the body: most of this score is breadth rather than depth \u2014 checks laid out side by side rather than stacked \u2014 so group the statements between the checks into named steps and move each step into its own function. Some of it IS depth: where a check sits inside another whose only job is to reach it, merge the two into one condition, and where an else follows a branch that already returns, drop the trailing else and let the rest of the body continue at one level."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/tblcmds/import.go"},"region":{"startLine":607}}}],"partialFingerprints":{"codehealthFindingId/v1":"61a304554db6504c3ef96d040d88ed8b96f8feea872b800949d1da28fada7969"}},{"ruleId":"D2","level":"warning","message":{"text":"main.reconfigIfTempFileMoveFails (cognitive 17): main.reconfigIfTempFileMoveFails has cognitive complexity 17 (threshold 15). Drivers by points: if/else 17 (nesting depth added 4). Most of this is not in the body itself: 1 of the 17 points is its own statement and the rest belongs to one function literal inside it that branches (line 47). The decisions are inside the literal, which nothing outside this body can call, review or test on its own, so splitting the enclosing body is not the move available here. To reduce it, lift the literal\u0027s work into a named function or method at the enclosing scope and have the literal call it, then reduce whichever part then reads as the largest."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/system_checks.go"},"region":{"startLine":33}}}],"partialFingerprints":{"codehealthFindingId/v1":"f9624a00150aec5e42107c0174b5f5a75c58c1a9a30052905928486484251f1c"}},{"ruleId":"D2","level":"warning","message":{"text":"doltdb.parseInstructions (cognitive 17): doltdb.parseInstructions has cognitive complexity 17 (threshold 15). Drivers by points: if/else 8, loops 6, match/switch 2, boolean chains 1 (nesting depth added 9). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/doltdb/ancestor_spec.go"},"region":{"startLine":31}}}],"partialFingerprints":{"codehealthFindingId/v1":"02dbcb71c187cd8fea505f85bd2e4c7b465ba16d7ee8f54154ce75bfd0bceb84"}},{"ruleId":"D2","level":"warning","message":{"text":"BranchActivityTracker.processEvents (cognitive 17): BranchActivityTracker.processEvents has cognitive complexity 17 (threshold 15). Drivers by points: if/else 12, boolean chains 2, match/switch 2, loops 1 (nesting depth added 9). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/doltdb/branch_activity.go"},"region":{"startLine":102}}}],"partialFingerprints":{"codehealthFindingId/v1":"97b87cafc2abaab5d040716219f4c74009622e30e9f14111bec2f4c61966980e"}},{"ruleId":"D2","level":"warning","message":{"text":"prollyIndex.AddColumnToRows (cognitive 17): prollyIndex.AddColumnToRows has cognitive complexity 17 (threshold 15). Drivers by points: if/else 12, loops 5 (nesting depth added 5). Of this number, 16 points are the body\u0027s own statements and 1 belongs to one function literal inside it that branches. To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/doltdb/durable/index.go"},"region":{"startLine":250}}}],"partialFingerprints":{"codehealthFindingId/v1":"d81919cd9697bfc0783cc64660133336da0612a64e1795ac15df0d92ebdf2c53"}},{"ruleId":"D2","level":"warning","message":{"text":"merge.indexesInCommon (cognitive 17): merge.indexesInCommon has cognitive complexity 17 (threshold 15). Drivers by points: if/else 15, boolean chains 1, loops 1 (nesting depth added 3). Most of this is not in the body itself: 0 of the 17 points are its own statements and the rest belongs to one function literal inside it that branches (line 790). The decisions are inside the literal, which nothing outside this body can call, review or test on its own, so splitting the enclosing body is not the move available here. To reduce it, lift the literal\u0027s work into a named function or method at the enclosing scope and have the literal call it, then reduce whichever part then reads as the largest."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/merge/merge_schema.go"},"region":{"startLine":788}}}],"partialFingerprints":{"codehealthFindingId/v1":"4c8d08cc943bab549cc9c3e6fcee008d005f0b25a00cd75a7399b2a7a2f835d4"}},{"ruleId":"D2","level":"warning","message":{"text":"merge.prollyParentSecDiffFkConstraintViolations (cognitive 17): merge.prollyParentSecDiffFkConstraintViolations has cognitive complexity 17 (threshold 15). Drivers by points: if/else 15, boolean chains 1, match/switch 1 (nesting depth added 5). Most of this is not in the body itself: 6 of the 17 points are its own statements and the rest belongs to one function literal inside it that branches (line 83). The decisions are inside the literal, which nothing outside this body can call, review or test on its own, so splitting the enclosing body is not the move available here. To reduce it, lift the literal\u0027s work into a named function or method at the enclosing scope and have the literal call it, then reduce whichever part then reads as the largest."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/merge/violations_fk_prolly.go"},"region":{"startLine":39}}}],"partialFingerprints":{"codehealthFindingId/v1":"a370a9ec1ad39438fc2d25ff69a4d62ae83898a7d05fbb69fe2cf50bcff0a4c8"}},{"ruleId":"D2","level":"warning","message":{"text":"merge.prollyChildPriDiffFkConstraintViolations (cognitive 17): merge.prollyChildPriDiffFkConstraintViolations has cognitive complexity 17 (threshold 15). Drivers by points: if/else 15, boolean chains 1, match/switch 1 (nesting depth added 6). Most of this is not in the body itself: 5 of the 17 points are its own statements and the rest belongs to one function literal inside it that branches (line 269). The decisions are inside the literal, which nothing outside this body can call, review or test on its own, so splitting the enclosing body is not the move available here. To reduce it, lift the literal\u0027s work into a named function or method at the enclosing scope and have the literal call it, then reduce whichever part then reads as the largest."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/merge/violations_fk_prolly.go"},"region":{"startLine":242}}}],"partialFingerprints":{"codehealthFindingId/v1":"0d611dba34c76e0124b7e27820c3e65f2df1e4ee21d7ccc7f4b6199094b64022"}},{"ruleId":"D2","level":"warning","message":{"text":"revert.dirtyTablesConflictWithRevert (cognitive 17): revert.dirtyTablesConflictWithRevert has cognitive complexity 17 (threshold 15). Drivers by points: if/else 14, boolean chains 2, loops 1 (nesting depth added 2). To reduce it, split the body: most of this score is breadth rather than depth \u2014 checks laid out side by side rather than stacked \u2014 so group the statements between the checks into named steps and move each step into its own function. Some of it IS depth: where a check sits inside another whose only job is to reach it, merge the two into one condition."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/revert/revert.go"},"region":{"startLine":96}}}],"partialFingerprints":{"codehealthFindingId/v1":"43e967f714176d83d464124c41c40b3e037642d701ccf046687636a235526bfd"}},{"ruleId":"D2","level":"warning","message":{"text":"row.fromTaggedVals (cognitive 17): row.fromTaggedVals has cognitive complexity 17 (threshold 15). Drivers by points: if/else 13, boolean chains 4 (nesting depth added 2). Most of this is not in the body itself: 2 of the 17 points are its own statements and the rest belongs to 2 function literals inside it that branch (lines 105, 83). The decisions are inside those literals, which nothing outside this body can call, review or test on its own, so splitting the enclosing body is not the move available here. To reduce it, lift the literals\u0027 work into a named function or method at the enclosing scope and have each literal call it, then reduce whichever part then reads as the largest."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/row/keyed_row.go"},"region":{"startLine":80}}}],"partialFingerprints":{"codehealthFindingId/v1":"f0d1beb61920ce73498d9e2c735e37ed36a88c64aa274624125c696754222c63"}},{"ruleId":"D2","level":"warning","message":{"text":"binlogreplication.encodeJsonArray (cognitive 17): binlogreplication.encodeJsonArray has cognitive complexity 17 (threshold 15). Drivers by points: if/else 14, boolean chains 2, loops 1 (nesting depth added 6). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/binlogreplication/binlog_json_serialization.go"},"region":{"startLine":83}}}],"partialFingerprints":{"codehealthFindingId/v1":"092d0aa793974a7360b17d875dcd6006c36696b8e14c2ab645125923005a784b"}},{"ruleId":"D2","level":"warning","message":{"text":"binlogreplication.createTableMapFromDoltTable (cognitive 17): binlogreplication.createTableMapFromDoltTable has cognitive complexity 17 (threshold 15). Drivers by points: if/else 16, loops 1 (nesting depth added 7). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/binlogreplication/binlog_producer.go"},"region":{"startLine":715}}}],"partialFingerprints":{"codehealthFindingId/v1":"998cc932dcbc2268d1157694641d3352d2d1e860b0faafecf8622d8875deccaa"}},{"ruleId":"D2","level":"warning","message":{"text":"cluster.NewInitDatabaseHook (cognitive 17): cluster.NewInitDatabaseHook has cognitive complexity 17 (threshold 15). Drivers by points: if/else 15, loops 2 (nesting depth added 8). Most of this is not in the body itself: 0 of the 17 points are its own statements and the rest belongs to one function literal inside it that branches (line 32). The decisions are inside the literal, which nothing outside this body can call, review or test on its own, so splitting the enclosing body is not the move available here. To reduce it, lift the literal\u0027s work into a named function or method at the enclosing scope and have the literal call it, then reduce whichever part then reads as the largest."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/cluster/initdbhook.go"},"region":{"startLine":31}}}],"partialFingerprints":{"codehealthFindingId/v1":"31a5e8896602d9c060fb9be43119a1f7d54027d42b6f7fdcb5d13c2fb42be8cb"}},{"ruleId":"D2","level":"warning","message":{"text":"Controller.refreshAutoIncrementTrackersForSessionDatabases (cognitive 17): Controller.refreshAutoIncrementTrackersForSessionDatabases has cognitive complexity 17 (threshold 15). Drivers by points: if/else 14, boolean chains 2, loops 1 (nesting depth added 6). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/cluster/controller.go"},"region":{"startLine":1081}}}],"partialFingerprints":{"codehealthFindingId/v1":"25895e46b1014bc41580e81064713a61ed552d225c66cd67b4b4869b493eba31"}},{"ruleId":"D2","level":"warning","message":{"text":"clientinterceptor.handleResponseHeaders (cognitive 17): clientinterceptor.handleResponseHeaders has cognitive complexity 17 (threshold 15). Drivers by points: if/else 15, boolean chains 2 (nesting depth added 6). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/cluster/interceptors.go"},"region":{"startLine":131}}}],"partialFingerprints":{"codehealthFindingId/v1":"8ae3ead9e98b447f0574174912d99d1596229812d4c9cb19aafb84639cb23580"}},{"ruleId":"D2","level":"warning","message":{"text":"doltProceduresDiffPartitionRowIter.loadDiffRowsForCommitPair (cognitive 17): doltProceduresDiffPartitionRowIter.loadDiffRowsForCommitPair has cognitive complexity 17 (threshold 15). Drivers by points: if/else 14, loops 2, boolean chains 1 (nesting depth added 6). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dolt_procedures_diff_table.go"},"region":{"startLine":404}}}],"partialFingerprints":{"codehealthFindingId/v1":"6b09ad1d0e8fa90f70f2e1dfbc8e631e8853d72dd6f63bcee6c829312a852f8d"}},{"ruleId":"D2","level":"warning","message":{"text":"doltSchemasDiffPartitionRowIter.loadDiffRowsForCommitPair (cognitive 17): doltSchemasDiffPartitionRowIter.loadDiffRowsForCommitPair has cognitive complexity 17 (threshold 15). Drivers by points: if/else 14, loops 2, boolean chains 1 (nesting depth added 6). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dolt_schemas_diff_table.go"},"region":{"startLine":404}}}],"partialFingerprints":{"codehealthFindingId/v1":"3ba99744381bbad084585b352a60e3a684fbc198feee2cb3d0d25e275ef94192"}},{"ruleId":"D2","level":"warning","message":{"text":"dprocedures.getDirectoryAndUrlString (cognitive 17): dprocedures.getDirectoryAndUrlString has cognitive complexity 17 (threshold 15). Drivers by points: if/else 15, boolean chains 2 (nesting depth added 5). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dprocedures/dolt_clone.go"},"region":{"startLine":91}}}],"partialFingerprints":{"codehealthFindingId/v1":"10dcf5342be9ad5cd796a03e2e150d083875b4bc2f1ab97490e46cb28217cf04"}},{"ruleId":"D2","level":"warning","message":{"text":"dprocedures.RunDoltGC (cognitive 17): dprocedures.RunDoltGC has cognitive complexity 17 (threshold 15). Drivers by points: if/else 17 (nesting depth added 9). Of this number, 14 points are the body\u0027s own statements and 3 belong to one function literal inside it that branches. To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dprocedures/dolt_gc.go"},"region":{"startLine":278}}}],"partialFingerprints":{"codehealthFindingId/v1":"5c1153f035af4881752277dac32e3df8c5854ca30082496ea05d6dbc5449a52b"}},{"ruleId":"D2","level":"warning","message":{"text":"previewMergeConflictsTableFunctionRowIter.nextConflictVals (cognitive 17): previewMergeConflictsTableFunctionRowIter.nextConflictVals has cognitive complexity 17 (threshold 15). Drivers by points: if/else 12, boolean chains 4, loops 1 (nesting depth added 6). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dtablefunctions/dolt_preview_merge_conflicts.go"},"region":{"startLine":624}}}],"partialFingerprints":{"codehealthFindingId/v1":"8c181c2b7fa5f12ec93a62a39cebdff05b9cbaddd845953c01cf2e59585d89d6"}},{"ruleId":"D2","level":"warning","message":{"text":"CommitAncestorsRowItr.Next (cognitive 17): CommitAncestorsRowItr.Next has cognitive complexity 17 (threshold 15). Drivers by points: if/else 15, loops 2 (nesting depth added 9). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dtables/commit_ancestors_table.go"},"region":{"startLine":160}}}],"partialFingerprints":{"codehealthFindingId/v1":"02990c0e5ab1ff0eb21827baac54af5ca27522bafc77a7d3750ace165eb0886a"}},{"ruleId":"D2","level":"warning","message":{"text":"doltDiffWorkingSetRowItr.Next (cognitive 17): doltDiffWorkingSetRowItr.Next has cognitive complexity 17 (threshold 15). Drivers by points: if/else 14, boolean chains 2, loops 1 (nesting depth added 7). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dtables/unscoped_diff_table.go"},"region":{"startLine":240}}}],"partialFingerprints":{"codehealthFindingId/v1":"4ee94adb031619417b57f3c0876c903de6954951dabbe702ee96d62ccba11c28"}},{"ruleId":"D2","level":"warning","message":{"text":"HistoryTable.rowConverter (cognitive 17): HistoryTable.rowConverter has cognitive complexity 17 (threshold 15). Drivers by points: if/else 13, loops 2, match/switch 2 (nesting depth added 9). Of this number, 11 points are the body\u0027s own statements and 6 belong to one function literal inside it that branches. To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/history_table.go"},"region":{"startLine":592}}}],"partialFingerprints":{"codehealthFindingId/v1":"8d3e20cca9f1ef904b9fe5f5d6bfaaf0ce04f9d21e290e1cc469409ecbc565c4"}},{"ruleId":"D2","level":"warning","message":{"text":"jsonRowDiffWriter.WriteRow (cognitive 17): jsonRowDiffWriter.WriteRow has cognitive complexity 17 (threshold 15). Drivers by points: if/else 15, match/switch 2 (nesting depth added 3). To reduce it, split the body: most of this score is breadth rather than depth \u2014 checks laid out side by side rather than stacked \u2014 so group the statements between the checks into named steps and move each step into its own function. Some of it IS depth: where a check sits inside another whose only job is to reach it, merge the two into one condition, and where an else follows a branch that already returns, drop the trailing else and let the rest of the body continue at one level."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/table/typed/json/json_diff_writer.go"},"region":{"startLine":51}}}],"partialFingerprints":{"codehealthFindingId/v1":"f28f3446036273f83ab13e277562c4d8fb0ed45cd39ca60f0953cee4b7326393"}},{"ruleId":"D2","level":"warning","message":{"text":"csv.csvSplitLine (cognitive 17): csv.csvSplitLine has cognitive complexity 17 (threshold 15). Drivers by points: if/else 13, boolean chains 3, loops 1 (nesting depth added 6). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/table/untyped/csv/line.go"},"region":{"startLine":23}}}],"partialFingerprints":{"codehealthFindingId/v1":"300eb65933b78f2440b9bf4d4ca58c5e18c42ecb4c9a6967edec8bfba0ae7073"}},{"ruleId":"D2","level":"warning","message":{"text":"FixedWidthDiffTableWriter.WriteCombinedRow (cognitive 17): FixedWidthDiffTableWriter.WriteCombinedRow has cognitive complexity 17 (threshold 15). Drivers by points: if/else 10, boolean chains 4, loops 3 (nesting depth added 6). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/table/untyped/tabular/fixedwidth_diff_tablewriter.go"},"region":{"startLine":76}}}],"partialFingerprints":{"codehealthFindingId/v1":"67b04b6ba9a1f90aea9d1f440b8aaf22fa56e724f7473fbc5769a495803b0860"}},{"ruleId":"D2","level":"warning","message":{"text":"ArgParser.Parse (cognitive 17): ArgParser.Parse has cognitive complexity 17 (threshold 15). Drivers by points: if/else 13, boolean chains 2, loops 2 (nesting depth added 6). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/utils/argparser/parser.go"},"region":{"startLine":326}}}],"partialFingerprints":{"codehealthFindingId/v1":"f69de71aa2685a4246be3db8aca8f1d218209bfda4429d3298afdb492cdaa6ff"}},{"ruleId":"D2","level":"warning","message":{"text":"Controller.Start (cognitive 17): Controller.Start has cognitive complexity 17 (threshold 15). Drivers by points: if/else 9, loops 7, boolean chains 1 (nesting depth added 5). To reduce it, split the body: most of this score is breadth rather than depth \u2014 checks laid out side by side rather than stacked \u2014 so group the statements between the checks into named steps and move each step into its own function. Some of it IS depth: where a check sits inside another whose only job is to reach it, merge the two into one condition, and where an else follows a branch that already returns, drop the trailing else and let the rest of the body continue at one level."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/utils/svcs/controller.go"},"region":{"startLine":205}}}],"partialFingerprints":{"codehealthFindingId/v1":"12fec94d89aa61ff3fd5b3d6f862b5fb75333f8bda345a524e787e3dffeb3f0a"}},{"ruleId":"D2","level":"warning","message":{"text":"main.main (cognitive 17): main.main has cognitive complexity 17 (threshold 15). Drivers by points: if/else 11, loops 3, match/switch 3 (nesting depth added 6). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/performance/sysbench/cmd/main.go"},"region":{"startLine":34}}}],"partialFingerprints":{"codehealthFindingId/v1":"4e74f9543a51c30347dae4f5cd0c4a2be34a050539ddaaa215cef2a951f0317c"}},{"ruleId":"D2","level":"warning","message":{"text":"concatReadCloser.Read (cognitive 17): concatReadCloser.Read has cognitive complexity 17 (threshold 15). Drivers by points: if/else 16, loops 1 (nesting depth added 9). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/blobstore/git_blobstore.go"},"region":{"startLine":224}}}],"partialFingerprints":{"codehealthFindingId/v1":"e290250a0c63483f06cb2deed310fbfe7800b3bd7faed862e8ac0c0ca4f2975c"}},{"ruleId":"D2","level":"warning","message":{"text":"nbs.updateBSWithChecker (cognitive 17): nbs.updateBSWithChecker has cognitive complexity 17 (threshold 15). Drivers by points: if/else 15, boolean chains 2 (nesting depth added 6). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/nbs/bs_manifest.go"},"region":{"startLine":97}}}],"partialFingerprints":{"codehealthFindingId/v1":"1b88e9ac8d4b847907afcb7e3088c2a131f74421736d8caa28c75b813ad77ca9"}},{"ruleId":"D2","level":"warning","message":{"text":"nbs.validateManifest (cognitive 17): nbs.validateManifest has cognitive complexity 17 (threshold 15). Drivers by points: if/else 16, boolean chains 1 (nesting depth added 2). To reduce it, split the body: most of this score is breadth rather than depth \u2014 checks laid out side by side rather than stacked \u2014 so group the statements between the checks into named steps and move each step into its own function. Some of it IS depth: where a check sits inside another whose only job is to reach it, merge the two into one condition."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/nbs/dynamo_manifest.go"},"region":{"startLine":138}}}],"partialFingerprints":{"codehealthFindingId/v1":"c7d05611ca7ad2bb509d376c9ec13e55f583f70ae1a60a56dfdb12582c83258e"}},{"ruleId":"D2","level":"warning","message":{"text":"dynamoManifest.Update (cognitive 17): dynamoManifest.Update has cognitive complexity 17 (threshold 15). Drivers by points: if/else 17 (nesting depth added 8). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/nbs/dynamo_manifest.go"},"region":{"startLine":175}}}],"partialFingerprints":{"codehealthFindingId/v1":"dc939eff97f5b98a4f37fd1ce6e3abffc3317226845156ef5261a155c77f0eab"}},{"ruleId":"D2","level":"warning","message":{"text":"NomsBlockStore.commit (cognitive 17): NomsBlockStore.commit has cognitive complexity 17 (threshold 15). Drivers by points: if/else 13, boolean chains 3, loops 1 (nesting depth added 5). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/nbs/store.go"},"region":{"startLine":1569}}}],"partialFingerprints":{"codehealthFindingId/v1":"94e925e8eecffb388897c738697fc5309b19f40cd3853505cdb08402bd530b34"}},{"ruleId":"D2","level":"warning","message":{"text":"NomsBlockStore.addTableFilesToManifest (cognitive 17): NomsBlockStore.addTableFilesToManifest has cognitive complexity 17 (threshold 15). Drivers by points: if/else 15, loops 2 (nesting depth added 7). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/nbs/store.go"},"region":{"startLine":2079}}}],"partialFingerprints":{"codehealthFindingId/v1":"5907da10d3905a5fdeeae04632a1d19417a58360bb7907106f89dd25b6ede775"}},{"ruleId":"D2","level":"warning","message":{"text":"tableSet.rebase (cognitive 17): tableSet.rebase has cognitive complexity 17 (threshold 15). Drivers by points: if/else 13, loops 4 (nesting depth added 5). Of this number, 10 points are the body\u0027s own statements and 7 belong to 2 function literals inside it that branch. To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/nbs/table_set.go"},"region":{"startLine":489}}}],"partialFingerprints":{"codehealthFindingId/v1":"34c2b02831c8b3254e367897ee67937c02162684bbc46ad894406ae13f1a72f1"}},{"ruleId":"D2","level":"warning","message":{"text":"tree.applyLeafPatch (cognitive 17): tree.applyLeafPatch has cognitive complexity 17 (threshold 15). Drivers by points: if/else 15, boolean chains 2 (nesting depth added 4). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/prolly/tree/tree_patcher.go"},"region":{"startLine":91}}}],"partialFingerprints":{"codehealthFindingId/v1":"ab183eeef5b72e40b8d31cb4c8ce6e527a0dc189cbb4890a399902f8384347ae"}},{"ruleId":"D2","level":"warning","message":{"text":"JsonChunker.Done (cognitive 17): JsonChunker.Done has cognitive complexity 17 (threshold 15). Drivers by points: if/else 15, boolean chains 1, loops 1 (nesting depth added 7). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/prolly/tree/json_chunker.go"},"region":{"startLine":116}}}],"partialFingerprints":{"codehealthFindingId/v1":"87cc53cc85987f1c451b3ffb1df14cf6a44ad1ac091d645e006317f0d090a04c"}},{"ruleId":"D2","level":"warning","message":{"text":"ProximityMap.Get (cognitive 17): ProximityMap.Get has cognitive complexity 17 (threshold 15). Drivers by points: if/else 14, loops 3 (nesting depth added 9). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/prolly/tree/proximity_map.go"},"region":{"startLine":96}}}],"partialFingerprints":{"codehealthFindingId/v1":"5899e25506a9def9a7f0561d0106edbedf72f6400364153d013cb84d6b579c68"}},{"ruleId":"D2","level":"warning","message":{"text":"Range.KeyRangeLookup (cognitive 17): Range.KeyRangeLookup has cognitive complexity 17 (threshold 15). Drivers by points: if/else 13, loops 3, boolean chains 1 (nesting depth added 6). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/prolly/tuple_range.go"},"region":{"startLine":223}}}],"partialFingerprints":{"codehealthFindingId/v1":"ceef72fcbca292741babca81cbb692c842c693d89bf28b38a36df218de5639c3"}},{"ruleId":"D2","level":"warning","message":{"text":"vectorIndexChunker.Next (cognitive 17): vectorIndexChunker.Next has cognitive complexity 17 (threshold 15). Drivers by points: if/else 15, boolean chains 1, loops 1 (nesting depth added 7). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/prolly/vector_index_chunker.go"},"region":{"startLine":77}}}],"partialFingerprints":{"codehealthFindingId/v1":"258087dd428ebc1788236d5b9f465fbaf71599b70c1ad2a509910a53da2cd8d5"}},{"ruleId":"D2","level":"warning","message":{"text":"spec.parseDatabaseSpec (cognitive 17): spec.parseDatabaseSpec has cognitive complexity 17 (threshold 15). Drivers by points: if/else 14, boolean chains 2, match/switch 1 (nesting depth added 3). To reduce it, split the body: most of this score is breadth rather than depth \u2014 checks laid out side by side rather than stacked \u2014 so group the statements between the checks into named steps and move each step into its own function. Some of it IS depth: where a check sits inside another whose only job is to reach it, merge the two into one condition, and where an else follows a branch that already returns, drop the trailing else and let the rest of the body continue at one level."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/spec/spec.go"},"region":{"startLine":572}}}],"partialFingerprints":{"codehealthFindingId/v1":"0e697a09b62c303377057c3febd834f6838f5cca3242af682e23993894b67dba"}},{"ruleId":"D2","level":"warning","message":{"text":"matcher (cognitive 17): matcher has cognitive complexity 17 (threshold 15). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"integration-tests/mysql-client-tests/node/workbenchTests/matchers.js"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"651fed48cf7f581d3e5ba373b1c9418b81b7c913e5da5590052d049a710708c3"}},{"ruleId":"D2","level":"warning","message":{"text":"commands.patchWorkflow (cognitive 16): commands.patchWorkflow has cognitive complexity 16 (threshold 15). Drivers by points: if/else 12, boolean chains 2, loops 2 (nesting depth added 7). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/add.go"},"region":{"startLine":156}}}],"partialFingerprints":{"codehealthFindingId/v1":"1fdc1a43756db53686349dcb4e51c2959fcc5b759fee6af8eac8de1f5dc5725c"}},{"ruleId":"D2","level":"warning","message":{"text":"commands.getBranchStatus (cognitive 16): commands.getBranchStatus has cognitive complexity 16 (threshold 15). Drivers by points: if/else 14, boolean chains 1, loops 1 (nesting depth added 8). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/branch.go"},"region":{"startLine":247}}}],"partialFingerprints":{"codehealthFindingId/v1":"6169c08d56453b5551b82dc948de8d82a4f2d7948dd2bda9b5278fcdc47f6e6d"}},{"ruleId":"D2","level":"warning","message":{"text":"commands.areValueSetsDiffable (cognitive 16): commands.areValueSetsDiffable has cognitive complexity 16 (threshold 15). Drivers by points: if/else 10, boolean chains 3, loops 3 (nesting depth added 5). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/diff.go"},"region":{"startLine":1516}}}],"partialFingerprints":{"codehealthFindingId/v1":"3312d6669b6b71fff9fd8de4a45b8310caea5262de2dc57aa8836e95f4e06533"}},{"ruleId":"D2","level":"warning","message":{"text":"commands.loginWithCreds (cognitive 16): commands.loginWithCreds has cognitive complexity 16 (threshold 15). Drivers by points: if/else 11, loops 4, boolean chains 1 (nesting depth added 6). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/login.go"},"region":{"startLine":201}}}],"partialFingerprints":{"codehealthFindingId/v1":"75dc9a4299828c57f4b4769bb30e1f5b4d097f939f2c197e764fe26f241a7a82"}},{"ruleId":"D2","level":"warning","message":{"text":"Assist.Exec (cognitive 16): Assist.Exec has cognitive complexity 16 (threshold 15). Drivers by points: if/else 15, loops 1 (nesting depth added 5). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/assist.go"},"region":{"startLine":72}}}],"partialFingerprints":{"codehealthFindingId/v1":"cb9fdf30b5f19fa1381974e03efe23e9d92819a16d004381aecb2c306c69fcd6"}},{"ruleId":"D2","level":"warning","message":{"text":"ci.formatDoltTestRows (cognitive 16): ci.formatDoltTestRows has cognitive complexity 16 (threshold 15). Drivers by points: if/else 13, match/switch 2, loops 1 (nesting depth added 8). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/ci/dolt_test_step_run.go"},"region":{"startLine":190}}}],"partialFingerprints":{"codehealthFindingId/v1":"ff00870aa6078f518c7ce3b3c8ddad3462a05fa59a58272cb3830b9761fa0a14"}},{"ruleId":"D2","level":"warning","message":{"text":"diffArgs.applyDotRevisions (cognitive 16): diffArgs.applyDotRevisions has cognitive complexity 16 (threshold 15). Drivers by points: if/else 16 (nesting depth added 8). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/diff.go"},"region":{"startLine":674}}}],"partialFingerprints":{"codehealthFindingId/v1":"95d938fbc5f975e343fa49ccf89bb36dac5c9e75c6ad1a6179877ff84cf85bfe"}},{"ruleId":"D2","level":"warning","message":{"text":"verticalRowWriter.WriteSqlRow (cognitive 16): verticalRowWriter.WriteSqlRow has cognitive complexity 16 (threshold 15). Drivers by points: if/else 13, loops 3 (nesting depth added 7). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/engine/sql_print.go"},"region":{"startLine":370}}}],"partialFingerprints":{"codehealthFindingId/v1":"ea0751fbdac08c98478350a4dea86f582db88519bf81206dfd596871551328ca"}},{"ruleId":"D2","level":"warning","message":{"text":"roundTripper.roundTripAndCategorizeChunk (cognitive 16): roundTripper.roundTripAndCategorizeChunk has cognitive complexity 16 (threshold 15). Drivers by points: if/else 15, boolean chains 1 (nesting depth added 4). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/fsck.go"},"region":{"startLine":540}}}],"partialFingerprints":{"codehealthFindingId/v1":"0680d61f6b2d65f68ee674b259631b0d3607d7597b7d9e9e7d021272beb8d9e8"}},{"ruleId":"D2","level":"warning","message":{"text":"TagsCmd.Exec (cognitive 16): TagsCmd.Exec has cognitive complexity 16 (threshold 15). Drivers by points: if/else 15, loops 1 (nesting depth added 6). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/schcmds/tags.go"},"region":{"startLine":68}}}],"partialFingerprints":{"codehealthFindingId/v1":"3b8f4e2cd9df7474c328eb9aa7aded946d8909b824672effd57cc4383226ee4c"}},{"ruleId":"D2","level":"warning","message":{"text":"StreamScanner.Scan (cognitive 16): StreamScanner.Scan has cognitive complexity 16 (threshold 15). Drivers by points: if/else 13, boolean chains 2, loops 1 (nesting depth added 3). To reduce it, split the body: most of this score is breadth rather than depth \u2014 checks laid out side by side rather than stacked \u2014 so group the statements between the checks into named steps and move each step into its own function. Some of it IS depth: where a check sits inside another whose only job is to reach it, merge the two into one condition."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/sql_statement_scanner.go"},"region":{"startLine":93}}}],"partialFingerprints":{"codehealthFindingId/v1":"965434a23772a73e160b7983dce4bdabf7327debd1b71bded7ddf79f960e22d9"}},{"ruleId":"D2","level":"warning","message":{"text":"sqlserver.GetDataDirPreStart (cognitive 16): sqlserver.GetDataDirPreStart has cognitive complexity 16 (threshold 15). Drivers by points: if/else 15, boolean chains 1 (nesting depth added 5). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/sqlserver/sqlserver.go"},"region":{"startLine":392}}}],"partialFingerprints":{"codehealthFindingId/v1":"402e0271f3d9ff2d29c1fec82cc6405ac56a7a6842fc83a322a5c0a9fd913853"}},{"ruleId":"D2","level":"warning","message":{"text":"ConnectionQueryist.Query (cognitive 16): ConnectionQueryist.Query has cognitive complexity 16 (threshold 15). Drivers by points: if/else 12, loops 3, boolean chains 1 (nesting depth added 8). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/sqlserver/queryist_utils.go"},"region":{"startLine":141}}}],"partialFingerprints":{"codehealthFindingId/v1":"0e40c7d6b013196dd9814945c54c0e2e2c7ecc1c5df462731c17e084b31880ea"}},{"ruleId":"D2","level":"warning","message":{"text":"branch_control.processMatch (cognitive 16): branch_control.processMatch has cognitive complexity 16 (threshold 15). Drivers by points: if/else 15, match/switch 1 (nesting depth added 8). The drivers above price the dispatch low by construction \u2014 a dispatch is charged once however many cases it lists, while each branch inside an arm is charged in full \u2014 so most of this count is what the case bodies hold, and the arms are where it can be reduced. To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Keep every case explicit, and make the behaviour for cases you do not list a deliberate choice rather than an accident."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/branch_control/expr_parser_node.go"},"region":{"startLine":198}}}],"partialFingerprints":{"codehealthFindingId/v1":"4c57fb36117873cfd00b5e99aced980896dded7d360c2c6f3a5a71f0fcdf0476"}},{"ruleId":"D2","level":"warning","message":{"text":"DoltDB.WriteEmptyRepoWithCommitMetaGeneratorAndDefaultBranch (cognitive 16): DoltDB.WriteEmptyRepoWithCommitMetaGeneratorAndDefaultBranch has cognitive complexity 16 (threshold 15). Drivers by points: if/else 15, loops 1 (nesting depth added 4). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/doltdb/doltdb.go"},"region":{"startLine":279}}}],"partialFingerprints":{"codehealthFindingId/v1":"83e79ebaf173b0c5b412116ac1e983c51935acf5d9009057a2bd92480a86f2ad"}},{"ruleId":"D2","level":"warning","message":{"text":"DoltDB.NewBranchAtCommit (cognitive 16): DoltDB.NewBranchAtCommit has cognitive complexity 16 (threshold 15). Drivers by points: if/else 14, boolean chains 1, loops 1 (nesting depth added 4). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/doltdb/doltdb.go"},"region":{"startLine":1551}}}],"partialFingerprints":{"codehealthFindingId/v1":"2b83315a91c3793fcd99aa33deceed3a4036733b68e7cf274b5c9cab63eb6f2b"}},{"ruleId":"D2","level":"warning","message":{"text":"actions.CloneRemote (cognitive 16): actions.CloneRemote has cognitive complexity 16 (threshold 15). Drivers by points: if/else 14, boolean chains 1, loops 1 (nesting depth added 2). To reduce it, split the body: most of this score is breadth rather than depth \u2014 checks laid out side by side rather than stacked \u2014 so group the statements between the checks into named steps and move each step into its own function. Some of it IS depth: where a check sits inside another whose only job is to reach it, merge the two into one condition, and where an else follows a branch that already returns, drop the trailing else and let the rest of the body continue at one level."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/env/actions/clone.go"},"region":{"startLine":183}}}],"partialFingerprints":{"codehealthFindingId/v1":"ef1ec813825da759bf4033d4d4311bac4bb98dd95bd09c31ecf7bdc7c16706b4"}},{"ruleId":"D2","level":"warning","message":{"text":"actions.runTestsUsingDtablefunctions (cognitive 16): actions.runTestsUsingDtablefunctions has cognitive complexity 16 (threshold 15). Drivers by points: if/else 13, loops 3 (nesting depth added 8). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/env/actions/commit.go"},"region":{"startLine":217}}}],"partialFingerprints":{"codehealthFindingId/v1":"881151e9682b0b549990c24008ab8ca510f3c7aafd27c20f68edf522a6e119f2"}},{"ruleId":"D2","level":"warning","message":{"text":"actions.IterResolvedTagsPaginated (cognitive 16): actions.IterResolvedTagsPaginated has cognitive complexity 16 (threshold 15). Drivers by points: if/else 13, loops 3 (nesting depth added 6). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/env/actions/tag.go"},"region":{"startLine":169}}}],"partialFingerprints":{"codehealthFindingId/v1":"b014ab6fa0d55084aa0ab5507ee2053aa3d8da94facacc82d9cccf1f144f41c1"}},{"ruleId":"D2","level":"warning","message":{"text":"dolt_ci.HasDoltCITables (cognitive 16): dolt_ci.HasDoltCITables has cognitive complexity 16 (threshold 15). Drivers by points: if/else 12, boolean chains 3, loops 1 (nesting depth added 5). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/env/actions/dolt_ci/schema.go"},"region":{"startLine":67}}}],"partialFingerprints":{"codehealthFindingId/v1":"cdc4beb6389819398cdac453ef557d2190b9f98240e0fb3b202409ee3eac87e6"}},{"ruleId":"D2","level":"warning","message":{"text":"env.getPushTargetsAndRemoteFromNoArg (cognitive 16): env.getPushTargetsAndRemoteFromNoArg has cognitive complexity 16 (threshold 15). Drivers by points: if/else 16 (nesting depth added 6). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/env/remotes.go"},"region":{"startLine":287}}}],"partialFingerprints":{"codehealthFindingId/v1":"7fe2f66dcbd9405d3456e65f379049c8238ea752bf4ab68775862480a93d2729"}},{"ruleId":"D2","level":"warning","message":{"text":"DoltEnv.initWorkingSetFromRepoState (cognitive 16): DoltEnv.initWorkingSetFromRepoState has cognitive complexity 16 (threshold 15). Drivers by points: if/else 14, boolean chains 2 (nesting depth added 4). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/env/environment.go"},"region":{"startLine":323}}}],"partialFingerprints":{"codehealthFindingId/v1":"8601c8b5c0dc31808fe36e4138ceeb618435541322e6da320f8a2123afea4cbc"}},{"ruleId":"D2","level":"warning","message":{"text":"merge.purgeFulltextTableData (cognitive 16): merge.purgeFulltextTableData has cognitive complexity 16 (threshold 15). Drivers by points: if/else 15, loops 1 (nesting depth added 7). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/merge/fulltext_rebuild.go"},"region":{"startLine":314}}}],"partialFingerprints":{"codehealthFindingId/v1":"9a45baa63ba2a533254f28fcab4d1452bd8458bcec239dfe75aaf3c7ab094831"}},{"ruleId":"D2","level":"warning","message":{"text":"merge.buildIndex (cognitive 16): merge.buildIndex has cognitive complexity 16 (threshold 15). Drivers by points: if/else 16 (nesting depth added 7). Of this number, 8 points are the body\u0027s own statements and 8 belong to one function literal inside it that branches. To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/merge/merge_prolly_indexes.go"},"region":{"startLine":142}}}],"partialFingerprints":{"codehealthFindingId/v1":"5355fb83c38ad36b7749242c9250dbc5d8c680e0dbba2f765d48c6aeb3e93779"}},{"ruleId":"D2","level":"warning","message":{"text":"merge.newUniqValidator (cognitive 16): merge.newUniqValidator has cognitive complexity 16 (threshold 15). Drivers by points: if/else 14, boolean chains 1, loops 1 (nesting depth added 5). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/merge/merge_prolly_rows.go"},"region":{"startLine":801}}}],"partialFingerprints":{"codehealthFindingId/v1":"fb88a018a23104f8399fb456c39bcb9e52f5b5b2bca5a9363d4f0fefdd81e11f"}},{"ruleId":"D2","level":"warning","message":{"text":"uniqIndex.findCollisions (cognitive 16): uniqIndex.findCollisions has cognitive complexity 16 (threshold 15). Drivers by points: if/else 14, boolean chains 1, loops 1 (nesting depth added 4). Of this number, 13 points are the body\u0027s own statements and 3 belong to 2 function literals inside it that branch. To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/merge/merge_prolly_rows.go"},"region":{"startLine":1059}}}],"partialFingerprints":{"codehealthFindingId/v1":"26b3e2ded1131745766b20f64932794b998b0a2d67d7e9b2ef6e05a666c665c6"}},{"ruleId":"D2","level":"warning","message":{"text":"valueMerger.TryMerge (cognitive 16): valueMerger.TryMerge has cognitive complexity 16 (threshold 15). Drivers by points: if/else 13, loops 2, boolean chains 1 (nesting depth added 5). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/merge/merge_prolly_rows.go"},"region":{"startLine":1992}}}],"partialFingerprints":{"codehealthFindingId/v1":"ec68604f832dac7f2338dd2f6fd9bcf2f02b5bce06a24d025c2cdc0d9780674b"}},{"ruleId":"D2","level":"warning","message":{"text":"mvdata.InferSchema (cognitive 16): mvdata.InferSchema has cognitive complexity 16 (threshold 15). Drivers by points: if/else 13, loops 3 (nesting depth added 6). Of this number, 8 points are the body\u0027s own statements and 8 belong to one function literal inside it that branches. To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/mvdata/data_mover.go"},"region":{"startLine":119}}}],"partialFingerprints":{"codehealthFindingId/v1":"26771fe70195fd6bb48e5a00dd6dc9ea7597b5429936fa91f66e5d5c12054428"}},{"ruleId":"D2","level":"warning","message":{"text":"rebase.rebaseRecursive (cognitive 16): rebase.rebaseRecursive has cognitive complexity 16 (threshold 15). Drivers by points: if/else 14, loops 2 (nesting depth added 2). To reduce it, split the body: most of this score is breadth rather than depth \u2014 checks laid out side by side rather than stacked \u2014 so group the statements between the checks into named steps and move each step into its own function. Some of it IS depth: where a check sits inside another whose only job is to reach it, merge the two into one condition."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/rebase/filter_branch.go"},"region":{"startLine":256}}}],"partialFingerprints":{"codehealthFindingId/v1":"ce3390896b37e5d0f5c6b4091141c2895f6c7f8c564fda058ea34b6dd77a5f2b"}},{"ruleId":"D2","level":"warning","message":{"text":"remotesrv.NewServer (cognitive 16): remotesrv.NewServer has cognitive complexity 16 (threshold 15). Drivers by points: if/else 14, loops 2 (nesting depth added 5). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/remotesrv/server.go"},"region":{"startLine":101}}}],"partialFingerprints":{"codehealthFindingId/v1":"52f9365e5286bf6a0c649c5b4c2c7e06712aff4325e74453d2d9f9ae3dfb17f8"}},{"ruleId":"D2","level":"warning","message":{"text":"singleSymmetricKeySealer.Unseal (cognitive 16): singleSymmetricKeySealer.Unseal has cognitive complexity 16 (threshold 15). Drivers by points: if/else 16. To reduce it, split the body: this score is breadth rather than depth \u2014 many checks laid out side by side rather than nested inside one another, so inverting conditions into early returns has nothing left to flatten. Group the statements between the checks into named steps and move each step into its own function, so the body reads as a short sequence of named stages."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/remotesrv/sealer.go"},"region":{"startLine":106}}}],"partialFingerprints":{"codehealthFindingId/v1":"3efa3fd409bf6634832687add4a383d369a9bd8e2edb12c99f4480f1094c2ced"}},{"ruleId":"D2","level":"warning","message":{"text":"encoding.serializeSchemaColumns (cognitive 16): encoding.serializeSchemaColumns has cognitive complexity 16 (threshold 15). Drivers by points: if/else 14, loops 2 (nesting depth added 6). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/schema/encoding/serialization.go"},"region":{"startLine":222}}}],"partialFingerprints":{"codehealthFindingId/v1":"a4f28ad936785441e9f2ffbeabf2dac20e07a74769090b01ac448b667b474772"}},{"ruleId":"D2","level":"warning","message":{"text":"servercfg.ValidateClusterConfig (cognitive 16): servercfg.ValidateClusterConfig has cognitive complexity 16 (threshold 15). Drivers by points: if/else 11, boolean chains 4, loops 1 (nesting depth added 2). To reduce it, split the body: most of this score is breadth rather than depth \u2014 checks laid out side by side rather than stacked \u2014 so group the statements between the checks into named steps and move each step into its own function. Some of it IS depth: where a check sits inside another whose only job is to reach it, merge the two into one condition."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/servercfg/serverconfig.go"},"region":{"startLine":420}}}],"partialFingerprints":{"codehealthFindingId/v1":"a5a70fa61071e99a06eeeff0cf186909e9ef95e12899ebaad0334acc6266fe42"}},{"ruleId":"D2","level":"warning","message":{"text":"sqle.getStatusTableRootsProvider (cognitive 16): sqle.getStatusTableRootsProvider has cognitive complexity 16 (threshold 15). Drivers by points: if/else 15, boolean chains 1 (nesting depth added 6). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/database.go"},"region":{"startLine":1277}}}],"partialFingerprints":{"codehealthFindingId/v1":"041505778b7eefdc1b61f98d30eff52a8cc3a3fadc298746186660da0f536bf6"}},{"ruleId":"D2","level":"warning","message":{"text":"sqle.initialStateForRevisionDb (cognitive 16): sqle.initialStateForRevisionDb has cognitive complexity 16 (threshold 15). Drivers by points: if/else 15, match/switch 1 (nesting depth added 7). The drivers above price the dispatch low by construction \u2014 a dispatch is charged once however many cases it lists, while each branch inside an arm is charged in full \u2014 so most of this count is what the case bodies hold, and the arms are where it can be reduced. To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Keep every case explicit, and make the behaviour for cases you do not list a deliberate choice rather than an accident."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/database_provider.go"},"region":{"startLine":1552}}}],"partialFingerprints":{"codehealthFindingId/v1":"e3f1683a282052e0274b92f359fc9815f9f21271db70872a6f1afc4b9a54d789"}},{"ruleId":"D2","level":"warning","message":{"text":"cluster.applyBootstrapClusterConfig (cognitive 16): cluster.applyBootstrapClusterConfig has cognitive complexity 16 (threshold 15). Drivers by points: if/else 14, boolean chains 2 (nesting depth added 3). To reduce it, split the body: most of this score is breadth rather than depth \u2014 checks laid out side by side rather than stacked \u2014 so group the statements between the checks into named steps and move each step into its own function. Some of it IS depth: where a check sits inside another whose only job is to reach it, merge the two into one condition, and where an else follows a branch that already returns, drop the trailing else and let the rest of the body continue at one level."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/cluster/controller.go"},"region":{"startLine":575}}}],"partialFingerprints":{"codehealthFindingId/v1":"df78556a19acb42ce2b07cf9502141abc2122def00fddff5d40f544ad0796a31"}},{"ruleId":"D2","level":"warning","message":{"text":"dprocedures.doDoltPush (cognitive 16): dprocedures.doDoltPush has cognitive complexity 16 (threshold 15). Drivers by points: if/else 14, match/switch 2 (nesting depth added 3). To reduce it, split the body: this score is breadth rather than depth \u2014 many checks laid out side by side rather than nested inside one another, so inverting conditions into early returns has nothing left to flatten. Group the statements between the checks into named steps and move each step into its own function, so the body reads as a short sequence of named stages."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dprocedures/dolt_push.go"},"region":{"startLine":55}}}],"partialFingerprints":{"codehealthFindingId/v1":"d27dda563eb43f723b1e5e9e860ad1400879bbcf7743e1219b5a6d161f4f2683"}},{"ruleId":"D2","level":"warning","message":{"text":"dprocedures.doDoltConstraintsVerify (cognitive 16): dprocedures.doDoltConstraintsVerify has cognitive complexity 16 (threshold 15). Drivers by points: if/else 16 (nesting depth added 3). To reduce it, split the body: most of this score is breadth rather than depth \u2014 checks laid out side by side rather than stacked \u2014 so group the statements between the checks into named steps and move each step into its own function. Some of it IS depth: where a check sits inside another whose only job is to reach it, merge the two into one condition, and where an else follows a branch that already returns, drop the trailing else and let the rest of the body continue at one level."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dprocedures/dolt_verify_constraints.go"},"region":{"startLine":41}}}],"partialFingerprints":{"codehealthFindingId/v1":"1a316fc79c221d44298bcf0be2a941925f4468107de3da59464ec094d41d05d2"}},{"ruleId":"D2","level":"warning","message":{"text":"dprocedures.calculateViolations (cognitive 16): dprocedures.calculateViolations has cognitive complexity 16 (threshold 15). Drivers by points: if/else 13, loops 3 (nesting depth added 6). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dprocedures/dolt_verify_constraints.go"},"region":{"startLine":113}}}],"partialFingerprints":{"codehealthFindingId/v1":"84a87f15a1681d864baf1da8fbe9f12caa915cf0447f5e04af8141879fa7ae3c"}},{"ruleId":"D2","level":"warning","message":{"text":"dtables.calculateColSchemaDiff (cognitive 16): dtables.calculateColSchemaDiff has cognitive complexity 16 (threshold 15). Drivers by points: if/else 8, loops 8 (nesting depth added 6). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dtables/column_diff_table.go"},"region":{"startLine":611}}}],"partialFingerprints":{"codehealthFindingId/v1":"920c7989f63ba2988e2c1ba394ffdc77362b6e75d8af070844b2fedb2f1e385e"}},{"ruleId":"D2","level":"warning","message":{"text":"dtables.BuildLogTableRow (cognitive 16): dtables.BuildLogTableRow has cognitive complexity 16 (threshold 15). Drivers by points: if/else 14, loops 2 (nesting depth added 6). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dtables/log_table.go"},"region":{"startLine":200}}}],"partialFingerprints":{"codehealthFindingId/v1":"73990d7a445beca45e8b868bb8c811b6d83bdabe4d5ee9861faab0e638d69155"}},{"ruleId":"D2","level":"warning","message":{"text":"CommitDiffTable.LookupPartitions (cognitive 16): CommitDiffTable.LookupPartitions has cognitive complexity 16 (threshold 15). Drivers by points: if/else 13, match/switch 2, boolean chains 1. To reduce it, split the body: this score is breadth rather than depth \u2014 many checks laid out side by side rather than nested inside one another, so inverting conditions into early returns has nothing left to flatten. Group the statements between the checks into named steps and move each step into its own function, so the body reads as a short sequence of named stages."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dtables/commit_diff_table.go"},"region":{"startLine":159}}}],"partialFingerprints":{"codehealthFindingId/v1":"5395441bec16a7901293393f8ad5917b22edbdb13086440195955f1a21acf5ad"}},{"ruleId":"D2","level":"warning","message":{"text":"DiffTable.scanHeightForChild (cognitive 16): DiffTable.scanHeightForChild has cognitive complexity 16 (threshold 15). Drivers by points: if/else 13, loops 3 (nesting depth added 7). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dtables/diff_table.go"},"region":{"startLine":380}}}],"partialFingerprints":{"codehealthFindingId/v1":"35eb6d9d6758e66a0debda65786fedee0f466b2e1fba7fa4f45e32e3d31d3754"}},{"ruleId":"D2","level":"warning","message":{"text":"workspaceDiffIter.queueWorkspaceRows (cognitive 16): workspaceDiffIter.queueWorkspaceRows has cognitive complexity 16 (threshold 15). Drivers by points: match/switch 6, boolean chains 5, if/else 3, loops 2 (nesting depth added 3). Of this number, 8 points are the body\u0027s own statements and 8 belong to 2 function literals inside it that branch. To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dtables/workspace_table.go"},"region":{"startLine":921}}}],"partialFingerprints":{"codehealthFindingId/v1":"0535d7b5b23e477dd936df6bba12ac838f1ad1aa642aa4a8c6696a0a617871a3"}},{"ruleId":"D2","level":"warning","message":{"text":"index.LookupToPointSelectStr (cognitive 16): index.LookupToPointSelectStr has cognitive complexity 16 (threshold 15). Drivers by points: if/else 15, loops 1 (nesting depth added 7). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/index/dolt_index.go"},"region":{"startLine":1377}}}],"partialFingerprints":{"codehealthFindingId/v1":"3e972291ca25be88617dbc18b3bf96f3914f001fb89af1bd62ad96bdc2574845"}},{"ruleId":"D2","level":"warning","message":{"text":"prollyKeylessIndexIter.queueRows (cognitive 16): prollyKeylessIndexIter.queueRows has cognitive complexity 16 (threshold 15). Drivers by points: if/else 8, loops 5, match/switch 3 (nesting depth added 8). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/index/prolly_index_iter.go"},"region":{"startLine":457}}}],"partialFingerprints":{"codehealthFindingId/v1":"b98cd92034b8094d0eaf0af975a0ce56e1b208e0908f8c39b7f54bd505f96a5f"}},{"ruleId":"D2","level":"warning","message":{"text":"prollyToSqlJoiner.buildRow (cognitive 16): prollyToSqlJoiner.buildRow has cognitive complexity 16 (threshold 15). Drivers by points: if/else 11, loops 5 (nesting depth added 8). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/kvexec/builder.go"},"region":{"startLine":273}}}],"partialFingerprints":{"codehealthFindingId/v1":"2ab0ada46556327954803c4a8ba01419cb42868ed312b4b8325a84edb68d0ca9"}},{"ruleId":"D2","level":"warning","message":{"text":"hooksFiringRemoteSrvStore.Commit (cognitive 16): hooksFiringRemoteSrvStore.Commit has cognitive complexity 16 (threshold 15). Drivers by points: if/else 12, boolean chains 2, loops 2 (nesting depth added 4). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/remotesrv.go"},"region":{"startLine":95}}}],"partialFingerprints":{"codehealthFindingId/v1":"cef80b45ed8fc1ccdbbe66c4e13bdc1f7a13adcb30537349467852cf0ce11e3e"}},{"ruleId":"D2","level":"warning","message":{"text":"StatsController.initStorage (cognitive 16): StatsController.initStorage has cognitive complexity 16 (threshold 15). Drivers by points: if/else 16 (nesting depth added 3). To reduce it, split the body: most of this score is breadth rather than depth \u2014 checks laid out side by side rather than stacked \u2014 so group the statements between the checks into named steps and move each step into its own function. Some of it IS depth: where a check sits inside another whose only job is to reach it, merge the two into one condition, and where an else follows a branch that already returns, drop the trailing else and let the rest of the body continue at one level."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/statspro/controller.go"},"region":{"startLine":603}}}],"partialFingerprints":{"codehealthFindingId/v1":"d014defe41506f236b710cc8d4caf9d44ee19a6efa002db5eda1433158fb7872"}},{"ruleId":"D2","level":"warning","message":{"text":"WritableDoltTable.UpdateForeignKey (cognitive 16): WritableDoltTable.UpdateForeignKey has cognitive complexity 16 (threshold 15). Drivers by points: if/else 15, boolean chains 1 (nesting depth added 3). To reduce it, split the body: most of this score is breadth rather than depth \u2014 checks laid out side by side rather than stacked \u2014 so group the statements between the checks into named steps and move each step into its own function. Some of it IS depth: where a check sits inside another whose only job is to reach it, merge the two into one condition."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/tables.go"},"region":{"startLine":2871}}}],"partialFingerprints":{"codehealthFindingId/v1":"698bfbcb79bede657110fb591ee22c6452d1972294761db7766542ab271141ef"}},{"ruleId":"D2","level":"warning","message":{"text":"AlterableDoltTable.AddColumn (cognitive 16): AlterableDoltTable.AddColumn has cognitive complexity 16 (threshold 15). Drivers by points: if/else 16 (nesting depth added 2). To reduce it, split the body: most of this score is breadth rather than depth \u2014 checks laid out side by side rather than stacked \u2014 so group the statements between the checks into named steps and move each step into its own function. Some of it IS depth: where a check sits inside another whose only job is to reach it, merge the two into one condition."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/tables.go"},"region":{"startLine":1535}}}],"partialFingerprints":{"codehealthFindingId/v1":"b21b918c16873c17ae5961243c47799fec3a3c2bb9032baece861a4db92cc2c3"}},{"ruleId":"D2","level":"warning","message":{"text":"prollySecondaryIndexWriter.checkForUniqueKeyErr (cognitive 16): prollySecondaryIndexWriter.checkForUniqueKeyErr has cognitive complexity 16 (threshold 15). Drivers by points: if/else 13, loops 3 (nesting depth added 4). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/writer/prolly_index_writer.go"},"region":{"startLine":413}}}],"partialFingerprints":{"codehealthFindingId/v1":"c6d02bf71133cfc0738f76f26068e1368c19044be3baf59195cf1070a0eb2efa"}},{"ruleId":"D2","level":"warning","message":{"text":"ParquetReader.ReadSqlRow (cognitive 16): ParquetReader.ReadSqlRow has cognitive complexity 16 (threshold 15). Drivers by points: if/else 9, match/switch 5, boolean chains 1, loops 1 (nesting depth added 5). Most of this is not in the body itself: 1 of the 16 points is its own statement and the rest belongs to one function literal inside it that branches (line 240). The decisions are inside the literal, which nothing outside this body can call, review or test on its own, so splitting the enclosing body is not the move available here. To reduce it, lift the literal\u0027s work into a named function or method at the enclosing scope and have the literal call it, then reduce whichever part then reads as the largest."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/table/typed/parquet/reader.go"},"region":{"startLine":233}}}],"partialFingerprints":{"codehealthFindingId/v1":"fd384f099549f62a9a6957da4858e75bb4f340d7ad6a91bd20f867e0247a7dd2"}},{"ruleId":"D2","level":"warning","message":{"text":"csv.getColHeaders (cognitive 16): csv.getColHeaders has cognitive complexity 16 (threshold 15). Drivers by points: if/else 12, loops 3, boolean chains 1 (nesting depth added 8). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/table/untyped/csv/reader.go"},"region":{"startLine":117}}}],"partialFingerprints":{"codehealthFindingId/v1":"406ecfae3910a85c2cfae90b64b64c62cc76c33de5485539696d967dad55ee2f"}},{"ruleId":"D2","level":"warning","message":{"text":"FixedWidthTableWriter.writeRow (cognitive 16): FixedWidthTableWriter.writeRow has cognitive complexity 16 (threshold 15). Drivers by points: if/else 13, loops 3 (nesting depth added 8). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/table/untyped/tabular/fixedwidth_tablewriter.go"},"region":{"startLine":225}}}],"partialFingerprints":{"codehealthFindingId/v1":"0077d45a17370bf845965b87544e907e7257c7745cdae770ac816121218c19ec"}},{"ruleId":"D2","level":"warning","message":{"text":"doltBenchmarkerImpl.Benchmark (cognitive 16): doltBenchmarkerImpl.Benchmark has cognitive complexity 16 (threshold 15). Drivers by points: if/else 13, loops 3 (nesting depth added 5). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/performance/utils/benchmark_runner/dolt.go"},"region":{"startLine":63}}}],"partialFingerprints":{"codehealthFindingId/v1":"08abfbbb562a66a243a1fefc7a254540dcdecd145d4910b2be289f11a48ddc16"}},{"ruleId":"D2","level":"warning","message":{"text":"postgresBenchmarkerImpl.Benchmark (cognitive 16): postgresBenchmarkerImpl.Benchmark has cognitive complexity 16 (threshold 15). Drivers by points: if/else 13, loops 3 (nesting depth added 5). Of this number, 15 points are the body\u0027s own statements and 1 belongs to one function literal inside it that branches. To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/performance/utils/benchmark_runner/postgres.go"},"region":{"startLine":94}}}],"partialFingerprints":{"codehealthFindingId/v1":"edc8b5217935a5a8155112c32609fff78b9f1a56cc0790230c08097db9ddb7e0"}},{"ruleId":"D2","level":"warning","message":{"text":"AzureBlobstore.Get (cognitive 16): AzureBlobstore.Get has cognitive complexity 16 (threshold 15). Drivers by points: if/else 15, boolean chains 1 (nesting depth added 6). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/blobstore/az_blobstore.go"},"region":{"startLine":115}}}],"partialFingerprints":{"codehealthFindingId/v1":"c2594ce6ce476b97e0934fc7a9b4363e3f324b280dd96a8ec264f19d1b0d6750"}},{"ruleId":"D2","level":"warning","message":{"text":"AzureBlobstore.Put (cognitive 16): AzureBlobstore.Put has cognitive complexity 16 (threshold 15). Drivers by points: if/else 13, boolean chains 2, loops 1 (nesting depth added 5). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/blobstore/az_blobstore.go"},"region":{"startLine":190}}}],"partialFingerprints":{"codehealthFindingId/v1":"83affccd06edacd58b72caa6cc7274dead37e5b007bee10c7745a67336eff28c"}},{"ruleId":"D2","level":"warning","message":{"text":"GitBlobstore.hashParts (cognitive 16): GitBlobstore.hashParts has cognitive complexity 16 (threshold 15). Drivers by points: if/else 15, loops 1 (nesting depth added 8). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/blobstore/git_blobstore.go"},"region":{"startLine":1245}}}],"partialFingerprints":{"codehealthFindingId/v1":"2a4dcbe68802a7693a46a61b33a4915f1c0f23647316789de88f9a1bd05b41cf"}},{"ruleId":"D2","level":"warning","message":{"text":"datas.validateDatasetIdComponent (cognitive 16): datas.validateDatasetIdComponent has cognitive complexity 16 (threshold 15). Drivers by points: if/else 13, match/switch 2, loops 1 (nesting depth added 8). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/datas/dataset.go"},"region":{"startLine":110}}}],"partialFingerprints":{"codehealthFindingId/v1":"be04ff0f433f00ee3b0683e021111e01b22d1511520a860f4a5b52014d5a2d8e"}},{"ruleId":"D2","level":"warning","message":{"text":"datas.workingset_flatbuffer (cognitive 16): datas.workingset_flatbuffer has cognitive complexity 16 (threshold 15). Drivers by points: if/else 16 (nesting depth added 4). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/datas/workingset.go"},"region":{"startLine":87}}}],"partialFingerprints":{"codehealthFindingId/v1":"90e1817dd39e0edbb6588ce09bb22f7bf9d24a561cee705b115b6b37fb92ce85"}},{"ruleId":"D2","level":"warning","message":{"text":"journalWriter.bootstrapJournal (cognitive 16): journalWriter.bootstrapJournal has cognitive complexity 16 (threshold 15). Drivers by points: if/else 13, boolean chains 2, match/switch 1 (nesting depth added 5). Most of this is not in the body itself: 7 of the 16 points are its own statements and the rest belongs to one function literal inside it that branches (line 194). The decisions are inside the literal, which nothing outside this body can call, review or test on its own, so splitting the enclosing body is not the move available here. To reduce it, lift the literal\u0027s work into a named function or method at the enclosing scope and have the literal call it, then reduce whichever part then reads as the largest."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/nbs/journal_writer.go"},"region":{"startLine":171}}}],"partialFingerprints":{"codehealthFindingId/v1":"2a8a9bbfe25a7c48088c98d84f67f697442d16e68e4e6e5470d59efd9c08c83e"}},{"ruleId":"D2","level":"warning","message":{"text":"main.main (cognitive 16): main.main has cognitive complexity 16 (threshold 15). Drivers by points: if/else 10, loops 4, boolean chains 2 (nesting depth added 4). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/utils/batsee/main.go"},"region":{"startLine":147}}}],"partialFingerprints":{"codehealthFindingId/v1":"3b84557ed81c561eeb10bfecc1b73cdec35beddb9839ae9b5f62cf69eb799964"}},{"ruleId":"D2","level":"warning","message":{"text":"main.CheckGo (cognitive 16): main.CheckGo has cognitive complexity 16 (threshold 15). Drivers by points: if/else 12, boolean chains 2, loops 2 (nesting depth added 5). Most of this is not in the body itself: 2 of the 16 points are its own statements and the rest belongs to one function literal inside it that branches (line 251). The decisions are inside the literal, which nothing outside this body can call, review or test on its own, so splitting the enclosing body is not the move available here. To reduce it, lift the literal\u0027s work into a named function or method at the enclosing scope and have the literal call it, then reduce whichever part then reads as the largest."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/utils/copyrightshdrs/main.go"},"region":{"startLine":245}}}],"partialFingerprints":{"codehealthFindingId/v1":"2eafdaa4ac5c16a28a198c2f48cd065e94fdf49ca0e3e761c28e4fd6946405d7"}},{"ruleId":"D2","level":"warning","message":{"text":"main.main (cognitive 16): main.main has cognitive complexity 16 (threshold 15). Drivers by points: if/else 15, boolean chains 1 (nesting depth added 2). To reduce it, split the body: most of this score is breadth rather than depth \u2014 checks laid out side by side rather than stacked \u2014 so group the statements between the checks into named steps and move each step into its own function. Some of it IS depth: where a check sits inside another whose only job is to reach it, merge the two into one condition, and where an else follows a branch that already returns, drop the trailing else and let the rest of the body continue at one level."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/utils/remotesrv/main.go"},"region":{"startLine":36}}}],"partialFingerprints":{"codehealthFindingId/v1":"fac7ee0dd296c34eaacdc5aa738dad625421812ad0ffd41208de6eeb76ad2c6d"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: enginetest/dolt_queries.go: FileTooLong \u2014 5287 significant lines (blank, comment-only and punctuation-only lines excluded). To reduce it, split the file along the responsibilities already in it: move each cohesive group of declarations into its own sibling file in the same module or package, so no one file has to be read whole to change one of them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/enginetest/dolt_queries.go"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"37d2bd00f9692d78e36d6b237c7bd19ce7d66a45a941073672b2b21be6e55565"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: enginetest/dolt_queries_diff.go: FileTooLong \u2014 4271 significant lines (blank, comment-only and punctuation-only lines excluded). To reduce it, split the file along the responsibilities already in it: move each cohesive group of declarations into its own sibling file in the same module or package, so no one file has to be read whole to change one of them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/enginetest/dolt_queries_diff.go"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"66689a06fddfa9cc39a70adf34676f3cdf8f67f55bba87c1309058d73969a7e8"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: enginetest/dolt_queries_merge.go: FileTooLong \u2014 3710 significant lines (blank, comment-only and punctuation-only lines excluded). To reduce it, split the file along the responsibilities already in it: move each cohesive group of declarations into its own sibling file in the same module or package, so no one file has to be read whole to change one of them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/enginetest/dolt_queries_merge.go"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"5459d3f2ee6e47a9c0c42096f59c253e4f0da1dc947b4e6e1be21d4f8e524b2a"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: sqle/tables.go: FileTooLong \u2014 2070 significant lines (blank, comment-only and punctuation-only lines excluded). To reduce it, split the file along the responsibilities already in it: move each cohesive group of declarations into its own sibling file in the same module or package, so no one file has to be read whole to change one of them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/tables.go"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"5bc26d67d6a60a94f1a709bee5398e96bd18944243604433aa9ae426dc6b8535"}},{"ruleId":"D3","level":"warning","message":{"text":"TooManyMethods: DoltDB: TooManyMethods \u2014 120 methods, declared across 2 files: doltdb/doltdb.go (119), doltdb/commit.go (1). That list is where to read them, not a suggestion to split the file: the members belong to the type wherever they are declared, so moving them between files leaves the count unchanged. To reduce it, group the members that share the same data into a smaller type of their own and delegate to it, so no single type carries every responsibility."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/doltdb/doltdb.go"},"region":{"startLine":126}}}],"partialFingerprints":{"codehealthFindingId/v1":"ab03f9d78c42f8c7a4c16ec1f5d18c6da9fba9bf152dbc86d1fc4f7ae460dbce"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: enginetest/dolt_transaction_queries.go: FileTooLong \u2014 1963 significant lines (blank, comment-only and punctuation-only lines excluded). To reduce it, split the file along the responsibilities already in it: move each cohesive group of declarations into its own sibling file in the same module or package, so no one file has to be read whole to change one of them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/enginetest/dolt_transaction_queries.go"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"702e715ea22b0306fcd75a0d1b643c1c91182bfd09e414b95e45638a8830b68a"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: sqle/database.go: FileTooLong \u2014 1907 significant lines (blank, comment-only and punctuation-only lines excluded). To reduce it, split the file along the responsibilities already in it: move each cohesive group of declarations into its own sibling file in the same module or package, so no one file has to be read whole to change one of them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/database.go"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"72e060a16bc455eef3b1f0b4a790b9d0c83e85817d9417240b1126cfd0469b72"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: enginetest/dolt_queries_schema_merge.go: FileTooLong \u2014 1880 significant lines (blank, comment-only and punctuation-only lines excluded). To reduce it, split the file along the responsibilities already in it: move each cohesive group of declarations into its own sibling file in the same module or package, so no one file has to be read whole to change one of them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/enginetest/dolt_queries_schema_merge.go"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"8819f4476dd6ad13cea491f3b05e52757ea54f1bd1d45a3c5515e7db2dbaaa39"}},{"ruleId":"D3","level":"warning","message":{"text":"TooManyMethods: doltWorkflowManager: TooManyMethods \u2014 112 methods. To reduce it, group the members that share the same data into a smaller type of their own and delegate to it, so no single type carries every responsibility."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/env/actions/dolt_ci/workflow_manager.go"},"region":{"startLine":64}}}],"partialFingerprints":{"codehealthFindingId/v1":"b1ed70e72883c0816547c0ed6037bf2a6d6760bef7fd4c20be7849612f2c3d60"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: nbs/store.go: FileTooLong \u2014 1695 significant lines (blank, comment-only and punctuation-only lines excluded). To reduce it, split the file along the responsibilities already in it: move each cohesive group of declarations into its own sibling file in the same module or package, so no one file has to be read whole to change one of them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/nbs/store.go"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"6ad75da080869c3d230ba8fbc3311799b7b603950cd728f951e74c08abdd1aed"}},{"ruleId":"D3","level":"warning","message":{"text":"TooManyMethods: Database: TooManyMethods \u2014 96 methods. To reduce it, group the members that share the same data into a smaller type of their own and delegate to it, so no single type carries every responsibility."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/database.go"},"region":{"startLine":76}}}],"partialFingerprints":{"codehealthFindingId/v1":"04d4c1290e2c3ae176317e934d6b3d49d5fe5445f21e5dd74f407eee8797aa1d"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: merge/merge_prolly_rows.go: FileTooLong \u2014 1506 significant lines (blank, comment-only and punctuation-only lines excluded). To reduce it, split the file along the responsibilities already in it: move each cohesive group of declarations into its own sibling file in the same module or package, so no one file has to be read whole to change one of them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/merge/merge_prolly_rows.go"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"b3a2cd642b0172b98f482d35c2df79eb737a3cbc5a46c020a96784f50090d53d"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: dolt_ci/workflow_manager.go: FileTooLong \u2014 1496 significant lines (blank, comment-only and punctuation-only lines excluded). To reduce it, split the file along the responsibilities already in it: move each cohesive group of declarations into its own sibling file in the same module or package, so no one file has to be read whole to change one of them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/env/actions/dolt_ci/workflow_manager.go"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"a23f3cd7b8a6d8cf1a1aa386fdaa35b5cabb09078fce1e233308bc1d66f9b86b"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: doltdb/doltdb.go: FileTooLong \u2014 1391 significant lines (blank, comment-only and punctuation-only lines excluded). To reduce it, split the file along the responsibilities already in it: move each cohesive group of declarations into its own sibling file in the same module or package, so no one file has to be read whole to change one of them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/doltdb/doltdb.go"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"1ef660a2097c56b9edd75f4004337b76ce4ed593263912414a3d53c5675a654f"}},{"ruleId":"D3","level":"warning","message":{"text":"TooManyMethods: DoltSession: TooManyMethods \u2014 77 methods. To reduce it, group the members that share the same data into a smaller type of their own and delegate to it, so no single type carries every responsibility."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dsess/session.go"},"region":{"startLine":48}}}],"partialFingerprints":{"codehealthFindingId/v1":"ef0b9e18de6e6e80cf14fbaef9d8cc0aed9a6b0a99cacdedd24a9e2c7fb1d3f6"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: enginetest/dolt_queries_rebase.go: FileTooLong \u2014 1248 significant lines (blank, comment-only and punctuation-only lines excluded). To reduce it, split the file along the responsibilities already in it: move each cohesive group of declarations into its own sibling file in the same module or package, so no one file has to be read whole to change one of them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/enginetest/dolt_queries_rebase.go"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"b9b87b59d7de890bc9dfe172963b5e799d5cb02c73ca61ed5570839fe375c331"}},{"ruleId":"D3","level":"warning","message":{"text":"TooManyMethods: commandLineServerConfig: TooManyMethods \u2014 74 methods. To reduce it, group the members that share the same data into a smaller type of their own and delegate to it, so no single type carries every responsibility."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/sqlserver/command_line_config.go"},"region":{"startLine":33}}}],"partialFingerprints":{"codehealthFindingId/v1":"6f31503316b469565f5051bf1bf785c81709c2b191a55363fb78ebbbd4edb80e"}},{"ruleId":"D3","level":"warning","message":{"text":"TooManyMethods: commandLineServerConfig: TooManyMethods \u2014 74 methods. Most of these members implement servercfg.ServerConfig (52 of 74 members), so moving them onto a smaller type would remove them from that contract rather than reduce it. To reduce it, split the contract instead: give each cohesive group of operations its own smaller interface and its own implementing type. Where the contract has to stay whole, move the work behind these members into collaborator types, so what is left here is a forward per member rather than a responsibility per member."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/sqlserver/command_line_config.go"},"region":{"startLine":33}}}],"partialFingerprints":{"codehealthFindingId/v1":"cc5b5c94a3aacd4dccae3c7032f964abe25faf9035adfe87e6f34dd7f12c8dc5"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: commands/diff.go: FileTooLong \u2014 1196 significant lines (blank, comment-only and punctuation-only lines excluded). To reduce it, split the file along the responsibilities already in it: move each cohesive group of declarations into its own sibling file in the same module or package, so no one file has to be read whole to change one of them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/diff.go"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"b584c8c7438bcd3cc127da04860e007e4bdafd52ecc57f317855868af1cf31bf"}},{"ruleId":"D3","level":"warning","message":{"text":"TooManyMethods: NomsBlockStore: TooManyMethods \u2014 71 methods. To reduce it, group the members that share the same data into a smaller type of their own and delegate to it, so no single type carries every responsibility."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/nbs/store.go"},"region":{"startLine":96}}}],"partialFingerprints":{"codehealthFindingId/v1":"b4044bab6742b2ab7b4a5d61cd28dc1bf6c109684a17e2cdd34a52983a294311"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: dsess/session.go: FileTooLong \u2014 1179 significant lines (blank, comment-only and punctuation-only lines excluded). To reduce it, split the file along the responsibilities already in it: move each cohesive group of declarations into its own sibling file in the same module or package, so no one file has to be read whole to change one of them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dsess/session.go"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"9cb31dde6ac519921db51fac27fc1623d6532cf8c80b1101f27abeb05f3b8d6b"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: sqle/database_provider.go: FileTooLong \u2014 1153 significant lines (blank, comment-only and punctuation-only lines excluded). To reduce it, split the file along the responsibilities already in it: move each cohesive group of declarations into its own sibling file in the same module or package, so no one file has to be read whole to change one of them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/database_provider.go"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"d5253cc72369ba8e9a3d68b705cdbf7e94f6bfb55a90f0666153a75c30fccb69"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: enginetest/dolt_queries_legacy.go: FileTooLong \u2014 1072 significant lines (blank, comment-only and punctuation-only lines excluded). To reduce it, split the file along the responsibilities already in it: move each cohesive group of declarations into its own sibling file in the same module or package, so no one file has to be read whole to change one of them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/enginetest/dolt_queries_legacy.go"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"91a8f588106097634186f1b5a5a456caa5b1fef43e40c74d3ca1a80afa5f447c"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: blobstore/git_blobstore.go: FileTooLong \u2014 1054 significant lines (blank, comment-only and punctuation-only lines excluded). To reduce it, split the file along the responsibilities already in it: move each cohesive group of declarations into its own sibling file in the same module or package, so no one file has to be read whole to change one of them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/blobstore/git_blobstore.go"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"e0b5569e92cbbd6fd1fd1259708a3fcfea9c385520c674718f2bdec0f6dbe528"}},{"ruleId":"D3","level":"warning","message":{"text":"TooManyMethods: DoltEnv: TooManyMethods \u2014 61 methods. To reduce it, group the members that share the same data into a smaller type of their own and delegate to it, so no single type carries every responsibility."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/env/environment.go"},"region":{"startLine":82}}}],"partialFingerprints":{"codehealthFindingId/v1":"338682bceee262332e818ec79fe31976d406f8f0b5ff43ca57076f88d1e10c55"}},{"ruleId":"D3","level":"warning","message":{"text":"TooManyMethods: StatsController: TooManyMethods \u2014 61 methods, declared across 4 files: statspro/controller.go (28), statspro/listener.go (12), statspro/worker.go (12), statspro/stats_kv.go (9). That list is where to read them, not a suggestion to split the file: the members belong to the type wherever they are declared, so moving them between files leaves the count unchanged. To reduce it, group the members that share the same data into a smaller type of their own and delegate to it, so no single type carries every responsibility."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/statspro/controller.go"},"region":{"startLine":68}}}],"partialFingerprints":{"codehealthFindingId/v1":"2689de517f1f5dbe11b5e63f7f7e12504f0f28ccc0e6020770e37110e3f33c25"}},{"ruleId":"D3","level":"warning","message":{"text":"TooManyMethods: YAMLConfig: TooManyMethods \u2014 59 methods. Most of these members implement servercfg.ServerConfig (52 of 59 members), so moving them onto a smaller type would remove them from that contract rather than reduce it. To reduce it, split the contract instead: give each cohesive group of operations its own smaller interface and its own implementing type. Where the contract has to stay whole, move the work behind these members into collaborator types, so what is left here is a forward per member rather than a responsibility per member."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/servercfg/yaml_config.go"},"region":{"startLine":152}}}],"partialFingerprints":{"codehealthFindingId/v1":"607705c0dc988f21f276ac7e1809b88606c4091c578ed5912f73de452dc640fe"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: index/dolt_index.go: FileTooLong \u2014 930 significant lines (blank, comment-only and punctuation-only lines excluded). To reduce it, split the file along the responsibilities already in it: move each cohesive group of declarations into its own sibling file in the same module or package, so no one file has to be read whole to change one of them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/index/dolt_index.go"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"e11c0e34fd0b55138d128f1fcc18d44d5044615277b713cefbf139f16aa59918"}},{"ruleId":"D3","level":"warning","message":{"text":"TooManyMethods: TupleBuilder: TooManyMethods \u2014 55 methods. To reduce it, group the members that share the same data into a smaller type of their own and delegate to it, so no single type carries every responsibility."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/val/tuple_builder.go"},"region":{"startLine":66}}}],"partialFingerprints":{"codehealthFindingId/v1":"fec9989eeb4bdf2b8ed83b7ca74a03c4c2aba2f156cef464ee44acdfc14d4e91"}},{"ruleId":"D3","level":"warning","message":{"text":"TooManyMethods: TupleDesc: TooManyMethods \u2014 54 methods. To reduce it, group the members that share the same data into a smaller type of their own and delegate to it, so no single type carries every responsibility."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/val/tuple_descriptor.go"},"region":{"startLine":47}}}],"partialFingerprints":{"codehealthFindingId/v1":"92130c40db7177b3bb3332401bc8a699d35cd38260d6d0840ff31039bd07707d"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: enginetest/dolt_queries_schema_override.go: FileTooLong \u2014 868 significant lines (blank, comment-only and punctuation-only lines excluded), about 99% of them inside a single declaration: SchemaOverrideTests (24-1570). Moving the declarations that sit BESIDE it into sibling files will not shorten this file. Extract from INSIDE that declaration instead: lift each cohesive group of its body \u2014 the parts that share the same inputs and are named together \u2014 into its own unit in a sibling file, and have the original call them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/enginetest/dolt_queries_schema_override.go"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"644b7ad6ba8ff4aacf6c8444d5cef1f48ec5e0e2857a933e7b439697f5037a8a"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: cluster/controller.go: FileTooLong \u2014 848 significant lines (blank, comment-only and punctuation-only lines excluded). To reduce it, split the file along the responsibilities already in it: move each cohesive group of declarations into its own sibling file in the same module or package, so no one file has to be read whole to change one of them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/cluster/controller.go"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"4c2c846b951badf4c03afa811c8f62fb0c10e478a5b9594e4ecb0fb9ebd6fd6d"}},{"ruleId":"D3","level":"warning","message":{"text":"TooManyMethods: DoltDatabaseProvider: TooManyMethods \u2014 50 methods. To reduce it, group the members that share the same data into a smaller type of their own and delegate to it, so no single type carries every responsibility."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/database_provider.go"},"region":{"startLine":55}}}],"partialFingerprints":{"codehealthFindingId/v1":"591d81efab8c94d59dc30ccd4715396ed45e8bb9cf7a97e53ce40307a5b3b4c7"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: sqlserver/server.go: FileTooLong \u2014 824 significant lines (blank, comment-only and punctuation-only lines excluded), about 67% of them inside a single declaration: ConfigureServices (125-991). Moving the declarations that sit BESIDE it into sibling files will not shorten this file. Extract from INSIDE that declaration instead: lift each cohesive group of its body \u2014 the parts that share the same inputs and are named together \u2014 into its own unit in a sibling file, and have the original call them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/sqlserver/server.go"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"cdcafc2328d6da1187ea419b5ece28cc6e292b4cfb8727d37b4dd200514502a3"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: doltdb/root_val.go: FileTooLong \u2014 817 significant lines (blank, comment-only and punctuation-only lines excluded). To reduce it, split the file along the responsibilities already in it: move each cohesive group of declarations into its own sibling file in the same module or package, so no one file has to be read whole to change one of them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/doltdb/root_val.go"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"476064a1e7f31be7d22138f429df8e91f8ecfa4f6ae9361551c293eb75244516"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: merge/merge_schema.go: FileTooLong \u2014 797 significant lines (blank, comment-only and punctuation-only lines excluded). To reduce it, split the file along the responsibilities already in it: move each cohesive group of declarations into its own sibling file in the same module or package, so no one file has to be read whole to change one of them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/merge/merge_schema.go"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"56f707ce850da650616e642e07c4374dd27eacd20e91d3e278e1e63a65bd4f87"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: commands/sql.go: FileTooLong \u2014 796 significant lines (blank, comment-only and punctuation-only lines excluded). To reduce it, split the file along the responsibilities already in it: move each cohesive group of declarations into its own sibling file in the same module or package, so no one file has to be read whole to change one of them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/sql.go"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"26ff73e82b42a33ed831adac787f783484daccd8a0462dde25e639de4a5c52e0"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: remotestorage/chunk_store.go: FileTooLong \u2014 778 significant lines (blank, comment-only and punctuation-only lines excluded). To reduce it, split the file along the responsibilities already in it: move each cohesive group of declarations into its own sibling file in the same module or package, so no one file has to be read whole to change one of them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/remotestorage/chunk_store.go"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"d57b294d1ee548eb25315fd3ab268c59e694fb107f3584e66ba603db0922f47f"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: env/environment.go: FileTooLong \u2014 775 significant lines (blank, comment-only and punctuation-only lines excluded). To reduce it, split the file along the responsibilities already in it: move each cohesive group of declarations into its own sibling file in the same module or package, so no one file has to be read whole to change one of them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/env/environment.go"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"6023a0e9db565865f077d70c47c08c07dc574e1727be72e97d79ca79a9ab063d"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: binlogreplication/binlog_type_serialization.go: FileTooLong \u2014 763 significant lines (blank, comment-only and punctuation-only lines excluded). To reduce it, split the file along the responsibilities already in it: move each cohesive group of declarations into its own sibling file in the same module or package, so no one file has to be read whole to change one of them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/binlogreplication/binlog_type_serialization.go"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"69ee863af544c8ea63c3dfb48646fcccb05f552d969eed37da42bc8995edf408"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: enginetest/dolt_queries_workspace.go: FileTooLong \u2014 744 significant lines (blank, comment-only and punctuation-only lines excluded), about 99% of them inside a single declaration: DoltWorkspaceScriptTests (24-1356). Moving the declarations that sit BESIDE it into sibling files will not shorten this file. Extract from INSIDE that declaration instead: lift each cohesive group of its body \u2014 the parts that share the same inputs and are named together \u2014 into its own unit in a sibling file, and have the original call them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/enginetest/dolt_queries_workspace.go"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"c655e76c55b9ef36409ffbf279fb5f034f9bd7e3c13c42b8ffa415ba38e70afb"}},{"ruleId":"D3","level":"warning","message":{"text":"TooManyMethods: TempTable: TooManyMethods \u2014 44 methods. To reduce it, group the members that share the same data into a smaller type of their own and delegate to it, so no single type carries every responsibility."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/temp_table.go"},"region":{"startLine":38}}}],"partialFingerprints":{"codehealthFindingId/v1":"f1b39a0741b66f33e3f19baff3f8e3b09a74ac37a1290390a4091f68db17b1e0"}},{"ruleId":"D3","level":"warning","message":{"text":"TooManyMethods: GenerationalNBS: TooManyMethods \u2014 44 methods. To reduce it, group the members that share the same data into a smaller type of their own and delegate to it, so no single type carries every responsibility."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/nbs/generational_chunk_store.go"},"region":{"startLine":40}}}],"partialFingerprints":{"codehealthFindingId/v1":"84a8f17c7d1554ba0c6210f80feb02f6f109d7ece782c3fb2a5512ff441a273e"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: commands/fsck.go: FileTooLong \u2014 711 significant lines (blank, comment-only and punctuation-only lines excluded). To reduce it, split the file along the responsibilities already in it: move each cohesive group of declarations into its own sibling file in the same module or package, so no one file has to be read whole to change one of them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/fsck.go"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"627c4b7a611feef82d3083943dd6e9db0c8348581c6226de739c50d129d3fc05"}},{"ruleId":"D3","level":"warning","message":{"text":"TooManyMethods: DoltChunkStore: TooManyMethods \u2014 42 methods. To reduce it, group the members that share the same data into a smaller type of their own and delegate to it, so no single type carries every responsibility."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/remotestorage/chunk_store.go"},"region":{"startLine":120}}}],"partialFingerprints":{"codehealthFindingId/v1":"edf9a76f66d0d4a3350056b162d8cce339bdc6459223062ac57b6861835d6526"}},{"ruleId":"D3","level":"warning","message":{"text":"TooManyMethods: database: TooManyMethods \u2014 42 methods. To reduce it, group the members that share the same data into a smaller type of their own and delegate to it, so no single type carries every responsibility."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/clusterdb/database.go"},"region":{"startLine":36}}}],"partialFingerprints":{"codehealthFindingId/v1":"53cf0967e7d50fcf831cc968f0ab69ac7e22f5da1c8bf1e8707f9e26426ae811"}},{"ruleId":"D3","level":"warning","message":{"text":"TooManyMethods: DoltTable: TooManyMethods \u2014 42 methods. To reduce it, group the members that share the same data into a smaller type of their own and delegate to it, so no single type carries every responsibility."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/tables.go"},"region":{"startLine":88}}}],"partialFingerprints":{"codehealthFindingId/v1":"3ba1efa9e6024eca7392de026713e267b44cc65abdd4711aed2ce9f2563cd7de"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: dtables/workspace_table.go: FileTooLong \u2014 697 significant lines (blank, comment-only and punctuation-only lines excluded). To reduce it, split the file along the responsibilities already in it: move each cohesive group of declarations into its own sibling file in the same module or package, so no one file has to be read whole to change one of them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dtables/workspace_table.go"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"614b525fe05fb154ac6e983081b7c759845f0d78dfa6250d6b5384d171c63329"}},{"ruleId":"D3","level":"warning","message":{"text":"TooManyMethods: Controller: TooManyMethods \u2014 41 methods. To reduce it, group the members that share the same data into a smaller type of their own and delegate to it, so no single type carries every responsibility."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/cluster/controller.go"},"region":{"startLine":101}}}],"partialFingerprints":{"codehealthFindingId/v1":"0bae58dd4f970f7d7f29ee9833ef1e3e0c6ef36c0ba8fe765741b11d6ca66462"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: servercfg/yaml_config.go: FileTooLong \u2014 673 significant lines (blank, comment-only and punctuation-only lines excluded). To reduce it, split the file along the responsibilities already in it: move each cohesive group of declarations into its own sibling file in the same module or package, so no one file has to be read whole to change one of them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/servercfg/yaml_config.go"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"d1c34663ec76aad8722dead2e9ee43fbdba74fab3cac53c4f75d7fd8c871b42d"}},{"ruleId":"D3","level":"warning","message":{"text":"TooManyMethods: GitBlobstore: TooManyMethods \u2014 40 methods. To reduce it, group the members that share the same data into a smaller type of their own and delegate to it, so no single type carries every responsibility."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/blobstore/git_blobstore.go"},"region":{"startLine":274}}}],"partialFingerprints":{"codehealthFindingId/v1":"437534c01e8e89093f923a87df080b2eaf13310907c357f64bfe3df432c67031"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: tblcmds/import.go: FileTooLong \u2014 660 significant lines (blank, comment-only and punctuation-only lines excluded). To reduce it, split the file along the responsibilities already in it: move each cohesive group of declarations into its own sibling file in the same module or package, so no one file has to be read whole to change one of them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/tblcmds/import.go"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"19d2248a250385b0a1e1a8a5c160f5d185aaba6740a4d2bed32ca2af53590429"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: dolt/dolt.go: FileTooLong \u2014 660 significant lines (blank, comment-only and punctuation-only lines excluded). To reduce it, split the file along the responsibilities already in it: move each cohesive group of declarations into its own sibling file in the same module or package, so no one file has to be read whole to change one of them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/dolt.go"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"ff64e5ff7aed2687f5160896ca30e39180107b70d81e49a12c46776c243b9102"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: dprocedures/dolt_rebase.go: FileTooLong \u2014 655 significant lines (blank, comment-only and punctuation-only lines excluded). To reduce it, split the file along the responsibilities already in it: move each cohesive group of declarations into its own sibling file in the same module or package, so no one file has to be read whole to change one of them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dprocedures/dolt_rebase.go"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"406d76c9235d16c1eafeb62fe64b6bb9acf436287f3cc9f8e22993ad0b19e800"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: commands/utils.go: FileTooLong \u2014 640 significant lines (blank, comment-only and punctuation-only lines excluded). To reduce it, split the file along the responsibilities already in it: move each cohesive group of declarations into its own sibling file in the same module or package, so no one file has to be read whole to change one of them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/utils.go"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"ba4075778edd5c1d1576505f4bfb286d8478d3ce6c46ee5809ad94a5260c38ed"}},{"ruleId":"D3","level":"warning","message":{"text":"TooManyMethods: doltIndex: TooManyMethods \u2014 38 methods. To reduce it, group the members that share the same data into a smaller type of their own and delegate to it, so no single type carries every responsibility."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/index/dolt_index.go"},"region":{"startLine":598}}}],"partialFingerprints":{"codehealthFindingId/v1":"b8d5823ee8bba79d953c1bf5e903e227d60cf4e7ed5bb4f7d80ba6b01b6027e1"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: binlogreplication/binlog_replica_applier.go: FileTooLong \u2014 633 significant lines (blank, comment-only and punctuation-only lines excluded). To reduce it, split the file along the responsibilities already in it: move each cohesive group of declarations into its own sibling file in the same module or package, so no one file has to be read whole to change one of them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/binlogreplication/binlog_replica_applier.go"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"7c199ecc54cae6e17c459fa3641fc75fbf641bcfd330254e545969823bcebac9"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: tree/prolly_fields.go: FileTooLong \u2014 633 significant lines (blank, comment-only and punctuation-only lines excluded). To reduce it, split the file along the responsibilities already in it: move each cohesive group of declarations into its own sibling file in the same module or package, so no one file has to be read whole to change one of them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/prolly/tree/prolly_fields.go"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"7d6e025db786bdee1a6cd745379973307a68c1dbbab80103921ff54b8da350de"}},{"ruleId":"D3","level":"warning","message":{"text":"TooManyMethods: rootValue: TooManyMethods \u2014 37 methods. Most of these members implement doltdb.RootValue (32 of 37 members), so moving them onto a smaller type would remove them from that contract rather than reduce it. To reduce it, split the contract instead: give each cohesive group of operations its own smaller interface and its own implementing type. Where the contract has to stay whole, move the work behind these members into collaborator types, so what is left here is a forward per member rather than a responsibility per member."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/doltdb/root_val.go"},"region":{"startLine":136}}}],"partialFingerprints":{"codehealthFindingId/v1":"72aff80ed971f1699968252a23ff6f4afed78c8f103c1d868aa33f950ccb20a1"}},{"ruleId":"D3","level":"warning","message":{"text":"TooManyMethods: Table: TooManyMethods \u2014 37 methods. To reduce it, group the members that share the same data into a smaller type of their own and delegate to it, so no single type carries every responsibility."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/doltdb/table.go"},"region":{"startLine":67}}}],"partialFingerprints":{"codehealthFindingId/v1":"cc3469ab7fd707917a54392a6e856180f70ffdeb65f942bb7c4189c2e47d9221"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: remotesrv/grpc.go: FileTooLong \u2014 607 significant lines (blank, comment-only and punctuation-only lines excluded). To reduce it, split the file along the responsibilities already in it: move each cohesive group of declarations into its own sibling file in the same module or package, so no one file has to be read whole to change one of them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/remotesrv/grpc.go"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"8eb85a71985a51e86d288f14c40f20b902d4ec78811ff96fa791b4f4edfb30ae"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: types/serial_message.go: FileTooLong \u2014 594 significant lines (blank, comment-only and punctuation-only lines excluded). To reduce it, split the file along the responsibilities already in it: move each cohesive group of declarations into its own sibling file in the same module or package, so no one file has to be read whole to change one of them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/types/serial_message.go"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"9adbc16ba76d576c04e7ba378b5ba5890f52e89a2b3a3523b0bf95f40648d6d6"}},{"ruleId":"D3","level":"warning","message":{"text":"TooManyMethods: AlterableDoltTable: TooManyMethods \u2014 35 methods. To reduce it, group the members that share the same data into a smaller type of their own and delegate to it, so no single type carries every responsibility."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/tables.go"},"region":{"startLine":1492}}}],"partialFingerprints":{"codehealthFindingId/v1":"829ae0ae6109c11a90e9044a6f1efbc94848b74238dd06b8c3fb434893318a8d"}},{"ruleId":"D3","level":"warning","message":{"text":"TooManyMethods: database: TooManyMethods \u2014 35 methods. To reduce it, group the members that share the same data into a smaller type of their own and delegate to it, so no single type carries every responsibility."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/datas/database_common.go"},"region":{"startLine":37}}}],"partialFingerprints":{"codehealthFindingId/v1":"e209a971945c3a6028d348eaf17047c3e8e65c5b1aa31e054281ba0fbfec0d5b"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: merge/violations_fk_prolly.go: FileTooLong \u2014 581 significant lines (blank, comment-only and punctuation-only lines excluded). To reduce it, split the file along the responsibilities already in it: move each cohesive group of declarations into its own sibling file in the same module or package, so no one file has to be read whole to change one of them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/merge/violations_fk_prolly.go"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"332aae998f6e097ec7f94feb6cdee86a769bf611ccc98109c6c8a6687540e993"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: datas/database_common.go: FileTooLong \u2014 577 significant lines (blank, comment-only and punctuation-only lines excluded). To reduce it, split the file along the responsibilities already in it: move each cohesive group of declarations into its own sibling file in the same module or package, so no one file has to be read whole to change one of them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/datas/database_common.go"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"e0b6728a38c871e7c98250800b57e16586fc72aad41e8267cef96aa51087175f"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: nbs/archive_writer.go: FileTooLong \u2014 576 significant lines (blank, comment-only and punctuation-only lines excluded). To reduce it, split the file along the responsibilities already in it: move each cohesive group of declarations into its own sibling file in the same module or package, so no one file has to be read whole to change one of them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/nbs/archive_writer.go"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"d19bfd00621bb5b76c8e66f6a7e074ce050e8a0ef59c95fdeea1dd9cd20f4671"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: enginetest/dolt_queries_cherry_pick.go: FileTooLong \u2014 572 significant lines (blank, comment-only and punctuation-only lines excluded), about 97% of them inside a single declaration: DoltCherryPickTests (47-996). Moving the declarations that sit BESIDE it into sibling files will not shorten this file. Extract from INSIDE that declaration instead: lift each cohesive group of its body \u2014 the parts that share the same inputs and are named together \u2014 into its own unit in a sibling file, and have the original call them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/enginetest/dolt_queries_cherry_pick.go"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"241c9dfe1cec36dd0eee4148adceaec407ddbee30e4508c3cd6b6fed36625735"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: dtables/diff_table.go: FileTooLong \u2014 570 significant lines (blank, comment-only and punctuation-only lines excluded). To reduce it, split the file along the responsibilities already in it: move each cohesive group of declarations into its own sibling file in the same module or package, so no one file has to be read whole to change one of them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dtables/diff_table.go"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"4d9e2e892d2d992801e8960da2bac876327a7be9ba6da02a967e8419471e1316"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: nbs/archive_reader.go: FileTooLong \u2014 565 significant lines (blank, comment-only and punctuation-only lines excluded). To reduce it, split the file along the responsibilities already in it: move each cohesive group of declarations into its own sibling file in the same module or package, so no one file has to be read whole to change one of them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/nbs/archive_reader.go"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"9b4ae1a2d0b402dd8609deaf24389da6778b57006e38ce2a776a57ef5efe2e55"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: dtablefunctions/dolt_diff.go: FileTooLong \u2014 560 significant lines (blank, comment-only and punctuation-only lines excluded). To reduce it, split the file along the responsibilities already in it: move each cohesive group of declarations into its own sibling file in the same module or package, so no one file has to be read whole to change one of them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dtablefunctions/dolt_diff.go"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"5b6c6aef826cdf51a3a23e85d54be19cb87b38a265417e308c55f82bb00a4e39"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: dtables/conflicts_tables_prolly.go: FileTooLong \u2014 547 significant lines (blank, comment-only and punctuation-only lines excluded). To reduce it, split the file along the responsibilities already in it: move each cohesive group of declarations into its own sibling file in the same module or package, so no one file has to be read whole to change one of them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dtables/conflicts_tables_prolly.go"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"df520887460ddb4d12ef64b2537e356df64d244e3342dd788a6f0ef355cf9b85"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: sqle/system_variables.go: FileTooLong \u2014 547 significant lines (blank, comment-only and punctuation-only lines excluded). To reduce it, split the file along the responsibilities already in it: move each cohesive group of declarations into its own sibling file in the same module or package, so no one file has to be read whole to change one of them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/system_variables.go"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"30dce3971368a2d85776697604c544a4168c025005c3f865fd192d671a90a7d3"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: val/codec.go: FileTooLong \u2014 547 significant lines (blank, comment-only and punctuation-only lines excluded). To reduce it, split the file along the responsibilities already in it: move each cohesive group of declarations into its own sibling file in the same module or package, so no one file has to be read whole to change one of them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/val/codec.go"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"922e7dd8bc25e73c60e464904d33a693d8f15106551a08785f2484789935773c"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: dtablefunctions/dolt_test_run.go: FileTooLong \u2014 546 significant lines (blank, comment-only and punctuation-only lines excluded). To reduce it, split the file along the responsibilities already in it: move each cohesive group of declarations into its own sibling file in the same module or package, so no one file has to be read whole to change one of them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dtablefunctions/dolt_test_run.go"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"ba374b0b8c544fe82215585f0171a23c4c0f3628c4aca99b0bea333f6e0e3bcb"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: val/tuple_descriptor.go: FileTooLong \u2014 541 significant lines (blank, comment-only and punctuation-only lines excluded). To reduce it, split the file along the responsibilities already in it: move each cohesive group of declarations into its own sibling file in the same module or package, so no one file has to be read whole to change one of them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/val/tuple_descriptor.go"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"a64c5e52247f6e7653386cefc736759d8967a87f8a9a1f4e81b0a59fc8adb932"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: nbs/table_reader.go: FileTooLong \u2014 538 significant lines (blank, comment-only and punctuation-only lines excluded). To reduce it, split the file along the responsibilities already in it: move each cohesive group of declarations into its own sibling file in the same module or package, so no one file has to be read whole to change one of them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/nbs/table_reader.go"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"92e0d26878fbf19261c9633d88c17581da82d3dca1894fed9f651de9134088ee"}},{"ruleId":"D3","level":"warning","message":{"text":"TooManyMethods: DiffTableFunction: TooManyMethods \u2014 32 methods. To reduce it, group the members that share the same data into a smaller type of their own and delegate to it, so no single type carries every responsibility."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dtablefunctions/dolt_diff.go"},"region":{"startLine":55}}}],"partialFingerprints":{"codehealthFindingId/v1":"7e4b53e4df196e7118be3510e9ce8efeb462558535a837f2e2fd62e3be5c2512"}},{"ruleId":"D3","level":"warning","message":{"text":"TooManyMethods: DoltHarness: TooManyMethods \u2014 32 methods. To reduce it, group the members that share the same data into a smaller type of their own and delegate to it, so no single type carries every responsibility."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/enginetest/dolt_harness.go"},"region":{"startLine":49}}}],"partialFingerprints":{"codehealthFindingId/v1":"e1078c0e3af94e0b76ae3f4844f0abfcfb19abba216da3c4d87d54fab45f7831"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: actions/remotes.go: FileTooLong \u2014 524 significant lines (blank, comment-only and punctuation-only lines excluded). To reduce it, split the file along the responsibilities already in it: move each cohesive group of declarations into its own sibling file in the same module or package, so no one file has to be read whole to change one of them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/env/actions/remotes.go"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"53827baf1112c9939ce377579519b9d5205ed2d393811f4da98baa3ca608e842"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: remotestorage/chunk_fetcher.go: FileTooLong \u2014 523 significant lines (blank, comment-only and punctuation-only lines excluded). To reduce it, split the file along the responsibilities already in it: move each cohesive group of declarations into its own sibling file in the same module or package, so no one file has to be read whole to change one of them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/remotestorage/chunk_fetcher.go"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"9fd2a9373c62677c09202ed1bece4ebc761bf41ada14148dc9ed7c312f632920"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: dsess/transactions.go: FileTooLong \u2014 523 significant lines (blank, comment-only and punctuation-only lines excluded). To reduce it, split the file along the responsibilities already in it: move each cohesive group of declarations into its own sibling file in the same module or package, so no one file has to be read whole to change one of them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dsess/transactions.go"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"2d5006edfdb9a3d0132df9a2d79fb373272f3cf990571c0c693a94dde8b5d02c"}},{"ruleId":"D3","level":"warning","message":{"text":"TooManyMethods: Map: TooManyMethods \u2014 31 methods. To reduce it, group the members that share the same data into a smaller type of their own and delegate to it, so no single type carries every responsibility."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/prolly/tuple_map.go"},"region":{"startLine":32}}}],"partialFingerprints":{"codehealthFindingId/v1":"7b98db2cfe8d4544c3754dda5738a9f4f48e25cd9f623acecaac23e91a94b09f"}},{"ruleId":"D3","level":"warning","message":{"text":"TooManyMethods: binaryNomsReader: TooManyMethods \u2014 31 methods. To reduce it, group the members that share the same data into a smaller type of their own and delegate to it, so no single type carries every responsibility."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/types/codec.go"},"region":{"startLine":98}}}],"partialFingerprints":{"codehealthFindingId/v1":"2bc97dfb232cf988dd7670b9a0609356f877c23c60061dbece7dc61f858bb539"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: diff/table_deltas.go: FileTooLong \u2014 516 significant lines (blank, comment-only and punctuation-only lines excluded). To reduce it, split the file along the responsibilities already in it: move each cohesive group of declarations into its own sibling file in the same module or package, so no one file has to be read whole to change one of them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/diff/table_deltas.go"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"6429296d7f8da7486fba506cb9beb6d4a6d5a789c170d40abe8a7ac6fe673a58"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: commands/dump.go: FileTooLong \u2014 504 significant lines (blank, comment-only and punctuation-only lines excluded). To reduce it, split the file along the responsibilities already in it: move each cohesive group of declarations into its own sibling file in the same module or package, so no one file has to be read whole to change one of them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/dump.go"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"eb99e83071eeada9ca24e2196958ec53e5b45c7653d5d2bf2d365dfc1463003c"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (26 lines \u00D7 2): go/libraries/doltcore/merge/violations_fk_prolly.go:100-125 | go/libraries/doltcore/merge/violations_fk_prolly.go:205-232 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/libraries/doltcore/merge/violations_fk_prolly.go:100\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that. The matched lines also transfer control out of the body holding them, which cannot survive a move into a called unit unchanged: have the extracted unit return that decision and let each site act on it."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/merge/violations_fk_prolly.go"},"region":{"startLine":100}}}],"partialFingerprints":{"codehealthFindingId/v1":"2f3a342598ae8d968f38e8aec2a20b642259c5aa97108b7bb490c3985db2c4e9"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (22 lines \u00D7 2): go/libraries/doltcore/merge/violations_fk_prolly.go:62-83 | go/libraries/doltcore/merge/violations_fk_prolly.go:157-178 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/libraries/doltcore/merge/violations_fk_prolly.go:62\u0060 it does not close everything it opens, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/merge/violations_fk_prolly.go"},"region":{"startLine":62}}}],"partialFingerprints":{"codehealthFindingId/v1":"beaeeaa99adf0118fb461103794bb017b35d34cea525e02dbc8092637fb627f3"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (21 lines \u00D7 2): go/libraries/doltcore/sqle/dolt_procedures_diff_table.go:503-523 | go/libraries/doltcore/sqle/dolt_schemas_diff_table.go:503-523 \u2014 the copies sit in sibling files of one directory: extract the block into a single shared function in that directory and call it from each site, so a change lands once. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/libraries/doltcore/sqle/dolt_procedures_diff_table.go:503\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dolt_procedures_diff_table.go"},"region":{"startLine":503}}}],"partialFingerprints":{"codehealthFindingId/v1":"bf1d73f083c2a12512c71a88e0a3541bb43ecc4fbc29bfc04bdd33b6ad4501f7"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (21 lines \u00D7 2): go/libraries/doltcore/sqle/dolt_procedures_history_table.go:218-238 | go/libraries/doltcore/sqle/dolt_schemas_history_table.go:218-238 \u2014 the copies sit in sibling files of one directory: extract the block into a single shared function in that directory and call it from each site, so a change lands once. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/libraries/doltcore/sqle/dolt_procedures_history_table.go:218\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dolt_procedures_history_table.go"},"region":{"startLine":218}}}],"partialFingerprints":{"codehealthFindingId/v1":"cdbd6ab954063e070195145de4af4de02e8c12b24172a50cfe6ab3caefacd0cd"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (19 lines \u00D7 2): go/cmd/dolt/commands/diff_output.go:462-480 | go/cmd/dolt/commands/diff_output.go:515-533 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/cmd/dolt/commands/diff_output.go:462\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/diff_output.go"},"region":{"startLine":462}}}],"partialFingerprints":{"codehealthFindingId/v1":"bcbde0f046130027c97f96fa664b2231250a41518a3ab8612b3eb0676d4f3f26"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (19 lines \u00D7 2): go/libraries/doltcore/sqle/dolt_procedures_diff_table.go:160-178 | go/libraries/doltcore/sqle/dolt_schemas_diff_table.go:160-178 \u2014 the copies sit in sibling files of one directory: extract the block into a single shared function in that directory and call it from each site, so a change lands once. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/libraries/doltcore/sqle/dolt_procedures_diff_table.go:160\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dolt_procedures_diff_table.go"},"region":{"startLine":160}}}],"partialFingerprints":{"codehealthFindingId/v1":"9b8154db8589fcc7d3d511f5e57be20b26dada0434ecc7c355351547ee831baa"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (19 lines \u00D7 2): go/libraries/doltcore/sqle/dolt_procedures_diff_table.go:180-198 | go/libraries/doltcore/sqle/dolt_schemas_diff_table.go:180-198 \u2014 the copies sit in sibling files of one directory: extract the block into a single shared function in that directory and call it from each site, so a change lands once. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/libraries/doltcore/sqle/dolt_procedures_diff_table.go:180\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dolt_procedures_diff_table.go"},"region":{"startLine":180}}}],"partialFingerprints":{"codehealthFindingId/v1":"5ce9e1ffae54bd1d60562bd5987914c0a356804f84a2795500d902edb62b4349"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (19 lines \u00D7 2): go/performance/utils/benchmark_runner/sysbench_config.go:158-177 | go/performance/utils/benchmark_runner/tpcc_config.go:108-126 \u2014 the copies sit in sibling files of one directory: extract the block into a single shared function in that directory and call it from each site, so a change lands once. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/performance/utils/benchmark_runner/sysbench_config.go:158\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that. The matched lines also transfer control out of the body holding them, which cannot survive a move into a called unit unchanged: have the extracted unit return that decision and let each site act on it."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/performance/utils/benchmark_runner/sysbench_config.go"},"region":{"startLine":158}}}],"partialFingerprints":{"codehealthFindingId/v1":"2fd788f453a8fd79e47a0f38dd4592cdefaaed0692f47d720ca5f7df159f94b2"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (19 lines \u00D7 2): go/store/types/value_store.go:601-619 | go/store/types/value_store.go:690-708 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/store/types/value_store.go:601\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that. The matched lines also register a scope-exit action (a \u0060defer\u0060-style statement) that runs when the function holding them returns: moved into a called unit it would run when THAT unit returns instead \u2014 before the caller uses what it releases \u2014 so keep the registration at the call site and extract only the work around it, or have the extracted unit hand the resource back for the caller to register."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/types/value_store.go"},"region":{"startLine":601}}}],"partialFingerprints":{"codehealthFindingId/v1":"b3ffd2e4de0f3db7221fbd202cc10f107cbfb6607266e62b8d0bab0e7c30d8ad"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (18 lines \u00D7 2): go/libraries/doltcore/sqle/cluster/branch_control_replica.go:276-293 | go/libraries/doltcore/sqle/cluster/mysqldb_persister.go:309-326 \u2014 the copies sit in sibling files of one directory: extract the block into a single shared function in that directory and call it from each site, so a change lands once. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/libraries/doltcore/sqle/cluster/branch_control_replica.go:276\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that. The matched lines also register a scope-exit action (a \u0060defer\u0060-style statement) that runs when the function holding them returns: moved into a called unit it would run when THAT unit returns instead \u2014 before the caller uses what it releases \u2014 so keep the registration at the call site and extract only the work around it, or have the extracted unit hand the resource back for the caller to register."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/cluster/branch_control_replica.go"},"region":{"startLine":276}}}],"partialFingerprints":{"codehealthFindingId/v1":"1893ec88761f103278f04661843cf26917cf0b0834da3526a5a9c02fd7aea72f"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (18 lines \u00D7 2): go/libraries/doltcore/sqle/dolt_procedures_diff_table.go:208-225 | go/libraries/doltcore/sqle/dolt_schemas_diff_table.go:208-225 \u2014 the copies sit in sibling files of one directory: extract the block into a single shared function in that directory and call it from each site, so a change lands once. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/libraries/doltcore/sqle/dolt_procedures_diff_table.go:208\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dolt_procedures_diff_table.go"},"region":{"startLine":208}}}],"partialFingerprints":{"codehealthFindingId/v1":"f5e311ce3d90e081305728afa6fb8db86a0eba19113fd02348e40abef027ebe1"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (18 lines \u00D7 2): go/libraries/doltcore/sqle/dtablefunctions/dolt_test_run.go:246-263 | go/libraries/doltcore/sqle/dtablefunctions/dolt_test_run.go:283-300 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/libraries/doltcore/sqle/dtablefunctions/dolt_test_run.go:246\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that. The matched lines also transfer control out of the body holding them, which cannot survive a move into a called unit unchanged: have the extracted unit return that decision and let each site act on it."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dtablefunctions/dolt_test_run.go"},"region":{"startLine":246}}}],"partialFingerprints":{"codehealthFindingId/v1":"5786eced14c1b1884723d2dfe3f981ba8f9f69f33b02943a7324a03f226462e6"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (18 lines \u00D7 2): go/libraries/doltcore/sqle/dtables/column_diff_table.go:396-413 | go/libraries/doltcore/sqle/dtables/unscoped_diff_table.go:426-443 \u2014 the copies sit in sibling files of one directory: extract the block into a single shared function in that directory and call it from each site, so a change lands once. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/libraries/doltcore/sqle/dtables/column_diff_table.go:396\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that. The matched lines also transfer control out of the body holding them, which cannot survive a move into a called unit unchanged: have the extracted unit return that decision and let each site act on it."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dtables/column_diff_table.go"},"region":{"startLine":396}}}],"partialFingerprints":{"codehealthFindingId/v1":"04e10e216059cd3ff3d019a2d9db669606888b7bd5881726f55a6a7bbb9c2d2b"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (17 lines \u00D7 2): go/cmd/dolt/commands/add.go:421-439 | go/cmd/dolt/commands/add.go:483-499 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/add.go"},"region":{"startLine":421}}}],"partialFingerprints":{"codehealthFindingId/v1":"7c7f9d843fcfa9d35ae1d8ced879b7a2f6917ea84755cd94654d41d83f222f26"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (17 lines \u00D7 2): go/libraries/doltcore/diff/table_deltas.go:470-486 | go/libraries/doltcore/diff/table_deltas.go:532-548 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/libraries/doltcore/diff/table_deltas.go:470\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/diff/table_deltas.go"},"region":{"startLine":470}}}],"partialFingerprints":{"codehealthFindingId/v1":"93cf469fe45e5c852890f9cf5fbfdb6d696e0f97fc5908cd26eb81b09738ec39"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (17 lines \u00D7 2): go/libraries/doltcore/schema/typecompatibility/type_compatibility.go:221-238 | go/libraries/doltcore/schema/typecompatibility/type_compatibility.go:263-279 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/libraries/doltcore/schema/typecompatibility/type_compatibility.go:221\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that. The matched lines also transfer control out of the body holding them, which cannot survive a move into a called unit unchanged: have the extracted unit return that decision and let each site act on it."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/schema/typecompatibility/type_compatibility.go"},"region":{"startLine":221}}}],"partialFingerprints":{"codehealthFindingId/v1":"d275268b52f7e1d59d819d61344238ef52b025ff0bfede17f98af7797c14608e"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (17 lines \u00D7 2): go/libraries/doltcore/sqle/dolt_procedures_diff_table.go:601-617 | go/libraries/doltcore/sqle/dolt_schemas_diff_table.go:601-618 \u2014 the copies sit in sibling files of one directory: extract the block into a single shared function in that directory and call it from each site, so a change lands once. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/libraries/doltcore/sqle/dolt_procedures_diff_table.go:601\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that. The matched lines also transfer control out of the body holding them, which cannot survive a move into a called unit unchanged: have the extracted unit return that decision and let each site act on it."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dolt_procedures_diff_table.go"},"region":{"startLine":601}}}],"partialFingerprints":{"codehealthFindingId/v1":"4fa8634c8e24b0373a9ca0ab2b4ddcfbf1fc44df077602043d6073dd1a5ab91a"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (17 lines \u00D7 2): go/libraries/doltcore/sqle/dtablefunctions/dolt_preview_merge_conflicts.go:691-707 | go/libraries/doltcore/sqle/dtables/conflicts_tables_prolly.go:505-521 \u2014 the copies span different directories, so extracting a shared function means choosing where it lives: put it somewhere both call sites can already reach \u2014 a location they all depend on today, or a new shared one if there is none \u2014 and call it from each site; until then, every change has to be made twice. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/libraries/doltcore/sqle/dtablefunctions/dolt_preview_merge_conflicts.go:691\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dtablefunctions/dolt_preview_merge_conflicts.go"},"region":{"startLine":691}}}],"partialFingerprints":{"codehealthFindingId/v1":"ff2428585d931a8d1b2e009e055cbc4e3c783e4e61bf5942d7b95a0c0b0fc792"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (17 lines \u00D7 2): go/libraries/doltcore/sqle/enginetest/validation.go:179-195 | go/libraries/doltcore/sqle/enginetest/validation.go:275-291 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/libraries/doltcore/sqle/enginetest/validation.go:179\u0060 it does not close everything it opens, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/enginetest/validation.go"},"region":{"startLine":179}}}],"partialFingerprints":{"codehealthFindingId/v1":"ff1775b6defb7ead5f7d8ddb08d8352ed27f7084ca03ee31a6692023faf433ee"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (17 lines \u00D7 2): go/libraries/doltcore/sqle/history_table.go:86-102 | go/libraries/doltcore/sqle/history_table.go:200-216 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/libraries/doltcore/sqle/history_table.go:86\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that. The matched lines also transfer control out of the body holding them, which cannot survive a move into a called unit unchanged: have the extracted unit return that decision and let each site act on it."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/history_table.go"},"region":{"startLine":86}}}],"partialFingerprints":{"codehealthFindingId/v1":"2c1475cf5ce8565fb1c12164979ed62eea10a5f60158f8c2fcf46720b5ebdd7b"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (16 lines \u00D7 2): go/cmd/dolt/commands/sqlserver/server.go:804-819 | go/cmd/dolt/commands/sqlserver/server.go:861-884 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/cmd/dolt/commands/sqlserver/server.go:804\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/sqlserver/server.go"},"region":{"startLine":804}}}],"partialFingerprints":{"codehealthFindingId/v1":"ea6f66a53d58f59b1493cd65fb91e9ecf29f510ad60c8225fd8e3805ad02e266"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (16 lines \u00D7 2): go/libraries/doltcore/doltdb/doltdb.go:1111-1126 | go/libraries/doltcore/doltdb/doltdb.go:1840-1855 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/libraries/doltcore/doltdb/doltdb.go:1111\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that. The matched lines also transfer control out of the body holding them, which cannot survive a move into a called unit unchanged: have the extracted unit return that decision and let each site act on it."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/doltdb/doltdb.go"},"region":{"startLine":1111}}}],"partialFingerprints":{"codehealthFindingId/v1":"8c49f01e59d1de682c5648591a36c464a4176bc3811d103e8335c1ade84d064c"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (16 lines \u00D7 2): go/libraries/doltcore/env/actions/dolt_ci/workflow_manager.go:1151-1166 | go/libraries/doltcore/env/actions/dolt_ci/workflow_manager.go:1253-1268 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/libraries/doltcore/env/actions/dolt_ci/workflow_manager.go:1151\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/env/actions/dolt_ci/workflow_manager.go"},"region":{"startLine":1151}}}],"partialFingerprints":{"codehealthFindingId/v1":"5cf5f09b984d6e4afb6fe47ed96604d7e8fc37a762e3a5de5d26923f9d435941"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (16 lines \u00D7 2): go/libraries/doltcore/sqle/dolt_procedures_history_table.go:126-141 | go/libraries/doltcore/sqle/dolt_schemas_history_table.go:126-141 \u2014 the copies sit in sibling files of one directory: extract the block into a single shared function in that directory and call it from each site, so a change lands once. The matched lines also transfer control out of the body holding them, which cannot survive a move into a called unit unchanged: have the extracted unit return that decision and let each site act on it."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dolt_procedures_history_table.go"},"region":{"startLine":126}}}],"partialFingerprints":{"codehealthFindingId/v1":"ec76d2f0ca3d71e48b12b3ee396721f7f1ebd8606e9eea2d13b21036a0db967a"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (16 lines \u00D7 2): go/libraries/doltcore/sqle/dolt_procedures_history_table.go:157-172 | go/libraries/doltcore/sqle/dolt_schemas_history_table.go:157-172 \u2014 the copies sit in sibling files of one directory: extract the block into a single shared function in that directory and call it from each site, so a change lands once. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/libraries/doltcore/sqle/dolt_procedures_history_table.go:157\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dolt_procedures_history_table.go"},"region":{"startLine":157}}}],"partialFingerprints":{"codehealthFindingId/v1":"3ed9a1bfc741f9bafb3f6f796a6bb02cdd9c9a3bc5464ce4570d2c85b0d35e65"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (16 lines \u00D7 2): go/libraries/doltcore/sqle/procedures_table.go:225-240 | go/libraries/doltcore/sqle/schema_table.go:291-306 \u2014 the copies sit in sibling files of one directory: extract the block into a single shared function in that directory and call it from each site, so a change lands once. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/libraries/doltcore/sqle/procedures_table.go:225\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/procedures_table.go"},"region":{"startLine":225}}}],"partialFingerprints":{"codehealthFindingId/v1":"20dacc9db126b282e55df8a20f41caba1abe7365acad96b901f3c422f6fcf1a3"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (16 lines \u00D7 2): go/libraries/doltcore/sqle/sqlfmt/row_fmt.go:276-291 | go/libraries/doltcore/sqle/sqlfmt/row_fmt.go:303-318 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/libraries/doltcore/sqle/sqlfmt/row_fmt.go:276\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/sqlfmt/row_fmt.go"},"region":{"startLine":276}}}],"partialFingerprints":{"codehealthFindingId/v1":"bb1f5e7617b8c4a9e1ba78c321f7b8ef6139633d4095d659247ff281396c185d"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (16 lines \u00D7 2): go/libraries/doltcore/sqle/tables.go:1583-1598 | go/libraries/doltcore/sqle/tables.go:2311-2326 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/libraries/doltcore/sqle/tables.go:1583\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that. The matched lines also transfer control out of the body holding them, which cannot survive a move into a called unit unchanged: have the extracted unit return that decision and let each site act on it."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/tables.go"},"region":{"startLine":1583}}}],"partialFingerprints":{"codehealthFindingId/v1":"dec44d8085745d5e5e92fbfa8e1bfd4e5e478e087dbe6ac21390579698fd8eba"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (16 lines \u00D7 2): go/performance/utils/benchmark_runner/dolt.go:65-80 | go/performance/utils/benchmark_runner/dolt_tpcc.go:59-74 \u2014 the copies sit in sibling files of one directory: extract the block into a single shared function in that directory and call it from each site, so a change lands once. The matched lines also register a scope-exit action (a \u0060defer\u0060-style statement) that runs when the function holding them returns: moved into a called unit it would run when THAT unit returns instead \u2014 before the caller uses what it releases \u2014 so keep the registration at the call site and extract only the work around it, or have the extracted unit hand the resource back for the caller to register."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/performance/utils/benchmark_runner/dolt.go"},"region":{"startLine":65}}}],"partialFingerprints":{"codehealthFindingId/v1":"1f3f7a22fb4549fa7cca96a0163e358dc05ff7efd9efaa94e6bfd4d4057917da"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (16 lines \u00D7 2): go/performance/utils/benchmark_runner/sysbench.go:113-128 | go/performance/utils/benchmark_runner/tpcc.go:73-88 \u2014 the copies sit in sibling files of one directory: extract the block into a single shared function in that directory and call it from each site, so a change lands once. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/performance/utils/benchmark_runner/sysbench.go:113\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that. The matched lines also transfer control out of the body holding them, which cannot survive a move into a called unit unchanged: have the extracted unit return that decision and let each site act on it."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/performance/utils/benchmark_runner/sysbench.go"},"region":{"startLine":113}}}],"partialFingerprints":{"codehealthFindingId/v1":"cb937d1f4606b9b30511ffb9a22ecd526ae3c5d370084a74c0782e60f1cd96b6"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (15 lines \u00D7 2): go/cmd/dolt/commands/debug.go:114-128 | go/cmd/dolt/commands/sql.go:210-224 \u2014 the copies sit in sibling files of one directory: extract the block into a single shared function in that directory and call it from each site, so a change lands once. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/cmd/dolt/commands/debug.go:114\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that. The matched lines also transfer control out of the body holding them, which cannot survive a move into a called unit unchanged: have the extracted unit return that decision and let each site act on it."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/debug.go"},"region":{"startLine":114}}}],"partialFingerprints":{"codehealthFindingId/v1":"988500e98a6c7bfdde08a39d75a7f4953dc93b2d3ae9591d1dabe4ffc2491c49"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (15 lines \u00D7 2): go/cmd/dolt/commands/debug.go:248-262 | go/cmd/dolt/commands/debug.go:273-287 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/cmd/dolt/commands/debug.go:248\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/debug.go"},"region":{"startLine":248}}}],"partialFingerprints":{"codehealthFindingId/v1":"79e076172d44e0367d52069e59fa11741c195ec3bdf5d8033aa7cbf91673de8a"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (15 lines \u00D7 2): go/cmd/dolt/commands/dump.go:287-301 | go/cmd/dolt/commands/dump.go:367-381 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/cmd/dolt/commands/dump.go:287\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that. Note that the copies do not run to the end of the range shown: their LAST lines are different code, not the same code under different names \u2014 the matched region ends inside that line. Extract the lines above it, and read the last line of each site separately."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/dump.go"},"region":{"startLine":287}}}],"partialFingerprints":{"codehealthFindingId/v1":"0af5487ef80973c3601d1384f9690b336cfe089cf1674ba2cab5a2a711dd99d7"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (15 lines \u00D7 2): go/cmd/dolt/commands/dump.go:328-342 | go/cmd/dolt/commands/dump.go:405-419 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/dump.go"},"region":{"startLine":328}}}],"partialFingerprints":{"codehealthFindingId/v1":"6087fdafd1f5e7ee20b9865239b1d310ea69b6a0fd8a1a75210c8f8fa08ca35c"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (15 lines \u00D7 2): go/libraries/doltcore/branch_control/branch_control.go:236-250 | go/libraries/doltcore/branch_control/branch_control.go:296-310 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited. The matched lines also register a scope-exit action (a \u0060defer\u0060-style statement) that runs when the function holding them returns: moved into a called unit it would run when THAT unit returns instead \u2014 before the caller uses what it releases \u2014 so keep the registration at the call site and extract only the work around it, or have the extracted unit hand the resource back for the caller to register."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/branch_control/branch_control.go"},"region":{"startLine":236}}}],"partialFingerprints":{"codehealthFindingId/v1":"c910d9167bcc5fcbc9f17dba526f1ffc0793ebf4dabc8b1dd6f2908d750d265a"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (15 lines \u00D7 2): go/libraries/doltcore/env/actions/branch.go:335-350 | go/libraries/doltcore/env/actions/tag.go:61-75 \u2014 the copies sit in sibling files of one directory: extract the block into a single shared function in that directory and call it from each site, so a change lands once. Note that the copies do not run to the end of the range shown: their LAST lines are different code, not the same code under different names \u2014 the matched region ends inside that line. Extract the lines above it, and read the last line of each site separately."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/env/actions/branch.go"},"region":{"startLine":335}}}],"partialFingerprints":{"codehealthFindingId/v1":"d734a1de51cd2f461ddb712433c77715bbbb47a5f9f943dfb5a4bdb4de6a9748"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (15 lines \u00D7 2): go/libraries/doltcore/env/environment.go:819-833 | go/libraries/doltcore/env/environment.go:958-972 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/libraries/doltcore/env/environment.go:819\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that. The matched lines also transfer control out of the body holding them, which cannot survive a move into a called unit unchanged: have the extracted unit return that decision and let each site act on it."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/env/environment.go"},"region":{"startLine":819}}}],"partialFingerprints":{"codehealthFindingId/v1":"4d69a80d1696adf58c641d63290cf7a18f7916fec3d34979007667dc1785888f"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (15 lines \u00D7 2): go/libraries/doltcore/sqle/cluster/branch_control_replica.go:87-101 | go/libraries/doltcore/sqle/cluster/mysqldb_persister.go:105-119 \u2014 the copies sit in sibling files of one directory: extract the block into a single shared function in that directory and call it from each site, so a change lands once. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/libraries/doltcore/sqle/cluster/branch_control_replica.go:87\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that. The matched lines also transfer control out of the body holding them, which cannot survive a move into a called unit unchanged: have the extracted unit return that decision and let each site act on it."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/cluster/branch_control_replica.go"},"region":{"startLine":87}}}],"partialFingerprints":{"codehealthFindingId/v1":"a8ce619cfbd5af3991f74b7ce591c6984373e482b4b7d79d8536336a3c11acd8"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (15 lines \u00D7 2): go/libraries/doltcore/sqle/dolt_procedures_diff_table.go:573-587 | go/libraries/doltcore/sqle/dolt_schemas_diff_table.go:573-587 \u2014 the copies sit in sibling files of one directory: extract the block into a single shared function in that directory and call it from each site, so a change lands once. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/libraries/doltcore/sqle/dolt_procedures_diff_table.go:573\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that. The matched lines also transfer control out of the body holding them, which cannot survive a move into a called unit unchanged: have the extracted unit return that decision and let each site act on it."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dolt_procedures_diff_table.go"},"region":{"startLine":573}}}],"partialFingerprints":{"codehealthFindingId/v1":"77efce2fe974c22158bdfc3e42f861b52c395cb17dd738eb36180b7a0c90738d"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (15 lines \u00D7 2): go/libraries/doltcore/sqle/dolt_procedures_history_table.go:184-198 | go/libraries/doltcore/sqle/dolt_schemas_history_table.go:184-198 \u2014 the copies sit in sibling files of one directory: extract the block into a single shared function in that directory and call it from each site, so a change lands once. The matched lines also transfer control out of the body holding them, which cannot survive a move into a called unit unchanged: have the extracted unit return that decision and let each site act on it."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dolt_procedures_history_table.go"},"region":{"startLine":184}}}],"partialFingerprints":{"codehealthFindingId/v1":"9ea549565d23a3936f802dc7cecbca7b26dbd34eabf2c152f75469ccdc2823a3"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (15 lines \u00D7 2): go/libraries/doltcore/sqle/dtables/column_diff_table.go:432-446 | go/libraries/doltcore/sqle/dtables/unscoped_diff_table.go:462-476 \u2014 the copies sit in sibling files of one directory: extract the block into a single shared function in that directory and call it from each site, so a change lands once. Note that the copies do not run to the end of the range shown: their LAST lines are different code, not the same code under different names \u2014 the matched region ends inside that line. Extract the lines above it, and read the last line of each site separately."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dtables/column_diff_table.go"},"region":{"startLine":432}}}],"partialFingerprints":{"codehealthFindingId/v1":"7d4a4c48d7515bc58e5f0abe15c8bdb2fa2284799bd83334b3f1bc91440d24da"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (15 lines \u00D7 2): go/libraries/doltcore/sqle/dtables/commit_diff_table.go:69-83 | go/libraries/doltcore/sqle/dtables/diff_table.go:97-113 \u2014 the copies sit in sibling files of one directory: extract the block into a single shared function in that directory and call it from each site, so a change lands once."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dtables/commit_diff_table.go"},"region":{"startLine":69}}}],"partialFingerprints":{"codehealthFindingId/v1":"8cf4d770a7eb01db90d400059be47d08395128391416f43a63c1d15e1a8f7f75"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (15 lines \u00D7 2): go/libraries/doltcore/sqle/dtables/status_ignored_table.go:126-141 | go/libraries/doltcore/sqle/dtables/status_table.go:268-282 \u2014 the copies sit in sibling files of one directory: extract the block into a single shared function in that directory and call it from each site, so a change lands once. Note that the copies do not run to the end of the range shown: their LAST lines are different code, not the same code under different names \u2014 the matched region ends inside that line. Extract the lines above it, and read the last line of each site separately."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dtables/status_ignored_table.go"},"region":{"startLine":126}}}],"partialFingerprints":{"codehealthFindingId/v1":"015cb57574284ecf6c8869621085aaceca667bab70fdfd9461d352a7e5d2e2b0"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (15 lines \u00D7 2): go/libraries/doltcore/sqle/dtables/status_table.go:210-224 | go/libraries/doltcore/sqle/dtables/status_table.go:225-239 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/libraries/doltcore/sqle/dtables/status_table.go:210\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dtables/status_table.go"},"region":{"startLine":210}}}],"partialFingerprints":{"codehealthFindingId/v1":"ee3c6342b3cb740e32990f8c402222a0cfce8bb5620697b50b1bf0fb9afac78d"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (15 lines \u00D7 2): go/store/nbs/bs_persister.go:96-113 | go/store/nbs/single_blob_bs_persister.go:66-80 \u2014 the copies sit in sibling files of one directory: extract the block into a single shared function in that directory and call it from each site, so a change lands once. The matched lines also register a scope-exit action (a \u0060defer\u0060-style statement) that runs when the function holding them returns: moved into a called unit it would run when THAT unit returns instead \u2014 before the caller uses what it releases \u2014 so keep the registration at the call site and extract only the work around it, or have the extracted unit hand the resource back for the caller to register. Note that the copies do not run to the end of the range shown: their LAST lines are different code, not the same code under different names \u2014 the matched region ends inside that line. Extract the lines above it, and read the last line of each site separately."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/nbs/bs_persister.go"},"region":{"startLine":96}}}],"partialFingerprints":{"codehealthFindingId/v1":"bbfecb66f5dd517650afcf1ff968301b71bc912fc476bcb0a3a3b45c37d6fd7c"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (15 lines \u00D7 2): go/store/prolly/tree/map.go:332-346 | go/store/prolly/tree/proximity_map.go:266-280 \u2014 the copies sit in sibling files of one directory: extract the block into a single shared function in that directory and call it from each site, so a change lands once. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/store/prolly/tree/map.go:332\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/prolly/tree/map.go"},"region":{"startLine":332}}}],"partialFingerprints":{"codehealthFindingId/v1":"4c747a9913ff02c81808d160ecf4b31c6377fa6e4a9f33d471ec7a3e6fbf200d"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (14 lines \u00D7 4): go/libraries/doltcore/sqle/database.go:1950-1963 | go/libraries/doltcore/sqle/database.go:1993-2006 | go/libraries/doltcore/sqle/database.go:2188-2201 | go/libraries/doltcore/sqle/database.go:2371-2384 \u2014 all 4 copies are in the same file, so extract the block into one function there and call it from every one of those sites \u2014 resolving only two of them leaves the rest to drift apart the first time one is edited. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/libraries/doltcore/sqle/database.go:1950\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/database.go"},"region":{"startLine":1950}}}],"partialFingerprints":{"codehealthFindingId/v1":"90e3aac69c5a247665c2375b625e5e899516ad2589d798db75115c93e287a4a4"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (14 lines \u00D7 2): go/cmd/dolt/commands/branch.go:171-184 | go/cmd/dolt/commands/branch.go:216-229 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/cmd/dolt/commands/branch.go:171\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/branch.go"},"region":{"startLine":171}}}],"partialFingerprints":{"codehealthFindingId/v1":"4fbd1fe5565cd6509575d014ec8e38f3dc66a8d805c2b5c445f8212cefe2cb4a"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (14 lines \u00D7 2): go/cmd/dolt/commands/branch.go:570-583 | go/cmd/dolt/commands/branch.go:603-616 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/cmd/dolt/commands/branch.go:570\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that. The matched lines also transfer control out of the body holding them, which cannot survive a move into a called unit unchanged: have the extracted unit return that decision and let each site act on it."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/branch.go"},"region":{"startLine":570}}}],"partialFingerprints":{"codehealthFindingId/v1":"f7fad0a2efdea1385bc5251e876d9558317bef058fd097f6fa980431637b658e"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (14 lines \u00D7 2): go/cmd/dolt/commands/filter-branch.go:179-192 | go/cmd/dolt/commands/filter-branch.go:228-241 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/cmd/dolt/commands/filter-branch.go:179\u0060 it does not close everything it opens, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that. The matched lines also transfer control out of the body holding them, which cannot survive a move into a called unit unchanged: have the extracted unit return that decision and let each site act on it."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/filter-branch.go"},"region":{"startLine":179}}}],"partialFingerprints":{"codehealthFindingId/v1":"d729bcda3bbc071d240d5853ba203c6440c4533202f491d8066725eab1f4aabd"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (14 lines \u00D7 2): go/libraries/doltcore/doltdb/doltdb.go:536-549 | go/libraries/doltcore/doltdb/doltdb.go:610-623 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/doltdb/doltdb.go"},"region":{"startLine":536}}}],"partialFingerprints":{"codehealthFindingId/v1":"6040ab885a7588b3da1480f0c6d09f8050e2d4d052ddb601f9c03eb5f75f7905"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (14 lines \u00D7 2): go/libraries/doltcore/doltdb/tablename_set.go:208-221 | go/libraries/utils/set/strset.go:185-198 \u2014 the copies span different directories, so extracting a shared function means choosing where it lives: put it somewhere both call sites can already reach \u2014 a location they all depend on today, or a new shared one if there is none \u2014 and call it from each site; until then, every change has to be made twice. The matched lines also transfer control out of the body holding them, which cannot survive a move into a called unit unchanged: have the extracted unit return that decision and let each site act on it."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/doltdb/tablename_set.go"},"region":{"startLine":208}}}],"partialFingerprints":{"codehealthFindingId/v1":"b5c719f892f41896a1ee2634f8cbac833dbd9bbe64592d400e6c81122ff09a1b"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (14 lines \u00D7 2): go/libraries/doltcore/env/actions/branch.go:212-225 | go/libraries/doltcore/env/actions/branch.go:272-285 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/libraries/doltcore/env/actions/branch.go:212\u0060 it does not close everything it opens, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/env/actions/branch.go"},"region":{"startLine":212}}}],"partialFingerprints":{"codehealthFindingId/v1":"5c80946187260cd4027a0ec73ecd7a236d10ceec776c919c940992358d8975bc"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (14 lines \u00D7 2): go/libraries/doltcore/env/actions/dolt_ci/workflow_manager.go:1194-1207 | go/libraries/doltcore/env/actions/dolt_ci/workflow_manager.go:1294-1307 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/libraries/doltcore/env/actions/dolt_ci/workflow_manager.go:1194\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/env/actions/dolt_ci/workflow_manager.go"},"region":{"startLine":1194}}}],"partialFingerprints":{"codehealthFindingId/v1":"3fc51c62fde16d1bc26a0fb4d995aa01a38c333afcbf5869e065942e6449da1d"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (14 lines \u00D7 2): go/libraries/doltcore/merge/merge_schema.go:831-844 | go/libraries/doltcore/merge/merge_schema.go:846-859 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/libraries/doltcore/merge/merge_schema.go:831\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/merge/merge_schema.go"},"region":{"startLine":831}}}],"partialFingerprints":{"codehealthFindingId/v1":"b1bcce66c814df1593938345346c443406db3d02b02a5dd48a38ca17a43d89e6"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (14 lines \u00D7 2): go/libraries/doltcore/sqle/database.go:2046-2059 | go/libraries/doltcore/sqle/database.go:2103-2116 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/database.go"},"region":{"startLine":2046}}}],"partialFingerprints":{"codehealthFindingId/v1":"4942a60e3c408f1e9fbc68a96206555f98fbb6a6ccd3b29176d5c4296c03abee"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (14 lines \u00D7 2): go/libraries/doltcore/sqle/database.go:2235-2248 | go/libraries/doltcore/sqle/database.go:2265-2278 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/libraries/doltcore/sqle/database.go:2235\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that. Note that the copies do not run to the end of the range shown: their LAST lines are different code, not the same code under different names \u2014 the matched region ends inside that line. Extract the lines above it, and read the last line of each site separately."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/database.go"},"region":{"startLine":2235}}}],"partialFingerprints":{"codehealthFindingId/v1":"fbaf32bc9a002abc46b2578439a044120c8a61a2c4395567c078a38b539b6d09"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (14 lines \u00D7 2): go/libraries/doltcore/sqle/database_provider.go:2003-2016 | go/libraries/doltcore/sqle/database_provider.go:2059-2072 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/libraries/doltcore/sqle/database_provider.go:2003\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that. The matched lines also transfer control out of the body holding them, which cannot survive a move into a called unit unchanged: have the extracted unit return that decision and let each site act on it."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/database_provider.go"},"region":{"startLine":2003}}}],"partialFingerprints":{"codehealthFindingId/v1":"912c2c2adffa2fd2f5c560626e534e35a370b80989c804b247a1a39327f96e07"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (14 lines \u00D7 2): go/libraries/doltcore/sqle/dolt_procedures_diff_table.go:245-258 | go/libraries/doltcore/sqle/dolt_schemas_diff_table.go:245-258 \u2014 the copies sit in sibling files of one directory: extract the block into a single shared function in that directory and call it from each site, so a change lands once. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/libraries/doltcore/sqle/dolt_procedures_diff_table.go:245\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dolt_procedures_diff_table.go"},"region":{"startLine":245}}}],"partialFingerprints":{"codehealthFindingId/v1":"a5dfec62a53de85f7988f4d7b8092380840ff69ed1d275a6e9cb683ef724c95e"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (14 lines \u00D7 2): go/libraries/doltcore/sqle/dolt_procedures_diff_table.go:287-300 | go/libraries/doltcore/sqle/dolt_schemas_diff_table.go:287-300 \u2014 the copies sit in sibling files of one directory: extract the block into a single shared function in that directory and call it from each site, so a change lands once."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dolt_procedures_diff_table.go"},"region":{"startLine":287}}}],"partialFingerprints":{"codehealthFindingId/v1":"1b1485892664733a487de89ea0748c7135c868eb25a69a9eb41b08ad47cb4d83"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (14 lines \u00D7 2): go/libraries/doltcore/sqle/dolt_procedures_diff_table.go:389-402 | go/libraries/doltcore/sqle/dolt_schemas_diff_table.go:389-402 \u2014 the copies sit in sibling files of one directory: extract the block into a single shared function in that directory and call it from each site, so a change lands once. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/libraries/doltcore/sqle/dolt_procedures_diff_table.go:389\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that. The matched lines also transfer control out of the body holding them, which cannot survive a move into a called unit unchanged: have the extracted unit return that decision and let each site act on it."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dolt_procedures_diff_table.go"},"region":{"startLine":389}}}],"partialFingerprints":{"codehealthFindingId/v1":"ea886474e865cdda2afe712996769225acc61d9af3a99f65018b2f20ec51f1ef"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (14 lines \u00D7 2): go/libraries/doltcore/sqle/dolt_procedures_diff_table.go:433-446 | go/libraries/doltcore/sqle/dolt_schemas_diff_table.go:433-446 \u2014 the copies sit in sibling files of one directory: extract the block into a single shared function in that directory and call it from each site, so a change lands once. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/libraries/doltcore/sqle/dolt_procedures_diff_table.go:433\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dolt_procedures_diff_table.go"},"region":{"startLine":433}}}],"partialFingerprints":{"codehealthFindingId/v1":"3ba1713d0afe294f6e595f992edd174383e7d9ec288075526dd311a776d62c6f"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (14 lines \u00D7 2): go/libraries/doltcore/sqle/dsess/session_state_adapter.go:163-176 | go/libraries/doltcore/sqle/dsess/session_state_adapter.go:211-225 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/libraries/doltcore/sqle/dsess/session_state_adapter.go:163\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that. The matched lines also transfer control out of the body holding them, which cannot survive a move into a called unit unchanged: have the extracted unit return that decision and let each site act on it."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dsess/session_state_adapter.go"},"region":{"startLine":163}}}],"partialFingerprints":{"codehealthFindingId/v1":"d532075e8782f8d472d9eb1481369c84378543fd7b607b4367de0f12ce6e3efa"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (14 lines \u00D7 2): go/libraries/doltcore/sqle/dtablefunctions/dolt_preview_merge_conflicts.go:609-622 | go/libraries/doltcore/sqle/dtables/conflicts_tables_prolly.go:266-279 \u2014 the copies span different directories, so extracting a shared function means choosing where it lives: put it somewhere both call sites can already reach \u2014 a location they all depend on today, or a new shared one if there is none \u2014 and call it from each site; until then, every change has to be made twice. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/libraries/doltcore/sqle/dtablefunctions/dolt_preview_merge_conflicts.go:609\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that. The matched lines also transfer control out of the body holding them, which cannot survive a move into a called unit unchanged: have the extracted unit return that decision and let each site act on it."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dtablefunctions/dolt_preview_merge_conflicts.go"},"region":{"startLine":609}}}],"partialFingerprints":{"codehealthFindingId/v1":"b7850f7223c4f999a8e8321e0578f4ae4741256f7bdef0678024a7e93e78ae94"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (14 lines \u00D7 2): go/libraries/doltcore/sqle/dtables/diff_table.go:361-374 | go/libraries/doltcore/sqle/dtables/diff_table.go:564-577 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/libraries/doltcore/sqle/dtables/diff_table.go:361\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that. The matched lines also transfer control out of the body holding them, which cannot survive a move into a called unit unchanged: have the extracted unit return that decision and let each site act on it."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dtables/diff_table.go"},"region":{"startLine":361}}}],"partialFingerprints":{"codehealthFindingId/v1":"dc12959cc66171400dce10c1dad2ca6227b7282f8c02d1c77dfb8892b262cf0c"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (14 lines \u00D7 2): go/libraries/doltcore/sqle/procedures_table.go:279-292 | go/libraries/doltcore/sqle/schema_table.go:349-362 \u2014 the copies sit in sibling files of one directory: extract the block into a single shared function in that directory and call it from each site, so a change lands once. The matched lines also transfer control out of the body holding them, which cannot survive a move into a called unit unchanged: have the extracted unit return that decision and let each site act on it."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/procedures_table.go"},"region":{"startLine":279}}}],"partialFingerprints":{"codehealthFindingId/v1":"63c5bb3c35fb9bc625e7864706b403da104bcfd0c6c3cc65bcca3d4b015d6b0b"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (14 lines \u00D7 2): go/libraries/utils/filesys/inmemfs.go:323-336 | go/libraries/utils/filesys/inmemfs.go:345-358 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited. The matched lines also transfer control out of the body holding them, which cannot survive a move into a called unit unchanged: have the extracted unit return that decision and let each site act on it."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/utils/filesys/inmemfs.go"},"region":{"startLine":323}}}],"partialFingerprints":{"codehealthFindingId/v1":"1017fa52736be39de2661d4110ace75bf5c0dcef0991b9d73a187ee169d772b9"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (14 lines \u00D7 2): go/performance/utils/benchmark_runner/dolt_tpcc.go:90-103 | go/performance/utils/benchmark_runner/mysql_tpcc.go:80-93 \u2014 the copies sit in sibling files of one directory: extract the block into a single shared function in that directory and call it from each site, so a change lands once. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/performance/utils/benchmark_runner/dolt_tpcc.go:90\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that. The matched lines also transfer control out of the body holding them, which cannot survive a move into a called unit unchanged: have the extracted unit return that decision and let each site act on it. Note that the copies do not run to the end of the range shown: their LAST lines are different code, not the same code under different names \u2014 the matched region ends inside that line. Extract the lines above it, and read the last line of each site separately."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/performance/utils/benchmark_runner/dolt_tpcc.go"},"region":{"startLine":90}}}],"partialFingerprints":{"codehealthFindingId/v1":"88e2a73971c275f33e85e92e2976092bf665f46a8d6d7f1252cedaf0f9fbe826"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (14 lines \u00D7 2): go/store/nbs/generational_chunk_store.go:118-131 | go/store/nbs/generational_chunk_store.go:136-149 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/store/nbs/generational_chunk_store.go:118\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that. The matched lines also register a scope-exit action (a \u0060defer\u0060-style statement) that runs when the function holding them returns: moved into a called unit it would run when THAT unit returns instead \u2014 before the caller uses what it releases \u2014 so keep the registration at the call site and extract only the work around it, or have the extracted unit hand the resource back for the caller to register."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/nbs/generational_chunk_store.go"},"region":{"startLine":118}}}],"partialFingerprints":{"codehealthFindingId/v1":"dc4d031709f5114e919003848524a81dab3e6d7863016a4322df528d62b6814f"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (14 lines \u00D7 2): go/store/types/multilinestring.go:41-54 | go/store/types/polygon.go:41-54 \u2014 the copies sit in sibling files of one directory: extract the block into a single shared function in that directory and call it from each site, so a change lands once. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/store/types/multilinestring.go:41\u0060 it does not close everything it opens, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/types/multilinestring.go"},"region":{"startLine":41}}}],"partialFingerprints":{"codehealthFindingId/v1":"583a5d558c39afaac38143c3cdb7c8394dc99233ef5f6808c7c8e3cca38c1a15"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (14 lines \u00D7 2): go/store/types/multilinestring.go:68-81 | go/store/types/polygon.go:68-81 \u2014 the copies sit in sibling files of one directory: extract the block into a single shared function in that directory and call it from each site, so a change lands once. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/store/types/multilinestring.go:68\u0060 it does not close everything it opens, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/types/multilinestring.go"},"region":{"startLine":68}}}],"partialFingerprints":{"codehealthFindingId/v1":"5a94b704418b3612453e6ee8dafe3489f4c6ca76d0712cb0afc7dd493b021145"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (13 lines \u00D7 3): go/cmd/dolt/commands/docscmds/diff.go:90-102 | go/cmd/dolt/commands/docscmds/read.go:119-131 | go/cmd/dolt/commands/docscmds/write.go:101-113 \u2014 the copies sit in sibling files of one directory: extract the block into a single shared function in that directory and call it from each site, so a change lands once. The matched lines also register a scope-exit action (a \u0060defer\u0060-style statement) that runs when the function holding them returns: moved into a called unit it would run when THAT unit returns instead \u2014 before the caller uses what it releases \u2014 so keep the registration at the call site and extract only the work around it, or have the extracted unit hand the resource back for the caller to register. Note that the copies do not run to the end of the range shown: their LAST lines are different code, not the same code under different names \u2014 the matched region ends inside that line. Extract the lines above it, and read the last line of each site separately."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/docscmds/diff.go"},"region":{"startLine":90}}}],"partialFingerprints":{"codehealthFindingId/v1":"bd3facc2097d39366f7ec1e482183446a15b98596b9b6ffbf1fefad1e5493581"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (13 lines \u00D7 3): go/libraries/doltcore/sqle/database.go:639-651 | go/libraries/doltcore/sqle/database.go:655-667 | go/libraries/doltcore/sqle/database.go:671-683 \u2014 all 3 copies are in the same file, so extract the block into one function there and call it from every one of those sites \u2014 resolving only two of them leaves the rest to drift apart the first time one is edited. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/libraries/doltcore/sqle/database.go:639\u0060 it does not close everything it opens, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/database.go"},"region":{"startLine":639}}}],"partialFingerprints":{"codehealthFindingId/v1":"c30f0959d76a6d2642601541d328c1abf77111e53ce2ac1e56628e240e91dfc5"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (13 lines \u00D7 2): go/libraries/doltcore/branch_control/expr_parser.go:132-144 | go/libraries/doltcore/branch_control/expr_parser_node.go:443-455 \u2014 the copies sit in sibling files of one directory: extract the block into a single shared function in that directory and call it from each site, so a change lands once. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/libraries/doltcore/branch_control/expr_parser.go:132\u0060 it does not close everything it opens, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/branch_control/expr_parser.go"},"region":{"startLine":132}}}],"partialFingerprints":{"codehealthFindingId/v1":"02083d8616372cf1aaf8c91ce4f3c028f218f90d3c8217521b97015d0a76c57f"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (13 lines \u00D7 2): go/libraries/doltcore/cherry_pick/cherry_pick.go:575-587 | go/libraries/doltcore/revert/revert.go:583-595 \u2014 the copies span different directories, so extracting a shared function means choosing where it lives: put it somewhere both call sites can already reach \u2014 a location they all depend on today, or a new shared one if there is none \u2014 and call it from each site; until then, every change has to be made twice. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/libraries/doltcore/cherry_pick/cherry_pick.go:575\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/cherry_pick/cherry_pick.go"},"region":{"startLine":575}}}],"partialFingerprints":{"codehealthFindingId/v1":"6cb503d7a92a9c22c3f8828d249c37db10787efc6eb58e53645de966a7db03a9"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (13 lines \u00D7 2): go/libraries/doltcore/doltdb/commit.go:169-181 | go/libraries/doltcore/doltdb/doltdb.go:908-920 \u2014 the copies sit in sibling files of one directory: extract the block into a single shared function in that directory and call it from each site, so a change lands once. The matched lines also transfer control out of the body holding them, which cannot survive a move into a called unit unchanged: have the extracted unit return that decision and let each site act on it."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/doltdb/commit.go"},"region":{"startLine":169}}}],"partialFingerprints":{"codehealthFindingId/v1":"51077b18118f8e3e7442e93d38f3ee6c634385144d9007663c3afca427a501f3"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (13 lines \u00D7 2): go/libraries/doltcore/doltdb/stash.go:62-75 | go/libraries/doltcore/doltdb/tag.go:38-50 \u2014 the copies sit in sibling files of one directory: extract the block into a single shared function in that directory and call it from each site, so a change lands once."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/doltdb/stash.go"},"region":{"startLine":62}}}],"partialFingerprints":{"codehealthFindingId/v1":"4a32e7000bc6b97c8d5653a0cb2efcbf9e11da12d194bfba8da4b8e80cd218bb"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (13 lines \u00D7 2): go/libraries/doltcore/env/actions/dolt_ci/workflow_manager.go:1167-1179 | go/libraries/doltcore/env/actions/dolt_ci/workflow_manager.go:1269-1281 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/libraries/doltcore/env/actions/dolt_ci/workflow_manager.go:1167\u0060 it does not close everything it opens, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/env/actions/dolt_ci/workflow_manager.go"},"region":{"startLine":1167}}}],"partialFingerprints":{"codehealthFindingId/v1":"0a07fefcf112a5cfcb7f87f79ca1e464490ecac70c3f7a4b4d5e1e94c886f99a"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (13 lines \u00D7 2): go/libraries/doltcore/env/actions/dolt_ci/workflow_manager.go:1480-1492 | go/libraries/doltcore/env/actions/dolt_ci/workflow_manager.go:1528-1541 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/libraries/doltcore/env/actions/dolt_ci/workflow_manager.go:1480\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that. Note that the copies do not run to the end of the range shown: their LAST lines are different code, not the same code under different names \u2014 the matched region ends inside that line. Extract the lines above it, and read the last line of each site separately."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/env/actions/dolt_ci/workflow_manager.go"},"region":{"startLine":1480}}}],"partialFingerprints":{"codehealthFindingId/v1":"af933d512f7c842b355e14a3a03964bc57db18e8e3b4c72fc197d701874d339e"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (13 lines \u00D7 2): go/libraries/doltcore/env/actions/dolt_ci/workflow_manager.go:1501-1513 | go/libraries/doltcore/env/actions/dolt_ci/workflow_manager.go:1565-1577 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/libraries/doltcore/env/actions/dolt_ci/workflow_manager.go:1501\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that. Note that the copies do not run to the end of the range shown: their LAST lines are different code, not the same code under different names \u2014 the matched region ends inside that line. Extract the lines above it, and read the last line of each site separately."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/env/actions/dolt_ci/workflow_manager.go"},"region":{"startLine":1501}}}],"partialFingerprints":{"codehealthFindingId/v1":"70c3bbc833ec8c8fab6517ffe465bf85143ea7b908c8ad80010dd23a494ef7d4"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (13 lines \u00D7 2): go/libraries/doltcore/sqle/cluster/branch_control_replica.go:253-265 | go/libraries/doltcore/sqle/cluster/mysqldb_persister.go:286-298 \u2014 the copies sit in sibling files of one directory: extract the block into a single shared function in that directory and call it from each site, so a change lands once. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/libraries/doltcore/sqle/cluster/branch_control_replica.go:253\u0060 it does not close everything it opens, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/cluster/branch_control_replica.go"},"region":{"startLine":253}}}],"partialFingerprints":{"codehealthFindingId/v1":"6cb1c503afac329d43451b052ea9ddb3164a9fef0d64974af41141e8e5abab9e"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (13 lines \u00D7 2): go/libraries/doltcore/sqle/database.go:2068-2080 | go/libraries/doltcore/sqle/database.go:2125-2137 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/libraries/doltcore/sqle/database.go:2068\u0060 it does not close everything it opens, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/database.go"},"region":{"startLine":2068}}}],"partialFingerprints":{"codehealthFindingId/v1":"e286bd4c6517d2fdffc1e84703096d865ccb04364899b7c9d54b715b2948417e"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (13 lines \u00D7 2): go/libraries/doltcore/sqle/database.go:2528-2540 | go/libraries/doltcore/sqle/database.go:2593-2606 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited. Note that the copies do not run to the end of the range shown: their LAST lines are different code, not the same code under different names \u2014 the matched region ends inside that line. Extract the lines above it, and read the last line of each site separately."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/database.go"},"region":{"startLine":2528}}}],"partialFingerprints":{"codehealthFindingId/v1":"b08d7fc7fb078b331a02096d49957d9fbf1713ffe4198fb6331228277b7d26c9"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (13 lines \u00D7 2): go/libraries/doltcore/sqle/dsess/session.go:1981-1993 | go/libraries/doltcore/sqle/dsess/session.go:1995-2007 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/libraries/doltcore/sqle/dsess/session.go:1981\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that. Note that the copies do not run to the end of the range shown: their LAST lines are different code, not the same code under different names \u2014 the matched region ends inside that line. Extract the lines above it, and read the last line of each site separately."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dsess/session.go"},"region":{"startLine":1981}}}],"partialFingerprints":{"codehealthFindingId/v1":"0a4fa8780227d6af98ee1804c20fe12806571294109f03dfb18e1e541a952577"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (13 lines \u00D7 2): go/libraries/doltcore/sqle/dtablefunctions/dolt_diff.go:835-848 | go/libraries/doltcore/sqle/schema_override.go:78-90 \u2014 the copies span different directories, so extracting a shared function means choosing where it lives: put it somewhere both call sites can already reach \u2014 a location they all depend on today, or a new shared one if there is none \u2014 and call it from each site; until then, every change has to be made twice. Note that the copies do not run to the end of the range shown: their LAST lines are different code, not the same code under different names \u2014 the matched region ends inside that line. Extract the lines above it, and read the last line of each site separately."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dtablefunctions/dolt_diff.go"},"region":{"startLine":835}}}],"partialFingerprints":{"codehealthFindingId/v1":"d9ec12b51abff55c429c3ce4057544ebbdd56e06a88b1e3b0a86bca9d878c1d1"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (13 lines \u00D7 2): go/libraries/doltcore/sqle/dtablefunctions/dolt_diff_stat.go:172-184 | go/libraries/doltcore/sqle/dtablefunctions/dolt_patch.go:315-327 \u2014 the copies sit in sibling files of one directory: extract the block into a single shared function in that directory and call it from each site, so a change lands once. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/libraries/doltcore/sqle/dtablefunctions/dolt_diff_stat.go:172\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dtablefunctions/dolt_diff_stat.go"},"region":{"startLine":172}}}],"partialFingerprints":{"codehealthFindingId/v1":"cf76a2c763353bd408947eda68f069e754ed1bb9480da88f56b8eb3d393c81fa"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (13 lines \u00D7 2): go/libraries/doltcore/sqle/dtablefunctions/dolt_diff_stat.go:348-360 | go/libraries/doltcore/sqle/dtablefunctions/dolt_schema_diff.go:370-382 \u2014 the copies sit in sibling files of one directory: extract the block into a single shared function in that directory and call it from each site, so a change lands once. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/libraries/doltcore/sqle/dtablefunctions/dolt_diff_stat.go:348\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dtablefunctions/dolt_diff_stat.go"},"region":{"startLine":348}}}],"partialFingerprints":{"codehealthFindingId/v1":"6f4b1e125210467b9f071da090f38c80095aa744f633746634e0be83b09d2b15"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (13 lines \u00D7 2): go/libraries/doltcore/sqle/dtablefunctions/dolt_diff_summary.go:159-171 | go/libraries/doltcore/sqle/dtablefunctions/dolt_preview_merge_conflicts.go:160-172 \u2014 the copies sit in sibling files of one directory: extract the block into a single shared function in that directory and call it from each site, so a change lands once. Note that the copies do not run to the end of the range shown: their LAST lines are different code, not the same code under different names \u2014 the matched region ends inside that line. Extract the lines above it, and read the last line of each site separately."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dtablefunctions/dolt_diff_summary.go"},"region":{"startLine":159}}}],"partialFingerprints":{"codehealthFindingId/v1":"7daad1a54e54d824950f8c787c930db29da624491473807f09240c3725bbe524"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (13 lines \u00D7 2): go/libraries/doltcore/sqle/dtablefunctions/dolt_diff_summary.go:389-401 | go/libraries/doltcore/sqle/dtablefunctions/dolt_patch.go:455-467 \u2014 the copies sit in sibling files of one directory: extract the block into a single shared function in that directory and call it from each site, so a change lands once. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/libraries/doltcore/sqle/dtablefunctions/dolt_diff_summary.go:389\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dtablefunctions/dolt_diff_summary.go"},"region":{"startLine":389}}}],"partialFingerprints":{"codehealthFindingId/v1":"fbd65d3fcc3f9adf65b7df794a42c9039033750bee645ed5b85853983a05c8ff"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (13 lines \u00D7 2): go/libraries/doltcore/sqle/dtablefunctions/dolt_preview_merge_conflicts.go:484-496 | go/libraries/doltcore/sqle/dtablefunctions/dolt_preview_merge_conflicts_summary.go:415-427 \u2014 the copies sit in sibling files of one directory: extract the block into a single shared function in that directory and call it from each site, so a change lands once. Note that the copies do not run to the end of the range shown: their LAST lines are different code, not the same code under different names \u2014 the matched region ends inside that line. Extract the lines above it, and read the last line of each site separately."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dtablefunctions/dolt_preview_merge_conflicts.go"},"region":{"startLine":484}}}],"partialFingerprints":{"codehealthFindingId/v1":"c55e24d779ccbc31360bbfaa30d092424fef66ca6be330f0d65017d169574063"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (13 lines \u00D7 2): go/libraries/doltcore/sqle/dtablefunctions/dolt_preview_merge_conflicts.go:511-523 | go/libraries/doltcore/sqle/dtablefunctions/dolt_preview_merge_conflicts_summary.go:429-441 \u2014 the copies sit in sibling files of one directory: extract the block into a single shared function in that directory and call it from each site, so a change lands once. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/libraries/doltcore/sqle/dtablefunctions/dolt_preview_merge_conflicts.go:511\u0060 it does not close everything it opens, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that. The matched lines also transfer control out of the body holding them, which cannot survive a move into a called unit unchanged: have the extracted unit return that decision and let each site act on it."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dtablefunctions/dolt_preview_merge_conflicts.go"},"region":{"startLine":511}}}],"partialFingerprints":{"codehealthFindingId/v1":"e6de0c45ccb8a25115174d1104546ff9629a7003e87e7ccbcb8e6ca0137922ae"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (13 lines \u00D7 2): go/libraries/doltcore/sqle/writer/prolly_table_writer.go:70-84 | go/libraries/doltcore/sqle/writer/prolly_table_writer.go:115-127 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/libraries/doltcore/sqle/writer/prolly_table_writer.go:70\u0060 it does not close everything it opens, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/writer/prolly_table_writer.go"},"region":{"startLine":70}}}],"partialFingerprints":{"codehealthFindingId/v1":"51441a73555a23ba07814cf56491061cb2c36c1e892fe7e27fe038845677c43c"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (13 lines \u00D7 2): go/libraries/doltcore/table/typed/json/jsonl_reader.go:161-173 | go/libraries/doltcore/table/typed/json/reader.go:136-148 \u2014 the copies sit in sibling files of one directory: extract the block into a single shared function in that directory and call it from each site, so a change lands once. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/libraries/doltcore/table/typed/json/jsonl_reader.go:161\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that. The matched lines also transfer control out of the body holding them, which cannot survive a move into a called unit unchanged: have the extracted unit return that decision and let each site act on it."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/table/typed/json/jsonl_reader.go"},"region":{"startLine":161}}}],"partialFingerprints":{"codehealthFindingId/v1":"01e35bb2e64d2a9d9cb14543d54580934d220747229a3c326f9c65531e2a1c3c"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (13 lines \u00D7 2): go/performance/import_benchmarker/testdef.go:257-269 | go/performance/sysbench/testdef.go:521-534 \u2014 the copies span different directories, so extracting a shared function means choosing where it lives: put it somewhere both call sites can already reach \u2014 a location they all depend on today, or a new shared one if there is none \u2014 and call it from each site; until then, every change has to be made twice. The matched lines also transfer control out of the body holding them, which cannot survive a move into a called unit unchanged: have the extracted unit return that decision and let each site act on it. The matched lines also register a scope-exit action (a \u0060defer\u0060-style statement) that runs when the function holding them returns: moved into a called unit it would run when THAT unit returns instead \u2014 before the caller uses what it releases \u2014 so keep the registration at the call site and extract only the work around it, or have the extracted unit hand the resource back for the caller to register."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/performance/import_benchmarker/testdef.go"},"region":{"startLine":257}}}],"partialFingerprints":{"codehealthFindingId/v1":"e0e321ed590a4cefd1b6cb564e68d0dd29eb08ae46358280c0930eb060e9a8e9"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (13 lines \u00D7 2): go/store/datas/database_common.go:276-288 | go/store/datas/database_common.go:406-418 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/store/datas/database_common.go:276\u0060 it does not close everything it opens, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/datas/database_common.go"},"region":{"startLine":276}}}],"partialFingerprints":{"codehealthFindingId/v1":"64be5cfee114aa6fb2a4eaa8e1ba8cb2d74a68e2b3dd2509c4b86a21d32a7f05"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (13 lines \u00D7 2): go/store/datas/database_common.go:317-329 | go/store/datas/database_common.go:470-485 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/store/datas/database_common.go:317\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/datas/database_common.go"},"region":{"startLine":317}}}],"partialFingerprints":{"codehealthFindingId/v1":"2d85da9828496742147fd6a58c292532e5ee85c25daf633bb85c4f1dc7c369a3"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (13 lines \u00D7 2): go/store/datas/database_common.go:438-450 | go/store/datas/database_common.go:911-923 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/store/datas/database_common.go:438\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/datas/database_common.go"},"region":{"startLine":438}}}],"partialFingerprints":{"codehealthFindingId/v1":"69f8565d28e31e0dad3c1bffd685002ff90d24b7ec441345d3dd1dc7e133a6b9"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (13 lines \u00D7 2): go/store/prolly/artifact_map.go:728-740 | go/store/prolly/tuple_map.go:437-449 \u2014 the copies sit in sibling files of one directory: extract the block into a single shared function in that directory and call it from each site, so a change lands once. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/store/prolly/artifact_map.go:728\u0060 it does not close everything it opens, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/prolly/artifact_map.go"},"region":{"startLine":728}}}],"partialFingerprints":{"codehealthFindingId/v1":"455b10ca7b37671a9516cd369102edfcb00d7af44d1c4ac4f6af9fdbede2292f"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (13 lines \u00D7 2): go/store/types/linestring.go:73-87 | go/store/types/multipoint.go:62-74 \u2014 the copies sit in sibling files of one directory: extract the block into a single shared function in that directory and call it from each site, so a change lands once. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/store/types/linestring.go:73\u0060 it does not close everything it opens, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/types/linestring.go"},"region":{"startLine":73}}}],"partialFingerprints":{"codehealthFindingId/v1":"d273cf0deb57dbd56349262b933cc8767c9d781cb83d7792077244b245d180d6"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (12 lines \u00D7 3): go/libraries/doltcore/env/actions/dolt_ci/workflow_manager.go:1112-1123 | go/libraries/doltcore/env/actions/dolt_ci/workflow_manager.go:1188-1199 | go/libraries/doltcore/env/actions/dolt_ci/workflow_manager.go:1213-1224 \u2014 all 3 copies are in the same file, so extract the block into one function there and call it from every one of those sites \u2014 resolving only two of them leaves the rest to drift apart the first time one is edited. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/libraries/doltcore/env/actions/dolt_ci/workflow_manager.go:1112\u0060 it does not close everything it opens, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that. Note that the copies do not run to the end of the range shown: their LAST lines are different code, not the same code under different names \u2014 the matched region ends inside that line. Extract the lines above it, and read the last line of each site separately."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/env/actions/dolt_ci/workflow_manager.go"},"region":{"startLine":1112}}}],"partialFingerprints":{"codehealthFindingId/v1":"0aa852bc55a69de20154646201ef112c7818ce2870ec8bfb6ba89051d4dea516"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (12 lines \u00D7 2): go/cmd/dolt/commands/cherry-pick.go:227-238 | go/cmd/dolt/commands/cherry-pick.go:305-316 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited. The matched lines also register a scope-exit action (a \u0060defer\u0060-style statement) that runs when the function holding them returns: moved into a called unit it would run when THAT unit returns instead \u2014 before the caller uses what it releases \u2014 so keep the registration at the call site and extract only the work around it, or have the extracted unit hand the resource back for the caller to register."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/cherry-pick.go"},"region":{"startLine":227}}}],"partialFingerprints":{"codehealthFindingId/v1":"a1cba888d4c090b7c1a6208056a23c0a27bef6561ceaeb49e0e5d4a1c9557b9c"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (12 lines \u00D7 2): go/cmd/dolt/commands/ci/export.go:85-96 | go/cmd/dolt/commands/ci/remove.go:78-89 \u2014 the copies sit in sibling files of one directory: extract the block into a single shared function in that directory and call it from each site, so a change lands once."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/ci/export.go"},"region":{"startLine":85}}}],"partialFingerprints":{"codehealthFindingId/v1":"9e4056150206a927b7fc5caf3c668ad3e2cb53cd25ce24f70d18e3e77eeb917f"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (12 lines \u00D7 2): go/cmd/dolt/commands/fetch.go:105-116 | go/cmd/dolt/commands/pull.go:269-280 \u2014 the copies sit in sibling files of one directory: extract the block into a single shared function in that directory and call it from each site, so a change lands once. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/cmd/dolt/commands/fetch.go:105\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that. The matched lines also transfer control out of the body holding them, which cannot survive a move into a called unit unchanged: have the extracted unit return that decision and let each site act on it."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/fetch.go"},"region":{"startLine":105}}}],"partialFingerprints":{"codehealthFindingId/v1":"de5c34ea246c13e49759e1c2dec55fca1aa4440a8e8d901ba46bc8befee5886c"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (12 lines \u00D7 2): go/cmd/dolt/commands/merge.go:424-435 | go/cmd/dolt/commands/merge.go:456-467 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/cmd/dolt/commands/merge.go:424\u0060 it does not close everything it opens, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/merge.go"},"region":{"startLine":424}}}],"partialFingerprints":{"codehealthFindingId/v1":"e40131eadf00b4a5d5a9668c998e2a754e79d281f6571664344ea599bcc8ec77"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (12 lines \u00D7 2): go/cmd/dolt/commands/schcmds/import.go:486-497 | go/cmd/dolt/commands/schcmds/import.go:528-539 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/cmd/dolt/commands/schcmds/import.go:486\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/schcmds/import.go"},"region":{"startLine":486}}}],"partialFingerprints":{"codehealthFindingId/v1":"9ce2581fde19af3739991d2a2cf0e6ca6aae1731e1435768cfbc14db218df738"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (12 lines \u00D7 2): go/cmd/dolt/commands/utils.go:833-844 | go/cmd/dolt/commands/utils.go:851-862 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/cmd/dolt/commands/utils.go:833\u0060 it does not close everything it opens, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/utils.go"},"region":{"startLine":833}}}],"partialFingerprints":{"codehealthFindingId/v1":"fafb8489ef396c6a70f4cd58a0e8da6a4acf7d1b5c9e2c2a1f7c0ae3c26889ad"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (12 lines \u00D7 2): go/libraries/doltcore/branch_control/expr_parser_node.go:155-166 | go/libraries/doltcore/branch_control/expr_parser_node.go:255-266 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/libraries/doltcore/branch_control/expr_parser_node.go:155\u0060 it does not close everything it opens, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that. The matched lines also register a scope-exit action (a \u0060defer\u0060-style statement) that runs when the function holding them returns: moved into a called unit it would run when THAT unit returns instead \u2014 before the caller uses what it releases \u2014 so keep the registration at the call site and extract only the work around it, or have the extracted unit hand the resource back for the caller to register."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/branch_control/expr_parser_node.go"},"region":{"startLine":155}}}],"partialFingerprints":{"codehealthFindingId/v1":"8a1cd7292a03373e823359e73ad161866259d18ea81fcfd392fefd4382602534"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (12 lines \u00D7 2): go/libraries/doltcore/cherry_pick/cherry_pick.go:298-311 | go/libraries/doltcore/revert/revert.go:210-221 \u2014 the copies span different directories, so extracting a shared function means choosing where it lives: put it somewhere both call sites can already reach \u2014 a location they all depend on today, or a new shared one if there is none \u2014 and call it from each site; until then, every change has to be made twice. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/libraries/doltcore/revert/revert.go:210\u0060 it does not close everything it opens, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that. Note that the copies do not run to the end of the range shown: their LAST lines are different code, not the same code under different names \u2014 the matched region ends inside that line. Extract the lines above it, and read the last line of each site separately."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/cherry_pick/cherry_pick.go"},"region":{"startLine":298}}}],"partialFingerprints":{"codehealthFindingId/v1":"786f0008c2c00a23f9199bfc749894751e52429b475d6ad4dac4be79a9cfb6ae"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (12 lines \u00D7 2): go/libraries/doltcore/doltdb/root_val.go:638-649 | go/libraries/doltcore/doltdb/root_val.go:681-692 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/libraries/doltcore/doltdb/root_val.go:638\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that. The matched lines also transfer control out of the body holding them, which cannot survive a move into a called unit unchanged: have the extracted unit return that decision and let each site act on it."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/doltdb/root_val.go"},"region":{"startLine":638}}}],"partialFingerprints":{"codehealthFindingId/v1":"3f5658f3e870f7117f2e321ee4df30ead96fcff060dd53d28ae6b8affbf5b3b0"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (12 lines \u00D7 2): go/libraries/doltcore/env/actions/dolt_ci/workflow_manager.go:1092-1103 | go/libraries/doltcore/env/actions/dolt_ci/workflow_manager.go:1193-1205 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/libraries/doltcore/env/actions/dolt_ci/workflow_manager.go:1092\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that. Note that the copies do not run to the end of the range shown: their LAST lines are different code, not the same code under different names \u2014 the matched region ends inside that line. Extract the lines above it, and read the last line of each site separately."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/env/actions/dolt_ci/workflow_manager.go"},"region":{"startLine":1092}}}],"partialFingerprints":{"codehealthFindingId/v1":"bd6ce7138388d0a35d66873e4231a7fa0175ce5c3ef448bbb65db75f4b28dead"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (12 lines \u00D7 2): go/libraries/doltcore/env/actions/dolt_ci/workflow_manager.go:1287-1298 | go/libraries/doltcore/env/actions/dolt_ci/workflow_manager.go:1312-1323 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/libraries/doltcore/env/actions/dolt_ci/workflow_manager.go:1287\u0060 it does not close everything it opens, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/env/actions/dolt_ci/workflow_manager.go"},"region":{"startLine":1287}}}],"partialFingerprints":{"codehealthFindingId/v1":"0215e7aca3a9987def6e84fbebc2c920c963f58c54fe92ac3b7904b68c0f6011"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (12 lines \u00D7 2): go/libraries/doltcore/merge/merge_schema.go:331-342 | go/libraries/doltcore/merge/merge_schema.go:344-355 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/libraries/doltcore/merge/merge_schema.go:331\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that. Note that the copies do not run to the end of the range shown: their LAST lines are different code, not the same code under different names \u2014 the matched region ends inside that line. Extract the lines above it, and read the last line of each site separately."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/merge/merge_schema.go"},"region":{"startLine":331}}}],"partialFingerprints":{"codehealthFindingId/v1":"916d985d673e4c2a0741afa9536acec49fa7a013e350065cedf54b914525e6c4"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (12 lines \u00D7 2): go/libraries/doltcore/merge/merge_schema.go:957-968 | go/libraries/doltcore/merge/merge_schema.go:972-983 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/libraries/doltcore/merge/merge_schema.go:957\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that. The matched lines also transfer control out of the body holding them, which cannot survive a move into a called unit unchanged: have the extracted unit return that decision and let each site act on it."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/merge/merge_schema.go"},"region":{"startLine":957}}}],"partialFingerprints":{"codehealthFindingId/v1":"687b63d122d492fbbd79bbc29f32253ba5853ca01f1f85177577029fc78e4bb3"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (12 lines \u00D7 2): go/libraries/doltcore/merge/merge_schema.go:1247-1258 | go/libraries/doltcore/merge/merge_schema.go:1269-1280 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/libraries/doltcore/merge/merge_schema.go:1247\u0060 it does not close everything it opens, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/merge/merge_schema.go"},"region":{"startLine":1247}}}],"partialFingerprints":{"codehealthFindingId/v1":"12954c5822b335ab790912a490f345bec6df8b19f5b3ce8b007c41b305d5d229"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (12 lines \u00D7 2): go/libraries/doltcore/schema/collation_comparator.go:41-52 | go/store/val/tuple_compare.go:58-69 \u2014 the copies span different directories, so extracting a shared function means choosing where it lives: put it somewhere both call sites can already reach \u2014 a location they all depend on today, or a new shared one if there is none \u2014 and call it from each site; until then, every change has to be made twice. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/libraries/doltcore/schema/collation_comparator.go:41\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that. Note that the copies do not run to the end of the range shown: their LAST lines are different code, not the same code under different names \u2014 the matched region ends inside that line. Extract the lines above it, and read the last line of each site separately."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/schema/collation_comparator.go"},"region":{"startLine":41}}}],"partialFingerprints":{"codehealthFindingId/v1":"3775fdb438e1134755a494c2c7ae6137b13db5fd50cbe69a7f40d57ab04d928a"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (12 lines \u00D7 2): go/libraries/doltcore/schema/schema_impl.go:542-554 | go/libraries/doltcore/schema/schema_impl.go:602-613 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/libraries/doltcore/schema/schema_impl.go:542\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that. The matched lines also transfer control out of the body holding them, which cannot survive a move into a called unit unchanged: have the extracted unit return that decision and let each site act on it."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/schema/schema_impl.go"},"region":{"startLine":542}}}],"partialFingerprints":{"codehealthFindingId/v1":"ec23ab479312f7b40e5377666fdd83cc6f99901bb20bd6397b8e60205ed4ccfa"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (12 lines \u00D7 2): go/libraries/doltcore/sqle/cluster/branch_control_replica.go:125-136 | go/libraries/doltcore/sqle/cluster/mysqldb_persister.go:144-155 \u2014 the copies sit in sibling files of one directory: extract the block into a single shared function in that directory and call it from each site, so a change lands once. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/libraries/doltcore/sqle/cluster/branch_control_replica.go:125\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that. The matched lines also register a scope-exit action (a \u0060defer\u0060-style statement) that runs when the function holding them returns: moved into a called unit it would run when THAT unit returns instead \u2014 before the caller uses what it releases \u2014 so keep the registration at the call site and extract only the work around it, or have the extracted unit hand the resource back for the caller to register."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/cluster/branch_control_replica.go"},"region":{"startLine":125}}}],"partialFingerprints":{"codehealthFindingId/v1":"885286cf692cb1d2f8bb23d242766c6bacc9b317efdbf6fcc926f3470c76c903"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (12 lines \u00D7 2): go/libraries/doltcore/sqle/database.go:2086-2097 | go/libraries/doltcore/sqle/database.go:2149-2160 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited. The matched lines also transfer control out of the body holding them, which cannot survive a move into a called unit unchanged: have the extracted unit return that decision and let each site act on it."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/database.go"},"region":{"startLine":2086}}}],"partialFingerprints":{"codehealthFindingId/v1":"a770566948cd552951f28016551f8d76708ff0f80c007d1b50d47cdb25922093"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (12 lines \u00D7 2): go/libraries/doltcore/sqle/dfunctions/merge_base.go:100-111 | go/libraries/doltcore/sqle/dtablefunctions/dolt_diff.go:485-498 \u2014 the copies span different directories, so extracting a shared function means choosing where it lives: put it somewhere both call sites can already reach \u2014 a location they all depend on today, or a new shared one if there is none \u2014 and call it from each site; until then, every change has to be made twice. The matched lines also transfer control out of the body holding them, which cannot survive a move into a called unit unchanged: have the extracted unit return that decision and let each site act on it. Note that the copies do not run to the end of the range shown: their LAST lines are different code, not the same code under different names \u2014 the matched region ends inside that line. Extract the lines above it, and read the last line of each site separately."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dfunctions/merge_base.go"},"region":{"startLine":100}}}],"partialFingerprints":{"codehealthFindingId/v1":"7e9568458637e19bc114353531c00a33a9dab4bf900cb9955697ad5939a4381a"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (12 lines \u00D7 2): go/libraries/doltcore/sqle/dtablefunctions/dolt_diff_stat.go:379-390 | go/libraries/doltcore/sqle/dtablefunctions/dolt_diff_stat.go:397-408 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/libraries/doltcore/sqle/dtablefunctions/dolt_diff_stat.go:379\u0060 it does not close everything it opens, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dtablefunctions/dolt_diff_stat.go"},"region":{"startLine":379}}}],"partialFingerprints":{"codehealthFindingId/v1":"5cd38d82daab988e57f66502cfd5c62f7c305c7648ae976aca3e746253e6c0db"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (12 lines \u00D7 2): go/libraries/doltcore/sqle/dtablefunctions/dolt_test_run.go:230-241 | go/libraries/doltcore/sqle/dtablefunctions/dolt_test_run.go:267-278 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/libraries/doltcore/sqle/dtablefunctions/dolt_test_run.go:230\u0060 it does not close everything it opens, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dtablefunctions/dolt_test_run.go"},"region":{"startLine":230}}}],"partialFingerprints":{"codehealthFindingId/v1":"2c75827fc30066bf3d23ee52bcf24c9121a4579e03008b7d8e98428b54b999cc"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (12 lines \u00D7 2): go/libraries/doltcore/sqle/dtables/branch_control_table.go:187-198 | go/libraries/doltcore/sqle/dtables/branch_namespace_control.go:176-190 \u2014 the copies sit in sibling files of one directory: extract the block into a single shared function in that directory and call it from each site, so a change lands once. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/libraries/doltcore/sqle/dtables/branch_control_table.go:187\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that. Note that the copies do not run to the end of the range shown: their LAST lines are different code, not the same code under different names \u2014 the matched region ends inside that line. Extract the lines above it, and read the last line of each site separately."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dtables/branch_control_table.go"},"region":{"startLine":187}}}],"partialFingerprints":{"codehealthFindingId/v1":"a90304ae6f8a7a38efc3b7cc2b7197bb9bc7628989ff03e7a9a9fc64a013382e"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (12 lines \u00D7 2): go/libraries/doltcore/sqle/dtables/branch_namespace_control.go:180-191 | go/libraries/doltcore/sqle/dtables/branch_namespace_control.go:273-284 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/libraries/doltcore/sqle/dtables/branch_namespace_control.go:180\u0060 it does not close everything it opens, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dtables/branch_namespace_control.go"},"region":{"startLine":180}}}],"partialFingerprints":{"codehealthFindingId/v1":"448dbb27c2f9ea96cd55c3f8add81d7f374838c6e0572852990afa258d8ef355"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (12 lines \u00D7 2): go/libraries/doltcore/sqle/dtables/diff_iter.go:93-104 | go/libraries/doltcore/sqle/dtables/diff_iter.go:108-119 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/libraries/doltcore/sqle/dtables/diff_iter.go:93\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that. Note that the copies do not run to the end of the range shown: their LAST lines are different code, not the same code under different names \u2014 the matched region ends inside that line. Extract the lines above it, and read the last line of each site separately."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dtables/diff_iter.go"},"region":{"startLine":93}}}],"partialFingerprints":{"codehealthFindingId/v1":"88f5a90f8f5e45a67c595e2be004e9ff4179cf670985829e10da143ac548427f"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (12 lines \u00D7 2): go/libraries/doltcore/sqle/dtables/diff_table.go:900-911 | go/libraries/doltcore/sqle/dtables/diff_table.go:914-926 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/libraries/doltcore/sqle/dtables/diff_table.go:900\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that. Note that the copies do not run to the end of the range shown: their LAST lines are different code, not the same code under different names \u2014 the matched region ends inside that line. Extract the lines above it, and read the last line of each site separately."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dtables/diff_table.go"},"region":{"startLine":900}}}],"partialFingerprints":{"codehealthFindingId/v1":"7ceaa1638ec6c84c130d14968bfef215c6fca84914e74ade7bff796496c78bca"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (12 lines \u00D7 2): go/libraries/doltcore/sqle/index/dolt_index.go:1099-1110 | go/libraries/doltcore/sqle/writer/prolly_index_writer_keyless.go:258-269 \u2014 the copies span different directories, so extracting a shared function means choosing where it lives: put it somewhere both call sites can already reach \u2014 a location they all depend on today, or a new shared one if there is none \u2014 and call it from each site; until then, every change has to be made twice. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/libraries/doltcore/sqle/index/dolt_index.go:1099\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that. The matched lines also transfer control out of the body holding them, which cannot survive a move into a called unit unchanged: have the extracted unit return that decision and let each site act on it."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/index/dolt_index.go"},"region":{"startLine":1099}}}],"partialFingerprints":{"codehealthFindingId/v1":"c4e64a20dac12ffe95561b05fb52d601c122eb237a34025c60a40a922a36b440"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (12 lines \u00D7 2): go/libraries/doltcore/sqle/tables.go:2435-2446 | go/libraries/doltcore/sqle/tables.go:2474-2487 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/tables.go"},"region":{"startLine":2435}}}],"partialFingerprints":{"codehealthFindingId/v1":"bd69135f330281ae4bed27de37a12ae478b7cf6b50ff6a6d4c0e83f649b4f32e"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (12 lines \u00D7 2): go/libraries/doltcore/sqle/writer/prolly_index_writer.go:139-150 | go/libraries/doltcore/sqle/writer/prolly_index_writer.go:203-214 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/libraries/doltcore/sqle/writer/prolly_index_writer.go:139\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that. The matched lines also transfer control out of the body holding them, which cannot survive a move into a called unit unchanged: have the extracted unit return that decision and let each site act on it."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/writer/prolly_index_writer.go"},"region":{"startLine":139}}}],"partialFingerprints":{"codehealthFindingId/v1":"2670760f86c944a1ac079d9c1fdd4fe1e0aa03895193ce9ff869c729d9a67b35"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (12 lines \u00D7 2): go/libraries/doltcore/table/untyped/sqlexport/batch_sqlwriter.go:207-218 | go/libraries/doltcore/table/untyped/sqlexport/sqlwriter.go:177-188 \u2014 the copies sit in sibling files of one directory: extract the block into a single shared function in that directory and call it from each site, so a change lands once. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/libraries/doltcore/table/untyped/sqlexport/batch_sqlwriter.go:207\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that. The matched lines also transfer control out of the body holding them, which cannot survive a move into a called unit unchanged: have the extracted unit return that decision and let each site act on it."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/table/untyped/sqlexport/batch_sqlwriter.go"},"region":{"startLine":207}}}],"partialFingerprints":{"codehealthFindingId/v1":"1f388ab86760a204c75af06652ac2ed990fad6a1d6b4d35f766bf871f6133a80"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (12 lines \u00D7 2): go/performance/import_benchmarker/testdef.go:311-322 | go/performance/import_benchmarker/testdef.go:367-378 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/performance/import_benchmarker/testdef.go:311\u0060 it does not close everything it opens, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that. The matched lines also transfer control out of the body holding them, which cannot survive a move into a called unit unchanged: have the extracted unit return that decision and let each site act on it. The matched lines also register a scope-exit action (a \u0060defer\u0060-style statement) that runs when the function holding them returns: moved into a called unit it would run when THAT unit returns instead \u2014 before the caller uses what it releases \u2014 so keep the registration at the call site and extract only the work around it, or have the extracted unit hand the resource back for the caller to register."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/performance/import_benchmarker/testdef.go"},"region":{"startLine":311}}}],"partialFingerprints":{"codehealthFindingId/v1":"380f86720732f3d914db64312dd716a857b158bf77679d7f78ae8687ba05f7b5"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (12 lines \u00D7 2): go/performance/utils/benchmark_runner/mysql.go:67-78 | go/performance/utils/benchmark_runner/mysql_tpcc.go:64-75 \u2014 the copies sit in sibling files of one directory: extract the block into a single shared function in that directory and call it from each site, so a change lands once. Note that the copies do not run to the end of the range shown: their LAST lines are different code, not the same code under different names \u2014 the matched region ends inside that line. Extract the lines above it, and read the last line of each site separately."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/performance/utils/benchmark_runner/mysql.go"},"region":{"startLine":67}}}],"partialFingerprints":{"codehealthFindingId/v1":"b9aa99c9864cbf5daf778bdf63ccd657c3fea6c798698a2a1db1430a4177c25c"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (12 lines \u00D7 2): go/store/blobstore/internal/git/impl.go:133-144 | go/store/blobstore/internal/git/impl.go:158-169 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/store/blobstore/internal/git/impl.go:133\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/blobstore/internal/git/impl.go"},"region":{"startLine":133}}}],"partialFingerprints":{"codehealthFindingId/v1":"6b1d50ddaccf2d45e616d809c61b61987954e235fb62f8de8aa3e62f225d2b07"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (12 lines \u00D7 2): go/store/nbs/archive_reader.go:657-668 | go/store/nbs/archive_reader.go:756-767 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/store/nbs/archive_reader.go:657\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/nbs/archive_reader.go"},"region":{"startLine":657}}}],"partialFingerprints":{"codehealthFindingId/v1":"0ad6c62c006ae2776e4d984755bc46ce8c3087ceaa7cc6d6777fa4814c0e6817"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (12 lines \u00D7 2): go/store/nbs/archive_reader.go:879-890 | go/store/nbs/mmap_index_reader.go:121-132 \u2014 the copies sit in sibling files of one directory: extract the block into a single shared function in that directory and call it from each site, so a change lands once. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/store/nbs/archive_reader.go:879\u0060 it does not close everything it opens, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/nbs/archive_reader.go"},"region":{"startLine":879}}}],"partialFingerprints":{"codehealthFindingId/v1":"a9063e99d40f39b9b352534e6c53f8f037e644ae407fbb7e85627b5f51c95780"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (12 lines \u00D7 2): go/store/nbs/store.go:429-440 | go/store/nbs/store.go:586-597 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited. The matched lines also register a scope-exit action (a \u0060defer\u0060-style statement) that runs when the function holding them returns: moved into a called unit it would run when THAT unit returns instead \u2014 before the caller uses what it releases \u2014 so keep the registration at the call site and extract only the work around it, or have the extracted unit hand the resource back for the caller to register. Note that the copies do not run to the end of the range shown: their LAST lines are different code, not the same code under different names \u2014 the matched region ends inside that line. Extract the lines above it, and read the last line of each site separately."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/nbs/store.go"},"region":{"startLine":429}}}],"partialFingerprints":{"codehealthFindingId/v1":"8cc2037cd9ab2f3fd3aebd92f9116bc9501c871d9d3df227a6667c6edb1742d5"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (12 lines \u00D7 2): go/store/prolly/message/merge_artifacts.go:222-233 | go/store/prolly/message/prolly_map.go:220-231 \u2014 the copies sit in sibling files of one directory: extract the block into a single shared function in that directory and call it from each site, so a change lands once."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/prolly/message/merge_artifacts.go"},"region":{"startLine":222}}}],"partialFingerprints":{"codehealthFindingId/v1":"3663bb063f2c5c7f0e24264e800b37e6dfbdcf3afd5a62424722cabfdee6c418"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (12 lines \u00D7 2): go/store/prolly/tree/json_indexed_document.go:404-415 | go/store/prolly/tree/json_indexed_document.go:621-632 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited. The matched lines also transfer control out of the body holding them, which cannot survive a move into a called unit unchanged: have the extracted unit return that decision and let each site act on it."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/prolly/tree/json_indexed_document.go"},"region":{"startLine":404}}}],"partialFingerprints":{"codehealthFindingId/v1":"129a44ef77dc9c51ab07faeb2965128c40ffcc458831a39b6404e327fb954b9a"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (12 lines \u00D7 2): go/store/prolly/tree/merge.go:204-216 | go/store/prolly/tree/merge.go:302-313 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/store/prolly/tree/merge.go:204\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that. The matched lines also transfer control out of the body holding them, which cannot survive a move into a called unit unchanged: have the extracted unit return that decision and let each site act on it. Note that the copies do not run to the end of the range shown: their LAST lines are different code, not the same code under different names \u2014 the matched region ends inside that line. Extract the lines above it, and read the last line of each site separately."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/prolly/tree/merge.go"},"region":{"startLine":204}}}],"partialFingerprints":{"codehealthFindingId/v1":"a381c02f69d6a979bc43d686ec6c24606cfcf2ee10423ba2f47da7aa419a5f47"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (12 lines \u00D7 2): go/store/types/geometry.go:102-113 | go/store/types/geometry.go:125-136 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/store/types/geometry.go:102\u0060 it does not close everything it opens, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/types/geometry.go"},"region":{"startLine":102}}}],"partialFingerprints":{"codehealthFindingId/v1":"e64b403a30c72d25a15c61c2a7e256a2527e3349184a5d0b18102996221f3434"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (11 lines \u00D7 3): go/cmd/dolt/commands/commit.go:467-477 | go/cmd/dolt/commands/commit.go:482-492 | go/cmd/dolt/commands/commit.go:497-507 \u2014 all 3 copies are in the same file, so extract the block into one function there and call it from every one of those sites \u2014 resolving only two of them leaves the rest to drift apart the first time one is edited. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/cmd/dolt/commands/commit.go:467\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that. Note that the copies do not run to the end of the range shown: their LAST lines are different code, not the same code under different names \u2014 the matched region ends inside that line. Extract the lines above it, and read the last line of each site separately."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/commit.go"},"region":{"startLine":467}}}],"partialFingerprints":{"codehealthFindingId/v1":"61a3e37965f72a059421af0ef7bafb95aa900228a2036c49d526021da2306ddd"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (11 lines \u00D7 3): go/libraries/doltcore/sqle/dtablefunctions/dolt_diff_stat.go:239-249 | go/libraries/doltcore/sqle/dtablefunctions/dolt_diff_summary.go:231-241 | go/libraries/doltcore/sqle/dtablefunctions/dolt_patch.go:382-392 \u2014 the copies sit in sibling files of one directory: extract the block into a single shared function in that directory and call it from each site, so a change lands once. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/libraries/doltcore/sqle/dtablefunctions/dolt_diff_stat.go:239\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dtablefunctions/dolt_diff_stat.go"},"region":{"startLine":239}}}],"partialFingerprints":{"codehealthFindingId/v1":"b979f35aab22b354c41ef0128fc6444eb314123ea1cc30fae2ecd956d2c6aea1"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (11 lines \u00D7 3): go/libraries/doltcore/sqle/dtablefunctions/dolt_diff_summary.go:177-187 | go/libraries/doltcore/sqle/dtablefunctions/dolt_log.go:305-315 | go/libraries/doltcore/sqle/dtablefunctions/dolt_preview_merge_conflicts_summary.go:133-143 \u2014 the copies sit in sibling files of one directory: extract the block into a single shared function in that directory and call it from each site, so a change lands once. The matched lines also transfer control out of the body holding them, which cannot survive a move into a called unit unchanged: have the extracted unit return that decision and let each site act on it."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dtablefunctions/dolt_diff_summary.go"},"region":{"startLine":177}}}],"partialFingerprints":{"codehealthFindingId/v1":"077c868af7dd4292713982a3a230ce383297aa3a5295ccc1bd0bbb8bbcc1a484"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (11 lines \u00D7 3): go/libraries/doltcore/sqle/dtables/backups_table.go:97-107 | go/libraries/doltcore/sqle/dtables/remotes_table.go:108-118 | go/libraries/doltcore/sqle/dtables/stashes_table.go:116-126 \u2014 the copies sit in sibling files of one directory: extract the block into a single shared function in that directory and call it from each site, so a change lands once. Note that the copies do not run to the end of the range shown: their LAST lines are different code, not the same code under different names \u2014 the matched region ends inside that line. Extract the lines above it, and read the last line of each site separately."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dtables/backups_table.go"},"region":{"startLine":97}}}],"partialFingerprints":{"codehealthFindingId/v1":"acc34315f65adaefb9c030099128032d557d6b6d61080d60d4f923c07837b64e"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (11 lines \u00D7 3): go/store/prolly/tree/json_indexed_document.go:345-355 | go/store/prolly/tree/json_indexed_document.go:405-415 | go/store/prolly/tree/json_indexed_document.go:622-632 \u2014 all 3 copies are in the same file, so extract the block into one function there and call it from every one of those sites \u2014 resolving only two of them leaves the rest to drift apart the first time one is edited. The matched lines also transfer control out of the body holding them, which cannot survive a move into a called unit unchanged: have the extracted unit return that decision and let each site act on it."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/prolly/tree/json_indexed_document.go"},"region":{"startLine":345}}}],"partialFingerprints":{"codehealthFindingId/v1":"5a61804bfb752586a8bf13ab75ad3b2acf5f79f38aee6422adcd699280026bb4"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (11 lines \u00D7 2): go/cmd/dolt/commands/branch.go:449-459 | go/cmd/dolt/commands/rm.go:113-123 \u2014 the copies sit in sibling files of one directory: extract the block into a single shared function in that directory and call it from each site, so a change lands once. The matched lines also transfer control out of the body holding them, which cannot survive a move into a called unit unchanged: have the extracted unit return that decision and let each site act on it."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/branch.go"},"region":{"startLine":449}}}],"partialFingerprints":{"codehealthFindingId/v1":"f4179b5b65729155fb41a27fbd2d40b69924e45226af9f85f969a7b376bb7768"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (11 lines \u00D7 2): go/libraries/doltcore/diff/table_deltas.go:152-162 | go/libraries/doltcore/diff/table_deltas.go:196-207 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/libraries/doltcore/diff/table_deltas.go:152\u0060 it does not close everything it opens, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/diff/table_deltas.go"},"region":{"startLine":152}}}],"partialFingerprints":{"codehealthFindingId/v1":"c3c510f92dc9d3186baa10d3f0007f97e3f95d958c1517aa06853ecf704d36bb"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (11 lines \u00D7 2): go/libraries/doltcore/doltdb/ignore.go:100-110 | go/libraries/doltcore/sqle/database.go:1165-1175 \u2014 the copies span different directories, so extracting a shared function means choosing where it lives: put it somewhere both call sites can already reach \u2014 a location they all depend on today, or a new shared one if there is none \u2014 and call it from each site; until then, every change has to be made twice."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/doltdb/ignore.go"},"region":{"startLine":100}}}],"partialFingerprints":{"codehealthFindingId/v1":"5c1c339be60031e9c139e24e395fd130771fd69d5770dd5e049eb1e73eb14a61"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (11 lines \u00D7 2): go/libraries/doltcore/doltdb/ignore.go:151-161 | go/libraries/doltcore/doltdb/ignore.go:180-190 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/libraries/doltcore/doltdb/ignore.go:151\u0060 it does not close everything it opens, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/doltdb/ignore.go"},"region":{"startLine":151}}}],"partialFingerprints":{"codehealthFindingId/v1":"678f3aac793ffa632711859aba87395bdbfe8e5d572eb77acdce6c513ea7adf4"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (11 lines \u00D7 2): go/libraries/doltcore/env/actions/dolt_ci/workflow_manager.go:1677-1687 | go/libraries/doltcore/env/actions/dolt_ci/workflow_manager.go:1733-1745 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited. The matched lines also transfer control out of the body holding them, which cannot survive a move into a called unit unchanged: have the extracted unit return that decision and let each site act on it."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/env/actions/dolt_ci/workflow_manager.go"},"region":{"startLine":1677}}}],"partialFingerprints":{"codehealthFindingId/v1":"9e8a211c05adf8d96ae07169021d04384ebe5da7e4b4c2a0c23b3461ffdbc918"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (11 lines \u00D7 2): go/libraries/doltcore/env/actions/remotes.go:221-232 | go/libraries/doltcore/env/actions/remotes.go:405-415 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/env/actions/remotes.go"},"region":{"startLine":221}}}],"partialFingerprints":{"codehealthFindingId/v1":"dc97647d83784fea0585b9700cc05f0e35da3971634944027bec9b9d60149095"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (11 lines \u00D7 2): go/libraries/doltcore/merge/merge_prolly_rows.go:1232-1242 | go/libraries/doltcore/merge/merge_prolly_rows.go:1263-1273 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/libraries/doltcore/merge/merge_prolly_rows.go:1232\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that. The matched lines also transfer control out of the body holding them, which cannot survive a move into a called unit unchanged: have the extracted unit return that decision and let each site act on it."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/merge/merge_prolly_rows.go"},"region":{"startLine":1232}}}],"partialFingerprints":{"codehealthFindingId/v1":"d7a3790f050fd295d69dd26fff927e5a3e738d760ecf4ec70c674183630885cd"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (11 lines \u00D7 2): go/libraries/doltcore/merge/merge_prolly_rows.go:2052-2062 | go/libraries/doltcore/merge/merge_prolly_rows.go:2077-2087 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/libraries/doltcore/merge/merge_prolly_rows.go:2052\u0060 it does not close everything it opens, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that. The matched lines also transfer control out of the body holding them, which cannot survive a move into a called unit unchanged: have the extracted unit return that decision and let each site act on it."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/merge/merge_prolly_rows.go"},"region":{"startLine":2052}}}],"partialFingerprints":{"codehealthFindingId/v1":"d8a5e1a6011576937dae0ee3234386c29ac238b8646a884d1ffca7129ee5a922"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (11 lines \u00D7 2): go/libraries/doltcore/merge/violations_fk.go:315-325 | go/libraries/doltcore/merge/violations_fk.go:351-362 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/libraries/doltcore/merge/violations_fk.go:315\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that. The matched lines also transfer control out of the body holding them, which cannot survive a move into a called unit unchanged: have the extracted unit return that decision and let each site act on it."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/merge/violations_fk.go"},"region":{"startLine":315}}}],"partialFingerprints":{"codehealthFindingId/v1":"39dda64f3935e8537c6608047d9286fb1b2d82ce99f1636190eeb6b19e7af46a"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (11 lines \u00D7 2): go/libraries/doltcore/remotesrv/grpc.go:283-293 | go/libraries/doltcore/remotesrv/grpc.go:399-415 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/libraries/doltcore/remotesrv/grpc.go:283\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that. Note that the copies do not run to the end of the range shown: their LAST lines are different code, not the same code under different names \u2014 the matched region ends inside that line. Extract the lines above it, and read the last line of each site separately."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/remotesrv/grpc.go"},"region":{"startLine":283}}}],"partialFingerprints":{"codehealthFindingId/v1":"c24118f36ee48994414b64b1e8a6d351364aea924002c23aea5fde1d06158fdf"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (11 lines \u00D7 2): go/libraries/doltcore/schema/index_coll.go:225-235 | go/libraries/doltcore/schema/index_coll.go:254-264 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/libraries/doltcore/schema/index_coll.go:225\u0060 it does not close everything it opens, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/schema/index_coll.go"},"region":{"startLine":225}}}],"partialFingerprints":{"codehealthFindingId/v1":"f01cc350161afc0c63b5ec08915637fb01f95b8c5693619b5cceffa52f5e1867"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (11 lines \u00D7 2): go/libraries/doltcore/sqle/dfunctions/has_ancestor.go:66-76 | go/libraries/doltcore/sqle/dfunctions/has_ancestor.go:82-92 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/libraries/doltcore/sqle/dfunctions/has_ancestor.go:66\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dfunctions/has_ancestor.go"},"region":{"startLine":66}}}],"partialFingerprints":{"codehealthFindingId/v1":"f909b0a4ee03e61f2eb0baa7db1e8723478353d7b771ee588e370053ad5cc586"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (11 lines \u00D7 2): go/libraries/doltcore/sqle/dtablefunctions/dolt_diff_stat.go:274-284 | go/libraries/doltcore/sqle/dtablefunctions/dolt_diff_summary.go:266-276 \u2014 the copies sit in sibling files of one directory: extract the block into a single shared function in that directory and call it from each site, so a change lands once. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/libraries/doltcore/sqle/dtablefunctions/dolt_diff_stat.go:274\u0060 it does not close everything it opens, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dtablefunctions/dolt_diff_stat.go"},"region":{"startLine":274}}}],"partialFingerprints":{"codehealthFindingId/v1":"f2d19dba3588ec9aa609666cbaa2350b8b7ea90cf434b88304ad49afa69a1187"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (11 lines \u00D7 2): go/libraries/doltcore/sqle/dtablefunctions/dolt_diff_summary.go:275-285 | go/libraries/doltcore/sqle/dtablefunctions/dolt_patch.go:133-143 \u2014 the copies sit in sibling files of one directory: extract the block into a single shared function in that directory and call it from each site, so a change lands once. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/libraries/doltcore/sqle/dtablefunctions/dolt_diff_summary.go:275\u0060 it does not close everything it opens, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dtablefunctions/dolt_diff_summary.go"},"region":{"startLine":275}}}],"partialFingerprints":{"codehealthFindingId/v1":"d6e72b5437ec6182b2da3860f9bd5daefe86ee24128992ffbbed4a9903deed77"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (11 lines \u00D7 2): go/libraries/doltcore/sqle/dtablefunctions/dolt_log.go:498-508 | go/libraries/doltcore/sqle/dtablefunctions/dolt_log.go:517-527 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/libraries/doltcore/sqle/dtablefunctions/dolt_log.go:498\u0060 it does not close everything it opens, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dtablefunctions/dolt_log.go"},"region":{"startLine":498}}}],"partialFingerprints":{"codehealthFindingId/v1":"a64eea6f82ffee3eb3eb769c7ef2692041c003725eaf4d96a46d2a7980d0d0bd"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (11 lines \u00D7 2): go/libraries/doltcore/sqle/dtables/branch_control_table.go:309-319 | go/libraries/doltcore/sqle/dtables/branch_namespace_control.go:270-283 \u2014 the copies sit in sibling files of one directory: extract the block into a single shared function in that directory and call it from each site, so a change lands once. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/libraries/doltcore/sqle/dtables/branch_control_table.go:309\u0060 it does not close everything it opens, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that. Note that the copies do not run to the end of the range shown: their LAST lines are different code, not the same code under different names \u2014 the matched region ends inside that line. Extract the lines above it, and read the last line of each site separately."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dtables/branch_control_table.go"},"region":{"startLine":309}}}],"partialFingerprints":{"codehealthFindingId/v1":"359a9799fbae633ba45119c036e0505110d65c401faccf2798b69776ac74a89e"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (11 lines \u00D7 2): go/libraries/doltcore/sqle/dtables/column_diff_table.go:148-158 | go/libraries/doltcore/sqle/dtables/unscoped_diff_table.go:174-184 \u2014 the copies sit in sibling files of one directory: extract the block into a single shared function in that directory and call it from each site, so a change lands once. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/libraries/doltcore/sqle/dtables/column_diff_table.go:148\u0060 it does not close everything it opens, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dtables/column_diff_table.go"},"region":{"startLine":148}}}],"partialFingerprints":{"codehealthFindingId/v1":"f05b80b09507d0a39d53e70a8b2a88eadaa3adbacd77bb98fc6816fae860ebac"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (11 lines \u00D7 2): go/libraries/doltcore/sqle/dtables/column_diff_table.go:336-346 | go/libraries/doltcore/sqle/dtables/unscoped_diff_table.go:362-372 \u2014 the copies sit in sibling files of one directory: extract the block into a single shared function in that directory and call it from each site, so a change lands once. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/libraries/doltcore/sqle/dtables/column_diff_table.go:336\u0060 it does not close everything it opens, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dtables/column_diff_table.go"},"region":{"startLine":336}}}],"partialFingerprints":{"codehealthFindingId/v1":"17bbbcb99b579c87ff5555d380419bc1fcdf2a7804678d73851c2e95591024c4"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (11 lines \u00D7 2): go/libraries/doltcore/sqle/dtables/log_table.go:487-497 | go/libraries/doltcore/sqle/dtables/log_table.go:499-509 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/libraries/doltcore/sqle/dtables/log_table.go:487\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dtables/log_table.go"},"region":{"startLine":487}}}],"partialFingerprints":{"codehealthFindingId/v1":"2f82a9d51bebc5911496dee45204be0f67fe76c28a2cbf4ef193905b71e6e86b"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (11 lines \u00D7 2): go/libraries/doltcore/sqle/dtables/workspace_table.go:526-536 | go/libraries/doltcore/sqle/dtables/workspace_table.go:546-556 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/libraries/doltcore/sqle/dtables/workspace_table.go:526\u0060 it does not close everything it opens, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that. The matched lines also transfer control out of the body holding them, which cannot survive a move into a called unit unchanged: have the extracted unit return that decision and let each site act on it."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dtables/workspace_table.go"},"region":{"startLine":526}}}],"partialFingerprints":{"codehealthFindingId/v1":"c03ab525642fb15c046fcdbbcbd2a77d2baf46155ac48b278a8c81efaf2c86dd"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (11 lines \u00D7 2): go/libraries/doltcore/sqle/dtables/workspace_table.go:782-792 | go/libraries/doltcore/sqle/dtables/workspace_table.go:793-803 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dtables/workspace_table.go"},"region":{"startLine":782}}}],"partialFingerprints":{"codehealthFindingId/v1":"dce56ed3c02efce0aee00ddbf674b0cdfce878b7bb6d6f89087df54fcdba192f"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (11 lines \u00D7 2): go/libraries/doltcore/sqle/index/index_reader.go:540-550 | go/libraries/doltcore/sqle/index/index_reader.go:664-674 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/libraries/doltcore/sqle/index/index_reader.go:540\u0060 it does not close everything it opens, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that. The matched lines also transfer control out of the body holding them, which cannot survive a move into a called unit unchanged: have the extracted unit return that decision and let each site act on it."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/index/index_reader.go"},"region":{"startLine":540}}}],"partialFingerprints":{"codehealthFindingId/v1":"855bb098bcbe2ccb1c93f9ef8e4daf158b8541f54b250b52da5429bff5be4d11"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (11 lines \u00D7 2): go/libraries/doltcore/sqle/index/index_reader.go:607-617 | go/libraries/doltcore/sqle/index/secondary_iter.go:364-377 \u2014 the copies sit in sibling files of one directory: extract the block into a single shared function in that directory and call it from each site, so a change lands once. Note that the copies do not run to the end of the range shown: their LAST lines are different code, not the same code under different names \u2014 the matched region ends inside that line. Extract the lines above it, and read the last line of each site separately."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/index/index_reader.go"},"region":{"startLine":607}}}],"partialFingerprints":{"codehealthFindingId/v1":"d95fa55b9203215b092d3624b04e383fd9cc305e835c77f153cf6f25ac48e703"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (11 lines \u00D7 2): go/libraries/doltcore/sqle/indexed_dolt_table.go:188-198 | go/libraries/doltcore/sqle/tables.go:1335-1345 \u2014 the copies sit in sibling files of one directory: extract the block into a single shared function in that directory and call it from each site, so a change lands once. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/libraries/doltcore/sqle/indexed_dolt_table.go:188\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that. The matched lines also transfer control out of the body holding them, which cannot survive a move into a called unit unchanged: have the extracted unit return that decision and let each site act on it."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/indexed_dolt_table.go"},"region":{"startLine":188}}}],"partialFingerprints":{"codehealthFindingId/v1":"c28892c1e79d15c8f91a798c2c1d8d0f659c36f87275f5e0d84bd006dbc26525"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (11 lines \u00D7 2): go/libraries/doltcore/table/untyped/sqlexport/batch_sqlwriter.go:63-74 | go/libraries/doltcore/table/untyped/sqlexport/sqlwriter.go:51-61 \u2014 the copies sit in sibling files of one directory: extract the block into a single shared function in that directory and call it from each site, so a change lands once."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/table/untyped/sqlexport/batch_sqlwriter.go"},"region":{"startLine":63}}}],"partialFingerprints":{"codehealthFindingId/v1":"0a5750b82e9911b0ec52ce0160693bd2d8ca35c194569825f25897d0e6147a95"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (11 lines \u00D7 2): go/libraries/doltcore/table/untyped/sqlexport/batch_sqlwriter.go:160-171 | go/libraries/doltcore/table/untyped/sqlexport/sqlwriter.go:135-145 \u2014 the copies sit in sibling files of one directory: extract the block into a single shared function in that directory and call it from each site, so a change lands once. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/libraries/doltcore/table/untyped/sqlexport/batch_sqlwriter.go:160\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that. The matched lines also transfer control out of the body holding them, which cannot survive a move into a called unit unchanged: have the extracted unit return that decision and let each site act on it."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/table/untyped/sqlexport/batch_sqlwriter.go"},"region":{"startLine":160}}}],"partialFingerprints":{"codehealthFindingId/v1":"bbe9a760d0c9d3b0f545f0ce0fc77c6d621673f8517c2734ccff6f6346775291"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (11 lines \u00D7 2): go/libraries/utils/filesys/inmemfs.go:582-592 | go/libraries/utils/filesys/inmemfs.go:635-645 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/libraries/utils/filesys/inmemfs.go:582\u0060 it does not close everything it opens, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that. The matched lines also register a scope-exit action (a \u0060defer\u0060-style statement) that runs when the function holding them returns: moved into a called unit it would run when THAT unit returns instead \u2014 before the caller uses what it releases \u2014 so keep the registration at the call site and extract only the work around it, or have the extracted unit hand the resource back for the caller to register."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/utils/filesys/inmemfs.go"},"region":{"startLine":582}}}],"partialFingerprints":{"codehealthFindingId/v1":"e2db8bfdc8ae92e742ee7b7bcb94b89698041fff7b097d1b11edd42d0a85ea49"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (11 lines \u00D7 2): go/performance/import_benchmarker/testdef.go:340-350 | go/performance/import_benchmarker/testdef.go:416-426 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/performance/import_benchmarker/testdef.go:340\u0060 it does not close everything it opens, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/performance/import_benchmarker/testdef.go"},"region":{"startLine":340}}}],"partialFingerprints":{"codehealthFindingId/v1":"fe2fe7f8aa07f0c598069d7d999a42ea08d24c9afd308cc0ab46fcf18567b907"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (11 lines \u00D7 2): go/store/datas/database_common.go:390-400 | go/store/datas/database_common.go:564-574 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/store/datas/database_common.go:390\u0060 it does not close everything it opens, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/datas/database_common.go"},"region":{"startLine":390}}}],"partialFingerprints":{"codehealthFindingId/v1":"2406b2eedcd8e42d9005d227203ba0b386e4e5c3a7de131054540ec715b4f91d"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (11 lines \u00D7 2): go/store/datas/database_common.go:418-429 | go/store/datas/database_common.go:891-901 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/store/datas/database_common.go:418\u0060 it does not close everything it opens, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/datas/database_common.go"},"region":{"startLine":418}}}],"partialFingerprints":{"codehealthFindingId/v1":"e31513a6fbe8a3840c8cab3dfeb12ddb544af27314738683290a98dee8cbd03d"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (11 lines \u00D7 2): go/store/datas/tag.go:45-55 | go/store/datas/workingset.go:74-84 \u2014 the copies sit in sibling files of one directory: extract the block into a single shared function in that directory and call it from each site, so a change lands once. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/store/datas/tag.go:45\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that. The matched lines also transfer control out of the body holding them, which cannot survive a move into a called unit unchanged: have the extracted unit return that decision and let each site act on it."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/datas/tag.go"},"region":{"startLine":45}}}],"partialFingerprints":{"codehealthFindingId/v1":"7cab5711126ec626392371e248963c7e973fab96b6c018ba0a589f877d758af8"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (11 lines \u00D7 2): go/store/nbs/generational_chunk_store.go:167-177 | go/store/nbs/generational_chunk_store.go:181-191 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/store/nbs/generational_chunk_store.go:167\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that. The matched lines also transfer control out of the body holding them, which cannot survive a move into a called unit unchanged: have the extracted unit return that decision and let each site act on it."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/nbs/generational_chunk_store.go"},"region":{"startLine":167}}}],"partialFingerprints":{"codehealthFindingId/v1":"ebc3e3f4196d1103b364b9c36fd798387648c497937253dbac30ee44e6de12a7"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (11 lines \u00D7 2): go/store/nbs/journal.go:726-736 | go/store/nbs/journal.go:748-758 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited. The matched lines also register a scope-exit action (a \u0060defer\u0060-style statement) that runs when the function holding them returns: moved into a called unit it would run when THAT unit returns instead \u2014 before the caller uses what it releases \u2014 so keep the registration at the call site and extract only the work around it, or have the extracted unit hand the resource back for the caller to register."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/nbs/journal.go"},"region":{"startLine":726}}}],"partialFingerprints":{"codehealthFindingId/v1":"802bcb746859d518d45fadf4b35a15e4be6060dea228b64f5a8476e9d8edc3d0"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (11 lines \u00D7 2): go/store/prolly/tree/mutable_map.go:54-64 | go/store/prolly/tree/mutable_map.go:96-106 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/store/prolly/tree/mutable_map.go:54\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that. The matched lines also transfer control out of the body holding them, which cannot survive a move into a called unit unchanged: have the extracted unit return that decision and let each site act on it. Note that the copies do not run to the end of the range shown: their LAST lines are different code, not the same code under different names \u2014 the matched region ends inside that line. Extract the lines above it, and read the last line of each site separately."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/prolly/tree/mutable_map.go"},"region":{"startLine":54}}}],"partialFingerprints":{"codehealthFindingId/v1":"7f8e60a5da30a567c502332899cccedb09dce84231765468bb37276d6703c59a"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (11 lines \u00D7 2): go/store/prolly/tree/node_store.go:225-235 | go/store/prolly/tree/testutils.go:347-357 \u2014 the copies sit in sibling files of one directory: extract the block into a single shared function in that directory and call it from each site, so a change lands once."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/prolly/tree/node_store.go"},"region":{"startLine":225}}}],"partialFingerprints":{"codehealthFindingId/v1":"59582c86538bf41ac43eb3b0cc21d84c20f745451d5bc09a1f405e2176b85ad6"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (11 lines \u00D7 2): go/store/prolly/tuple_range.go:96-106 | go/store/prolly/tuple_range.go:131-141 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/store/prolly/tuple_range.go:96\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that. Note that the copies do not run to the end of the range shown: their LAST lines are different code, not the same code under different names \u2014 the matched region ends inside that line. Extract the lines above it, and read the last line of each site separately."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/prolly/tuple_range.go"},"region":{"startLine":96}}}],"partialFingerprints":{"codehealthFindingId/v1":"1ca0975149e9ae3801d549bfd9e7f30e26eb7e002a90d5d5fbb7763f51d3cc88"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (11 lines \u00D7 2): go/store/types/linestring.go:45-58 | go/store/types/multipoint.go:40-50 \u2014 the copies sit in sibling files of one directory: extract the block into a single shared function in that directory and call it from each site, so a change lands once. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/store/types/linestring.go:45\u0060 it does not close everything it opens, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/types/linestring.go"},"region":{"startLine":45}}}],"partialFingerprints":{"codehealthFindingId/v1":"a97efff4f26fa17cbbc21a58975c9c192c768815e75625990544d6b7d0feff92"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (11 lines \u00D7 2): go/store/types/serial_message.go:464-474 | go/store/types/serial_message.go:537-547 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/store/types/serial_message.go:464\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/types/serial_message.go"},"region":{"startLine":464}}}],"partialFingerprints":{"codehealthFindingId/v1":"413187fef87160a53707ca43c7bf6ef877b71a39f6eaeac9ae8f396af81a82bd"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (10 lines \u00D7 6): go/libraries/doltcore/remotesrv/grpc.go:109-118 | go/libraries/doltcore/remotesrv/grpc.go:170-179 | go/libraries/doltcore/remotesrv/grpc.go:629-638 | go/libraries/doltcore/remotesrv/grpc.go:652-661 | go/libraries/doltcore/remotesrv/grpc.go:753-762 | go/libraries/doltcore/remotesrv/grpc.go:833-842 \u2014 all 6 copies are in the same file, so extract the block into one function there and call it from every one of those sites \u2014 resolving only two of them leaves the rest to drift apart the first time one is edited. The matched lines also register a scope-exit action (a \u0060defer\u0060-style statement) that runs when the function holding them returns: moved into a called unit it would run when THAT unit returns instead \u2014 before the caller uses what it releases \u2014 so keep the registration at the call site and extract only the work around it, or have the extracted unit hand the resource back for the caller to register. Note that the copies do not run to the end of the range shown: their LAST lines are different code, not the same code under different names \u2014 the matched region ends inside that line. Extract the lines above it, and read the last line of each site separately."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/remotesrv/grpc.go"},"region":{"startLine":109}}}],"partialFingerprints":{"codehealthFindingId/v1":"1e63207d82f46d1d30debdb96db309f71183e7c6a9b706a2cf82dc185e0a3f2f"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (10 lines \u00D7 4): go/libraries/doltcore/sqle/dtablefunctions/dolt_diff_stat.go:201-210 | go/libraries/doltcore/sqle/dtablefunctions/dolt_diff_summary.go:193-202 | go/libraries/doltcore/sqle/dtablefunctions/dolt_patch.go:344-353 | go/libraries/doltcore/sqle/dtablefunctions/dolt_schema_diff.go:202-211 \u2014 the copies sit in sibling files of one directory: extract the block into a single shared function in that directory and call it from each site, so a change lands once. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/libraries/doltcore/sqle/dtablefunctions/dolt_diff_stat.go:201\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that. The matched lines also transfer control out of the body holding them, which cannot survive a move into a called unit unchanged: have the extracted unit return that decision and let each site act on it."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dtablefunctions/dolt_diff_stat.go"},"region":{"startLine":201}}}],"partialFingerprints":{"codehealthFindingId/v1":"7b720c2cdc2c6639b9310db0f22df20afe5520a81b234e3fbef6eac3215566d3"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (10 lines \u00D7 3): go/libraries/doltcore/sqle/dtablefunctions/dolt_diff.go:568-577 | go/libraries/doltcore/sqle/dtablefunctions/dolt_diff_summary.go:402-412 | go/libraries/doltcore/sqle/dtablefunctions/dolt_patch.go:468-478 \u2014 the copies sit in sibling files of one directory: extract the block into a single shared function in that directory and call it from each site, so a change lands once. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/libraries/doltcore/sqle/dtablefunctions/dolt_diff.go:568\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that. The matched lines also transfer control out of the body holding them, which cannot survive a move into a called unit unchanged: have the extracted unit return that decision and let each site act on it."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dtablefunctions/dolt_diff.go"},"region":{"startLine":568}}}],"partialFingerprints":{"codehealthFindingId/v1":"e6b0e6b5f668eb728ebe27473effd5ecf90103e27d613c829e439da63c0fbf60"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (10 lines \u00D7 3): go/libraries/doltcore/sqle/index/prolly_index_iter.go:104-113 | go/libraries/doltcore/sqle/index/prolly_index_iter.go:129-138 | go/libraries/doltcore/sqle/index/secondary_iter.go:137-146 \u2014 there are 3 copies across 2 file(s) \u2014 more copies than files, so at least one file holds the block twice. Extract it once into a single shared function every call site can reach and call it from all 3 sites; resolving a subset leaves the remainder to drift apart. Note that the copies do not run to the end of the range shown: their LAST lines are different code, not the same code under different names \u2014 the matched region ends inside that line. Extract the lines above it, and read the last line of each site separately."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/index/prolly_index_iter.go"},"region":{"startLine":104}}}],"partialFingerprints":{"codehealthFindingId/v1":"efadfeb9238aac608d398b382ccbea5d0e4cd7f4909f271f7854eae2585b1b1b"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (10 lines \u00D7 2): go/cmd/dolt/cli/documentation_helper.go:253-262 | go/cmd/dolt/cli/documentation_helper.go:297-306 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited. The matched lines also transfer control out of the body holding them, which cannot survive a move into a called unit unchanged: have the extracted unit return that decision and let each site act on it."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/cli/documentation_helper.go"},"region":{"startLine":253}}}],"partialFingerprints":{"codehealthFindingId/v1":"9e874f336ad14f4c1ecf13b3ea7db1c462122471dc0076478bb5085056109634"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (10 lines \u00D7 2): go/cmd/dolt/commands/cherry-pick.go:206-215 | go/cmd/dolt/commands/cherry-pick.go:287-296 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/cmd/dolt/commands/cherry-pick.go:206\u0060 it does not close everything it opens, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that. The matched lines also transfer control out of the body holding them, which cannot survive a move into a called unit unchanged: have the extracted unit return that decision and let each site act on it."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/cherry-pick.go"},"region":{"startLine":206}}}],"partialFingerprints":{"codehealthFindingId/v1":"21ebd4d19b691b9912d1bbaa3a6e3ddee17be6c8248faed7e02d9083a2d93e21"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (10 lines \u00D7 2): go/cmd/dolt/commands/ci/run.go:80-89 | go/cmd/dolt/commands/ci/view.go:83-92 \u2014 the copies sit in sibling files of one directory: extract the block into a single shared function in that directory and call it from each site, so a change lands once. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/cmd/dolt/commands/ci/run.go:80\u0060 it does not close everything it opens, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that. The matched lines also transfer control out of the body holding them, which cannot survive a move into a called unit unchanged: have the extracted unit return that decision and let each site act on it."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/ci/run.go"},"region":{"startLine":80}}}],"partialFingerprints":{"codehealthFindingId/v1":"97aacdd1c238e092d2fb8e00f09cd3b1bec0db82543a5b9988952d3a53c79d4c"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (10 lines \u00D7 2): go/cmd/dolt/commands/revert.go:113-122 | go/cmd/dolt/commands/revert.go:127-136 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/cmd/dolt/commands/revert.go:113\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/revert.go"},"region":{"startLine":113}}}],"partialFingerprints":{"codehealthFindingId/v1":"354048bb0e79a148ab537f980f0a6a12727609f31139ae2085d8f9f5b211fc3f"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (10 lines \u00D7 2): go/cmd/dolt/commands/schcmds/import.go:469-478 | go/cmd/dolt/commands/schcmds/import.go:509-518 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/cmd/dolt/commands/schcmds/import.go:469\u0060 it does not close everything it opens, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/schcmds/import.go"},"region":{"startLine":469}}}],"partialFingerprints":{"codehealthFindingId/v1":"0bffa350b7d2a613390a7632d4ccd17a3ea36b210f1028da89ab2d2951db6094"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (10 lines \u00D7 2): go/libraries/doltcore/cherry_pick/cherry_pick.go:283-294 | go/libraries/doltcore/revert/revert.go:198-207 \u2014 the copies span different directories, so extracting a shared function means choosing where it lives: put it somewhere both call sites can already reach \u2014 a location they all depend on today, or a new shared one if there is none \u2014 and call it from each site; until then, every change has to be made twice. Note that the copies do not run to the end of the range shown: their LAST lines are different code, not the same code under different names \u2014 the matched region ends inside that line. Extract the lines above it, and read the last line of each site separately."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/cherry_pick/cherry_pick.go"},"region":{"startLine":283}}}],"partialFingerprints":{"codehealthFindingId/v1":"d4c879c56f74f3ef0b368fe951a0b2c3f102e42572f159cc1ffa59ab57a26850"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (10 lines \u00D7 2): go/libraries/doltcore/remotesrv/sealer.go:83-92 | go/libraries/doltcore/remotesrv/sealer.go:147-156 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited. Note that the copies do not run to the end of the range shown: their LAST lines are different code, not the same code under different names \u2014 the matched region ends inside that line. Extract the lines above it, and read the last line of each site separately."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/remotesrv/sealer.go"},"region":{"startLine":83}}}],"partialFingerprints":{"codehealthFindingId/v1":"ced8479280dcf2400e2c08801a2174bc029ea85e70a8e5fb2913df0117cab87b"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (10 lines \u00D7 2): go/libraries/doltcore/sqle/dsess/transactions.go:468-477 | go/libraries/doltcore/sqle/dsess/transactions.go:493-502 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/libraries/doltcore/sqle/dsess/transactions.go:468\u0060 it does not close everything it opens, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that. The matched lines also transfer control out of the body holding them, which cannot survive a move into a called unit unchanged: have the extracted unit return that decision and let each site act on it."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dsess/transactions.go"},"region":{"startLine":468}}}],"partialFingerprints":{"codehealthFindingId/v1":"c17cc97c5b8c9dd9265c580cbfd13c49171cc1a1f4e002e95637d34b802f225f"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (10 lines \u00D7 2): go/libraries/doltcore/sqle/dtablefunctions/dolt_diff.go:108-117 | go/libraries/doltcore/sqle/dtablefunctions/dolt_diff.go:140-149 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/libraries/doltcore/sqle/dtablefunctions/dolt_diff.go:108\u0060 it does not close everything it opens, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dtablefunctions/dolt_diff.go"},"region":{"startLine":108}}}],"partialFingerprints":{"codehealthFindingId/v1":"2ccc1d1f1b392a49897c72cc39a03bf76c9146d417d1ebb67b568639eab9d407"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (10 lines \u00D7 2): go/libraries/doltcore/sqle/enginetest/validation.go:201-210 | go/libraries/doltcore/sqle/enginetest/validation.go:299-308 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/libraries/doltcore/sqle/enginetest/validation.go:201\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that. Note that the copies do not run to the end of the range shown: their LAST lines are different code, not the same code under different names \u2014 the matched region ends inside that line. Extract the lines above it, and read the last line of each site separately."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/enginetest/validation.go"},"region":{"startLine":201}}}],"partialFingerprints":{"codehealthFindingId/v1":"e77db6a75dd3eb7017810b334a55966972770277244ef07d0adfadae467b7c73"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (10 lines \u00D7 2): go/libraries/doltcore/sqle/index/prolly_index_iter.go:314-323 | go/libraries/doltcore/sqle/index/prolly_row_iter.go:224-233 \u2014 the copies sit in sibling files of one directory: extract the block into a single shared function in that directory and call it from each site, so a change lands once. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/libraries/doltcore/sqle/index/prolly_index_iter.go:314\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that. The matched lines also transfer control out of the body holding them, which cannot survive a move into a called unit unchanged: have the extracted unit return that decision and let each site act on it."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/index/prolly_index_iter.go"},"region":{"startLine":314}}}],"partialFingerprints":{"codehealthFindingId/v1":"43f1f733b9539aaafa90d7bbf5b957af4ef7f05094f34222771c50dac06c099c"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (10 lines \u00D7 2): go/libraries/doltcore/sqle/schema_table.go:276-285 | go/libraries/doltcore/sqle/schema_table.go:415-424 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/schema_table.go"},"region":{"startLine":276}}}],"partialFingerprints":{"codehealthFindingId/v1":"4d6a760ddc365417a5ffc909f34cc00f0c2886abca63bc350b68499d8a607492"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (10 lines \u00D7 2): go/libraries/doltcore/sqle/tables.go:224-233 | go/libraries/doltcore/sqle/tables.go:267-276 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited. Note that the copies do not run to the end of the range shown: their LAST lines are different code, not the same code under different names \u2014 the matched region ends inside that line. Extract the lines above it, and read the last line of each site separately."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/tables.go"},"region":{"startLine":224}}}],"partialFingerprints":{"codehealthFindingId/v1":"fd5249a17b6434453dbe52c927d59032c6304d9e3ef67e196304e525a0c03a3d"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (10 lines \u00D7 2): go/libraries/doltcore/sqle/tables.go:411-420 | go/libraries/doltcore/sqle/tables.go:1190-1199 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited. Note that the copies do not run to the end of the range shown: their LAST lines are different code, not the same code under different names \u2014 the matched region ends inside that line. Extract the lines above it, and read the last line of each site separately."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/tables.go"},"region":{"startLine":411}}}],"partialFingerprints":{"codehealthFindingId/v1":"d645a5049f69589865b88eeb7a25476ef958cee0bf9a9ac7ae748a3c18bdc935"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (10 lines \u00D7 2): go/libraries/doltcore/sqle/tables.go:2838-2847 | go/libraries/doltcore/sqle/tables.go:2872-2881 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/libraries/doltcore/sqle/tables.go:2838\u0060 it does not close everything it opens, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that. The matched lines also transfer control out of the body holding them, which cannot survive a move into a called unit unchanged: have the extracted unit return that decision and let each site act on it."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/tables.go"},"region":{"startLine":2838}}}],"partialFingerprints":{"codehealthFindingId/v1":"41125a5fb903394ecfdcec66720729d7e203e7aabc177291b71b640c463cb501"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (10 lines \u00D7 2): go/libraries/doltcore/sqle/writer/prolly_index_writer.go:165-174 | go/libraries/doltcore/sqle/writer/prolly_index_writer.go:221-230 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/libraries/doltcore/sqle/writer/prolly_index_writer.go:165\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that. The matched lines also transfer control out of the body holding them, which cannot survive a move into a called unit unchanged: have the extracted unit return that decision and let each site act on it."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/writer/prolly_index_writer.go"},"region":{"startLine":165}}}],"partialFingerprints":{"codehealthFindingId/v1":"57fe86f8c05f24d472f8c7433bb1856aadb42fd1f848d7017b9d7d0becaee045"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (10 lines \u00D7 2): go/libraries/doltcore/sqle/writer/prolly_index_writer.go:317-326 | go/libraries/doltcore/sqle/writer/prolly_index_writer_keyless.go:213-222 \u2014 the copies sit in sibling files of one directory: extract the block into a single shared function in that directory and call it from each site, so a change lands once."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/writer/prolly_index_writer.go"},"region":{"startLine":317}}}],"partialFingerprints":{"codehealthFindingId/v1":"0954bc9d70001c2090cad0f848d3f83c9b37372388f4c5bf27be08b634a0290d"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (10 lines \u00D7 2): go/performance/import_benchmarker/cmd/main.go:67-76 | go/performance/sysbench/cmd/main.go:77-86 \u2014 the copies span different directories, so extracting a shared function means choosing where it lives: put it somewhere both call sites can already reach \u2014 a location they all depend on today, or a new shared one if there is none \u2014 and call it from each site; until then, every change has to be made twice."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/performance/import_benchmarker/cmd/main.go"},"region":{"startLine":67}}}],"partialFingerprints":{"codehealthFindingId/v1":"7973d7c0e9bedbea9a5ba2f29346525c7287fce03ed74d7b7d31cc4e3d00ca37"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (10 lines \u00D7 2): go/performance/import_benchmarker/testdef.go:116-125 | go/performance/sysbench/testdef.go:177-186 \u2014 the copies span different directories, so extracting a shared function means choosing where it lives: put it somewhere both call sites can already reach \u2014 a location they all depend on today, or a new shared one if there is none \u2014 and call it from each site; until then, every change has to be made twice. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/performance/import_benchmarker/testdef.go:116\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that. The matched lines also transfer control out of the body holding them, which cannot survive a move into a called unit unchanged: have the extracted unit return that decision and let each site act on it."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/performance/import_benchmarker/testdef.go"},"region":{"startLine":116}}}],"partialFingerprints":{"codehealthFindingId/v1":"212eab6ad8a1fbcacbe3156c9ec976f94c16ccae3b7ead708cdc4f8d726aa7db"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (10 lines \u00D7 2): go/store/datas/stashlist.go:74-83 | go/store/datas/stashlist.go:129-138 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/store/datas/stashlist.go:74\u0060 it does not close everything it opens, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that. The matched lines also transfer control out of the body holding them, which cannot survive a move into a called unit unchanged: have the extracted unit return that decision and let each site act on it."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/datas/stashlist.go"},"region":{"startLine":74}}}],"partialFingerprints":{"codehealthFindingId/v1":"20ff96c920da4a099f4bc3f9c17aff40680da1236e5fa8acf8a7624a244870e0"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (10 lines \u00D7 2): go/store/nbs/archive_reader.go:698-708 | go/store/nbs/archive_reader.go:802-811 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/nbs/archive_reader.go"},"region":{"startLine":698}}}],"partialFingerprints":{"codehealthFindingId/v1":"6173bb4e50f664c36f0b6a2277c35a6eb91e1cfc165d80559070fd62069a0756"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (10 lines \u00D7 2): go/store/nbs/aws_table_persister.go:148-159 | go/store/nbs/bs_persister.go:49-58 \u2014 the copies sit in sibling files of one directory: extract the block into a single shared function in that directory and call it from each site, so a change lands once. Note that the copies do not run to the end of the range shown: their LAST lines are different code, not the same code under different names \u2014 the matched region ends inside that line. Extract the lines above it, and read the last line of each site separately."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/nbs/aws_table_persister.go"},"region":{"startLine":148}}}],"partialFingerprints":{"codehealthFindingId/v1":"c8141b8c8364a7eede56e8234f71c903c722a8573d6a2d2205da06580543239b"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (10 lines \u00D7 2): go/store/nbs/journal_chunk_source.go:298-307 | go/store/nbs/journal_chunk_source.go:317-326 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/nbs/journal_chunk_source.go"},"region":{"startLine":298}}}],"partialFingerprints":{"codehealthFindingId/v1":"316a1ce912507bd9e51eaf68af1f0ed4f03fd0c841fe4c6ea4060128e991607d"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (10 lines \u00D7 2): go/store/nbs/table_reader.go:815-824 | go/store/nbs/table_reader.go:882-891 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/store/nbs/table_reader.go:815\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/nbs/table_reader.go"},"region":{"startLine":815}}}],"partialFingerprints":{"codehealthFindingId/v1":"f83b5e1e1da1fe9d08fdf92d9868536850a546cc1e607bb633b4d1269fea68ed"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (10 lines \u00D7 2): go/store/prolly/tree/map.go:93-102 | go/store/prolly/tree/map.go:115-124 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/store/prolly/tree/map.go:93\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/prolly/tree/map.go"},"region":{"startLine":93}}}],"partialFingerprints":{"codehealthFindingId/v1":"6313d40d7f5807e6a7cd68829f5dccbfd21483b8600140c41432b1aaf402a1fb"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (10 lines \u00D7 2): go/store/types/geometry_collection.go:126-135 | go/store/types/geometry_collection.go:139-148 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/store/types/geometry_collection.go:126\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that. The matched lines also transfer control out of the body holding them, which cannot survive a move into a called unit unchanged: have the extracted unit return that decision and let each site act on it."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/types/geometry_collection.go"},"region":{"startLine":126}}}],"partialFingerprints":{"codehealthFindingId/v1":"2e46d08a851db027dc621bdb851a7594597d4d99873ba155b1fed811b8544808"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (10 lines \u00D7 2): go/store/types/linestring.go:134-143 | go/store/types/linestring.go:147-156 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/store/types/linestring.go:134\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that. The matched lines also transfer control out of the body holding them, which cannot survive a move into a called unit unchanged: have the extracted unit return that decision and let each site act on it."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/types/linestring.go"},"region":{"startLine":134}}}],"partialFingerprints":{"codehealthFindingId/v1":"f27ece630442947d7371ecd69be68612e83a44abca1b9561f5ef4d62734996ee"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (10 lines \u00D7 2): go/store/types/multilinestring.go:126-135 | go/store/types/multilinestring.go:139-148 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/store/types/multilinestring.go:126\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that. The matched lines also transfer control out of the body holding them, which cannot survive a move into a called unit unchanged: have the extracted unit return that decision and let each site act on it."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/types/multilinestring.go"},"region":{"startLine":126}}}],"partialFingerprints":{"codehealthFindingId/v1":"06e02a81bc1587b8a7a302d6722b0e1fe3379e4afdde83e7a021e33dda41da5b"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (10 lines \u00D7 2): go/store/types/multipolygon.go:126-135 | go/store/types/multipolygon.go:139-148 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/store/types/multipolygon.go:126\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that. The matched lines also transfer control out of the body holding them, which cannot survive a move into a called unit unchanged: have the extracted unit return that decision and let each site act on it."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/types/multipolygon.go"},"region":{"startLine":126}}}],"partialFingerprints":{"codehealthFindingId/v1":"ff201ba6ec3c3b01e787b074f4845aa0103afa6ff65fd2459f6bd7fe373a9737"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (10 lines \u00D7 2): go/store/types/polygon.go:126-135 | go/store/types/polygon.go:139-148 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/store/types/polygon.go:126\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that. The matched lines also transfer control out of the body holding them, which cannot survive a move into a called unit unchanged: have the extracted unit return that decision and let each site act on it."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/types/polygon.go"},"region":{"startLine":126}}}],"partialFingerprints":{"codehealthFindingId/v1":"cd1e49dbabc61b36bb498a34087219ac502edcc8472d5a94c5e409497dce2bb3"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (10 lines \u00D7 2): go/store/types/serial_message.go:497-506 | go/store/types/serial_message.go:557-566 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/store/types/serial_message.go:497\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/types/serial_message.go"},"region":{"startLine":497}}}],"partialFingerprints":{"codehealthFindingId/v1":"295eaa45e6430de3d6ffd67a0c50ca18077c0cec14bbead96589cec3cc541cc8"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (9 lines \u00D7 4): go/libraries/doltcore/sqle/database.go:460-468 | go/libraries/doltcore/sqle/database.go:477-487 | go/libraries/doltcore/sqle/database.go:555-563 | go/libraries/doltcore/sqle/database.go:588-596 \u2014 all 4 copies are in the same file, so extract the block into one function there and call it from every one of those sites \u2014 resolving only two of them leaves the rest to drift apart the first time one is edited. Note that the copies do not run to the end of the range shown: their LAST lines are different code, not the same code under different names \u2014 the matched region ends inside that line. Extract the lines above it, and read the last line of each site separately."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/database.go"},"region":{"startLine":460}}}],"partialFingerprints":{"codehealthFindingId/v1":"e7b21c26836280f3d9b8b9c57f46f66cb6349209039c8a7952494c85633bfdf2"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (9 lines \u00D7 3): go/libraries/doltcore/env/remotes.go:113-121 | go/libraries/doltcore/env/remotes.go:134-142 | go/libraries/doltcore/env/remotes.go:166-174 \u2014 all 3 copies are in the same file, so extract the block into one function there and call it from every one of those sites \u2014 resolving only two of them leaves the rest to drift apart the first time one is edited. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/libraries/doltcore/env/remotes.go:113\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that. The matched lines also transfer control out of the body holding them, which cannot survive a move into a called unit unchanged: have the extracted unit return that decision and let each site act on it. Note that the copies do not run to the end of the range shown: their LAST lines are different code, not the same code under different names \u2014 the matched region ends inside that line. Extract the lines above it, and read the last line of each site separately."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/env/remotes.go"},"region":{"startLine":113}}}],"partialFingerprints":{"codehealthFindingId/v1":"f91346ebb1699268683c311ea7f4f3adb97198118e8c5673b9905f1e994a832d"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (9 lines \u00D7 3): go/store/datas/database_common.go:635-643 | go/store/datas/database_common.go:652-660 | go/store/datas/database_common.go:671-679 \u2014 all 3 copies are in the same file, so extract the block into one function there and call it from every one of those sites \u2014 resolving only two of them leaves the rest to drift apart the first time one is edited. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/store/datas/database_common.go:635\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/datas/database_common.go"},"region":{"startLine":635}}}],"partialFingerprints":{"codehealthFindingId/v1":"3bac4f5570e9fa34b3a50520a85244d8a148408ca1fa576b081e12836b02f723"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (9 lines \u00D7 2): go/cmd/dolt/commands/ci/destroy.go:78-87 | go/cmd/dolt/commands/ci/import.go:141-149 \u2014 the copies sit in sibling files of one directory: extract the block into a single shared function in that directory and call it from each site, so a change lands once. Note that the copies do not run to the end of the range shown: their LAST lines are different code, not the same code under different names \u2014 the matched region ends inside that line. Extract the lines above it, and read the last line of each site separately."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/ci/destroy.go"},"region":{"startLine":78}}}],"partialFingerprints":{"codehealthFindingId/v1":"216b9d8d3a68170c4d1b8044f4148a67988cd496a56e65a85cb3264791d69054"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (9 lines \u00D7 2): go/cmd/dolt/commands/ci/init.go:73-81 | go/cmd/dolt/commands/ci/ls.go:77-85 \u2014 the copies sit in sibling files of one directory: extract the block into a single shared function in that directory and call it from each site, so a change lands once. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/cmd/dolt/commands/ci/init.go:73\u0060 it does not close everything it opens, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/ci/init.go"},"region":{"startLine":73}}}],"partialFingerprints":{"codehealthFindingId/v1":"f6f23b352823e0bb3934e8d75dfb3487a524099f9df28a58f66221fccb655887"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (9 lines \u00D7 2): go/cmd/dolt/commands/debug.go:196-204 | go/cmd/dolt/commands/sql.go:274-282 \u2014 the copies sit in sibling files of one directory: extract the block into a single shared function in that directory and call it from each site, so a change lands once."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/debug.go"},"region":{"startLine":196}}}],"partialFingerprints":{"codehealthFindingId/v1":"237f01943a2ebe308e9acc666266f1c7ab837117c11124094bda6f5dd5658456"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (9 lines \u00D7 2): go/cmd/dolt/commands/dump.go:698-706 | go/cmd/dolt/commands/tblcmds/export.go:120-128 \u2014 the copies span different directories, so extracting a shared function means choosing where it lives: put it somewhere both call sites can already reach \u2014 a location they all depend on today, or a new shared one if there is none \u2014 and call it from each site; until then, every change has to be made twice. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/cmd/dolt/commands/dump.go:698\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that. The matched lines also transfer control out of the body holding them, which cannot survive a move into a called unit unchanged: have the extracted unit return that decision and let each site act on it."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/dump.go"},"region":{"startLine":698}}}],"partialFingerprints":{"codehealthFindingId/v1":"236f9bf111ab02dae98bf5660e1b688c5f884fe14e54a6e5a5c3e4eb25fdea2e"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (9 lines \u00D7 2): go/cmd/dolt/commands/sql.go:1159-1167 | go/cmd/dolt/commands/sql.go:1173-1181 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/sql.go"},"region":{"startLine":1159}}}],"partialFingerprints":{"codehealthFindingId/v1":"0c43c3d42e7cc0f2aa713778e64c767e2f60cf93ee6ad3d088e19a6e468fec19"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (9 lines \u00D7 2): go/libraries/doltcore/cherry_pick/cherry_pick.go:270-278 | go/libraries/doltcore/revert/revert.go:184-192 \u2014 the copies span different directories, so extracting a shared function means choosing where it lives: put it somewhere both call sites can already reach \u2014 a location they all depend on today, or a new shared one if there is none \u2014 and call it from each site; until then, every change has to be made twice. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/libraries/doltcore/cherry_pick/cherry_pick.go:270\u0060 it does not close everything it opens, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that. The matched lines also transfer control out of the body holding them, which cannot survive a move into a called unit unchanged: have the extracted unit return that decision and let each site act on it."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/cherry_pick/cherry_pick.go"},"region":{"startLine":270}}}],"partialFingerprints":{"codehealthFindingId/v1":"710fb169d63ab784ed71dff55d237c9c0c15e938966559d6dc42a88cebbbd073"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (9 lines \u00D7 2): go/libraries/doltcore/dbfactory/az.go:77-85 | go/libraries/doltcore/dbfactory/gs.go:84-92 \u2014 the copies sit in sibling files of one directory: extract the block into a single shared function in that directory and call it from each site, so a change lands once."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/dbfactory/az.go"},"region":{"startLine":77}}}],"partialFingerprints":{"codehealthFindingId/v1":"cd20ebf0c8aeddb5db3e5db6c366b50c450ba072d91941012d55763151e327be"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (9 lines \u00D7 2): go/libraries/doltcore/schema/index.go:207-215 | go/libraries/doltcore/schema/index.go:230-238 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited. The matched lines also transfer control out of the body holding them, which cannot survive a move into a called unit unchanged: have the extracted unit return that decision and let each site act on it."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/schema/index.go"},"region":{"startLine":207}}}],"partialFingerprints":{"codehealthFindingId/v1":"5ca510599de168b4becc68e1263fc2a808a7b16a42476cbb5d1a698810f14319"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (9 lines \u00D7 2): go/libraries/doltcore/sqle/cluster/branch_control_replica.go:60-68 | go/libraries/doltcore/sqle/cluster/mysqldb_persister.go:69-78 \u2014 the copies sit in sibling files of one directory: extract the block into a single shared function in that directory and call it from each site, so a change lands once. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/libraries/doltcore/sqle/cluster/branch_control_replica.go:60\u0060 it does not close everything it opens, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/cluster/branch_control_replica.go"},"region":{"startLine":60}}}],"partialFingerprints":{"codehealthFindingId/v1":"a4308d3da981b561af6c254c34af2b47537fec42450035e1586fd91ffa70f952"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (9 lines \u00D7 2): go/libraries/doltcore/sqle/database.go:767-775 | go/libraries/doltcore/sqle/database.go:779-787 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/libraries/doltcore/sqle/database.go:767\u0060 it does not close everything it opens, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/database.go"},"region":{"startLine":767}}}],"partialFingerprints":{"codehealthFindingId/v1":"0724a982f13a71032e0873ba6143a8d0c066a3054b28701fa101dae512511716"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (9 lines \u00D7 2): go/libraries/doltcore/sqle/database_provider.go:1976-1984 | go/libraries/doltcore/sqle/database_provider.go:2020-2028 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/libraries/doltcore/sqle/database_provider.go:1976\u0060 it does not close everything it opens, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that. The matched lines also transfer control out of the body holding them, which cannot survive a move into a called unit unchanged: have the extracted unit return that decision and let each site act on it."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/database_provider.go"},"region":{"startLine":1976}}}],"partialFingerprints":{"codehealthFindingId/v1":"8a7cdea684a0871e5496936fed4f3d6e2e959ae856ac2cc0d7681ade75a3f273"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (9 lines \u00D7 2): go/libraries/doltcore/sqle/dtablefunctions/dolt_preview_merge_conflicts_summary.go:154-162 | go/libraries/doltcore/sqle/dtablefunctions/dolt_query_diff.go:155-163 \u2014 the copies sit in sibling files of one directory: extract the block into a single shared function in that directory and call it from each site, so a change lands once. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/libraries/doltcore/sqle/dtablefunctions/dolt_preview_merge_conflicts_summary.go:154\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dtablefunctions/dolt_preview_merge_conflicts_summary.go"},"region":{"startLine":154}}}],"partialFingerprints":{"codehealthFindingId/v1":"72291aa36680921b498462c5af23aa39ec8be9be7c5a98de188d3da94c5e11c6"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (9 lines \u00D7 2): go/libraries/doltcore/sqle/dtables/column_diff_table.go:126-134 | go/libraries/doltcore/sqle/dtables/unscoped_diff_table.go:141-149 \u2014 the copies sit in sibling files of one directory: extract the block into a single shared function in that directory and call it from each site, so a change lands once. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/libraries/doltcore/sqle/dtables/column_diff_table.go:126\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dtables/column_diff_table.go"},"region":{"startLine":126}}}],"partialFingerprints":{"codehealthFindingId/v1":"170cdca6831c6e4adbe0a56dc83612229e67360c7a95a37119fbc4f3e7aa0ebd"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (9 lines \u00D7 2): go/libraries/doltcore/sqle/dtables/column_diff_table.go:186-194 | go/libraries/doltcore/sqle/dtables/unscoped_diff_table.go:198-206 \u2014 the copies sit in sibling files of one directory: extract the block into a single shared function in that directory and call it from each site, so a change lands once. The matched lines also transfer control out of the body holding them, which cannot survive a move into a called unit unchanged: have the extracted unit return that decision and let each site act on it."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dtables/column_diff_table.go"},"region":{"startLine":186}}}],"partialFingerprints":{"codehealthFindingId/v1":"90f3cfb71f73f9a474d802d459d8cf6e62d894c4353fdc612affdd49dcdcb2cb"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (9 lines \u00D7 2): go/libraries/doltcore/sqle/dtables/commit_ancestors_table.go:126-134 | go/libraries/doltcore/sqle/dtables/commits_table.go:129-137 \u2014 the copies sit in sibling files of one directory: extract the block into a single shared function in that directory and call it from each site, so a change lands once. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/libraries/doltcore/sqle/dtables/commit_ancestors_table.go:126\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that. The matched lines also transfer control out of the body holding them, which cannot survive a move into a called unit unchanged: have the extracted unit return that decision and let each site act on it."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dtables/commit_ancestors_table.go"},"region":{"startLine":126}}}],"partialFingerprints":{"codehealthFindingId/v1":"2e024f64354596e9661a9bd659e0c7bb1175c4b5ab6e9146f831c237d12d13a8"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (9 lines \u00D7 2): go/libraries/doltcore/sqle/dtables/diff_iter.go:287-295 | go/libraries/doltcore/sqle/dtables/workspace_table.go:1000-1008 \u2014 the copies sit in sibling files of one directory: extract the block into a single shared function in that directory and call it from each site, so a change lands once. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/libraries/doltcore/sqle/dtables/diff_iter.go:287\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dtables/diff_iter.go"},"region":{"startLine":287}}}],"partialFingerprints":{"codehealthFindingId/v1":"4fa724214461be57aede7e7384d141066c3c40c7fa4e785a272449a17e330806"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (9 lines \u00D7 2): go/libraries/doltcore/sqle/index/secondary_iter.go:261-269 | go/libraries/doltcore/sqle/index/secondary_iter.go:320-328 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/libraries/doltcore/sqle/index/secondary_iter.go:261\u0060 it does not close everything it opens, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that. The matched lines also transfer control out of the body holding them, which cannot survive a move into a called unit unchanged: have the extracted unit return that decision and let each site act on it. Note that the copies do not run to the end of the range shown: their LAST lines are different code, not the same code under different names \u2014 the matched region ends inside that line. Extract the lines above it, and read the last line of each site separately."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/index/secondary_iter.go"},"region":{"startLine":261}}}],"partialFingerprints":{"codehealthFindingId/v1":"df2a83e17b430c2f0cd12682b2c238ccd50784f7894d7c7fd088c068e5fa8e4d"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (9 lines \u00D7 2): go/libraries/doltcore/sqle/kvexec/builder.go:395-404 | go/libraries/doltcore/sqle/kvexec/builder.go:449-457 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited. Note that the copies do not run to the end of the range shown: their LAST lines are different code, not the same code under different names \u2014 the matched region ends inside that line. Extract the lines above it, and read the last line of each site separately."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/kvexec/builder.go"},"region":{"startLine":395}}}],"partialFingerprints":{"codehealthFindingId/v1":"f693e5e3d8249058b21b3545f431afee95ae8c5791463efdf889c79822224daf"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (9 lines \u00D7 2): go/performance/utils/benchmark_runner/doltgres.go:141-149 | go/performance/utils/benchmark_runner/postgres.go:134-142 \u2014 the copies sit in sibling files of one directory: extract the block into a single shared function in that directory and call it from each site, so a change lands once. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/performance/utils/benchmark_runner/doltgres.go:141\u0060 it does not close everything it opens, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/performance/utils/benchmark_runner/doltgres.go"},"region":{"startLine":141}}}],"partialFingerprints":{"codehealthFindingId/v1":"436bd9c40d2c82d5b5776236b488f6d2e946b1b07c1a53c6bf2020bb66cb010f"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (9 lines \u00D7 2): go/store/blobstore/gcs.go:177-185 | go/store/blobstore/inmem.go:130-138 \u2014 the copies sit in sibling files of one directory: extract the block into a single shared function in that directory and call it from each site, so a change lands once. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/store/blobstore/gcs.go:177\u0060 it does not close everything it opens, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/blobstore/gcs.go"},"region":{"startLine":177}}}],"partialFingerprints":{"codehealthFindingId/v1":"c194f15ee5667ea39ff41821f192edd4bc2ce80a1fcb7b21e209fb8aad232558"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (9 lines \u00D7 2): go/store/nbs/file_manifest.go:177-185 | go/store/nbs/file_manifest.go:201-209 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/store/nbs/file_manifest.go:177\u0060 it does not close everything it opens, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that. The matched lines also register a scope-exit action (a \u0060defer\u0060-style statement) that runs when the function holding them returns: moved into a called unit it would run when THAT unit returns instead \u2014 before the caller uses what it releases \u2014 so keep the registration at the call site and extract only the work around it, or have the extracted unit hand the resource back for the caller to register."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/nbs/file_manifest.go"},"region":{"startLine":177}}}],"partialFingerprints":{"codehealthFindingId/v1":"69179f3c7146823931a358878557957fbe86033772997436f08da1d3a7699fa2"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (9 lines \u00D7 2): go/store/nbs/no_conjoin_bs_persister.go:59-67 | go/store/nbs/single_blob_bs_persister.go:53-61 \u2014 the copies sit in sibling files of one directory: extract the block into a single shared function in that directory and call it from each site, so a change lands once. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/store/nbs/no_conjoin_bs_persister.go:59\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that. The matched lines also transfer control out of the body holding them, which cannot survive a move into a called unit unchanged: have the extracted unit return that decision and let each site act on it."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/nbs/no_conjoin_bs_persister.go"},"region":{"startLine":59}}}],"partialFingerprints":{"codehealthFindingId/v1":"72c0fdb5c72087e3a508cabe8a96952890374ced2e5d12d573d01f4b504b365e"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (9 lines \u00D7 2): go/store/nbs/table_reader.go:238-246 | go/store/nbs/table_reader.go:578-586 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/store/nbs/table_reader.go:238\u0060 it does not close everything it opens, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/nbs/table_reader.go"},"region":{"startLine":238}}}],"partialFingerprints":{"codehealthFindingId/v1":"102f9fecb1b1cb185b1971765fc8268f1eb94a6f11eb1817ae8e996e35276012"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (9 lines \u00D7 2): go/store/prolly/artifact_map.go:405-414 | go/store/prolly/artifact_map.go:484-492 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/prolly/artifact_map.go"},"region":{"startLine":405}}}],"partialFingerprints":{"codehealthFindingId/v1":"f6d4330892d06c0ade8769b938362b9633f75a319a78ef1fd3a8bf94c2d0ee3c"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (9 lines \u00D7 2): go/store/prolly/message/merge_artifacts.go:122-130 | go/store/prolly/message/prolly_map.go:120-128 \u2014 the copies sit in sibling files of one directory: extract the block into a single shared function in that directory and call it from each site, so a change lands once. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/store/prolly/message/merge_artifacts.go:122\u0060 it does not close everything it opens, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/prolly/message/merge_artifacts.go"},"region":{"startLine":122}}}],"partialFingerprints":{"codehealthFindingId/v1":"c20c972a62d62d08071aa2a5886a94ffbbdd8097e5a8c2aa1e89ffa7512e8c24"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (9 lines \u00D7 2): go/store/prolly/tree/map.go:489-497 | go/store/prolly/tree/map.go:501-509 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/store/prolly/tree/map.go:489\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/prolly/tree/map.go"},"region":{"startLine":489}}}],"partialFingerprints":{"codehealthFindingId/v1":"b0098f9785fc9784d57cdb7287a746bbf719b3ef4a261f8a9ef2f77f0b183f9a"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (9 lines \u00D7 2): go/store/prolly/tree/merge.go:195-203 | go/store/prolly/tree/merge.go:270-278 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/store/prolly/tree/merge.go:195\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that. The matched lines also transfer control out of the body holding them, which cannot survive a move into a called unit unchanged: have the extracted unit return that decision and let each site act on it. Note that the copies do not run to the end of the range shown: their LAST lines are different code, not the same code under different names \u2014 the matched region ends inside that line. Extract the lines above it, and read the last line of each site separately."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/prolly/tree/merge.go"},"region":{"startLine":195}}}],"partialFingerprints":{"codehealthFindingId/v1":"0fc54f24d1ad5b38375c7a87f6e29e7d52783e205dc4c3308e4a724e57026ff5"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (9 lines \u00D7 2): go/store/prolly/tree/proximity_map.go:112-120 | go/store/prolly/tree/proximity_map.go:237-245 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited. The matched lines also transfer control out of the body holding them, which cannot survive a move into a called unit unchanged: have the extracted unit return that decision and let each site act on it."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/prolly/tree/proximity_map.go"},"region":{"startLine":112}}}],"partialFingerprints":{"codehealthFindingId/v1":"ca8dfa8b032a29f875d104b007f562e7b3cb4e249f6fe794b1ed1c725f629ffd"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (8 lines \u00D7 3): go/libraries/doltcore/merge/merge_prolly_rows.go:387-394 | go/libraries/doltcore/merge/merge_prolly_rows.go:397-404 | go/libraries/doltcore/merge/merge_prolly_rows.go:407-414 \u2014 all 3 copies are in the same file, so extract the block into one function there and call it from every one of those sites \u2014 resolving only two of them leaves the rest to drift apart the first time one is edited. The matched lines also transfer control out of the body holding them, which cannot survive a move into a called unit unchanged: have the extracted unit return that decision and let each site act on it."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/merge/merge_prolly_rows.go"},"region":{"startLine":387}}}],"partialFingerprints":{"codehealthFindingId/v1":"8b4c985ce9924fee826e0944047c51c93419f9b498a51bd588889ab644f3e1a0"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (8 lines \u00D7 2): go/cmd/dolt/commands/ci/run.go:101-108 | go/cmd/dolt/commands/ci/view.go:103-110 \u2014 the copies sit in sibling files of one directory: extract the block into a single shared function in that directory and call it from each site, so a change lands once."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/ci/run.go"},"region":{"startLine":101}}}],"partialFingerprints":{"codehealthFindingId/v1":"23e523c62402dc696ee855be0479c527b810fba75e188765c12f63c0c17f3189"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (8 lines \u00D7 2): go/cmd/dolt/commands/diff_output.go:150-157 | go/cmd/dolt/commands/diff_output.go:602-609 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/diff_output.go"},"region":{"startLine":150}}}],"partialFingerprints":{"codehealthFindingId/v1":"06d4f7e1c6cf95e5365d7780148267f0a1e2b7119ac3e60ecb494be99e682957"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (8 lines \u00D7 2): go/cmd/dolt/commands/diff_output.go:242-249 | go/cmd/dolt/commands/diff_output.go:389-397 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/cmd/dolt/commands/diff_output.go:242\u0060 it does not close everything it opens, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/diff_output.go"},"region":{"startLine":242}}}],"partialFingerprints":{"codehealthFindingId/v1":"daececb8ae649018e682ac24b56f570478835b51f9f5983c20c96cc073ea95bb"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (8 lines \u00D7 2): go/cmd/dolt/commands/fetch.go:138-145 | go/cmd/dolt/commands/pull.go:331-338 \u2014 the copies sit in sibling files of one directory: extract the block into a single shared function in that directory and call it from each site, so a change lands once."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/fetch.go"},"region":{"startLine":138}}}],"partialFingerprints":{"codehealthFindingId/v1":"11d6d486b79a8dcdb1ecc9a247a2c71269aac56c5dd305f00547be5a642f1af7"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (8 lines \u00D7 2): go/cmd/dolt/commands/rebase.go:128-136 | go/cmd/dolt/commands/rebase.go:175-182 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/cmd/dolt/commands/rebase.go:128\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that. The matched lines also transfer control out of the body holding them, which cannot survive a move into a called unit unchanged: have the extracted unit return that decision and let each site act on it."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/rebase.go"},"region":{"startLine":128}}}],"partialFingerprints":{"codehealthFindingId/v1":"bd0379acf28a4e3ed4c19a9296eefbecb8d0c9cdd06daed979c1c3b0122bdec0"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (8 lines \u00D7 2): go/libraries/doltcore/doltdb/commit.go:207-214 | go/libraries/doltcore/doltdb/commit.go:231-238 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/libraries/doltcore/doltdb/commit.go:207\u0060 it does not close everything it opens, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that. The matched lines also transfer control out of the body holding them, which cannot survive a move into a called unit unchanged: have the extracted unit return that decision and let each site act on it."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/doltdb/commit.go"},"region":{"startLine":207}}}],"partialFingerprints":{"codehealthFindingId/v1":"edecc9b661225023ce50ac0cf607148d12da8bc35df11bb394acfc9676fd7bf8"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (8 lines \u00D7 2): go/libraries/doltcore/env/actions/dolt_ci/workflow_manager.go:642-649 | go/libraries/doltcore/env/actions/dolt_ci/workflow_manager.go:655-662 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited. The matched lines also transfer control out of the body holding them, which cannot survive a move into a called unit unchanged: have the extracted unit return that decision and let each site act on it."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/env/actions/dolt_ci/workflow_manager.go"},"region":{"startLine":642}}}],"partialFingerprints":{"codehealthFindingId/v1":"08433a1f35154d3b0ee736ba0c38d9b5452fdeca720e88b237983d491b70269a"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (8 lines \u00D7 2): go/libraries/doltcore/merge/fulltext_table.go:161-168 | go/libraries/doltcore/merge/fulltext_table.go:172-179 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/libraries/doltcore/merge/fulltext_table.go:161\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that. The matched lines also transfer control out of the body holding them, which cannot survive a move into a called unit unchanged: have the extracted unit return that decision and let each site act on it."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/merge/fulltext_table.go"},"region":{"startLine":161}}}],"partialFingerprints":{"codehealthFindingId/v1":"54eb78e9187f7b5ba28c9464af458b0fcd35d369a225c2dc05d4e5f22aafb677"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (8 lines \u00D7 2): go/libraries/doltcore/merge/merge_schema.go:790-799 | go/libraries/doltcore/merge/merge_schema.go:906-913 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/libraries/doltcore/merge/merge_schema.go:790\u0060 it does not close everything it opens, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/merge/merge_schema.go"},"region":{"startLine":790}}}],"partialFingerprints":{"codehealthFindingId/v1":"23e577429edc0c59c76c317c35f75b5d98191983f32f5ebcf3fd68122871c217"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (8 lines \u00D7 2): go/libraries/doltcore/remotesrv/grpc.go:223-230 | go/libraries/doltcore/remotesrv/grpc.go:331-338 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/remotesrv/grpc.go"},"region":{"startLine":223}}}],"partialFingerprints":{"codehealthFindingId/v1":"1006f5d30e2398e56359b171cdf7204e2e6870755acbfe34e2cc0b756cf987a4"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (8 lines \u00D7 2): go/libraries/doltcore/remotesrv/grpc.go:324-331 | go/libraries/doltcore/remotesrv/grpc.go:448-455 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/libraries/doltcore/remotesrv/grpc.go:324\u0060 it does not close everything it opens, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/remotesrv/grpc.go"},"region":{"startLine":324}}}],"partialFingerprints":{"codehealthFindingId/v1":"88112d484cfdbd99588dc59bc1b822d691820a7afc52db8e94d5702177cf43a8"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (8 lines \u00D7 2): go/libraries/doltcore/remotesrv/grpc.go:549-556 | go/libraries/doltcore/remotesrv/grpc.go:612-619 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited. The matched lines also register a scope-exit action (a \u0060defer\u0060-style statement) that runs when the function holding them returns: moved into a called unit it would run when THAT unit returns instead \u2014 before the caller uses what it releases \u2014 so keep the registration at the call site and extract only the work around it, or have the extracted unit hand the resource back for the caller to register."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/remotesrv/grpc.go"},"region":{"startLine":549}}}],"partialFingerprints":{"codehealthFindingId/v1":"725f29c0af12cde53f64f1e266ea0bd3154642041b5101aa8abc1308c4b553db"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (8 lines \u00D7 2): go/libraries/doltcore/sqle/binlogreplication/binlog_type_serialization.go:663-670 | go/libraries/doltcore/sqle/binlogreplication/binlog_type_serialization.go:727-734 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/libraries/doltcore/sqle/binlogreplication/binlog_type_serialization.go:663\u0060 it does not close everything it opens, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/binlogreplication/binlog_type_serialization.go"},"region":{"startLine":663}}}],"partialFingerprints":{"codehealthFindingId/v1":"0b8fbffb00f30e5f050b761dc784b91bfa13c844c0c99332bc40c2c97b1d4fab"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (8 lines \u00D7 2): go/libraries/doltcore/sqle/binlogreplication/binlog_type_serialization.go:1018-1025 | go/libraries/doltcore/sqle/binlogreplication/binlog_type_serialization.go:1053-1060 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/libraries/doltcore/sqle/binlogreplication/binlog_type_serialization.go:1018\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/binlogreplication/binlog_type_serialization.go"},"region":{"startLine":1018}}}],"partialFingerprints":{"codehealthFindingId/v1":"478e761f1458472836a4028a43aede5e817969e3c56fa904aa2fefe952e558f7"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (8 lines \u00D7 2): go/libraries/doltcore/sqle/dprocedures/dolt_rebase.go:671-678 | go/libraries/doltcore/sqle/dprocedures/dolt_rebase.go:1041-1048 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/libraries/doltcore/sqle/dprocedures/dolt_rebase.go:671\u0060 it does not close everything it opens, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that. The matched lines also transfer control out of the body holding them, which cannot survive a move into a called unit unchanged: have the extracted unit return that decision and let each site act on it."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dprocedures/dolt_rebase.go"},"region":{"startLine":671}}}],"partialFingerprints":{"codehealthFindingId/v1":"82eca2081f53c1abff34e928d9e80d27433fe820b324bfe378de8462262b32e3"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (8 lines \u00D7 2): go/libraries/doltcore/sqle/dtablefunctions/dolt_diff.go:94-101 | go/libraries/doltcore/sqle/dtablefunctions/dolt_diff.go:151-158 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/libraries/doltcore/sqle/dtablefunctions/dolt_diff.go:94\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dtablefunctions/dolt_diff.go"},"region":{"startLine":94}}}],"partialFingerprints":{"codehealthFindingId/v1":"f80411d62ee781b51a4b09bd03c6a4eb02644602d682ea7c2f2d49b52bf1d845"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (8 lines \u00D7 2): go/libraries/doltcore/sqle/dtablefunctions/dolt_preview_merge_conflicts.go:194-201 | go/libraries/doltcore/sqle/dtablefunctions/dolt_preview_merge_conflicts_summary.go:162-169 \u2014 the copies sit in sibling files of one directory: extract the block into a single shared function in that directory and call it from each site, so a change lands once. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/libraries/doltcore/sqle/dtablefunctions/dolt_preview_merge_conflicts.go:194\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dtablefunctions/dolt_preview_merge_conflicts.go"},"region":{"startLine":194}}}],"partialFingerprints":{"codehealthFindingId/v1":"16a13b7083c56335c61ac31cfd6f5d42ed09f7e6e1e57c8a865b6ee819ba45c2"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (8 lines \u00D7 2): go/libraries/doltcore/sqle/dtables/conflicts_tables_prolly.go:804-811 | go/libraries/doltcore/sqle/dtables/conflicts_tables_prolly.go:821-828 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dtables/conflicts_tables_prolly.go"},"region":{"startLine":804}}}],"partialFingerprints":{"codehealthFindingId/v1":"a8d48e3e507b74f820d5d8c7128f04583c7c3b2f3cb8bb1a549886591cbcaf7c"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (8 lines \u00D7 2): go/libraries/doltcore/sqle/index/dolt_index.go:286-293 | go/libraries/doltcore/sqle/index/dolt_index.go:474-481 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/libraries/doltcore/sqle/index/dolt_index.go:286\u0060 it does not close everything it opens, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/index/dolt_index.go"},"region":{"startLine":286}}}],"partialFingerprints":{"codehealthFindingId/v1":"a74ed63f1679967d3d94213cb31655ac10b221948b0295eafc1fa467f6f17a6a"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (8 lines \u00D7 2): go/libraries/doltcore/sqle/indexed_dolt_table.go:51-58 | go/libraries/doltcore/sqle/indexed_dolt_table.go:133-140 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/libraries/doltcore/sqle/indexed_dolt_table.go:51\u0060 it does not close everything it opens, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that. The matched lines also transfer control out of the body holding them, which cannot survive a move into a called unit unchanged: have the extracted unit return that decision and let each site act on it. The matched lines also register a scope-exit action (a \u0060defer\u0060-style statement) that runs when the function holding them returns: moved into a called unit it would run when THAT unit returns instead \u2014 before the caller uses what it releases \u2014 so keep the registration at the call site and extract only the work around it, or have the extracted unit hand the resource back for the caller to register."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/indexed_dolt_table.go"},"region":{"startLine":51}}}],"partialFingerprints":{"codehealthFindingId/v1":"cdfb1b52e904b9cb1158987cb55d814b0407f655876b4c95965e772b5b3c1ea7"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (8 lines \u00D7 2): go/libraries/doltcore/sqle/indexed_dolt_table.go:72-80 | go/libraries/doltcore/sqle/indexed_dolt_table.go:90-97 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/libraries/doltcore/sqle/indexed_dolt_table.go:72\u0060 it does not close everything it opens, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that. The matched lines also register a scope-exit action (a \u0060defer\u0060-style statement) that runs when the function holding them returns: moved into a called unit it would run when THAT unit returns instead \u2014 before the caller uses what it releases \u2014 so keep the registration at the call site and extract only the work around it, or have the extracted unit hand the resource back for the caller to register."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/indexed_dolt_table.go"},"region":{"startLine":72}}}],"partialFingerprints":{"codehealthFindingId/v1":"0fe450d5d0e9bd4994fb512eacf8e9304a6793b5cb6b4f3233a2168110028e02"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (8 lines \u00D7 2): go/libraries/doltcore/sqle/kvexec/builder.go:369-376 | go/libraries/doltcore/sqle/kvexec/builder.go:379-386 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/libraries/doltcore/sqle/kvexec/builder.go:369\u0060 it does not close everything it opens, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that. The matched lines also transfer control out of the body holding them, which cannot survive a move into a called unit unchanged: have the extracted unit return that decision and let each site act on it."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/kvexec/builder.go"},"region":{"startLine":369}}}],"partialFingerprints":{"codehealthFindingId/v1":"b7ea7044829de77d50eb81e49600aa52847c8a383cad490d87fd3cef584e84a8"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (8 lines \u00D7 2): go/libraries/doltcore/sqle/statspro/controller.go:477-484 | go/libraries/doltcore/sqle/statspro/controller.go:492-499 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/libraries/doltcore/sqle/statspro/controller.go:477\u0060 it does not close everything it opens, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that. The matched lines also transfer control out of the body holding them, which cannot survive a move into a called unit unchanged: have the extracted unit return that decision and let each site act on it. The matched lines also register a scope-exit action (a \u0060defer\u0060-style statement) that runs when the function holding them returns: moved into a called unit it would run when THAT unit returns instead \u2014 before the caller uses what it releases \u2014 so keep the registration at the call site and extract only the work around it, or have the extracted unit hand the resource back for the caller to register."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/statspro/controller.go"},"region":{"startLine":477}}}],"partialFingerprints":{"codehealthFindingId/v1":"0024557f561e6c7e0afa7ce362a1bc37d33f8ee4e90dddc6fa3b3bbfb45d9828"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (8 lines \u00D7 2): go/store/blobstore/oci.go:317-324 | go/store/blobstore/oci.go:353-360 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/store/blobstore/oci.go:317\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/blobstore/oci.go"},"region":{"startLine":317}}}],"partialFingerprints":{"codehealthFindingId/v1":"1154fc5dc41521b141c51168397aba2113f2cb4ec65d08603e31b9bdd5514cc7"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (8 lines \u00D7 2): go/store/datas/pull/clone.go:169-176 | go/store/datas/pull/clone.go:223-231 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/datas/pull/clone.go"},"region":{"startLine":169}}}],"partialFingerprints":{"codehealthFindingId/v1":"832caa5fa6d7d52e930caa234099c264f388dcc9ecb57d36bbe6fe4dd7e01e77"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (8 lines \u00D7 2): go/store/datas/pull/clone.go:193-200 | go/store/datas/pull/clone.go:234-241 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/store/datas/pull/clone.go:193\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that. The matched lines also transfer control out of the body holding them, which cannot survive a move into a called unit unchanged: have the extracted unit return that decision and let each site act on it."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/datas/pull/clone.go"},"region":{"startLine":193}}}],"partialFingerprints":{"codehealthFindingId/v1":"a93a529ed0d568953845bdbe2595900f33978aa365b70fb08657d90e87837175"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (8 lines \u00D7 2): go/store/nbs/journal_inspect.go:513-520 | go/store/nbs/journal_inspect.go:542-549 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/store/nbs/journal_inspect.go:513\u0060 it does not close everything it opens, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/nbs/journal_inspect.go"},"region":{"startLine":513}}}],"partialFingerprints":{"codehealthFindingId/v1":"d2710892d05f342293e43356cb4b1bc16d24370dd302296b46f0c1b2a2395644"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (8 lines \u00D7 2): go/store/nbs/mem_table.go:179-186 | go/store/nbs/mem_table.go:197-204 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/store/nbs/mem_table.go:179\u0060 it does not close everything it opens, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/nbs/mem_table.go"},"region":{"startLine":179}}}],"partialFingerprints":{"codehealthFindingId/v1":"10cc498462ddffea37584cc7d51266b102f70c73e36e21f34b2c705ad24e17e5"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (8 lines \u00D7 2): go/store/nbs/no_conjoin_bs_persister.go:44-51 | go/store/nbs/single_blob_bs_persister.go:42-49 \u2014 the copies sit in sibling files of one directory: extract the block into a single shared function in that directory and call it from each site, so a change lands once."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/nbs/no_conjoin_bs_persister.go"},"region":{"startLine":44}}}],"partialFingerprints":{"codehealthFindingId/v1":"ebac0ccf7833d1d6869413aa98f45842802112e42b7d78263c291d67439efb78"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (8 lines \u00D7 2): go/store/prolly/message/merge_artifacts.go:149-156 | go/store/prolly/message/prolly_map.go:147-154 \u2014 the copies sit in sibling files of one directory: extract the block into a single shared function in that directory and call it from each site, so a change lands once."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/prolly/message/merge_artifacts.go"},"region":{"startLine":149}}}],"partialFingerprints":{"codehealthFindingId/v1":"6e7408dca4833c7fd978af204bfe8a9702f2e0d67b2c132498c1f28989b09e25"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (8 lines \u00D7 2): go/store/prolly/proximity_map.go:285-297 | go/store/prolly/proximity_map.go:316-323 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/store/prolly/proximity_map.go:285\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that. The matched lines also transfer control out of the body holding them, which cannot survive a move into a called unit unchanged: have the extracted unit return that decision and let each site act on it."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/prolly/proximity_map.go"},"region":{"startLine":285}}}],"partialFingerprints":{"codehealthFindingId/v1":"4e91d6d8d52a19a9ff2604aa579dcc32ef151759d16d78e717ca592b148337e2"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (8 lines \u00D7 2): go/store/prolly/tree/json_indexed_document.go:277-284 | go/store/prolly/tree/json_indexed_document.go:566-573 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/store/prolly/tree/json_indexed_document.go:277\u0060 it does not close everything it opens, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that. The matched lines also transfer control out of the body holding them, which cannot survive a move into a called unit unchanged: have the extracted unit return that decision and let each site act on it."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/prolly/tree/json_indexed_document.go"},"region":{"startLine":277}}}],"partialFingerprints":{"codehealthFindingId/v1":"706f6a8c0c57636e1c49a0fab6894f941f9bc0f403b73b1abd0097a7eeaa50e2"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (8 lines \u00D7 2): go/store/prolly/tree/node.go:276-283 | go/store/prolly/tree/node.go:302-309 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/store/prolly/tree/node.go:276\u0060 it does not close everything it opens, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/prolly/tree/node.go"},"region":{"startLine":276}}}],"partialFingerprints":{"codehealthFindingId/v1":"fbf8c85e64af530dac27c65a4890d9b0bc8a0b8bd3ca7df30b1899793494b746"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (7 lines \u00D7 8): go/libraries/doltcore/sqle/dtablefunctions/dolt_diff.go:236-242 | go/libraries/doltcore/sqle/dtablefunctions/dolt_diff_stat.go:218-224 | go/libraries/doltcore/sqle/dtablefunctions/dolt_diff_summary.go:210-216 | go/libraries/doltcore/sqle/dtablefunctions/dolt_patch.go:361-367 | go/libraries/doltcore/sqle/dtablefunctions/dolt_preview_merge_conflicts.go:189-195 | go/libraries/doltcore/sqle/dtablefunctions/dolt_preview_merge_conflicts_summary.go:157-163 | go/libraries/doltcore/sqle/dtablefunctions/dolt_query_diff.go:158-164 | go/libraries/doltcore/sqle/dtablefunctions/dolt_schema_diff.go:219-225 \u2014 the copies sit in sibling files of one directory: extract the block into a single shared function in that directory and call it from each site, so a change lands once. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/libraries/doltcore/sqle/dtablefunctions/dolt_diff.go:236\u0060 it does not close everything it opens, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that. The matched lines also transfer control out of the body holding them, which cannot survive a move into a called unit unchanged: have the extracted unit return that decision and let each site act on it."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dtablefunctions/dolt_diff.go"},"region":{"startLine":236}}}],"partialFingerprints":{"codehealthFindingId/v1":"0aadb4aa311f566f63c7678ef3019d60892aa020e076db335afb773816f7c849"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (7 lines \u00D7 6): go/store/prolly/message/address_map.go:118-124 | go/store/prolly/message/blob.go:107-113 | go/store/prolly/message/commit_closure.go:112-118 | go/store/prolly/message/merge_artifacts.go:145-151 | go/store/prolly/message/prolly_map.go:143-149 | go/store/prolly/message/vector_index.go:146-152 \u2014 the copies sit in sibling files of one directory: extract the block into a single shared function in that directory and call it from each site, so a change lands once. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/store/prolly/message/address_map.go:118\u0060 it does not close everything it opens, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/prolly/message/address_map.go"},"region":{"startLine":118}}}],"partialFingerprints":{"codehealthFindingId/v1":"0f58730bfc7fa28d09d550838353fb50385cae626aeff474a6bcbe4a6ec0eae3"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (7 lines \u00D7 3): go/cmd/dolt/commands/fetch.go:119-125 | go/cmd/dolt/commands/pull.go:283-289 | go/cmd/dolt/commands/push.go:137-143 \u2014 the copies sit in sibling files of one directory: extract the block into a single shared function in that directory and call it from each site, so a change lands once. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/cmd/dolt/commands/fetch.go:119\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that. The matched lines also transfer control out of the body holding them, which cannot survive a move into a called unit unchanged: have the extracted unit return that decision and let each site act on it."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/fetch.go"},"region":{"startLine":119}}}],"partialFingerprints":{"codehealthFindingId/v1":"375ae022915cf1d7e2f7270258190ff35a3dee600e806b7294a82e6bdae79971"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (7 lines \u00D7 3): go/libraries/doltcore/sqle/dtablefunctions/dolt_diff.go:537-544 | go/libraries/doltcore/sqle/dtablefunctions/dolt_diff_summary.go:381-387 | go/libraries/doltcore/sqle/dtablefunctions/dolt_patch.go:447-453 \u2014 the copies sit in sibling files of one directory: extract the block into a single shared function in that directory and call it from each site, so a change lands once. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/libraries/doltcore/sqle/dtablefunctions/dolt_diff.go:537\u0060 it does not close everything it opens, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that. The matched lines also transfer control out of the body holding them, which cannot survive a move into a called unit unchanged: have the extracted unit return that decision and let each site act on it."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dtablefunctions/dolt_diff.go"},"region":{"startLine":537}}}],"partialFingerprints":{"codehealthFindingId/v1":"d57115cb5a0b33b23a9db7b693c8c5286d7a347910d1c8e8cb42b827d6c64cf4"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (7 lines \u00D7 2): go/cmd/dolt/commands/branch.go:406-412 | go/cmd/dolt/commands/branch.go:417-423 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/cmd/dolt/commands/branch.go:406\u0060 it does not close everything it opens, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/branch.go"},"region":{"startLine":406}}}],"partialFingerprints":{"codehealthFindingId/v1":"26e1fe19fb8679f585963b556e84e68c0af4398e23be58d541cfebeeccbeab47"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (7 lines \u00D7 2): go/cmd/dolt/commands/ci/import.go:145-151 | go/cmd/dolt/commands/ci/remove.go:97-103 \u2014 the copies sit in sibling files of one directory: extract the block into a single shared function in that directory and call it from each site, so a change lands once."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/ci/import.go"},"region":{"startLine":145}}}],"partialFingerprints":{"codehealthFindingId/v1":"b58bfae9ad9950e22a32c6f8577e3a3089f423a90cac808e7a8481f2c5f0f1d6"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (7 lines \u00D7 2): go/cmd/dolt/commands/merge.go:211-218 | go/cmd/dolt/commands/pull.go:120-126 \u2014 the copies sit in sibling files of one directory: extract the block into a single shared function in that directory and call it from each site, so a change lands once. The matched lines also transfer control out of the body holding them, which cannot survive a move into a called unit unchanged: have the extracted unit return that decision and let each site act on it."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/merge.go"},"region":{"startLine":211}}}],"partialFingerprints":{"codehealthFindingId/v1":"11eb7045391d2969364e955c0f73d48a03721e38fea6fe7ee592094be25cd09f"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (7 lines \u00D7 2): go/libraries/doltcore/branch_control/access.go:178-184 | go/libraries/doltcore/branch_control/access.go:236-242 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/libraries/doltcore/branch_control/access.go:178\u0060 it does not close everything it opens, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/branch_control/access.go"},"region":{"startLine":178}}}],"partialFingerprints":{"codehealthFindingId/v1":"149fb92568741977bc72d700ffce8cd455380e668b8a9059ab9bfad04a5a05a3"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (7 lines \u00D7 2): go/libraries/doltcore/sqle/dtablefunctions/dolt_diff_stat.go:165-171 | go/libraries/doltcore/sqle/dtablefunctions/dolt_diff_summary.go:153-159 \u2014 the copies sit in sibling files of one directory: extract the block into a single shared function in that directory and call it from each site, so a change lands once. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/libraries/doltcore/sqle/dtablefunctions/dolt_diff_stat.go:165\u0060 it does not close everything it opens, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that. Note that the copies do not run to the end of the range shown: their LAST lines are different code, not the same code under different names \u2014 the matched region ends inside that line. Extract the lines above it, and read the last line of each site separately."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dtablefunctions/dolt_diff_stat.go"},"region":{"startLine":165}}}],"partialFingerprints":{"codehealthFindingId/v1":"ac489f48d7c8f2a864e41b9612b89775153f5b1b3d5bf8e271647d812fcf82cb"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (7 lines \u00D7 2): go/libraries/doltcore/sqle/dtables/branch_control_table.go:281-287 | go/libraries/doltcore/sqle/dtables/branch_namespace_control.go:239-245 \u2014 the copies sit in sibling files of one directory: extract the block into a single shared function in that directory and call it from each site, so a change lands once. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/libraries/doltcore/sqle/dtables/branch_control_table.go:281\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that. Note that the copies do not run to the end of the range shown: their LAST lines are different code, not the same code under different names \u2014 the matched region ends inside that line. Extract the lines above it, and read the last line of each site separately."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dtables/branch_control_table.go"},"region":{"startLine":281}}}],"partialFingerprints":{"codehealthFindingId/v1":"0c879f2b17a5b664c40ef8d90b7c25f02a209c51c52be72558a4496a6f82acfd"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (7 lines \u00D7 2): go/libraries/doltcore/sqle/index/prolly_index_iter.go:144-150 | go/libraries/doltcore/sqle/index/prolly_index_iter.go:185-192 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/libraries/doltcore/sqle/index/prolly_index_iter.go:144\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/index/prolly_index_iter.go"},"region":{"startLine":144}}}],"partialFingerprints":{"codehealthFindingId/v1":"c6b39dd01cd4dcee28cb895b81bc2a6fc09fe439e151ee9c073c81f0aac8e4fa"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (7 lines \u00D7 2): go/libraries/doltcore/sqle/index/prolly_row_iter.go:180-186 | go/libraries/doltcore/sqle/index/prolly_row_iter.go:205-212 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/libraries/doltcore/sqle/index/prolly_row_iter.go:180\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/index/prolly_row_iter.go"},"region":{"startLine":180}}}],"partialFingerprints":{"codehealthFindingId/v1":"dd578344aa911036d3132dc6a5aef55f8a71054521503e56e389b231ef231923"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (7 lines \u00D7 2): go/libraries/doltcore/sqle/kvexec/merge_join.go:180-186 | go/libraries/doltcore/sqle/kvexec/merge_join.go:255-261 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/libraries/doltcore/sqle/kvexec/merge_join.go:180\u0060 it does not close everything it opens, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/kvexec/merge_join.go"},"region":{"startLine":180}}}],"partialFingerprints":{"codehealthFindingId/v1":"f1aec74485fe6e13184d1a76761ccf0f527e4f2add975b153598e1feceb3590d"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (7 lines \u00D7 2): go/libraries/doltcore/sqle/writer/prolly_index_writer_keyless.go:273-279 | go/libraries/doltcore/sqle/writer/prolly_index_writer_keyless.go:381-387 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/libraries/doltcore/sqle/writer/prolly_index_writer_keyless.go:273\u0060 it does not close everything it opens, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/writer/prolly_index_writer_keyless.go"},"region":{"startLine":273}}}],"partialFingerprints":{"codehealthFindingId/v1":"09214e93ae9868f61562b9e6c1decb40a280ce74744ce4f26c21035a3f606052"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (7 lines \u00D7 2): go/store/datas/database_common.go:562-568 | go/store/datas/database_common.go:701-707 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/store/datas/database_common.go:562\u0060 it does not close everything it opens, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/datas/database_common.go"},"region":{"startLine":562}}}],"partialFingerprints":{"codehealthFindingId/v1":"4a0cc92589a87ef66a3eb366528c77a5b81dbc5a2e90350b790d4a70712fc5ed"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (7 lines \u00D7 2): go/store/nbs/archive_reader.go:680-686 | go/store/nbs/archive_reader.go:780-786 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/store/nbs/archive_reader.go:680\u0060 it does not close everything it opens, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/nbs/archive_reader.go"},"region":{"startLine":680}}}],"partialFingerprints":{"codehealthFindingId/v1":"5dec0a85944206fc8a7ce78e1297ceb169ff3e586ba7b4e2b1e48196e2276fa4"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (7 lines \u00D7 2): go/store/nbs/bs_persister.go:137-143 | go/store/nbs/single_blob_bs_persister.go:110-116 \u2014 the copies sit in sibling files of one directory: extract the block into a single shared function in that directory and call it from each site, so a change lands once."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/nbs/bs_persister.go"},"region":{"startLine":137}}}],"partialFingerprints":{"codehealthFindingId/v1":"e3ca744abd0fa9ca790cef84e06424d400de427d2d4a35c69559bc7fa03e4b93"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (7 lines \u00D7 2): go/store/nbs/metadata.go:157-163 | go/store/nbs/metadata.go:183-190 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/store/nbs/metadata.go:157\u0060 it does not close everything it opens, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/nbs/metadata.go"},"region":{"startLine":157}}}],"partialFingerprints":{"codehealthFindingId/v1":"91c7bded5cdaa8b9d06f4c9d95b53923bf3c53b49eeb1270c1fb318ab33745fb"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (6 lines \u00D7 3): go/store/types/serial_message.go:142-147 | go/store/types/serial_message.go:150-155 | go/store/types/serial_message.go:158-163 \u2014 all 3 copies are in the same file, so extract the block into one function there and call it from every one of those sites \u2014 resolving only two of them leaves the rest to drift apart the first time one is edited. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/store/types/serial_message.go:142\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/types/serial_message.go"},"region":{"startLine":142}}}],"partialFingerprints":{"codehealthFindingId/v1":"aa5fc2e680a3b402e4fbdd2bf1a7fea9432a4c41b8d63cfd48837be4377f654f"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (6 lines \u00D7 3): go/store/val/tuple_builder.go:430-435 | go/store/val/tuple_builder.go:441-446 | go/store/val/tuple_builder.go:452-457 \u2014 all 3 copies are in the same file, so extract the block into one function there and call it from every one of those sites \u2014 resolving only two of them leaves the rest to drift apart the first time one is edited. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/store/val/tuple_builder.go:430\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/val/tuple_builder.go"},"region":{"startLine":430}}}],"partialFingerprints":{"codehealthFindingId/v1":"20fbb5f744fb0564d53d070a7dbe88715e081fff2714e3f1adbece6a16a3c0dd"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (6 lines \u00D7 2): go/cmd/dolt/commands/indexcmds/cat.go:114-119 | go/cmd/dolt/commands/indexcmds/rebuild.go:80-85 \u2014 the copies sit in sibling files of one directory: extract the block into a single shared function in that directory and call it from each site, so a change lands once. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/cmd/dolt/commands/indexcmds/cat.go:114\u0060 it does not close everything it opens, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that. The matched lines also transfer control out of the body holding them, which cannot survive a move into a called unit unchanged: have the extracted unit return that decision and let each site act on it. Note that the copies do not run to the end of the range shown: their LAST lines are different code, not the same code under different names \u2014 the matched region ends inside that line. Extract the lines above it, and read the last line of each site separately."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/indexcmds/cat.go"},"region":{"startLine":114}}}],"partialFingerprints":{"codehealthFindingId/v1":"a8994830ae21261c055a62006fbbbf2ec822b0895b9643b26aeccc58e985645a"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (6 lines \u00D7 2): go/cmd/dolt/commands/indexcmds/ls.go:91-96 | go/cmd/dolt/commands/indexcmds/rebuild.go:83-88 \u2014 the copies sit in sibling files of one directory: extract the block into a single shared function in that directory and call it from each site, so a change lands once. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/cmd/dolt/commands/indexcmds/ls.go:91\u0060 it does not close everything it opens, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that. The matched lines also transfer control out of the body holding them, which cannot survive a move into a called unit unchanged: have the extracted unit return that decision and let each site act on it."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/indexcmds/ls.go"},"region":{"startLine":91}}}],"partialFingerprints":{"codehealthFindingId/v1":"dfcd5384a12ff32f270660655f7692ab22065f50dce55930a2fa1ea2abc314c7"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (6 lines \u00D7 2): go/cmd/dolt/commands/log.go:360-365 | go/cmd/dolt/commands/log.go:378-383 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/log.go"},"region":{"startLine":360}}}],"partialFingerprints":{"codehealthFindingId/v1":"a5012bf10021465ac470e79b7081baf29964c9de8f6d2ef37bf7c121cc75fa6a"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (6 lines \u00D7 2): go/cmd/dolt/commands/schcmds/copy-tags.go:145-151 | go/cmd/dolt/commands/schcmds/copy-tags.go:164-169 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/cmd/dolt/commands/schcmds/copy-tags.go:145\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that. The matched lines also transfer control out of the body holding them, which cannot survive a move into a called unit unchanged: have the extracted unit return that decision and let each site act on it."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/schcmds/copy-tags.go"},"region":{"startLine":145}}}],"partialFingerprints":{"codehealthFindingId/v1":"5ee7d529d5a7e8309cc5aa71073b0f104e32dbd3b244f0b585ef0236fd1e66aa"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (6 lines \u00D7 2): go/cmd/dolt/commands/sql.go:148-153 | go/cmd/dolt/commands/sql.go:331-336 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/sql.go"},"region":{"startLine":148}}}],"partialFingerprints":{"codehealthFindingId/v1":"96e484de61b0ff3a1ae9bff77c9651075e52b7d5599a659a55bb0990b4225cf1"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (6 lines \u00D7 2): go/libraries/doltcore/merge/merge_prolly_rows.go:1004-1009 | go/libraries/doltcore/table/editor/creation/index.go:223-228 \u2014 the copies span different directories, so extracting a shared function means choosing where it lives: put it somewhere both call sites can already reach \u2014 a location they all depend on today, or a new shared one if there is none \u2014 and call it from each site; until then, every change has to be made twice. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/libraries/doltcore/merge/merge_prolly_rows.go:1004\u0060 it does not close everything it opens, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that. The matched lines also transfer control out of the body holding them, which cannot survive a move into a called unit unchanged: have the extracted unit return that decision and let each site act on it. Note that the copies do not run to the end of the range shown: their LAST lines are different code, not the same code under different names \u2014 the matched region ends inside that line. Extract the lines above it, and read the last line of each site separately."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/merge/merge_prolly_rows.go"},"region":{"startLine":1004}}}],"partialFingerprints":{"codehealthFindingId/v1":"e4401cc0390a356db9ad4b79c849e64dc142b42819c14d1aeda2bafe9625550f"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (6 lines \u00D7 2): go/libraries/doltcore/merge/merge_schema.go:1305-1310 | go/libraries/doltcore/merge/merge_schema.go:1316-1321 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/libraries/doltcore/merge/merge_schema.go:1305\u0060 it does not close everything it opens, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/merge/merge_schema.go"},"region":{"startLine":1305}}}],"partialFingerprints":{"codehealthFindingId/v1":"6afc13d0ff2c207910ba44da93106c865d57c39711af068c0f28f4f36dacc86e"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (6 lines \u00D7 2): go/libraries/doltcore/sqle/database.go:3067-3072 | go/libraries/doltcore/sqle/database.go:3075-3080 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/libraries/doltcore/sqle/database.go:3067\u0060 it does not close everything it opens, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that. The matched lines also transfer control out of the body holding them, which cannot survive a move into a called unit unchanged: have the extracted unit return that decision and let each site act on it."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/database.go"},"region":{"startLine":3067}}}],"partialFingerprints":{"codehealthFindingId/v1":"a9bfbb49f8ba01906569d0407a7ba23ae3fe4ecef9a7a3dfc1cff652fc65699f"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (6 lines \u00D7 2): go/libraries/doltcore/sqle/dolt_procedures_history_table.go:76-81 | go/libraries/doltcore/sqle/dolt_schemas_history_table.go:76-81 \u2014 the copies sit in sibling files of one directory: extract the block into a single shared function in that directory and call it from each site, so a change lands once. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/libraries/doltcore/sqle/dolt_procedures_history_table.go:76\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that. The matched lines also transfer control out of the body holding them, which cannot survive a move into a called unit unchanged: have the extracted unit return that decision and let each site act on it."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dolt_procedures_history_table.go"},"region":{"startLine":76}}}],"partialFingerprints":{"codehealthFindingId/v1":"4f97ea5a61e32d6de0c80e8f59360398b5a82b2fc9b234dbadc2ee4ba4d6d6aa"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (6 lines \u00D7 2): go/libraries/doltcore/sqle/dtables/branch_control_table.go:211-216 | go/libraries/doltcore/sqle/dtables/branch_control_table.go:251-256 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited. The matched lines also transfer control out of the body holding them, which cannot survive a move into a called unit unchanged: have the extracted unit return that decision and let each site act on it."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dtables/branch_control_table.go"},"region":{"startLine":211}}}],"partialFingerprints":{"codehealthFindingId/v1":"692cc30d33eb89f28609b7d0fec6b3cc8c249d183ac3ff5b5157a49bfd60cff2"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (6 lines \u00D7 2): go/libraries/doltcore/sqle/dtables/branch_control_table.go:240-249 | go/libraries/doltcore/sqle/dtables/branch_namespace_control.go:215-220 \u2014 the copies sit in sibling files of one directory: extract the block into a single shared function in that directory and call it from each site, so a change lands once. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/libraries/doltcore/sqle/dtables/branch_control_table.go:240\u0060 it does not close everything it opens, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dtables/branch_control_table.go"},"region":{"startLine":240}}}],"partialFingerprints":{"codehealthFindingId/v1":"e0ff45e873700584f590f0c29c5c98f8d97ff72802a5fa270ae3723c850daafa"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (6 lines \u00D7 2): go/libraries/doltcore/sqle/dtables/branch_control_table.go:253-258 | go/libraries/doltcore/sqle/dtables/branch_control_table.go:266-271 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/libraries/doltcore/sqle/dtables/branch_control_table.go:253\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that. Note that the copies do not run to the end of the range shown: their LAST lines are different code, not the same code under different names \u2014 the matched region ends inside that line. Extract the lines above it, and read the last line of each site separately."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dtables/branch_control_table.go"},"region":{"startLine":253}}}],"partialFingerprints":{"codehealthFindingId/v1":"d0e054746b273eb0b229e67cb32974c7c36faacce12c37841b2b9298c727cdc4"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (6 lines \u00D7 2): go/libraries/doltcore/sqle/dtables/commits_table.go:125-130 | go/libraries/doltcore/sqle/dtables/log_table.go:339-344 \u2014 the copies sit in sibling files of one directory: extract the block into a single shared function in that directory and call it from each site, so a change lands once. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/libraries/doltcore/sqle/dtables/commits_table.go:125\u0060 it does not close everything it opens, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dtables/commits_table.go"},"region":{"startLine":125}}}],"partialFingerprints":{"codehealthFindingId/v1":"07f0761b655ca0ab13133537adfc827e36920afeb9d7bc68ba914daa5d0b92ac"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (6 lines \u00D7 2): go/performance/utils/benchmark_runner/doltgres_server_config.go:100-105 | go/performance/utils/benchmark_runner/postgres_server_config.go:110-115 \u2014 the copies sit in sibling files of one directory: extract the block into a single shared function in that directory and call it from each site, so a change lands once."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/performance/utils/benchmark_runner/doltgres_server_config.go"},"region":{"startLine":100}}}],"partialFingerprints":{"codehealthFindingId/v1":"3b77067a206272aa8b1bdbcdd6e1a980724d21b249a13506930f15d7c3c3da65"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (6 lines \u00D7 2): go/performance/utils/benchmark_runner/sysbench.go:95-100 | go/performance/utils/benchmark_runner/sysbench.go:133-138 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited. The matched lines also transfer control out of the body holding them, which cannot survive a move into a called unit unchanged: have the extracted unit return that decision and let each site act on it."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/performance/utils/benchmark_runner/sysbench.go"},"region":{"startLine":95}}}],"partialFingerprints":{"codehealthFindingId/v1":"71431603174ca2d4afa639b7de0d137171b73dbab789ab151be25ee342f12b3e"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (6 lines \u00D7 2): go/store/datas/database_common.go:611-616 | go/store/datas/database_common.go:871-876 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/store/datas/database_common.go:611\u0060 it does not close everything it opens, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that. Note that the copies do not run to the end of the range shown: their LAST lines are different code, not the same code under different names \u2014 the matched region ends inside that line. Extract the lines above it, and read the last line of each site separately."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/datas/database_common.go"},"region":{"startLine":611}}}],"partialFingerprints":{"codehealthFindingId/v1":"2506adbed9272137cb0b8aaed7ea135f0ff1054b6646a97e35eb3084416fa9dd"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (6 lines \u00D7 2): go/store/nbs/bs_persister.go:72-77 | go/store/nbs/no_conjoin_bs_persister.go:54-59 \u2014 the copies sit in sibling files of one directory: extract the block into a single shared function in that directory and call it from each site, so a change lands once. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/store/nbs/bs_persister.go:72\u0060 it does not close everything it opens, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/nbs/bs_persister.go"},"region":{"startLine":72}}}],"partialFingerprints":{"codehealthFindingId/v1":"214d6698363094470f77f446f23debb1ad47479e98a47af154a8bddf9be1e35d"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (6 lines \u00D7 2): go/store/testutils/gitrepo/gitrepo.go:164-169 | go/store/testutils/gitrepo/gitrepo.go:177-182 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited. The matched lines also transfer control out of the body holding them, which cannot survive a move into a called unit unchanged: have the extracted unit return that decision and let each site act on it."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/testutils/gitrepo/gitrepo.go"},"region":{"startLine":164}}}],"partialFingerprints":{"codehealthFindingId/v1":"bc79294d14429feacbb4ca25f874cdd538d103325e3c9785c9fb58b468b202b1"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (6 lines \u00D7 2): go/store/types/serial_message.go:107-112 | go/store/types/serial_message.go:118-123 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited. Note that the copies do not run to the end of the range shown: their LAST lines are different code, not the same code under different names \u2014 the matched region ends inside that line. Extract the lines above it, and read the last line of each site separately."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/types/serial_message.go"},"region":{"startLine":107}}}],"partialFingerprints":{"codehealthFindingId/v1":"b0c5b9c5023b37b81c1ace8c9deb958f7fd1cbb27940e6ad1ed9cbcbdd92ddfe"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (5 lines \u00D7 2): go/libraries/doltcore/branch_control/access.go:192-196 | go/libraries/doltcore/branch_control/access.go:250-254 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited. Note that the copies do not run to the end of the range shown: their LAST lines are different code, not the same code under different names \u2014 the matched region ends inside that line. Extract the lines above it, and read the last line of each site separately."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/branch_control/access.go"},"region":{"startLine":192}}}],"partialFingerprints":{"codehealthFindingId/v1":"813dadbef8d30457a881ab61655b906c957f9f2ed7e5d712540dafc1390d463f"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (5 lines \u00D7 2): go/libraries/doltcore/sqle/database.go:1942-1948 | go/libraries/doltcore/sqle/database.go:1988-1992 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/libraries/doltcore/sqle/database.go:1988\u0060 it does not close everything it opens, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that. Note that the copies do not run to the end of the range shown: their LAST lines are different code, not the same code under different names \u2014 the matched region ends inside that line. Extract the lines above it, and read the last line of each site separately."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/database.go"},"region":{"startLine":1942}}}],"partialFingerprints":{"codehealthFindingId/v1":"5100aae1dc5a22716719f3f956809075f9efe65f30c09c5bf1792b048118d9d8"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (5 lines \u00D7 2): go/libraries/doltcore/sqle/index/prolly_row_iter.go:153-157 | go/libraries/doltcore/sqle/kvexec/builder.go:246-250 \u2014 the copies span different directories, so extracting a shared function means choosing where it lives: put it somewhere both call sites can already reach \u2014 a location they all depend on today, or a new shared one if there is none \u2014 and call it from each site; until then, every change has to be made twice. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/libraries/doltcore/sqle/index/prolly_row_iter.go:153\u0060 it does not close everything it opens, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/index/prolly_row_iter.go"},"region":{"startLine":153}}}],"partialFingerprints":{"codehealthFindingId/v1":"6f01b115c616381bf4d1486c4c83b1a08ea12fcb997500e72f19dc12a9276d7f"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (5 lines \u00D7 2): go/libraries/doltcore/sqle/kvexec/merge_join.go:488-493 | go/libraries/doltcore/sqle/kvexec/merge_join.go:508-512 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/libraries/doltcore/sqle/kvexec/merge_join.go:488\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/kvexec/merge_join.go"},"region":{"startLine":488}}}],"partialFingerprints":{"codehealthFindingId/v1":"007e8d36fdf19faacb68ff62de8a50abf961745414f85203aec2b8ff8385b7b1"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (5 lines \u00D7 2): go/libraries/doltcore/sqle/kvexec/merge_join.go:494-498 | go/libraries/doltcore/sqle/kvexec/merge_join.go:513-517 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/libraries/doltcore/sqle/kvexec/merge_join.go:494\u0060 it begins part-way through the construct above it, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/kvexec/merge_join.go"},"region":{"startLine":494}}}],"partialFingerprints":{"codehealthFindingId/v1":"4b264cd91675b43a7138dfc2eaf9ae8d52ff7b624a274c965ee3fb6b073acb2d"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (5 lines \u00D7 2): go/performance/utils/benchmark_runner/dolt_server_config.go:135-139 | go/performance/utils/benchmark_runner/mysql_server_config.go:128-132 \u2014 the copies sit in sibling files of one directory: extract the block into a single shared function in that directory and call it from each site, so a change lands once."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/performance/utils/benchmark_runner/dolt_server_config.go"},"region":{"startLine":135}}}],"partialFingerprints":{"codehealthFindingId/v1":"255ce42b0e8f8db02084f1d9330dee53531b1f781359e973c2c9109360a5254f"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (5 lines \u00D7 2): go/store/nbs/table_index.go:406-410 | go/store/nbs/table_index.go:421-425 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/store/nbs/table_index.go:406\u0060 it does not close everything it opens, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that. Note that the copies do not run to the end of the range shown: their LAST lines are different code, not the same code under different names \u2014 the matched region ends inside that line. Extract the lines above it, and read the last line of each site separately."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/nbs/table_index.go"},"region":{"startLine":406}}}],"partialFingerprints":{"codehealthFindingId/v1":"02ad6b3ece3ea9f932c1a664d8a5ab418e1a6e2ed49ce39e88fffcb2db5ce79a"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (5 lines \u00D7 2): go/store/prolly/message/item_access.go:59-63 | go/store/prolly/message/item_access.go:70-74 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/prolly/message/item_access.go"},"region":{"startLine":59}}}],"partialFingerprints":{"codehealthFindingId/v1":"034d8176f19fdef3608a1d33e571537dc97583d5e069cac62e5afaaecb8d553b"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (5 lines \u00D7 2): go/store/prolly/tree/three_way_differ.go:192-196 | go/store/prolly/tree/three_way_differ.go:204-208 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited. Read the line range as the matched WINDOW rather than a finished unit: at \u0060go/store/prolly/tree/three_way_differ.go:192\u0060 it does not close everything it opens, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/prolly/tree/three_way_differ.go"},"region":{"startLine":192}}}],"partialFingerprints":{"codehealthFindingId/v1":"bf63951099e1d820f59f060f7fd30e62feaef13bba8fa2ae54f611689bd180ed"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (5 lines \u00D7 2): go/store/val/tuple.go:166-170 | go/store/val/tuple.go:175-179 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/val/tuple.go"},"region":{"startLine":166}}}],"partialFingerprints":{"codehealthFindingId/v1":"cfcfd7a51a6713fd2e6f8189b58d94e6e080562c31e26243e5ba712c7f4b7a11"}},{"ruleId":"D9","level":"warning","message":{"text":"Tests outside the analyzed solution: 1 .NET test project(s) exist on disk but aren\u0027t in the .NET solution that was analyzed (e.g. MySqlConnectorTest.csproj), so they aren\u0027t built or gated with the production code and can\u0027t be assessed here. If this .NET code is part of the product, add those projects to the solution or point CodeHealth at a solution that includes them; if it is a client/compatibility harness beside a product written in another language, nothing is wrong here and this row can be ignored."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"7a0b53e0d18583a1361cd04775cd53329dedef67393349e0c99678c3c468f894"}},{"ruleId":"D15","level":"warning","message":{"text":"Hotspot: go/libraries/doltcore/sqle/database.go: go/libraries/doltcore/sqle/database.go changed 12 times in last 90 days, max complexity 191. 1 of those changes was a fix/bug commit, and the other 11 changed it for other reasons \u2014 this file is under both repair and feature pressure. Before the next change lands here, cover the area it touches with tests, then split that area out of the file so the following change is smaller than this one \u2014 a file this often edited pays the complexity back every time."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/database.go"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"21209e37d4f478abf6f4333034c1c9b163e22a80f271c17f9f2261f451c569fc"}},{"ruleId":"D15","level":"warning","message":{"text":"Hotspot: go/store/nbs/store.go: go/store/nbs/store.go changed 20 times in last 90 days, max complexity 34. 2 of those changes were fix/bug commits, and the other 18 changed it for other reasons \u2014 this file is under both repair and feature pressure. Before the next change lands here, cover the area it touches with tests, then split that area out of the file so the following change is smaller than this one \u2014 a file this often edited pays the complexity back every time."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/nbs/store.go"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"532206dbb710ca8d1d04154d007cef6d18bd3e46f12271742e76ce3f79c52b1b"}},{"ruleId":"D15","level":"warning","message":{"text":"Hotspot: go/libraries/doltcore/sqle/database_provider.go: go/libraries/doltcore/sqle/database_provider.go changed 16 times in last 90 days, max complexity 31. 3 of those changes were fix/bug commits, and the other 13 changed it for other reasons \u2014 this file is under both repair and feature pressure. Before the next change lands here, cover the area it touches with tests, then split that area out of the file so the following change is smaller than this one \u2014 a file this often edited pays the complexity back every time."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/database_provider.go"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"27c076eb4b76b1d9ff52f4e280b421a46b7e2973274cf7c6b7034534fb60733d"}},{"ruleId":"D15","level":"warning","message":{"text":"Hotspot: go/libraries/doltcore/sqle/index/dolt_index.go: go/libraries/doltcore/sqle/index/dolt_index.go changed 13 times in last 90 days, max complexity 33. 1 of those changes was a fix/bug commit, and the other 12 changed it for other reasons \u2014 this file is under both repair and feature pressure. Before the next change lands here, cover the area it touches with tests, then split that area out of the file so the following change is smaller than this one \u2014 a file this often edited pays the complexity back every time."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/index/dolt_index.go"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"2fc2d89d7e92c6f37e0f7ca9305d4633babfee369dcbfa7903134fcfe85cdb6a"}},{"ruleId":"D15","level":"warning","message":{"text":"Hotspot: go/libraries/doltcore/sqle/tables.go: go/libraries/doltcore/sqle/tables.go changed 12 times in last 90 days, max complexity 35. 2 of those changes were fix/bug commits, and the other 10 changed it for other reasons \u2014 this file is under both repair and feature pressure. Before the next change lands here, cover the area it touches with tests, then split that area out of the file so the following change is smaller than this one \u2014 a file this often edited pays the complexity back every time."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/tables.go"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"73a03ad4c7657828e4edb4bdf7e92373edf43acc68528aa8242ffae7cfe25728"}},{"ruleId":"D15","level":"warning","message":{"text":"Hotspot: go/cmd/dolt/commands/sqlserver/server.go: go/cmd/dolt/commands/sqlserver/server.go changed 4 times in last 90 days, max complexity 89. Frequent change and high complexity in one file compound: schedule the next change to it to include carving out the part being edited, behind tests written first."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/cmd/dolt/commands/sqlserver/server.go"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"a6705b1b629ce2b4642d228e322c413c45dbff8252db9d11eb556ad9e3e66266"}},{"ruleId":"D15","level":"warning","message":{"text":"Hotspot: go/libraries/doltcore/merge/merge_prolly_rows.go: go/libraries/doltcore/merge/merge_prolly_rows.go changed 5 times in last 90 days, max complexity 64. 1 of those changes was a fix/bug commit, and the other 4 changed it for other reasons \u2014 this file is under both repair and feature pressure. Before the next change lands here, cover the area it touches with tests, then split that area out of the file so the following change is smaller than this one \u2014 a file this often edited pays the complexity back every time."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/merge/merge_prolly_rows.go"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"56296669929e23b90c3040f283e728a957e989167da3983a4b364b5b0c766f94"}},{"ruleId":"D15","level":"warning","message":{"text":"Hotspot: go/libraries/doltcore/sqle/dtables/workspace_table.go: go/libraries/doltcore/sqle/dtables/workspace_table.go changed 10 times in last 90 days, max complexity 32. 1 of those changes was a fix/bug commit, and the other 9 changed it for other reasons \u2014 this file is under both repair and feature pressure. Before the next change lands here, cover the area it touches with tests, then split that area out of the file so the following change is smaller than this one \u2014 a file this often edited pays the complexity back every time."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dtables/workspace_table.go"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"4aee4e8303cd157f5387f8b288f04ef86a3dd663c1ee6f5e58a5f89406386c3b"}},{"ruleId":"D15","level":"warning","message":{"text":"Hotspot: go/store/prolly/tree/json_indexed_document.go: go/store/prolly/tree/json_indexed_document.go changed 12 times in last 90 days, max complexity 26. 4 of those changes were fix/bug commits, and the other 8 changed it for other reasons \u2014 this file is under both repair and feature pressure. Before the next change lands here, cover the area it touches with tests, then split that area out of the file so the following change is smaller than this one \u2014 a file this often edited pays the complexity back every time."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/prolly/tree/json_indexed_document.go"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"f7993577d911fa95aef2d5f6c96b3b9f9d3cfaf6895daea57e63481ca5617c38"}},{"ruleId":"D15","level":"warning","message":{"text":"Hotspot: go/store/blobstore/git_blobstore.go: go/store/blobstore/git_blobstore.go changed 10 times in last 90 days, max complexity 31. 1 of those changes was a fix/bug commit, and the other 9 changed it for other reasons \u2014 this file is under both repair and feature pressure. Before the next change lands here, cover the area it touches with tests, then split that area out of the file so the following change is smaller than this one \u2014 a file this often edited pays the complexity back every time."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/store/blobstore/git_blobstore.go"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"35de4023230783def0ba01f1d4042bb770cba0f501c3f74917d6772e0d353b7e"}},{"ruleId":"D16","level":"note","message":{"text":"Off-boarding risk: anonymized user #1: If anonymized user #1 becomes unavailable, 33 significant file(s) lose their only recent owner: go/libraries/doltcore/sqle/enginetest/dolt_queries_legacy.go, go/store/types/encode_human_readable.go, go/store/prolly/tree/blob_chunk_differ.go, go/libraries/doltcore/creds/creds.go, go/libraries/doltcore/schema/statistic.go, go/libraries/doltcore/table/untyped/xlsx/reader.go, go/libraries/doltcore/schema/typeinfo/decimal.go, go/libraries/doltcore/schema/typeinfo/extended.go (\u002B25 more). Pair on, review, or document these before any departure."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"ed4798146a92297f2dc83ce50b4e131eb7f7c7f10107a5c27224c25c4b0aa434"}},{"ruleId":"D16","level":"note","message":{"text":"Off-boarding risk: anonymized user #2: If anonymized user #2 becomes unavailable, 22 significant file(s) lose their only recent owner: integration-tests/go-sql-server-driver/testdef.go, go/libraries/doltcore/dtestutils/sql_server_driver/cmd.go, go/libraries/doltcore/remotestorage/internal/reliable/http.go, go/store/datas/pull/pull_chunk_tracker.go, go/store/nbs/manifest.go, go/libraries/doltcore/sqle/cluster/mysqldb_persister.go, go/store/nbs/dynamo_manifest.go, go/libraries/doltcore/sqle/cluster/branch_control_replica.go (\u002B14 more). Pair on, review, or document these before any departure."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"27f88bffc486e8ea8a63426561a72674c3ca4772c81c128cd2d1441efd207a6f"}},{"ruleId":"D16","level":"note","message":{"text":"Off-boarding risk: anonymized user #3: If anonymized user #3 becomes unavailable, 14 significant file(s) lose their only recent owner: go/cmd/dolt/commands/fsck.go, go/libraries/doltcore/sqle/enginetest/dolt_queries_cherry_pick.go, go/libraries/doltcore/sqle/enginetest/dolt_queries_commit_verification.go, go/store/nbs/journal_inspect.go, go/libraries/doltcore/dbfactory/ssh.go, go/cmd/dolt/commands/transfer.go, go/store/nbs/archive_inspect.go, go/libraries/doltcore/commitgraph/commitgraph.go (\u002B6 more). Pair on, review, or document these before any departure."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"bde85e47a21cb23a7c4939d6e49f0957545b3f9f5f8f16c3a4db6728705f179e"}},{"ruleId":"D16","level":"note","message":{"text":"Off-boarding risk: anonymized user #4: If anonymized user #4 becomes unavailable, 9 significant file(s) lose their only recent owner: go/store/blobstore/git_blobstore.go, go/cmd/dolt/commands/ci/dolt_test_step_run.go, go/store/testutils/gitrepo/gitrepo.go, go/libraries/doltcore/env/git_remote_url.go, go/libraries/doltcore/servercfg/env_interpolate.go, go/libraries/doltcore/table/typed/json/jsonl_reader.go, go/libraries/doltcore/sqle/dprocedures/dolt_clone.go, go/cmd/dolt/commands/ci/dolt_test_step_view.go (\u002B1 more). Pair on, review, or document these before any departure."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"330f64fcef1998b3b442f4ab459ef82d754ef911691988431d846553f0317355"}},{"ruleId":"D16","level":"note","message":{"text":"Off-boarding risk: anonymized user #5: If anonymized user #5 becomes unavailable, 7 significant file(s) lose their only recent owner: go/libraries/doltcore/sqle/enginetest/dolt_queries_procedures.go, go/libraries/doltcore/table/untyped/csv/writer.go, go/libraries/doltcore/sqle/enginetest/dolt_queries_foreign_keys.go, go/store/nbs/spooling_table_reader.go, go/cmd/dolt/cli/prompt/resolver.go, go/libraries/doltcore/sqle/adapters/table.go, go/libraries/doltcore/sqle/enginetest/dolt_queries_dtables.go. Pair on, review, or document these before any departure."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"0ef038740a99b72183227b7dd1e2b14be5e2b08203dc059a6c70766c4e726c13"}},{"ruleId":"D16","level":"note","message":{"text":"Off-boarding risk: anonymized user #6: If anonymized user #6 becomes unavailable, 5 significant file(s) lose their only recent owner: go/store/prolly/tree/json_diff_test_cases.go, go/libraries/doltcore/sqle/dtables/diff_secondary_iter.go, go/store/prolly/tree/json_scanner.go, go/store/prolly/tree/json_cursor.go, go/store/prolly/tree/json_diff.go. Pair on, review, or document these before any departure."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"014c5602429f28fedc024ed6b94db2abe68318db080a48897603648e1e774ec6"}},{"ruleId":"D16","level":"note","message":{"text":"Off-boarding risk: anonymized user #7: If anonymized user #7 becomes unavailable, 3 significant file(s) lose their only recent owner: go/libraries/doltcore/sqle/binlogreplication/binlog_producer.go, go/libraries/doltcore/sqle/binlogreplication/binlog_primary_streamer.go, go/libraries/doltcore/sqle/binlogreplication/binlog_primary_controller.go. Pair on, review, or document these before any departure."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"638681ada9846f317f29df6c2e50c2b3df38f864b049e6a272b354b4ece5a10c"}},{"ruleId":"D16","level":"note","message":{"text":"Off-boarding risk: anonymized user #8: If anonymized user #8 becomes unavailable, 3 significant file(s) lose their only recent owner: go/store/blobstore/az_blobstore.go, go/store/blobstore/az_blobstore_interfaces.go, go/cmd/dolt/commands/sqlserver/metrics_auth.go. Pair on, review, or document these before any departure."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"ffe2946df0013b7ff7ccce137fb50c5711e778c1f1952d6abc2323dde8a3dfc5"}},{"ruleId":"D16","level":"note","message":{"text":"Further sole-owners (lower concentration): 5 other contributor(s) are each the sole owner of a small amount of code below the off-boarding threshold \u2014 folded into the bus-factor score and metrics (102 single-owned of 786 analysed files in total, counted over production source files of roughly 100 lines or more, excluding tests, vendored, generated and example/demo trees, largest first). They are anonymized user #9 (2 file(s)), anonymized user #10 (1 file(s)), anonymized user #11 (1 file(s)), anonymized user #12 (1 file(s)), anonymized user #13 (1 file(s)) \u2014 spread or document their files in the same way, at lower priority than the named off-boarding risks above."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"6eac528f2429e724e1a97ed868f79eefbcf1888dab4af9a9e673429369bb5b2f"}},{"ruleId":"D20","level":"note","message":{"text":"No ADRs found: No ADRs found at common paths; consider documenting architectural decisions in Docs/ADL/ or similar."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"d2bea044ff79d7d275f5a91a6e2f548586178eaf480274c33960ad020c854631"}},{"ruleId":"D28","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"9b0c083273a4bf523935a339fe5852d8b4ca89da65ef564e11f9a1a080ba8fa5"}},{"ruleId":"D28","level":"note","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"3cdfd7beb31b791ae18dcb425e21eb157c842e7bbcd522cc330573c1a6538db1"}},{"ruleId":"D30","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"49301d60d020e3e944038b423f9848e6f415e2b11599103304aadadad76883ae"}},{"ruleId":"D30","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"7cf85abffe732f2645ef95a624d6badc26f0263616284d6a4cc46ca8e983031d"}},{"ruleId":"D30","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"b96b7173c4377d5bea4d6fd7b52323631c631c44172b743bec6f266c10a4e538"}},{"ruleId":"D30","level":"warning","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"aa6b4e1269919ef2e83800163c3015296e9a077d7bbc4d3b06c0eb382a3dff8a"}},{"ruleId":"D31","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"f9deb0b3e9568df1171bacf908174d514cb7e71041f1c1975b38340d1bde8fc0"}},{"ruleId":"D31","level":"warning","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"be1c7daa6e7d9b23792fbba01c891c1837e39ae810ec4e9a43761ae749e5e8c1"}},{"ruleId":"D31","level":"warning","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"3770ede0bc725241b5959127b5dd42bb1edd74899a769badb3595f9b3288e528"}},{"ruleId":"D32","level":"warning","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"6de07f8123eb5f87920ccb6e6d0389cb7541e8b3d23b81991192339b4bc0a472"}},{"ruleId":"D32","level":"warning","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"45291a4322c1e63200894f9db619f4d00b1e22acea2a463d470012e01f37163e"}},{"ruleId":"D34","level":"note","message":{"text":"Further orphaned files (smaller): 31 of 786 analysed file(s) have no living knowledge left \u2014 their last meaningful change has decayed away, so if one breaks, no one currently understands it (counted over production source files of roughly 100 lines or more, excluding tests, vendored, generated and example/demo trees, largest first). None is large enough to earn a read-through of its own, so this row stands in for the per-file rows rather than raising one each \u2014 largest first: go/performance/import_benchmarker/testdef.go, go/libraries/doltcore/table/untyped/csv/reader.go, go/performance/sysbench/testdef.go (and 28 more). Attach the read to the next change that touches one of them: have a second person review that change, and leave behind a short comment or test recording what the file is for, so the knowledge comes back at the cost of a change you were making anyway."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"ce861fd78f6935114d3a342cb90ad25870f984e1042954fcbbe27c0e23be3658"}},{"ruleId":"D35","level":"warning","message":{"text":"Change coupling: dolt_clone.go \u2194 dolt_remote.go: \u0060go/libraries/doltcore/sqle/dprocedures/dolt_clone.go\u0060 and \u0060go/libraries/doltcore/sqle/dprocedures/dolt_remote.go\u0060 change together 64% of the time (7 of the 11 commits that touched whichever of the two files changed less often, counting a file under its earlier names as well). They sit in the same directory, and in this ecosystem sibling files there normally share one namespace/package \u2014 so a direct reference between them needs no import and this pass cannot see whether one exists. Read the pair before acting: if one file only DECLARES what the other consumes (a constants/types file beside its user), the co-change is definitional and the question is whether the split earns its keep; if they duplicate structure, extract the common part into a shared function or type they both call; if neither holds, the coupling is hidden and worth breaking."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dprocedures/dolt_clone.go"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"9e9be4fd77915d66ef80ef6928933aa00edac1157438293727a0cb606a7879a4"}},{"ruleId":"D35","level":"warning","message":{"text":"Change coupling: dolt_cherry_pick.go \u2194 dolt_rebase.go: \u0060go/libraries/doltcore/sqle/dprocedures/dolt_cherry_pick.go\u0060 and \u0060go/libraries/doltcore/sqle/dprocedures/dolt_rebase.go\u0060 change together 58% of the time (11 of the 19 commits that touched whichever of the two files changed less often, counting a file under its earlier names as well). They sit in the same directory, and in this ecosystem sibling files there normally share one namespace/package \u2014 so a direct reference between them needs no import and this pass cannot see whether one exists. Read the pair before acting: if one file only DECLARES what the other consumes (a constants/types file beside its user), the co-change is definitional and the question is whether the split earns its keep; if they duplicate structure, extract the common part into a shared function or type they both call; if neither holds, the coupling is hidden and worth breaking."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"go/libraries/doltcore/sqle/dprocedures/dolt_cherry_pick.go"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"88fa3e90f341f8506c287f141b0118751db7693ae2074b2b55e14c4a119dedd8"}},{"ruleId":"D36","level":"note","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"1b213f6eedd4b140d0bc37bdf1496f72811a643f34064f12518b32e9e83bcfc7"}},{"ruleId":"D36","level":"note","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"0e17f71490e4d120a48b2b2881ab866c93b272bef2febb673a3e8e42b2c288ab"}},{"ruleId":"D36","level":"warning","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"90f83b4fa27db32740afe9540c905f3c0499caed87f61049a8a903ecc95b41c3"}},{"ruleId":"D36","level":"warning","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"0752d0df7434000fcabf1048e2de30a7a1a8b982b3db9a19898c4dec199856b4"}},{"ruleId":"D36","level":"warning","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"d657599f6f99da1927d3377533dfc0888b34c4d84aa7d5579841fd72d0e39bce"}},{"ruleId":"D38","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"70e9bf29996b8afa122c13933220f94a4f29e1d8761853ca299c570cd61d8213"}},{"ruleId":"D38","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"24f649ba98095a4f2c5044555b5af9c2547a576093e312a00ac1d0e2bd86d415"}},{"ruleId":"D38","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"8698d51bedd484eeaccf12e7f3f038730f06f445514cddc360564c159a2671a7"}},{"ruleId":"D38","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"0f8b4d2f9f7add6977548d072ae60ecf3a91f0428286e533ff2aa459ba4a0ef7"}},{"ruleId":"D38","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"729df6dd1d1eefac8b21fa228aefd8548b8ee787d216f559628e3826a7ebb433"}},{"ruleId":"D38","level":"warning","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"707e291b0e6907ba588e71a8f9091f62bdb703246e77c48e46ef5c2d2e906a5d"}},{"ruleId":"D38","level":"warning","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"75df5506964567176b3ce35dca544434d3508a5f72dea49f8555aa99ac5beff3"}},{"ruleId":"D38","level":"warning","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"2049e175bfe6282b562ef4a27692ac8551e5bdb43db592368b6201b5085c7a99"}},{"ruleId":"D38","level":"warning","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"74263078f6bc5b103c8b031b42781cfdb27dfd56ad79f3aa2fc328617a3d45e0"}},{"ruleId":"D38","level":"warning","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"f1de74871479c332f7309ad949f45d2067d0d8da1be32782ee0bc01227e9673e"}},{"ruleId":"D38","level":"warning","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"6b59cc1d7c5312cdda463a155ca1bc6bd85189d7a45294ac9a998e38d326d800"}},{"ruleId":"D38","level":"warning","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"4fa29245e58945d5dee37cfe355a48e2b4b448cbf2097f67f69f07ed6b32c162"}}],"taxonomies":[{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d","organization":"MITRE","informationUri":"https://cwe.mitre.org/","isComprehensive":false,"shortDescription":{"text":"The MITRE Common Weakness Enumeration (CWE)."},"taxa":[{"id":"CWE-1032","guid":"5f21e517-68aa-a650-9a25-5771ef024637","name":"OWASP Top Ten \u2014 Security Misconfiguration category","shortDescription":{"text":"OWASP Top Ten \u2014 Security Misconfiguration category"},"helpUri":"https://cwe.mitre.org/data/definitions/1032.html"},{"id":"CWE-1059","guid":"a2381a08-60f6-9554-a8b8-f3018cfaaca5","name":"Insufficient Technical Documentation","shortDescription":{"text":"Insufficient Technical Documentation"},"helpUri":"https://cwe.mitre.org/data/definitions/1059.html"},{"id":"CWE-1357","guid":"e4d2e772-757e-0a5c-bd7d-77052949d866","name":"Reliance on Insufficiently Trustworthy Component","shortDescription":{"text":"Reliance on Insufficiently Trustworthy Component"},"helpUri":"https://cwe.mitre.org/data/definitions/1357.html"},{"id":"CWE-1395","guid":"800e09e7-c11a-8654-9fa6-86f398995fed","name":"Dependency on Vulnerable Third-Party Component","shortDescription":{"text":"Dependency on Vulnerable Third-Party Component"},"helpUri":"https://cwe.mitre.org/data/definitions/1395.html"},{"id":"CWE-16","guid":"659db3ea-affc-8453-8add-c1218fbfcb92","name":"Configuration","shortDescription":{"text":"Configuration"},"helpUri":"https://cwe.mitre.org/data/definitions/16.html"},{"id":"CWE-200","guid":"b0ce3b1d-7a29-fe50-8aab-9aba899d2988","name":"Exposure of Sensitive Information to an Unauthorized Actor","shortDescription":{"text":"Exposure of Sensitive Information to an Unauthorized Actor"},"helpUri":"https://cwe.mitre.org/data/definitions/200.html"},{"id":"CWE-259","guid":"ae9ad959-fbb6-9d5e-892d-3dca66da0b69","name":"Use of Hard-coded Password","shortDescription":{"text":"Use of Hard-coded Password"},"helpUri":"https://cwe.mitre.org/data/definitions/259.html"},{"id":"CWE-312","guid":"96724ece-b0b2-a45c-83f9-0869fa3f6bea","name":"Cleartext Storage of Sensitive Information","shortDescription":{"text":"Cleartext Storage of Sensitive Information"},"helpUri":"https://cwe.mitre.org/data/definitions/312.html"},{"id":"CWE-359","guid":"b7dfe5b0-0351-645b-a311-b936102c2929","name":"Exposure of Private Personal Information to an Unauthorized Actor","shortDescription":{"text":"Exposure of Private Personal Information to an Unauthorized Actor"},"helpUri":"https://cwe.mitre.org/data/definitions/359.html"},{"id":"CWE-494","guid":"b8a65e0d-e459-4a55-a931-fc1136482375","name":"Download of Code Without Integrity Check","shortDescription":{"text":"Download of Code Without Integrity Check"},"helpUri":"https://cwe.mitre.org/data/definitions/494.html"},{"id":"CWE-732","guid":"1da27e8f-b330-7650-ab63-bd61953eae5d","name":"Incorrect Permission Assignment for Critical Resource","shortDescription":{"text":"Incorrect Permission Assignment for Critical Resource"},"helpUri":"https://cwe.mitre.org/data/definitions/732.html"},{"id":"CWE-77","guid":"332c8ade-6612-9f56-a06b-d8d90b1a8750","name":"Command Injection","shortDescription":{"text":"Command Injection"},"helpUri":"https://cwe.mitre.org/data/definitions/77.html"},{"id":"CWE-78","guid":"2e31ceaf-c7ae-2e5e-9661-cfb1362789cf","name":"OS Command Injection","shortDescription":{"text":"OS Command Injection"},"helpUri":"https://cwe.mitre.org/data/definitions/78.html"},{"id":"CWE-79","guid":"fd45580b-e8c4-fc5e-8c2f-aa8fab0b4dbf","name":"Cross-site Scripting (XSS)","shortDescription":{"text":"Cross-site Scripting (XSS)"},"helpUri":"https://cwe.mitre.org/data/definitions/79.html"},{"id":"CWE-798","guid":"5e8f057d-fee3-995a-a0cb-9fc5b0d174d1","name":"Use of Hard-coded Credentials","shortDescription":{"text":"Use of Hard-coded Credentials"},"helpUri":"https://cwe.mitre.org/data/definitions/798.html"},{"id":"CWE-89","guid":"6d08fdad-37eb-c150-bbf0-d7d946863407","name":"SQL Injection","shortDescription":{"text":"SQL Injection"},"helpUri":"https://cwe.mitre.org/data/definitions/89.html"},{"id":"CWE-937","guid":"16f316ae-415c-b354-a59b-1f7905f756e9","name":"Using Components with Known Vulnerabilities","shortDescription":{"text":"Using Components with Known Vulnerabilities"},"helpUri":"https://cwe.mitre.org/data/definitions/937.html"},{"id":"CWE-94","guid":"75e7f50c-6c2f-dd52-bf40-bf6c52b861fd","name":"Code Injection","shortDescription":{"text":"Code Injection"},"helpUri":"https://cwe.mitre.org/data/definitions/94.html"}]}],"properties":{"codehealthPublication":{"public":true,"notice":"This is the PUBLIC form of this artifact. Findings are listed in full, but the details of SECURITY findings \u2014 which rule fired, in which file, on which line, and how to fix it \u2014 are deliberately withheld, and any secret-scanner results are excluded entirely. Where detail is absent here it was REMOVED FOR PUBLICATION; it is not missing from the analysis. The complete artifact is available from the repository owner.","securityFindingsRedacted":28,"secretScannerRunsExcluded":0}},"redactionTokens":["A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."]}]}