Skip to content

Commit 3c8da30

Browse files
Merge branch 'master' of github.com:JSQLParser/JSqlParser
2 parents 84709a9 + 0949df9 commit 3c8da30

14 files changed

Lines changed: 152 additions & 29 deletions

File tree

README.md

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,9 +22,7 @@ Please provide feedback on:
2222
* API changes: extend visitor with return values (https://github.com/JSQLParser/JSqlParser/issues/901)
2323

2424
## News
25-
* Released version **4.2** of JSqlParser
26-
* Released version **4.1** of JSqlParser
27-
* Released version **4.0** of JSqlParser
25+
* Released version **4.3** of JSqlParser
2826
* The array parsing is the default behaviour. Square bracket quotation has to be enabled using
2927
a parser flag (**CCJSqlParser.withSquareBracketQuotation**).
3028
* due to an API change the version will be 3.0
@@ -58,6 +56,9 @@ Also I would like to know about needed examples or documentation stuff.
5856

5957
* support for **timestamp with local time zone**
6058
* improved support for quoted identifiers in casts
59+
* support for **top with ties**
60+
* support for operators **<->** and **<#>**
61+
* improvement of test methods
6162

6263
Additionally, we have fixed many errors and improved the code quality and the test coverage.
6364

build.gradle

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -29,19 +29,19 @@ repositories {
2929
}
3030

3131
dependencies {
32-
testImplementation 'commons-io:commons-io:2.6'
33-
testImplementation 'junit:junit:4.13.1'
34-
testImplementation 'org.mockito:mockito-core:2.28.2'
35-
testImplementation 'org.assertj:assertj-core:3.16.1'
36-
testImplementation 'org.apache.commons:commons-lang3:3.10'
37-
testImplementation 'com.h2database:h2:1.4.200'
32+
testImplementation 'commons-io:commons-io:2.11.0'
33+
testImplementation 'junit:junit:4.13.2'
34+
testImplementation 'org.mockito:mockito-core:4.3.1'
35+
testImplementation 'org.assertj:assertj-core:3.22.0'
36+
testImplementation 'org.apache.commons:commons-lang3:3.12.0'
37+
testImplementation 'com.h2database:h2:2.1.210'
3838

3939
// for JaCoCo Reports
40-
testImplementation 'org.junit.jupiter:junit-jupiter-api:5.7.1'
40+
testImplementation 'org.junit.jupiter:junit-jupiter-api:5.8.2'
4141
testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine'
4242

4343
// https://mvnrepository.com/artifact/org.mockito/mockito-junit-jupiter
44-
testImplementation 'org.mockito:mockito-junit-jupiter:4.1.0'
44+
testImplementation 'org.mockito:mockito-junit-jupiter:4.3.1'
4545

4646
// enforce latest version of JavaCC
4747
javacc 'net.java.dev.javacc:javacc:7.0.10'
@@ -115,7 +115,7 @@ jacocoTestCoverageVerification {
115115
limit {
116116
counter = 'LINE'
117117
value = 'MISSEDCOUNT'
118-
maximum = 5500
118+
maximum = 5513
119119
}
120120
excludes = [
121121
'net.sf.jsqlparser.util.validation.*',

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,7 @@
114114
<configuration>
115115
<rulesets>
116116
<!-- Custom local file system rule set -->
117-
<ruleset>${basedir}/ruleset.xml</ruleset>
117+
<ruleset>${project.basedir}/ruleset.xml</ruleset>
118118
</rulesets>
119119
<excludes>
120120
<exclude>**/*Bean.java</exclude>

src/main/java/net/sf/jsqlparser/expression/ExpressionVisitor.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -188,4 +188,6 @@ public interface ExpressionVisitor {
188188
void visit(AllValue allValue);
189189

190190
void visit(IsDistinctExpression isDistinctExpression);
191+
192+
void visit(GeometryDistance geometryDistance);
191193
}

src/main/java/net/sf/jsqlparser/expression/ExpressionVisitorAdapter.java

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -492,12 +492,10 @@ public void visit(UnPivot unpivot) {
492492

493493
@Override
494494
public void visit(AllColumns allColumns) {
495-
allColumns.accept((ExpressionVisitor) this);
496495
}
497496

498497
@Override
499498
public void visit(AllTableColumns allTableColumns) {
500-
allTableColumns.accept((ExpressionVisitor) this);
501499
}
502500

503501
@Override
@@ -634,7 +632,12 @@ public void visit(ConnectByRootOperator connectByRootOperator) {
634632
public void visit(OracleNamedFunctionParameter oracleNamedFunctionParameter) {
635633
oracleNamedFunctionParameter.getExpression().accept(this);
636634
}
637-
635+
636+
@Override
637+
public void visit(GeometryDistance geometryDistance) {
638+
visitBinaryExpression(geometryDistance);
639+
}
640+
638641
public void visit(ColumnDefinition columnDefinition) {
639642
columnDefinition.accept(this);
640643
}
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
/*-
2+
* #%L
3+
* JSQLParser library
4+
* %%
5+
* Copyright (C) 2004 - 2022 JSQLParser
6+
* %%
7+
* Dual licensed under GNU LGPL 2.1 or Apache License 2.0
8+
* #L%
9+
*/
10+
package net.sf.jsqlparser.expression.operators.relational;
11+
12+
import net.sf.jsqlparser.expression.ExpressionVisitor;
13+
14+
public class GeometryDistance extends ComparisonOperator {
15+
16+
public GeometryDistance() {
17+
super("<->");
18+
}
19+
20+
public GeometryDistance(String operator) {
21+
super(operator);
22+
}
23+
24+
@Override
25+
public void accept(ExpressionVisitor expressionVisitor) {
26+
expressionVisitor.visit(this);
27+
}
28+
}

src/main/java/net/sf/jsqlparser/statement/select/Top.java

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ public class Top {
1515

1616
private boolean hasParenthesis = false;
1717
private boolean isPercentage = false;
18+
private boolean isWithTies = false;
1819
private Expression expression;
1920

2021
public Expression getExpression() {
@@ -41,6 +42,14 @@ public void setPercentage(boolean percentage) {
4142
this.isPercentage = percentage;
4243
}
4344

45+
public void setWithTies(boolean withTies) {
46+
this.isWithTies = withTies;
47+
}
48+
49+
public boolean isWithTies() {
50+
return isWithTies;
51+
}
52+
4453
@Override
4554
public String toString() {
4655
String result = "TOP ";
@@ -59,6 +68,10 @@ public String toString() {
5968
result += " PERCENT";
6069
}
6170

71+
if (isWithTies) {
72+
result += " WITH TIES";
73+
}
74+
6275
return result;
6376
}
6477

src/main/java/net/sf/jsqlparser/util/TablesNamesFinder.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1031,4 +1031,9 @@ public void visit(PurgeStatement purgeStatement) {
10311031
public void visit(AlterSystemStatement alterSystemStatement) {
10321032
// no tables involved in this statement
10331033
}
1034+
1035+
@Override
1036+
public void visit(GeometryDistance geometryDistance) {
1037+
visitBinaryExpression(geometryDistance);
1038+
}
10341039
}

src/main/java/net/sf/jsqlparser/util/deparser/ExpressionDeParser.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@
3434
import net.sf.jsqlparser.expression.operators.relational.ExistsExpression;
3535
import net.sf.jsqlparser.expression.operators.relational.ExpressionList;
3636
import net.sf.jsqlparser.expression.operators.relational.FullTextSearch;
37+
import net.sf.jsqlparser.expression.operators.relational.GeometryDistance;
3738
import net.sf.jsqlparser.expression.operators.relational.GreaterThan;
3839
import net.sf.jsqlparser.expression.operators.relational.GreaterThanEquals;
3940
import net.sf.jsqlparser.expression.operators.relational.InExpression;
@@ -996,4 +997,9 @@ public void visit(IsDistinctExpression isDistinctExpression) {
996997
isDistinctExpression.getStringExpression() +
997998
isDistinctExpression.getRightExpression());
998999
}
1000+
1001+
@Override
1002+
public void visit(GeometryDistance geometryDistance) {
1003+
visitOldOracleJoinBinaryExpression(geometryDistance, " " + geometryDistance.getStringExpression() + " ");
1004+
}
9991005
}

src/main/java/net/sf/jsqlparser/util/validation/validator/ExpressionValidator.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
import net.sf.jsqlparser.expression.operators.relational.ExistsExpression;
3131
import net.sf.jsqlparser.expression.operators.relational.ExpressionList;
3232
import net.sf.jsqlparser.expression.operators.relational.FullTextSearch;
33+
import net.sf.jsqlparser.expression.operators.relational.GeometryDistance;
3334
import net.sf.jsqlparser.expression.operators.relational.GreaterThan;
3435
import net.sf.jsqlparser.expression.operators.relational.GreaterThanEquals;
3536
import net.sf.jsqlparser.expression.operators.relational.InExpression;
@@ -586,4 +587,8 @@ public void visit(IsDistinctExpression isDistinctExpression) {
586587
isDistinctExpression.getRightExpression().accept(this);
587588
}
588589

590+
@Override
591+
public void visit(GeometryDistance geometryDistance) {
592+
visitOldOracleJoinBinaryExpression(geometryDistance, " <-> ");
593+
}
589594
}

0 commit comments

Comments
 (0)