Skip to content

Commit 7ea63d1

Browse files
committed
- ExtractExpression integrated
- Tests ExtractExpression started - Function problem found
1 parent 7a50b96 commit 7ea63d1

File tree

6 files changed

+1416
-1298
lines changed

6 files changed

+1416
-1298
lines changed
Lines changed: 137 additions & 135 deletions
Original file line numberDiff line numberDiff line change
@@ -1,135 +1,137 @@
1-
/* ================================================================
2-
* JSQLParser : java based sql parser
3-
* ================================================================
4-
*
5-
* Project Info: http://jsqlparser.sourceforge.net
6-
* Project Lead: Leonardo Francalanci (leoonardoo@yahoo.it);
7-
*
8-
* (C) Copyright 2004, by Leonardo Francalanci
9-
*
10-
* This library is free software; you can redistribute it and/or modify it under the terms
11-
* of the GNU Lesser General Public License as published by the Free Software Foundation;
12-
* either version 2.1 of the License, or (at your option) any later version.
13-
*
14-
* This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
15-
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
16-
* See the GNU Lesser General Public License for more details.
17-
*
18-
* You should have received a copy of the GNU Lesser General Public License along with this
19-
* library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330,
20-
* Boston, MA 02111-1307, USA.
21-
*/
22-
23-
package net.sf.jsqlparser.expression;
24-
25-
import net.sf.jsqlparser.expression.operators.arithmetic.Addition;
26-
import net.sf.jsqlparser.expression.operators.arithmetic.BitwiseAnd;
27-
import net.sf.jsqlparser.expression.operators.arithmetic.BitwiseOr;
28-
import net.sf.jsqlparser.expression.operators.arithmetic.BitwiseXor;
29-
import net.sf.jsqlparser.expression.operators.arithmetic.Concat;
30-
import net.sf.jsqlparser.expression.operators.arithmetic.Division;
31-
import net.sf.jsqlparser.expression.operators.arithmetic.Modulo;
32-
import net.sf.jsqlparser.expression.operators.arithmetic.Multiplication;
33-
import net.sf.jsqlparser.expression.operators.arithmetic.Subtraction;
34-
import net.sf.jsqlparser.expression.operators.conditional.AndExpression;
35-
import net.sf.jsqlparser.expression.operators.conditional.OrExpression;
36-
import net.sf.jsqlparser.expression.operators.relational.Between;
37-
import net.sf.jsqlparser.expression.operators.relational.EqualsTo;
38-
import net.sf.jsqlparser.expression.operators.relational.ExistsExpression;
39-
import net.sf.jsqlparser.expression.operators.relational.GreaterThan;
40-
import net.sf.jsqlparser.expression.operators.relational.GreaterThanEquals;
41-
import net.sf.jsqlparser.expression.operators.relational.InExpression;
42-
import net.sf.jsqlparser.expression.operators.relational.IsNullExpression;
43-
import net.sf.jsqlparser.expression.operators.relational.LikeExpression;
44-
import net.sf.jsqlparser.expression.operators.relational.Matches;
45-
import net.sf.jsqlparser.expression.operators.relational.MinorThan;
46-
import net.sf.jsqlparser.expression.operators.relational.MinorThanEquals;
47-
import net.sf.jsqlparser.expression.operators.relational.NotEqualsTo;
48-
import net.sf.jsqlparser.schema.Column;
49-
import net.sf.jsqlparser.statement.select.SubSelect;
50-
51-
public interface ExpressionVisitor {
52-
public void visit(NullValue nullValue);
53-
54-
public void visit(Function function);
55-
56-
public void visit(InverseExpression inverseExpression);
57-
58-
public void visit(JdbcParameter jdbcParameter);
59-
60-
public void visit(DoubleValue doubleValue);
61-
62-
public void visit(LongValue longValue);
63-
64-
public void visit(DateValue dateValue);
65-
66-
public void visit(TimeValue timeValue);
67-
68-
public void visit(TimestampValue timestampValue);
69-
70-
public void visit(Parenthesis parenthesis);
71-
72-
public void visit(StringValue stringValue);
73-
74-
public void visit(Addition addition);
75-
76-
public void visit(Division division);
77-
78-
public void visit(Multiplication multiplication);
79-
80-
public void visit(Subtraction subtraction);
81-
82-
public void visit(AndExpression andExpression);
83-
84-
public void visit(OrExpression orExpression);
85-
86-
public void visit(Between between);
87-
88-
public void visit(EqualsTo equalsTo);
89-
90-
public void visit(GreaterThan greaterThan);
91-
92-
public void visit(GreaterThanEquals greaterThanEquals);
93-
94-
public void visit(InExpression inExpression);
95-
96-
public void visit(IsNullExpression isNullExpression);
97-
98-
public void visit(LikeExpression likeExpression);
99-
100-
public void visit(MinorThan minorThan);
101-
102-
public void visit(MinorThanEquals minorThanEquals);
103-
104-
public void visit(NotEqualsTo notEqualsTo);
105-
106-
public void visit(Column tableColumn);
107-
108-
public void visit(SubSelect subSelect);
109-
110-
public void visit(CaseExpression caseExpression);
111-
112-
public void visit(WhenClause whenClause);
113-
114-
public void visit(ExistsExpression existsExpression);
115-
116-
public void visit(AllComparisonExpression allComparisonExpression);
117-
118-
public void visit(AnyComparisonExpression anyComparisonExpression);
119-
120-
public void visit(Concat concat);
121-
122-
public void visit(Matches matches);
123-
124-
public void visit(BitwiseAnd bitwiseAnd);
125-
126-
public void visit(BitwiseOr bitwiseOr);
127-
128-
public void visit(BitwiseXor bitwiseXor);
129-
130-
public void visit(CastExpression cast);
131-
132-
public void visit(Modulo modulo);
133-
134-
public void visit(AnalyticExpression aexpr);
135-
}
1+
/* ================================================================
2+
* JSQLParser : java based sql parser
3+
* ================================================================
4+
*
5+
* Project Info: http://jsqlparser.sourceforge.net
6+
* Project Lead: Leonardo Francalanci (leoonardoo@yahoo.it);
7+
*
8+
* (C) Copyright 2004, by Leonardo Francalanci
9+
*
10+
* This library is free software; you can redistribute it and/or modify it under the terms
11+
* of the GNU Lesser General Public License as published by the Free Software Foundation;
12+
* either version 2.1 of the License, or (at your option) any later version.
13+
*
14+
* This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
15+
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
16+
* See the GNU Lesser General Public License for more details.
17+
*
18+
* You should have received a copy of the GNU Lesser General Public License along with this
19+
* library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330,
20+
* Boston, MA 02111-1307, USA.
21+
*/
22+
23+
package net.sf.jsqlparser.expression;
24+
25+
import net.sf.jsqlparser.expression.operators.arithmetic.Addition;
26+
import net.sf.jsqlparser.expression.operators.arithmetic.BitwiseAnd;
27+
import net.sf.jsqlparser.expression.operators.arithmetic.BitwiseOr;
28+
import net.sf.jsqlparser.expression.operators.arithmetic.BitwiseXor;
29+
import net.sf.jsqlparser.expression.operators.arithmetic.Concat;
30+
import net.sf.jsqlparser.expression.operators.arithmetic.Division;
31+
import net.sf.jsqlparser.expression.operators.arithmetic.Modulo;
32+
import net.sf.jsqlparser.expression.operators.arithmetic.Multiplication;
33+
import net.sf.jsqlparser.expression.operators.arithmetic.Subtraction;
34+
import net.sf.jsqlparser.expression.operators.conditional.AndExpression;
35+
import net.sf.jsqlparser.expression.operators.conditional.OrExpression;
36+
import net.sf.jsqlparser.expression.operators.relational.Between;
37+
import net.sf.jsqlparser.expression.operators.relational.EqualsTo;
38+
import net.sf.jsqlparser.expression.operators.relational.ExistsExpression;
39+
import net.sf.jsqlparser.expression.operators.relational.GreaterThan;
40+
import net.sf.jsqlparser.expression.operators.relational.GreaterThanEquals;
41+
import net.sf.jsqlparser.expression.operators.relational.InExpression;
42+
import net.sf.jsqlparser.expression.operators.relational.IsNullExpression;
43+
import net.sf.jsqlparser.expression.operators.relational.LikeExpression;
44+
import net.sf.jsqlparser.expression.operators.relational.Matches;
45+
import net.sf.jsqlparser.expression.operators.relational.MinorThan;
46+
import net.sf.jsqlparser.expression.operators.relational.MinorThanEquals;
47+
import net.sf.jsqlparser.expression.operators.relational.NotEqualsTo;
48+
import net.sf.jsqlparser.schema.Column;
49+
import net.sf.jsqlparser.statement.select.SubSelect;
50+
51+
public interface ExpressionVisitor {
52+
public void visit(NullValue nullValue);
53+
54+
public void visit(Function function);
55+
56+
public void visit(InverseExpression inverseExpression);
57+
58+
public void visit(JdbcParameter jdbcParameter);
59+
60+
public void visit(DoubleValue doubleValue);
61+
62+
public void visit(LongValue longValue);
63+
64+
public void visit(DateValue dateValue);
65+
66+
public void visit(TimeValue timeValue);
67+
68+
public void visit(TimestampValue timestampValue);
69+
70+
public void visit(Parenthesis parenthesis);
71+
72+
public void visit(StringValue stringValue);
73+
74+
public void visit(Addition addition);
75+
76+
public void visit(Division division);
77+
78+
public void visit(Multiplication multiplication);
79+
80+
public void visit(Subtraction subtraction);
81+
82+
public void visit(AndExpression andExpression);
83+
84+
public void visit(OrExpression orExpression);
85+
86+
public void visit(Between between);
87+
88+
public void visit(EqualsTo equalsTo);
89+
90+
public void visit(GreaterThan greaterThan);
91+
92+
public void visit(GreaterThanEquals greaterThanEquals);
93+
94+
public void visit(InExpression inExpression);
95+
96+
public void visit(IsNullExpression isNullExpression);
97+
98+
public void visit(LikeExpression likeExpression);
99+
100+
public void visit(MinorThan minorThan);
101+
102+
public void visit(MinorThanEquals minorThanEquals);
103+
104+
public void visit(NotEqualsTo notEqualsTo);
105+
106+
public void visit(Column tableColumn);
107+
108+
public void visit(SubSelect subSelect);
109+
110+
public void visit(CaseExpression caseExpression);
111+
112+
public void visit(WhenClause whenClause);
113+
114+
public void visit(ExistsExpression existsExpression);
115+
116+
public void visit(AllComparisonExpression allComparisonExpression);
117+
118+
public void visit(AnyComparisonExpression anyComparisonExpression);
119+
120+
public void visit(Concat concat);
121+
122+
public void visit(Matches matches);
123+
124+
public void visit(BitwiseAnd bitwiseAnd);
125+
126+
public void visit(BitwiseOr bitwiseOr);
127+
128+
public void visit(BitwiseXor bitwiseXor);
129+
130+
public void visit(CastExpression cast);
131+
132+
public void visit(Modulo modulo);
133+
134+
public void visit(AnalyticExpression aexpr);
135+
136+
public void visit(ExtractExpression eexpr);
137+
}
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
package net.sf.jsqlparser.expression;
2+
3+
/**
4+
* Extract value from date/time expression. The name stores the part - name
5+
* to get from the following date/time expression.
6+
* @author tw
7+
*/
8+
public class ExtractExpression implements Expression {
9+
private String name;
10+
private Expression expression;
11+
12+
@Override
13+
public void accept(ExpressionVisitor expressionVisitor) {
14+
expressionVisitor.visit(this);
15+
}
16+
17+
public String getName() {
18+
return name;
19+
}
20+
21+
public void setName(String name) {
22+
this.name = name;
23+
}
24+
25+
public Expression getExpression() {
26+
return expression;
27+
}
28+
29+
public void setExpression(Expression expression) {
30+
this.expression = expression;
31+
}
32+
33+
@Override
34+
public String toString() {
35+
return "EXTRACT(" + name + " FROM " + expression + ')';
36+
}
37+
}

0 commit comments

Comments
 (0)