Comment : Charset=windows-1252
Comment : test-cases for non-user-related transaction constraints
Request : assert attribute,attribute(tuple(attributename(scalar1)typename(long))tuple(attributename(scalar2)typename(long))tuple(attributename(scalar3)typename(long))tuple(attributename(scalar4)typename(long)))
Reply   : 

Request : cmd(assert relvar,relvar(tuple(relvarname(dbmtda)relvarpredicate(scalar1 and scalar2.))tuple(relvarname(dbmtdar)relvarpredicate(sum scalar3 and difference scalar4.))))cmd(assert relvarattribute,relvarattribute(tuple(relvarname(dbmtda)attributename(scalar1))tuple(relvarname(dbmtda)attributename(scalar2))tuple(relvarname(dbmtdar)attributename(scalar3))tuple(relvarname(dbmtdar)attributename(scalar4))))
Reply   : 

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

Request : cmd(assert recordtype,recordtype(tuple(indexname(l_r_dbmtda)filename(dbmtda.spdb)storagespaceid(1)recordtypename(r_dbmtda)relvarname(dbmtda))tuple(indexname(l_r_dbmtdar)filename(dbmtda.spdb)storagespaceid(1)recordtypename(r_dbmtdar)relvarname(dbmtdar))))cmd(assert index,index(tuple(filename(dbmtda.spdb)storagespaceid(2)recordtypename(r_dbmtda)relvarname(dbmtda)indexname(l_r_dbmtda))tuple(filename(dbmtda.spdb)storagespaceid(2)recordtypename(r_dbmtdar)relvarname(dbmtdar)indexname(l_r_dbmtdar))))cmd(assert recordattribute,recordattribute(tuple(recordtypename(r_dbmtda)relvarname(dbmtda)attributename(scalar1)ordinal(10))tuple(recordtypename(r_dbmtda)relvarname(dbmtda)attributename(scalar2)ordinal(20))tuple(recordtypename(r_dbmtdar)relvarname(dbmtdar)attributename(scalar3)ordinal(10))tuple(recordtypename(r_dbmtdar)relvarname(dbmtdar)attributename(scalar4)ordinal(20))))cmd(assert indexcomponent,indexcomponent(tuple(relvarname(dbmtda)indexname(l_r_dbmtda)ordinal(10)sp_expression(scalar1))tuple(relvarname(dbmtda)indexname(l_r_dbmtda)ordinal(20)sp_expression(scalar2))tuple(relvarname(dbmtdar)indexname(l_r_dbmtdar)ordinal(10)sp_expression(scalar3))tuple(relvarname(dbmtdar)indexname(l_r_dbmtdar)ordinal(20)sp_expression(scalar4))))
Reply   : 

Comment : test-cases for triggered data actions
Request : delete dbmtda,dbmtda
Reply   : 
Request : delete dbmtdar,dbmtdar
Reply   : 
Request : commit
Reply   : 

Request : assert triggereddataaction,triggereddataaction(tuple(relvarname(dbmtda)targetrelvarname(dbmtdar)dataactionname(aa)operationtype(2)triggeredoperationtype(2)bypassassgconstraints(false)isdistinct(false)sp_expression(transform\(inserts\(dbmtda\),\(scalar3\(plus\(scalar1,scalar2\)\),scalar4\(sub\(scalar1,scalar2\)\)\)\))))
Reply   : 
Request : commit
Reply   : 

Request : add dbmtda,dbmtda(tuple(scalar1(5)scalar2(3)))
Reply   : 
Request : inquire dbmtda
Reply   : RELATION(HEADING(SCALAR1(LONG)SCALAR2(LONG))BODY(TUPLE(SCALAR1(5)SCALAR2(3))))
Request : inquire dbmtdar
Reply   : RELATION(HEADING(SCALAR4(LONG)SCALAR3(LONG))BODY(TUPLE(SCALAR4(2)SCALAR3(8))))
Request : commit
Reply   : 

Comment : test the distinctness rule for the target : should pass
Request : add dbmtdar,dbmtdar(tuple(scalar3(5)scalar4(3)))
Reply   : 
Request : add dbmtda,dbmtda(tuple(scalar1(4)scalar2(1)))
Reply   : 
Request : inquire dbmtda
Reply   : RELATION(HEADING(SCALAR1(LONG)SCALAR2(LONG))BODY(TUPLE(SCALAR1(4)SCALAR2(1))TUPLE(SCALAR1(5)SCALAR2(3))))
Request : inquire dbmtdar
Reply   : RELATION(HEADING(SCALAR4(LONG)SCALAR3(LONG))BODY(TUPLE(SCALAR4(2)SCALAR3(8))TUPLE(SCALAR4(3)SCALAR3(5))))
Request : rollback
Reply   : 

Comment : now set the action to be distinct on the target
Request : update triggereddataaction,restrict(triggereddataaction,eq(dataactionname,name(aa))),(isdistinct(true))
Reply   : 

Comment : test the distinctness rule for the target : should now fail
Request : add dbmtdar,dbmtdar(tuple(scalar3(5)scalar4(3)))
Reply   : 
Request : add dbmtda,dbmtda(tuple(scalar1(4)scalar2(1)))
Reply   : 1497858657:544:A triggered distinct operation of type INSERT for tuple TUPLE(SCALAR4(3)SCALAR3(5)) on relvar dbmtdaR generated by data action NAME(AA) could not be satisfied.
Request : inquire dbmtda
Reply   : RELATION(HEADING(SCALAR1(LONG)SCALAR2(LONG))BODY(TUPLE(SCALAR1(5)SCALAR2(3))))
Request : inquire dbmtdar
Reply   : RELATION(HEADING(SCALAR4(LONG)SCALAR3(LONG))BODY(TUPLE(SCALAR4(2)SCALAR3(8))TUPLE(SCALAR4(3)SCALAR3(5))))
Request : rollback
Reply   : 

Comment : test the bypass constraints rule : add a prohibitive assignment constraint to dbmtdar
Request : assert assignmentconstraint,assignmentconstraint(tuple(constraintlabel(nothing goes in)errorcode(181011)sp_expression(insertssac\(dbmtdar\))))
Reply   : 
Request : assert assignmentconstraintcheck,assignmentconstraintcheck(tuple(relvarname(dbmtdar)operationtype(2)errorcode(181011)))
Reply   : 
Request : commit
Reply   : 

Request : inquire dbmtda
Reply   : RELATION(HEADING(SCALAR1(LONG)SCALAR2(LONG))BODY(TUPLE(SCALAR1(5)SCALAR2(3))))
Request : inquire dbmtdar
Reply   : RELATION(HEADING(SCALAR4(LONG)SCALAR3(LONG))BODY(TUPLE(SCALAR4(2)SCALAR3(8))))
Comment : now any add should fail
Request : add dbmtda,dbmtda(tuple(scalar1(4)scalar2(1)))
Reply   : 201806116:181011:The violating tuple's meaning is 'Sum 5 and difference 3.'.
Request : inquire dbmtda
Reply   : RELATION(HEADING(SCALAR1(LONG)SCALAR2(LONG))BODY(TUPLE(SCALAR1(5)SCALAR2(3))))
Request : inquire dbmtdar
Reply   : RELATION(HEADING(SCALAR4(LONG)SCALAR3(LONG))BODY(TUPLE(SCALAR4(2)SCALAR3(8))))
Request : add dbmtda,dbmtda(tuple(scalar1(14)scalar2(11)))
Reply   : 201806116:181011:The violating tuple's meaning is 'Sum 25 and difference 3.'.
Request : inquire dbmtda
Reply   : RELATION(HEADING(SCALAR1(LONG)SCALAR2(LONG))BODY(TUPLE(SCALAR1(5)SCALAR2(3))))
Request : inquire dbmtdar
Reply   : RELATION(HEADING(SCALAR4(LONG)SCALAR3(LONG))BODY(TUPLE(SCALAR4(2)SCALAR3(8))))
Request : rollback
Reply   : 

Comment : now set action to bypass assignment constraints
Request : update triggereddataaction,restrict(triggereddataaction,eq(dataactionname,name(aa))),(bypassassgconstraints(true))
Reply   : 
Request : commit
Reply   : 

Comment : now add should pass
Request : add dbmtda,dbmtda(tuple(scalar1(4)scalar2(1)))
Reply   : 
Request : inquire dbmtda
Reply   : RELATION(HEADING(SCALAR1(LONG)SCALAR2(LONG))BODY(TUPLE(SCALAR1(4)SCALAR2(1))TUPLE(SCALAR1(5)SCALAR2(3))))
Request : inquire dbmtdar
Reply   : RELATION(HEADING(SCALAR4(LONG)SCALAR3(LONG))BODY(TUPLE(SCALAR4(2)SCALAR3(8))TUPLE(SCALAR4(3)SCALAR3(5))))
Request : add dbmtda,dbmtda(tuple(scalar1(14)scalar2(11)))
Reply   : 
Request : inquire dbmtda
Reply   : RELATION(HEADING(SCALAR1(LONG)SCALAR2(LONG))BODY(TUPLE(SCALAR1(4)SCALAR2(1))TUPLE(SCALAR1(5)SCALAR2(3))TUPLE(SCALAR1(14)SCALAR2(11))))
Request : inquire dbmtdar
Reply   : RELATION(HEADING(SCALAR4(LONG)SCALAR3(LONG))BODY(TUPLE(SCALAR4(2)SCALAR3(8))TUPLE(SCALAR4(3)SCALAR3(5))TUPLE(SCALAR4(3)SCALAR3(25))))
Request : commit
Reply   : 

Comment : clear the assignment constraint
Request : unassert assignmentconstraintcheck,assignmentconstraintcheck(tuple(relvarname(dbmtdar)operationtype(2)errorcode(181011)))
Reply   : 
Request : unassert assignmentconstraint,assignmentconstraint(tuple(constraintlabel(nothing goes in)errorcode(181011)sp_expression(insertssac\(dbmtdar\))))
Reply   : 
Request : commit
Reply   : 

Comment : clear the action
Request : delete triggereddataaction,restrict(triggereddataaction,eq(dataactionname,name(aa)))
Reply   : 
Request : commit
Reply   : 

Comment : clear the data
Request : delete dbmtda,dbmtda
Reply   : 
Request : delete dbmtdar,dbmtdar
Reply   : 
Request : commit
Reply   : 

Comment : test cases for using virtual relvars in triggered data actions

Request : delete dbmtda,dbmtda
Reply   : 
Request : delete dbmtdar,dbmtdar
Reply   : 
Request : commit
Reply   : 

Comment : viewexpression : update if it exists, assert if it doesn't
Request : update virtualrelvar,restrict(virtualrelvar,eq(relvarname,name(v_vrttda1))),(sp_expression(string(table_dum)))
Reply   : 
Request : assert virtualrelvar,virtualrelvar(tuple(relvarname(v_vrttda1)sp_expression(string(table_dum))))
Reply   : 

Request : assert triggereddataaction,triggereddataaction(tuple(relvarname(dbmtda)targetrelvarname(dbmtdar)dataactionname(aa)operationtype(2)triggeredoperationtype(2)bypassassgconstraints(false)isdistinct(false)sp_expression(transform\(join\(v_vrttda1,inserts\(dbmtda\)\),\(scalar3\(plus\(scalar1,scalar2\)\),scalar4\(sub\(scalar1,scalar2\)\)\)\))))
Reply   : 
Request : commit
Reply   : 

Comment : do an insert - no triggered insert should appear in trgda1r
Request : add dbmtda,dbmtda(tuple(scalar1(5)scalar2(3)))
Reply   : 
Request : inquire dbmtda
Reply   : RELATION(HEADING(SCALAR2(LONG)SCALAR1(LONG))BODY(TUPLE(SCALAR2(3)SCALAR1(5))))
Request : inquire dbmtdar
Reply   : RELATION(HEADING(SCALAR3(LONG)SCALAR4(LONG))BODY())
Request : commit
Reply   : 

Comment : update the view
Request : update virtualrelvar,restrict(virtualrelvar,eq(relvarname,name(v_vrttda1))),(sp_expression(string(table_dee)))
Reply   : 
Request : commit
Reply   : 

Comment : do an insert - one triggered insert should appear in trgda1r
Request : add dbmtda,dbmtda(tuple(scalar1(15)scalar2(13)))
Reply   : 
Request : inquire dbmtda
Reply   : RELATION(HEADING(SCALAR2(LONG)SCALAR1(LONG))BODY(TUPLE(SCALAR2(3)SCALAR1(5))TUPLE(SCALAR2(13)SCALAR1(15))))
Request : inquire dbmtdar
Reply   : RELATION(HEADING(SCALAR3(LONG)SCALAR4(LONG))BODY(TUPLE(SCALAR3(28)SCALAR4(2))))
Request : commit
Reply   : 

Comment : now test mith multiple levels of nested views - assert second view (update if it exists - create if it doesn't)
Request : update virtualrelvar,restrict(virtualrelvar,eq(relvarname,name(v_vrttda2))),(sp_expression(string(table_dee)))
Reply   : 
Request : assert virtualrelvar,virtualrelvar(tuple(relvarname(v_vrttda2)sp_expression(string(table_dee))))
Reply   : 

Comment : change v1 expression to reference v2
Request : update virtualrelvar,virtualrelvar(tuple(relvarname(v_vrttda1)sp_expression(string(table_dee)))),(sp_expression(string(v_vrttda2)))
Reply   : 
Request : commit
Reply   : 

Comment : do an insert - one triggered insert should appear in trgda1r
Request : add dbmtda,dbmtda(tuple(scalar1(25)scalar2(23)))
Reply   : 
Request : inquire dbmtda
Reply   : RELATION(HEADING(SCALAR2(LONG)SCALAR1(LONG))BODY(TUPLE(SCALAR2(23)SCALAR1(25))TUPLE(SCALAR2(3)SCALAR1(5))TUPLE(SCALAR2(13)SCALAR1(15))))
Request : inquire dbmtdar
Reply   : RELATION(HEADING(SCALAR3(LONG)SCALAR4(LONG))BODY(TUPLE(SCALAR3(48)SCALAR4(2))TUPLE(SCALAR3(28)SCALAR4(2))))
Request : commit
Reply   : 

Comment : change v2 view to dum
Request : update virtualrelvar,restrict(virtualrelvar,eq(relvarname,name(v_vrttda2))),(sp_expression(string(table_dum)))
Reply   : 
Request : commit
Reply   : 

Comment : do an insert - no triggered insert should appear in trgda1r
Request : add dbmtda,dbmtda(tuple(scalar1(35)scalar2(33)))
Reply   : 
Request : inquire dbmtda
Reply   : RELATION(HEADING(SCALAR2(LONG)SCALAR1(LONG))BODY(TUPLE(SCALAR2(23)SCALAR1(25))TUPLE(SCALAR2(33)SCALAR1(35))TUPLE(SCALAR2(3)SCALAR1(5))TUPLE(SCALAR2(13)SCALAR1(15))))
Request : inquire dbmtdar
Reply   : RELATION(HEADING(SCALAR3(LONG)SCALAR4(LONG))BODY(TUPLE(SCALAR3(48)SCALAR4(2))TUPLE(SCALAR3(28)SCALAR4(2))))
Request : commit
Reply   : 

Comment : clear the view - should fail on being used by tda
Request : delete virtualrelvar,restrict(virtualrelvar,matches(the_string(relvarname),string(V_VRTTDA.*)))
Reply   : 201806116:181:Data action AA references an unknown relvar V_VRTTDA1, directly or indirectly.
Request : commit
Reply   : 

Comment : clear the action
Request : delete triggereddataaction,restrict(triggereddataaction,eq(dataactionname,name(aa)))
Reply   : 
Request : commit
Reply   : 

Comment : clear the view - should now succeed
Request : delete virtualrelvar,restrict(virtualrelvar,matches(the_string(relvarname),string(V_VRTTDA.*)))
Reply   : 
Request : commit
Reply   : 

Comment : clear the data
Request : delete dbmtda,dbmtda
Reply   : 
Request : delete dbmtdar,dbmtdar
Reply   : 
Request : commit
Reply   : 

Comment : test-cases for non-user-related transaction constraints
Request : cmd(unassert recordtype,recordtype(tuple(indexname(l_r_dbmtda)filename(dbmtda.spdb)storagespaceid(1)recordtypename(r_dbmtda)relvarname(dbmtda))tuple(indexname(l_r_dbmtdar)filename(dbmtda.spdb)storagespaceid(1)recordtypename(r_dbmtdar)relvarname(dbmtdar))))cmd(unassert index,index(tuple(filename(dbmtda.spdb)storagespaceid(2)recordtypename(r_dbmtda)relvarname(dbmtda)indexname(l_r_dbmtda))tuple(filename(dbmtda.spdb)storagespaceid(2)recordtypename(r_dbmtdar)relvarname(dbmtdar)indexname(l_r_dbmtdar))))cmd(unassert recordattribute,recordattribute(tuple(recordtypename(r_dbmtda)relvarname(dbmtda)attributename(scalar1)ordinal(10))tuple(recordtypename(r_dbmtda)relvarname(dbmtda)attributename(scalar2)ordinal(20))tuple(recordtypename(r_dbmtdar)relvarname(dbmtdar)attributename(scalar3)ordinal(10))tuple(recordtypename(r_dbmtdar)relvarname(dbmtdar)attributename(scalar4)ordinal(20))))cmd(unassert indexcomponent,indexcomponent(tuple(relvarname(dbmtda)indexname(l_r_dbmtda)ordinal(10)sp_expression(scalar1))tuple(relvarname(dbmtda)indexname(l_r_dbmtda)ordinal(20)sp_expression(scalar2))tuple(relvarname(dbmtdar)indexname(l_r_dbmtdar)ordinal(10)sp_expression(scalar3))tuple(relvarname(dbmtdar)indexname(l_r_dbmtdar)ordinal(20)sp_expression(scalar4))))
Reply   : 

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

Request : cmd(unassert relvar,relvar(tuple(relvarname(dbmtda)relvarpredicate(scalar1 and scalar2.))tuple(relvarname(dbmtdar)relvarpredicate(sum scalar3 and difference scalar4.))))cmd(unassert relvarattribute,relvarattribute(tuple(relvarname(dbmtda)attributename(scalar1))tuple(relvarname(dbmtda)attributename(scalar2))tuple(relvarname(dbmtdar)attributename(scalar3))tuple(relvarname(dbmtdar)attributename(scalar4))))
Reply   : 

Request : unassert attribute,semiminus(attribute(tuple(attributename(scalar1)typename(long))tuple(attributename(scalar2)typename(long))tuple(attributename(scalar3)typename(long))tuple(attributename(scalar4)typename(long))),relvarattribute)
Reply   : 
END
