Comment : Charset=windows-1252
Request : assert attribute,attribute(tuple(attributename(int1)typename(int)))
Reply   : 

Request : cmd(assert relvar,relvar(tuple(relvarname(dbcroagg)relvarpredicate(integer int1.))))cmd(assert relvarattribute,relvarattribute(tuple(relvarname(dbcroagg)attributename(int1))))
Reply   : 

Request : cmd(assert dbmsfile,dbmsfile(tuple(filename(dbcroagg.spdb)pagesize(8192))))cmd(assert storagespace,storagespace(tuple(filename(dbcroagg.spdb)extentscount(2)pagecount(2)storagespaceid(1))tuple(filename(dbcroagg.spdb)extentscount(2)pagecount(2)storagespaceid(2))))cmd(assert dataspace,dataspace(tuple(filename(dbcroagg.spdb)storagespaceid(1)gapcompressionthreshold(5)maximumgaps(9))))cmd(assert multihashingindexspace,multihashingindexspace(tuple(filename(dbcroagg.spdb)storagespaceid(2)gapcompressionthreshold(5)maximumgaps(9))))
Reply   : 

Request : cmd(assert recordtype,recordtype(tuple(filename(dbcroagg.spdb)storagespaceid(1)recordtypename(r_dbcroagg)indexname(l_r_dbcroagg)relvarname(dbcroagg))))cmd(assert index,index(tuple(filename(dbcroagg.spdb)storagespaceid(2)recordtypename(r_dbcroagg)relvarname(dbcroagg)indexname(l_r_dbcroagg))))cmd(assert recordattribute,recordattribute(tuple(recordtypename(r_dbcroagg)relvarname(dbcroagg)attributename(int1)ordinal(10))))cmd(assert indexcomponent,indexcomponent(tuple(relvarname(dbcroagg)indexname(l_r_dbcroagg)ordinal(10)sp_expression(int1))))
Reply   : 

Request : endtransaction
Reply   : 

Comment : test cases for the use of aggregate in database constraints

Comment : make empty
Request : starttransaction empty,autocommit
Reply   : 
Request : delete dbcroagg,dbcroagg
Reply   : 
Request : endtransaction empty
Reply   : 

Comment : try to define the databaseconstraint - should fail on empty relvar
Request : starttransaction constraint,autocommit
Reply   : 
Request : cmd(add databaseconstraint,databaseconstraint(tuple(constraintlabel(there should be 3 tuples and their sum should be 17)errorcode(121161)sp_expression(minus\(aggregate\(dbcroagg,\(count\(plus\(int\(1\)\)\)sum\(plus\(int1\)\)\)\),relation\(heading\(sum\(int\)count\(int\)\)body\(tuple\(sum\(17\)count\(3\)\)\)\)\)))))cmd(add constraintmessagetext,constraintmessagetext(tuple(errorcode(121161)constraintmessagetext(there are count tuples and their sum is sum.))))
Reply   : 1497858657:107:A problem prevented a commit from completing successfully, exception type was be.SIRAPRISE.server.DBMSRuntimeException, exception message was Database constraint MINUS(AGGREGATE(AGRDBC1A,(COUNT(PLUS(INT(1)))SUM(PLUS(INT1)))),RELATION(HEADING(SUM(INT)COUNT(INT))BODY(TUPLE(SUM(17)COUNT(3))))) could not be added to the database because existing data violates the constraint.  First violating tuple is TUPLE(COUNT(0)SUM(0))..
Request : endtransaction constraint
Reply   : 

Comment : now assign the value that satisfies the constraint
Request : starttransaction assign,autocommit
Reply   : 
Request : add dbcroagg,dbcroagg(tuple(int1(1))tuple(int1(7))tuple(int1(9)))
Reply   : 
Request : endtransaction assign
Reply   : 

Comment : now enter the constraint - should now work
Request : starttransaction constraint,autocommit
Reply   : 
Request : cmd(add databaseconstraint,databaseconstraint(tuple(constraintlabel(there should be 3 tuples and their sum should be 17)errorcode(121161)sp_expression(minus\(aggregate\(dbcroagg,\(count\(plus\(int\(1\)\)\)sum\(plus\(int1\)\)\)\),relation\(heading\(sum\(int\)count\(int\)\)body\(tuple\(sum\(17\)count\(3\)\)\)\)\)))))cmd(add constraintmessagetext,constraintmessagetext(tuple(errorcode(121161)constraintmessagetext(there are count tuples and their sum is sum.))))
Reply   : 
Request : endtransaction constraint
Reply   : 

Comment : now try some stuff
Request : starttransaction assign,autocommit
Reply   : 
Request : cmd(add dbcroagg,dbcroagg(tuple(int1(5))))cmd(update dbcroagg,dbcroagg(tuple(int1(9))),(int1(int(4))))
Reply   : 201806116:121161:There are 4 tuples and their sum is 17.

Request : cmd(update dbcroagg,dbcroagg(tuple(int1(9))),(int1(int(4))))
Reply   : 201806116:121161:There are 3 tuples and their sum is 12.

Request : cmd(update dbcroagg,dbcroagg(tuple(int1(9))),(int1(int(4))))cmd(update dbcroagg,dbcroagg(tuple(int1(7))),(int1(int(12))))
Reply   : 
Request : endtransaction assign
Reply   : 

Comment : now clean up the databaseconstraint again to be able to re-run the script
Request : starttransaction constraint,autocommit
Reply   : 
Request : cmd(delete databaseconstraint,databaseconstraint(tuple(constraintlabel(there should be 3 tuples and their sum should be 17)errorcode(121161)sp_expression(minus\(aggregate\(dbcroagg,\(count\(plus\(int\(1\)\)\)sum\(plus\(int1\)\)\)\),relation\(heading\(sum\(int\)count\(int\)\)body\(tuple\(sum\(17\)count\(3\)\)\)\)\)))))cmd(delete constraintmessagetext,constraintmessagetext(tuple(errorcode(121161)constraintmessagetext(there are count tuples and their sum is sum.))))
Reply   : 
Request : endtransaction constraint
Reply   : 

Comment : make empty
Request : starttransaction empty,autocommit
Reply   : 
Request : delete dbcroagg,dbcroagg
Reply   : 
Request : endtransaction empty
Reply   : 

Request : cmd(unassert recordtype,recordtype(tuple(filename(dbcroagg.spdb)storagespaceid(1)recordtypename(r_dbcroagg)indexname(l_r_dbcroagg)relvarname(dbcroagg))))cmd(unassert index,index(tuple(filename(dbcroagg.spdb)storagespaceid(2)recordtypename(r_dbcroagg)relvarname(dbcroagg)indexname(l_r_dbcroagg))))cmd(unassert recordattribute,recordattribute(tuple(recordtypename(r_dbcroagg)relvarname(dbcroagg)attributename(int1)ordinal(10))))cmd(unassert indexcomponent,indexcomponent(tuple(relvarname(dbcroagg)indexname(l_r_dbcroagg)ordinal(10)sp_expression(int1))))
Reply   : 

Request : cmd(unassert dbmsfile,dbmsfile(tuple(filename(dbcroagg.spdb)pagesize(8192))))cmd(unassert storagespace,storagespace(tuple(filename(dbcroagg.spdb)extentscount(2)pagecount(2)storagespaceid(1))tuple(filename(dbcroagg.spdb)extentscount(2)pagecount(2)storagespaceid(2))))cmd(unassert dataspace,dataspace(tuple(filename(dbcroagg.spdb)storagespaceid(1)gapcompressionthreshold(5)maximumgaps(9))))cmd(unassert multihashingindexspace,multihashingindexspace(tuple(filename(dbcroagg.spdb)storagespaceid(2)gapcompressionthreshold(5)maximumgaps(9))))
Reply   : 

Request : cmd(unassert relvar,relvar(tuple(relvarname(dbcroagg)relvarpredicate(integer int1.))))cmd(unassert relvarattribute,relvarattribute(tuple(relvarname(dbcroagg)attributename(int1))))
Reply   : 

Request : unassert attribute,semiminus(attribute(tuple(attributename(int1)typename(int))),relvarattribute)
Reply   : 

END
