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/12/18 06:40:11 UTC

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

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); } )*