List Info

Thread: Created: (JAXME-93) union statements as views




Created: (JAXME-93) union statements as views
country flaguser name
United States
2007-08-20 08:55:31
UNION STATEMENTS AS VIEWS
-------------------------

                 KEY: JAXME-93
                 URL:
HTTPS://ISSUES.APACHE.ORG/JIRA/BROWSE/JAXME-93
             PROJECT: JAXME
          ISSUE TYPE: IMPROVEMENT
          COMPONENTS: JAXMEJS
            REPORTER: TOBIAS HüHNER


INDEX:
D:/PROJEKTE/JUSTUS/WS-JAXME-0.5.3-SNAPSHOT/SRC/JS/ORG/APACHE
/WS/JAXME/SQLS/IMPL/SELECTCOMBINATIONSTATEMENTIMPL.JAVA
============================================================
=======
---
D:/PROJEKTE/JUSTUS/WS-JAXME-0.5.3-SNAPSHOT/SRC/JS/ORG/APACHE
/WS/JAXME/SQLS/IMPL/SELECTCOMBINATIONSTATEMENTIMPL.JAVA	(REV
ISION 567598)
+++
D:/PROJEKTE/JUSTUS/WS-JAXME-0.5.3-SNAPSHOT/SRC/JS/ORG/APACHE
/WS/JAXME/SQLS/IMPL/SELECTCOMBINATIONSTATEMENTIMPL.JAVA	(WOR
KING COPY)
 -7,6
+7,7 
 IMPORT ORG.APACHE.WS.JAXME.SQLS.SQLFACTORY;
 IMPORT
ORG.APACHE.WS.JAXME.SQLS.SELECTCOMBINATIONSTATEMENT;
 IMPORT ORG.APACHE.WS.JAXME.SQLS.SELECTSTATEMENT;
+IMPORT ORG.APACHE.WS.JAXME.SQLS.TABLE;
 
 
 /**
 -24,6
+25,17 
     }
 
     PUBLIC ITERATOR GETSELECTSTATEMENTS() {
-        RETURN STATEMENTS.ITERATOR();
+        IF(STATEMENTS.ISEMPTY()){
+			THROW NEW ILLEGALSTATEEXCEPTION("NO STATEMENT
DEFINED"); 
+        }
+    	RETURN STATEMENTS.ITERATOR();
     }
+    
+	PUBLIC TABLE CREATEVIEW(TABLE.NAME PNAME) {
+		RETURN
GETSQLFACTORY().GETOBJECTFACTORY().NEWVIEW(THIS,PNAME);
+	}
+
+	PUBLIC TABLE CREATEVIEW(STRING PNAME) {
+	    RETURN CREATEVIEW(PNAME == NULL ? NULL : NEW
TABLEIMPL.NAMEIMPL(PNAME));
+	}
 }
INDEX:
D:/PROJEKTE/JUSTUS/WS-JAXME-0.5.3-SNAPSHOT/SRC/JS/ORG/APACHE
/WS/JAXME/SQLS/IMPL/SELECTCOMBINATIONVIEWIMPL.JAVA
============================================================
=======
---
D:/PROJEKTE/JUSTUS/WS-JAXME-0.5.3-SNAPSHOT/SRC/JS/ORG/APACHE
/WS/JAXME/SQLS/IMPL/SELECTCOMBINATIONVIEWIMPL.JAVA	(REVISION
0)
+++
D:/PROJEKTE/JUSTUS/WS-JAXME-0.5.3-SNAPSHOT/SRC/JS/ORG/APACHE
/WS/JAXME/SQLS/IMPL/SELECTCOMBINATIONVIEWIMPL.JAVA	(REVISION
0)
 -0,0
+1,126 
+PACKAGE ORG.APACHE.WS.JAXME.SQLS.IMPL;
+
+
+IMPORT JAVA.UTIL.ARRAYLIST;
+IMPORT JAVA.UTIL.ITERATOR;
+IMPORT JAVA.UTIL.LIST;
+
+IMPORT ORG.APACHE.WS.JAXME.SQLS.COLUMN;
+IMPORT ORG.APACHE.WS.JAXME.SQLS.COLUMNREFERENCE;
+IMPORT ORG.APACHE.WS.JAXME.SQLS.DELETESTATEMENT;
+IMPORT ORG.APACHE.WS.JAXME.SQLS.FOREIGNKEY;
+IMPORT ORG.APACHE.WS.JAXME.SQLS.INDEX;
+IMPORT ORG.APACHE.WS.JAXME.SQLS.INSERTSTATEMENT;
+IMPORT
ORG.APACHE.WS.JAXME.SQLS.SELECTCOMBINATIONSTATEMENT;
+IMPORT ORG.APACHE.WS.JAXME.SQLS.SELECTSTATEMENT;
+IMPORT ORG.APACHE.WS.JAXME.SQLS.TABLE;
+IMPORT ORG.APACHE.WS.JAXME.SQLS.UPDATESTATEMENT;
+IMPORT ORG.APACHE.WS.JAXME.SQLS.COLUMN.TYPE;
+
+PUBLIC CLASS SELECTCOMBINATIONVIEWIMPL EXTENDS TABLEIMPL
IMPLEMENTS TABLE {
+	PRIVATE FINAL SELECTCOMBINATIONSTATEMENT STATEMENT;
+
+	PROTECTED
SELECTCOMBINATIONVIEWIMPL(SELECTCOMBINATIONSTATEMENT
PSTATEMENT, NAME PNAME) {
+		SUPER((GETFIRSTSTATEMENT(PSTATEMENT)).GETTABLEREFERENCE()
.GETTABLE().GETSCHEMA(),
+				PNAME == NULL ?
(GETFIRSTSTATEMENT(PSTATEMENT)).GETTABLEREFERENCE().GETTABLE
().GETNAME() : PNAME);
+		STATEMENT = PSTATEMENT;
+	}
+
+	PRIVATE STATIC SELECTSTATEMENT
GETFIRSTSTATEMENT(SELECTCOMBINATIONSTATEMENT PSTATEMENT) {
+		RETURN
(SELECTSTATEMENT)PSTATEMENT.GETSELECTSTATEMENTS().NEXT();
+	}
+
+	PUBLIC FINAL SELECTCOMBINATIONSTATEMENT
GETSELECTCOMBINATIONSTATEMENT() {
+		RETURN STATEMENT;
+	}
+    PRIVATE CLASS VIEWCOLUMNIMPL IMPLEMENTS COLUMN {
+        PRIVATE FINAL COLUMN.NAME COLNAME;
+        PRIVATE FINAL COLUMN COL;
+        PRIVATE OBJECT DATA;
+        PRIVATE VIEWCOLUMNIMPL(COLUMNREFERENCE PCOLUMN) {
+            COL = PCOLUMN.GETCOLUMN();
+            COLUMN.NAME ALIAS = PCOLUMN.GETALIAS();
+            COLNAME = ALIAS == NULL ? COL.GETNAME() :
ALIAS;
+        }
+        PUBLIC TABLE GETTABLE() { RETURN
SELECTCOMBINATIONVIEWIMPL.THIS; }
+        PUBLIC NAME GETNAME() { RETURN COLNAME; }
+        PUBLIC STRING GETQNAME() { RETURN GETTABLE() +
"." + GETNAME(); }
+        PUBLIC TYPE GETTYPE() { RETURN COL.GETTYPE(); }
+        PUBLIC BOOLEAN ISPRIMARYKEYPART() { RETURN FALSE;
}
+        PUBLIC VOID SETNULLABLE(BOOLEAN PNULLABLE) {
+            THROW NEW ILLEGALSTATEEXCEPTION("UNABLE TO
SET A VIEW COLUMNS 'NULLABLE' PROPERTY.");
+        }
+        PUBLIC BOOLEAN ISNULLABLE() { RETURN
COL.ISNULLABLE(); }
+        PUBLIC BOOLEAN ISSTRINGCOLUMN() { RETURN
COL.ISSTRINGCOLUMN(); }
+        PUBLIC BOOLEAN ISBINARYCOLUMN() { RETURN
COL.ISBINARYCOLUMN(); }
+        PUBLIC VOID SETCUSTOMDATA(OBJECT PDATA) { DATA =
PDATA; }
+        PUBLIC OBJECT GETCUSTOMDATA() { RETURN DATA; }
+        PUBLIC BOOLEAN ISVIRTUAL() { RETURN FALSE; }
+    }
+
+    PUBLIC ITERATOR GETCOLUMNS() {
+        LIST RESULT = NEW ARRAYLIST();
+        FOR (ITERATOR ITER =
GETFIRSTSTATEMENT(STATEMENT).GETRESULTCOLUMNS(); 
ITER.HASNEXT();  ) {
+            COLUMNREFERENCE COL = (COLUMNREFERENCE)
ITER.NEXT();
+            RESULT.ADD(NEW VIEWCOLUMNIMPL(COL));
+        }
+        RETURN RESULT.ITERATOR();
+    }
+
+    PUBLIC COLUMN GETCOLUMN(COLUMN.NAME PNAME) {
+        IF (PNAME == NULL) {
+            THROW NEW NULLPOINTEREXCEPTION("COLUMN
NAMES MUST NOT BE NULL.");
+         }
+        FOR (ITERATOR ITER =
GETFIRSTSTATEMENT(STATEMENT).GETRESULTCOLUMNS(); 
ITER.HASNEXT();  ) {
+            COLUMNREFERENCE COL = (COLUMNREFERENCE)
ITER.NEXT();
+            COLUMN.NAME ALIAS = COL.GETALIAS();
+            IF (ALIAS == NULL) {
+            	ALIAS = COL.GETCOLUMN().GETNAME();
+            }
+            IF (ALIAS.EQUALS(PNAME)) {
+                RETURN NEW VIEWCOLUMNIMPL(COL);
+            }
+        }
+        RETURN NULL;
+    }
+	
+    PUBLIC COLUMN NEWCOLUMN(COLUMN.NAME PNAME, TYPE PTYPE)
{
+        THROW NEW ILLEGALSTATEEXCEPTION("A VIEWS
COLUMNS CANNOT BE CHANGED.");
+    }
+
+    PUBLIC COLUMN NEWCOLUMN(STRING PNAME, TYPE PTYPE) {
+        THROW NEW ILLEGALSTATEEXCEPTION("A VIEWS
COLUMNS CANNOT BE CHANGED.");
+    }
+
+    PUBLIC INDEX NEWKEY() {
+        THROW NEW ILLEGALSTATEEXCEPTION("A VIEW CANNOT
HAVE KEYS.");
+    }
+    PUBLIC INDEX NEWINDEX() {
+        THROW NEW ILLEGALSTATEEXCEPTION("A VIEW CANNOT
HAVE INDEXES.");
+    }
+    PUBLIC INDEX NEWPRIMARYKEY() {
+        THROW NEW ILLEGALSTATEEXCEPTION("A VIEW CANNOT
HAVE A PRIMARY KEY.");
+    }
+    PUBLIC FOREIGNKEY NEWFOREIGNKEY(TABLE PREFERENCEDTABLE)
{
+        THROW NEW ILLEGALSTATEEXCEPTION("A VIEW CANNOT
HAVE FOREIGN KEYS.");
+    }
+    PUBLIC INSERTSTATEMENT GETINSERTSTATEMENT() {
+        THROW NEW ILLEGALSTATEEXCEPTION("A VIEW IS NOT
UPDATEABLE.");
+    }
+    PUBLIC UPDATESTATEMENT GETUPDATESTATEMENT() {
+        THROW NEW ILLEGALSTATEEXCEPTION("A VIEW IS NOT
UPDATEABLE.");
+    }
+    PUBLIC DELETESTATEMENT GETDELETESTATEMENT() {
+        THROW NEW ILLEGALSTATEEXCEPTION("A VIEW IS NOT
UPDATEABLE.");
+    }
+    PUBLIC INDEX GETPRIMARYKEY() {
+        THROW NEW ILLEGALSTATEEXCEPTION("A VIEW CANNOT
HAVE A PRIMARY KEY.");
+    }
+    PUBLIC ITERATOR GETINDEXES() {
+        THROW NEW ILLEGALSTATEEXCEPTION("A VIEW CANNOT
HAVE INDEXES.");
+    }
+    PUBLIC ITERATOR GETFOREIGNKEYS() {
+        THROW NEW ILLEGALSTATEEXCEPTION("A VIEW CANNOT
HAVE FOREIGN KEYS.");
+    }
+
+}
INDEX:
D:/PROJEKTE/JUSTUS/WS-JAXME-0.5.3-SNAPSHOT/SRC/JS/ORG/APACHE
/WS/JAXME/SQLS/IMPL/OBJECTFACTORYIMPL.JAVA
============================================================
=======
---
D:/PROJEKTE/JUSTUS/WS-JAXME-0.5.3-SNAPSHOT/SRC/JS/ORG/APACHE
/WS/JAXME/SQLS/IMPL/OBJECTFACTORYIMPL.JAVA	(REVISION
567598)
+++
D:/PROJEKTE/JUSTUS/WS-JAXME-0.5.3-SNAPSHOT/SRC/JS/ORG/APACHE
/WS/JAXME/SQLS/IMPL/OBJECTFACTORYIMPL.JAVA	(WORKING COPY)
 -32,6
+32,7 
 IMPORT ORG.APACHE.WS.JAXME.SQLS.TABLE;
 IMPORT ORG.APACHE.WS.JAXME.SQLS.TABLEREFERENCE;
 IMPORT ORG.APACHE.WS.JAXME.SQLS.COMBINEDCONSTRAINT.TYPE;
+IMPORT ORG.APACHE.WS.JAXME.SQLS.TABLE.NAME;
 
 
 /** <P>DEFAULT IMPLEMENTATION OF THE OBJECT
FACTORY.</P>
 -58,6
+59,12 
     PUBLIC TABLE NEWVIEW(SELECTSTATEMENT PSELECTSTATEMENT,
TABLE.NAME PNAME) {
         RETURN NEW VIEWIMPL(PSELECTSTATEMENT, PNAME);
     }
+	
+    PUBLIC TABLE NEWVIEW(
+			SELECTCOMBINATIONSTATEMENTIMPL
SELECTCOMBINATIONSTATEMENTIMPL,
+			NAME NAME) {
+		RETURN NEW
SELECTCOMBINATIONVIEWIMPL(SELECTCOMBINATIONSTATEMENTIMPL,NAM
E);
+	}
 
     PUBLIC COMBINEDCONSTRAINT
NEWCOMBINEDCONSTRAINT(CONSTRAINEDSTATEMENT PSTATEMENT, TYPE
PTYPE) {
         RETURN NEW COMBINEDCONSTRAINTIMPL(PSTATEMENT,
PTYPE);
 -74,4
+81,5 
 	PUBLIC EXPRESSION CREATEEXPRESSION(STATEMENT PSTATEMENT,
ORG.APACHE.WS.JAXME.SQLS.EXPRESSION.TYPE PTYPE) {
 		RETURN NEW EXPRESSIONIMPL(PSTATEMENT, PTYPE);
 	}
+
 }
INDEX:
D:/PROJEKTE/JUSTUS/WS-JAXME-0.5.3-SNAPSHOT/SRC/JS/ORG/APACHE
/WS/JAXME/SQLS/IMPL/SQLGENERATORIMPL.JAVA
============================================================
=======
---
D:/PROJEKTE/JUSTUS/WS-JAXME-0.5.3-SNAPSHOT/SRC/JS/ORG/APACHE
/WS/JAXME/SQLS/IMPL/SQLGENERATORIMPL.JAVA	(REVISION 567598)
+++
D:/PROJEKTE/JUSTUS/WS-JAXME-0.5.3-SNAPSHOT/SRC/JS/ORG/APACHE
/WS/JAXME/SQLS/IMPL/SQLGENERATORIMPL.JAVA	(WORKING COPY)
 -592,6
+592,9 
         IF (T INSTANCEOF VIEWIMPL) {
             VIEWIMPL V = (VIEWIMPL) T;
             TABLENAME = "(" +
GETSELECTQUERY(V.GETVIEWSTATEMENT(), PDATA) +
")";
+        } ELSE IF (T INSTANCEOF SELECTCOMBINATIONVIEWIMPL)
{
+        	SELECTCOMBINATIONVIEWIMPL VIEW =
(SELECTCOMBINATIONVIEWIMPL) T;
+        	TABLENAME = "(" +
GETQUERY(VIEW.GETSELECTCOMBINATIONSTATEMENT()) +
")";
         } ELSE {
             TABLENAME = PTABLE.GETTABLE().GETQNAME();
         }
 -1034,6
+1037,11 
             CHECKSAMESTRUCTURE(FIRST, OTHER);
             SB.APPEND(' ');
             SB.APPEND(PSEP);
+            IF(PSTATEMENT INSTANCEOF UNIONSTATEMENT) {
+           
	IF(((UNIONSTATEMENT)PSTATEMENT).ISALL(OTHER)){
+                    SB.APPEND(" ALL");
+            	}
+            };
             SB.APPEND(" (");
             SB.APPEND(GETQUERY(OTHER));
             SB.APPEND(')');
 -1052,9
+1060,7 
         } ELSE IF (PSTATEMENT INSTANCEOF SELECTSTATEMENT)
{
             S = GETSELECTQUERY((SELECTSTATEMENT)
PSTATEMENT);
         } ELSE IF (PSTATEMENT INSTANCEOF UNIONSTATEMENT) {
-            FINAL UNIONSTATEMENT US = (UNIONSTATEMENT)
PSTATEMENT;
-            FINAL BOOLEAN ALL = US.ISALL();
-            S = GETSELECTCOMBINATIONSTATEMENT(US, ALL ?
"UNION ALL" : "UNION");
+            S =
GETSELECTCOMBINATIONSTATEMENT((UNIONSTATEMENT) PSTATEMENT,
"UNION");
         } ELSE IF (PSTATEMENT INSTANCEOF
INTERSECTIONSTATEMENT) {
             S =
GETSELECTCOMBINATIONSTATEMENT((INTERSECTIONSTATEMENT)
PSTATEMENT, "INTERSECT");
         } ELSE IF (PSTATEMENT INSTANCEOF MINUSSTATEMENT) {
INDEX:
D:/PROJEKTE/JUSTUS/WS-JAXME-0.5.3-SNAPSHOT/SRC/JS/ORG/APACHE
/WS/JAXME/SQLS/IMPL/UNIONSTATEMENTIMPL.JAVA
============================================================
=======
---
D:/PROJEKTE/JUSTUS/WS-JAXME-0.5.3-SNAPSHOT/SRC/JS/ORG/APACHE
/WS/JAXME/SQLS/IMPL/UNIONSTATEMENTIMPL.JAVA	(REVISION
567598)
+++
D:/PROJEKTE/JUSTUS/WS-JAXME-0.5.3-SNAPSHOT/SRC/JS/ORG/APACHE
/WS/JAXME/SQLS/IMPL/UNIONSTATEMENTIMPL.JAVA	(WORKING COPY)
 -1,6
+1,9 
 PACKAGE ORG.APACHE.WS.JAXME.SQLS.IMPL;
 
+IMPORT JAVA.UTIL.HASHMAP;
+
 IMPORT ORG.APACHE.WS.JAXME.SQLS.SQLFACTORY;
+IMPORT ORG.APACHE.WS.JAXME.SQLS.SELECTSTATEMENT;
 IMPORT ORG.APACHE.WS.JAXME.SQLS.UNIONSTATEMENT;
 
 
 -8,17
+11,28 
  * DEFAULT IMPLEMENTATION OF {LINK UNIONSTATEMENT}.
  */
 PUBLIC CLASS UNIONSTATEMENTIMPL EXTENDS
SELECTCOMBINATIONSTATEMENTIMPL IMPLEMENTS UNIONSTATEMENT {
-    PRIVATE BOOLEAN ALL;
-    
+	PRIVATE FINAL HASHMAP ALL = NEW HASHMAP(); 
+	PRIVATE BOOLEAN FIRST = TRUE;
+	
     PROTECTED UNIONSTATEMENTIMPL(SQLFACTORY PFACTORY) {
         SUPER(PFACTORY);
     }
 
-    PUBLIC BOOLEAN ISALL() {
-        RETURN ALL;
-    }
+	PUBLIC VOID ADDSTATEMENT(SELECTSTATEMENT STATEMENT,
BOOLEAN PALL) {
+		IF(FIRST && PALL){
+			THROW NEW ILLEGALARGUMENTEXCEPTION(" PALL=TRUE FOR
FIRST STATEMENT IS NOT ALLOWED");
+		}
+		SUPER.ADDSTATEMENT(STATEMENT);
+		ALL.PUT(STATEMENT,NEW BOOLEAN(PALL));
+		FIRST = FALSE;
+	}
+	
+	PUBLIC VOID ADDSTATEMENT(SELECTSTATEMENT STATEMENT) {
+		ADDSTATEMENT(STATEMENT,FALSE);
+	}
 
-    PUBLIC VOID SETALL(BOOLEAN PALL) {
-        ALL = PALL;
-    }
+	PUBLIC BOOLEAN ISALL(SELECTSTATEMENT STATEMENT) {
+		RETURN ((BOOLEAN)ALL.GET(STATEMENT)).BOOLEANVALUE();
+	}
+
 }
INDEX:
D:/PROJEKTE/JUSTUS/WS-JAXME-0.5.3-SNAPSHOT/SRC/JS/ORG/APACHE
/WS/JAXME/SQLS/SELECTCOMBINATIONSTATEMENT.JAVA
============================================================
=======
---
D:/PROJEKTE/JUSTUS/WS-JAXME-0.5.3-SNAPSHOT/SRC/JS/ORG/APACHE
/WS/JAXME/SQLS/SELECTCOMBINATIONSTATEMENT.JAVA	(REVISION
567598)
+++
D:/PROJEKTE/JUSTUS/WS-JAXME-0.5.3-SNAPSHOT/SRC/JS/ORG/APACHE
/WS/JAXME/SQLS/SELECTCOMBINATIONSTATEMENT.JAVA	(WORKING
COPY)
 -7,10
+7,9 
  * COMMON BASE INTERFACE FOR {LINK UNIONSTATEMENT}, AND
  * {LINK INTERSECTIONSTATEMENT}.
  */
-PUBLIC INTERFACE SELECTCOMBINATIONSTATEMENT EXTENDS
STATEMENT {
+PUBLIC INTERFACE SELECTCOMBINATIONSTATEMENT EXTENDS
STATEMENT, VIEWABLESTATEMENT {
     /**
-     * ADDS A SELECT STATEMENT TO THE GIVEN
"UNION", OR
-     * "INTERSECTION" STATEMENT.
+     * ADDS A SELECT STATEMENT TO THE GIVEN
"UNION", "INTERSECTION", OR
"MINUS" STATEMENT.
      */
     VOID ADDSTATEMENT(SELECTSTATEMENT PSTATEMENT);
 
 -18,4
+17,5 
      * RETURNS AN ITERATOR OVER ALL THE SELECT STATEMENTS.
      */
     ITERATOR GETSELECTSTATEMENTS();
+
 }
INDEX:
D:/PROJEKTE/JUSTUS/WS-JAXME-0.5.3-SNAPSHOT/SRC/JS/ORG/APACHE
/WS/JAXME/SQLS/OBJECTFACTORY.JAVA
============================================================
=======
---
D:/PROJEKTE/JUSTUS/WS-JAXME-0.5.3-SNAPSHOT/SRC/JS/ORG/APACHE
/WS/JAXME/SQLS/OBJECTFACTORY.JAVA	(REVISION 567598)
+++
D:/PROJEKTE/JUSTUS/WS-JAXME-0.5.3-SNAPSHOT/SRC/JS/ORG/APACHE
/WS/JAXME/SQLS/OBJECTFACTORY.JAVA	(WORKING COPY)
 -16,6
+16,8 
 PACKAGE ORG.APACHE.WS.JAXME.SQLS;
 
 IMPORT ORG.APACHE.WS.JAXME.SQLS.EXPRESSION.TYPE;
+IMPORT ORG.APACHE.WS.JAXME.SQLS.TABLE.NAME;
+IMPORT
ORG.APACHE.WS.JAXME.SQLS.IMPL.SELECTCOMBINATIONSTATEMENTIMPL
;
 
 
 /** A FACTORY OBJECT FOR CREATING ALL THE OBJECTS USED BY
 -46,6
+48,16 
      */
     PUBLIC TABLE NEWVIEW(SELECTSTATEMENT PSELECTSTATEMENT,
TABLE.NAME PNAME);
 
+    /** RETURNS AN INSTANCE OF
+     * {LINK ORG.APACHE.WS.JAXME.SQLS.TABLE}, WHICH ALLOWS TO
EMBED
+     * THE GIVEN INSTANCE OF
+     * {LINK
ORG.APACHE.WS.JAXME.SQLS.SELECTCOMBINATIONSTATEMENT} INTO
ANOTHER
+     * SELECT STATEMENT.
+     */
+    PUBLIC TABLE NEWVIEW(
+			SELECTCOMBINATIONSTATEMENTIMPL
SELECTCOMBINATIONSTATEMENTIMPL,
+			NAME NAME);
+
     /** CREATES A NEW INSTANCE OF
      * {LINK ORG.APACHE.WS.JAXME.SQLS.CONSTRAINT}
CONSTRAINING
      * THE GIVEN {LINK
ORG.APACHE.WS.JAXME.SQLS.CONSTRAINEDSTATEMENT}.
 -64,4
+76,5 
 	/** CREATES A NEW INSTANCE OF {LINK EXPRESSION}.
 	 */
 	PUBLIC EXPRESSION CREATEEXPRESSION(STATEMENT PSTATEMENT,
TYPE SUM);
+
 }
INDEX:
D:/PROJEKTE/JUSTUS/WS-JAXME-0.5.3-SNAPSHOT/SRC/JS/ORG/APACHE
/WS/JAXME/SQLS/SELECTSTATEMENT.JAVA
============================================================
=======
---
D:/PROJEKTE/JUSTUS/WS-JAXME-0.5.3-SNAPSHOT/SRC/JS/ORG/APACHE
/WS/JAXME/SQLS/SELECTSTATEMENT.JAVA	(REVISION 567598)
+++
D:/PROJEKTE/JUSTUS/WS-JAXME-0.5.3-SNAPSHOT/SRC/JS/ORG/APACHE
/WS/JAXME/SQLS/SELECTSTATEMENT.JAVA	(WORKING COPY)
 -23,7
+23,7 
  *
  * AUTHOR <A HREF="MAILTO:JOEISPSOFT.DE">JOCHEN WIEDMANN</A>
  */
-PUBLIC INTERFACE SELECTSTATEMENT EXTENDS
CONSTRAINEDSTATEMENT {
+PUBLIC INTERFACE SELECTSTATEMENT EXTENDS
CONSTRAINEDSTATEMENT,VIEWABLESTATEMENT {
 	/** PROVIDES A SINGLE COLUMN FOR AN <CODE>ORDER
BY</CODE>
      * CLAUSE.
 	 */
 -111,14
+111,4 
     */
    PUBLIC INT GETSKIPPEDROWS();
 
-   /** <P>CREATES A VIEW, WHICH MAY BE USED TO EMBED
THE STATEMENT INTO
-    * A SEPARATE QUERY.</P>
-    */
-   PUBLIC TABLE CREATEVIEW(TABLE.NAME PNAME);
-
-
-   /** <P>CREATES A VIEW, WHICH MAY BE USED TO EMBED
THE STATEMENT INTO
-    * A SEPARATE QUERY.</P>
-    */
-   PUBLIC TABLE CREATEVIEW(STRING PNAME);
 }
INDEX:
D:/PROJEKTE/JUSTUS/WS-JAXME-0.5.3-SNAPSHOT/SRC/JS/ORG/APACHE
/WS/JAXME/SQLS/JUNIT/CREATETEST.JAVA
============================================================
=======
---
D:/PROJEKTE/JUSTUS/WS-JAXME-0.5.3-SNAPSHOT/SRC/JS/ORG/APACHE
/WS/JAXME/SQLS/JUNIT/CREATETEST.JAVA	(REVISION 567598)
+++
D:/PROJEKTE/JUSTUS/WS-JAXME-0.5.3-SNAPSHOT/SRC/JS/ORG/APACHE
/WS/JAXME/SQLS/JUNIT/CREATETEST.JAVA	(WORKING COPY)
 -458,7
+458,7 
 		ASSERTEQUALS(EXPECT, GOT);
 	}
 
-	/** TEST FOR UNION AND UNION ALL.
+	/** TEST FOR UNION.
 	 */
 	PUBLIC VOID TESTUNION() {
         UNIONSTATEMENT US =
GETSQLFACTORY().NEWUNIONSTATEMENT();
 -467,7
+467,23 
         STRING GOT = GEN.GETQUERY(US);
         STRING EXPECT = "(SELECT MYINDEX, MYNAME,
MYDATE FROM MYSCHEMA.MYTABLE WHERE 'MYINDEX'>5) UNION
(SELECT MYINDEX, MYNAME, MYDATE FROM MYSCHEMA.MYTABLE WHERE
'MYNAME' LIKE 'X%')";
         ASSERTEQUALS(EXPECT, GOT);
-        US.SETALL(TRUE);
+	}
+	/** TEST FOR UNION ALL.
+	 */
+	PUBLIC VOID TESTUNIONALL() {
+        UNIONSTATEMENT US =
GETSQLFACTORY().NEWUNIONSTATEMENT();
+	    TABLE T = GETBASICTABLE();
+		SELECTSTATEMENT ST1 = T.GETSELECTSTATEMENT();
+		SELECTSTATEMENT ST2 = T.GETSELECTSTATEMENT();
+		BOOLEANCONSTRAINT BC1 = ST1.GETWHERE().CREATEGT();
+		BC1.ADDPART("MYINDEX");
+		BC1.ADDPART(5);
+		BOOLEANCONSTRAINT BC2 = ST2.GETWHERE().CREATELIKE();
+		BC2.ADDPART("MYNAME");
+		BC2.ADDPART("X%");
+		US.ADDSTATEMENT(ST1);
+		US.ADDSTATEMENT(ST2,TRUE);
+        SQLGENERATOR GEN = GETSQLGENERATOR();
         STRING GOTALL = GEN.GETQUERY(US);
         STRING EXPECTALL = "(SELECT MYINDEX, MYNAME,
MYDATE FROM MYSCHEMA.MYTABLE WHERE 'MYINDEX'>5) UNION ALL
(SELECT MYINDEX, MYNAME, MYDATE FROM MYSCHEMA.MYTABLE WHERE
'MYNAME' LIKE 'X%')";
         ASSERTEQUALS(EXPECTALL, GOTALL);
 -516,4
+532,21 
             // OK
         }
     }
+
+	/** TEST FOR UNION AND UNION ALL.
+	 */
+	PUBLIC VOID TESTUNIONVIEW() {
+        UNIONSTATEMENT US =
GETSQLFACTORY().NEWUNIONSTATEMENT();
+	    CREATESELECTCOMBINATIONSTATEMENT(US);
+	    TABLE VIEW = US.CREATEVIEW((STRING)NULL);
+	    // SELECTSTATEMNT ST = SELECT * FROM VIEW ...
+	    SELECTSTATEMENT ST =
GETSQLFACTORY().NEWSELECTSTATEMENT();
+	    ST.SETTABLE(VIEW);
+	    
+	    SQLGENERATOR GEN = GETSQLGENERATOR();
+        STRING GOT = GEN.GETQUERY(ST);
+        STRING EXPECT = "SELECT * FROM ((SELECT
MYINDEX, MYNAME, MYDATE FROM MYSCHEMA.MYTABLE WHERE
'MYINDEX'>5) UNION (SELECT MYINDEX, MYNAME, MYDATE FROM
MYSCHEMA.MYTABLE WHERE 'MYNAME' LIKE 'X%'))";
+        ASSERTEQUALS(EXPECT, GOT);
+	}
+
 }
INDEX:
D:/PROJEKTE/JUSTUS/WS-JAXME-0.5.3-SNAPSHOT/SRC/JS/ORG/APACHE
/WS/JAXME/SQLS/UNIONSTATEMENT.JAVA
============================================================
=======
---
D:/PROJEKTE/JUSTUS/WS-JAXME-0.5.3-SNAPSHOT/SRC/JS/ORG/APACHE
/WS/JAXME/SQLS/UNIONSTATEMENT.JAVA	(REVISION 567598)
+++
D:/PROJEKTE/JUSTUS/WS-JAXME-0.5.3-SNAPSHOT/SRC/JS/ORG/APACHE
/WS/JAXME/SQLS/UNIONSTATEMENT.JAVA	(WORKING COPY)
 -6,14
+6,15 
  */
 PUBLIC INTERFACE UNIONSTATEMENT EXTENDS
SELECTCOMBINATIONSTATEMENT {
     /**
+     * ADDS A SELECT STATEMENT TO THE GIVEN
"UNION", "INTERSECTION", OR
"MINUS" STATEMENT.
      * SETS, WHETHER THIS IS A "UNION ALL"
STATEMENT. BY DEFAULT,
      * IT ISN'T.
      */
-    VOID SETALL(BOOLEAN PALL);
-
+    VOID ADDSTATEMENT(SELECTSTATEMENT PSTATEMENT,BOOLEAN
ALL);
+    
     /**
-     * RETURNS, WHETHER THIS IS A "UNION ALL"
STATEMENT. BY DEFAULT,
-     * IT ISN'T.
+     * IS 'UNION ALL' STATEMENT
      */
-    BOOLEAN ISALL();
+    BOOLEAN ISALL(SELECTSTATEMENT PSTATEMENT);
+
 }
INDEX:
D:/PROJEKTE/JUSTUS/WS-JAXME-0.5.3-SNAPSHOT/SRC/JS/ORG/APACHE
/WS/JAXME/SQLS/VIEWABLESTATEMENT.JAVA
============================================================
=======
---
D:/PROJEKTE/JUSTUS/WS-JAXME-0.5.3-SNAPSHOT/SRC/JS/ORG/APACHE
/WS/JAXME/SQLS/VIEWABLESTATEMENT.JAVA	(REVISION 0)
+++
D:/PROJEKTE/JUSTUS/WS-JAXME-0.5.3-SNAPSHOT/SRC/JS/ORG/APACHE
/WS/JAXME/SQLS/VIEWABLESTATEMENT.JAVA	(REVISION 0)
 -0,0
+1,18 
+PACKAGE ORG.APACHE.WS.JAXME.SQLS;
+
+/**
+ * THIS INTERFACE DESCRIBE THE POTENTIAL USE AS VIEW FOR A
STATEMENT
+ */
+PUBLIC INTERFACE VIEWABLESTATEMENT {
+
+	/** <P>CREATES A VIEW, WHICH MAY BE USED TO EMBED
THE STATEMENT INTO
+	 * A SEPARATE QUERY.</P>
+	 */
+	PUBLIC ABSTRACT TABLE CREATEVIEW(TABLE.NAME PNAME);
+
+	/** <P>CREATES A VIEW, WHICH MAY BE USED TO EMBED
THE STATEMENT INTO
+	 * A SEPARATE QUERY.</P>
+	 */
+	PUBLIC ABSTRACT TABLE CREATEVIEW(STRING PNAME);
+
+}
 NO NEWLINE AT END OF FILE


-- 
THIS MESSAGE IS AUTOMATICALLY GENERATED BY JIRA.
-
YOU CAN REPLY TO THIS EMAIL TO ADD A COMMENT TO THE ISSUE
ONLINE.


------------------------------------------------------------
---------
TO UNSUBSCRIBE, E-MAIL: JAXME-DEV-UNSUBSCRIBEWS.APACHE.ORG
FOR ADDITIONAL COMMANDS, E-MAIL: JAXME-DEV-HELPWS.APACHE.ORG


Updated: (JAXME-93) union statements as views
country flaguser name
United States
2007-08-20 08:57:31
     [
HTTPS://ISSUES.APACHE.ORG/JIRA/BROWSE/JAXME-93?PAGE=COM.ATLA
SSIAN.JIRA.PLUGIN.SYSTEM.ISSUETABPANELS:ALL-TABPANEL ]

TOBIAS HüHNER UPDATED JAXME-93:
-------------------------------

    ATTACHMENT: VIEW_JAXME.PATCH

PATCH

> UNION STATEMENTS AS VIEWS
> -------------------------
>
>                 KEY: JAXME-93
>                 URL:
HTTPS://ISSUES.APACHE.ORG/JIRA/BROWSE/JAXME-93
>             PROJECT: JAXME
>          ISSUE TYPE: IMPROVEMENT
>          COMPONENTS: JAXMEJS
>            REPORTER: TOBIAS HüHNER
>         ATTACHMENTS: VIEW_JAXME.PATCH
>
>
> INDEX:
D:/PROJEKTE/JUSTUS/WS-JAXME-0.5.3-SNAPSHOT/SRC/JS/ORG/APACHE
/WS/JAXME/SQLS/IMPL/SELECTCOMBINATIONSTATEMENTIMPL.JAVA
>
============================================================
=======
> ---
D:/PROJEKTE/JUSTUS/WS-JAXME-0.5.3-SNAPSHOT/SRC/JS/ORG/APACHE
/WS/JAXME/SQLS/IMPL/SELECTCOMBINATIONSTATEMENTIMPL.JAVA	(REV
ISION 567598)
> +++
D:/PROJEKTE/JUSTUS/WS-JAXME-0.5.3-SNAPSHOT/SRC/JS/ORG/APACHE
/WS/JAXME/SQLS/IMPL/SELECTCOMBINATIONSTATEMENTIMPL.JAVA	(WOR
KING COPY)
>  -7,6 +7,7 
>  IMPORT ORG.APACHE.WS.JAXME.SQLS.SQLFACTORY;
>  IMPORT
ORG.APACHE.WS.JAXME.SQLS.SELECTCOMBINATIONSTATEMENT;
>  IMPORT ORG.APACHE.WS.JAXME.SQLS.SELECTSTATEMENT;
> +IMPORT ORG.APACHE.WS.JAXME.SQLS.TABLE;
>  
>  
>  /**
>  -24,6 +25,17 
>      }
>  
>      PUBLIC ITERATOR GETSELECTSTATEMENTS() {
> -        RETURN STATEMENTS.ITERATOR();
> +        IF(STATEMENTS.ISEMPTY()){
> +			THROW NEW ILLEGALSTATEEXCEPTION("NO STATEMENT
DEFINED"); 
> +        }
> +    	RETURN STATEMENTS.ITERATOR();
>      }
> +    
> +	PUBLIC TABLE CREATEVIEW(TABLE.NAME PNAME) {
> +		RETURN
GETSQLFACTORY().GETOBJECTFACTORY().NEWVIEW(THIS,PNAME);
> +	}
> +
> +	PUBLIC TABLE CREATEVIEW(STRING PNAME) {
> +	    RETURN CREATEVIEW(PNAME == NULL ? NULL : NEW
TABLEIMPL.NAMEIMPL(PNAME));
> +	}
>  }
> INDEX:
D:/PROJEKTE/JUSTUS/WS-JAXME-0.5.3-SNAPSHOT/SRC/JS/ORG/APACHE
/WS/JAXME/SQLS/IMPL/SELECTCOMBINATIONVIEWIMPL.JAVA
>
============================================================
=======
> ---
D:/PROJEKTE/JUSTUS/WS-JAXME-0.5.3-SNAPSHOT/SRC/JS/ORG/APACHE
/WS/JAXME/SQLS/IMPL/SELECTCOMBINATIONVIEWIMPL.JAVA	(REVISION
0)
> +++
D:/PROJEKTE/JUSTUS/WS-JAXME-0.5.3-SNAPSHOT/SRC/JS/ORG/APACHE
/WS/JAXME/SQLS/IMPL/SELECTCOMBINATIONVIEWIMPL.JAVA	(REVISION
0)
>  -0,0 +1,126 
> +PACKAGE ORG.APACHE.WS.JAXME.SQLS.IMPL;
> +
> +
> +IMPORT JAVA.UTIL.ARRAYLIST;
> +IMPORT JAVA.UTIL.ITERATOR;
> +IMPORT JAVA.UTIL.LIST;
> +
> +IMPORT ORG.APACHE.WS.JAXME.SQLS.COLUMN;
> +IMPORT ORG.APACHE.WS.JAXME.SQLS.COLUMNREFERENCE;
> +IMPORT ORG.APACHE.WS.JAXME.SQLS.DELETESTATEMENT;
> +IMPORT ORG.APACHE.WS.JAXME.SQLS.FOREIGNKEY;
> +IMPORT ORG.APACHE.WS.JAXME.SQLS.INDEX;
> +IMPORT ORG.APACHE.WS.JAXME.SQLS.INSERTSTATEMENT;
> +IMPORT
ORG.APACHE.WS.JAXME.SQLS.SELECTCOMBINATIONSTATEMENT;
> +IMPORT ORG.APACHE.WS.JAXME.SQLS.SELECTSTATEMENT;
> +IMPORT ORG.APACHE.WS.JAXME.SQLS.TABLE;
> +IMPORT ORG.APACHE.WS.JAXME.SQLS.UPDATESTATEMENT;
> +IMPORT ORG.APACHE.WS.JAXME.SQLS.COLUMN.TYPE;
> +
> +PUBLIC CLASS SELECTCOMBINATIONVIEWIMPL EXTENDS
TABLEIMPL IMPLEMENTS TABLE {
> +	PRIVATE FINAL SELECTCOMBINATIONSTATEMENT STATEMENT;
> +
> +	PROTECTED
SELECTCOMBINATIONVIEWIMPL(SELECTCOMBINATIONSTATEMENT
PSTATEMENT, NAME PNAME) {
>
+		SUPER((GETFIRSTSTATEMENT(PSTATEMENT)).GETTABLEREFERENCE()
.GETTABLE().GETSCHEMA(),
> +				PNAME == NULL ?
(GETFIRSTSTATEMENT(PSTATEMENT)).GETTABLEREFERENCE().GETTABLE
().GETNAME() : PNAME);
> +		STATEMENT = PSTATEMENT;
> +	}
> +
> +	PRIVATE STATIC SELECTSTATEMENT
GETFIRSTSTATEMENT(SELECTCOMBINATIONSTATEMENT PSTATEMENT) {
> +		RETURN
(SELECTSTATEMENT)PSTATEMENT.GETSELECTSTATEMENTS().NEXT();
> +	}
> +
> +	PUBLIC FINAL SELECTCOMBINATIONSTATEMENT
GETSELECTCOMBINATIONSTATEMENT() {
> +		RETURN STATEMENT;
> +	}
> +    PRIVATE CLASS VIEWCOLUMNIMPL IMPLEMENTS COLUMN {
> +        PRIVATE FINAL COLUMN.NAME COLNAME;
> +        PRIVATE FINAL COLUMN COL;
> +        PRIVATE OBJECT DATA;
> +        PRIVATE VIEWCOLUMNIMPL(COLUMNREFERENCE
PCOLUMN) {
> +            COL = PCOLUMN.GETCOLUMN();
> +            COLUMN.NAME ALIAS = PCOLUMN.GETALIAS();
> +            COLNAME = ALIAS == NULL ? COL.GETNAME() :
ALIAS;
> +        }
> +        PUBLIC TABLE GETTABLE() { RETURN
SELECTCOMBINATIONVIEWIMPL.THIS; }
> +        PUBLIC NAME GETNAME() { RETURN COLNAME; }
> +        PUBLIC STRING GETQNAME() { RETURN GETTABLE() +
"." + GETNAME(); }
> +        PUBLIC TYPE GETTYPE() { RETURN COL.GETTYPE();
}
> +        PUBLIC BOOLEAN ISPRIMARYKEYPART() { RETURN
FALSE; }
> +        PUBLIC VOID SETNULLABLE(BOOLEAN PNULLABLE) {
> +            THROW NEW
ILLEGALSTATEEXCEPTION("UNABLE TO SET A VIEW COLUMNS
'NULLABLE' PROPERTY.");
> +        }
> +        PUBLIC BOOLEAN ISNULLABLE() { RETURN
COL.ISNULLABLE(); }
> +        PUBLIC BOOLEAN ISSTRINGCOLUMN() { RETURN
COL.ISSTRINGCOLUMN(); }
> +        PUBLIC BOOLEAN ISBINARYCOLUMN() { RETURN
COL.ISBINARYCOLUMN(); }
> +        PUBLIC VOID SETCUSTOMDATA(OBJECT PDATA) { DATA
= PDATA; }
> +        PUBLIC OBJECT GETCUSTOMDATA() { RETURN DATA;
}
> +        PUBLIC BOOLEAN ISVIRTUAL() { RETURN FALSE; }
> +    }
> +
> +    PUBLIC ITERATOR GETCOLUMNS() {
> +        LIST RESULT = NEW ARRAYLIST();
> +        FOR (ITERATOR ITER =
GETFIRSTSTATEMENT(STATEMENT).GETRESULTCOLUMNS(); 
ITER.HASNEXT();  ) {
> +            COLUMNREFERENCE COL = (COLUMNREFERENCE)
ITER.NEXT();
> +            RESULT.ADD(NEW VIEWCOLUMNIMPL(COL));
> +        }
> +        RETURN RESULT.ITERATOR();
> +    }
> +
> +    PUBLIC COLUMN GETCOLUMN(COLUMN.NAME PNAME) {
> +        IF (PNAME == NULL) {
> +            THROW NEW
NULLPOINTEREXCEPTION("COLUMN NAMES MUST NOT BE
NULL.");
> +         }
> +        FOR (ITERATOR ITER =
GETFIRSTSTATEMENT(STATEMENT).GETRESULTCOLUMNS(); 
ITER.HASNEXT();  ) {
> +            COLUMNREFERENCE COL = (COLUMNREFERENCE)
ITER.NEXT();
> +            COLUMN.NAME ALIAS = COL.GETALIAS();
> +            IF (ALIAS == NULL) {
> +            	ALIAS = COL.GETCOLUMN().GETNAME();
> +            }
> +            IF (ALIAS.EQUALS(PNAME)) {
> +                RETURN NEW VIEWCOLUMNIMPL(COL);
> +            }
> +        }
> +        RETURN NULL;
> +    }
> +	
> +    PUBLIC COLUMN NEWCOLUMN(COLUMN.NAME PNAME, TYPE
PTYPE) {
> +        THROW NEW ILLEGALSTATEEXCEPTION("A VIEWS
COLUMNS CANNOT BE CHANGED.");
> +    }
> +
> +    PUBLIC COLUMN NEWCOLUMN(STRING PNAME, TYPE PTYPE)
{
> +        THROW NEW ILLEGALSTATEEXCEPTION("A VIEWS
COLUMNS CANNOT BE CHANGED.");
> +    }
> +
> +    PUBLIC INDEX NEWKEY() {
> +        THROW NEW ILLEGALSTATEEXCEPTION("A VIEW
CANNOT HAVE KEYS.");
> +    }
> +    PUBLIC INDEX NEWINDEX() {
> +        THROW NEW ILLEGALSTATEEXCEPTION("A VIEW
CANNOT HAVE INDEXES.");
> +    }
> +    PUBLIC INDEX NEWPRIMARYKEY() {
> +        THROW NEW ILLEGALSTATEEXCEPTION("A VIEW
CANNOT HAVE A PRIMARY KEY.");
> +    }
> +    PUBLIC FOREIGNKEY NEWFOREIGNKEY(TABLE
PREFERENCEDTABLE) {
> +        THROW NEW ILLEGALSTATEEXCEPTION("A VIEW
CANNOT HAVE FOREIGN KEYS.");
> +    }
> +    PUBLIC INSERTSTATEMENT GETINSERTSTATEMENT() {
> +        THROW NEW ILLEGALSTATEEXCEPTION("A VIEW
IS NOT UPDATEABLE.");
> +    }
> +    PUBLIC UPDATESTATEMENT GETUPDATESTATEMENT() {
> +        THROW NEW ILLEGALSTATEEXCEPTION("A VIEW
IS NOT UPDATEABLE.");
> +    }
> +    PUBLIC DELETESTATEMENT GETDELETESTATEMENT() {
> +        THROW NEW ILLEGALSTATEEXCEPTION("A VIEW
IS NOT UPDATEABLE.");
> +    }
> +    PUBLIC INDEX GETPRIMARYKEY() {
> +        THROW NEW ILLEGALSTATEEXCEPTION("A VIEW
CANNOT HAVE A PRIMARY KEY.");
> +    }
> +    PUBLIC ITERATOR GETINDEXES() {
> +        THROW NEW ILLEGALSTATEEXCEPTION("A VIEW
CANNOT HAVE INDEXES.");
> +    }
> +    PUBLIC ITERATOR GETFOREIGNKEYS() {
> +        THROW NEW ILLEGALSTATEEXCEPTION("A VIEW
CANNOT HAVE FOREIGN KEYS.");
> +    }
> +
> +}
> INDEX:
D:/PROJEKTE/JUSTUS/WS-JAXME-0.5.3-SNAPSHOT/SRC/JS/ORG/APACHE
/WS/JAXME/SQLS/IMPL/OBJECTFACTORYIMPL.JAVA
>
============================================================
=======
> ---
D:/PROJEKTE/JUSTUS/WS-JAXME-0.5.3-SNAPSHOT/SRC/JS/ORG/APACHE
/WS/JAXME/SQLS/IMPL/OBJECTFACTORYIMPL.JAVA	(REVISION
567598)
> +++
D:/PROJEKTE/JUSTUS/WS-JAXME-0.5.3-SNAPSHOT/SRC/JS/ORG/APACHE
/WS/JAXME/SQLS/IMPL/OBJECTFACTORYIMPL.JAVA	(WORKING COPY)
>  -32,6 +32,7 
>  IMPORT ORG.APACHE.WS.JAXME.SQLS.TABLE;
>  IMPORT ORG.APACHE.WS.JAXME.SQLS.TABLEREFERENCE;
>  IMPORT
ORG.APACHE.WS.JAXME.SQLS.COMBINEDCONSTRAINT.TYPE;
> +IMPORT ORG.APACHE.WS.JAXME.SQLS.TABLE.NAME;
>  
>  
>  /** <P>DEFAULT IMPLEMENTATION OF THE OBJECT
FACTORY.</P>
>  -58,6 +59,12 
>      PUBLIC TABLE NEWVIEW(SELECTSTATEMENT
PSELECTSTATEMENT, TABLE.NAME PNAME) {
>          RETURN NEW VIEWIMPL(PSELECTSTATEMENT, PNAME);
>      }
> +	
> +    PUBLIC TABLE NEWVIEW(
> +			SELECTCOMBINATIONSTATEMENTIMPL
SELECTCOMBINATIONSTATEMENTIMPL,
> +			NAME NAME) {
> +		RETURN NEW
SELECTCOMBINATIONVIEWIMPL(SELECTCOMBINATIONSTATEMENTIMPL,NAM
E);
> +	}
>  
>      PUBLIC COMBINEDCONSTRAINT
NEWCOMBINEDCONSTRAINT(CONSTRAINEDSTATEMENT PSTATEMENT, TYPE
PTYPE) {
>          RETURN NEW COMBINEDCONSTRAINTIMPL(PSTATEMENT,
PTYPE);
>  -74,4 +81,5 
>  	PUBLIC EXPRESSION CREATEEXPRESSION(STATEMENT
PSTATEMENT, ORG.APACHE.WS.JAXME.SQLS.EXPRESSION.TYPE PTYPE)
{
>  		RETURN NEW EXPRESSIONIMPL(PSTATEMENT, PTYPE);
>  	}
> +
>  }
> INDEX:
D:/PROJEKTE/JUSTUS/WS-JAXME-0.5.3-SNAPSHOT/SRC/JS/ORG/APACHE
/WS/JAXME/SQLS/IMPL/SQLGENERATORIMPL.JAVA
>
============================================================
=======
> ---
D:/PROJEKTE/JUSTUS/WS-JAXME-0.5.3-SNAPSHOT/SRC/JS/ORG/APACHE
/WS/JAXME/SQLS/IMPL/SQLGENERATORIMPL.JAVA	(REVISION 567598)
> +++
D:/PROJEKTE/JUSTUS/WS-JAXME-0.5.3-SNAPSHOT/SRC/JS/ORG/APACHE
/WS/JAXME/SQLS/IMPL/SQLGENERATORIMPL.JAVA	(WORKING COPY)
>  -592,6 +592,9 
>          IF (T INSTANCEOF VIEWIMPL) {
>              VIEWIMPL V = (VIEWIMPL) T;
>              TABLENAME = "(" +
GETSELECTQUERY(V.GETVIEWSTATEMENT(), PDATA) +
")";
> +        } ELSE IF (T INSTANCEOF
SELECTCOMBINATIONVIEWIMPL) {
> +        	SELECTCOMBINATIONVIEWIMPL VIEW =
(SELECTCOMBINATIONVIEWIMPL) T;
> +        	TABLENAME = "(" +
GETQUERY(VIEW.GETSELECTCOMBINATIONSTATEMENT()) +
")";
>          } ELSE {
>              TABLENAME = PTABLE.GETTABLE().GETQNAME();
>          }
>  -1034,6 +1037,11 
>              CHECKSAMESTRUCTURE(FIRST, OTHER);
>              SB.APPEND(' ');
>              SB.APPEND(PSEP);
> +            IF(PSTATEMENT INSTANCEOF UNIONSTATEMENT)
{
> +           
	IF(((UNIONSTATEMENT)PSTATEMENT).ISALL(OTHER)){
> +                    SB.APPEND(" ALL");
> +            	}
> +            };
>              SB.APPEND(" (");
>              SB.APPEND(GETQUERY(OTHER));
>              SB.APPEND(')');
>  -1052,9 +1060,7 
>          } ELSE IF (PSTATEMENT INSTANCEOF
SELECTSTATEMENT) {
>              S = GETSELECTQUERY((SELECTSTATEMENT)
PSTATEMENT);
>          } ELSE IF (PSTATEMENT INSTANCEOF
UNIONSTATEMENT) {
> -            FINAL UNIONSTATEMENT US = (UNIONSTATEMENT)
PSTATEMENT;
> -            FINAL BOOLEAN ALL = US.ISALL();
> -            S = GETSELECTCOMBINATIONSTATEMENT(US, ALL
? "UNION ALL" : "UNION");
> +            S =
GETSELECTCOMBINATIONSTATEMENT((UNIONSTATEMENT) PSTATEMENT,
"UNION");
>          } ELSE IF (PSTATEMENT INSTANCEOF
INTERSECTIONSTATEMENT) {
>              S =
GETSELECTCOMBINATIONSTATEMENT((INTERSECTIONSTATEMENT)
PSTATEMENT, "INTERSECT");
>          } ELSE IF (PSTATEMENT INSTANCEOF
MINUSSTATEMENT) {
> INDEX:
D:/PROJEKTE/JUSTUS/WS-JAXME-0.5.3-SNAPSHOT/SRC/JS/ORG/APACHE
/WS/JAXME/SQLS/IMPL/UNIONSTATEMENTIMPL.JAVA
>
============================================================
=======
> ---
D:/PROJEKTE/JUSTUS/WS-JAXME-0.5.3-SNAPSHOT/SRC/JS/ORG/APACHE
/WS/JAXME/SQLS/IMPL/UNIONSTATEMENTIMPL.JAVA	(REVISION
567598)
> +++
D:/PROJEKTE/JUSTUS/WS-JAXME-0.5.3-SNAPSHOT/SRC/JS/ORG/APACHE
/WS/JAXME/SQLS/IMPL/UNIONSTATEMENTIMPL.JAVA	(WORKING COPY)
>  -1,6 +1,9 
>  PACKAGE ORG.APACHE.WS.JAXME.SQLS.IMPL;
>  
> +IMPORT JAVA.UTIL.HASHMAP;
> +
>  IMPORT ORG.APACHE.WS.JAXME.SQLS.SQLFACTORY;
> +IMPORT ORG.APACHE.WS.JAXME.SQLS.SELECTSTATEMENT;
>  IMPORT ORG.APACHE.WS.JAXME.SQLS.UNIONSTATEMENT;
>  
>  
>  -8,17 +11,28 
>   * DEFAULT IMPLEMENTATION OF {LINK UNIONSTATEMENT}.
>   */
>  PUBLIC CLASS UNIONSTATEMENTIMPL EXTENDS
SELECTCOMBINATIONSTATEMENTIMPL IMPLEMENTS UNIONSTATEMENT {
> -    PRIVATE BOOLEAN ALL;
> -    
> +	PRIVATE FINAL HASHMAP ALL = NEW HASHMAP(); 
> +	PRIVATE BOOLEAN FIRST = TRUE;
> +	
>      PROTECTED UNIONSTATEMENTIMPL(SQLFACTORY PFACTORY)
{
>          SUPER(PFACTORY);
>      }
>  
> -    PUBLIC BOOLEAN ISALL() {
> -        RETURN ALL;
> -    }
> +	PUBLIC VOID ADDSTATEMENT(SELECTSTATEMENT STATEMENT,
BOOLEAN PALL) {
> +		IF(FIRST && PALL){
> +			THROW NEW ILLEGALARGUMENTEXCEPTION(" PALL=TRUE
FOR FIRST STATEMENT IS NOT ALLOWED");
> +		}
> +		SUPER.ADDSTATEMENT(STATEMENT);
> +		ALL.PUT(STATEMENT,NEW BOOLEAN(PALL));
> +		FIRST = FALSE;
> +	}
> +	
> +	PUBLIC VOID ADDSTATEMENT(SELECTSTATEMENT STATEMENT)
{
> +		ADDSTATEMENT(STATEMENT,FALSE);
> +	}
>  
> -    PUBLIC VOID SETALL(BOOLEAN PALL) {
> -        ALL = PALL;
> -    }
> +	PUBLIC BOOLEAN ISALL(SELECTSTATEMENT STATEMENT) {
> +		RETURN
((BOOLEAN)ALL.GET(STATEMENT)).BOOLEANVALUE();
> +	}
> +
>  }
> INDEX:
D:/PROJEKTE/JUSTUS/WS-JAXME-0.5.3-SNAPSHOT/SRC/JS/ORG/APACHE
/WS/JAXME/SQLS/SELECTCOMBINATIONSTATEMENT.JAVA
>
============================================================
=======
> ---
D:/PROJEKTE/JUSTUS/WS-JAXME-0.5.3-SNAPSHOT/SRC/JS/ORG/APACHE
/WS/JAXME/SQLS/SELECTCOMBINATIONSTATEMENT.JAVA	(REVISION
567598)
> +++
D:/PROJEKTE/JUSTUS/WS-JAXME-0.5.3-SNAPSHOT/SRC/JS/ORG/APACHE
/WS/JAXME/SQLS/SELECTCOMBINATIONSTATEMENT.JAVA	(WORKING
COPY)
>  -7,10 +7,9 
>   * COMMON BASE INTERFACE FOR {LINK UNIONSTATEMENT}, AND
>   * {LINK INTERSECTIONSTATEMENT}.
>   */
> -PUBLIC INTERFACE SELECTCOMBINATIONSTATEMENT EXTENDS
STATEMENT {
> +PUBLIC INTERFACE SELECTCOMBINATIONSTATEMENT EXTENDS
STATEMENT, VIEWABLESTATEMENT {
>      /**
> -     * ADDS A SELECT STATEMENT TO THE GIVEN
"UNION", OR
> -     * "INTERSECTION" STATEMENT.
> +     * ADDS A SELECT STATEMENT TO THE GIVEN
"UNION", "INTERSECTION", OR
"MINUS" STATEMENT.
>       */
>      VOID ADDSTATEMENT(SELECTSTATEMENT PSTATEMENT);
>  
>  -18,4 +17,5 
>       * RETURNS AN ITERATOR OVER ALL THE SELECT
STATEMENTS.
>       */
>      ITERATOR GETSELECTSTATEMENTS();
> +
>  }
> INDEX:
D:/PROJEKTE/JUSTUS/WS-JAXME-0.5.3-SNAPSHOT/SRC/JS/ORG/APACHE
/WS/JAXME/SQLS/OBJECTFACTORY.JAVA
>
============================================================
=======
> ---
D:/PROJEKTE/JUSTUS/WS-JAXME-0.5.3-SNAPSHOT/SRC/JS/ORG/APACHE
/WS/JAXME/SQLS/OBJECTFACTORY.JAVA	(REVISION 567598)
> +++
D:/PROJEKTE/JUSTUS/WS-JAXME-0.5.3-SNAPSHOT/SRC/JS/ORG/APACHE
/WS/JAXME/SQLS/OBJECTFACTORY.JAVA	(WORKING COPY)
>  -16,6 +16,8 
>  PACKAGE ORG.APACHE.WS.JAXME.SQLS;
>  
>  IMPORT ORG.APACHE.WS.JAXME.SQLS.EXPRESSION.TYPE;
> +IMPORT ORG.APACHE.WS.JAXME.SQLS.TABLE.NAME;
> +IMPORT
ORG.APACHE.WS.JAXME.SQLS.IMPL.SELECTCOMBINATIONSTATEMENTIMPL
;
>  
>  
>  /** A FACTORY OBJECT FOR CREATING ALL THE OBJECTS USED
BY
>  -46,6 +48,16 
>       */
>      PUBLIC TABLE NEWVIEW(SELECTSTATEMENT
PSELECTSTATEMENT, TABLE.NAME PNAME);
>  
> +    /** RETURNS AN INSTANCE OF
> +     * {LINK ORG.APACHE.WS.JAXME.SQLS.TABLE},
WHICH ALLOWS TO EMBED
> +     * THE GIVEN INSTANCE OF
> +     * {LINK
ORG.APACHE.WS.JAXME.SQLS.SELECTCOMBINATIONSTATEMENT} INTO
ANOTHER
> +     * SELECT STATEMENT.
> +     */
> +    PUBLIC TABLE NEWVIEW(
> +			SELECTCOMBINATIONSTATEMENTIMPL
SELECTCOMBINATIONSTATEMENTIMPL,
> +			NAME NAME);
> +
>      /** CREATES A NEW INSTANCE OF
>       * {LINK ORG.APACHE.WS.JAXME.SQLS.CONSTRAINT}
CONSTRAINING
>       * THE GIVEN {LINK
ORG.APACHE.WS.JAXME.SQLS.CONSTRAINEDSTATEMENT}.
>  -64,4 +76,5 
>  	/** CREATES A NEW INSTANCE OF {LINK EXPRESSION}.
>  	 */
>  	PUBLIC EXPRESSION CREATEEXPRESSION(STATEMENT
PSTATEMENT, TYPE SUM);
> +
>  }
> INDEX:
D:/PROJEKTE/JUSTUS/WS-JAXME-0.5.3-SNAPSHOT/SRC/JS/ORG/APACHE
/WS/JAXME/SQLS/SELECTSTATEMENT.JAVA
>
============================================================
=======
> ---
D:/PROJEKTE/JUSTUS/WS-JAXME-0.5.3-SNAPSHOT/SRC/JS/ORG/APACHE
/WS/JAXME/SQLS/SELECTSTATEMENT.JAVA	(REVISION 567598)
> +++
D:/PROJEKTE/JUSTUS/WS-JAXME-0.5.3-SNAPSHOT/SRC/JS/ORG/APACHE
/WS/JAXME/SQLS/SELECTSTATEMENT.JAVA	(WORKING COPY)
>  -23,7 +23,7 
>   *
>   * AUTHOR <A HREF="MAILTO:JOEISPSOFT.DE">JOCHEN WIEDMANN</A>
>   */
> -PUBLIC INTERFACE SELECTSTATEMENT EXTENDS
CONSTRAINEDSTATEMENT {
> +PUBLIC INTERFACE SELECTSTATEMENT EXTENDS
CONSTRAINEDSTATEMENT,VIEWABLESTATEMENT {
>  	/** PROVIDES A SINGLE COLUMN FOR AN <CODE>ORDER
BY</CODE>
>       * CLAUSE.
>  	 */
>  -111,14 +111,4 
>      */
>     PUBLIC INT GETSKIPPEDROWS();
>  
> -   /** <P>CREATES A VIEW, WHICH MAY BE USED TO
EMBED THE STATEMENT INTO
> -    * A SEPARATE QUERY.</P>
> -    */
> -   PUBLIC TABLE CREATEVIEW(TABLE.NAME PNAME);
> -
> -
> -   /** <P>CREATES A VIEW, WHICH MAY BE USED TO
EMBED THE STATEMENT INTO
> -    * A SEPARATE QUERY.</P>
> -    */
> -   PUBLIC TABLE CREATEVIEW(STRING PNAME);
>  }
> INDEX:
D:/PROJEKTE/JUSTUS/WS-JAXME-0.5.3-SNAPSHOT/SRC/JS/ORG/APACHE
/WS/JAXME/SQLS/JUNIT/CREATETEST.JAVA
>
============================================================
=======
> ---
D:/PROJEKTE/JUSTUS/WS-JAXME-0.5.3-SNAPSHOT/SRC/JS/ORG/APACHE
/WS/JAXME/SQLS/JUNIT/CREATETEST.JAVA	(REVISION 567598)
> +++
D:/PROJEKTE/JUSTUS/WS-JAXME-0.5.3-SNAPSHOT/SRC/JS/ORG/APACHE
/WS/JAXME/SQLS/JUNIT/CREATETEST.JAVA	(WORKING COPY)
>  -458,7 +458,7 
>  		ASSERTEQUALS(EXPECT, GOT);
>  	}
>  
> -	/** TEST FOR UNION AND UNION ALL.
> +	/** TEST FOR UNION.
>  	 */
>  	PUBLIC VOID TESTUNION() {
>          UNIONSTATEMENT US =
GETSQLFACTORY().NEWUNIONSTATEMENT();
>  -467,7 +467,23 
>          STRING GOT = GEN.GETQUERY(US);
>          STRING EXPECT = "(SELECT MYINDEX, MYNAME,
MYDATE FROM MYSCHEMA.MYTABLE WHERE 'MYINDEX'>5) UNION
(SELECT MYINDEX, MYNAME, MYDATE FROM MYSCHEMA.MYTABLE WHERE
'MYNAME' LIKE 'X%')";
>          ASSERTEQUALS(EXPECT, GOT);
> -        US.SETALL(TRUE);
> +	}
> +	/** TEST FOR UNION ALL.
> +	 */
> +	PUBLIC VOID TESTUNIONALL() {
> +        UNIONSTATEMENT US =
GETSQLFACTORY().NEWUNIONSTATEMENT();
> +	    TABLE T = GETBASICTABLE();
> +		SELECTSTATEMENT ST1 = T.GETSELECTSTATEMENT();
> +		SELECTSTATEMENT ST2 = T.GETSELECTSTATEMENT();
> +		BOOLEANCONSTRAINT BC1 = ST1.GETWHERE().CREATEGT();
> +		BC1.ADDPART("MYINDEX");
> +		BC1.ADDPART(5);
> +		BOOLEANCONSTRAINT BC2 =
ST2.GETWHERE().CREATELIKE();
> +		BC2.ADDPART("MYNAME");
> +		BC2.ADDPART("X%");
> +		US.ADDSTATEMENT(ST1);
> +		US.ADDSTATEMENT(ST2,TRUE);
> +        SQLGENERATOR GEN = GETSQLGENERATOR();
>          STRING GOTALL = GEN.GETQUERY(US);
>          STRING EXPECTALL = "(SELECT MYINDEX,
MYNAME, MYDATE FROM MYSCHEMA.MYTABLE WHERE 'MYINDEX'>5)
UNION ALL (SELECT MYINDEX, MYNAME, MYDATE FROM
MYSCHEMA.MYTABLE WHERE 'MYNAME' LIKE 'X%')";
>          ASSERTEQUALS(EXPECTALL, GOTALL);
>  -516,4 +532,21 
>              // OK
>          }
>      }
> +
> +	/** TEST FOR UNION AND UNION ALL.
> +	 */
> +	PUBLIC VOID TESTUNIONVIEW() {
> +        UNIONSTATEMENT US =
GETSQLFACTORY().NEWUNIONSTATEMENT();
> +	    CREATESELECTCOMBINATIONSTATEMENT(US);
> +	    TABLE VIEW = US.CREATEVIEW((STRING)NULL);
> +	    // SELECTSTATEMNT ST = SELECT * FROM VIEW ...
> +	    SELECTSTATEMENT ST =
GETSQLFACTORY().NEWSELECTSTATEMENT();
> +	    ST.SETTABLE(VIEW);
> +	    
> +	    SQLGENERATOR GEN = GETSQLGENERATOR();
> +        STRING GOT = GEN.GETQUERY(ST);
> +        STRING EXPECT = "SELECT * FROM ((SELECT
MYINDEX, MYNAME, MYDATE FROM MYSCHEMA.MYTABLE WHERE
'MYINDEX'>5) UNION (SELECT MYINDEX, MYNAME, MYDATE FROM
MYSCHEMA.MYTABLE WHERE 'MYNAME' LIKE 'X%'))";
> +        ASSERTEQUALS(EXPECT, GOT);
> +	}
> +
>  }
> INDEX:
D:/PROJEKTE/JUSTUS/WS-JAXME-0.5.3-SNAPSHOT/SRC/JS/ORG/APACHE
/WS/JAXME/SQLS/UNIONSTATEMENT.JAVA
>
============================================================
=======
> ---
D:/PROJEKTE/JUSTUS/WS-JAXME-0.5.3-SNAPSHOT/SRC/JS/ORG/APACHE
/WS/JAXME/SQLS/UNIONSTATEMENT.JAVA	(REVISION 567598)
> +++
D:/PROJEKTE/JUSTUS/WS-JAXME-0.5.3-SNAPSHOT/SRC/JS/ORG/APACHE
/WS/JAXME/SQLS/UNIONSTATEMENT.JAVA	(WORKING COPY)
>  -6,14 +6,15 
>   */
>  PUBLIC INTERFACE UNIONSTATEMENT EXTENDS
SELECTCOMBINATIONSTATEMENT {
>      /**
> +     * ADDS A SELECT STATEMENT TO THE GIVEN
"UNION", "INTERSECTION", OR
"MINUS" STATEMENT.
>       * SETS, WHETHER THIS IS A "UNION ALL"
STATEMENT. BY DEFAULT,
>       * IT ISN'T.
>       */
> -    VOID SETALL(BOOLEAN PALL);
> -
> +    VOID ADDSTATEMENT(SELECTSTATEMENT
PSTATEMENT,BOOLEAN ALL);
> +    
>      /**
> -     * RETURNS, WHETHER THIS IS A "UNION
ALL" STATEMENT. BY DEFAULT,
> -     * IT ISN'T.
> +     * IS 'UNION ALL' STATEMENT
>       */
> -    BOOLEAN ISALL();
> +    BOOLEAN ISALL(SELECTSTATEMENT PSTATEMENT);
> +
>  }
> INDEX:
D:/PROJEKTE/JUSTUS/WS-JAXME-0.5.3-SNAPSHOT/SRC/JS/ORG/APACHE
/WS/JAXME/SQLS/VIEWABLESTATEMENT.JAVA
>
============================================================
=======
> ---
D:/PROJEKTE/JUSTUS/WS-JAXME-0.5.3-SNAPSHOT/SRC/JS/ORG/APACHE
/WS/JAXME/SQLS/VIEWABLESTATEMENT.JAVA	(REVISION 0)
> +++
D:/PROJEKTE/JUSTUS/WS-JAXME-0.5.3-SNAPSHOT/SRC/JS/ORG/APACHE
/WS/JAXME/SQLS/VIEWABLESTATEMENT.JAVA	(REVISION 0)
>  -0,0 +1,18 
> +PACKAGE ORG.APACHE.WS.JAXME.SQLS;
> +
> +/**
> + * THIS INTERFACE DESCRIBE THE POTENTIAL USE AS VIEW
FOR A STATEMENT
> + */
> +PUBLIC INTERFACE VIEWABLESTATEMENT {
> +
> +	/** <P>CREATES A VIEW, WHICH MAY BE USED TO
EMBED THE STATEMENT INTO
> +	 * A SEPARATE QUERY.</P>
> +	 */
> +	PUBLIC ABSTRACT TABLE CREATEVIEW(TABLE.NAME PNAME);
> +
> +	/** <P>CREATES A VIEW, WHICH MAY BE USED TO
EMBED THE STATEMENT INTO
> +	 * A SEPARATE QUERY.</P>
> +	 */
> +	PUBLIC ABSTRACT TABLE CREATEVIEW(STRING PNAME);
> +
> +}
>  NO NEWLINE AT END OF FILE

-- 
THIS MESSAGE IS AUTOMATICALLY GENERATED BY JIRA.
-
YOU CAN REPLY TO THIS EMAIL TO ADD A COMMENT TO THE ISSUE
ONLINE.


------------------------------------------------------------
---------
TO UNSUBSCRIBE, E-MAIL: JAXME-DEV-UNSUBSCRIBEWS.APACHE.ORG
FOR ADDITIONAL COMMANDS, E-MAIL: JAXME-DEV-HELPWS.APACHE.ORG


[1-2]

about | contact  Other archives ( Real Estate discussion Medical topics )