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


Reply via email to