opensearch-project / sql
Duplication

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

Intro
  • For duplication, we look at places in code where there are 6 or more lines of code that are exactly the same.
  • Before duplication is calculated, the code is cleaned to remove empty lines, comments, and frequently duplicated constructs such as imports.
  • You should aim at having as little as possible (<5%) of duplicated code as high-level of duplication can lead to maintenance difficulties, poor factoring, and logical contradictions.
Learn more...
Duplication Overall
  • 8% duplication:
    • 71,552 cleaned lines of cleaned code (without empty lines, comments, and frequently duplicated constructs such as imports)
    • 6,073 duplicated lines
  • 644 duplicates
system8% (6,073 lines)
Duplication per Extension
c12% (2,069 lines)
java4% (1,601 lines)
g432% (635 lines)
h5% (521 lines)
cpp10% (381 lines)
tsx16% (337 lines)
TXT93% (298 lines)
html40% (122 lines)
ts12% (53 lines)
hpp4% (44 lines)
ps19% (12 lines)
Duplication per Component (primary)
sql-odbc9% (3,149 lines)
legacy5% (970 lines)
workbench18% (539 lines)
core5% (437 lines)
sql26% (358 lines)
sql-cli21% (149 lines)
opensearch3% (103 lines)
ppl8% (97 lines)
sql-jdbc1% (96 lines)
plugin17% (68 lines)
common39% (60 lines)
protocol13% (47 lines)
bi-connectors0% (0 lines)

Duplication Between Components (50+ lines)

G legacy legacy sql sql legacy--sql 521 plugin plugin legacy--plugin 136 opensearch opensearch legacy--opensearch 84 sql-cli sql-cli workbench workbench sql-cli--workbench 298 ppl ppl ppl--sql 170 common common common--legacy 120

Download: SVG DOT (open online Graphviz editor)

Open 3D force graph...

Show more details on duplication between components...
Longest Duplicates
The list of 20 longest duplicates.
See data for all 644 duplicates...
Size#FoldersFilesLinesCode
149 x 2 sql-cli
workbench
TXT
LICENSE.TXT
LICENSE.TXT
2:175 (88%)
2:175 (100%)
view
64 x 2 sql-odbc/src/sqlodbc
sql-odbc/src/sqlodbc
odbcapi30w.c
odbcapiw.c
219:293 (20%)
891:965 (7%)
view
50 x 2 sql-odbc/src/TestRunner
sql-odbc/src/TestRunner
mako_template.html
mako_template.html
163:225 (16%)
237:299 (16%)
view
45 x 2 legacy/src/main/antlr
sql/src/main/antlr
g4
OpenSearchLegacySqlLexer.g4
OpenSearchSQLLexer.g4
250:309 (15%)
326:385 (12%)
view
43 x 2 legacy/src/main/antlr
sql/src/main/antlr
g4
OpenSearchLegacySqlLexer.g4
OpenSearchSQLLexer.g4
205:247 (14%)
261:303 (12%)
view
34 x 2 common/src/main/java/org...search/sql/common/antlr
legacy/src/main/java/org...sql/legacy/antlr/syntax
CaseInsensitiveCharStream.java
CaseInsensitiveCharStream.java
17:72 (100%)
16:71 (100%)
view
31 x 2 workbench/public/components/PPLPage
workbench/public/components/SQLPage
PPLPage.tsx
SQLPage.tsx
72:108 (25%)
75:111 (24%)
view
29 x 2 workbench/public/components/Main
workbench/public/components/Main
main.tsx
main.tsx
655:683 (4%)
720:748 (4%)
view
25 x 2 sql/src/main/antlr
sql/src/main/antlr
g4
OpenSearchSQLIdentifierParser.g4
OpenSearchSQLLexer.g4
1:29 (48%)
1:29 (7%)
view
25 x 2 legacy/src/main/antlr
legacy/src/main/antlr
g4
OpenSearchLegacySqlLexer.g4
OpenSearchLegacySqlParser.g4
1:29 (8%)
1:29 (6%)
view
25 x 2 legacy/src/main/antlr
sql/src/main/antlr
g4
OpenSearchLegacySqlParser.g4
OpenSearchSQLParser.g4
1:29 (6%)
1:29 (7%)
view
25 x 2 sql/src/main/antlr
sql/src/main/antlr
g4
OpenSearchSQLIdentifierParser.g4
OpenSearchSQLParser.g4
1:29 (48%)
1:29 (7%)
view
25 x 2 legacy/src/main/antlr
sql/src/main/antlr
g4
OpenSearchLegacySqlLexer.g4
OpenSearchSQLParser.g4
1:29 (8%)
1:29 (7%)
view
25 x 2 legacy/src/main/antlr
sql/src/main/antlr
g4
OpenSearchLegacySqlParser.g4
OpenSearchSQLIdentifierParser.g4
1:29 (6%)
1:29 (48%)
view
25 x 2 legacy/src/main/antlr
sql/src/main/antlr
g4
OpenSearchLegacySqlLexer.g4
OpenSearchSQLLexer.g4
1:29 (8%)
1:29 (7%)
view
25 x 2 sql/src/main/antlr
sql/src/main/antlr
g4
OpenSearchSQLLexer.g4
OpenSearchSQLParser.g4
1:29 (7%)
1:29 (7%)
view
25 x 2 legacy/src/main/antlr
sql/src/main/antlr
g4
OpenSearchLegacySqlLexer.g4
OpenSearchSQLIdentifierParser.g4
1:29 (8%)
1:29 (48%)
view
25 x 2 legacy/src/main/antlr
sql/src/main/antlr
g4
OpenSearchLegacySqlParser.g4
OpenSearchSQLLexer.g4
1:29 (6%)
1:29 (7%)
view
24 x 2 sql-odbc/src/sqlodbc
sql-odbc/src/sqlodbc
opensearch_communication.cpp
opensearch_communication.cpp
865:890 (3%)
975:1000 (3%)
view
24 x 2 sql-odbc/src/sqlodbc
sql-odbc/src/sqlodbc
opensearch_communication.cpp
opensearch_communication.cpp
865:890 (3%)
919:944 (3%)
view
Duplicated Units
The list of top 20 duplicated units.
See data for all 25 unit duplicates...
Size#FoldersFilesLinesCode
49 x 2 sql-odbc/src/sqlodbc
sql-odbc/src/sqlodbc
opensearch_communication.cpp
opensearch_communication.cpp
837:891 
893:945 
view
18 x 2 legacy/src/main/java/org.../legacy/executor/cursor
legacy/src/main/java/org.../legacy/executor/cursor
CursorCloseExecutor.java
CursorResultExecutor.java
39:57 
47:65 
view
17 x 2 legacy/src/main/java/org...rch/sql/legacy/executor
legacy/src/main/java/org...ql/legacy/executor/join
ElasticResultHandler.java
ElasticJoinExecutor.java
20:38 
158:176 
view
12 x 2 legacy/src/main/java/org...ql/legacy/rewriter/join
legacy/src/main/java/org...l/legacy/rewriter/alias
JoinRewriteRule.java
TableAliasPrefixRemoveRule.java
162:176 
87:100 
view
10 x 2 sql/src/main/java/org/opensearch/sql/sql/parser
ppl/src/main/java/org/opensearch/sql/ppl/parser
AstExpressionBuilder.java
AstExpressionBuilder.java
379:391 
316:328 
view
10 x 2 plugin/src/main/java/org...nsearch/sql/plugin/rest
legacy/src/main/java/org...earch/sql/legacy/plugin
RestPPLStatsAction.java
RestSqlStatsAction.java
68:81 
68:81 
view
10 x 2 opensearch/src/main/java...ensearch/response/error
legacy/src/main/java/org.../legacy/executor/format
ErrorMessageFactory.java
ErrorMessageFactory.java
32:42 
33:43 
view
9 x 2 common/src/main/java/org...search/sql/common/antlr
legacy/src/main/java/org...sql/legacy/antlr/syntax
SyntaxAnalysisErrorListener.java
SyntaxAnalysisErrorListener.java
58:67 
53:62 
view
9 x 3 core/src/main/java/org/opensearch/sql/data/model
core/src/main/java/org/opensearch/sql/data/model
core/src/main/java/org/opensearch/sql/data/model
ExprDatetimeValue.java
ExprTimeValue.java
ExprTimestampValue.java
34:43 
31:40 
45:54 
view
9 x 2 legacy/src/main/java/org...search/sql/legacy/query
legacy/src/main/java/org...search/sql/legacy/query
DefaultQueryAction.java
AggregationQueryAction.java
205:215 
452:462 
view
8 x 2 sql/src/main/java/org/opensearch/sql/sql/domain
ppl/src/main/java/org/opensearch/sql/ppl/domain
SQLQueryRequest.java
PPLQueryRequest.java
105:113 
63:71 
view
8 x 2 legacy/src/main/java/org.../legacy/executor/format
legacy/src/main/java/org...earch/sql/legacy/cursor
Protocol.java
DefaultCursor.java
216:225 
122:130 
view
7 x 2 core/src/main/java/org/o...planner/physical/bucket
core/src/main/java/org/o...planner/physical/bucket
Rounding.java
Rounding.java
451:458 
501:508 
view
7 x 2 core/src/main/java/org/opensearch/sql/analysis
core/src/main/java/org/opensearch/sql/analysis
NamedExpressionAnalyzer.java
SelectExpressionAnalyzer.java
44:51 
112:119 
view
7 x 2 legacy/src/main/java/org.../legacy/executor/format
legacy/src/main/java/org.../legacy/executor/format
DescribeResultSet.java
ShowResultSet.java
38:46 
29:37 
view
6 x 2 sql-odbc/libraries/rapidjson/include/rapidjson
sql-odbc/libraries/rapidjson/include/rapidjson
document.h
document.h
2341:2347 
2349:2355 
view
6 x 2 plugin/src/main/java/org...nsearch/sql/plugin/rest
legacy/src/main/java/org...earch/sql/legacy/plugin
RestPPLQueryAction.java
RestSQLQueryAction.java
231:237 
182:188 
view
6 x 3 common/src/main/java/org...search/sql/common/utils
opensearch/src/main/java...h/sql/opensearch/client
legacy/src/main/java/org...search/sql/legacy/utils
LogUtils.java
OpenSearchNodeClient.java
LogUtils.java
52:58 
174:180 
57:64 
view
6 x 2 common/src/main/java/org...search/sql/common/antlr
legacy/src/main/java/org...sql/legacy/antlr/syntax
CaseInsensitiveCharStream.java
CaseInsensitiveCharStream.java
37:43 
36:42 
view
6 x 2 opensearch/src/main/java...ge/script/filter/lucene
opensearch/src/main/java...ge/script/filter/lucene
TermQuery.java
RangeQuery.java
26:32 
51:57 
view