|
List Info
Thread: Created: (JAXME-93) union statements as views
|
|
| Created: (JAXME-93) union statements as
views |
  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:JOE ISPSOFT.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-UNSUBSCRIBE WS.APACHE.ORG
FOR ADDITIONAL COMMANDS, E-MAIL: JAXME-DEV-HELP WS.APACHE.ORG
|
|
| Updated: (JAXME-93) union statements as
views |
  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:JOE ISPSOFT.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-UNSUBSCRIBE WS.APACHE.ORG
FOR ADDITIONAL COMMANDS, E-MAIL: JAXME-DEV-HELP WS.APACHE.ORG
|
|
[1-2]
|
|