svn commit: r892146 - /ofbiz/trunk/framework/sql/src/org/ofbiz/sql/Parser.jj

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

svn commit: r892146 - /ofbiz/trunk/framework/sql/src/org/ofbiz/sql/Parser.jj

doogie-3
Author: doogie
Date: Fri Dec 18 05:40:11 2009
New Revision: 892146

URL: http://svn.apache.org/viewvc?rev=892146&view=rev
Log:
Detect duplicate alias all entries.

Modified:
    ofbiz/trunk/framework/sql/src/org/ofbiz/sql/Parser.jj

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=892146&r1=892145&r2=892146&view=diff
==============================================================================
--- ofbiz/trunk/framework/sql/src/org/ofbiz/sql/Parser.jj (original)
+++ ofbiz/trunk/framework/sql/src/org/ofbiz/sql/Parser.jj Fri Dec 18 05:40:11 2009
@@ -279,6 +279,7 @@
  List<String> groupBy = null;
  Map<String, FieldDef> fieldDefs = FastMap.newInstance();
  List<FieldAll> fieldAlls = FastList.newInstance();
+ Set<String> fieldAllAliases = FastSet.newInstance();
  Table table;
  Map<String, Relation> relations = FastMap.newInstance();
  Condition whereCondition = null, havingCondition = null;
@@ -286,8 +287,8 @@
 }
 {
  <SELECT> (
- FieldDef(fieldDefs, fieldAlls)
- ( <COMMA> FieldDef(fieldDefs, fieldAlls) )*
+ FieldDef(fieldDefs, fieldAlls, fieldAllAliases)
+ ( <COMMA> FieldDef(fieldDefs, fieldAlls, fieldAllAliases) )*
  )
  <FROM> table=Table()
  ( <RELATION> Relation(relations) )*
@@ -521,7 +522,7 @@
 | <JOIN> { return Boolean.FALSE; }
 }
 
-private void FieldDef(Map<String, FieldDef> fieldDefs, List<FieldAll> fieldAlls):
+private void FieldDef(Map<String, FieldDef> fieldDefs, List<FieldAll> fieldAlls, Set<String> fieldAllAliases):
 {
  StaticValue v;
  String n, fieldAlias = null, fieldName, exc;
@@ -534,6 +535,7 @@
  <PERIOD> (
  <STAR>
  (
+ { if (fieldAllAliases.contains(n)) throw new IllegalArgumentException("Duplicate aliasAll(" + n + ")"); }
  <EXCLUDE> <OPEN_PAREN>
  exc=NamePart() { excludeList.add(exc); }
  ( <COMMA> exc=NamePart() { excludeList.add(exc); } )*