You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ofbiz.apache.org by do...@apache.org on 2009/11/26 02:30:36 UTC
svn commit: r884359 - in /ofbiz/trunk/framework/sql/src/org/ofbiz/sql:
Parser.jj Value.java
Author: doogie
Date: Thu Nov 26 01:30:35 2009
New Revision: 884359
URL: http://svn.apache.org/viewvc?rev=884359&view=rev
Log:
Implements proper null support, and fix operators that have '=' in them.
Modified:
ofbiz/trunk/framework/sql/src/org/ofbiz/sql/Parser.jj
ofbiz/trunk/framework/sql/src/org/ofbiz/sql/Value.java
Modified: ofbiz/trunk/framework/sql/src/org/ofbiz/sql/Parser.jj
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/sql/src/org/ofbiz/sql/Parser.jj?rev=884359&r1=884358&r2=884359&view=diff
==============================================================================
--- ofbiz/trunk/framework/sql/src/org/ofbiz/sql/Parser.jj (original)
+++ ofbiz/trunk/framework/sql/src/org/ofbiz/sql/Parser.jj Thu Nov 26 01:30:35 2009
@@ -122,6 +122,9 @@
| <VALUES: "VALUES">
| <CREATE: "CREATE">
| <VIEW: "VIEW">
+| <IS: "IS">
+| <NOT: "NOT">
+| <NULL: "NULL">
| <START_DQUOTE: "\""> { pushState(IN_DQUOTE); }
| <START_SQUOTE: "'"> { pushState(IN_SQUOTE); }
| <INTEGER:
@@ -745,6 +748,10 @@
<AND>
v=RightValue() { list.add(v); }
{ v2 = new ListValue(list); op = "between"; }
+ | <IS> (
+ <NULL> { op = "="; v2 = Value.NULL; }
+ | <NOT> <NULL> { op = "!="; v2 = Value.NULL; }
+ )
| op=ComparisonOperator() (
v2=RightValue()
| <OPEN_PAREN>
@@ -759,9 +766,15 @@
}
private String ComparisonOperator():
-{}
{
- ( <TEXT> )+ { return getToken(0).image; }
+ StringBuilder sb;
+}
+{
+ (<TEXT>)+ { sb = new StringBuilder(); sb.append(getToken(0).image); }
+ (
+ <EQUALS> { sb.append(getToken(0).image); }
+ ((<TEXT>)+ { sb.append(getToken(0).image); })?
+ )* { return sb.toString(); }
| <NAME> { return getToken(0).image; }
| <EQUALS> { return getToken(0).image.toLowerCase(); }
}
Modified: ofbiz/trunk/framework/sql/src/org/ofbiz/sql/Value.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/sql/src/org/ofbiz/sql/Value.java?rev=884359&r1=884358&r2=884359&view=diff
==============================================================================
--- ofbiz/trunk/framework/sql/src/org/ofbiz/sql/Value.java (original)
+++ ofbiz/trunk/framework/sql/src/org/ofbiz/sql/Value.java Thu Nov 26 01:30:35 2009
@@ -19,4 +19,9 @@
package org.ofbiz.sql;
public abstract class Value extends Atom {
+ public static final Value NULL = new Value() {
+ public StringBuilder appendTo(StringBuilder sb) {
+ return sb.append("NULL");
+ }
+ };
}