Comment : Charset=windows-1252
Comment : test-cases for non-user-related assignment constraints
Comment : define the attributes used in the test
Request : assert attribute,attribute(tuple(attributename(scalar1)typename(long))tuple(attributename(scalar2)typename(long)))
Reply   : 

Comment : define the logical design of the relvars used in the test
Request : cmd(assert relvar,relvar(tuple(relvarname(dbm_assc)relvarpredicate(scalar1 and scalar2.))))cmd(assert relvarattribute,relvarattribute(tuple(relvarname(dbm_assc)attributename(scalar1))tuple(relvarname(dbm_assc)attributename(scalar2))))
Reply   : 

Comment : define the storage resources used in the test
Request : cmd(assert dbmsfile,dbmsfile(tuple(filename(dbm_assc.spdb)pagesize(8192))))cmd(assert storagespace,storagespace(tuple(filename(dbm_assc.spdb)extentscount(2)pagecount(20)storagespaceid(1))tuple(filename(dbm_assc.spdb)extentscount(2)pagecount(20)storagespaceid(2))))cmd(assert dataspace,dataspace(tuple(filename(dbm_assc.spdb)storagespaceid(1)gapcompressionthreshold(5)maximumgaps(9))))cmd(assert multihashingindexspace,multihashingindexspace(tuple(filename(dbm_assc.spdb)storagespaceid(2)gapcompressionthreshold(5)maximumgaps(9))))
Reply   : 

Comment : define the physical design of the relvars used in the test
Request : cmd(assert recordtype,recordtype(tuple(indexname(l_r_dbm_assc)filename(dbm_assc.spdb)storagespaceid(1)recordtypename(r_dbm_assc)relvarname(dbm_assc))))cmd(assert index,index(tuple(filename(dbm_assc.spdb)storagespaceid(2)recordtypename(r_dbm_assc)relvarname(dbm_assc)indexname(l_r_dbm_assc))))cmd(assert recordattribute,recordattribute(tuple(recordtypename(r_dbm_assc)relvarname(dbm_assc)attributename(scalar1)ordinal(10))tuple(recordtypename(r_dbm_assc)relvarname(dbm_assc)attributename(scalar2)ordinal(20))))cmd(assert indexcomponent,indexcomponent(tuple(relvarname(dbm_assc)indexname(l_r_dbm_assc)ordinal(10)sp_expression(scalar1))tuple(relvarname(dbm_assc)indexname(l_r_dbm_assc)ordinal(20)sp_expression(scalar2))))
Reply   : 


Request : delete dbm_assc,dbm_assc
Reply   : 
Request : commit
Reply   : 

Comment : add an insert-transaction constraint
Request : assert assignmentconstraint,assignmentconstraint(tuple(constraintlabel(nothing goes in)errorcode(181001)sp_expression(inserts\(dbm_assc\))))
Reply   : 
Request : commit
Reply   : 

Request : inquire restrict(constraintinvolvesrelvar,eq(errorcode,long(181001)))
Reply   : RELATION(HEADING(ERRORCODE(LONG)RELVARNAME(NAME))BODY(TUPLE(ERRORCODE(181001)RELVARNAME(DBM_ASSC))))

Comment : must succeed, because there is no constraintcheck linking to this constraint
Request : assert dbm_assc,dbm_assc(tuple(scalar1(1)scalar2(2)))
Reply   : 
Request : inquire dbm_assc
Reply   : RELATION(HEADING(SCALAR1(LONG)SCALAR2(LONG))BODY(TUPLE(SCALAR1(1)SCALAR2(2))))
Request : commit
Reply   : 

Comment : add the constraint check too
Request : assert assignmentconstraintcheck,assignmentconstraintcheck(tuple(relvarname(dbm_assc)operationtype(2)errorcode(181001)))
Reply   : 
Request : commit
Reply   : 

Comment : must succeed, because there is no true addition done
Request : assert dbm_assc,dbm_assc(tuple(scalar1(1)scalar2(2)))
Reply   : 
Request : inquire dbm_assc
Reply   : RELATION(HEADING(SCALAR1(LONG)SCALAR2(LONG))BODY(TUPLE(SCALAR1(1)SCALAR2(2))))
Request : commit
Reply   : 

Comment : must fail, because now there is a true addition done
Request : assert dbm_assc,dbm_assc(tuple(scalar1(1)scalar2(3)))
Reply   : 201806116:181001:The violating tuple's meaning is '1 and 3.'.
Request : inquire dbm_assc
Reply   : RELATION(HEADING(SCALAR1(LONG)SCALAR2(LONG))BODY(TUPLE(SCALAR1(1)SCALAR2(2))))
Request : commit
Reply   : 

Comment : must fail on RI
Request : unassert assignmentconstraint,assignmentconstraint(tuple(constraintlabel(nothing goes in)errorcode(181001)sp_expression(inserts\(dbm_assc\))))
Reply   : 201806116:126:A Constraint check for error code 181001 is defined, but an assignment constraint with that errorcode is not defined.
Request : commit
Reply   : 

Request : inquire restrict(constraintinvolvesrelvar,eq(errorcode,long(181001)))
Reply   : RELATION(HEADING(ERRORCODE(LONG)RELVARNAME(NAME))BODY(TUPLE(ERRORCODE(181001)RELVARNAME(DBM_ASSC))))

Comment : must succeed
Request : cmd(unassert assignmentconstraint,assignmentconstraint(tuple(constraintlabel(nothing goes in)errorcode(181001)sp_expression(inserts\(dbm_assc\)))))cmd(unassert assignmentconstraintcheck,assignmentconstraintcheck(tuple(relvarname(dbm_assc)operationtype(2)errorcode(181001))))
Reply   : 
Request : commit
Reply   : 

Request : inquire restrict(constraintinvolvesrelvar,eq(errorcode,long(181001)))
Reply   : RELATION(HEADING(ERRORCODE(LONG)RELVARNAME(NAME))BODY())

Comment : must succeed, because now there is no more constraint
Request : assert dbm_assc,dbm_assc(tuple(scalar1(1)scalar2(3)))
Reply   : 
Request : inquire dbm_assc
Reply   : RELATION(HEADING(SCALAR1(LONG)SCALAR2(LONG))BODY(TUPLE(SCALAR1(1)SCALAR2(3))TUPLE(SCALAR1(1)SCALAR2(2))))
Request : commit
Reply   : 

Comment : upon insertion, scalar1 must be <= scalar2
Request : cmd(assert assignmentconstraint,assignmentconstraint(tuple(constraintlabel(s1 <= s2)errorcode(181001)sp_expression(restrict\(inserts\(dbm_assc\),gt\(scalar1,scalar2\)\)))))cmd(assert assignmentconstraintcheck,assignmentconstraintcheck(tuple(relvarname(dbm_assc)operationtype(2)errorcode(181001))))
Reply   : 
Request : commit
Reply   : 

Request : inquire restrict(constraintinvolvesrelvar,eq(errorcode,long(181001)))
Reply   : RELATION(HEADING(ERRORCODE(LONG)RELVARNAME(NAME))BODY(TUPLE(ERRORCODE(181001)RELVARNAME(DBM_ASSC))))

Comment : must pass
Request : assert dbm_assc,dbm_assc(tuple(scalar1(2)scalar2(2)))
Reply   : 
Comment : must fail
Request : assert dbm_assc,dbm_assc(tuple(scalar1(3)scalar2(2)))
Reply   : 201806116:181001:The violating tuple's meaning is '3 and 2.and it holds that 'gt(scalar1,scalar2)''.
Request : commit
Reply   : 

Comment : test updates - must both fail too
Request : update dbm_assc,,(scalar1(plus(scalar1,long(5))))
Reply   : 201806116:181001:The violating tuple's meaning is '6 and 2.and it holds that 'gt(scalar1,scalar2)''.
Request : update dbm_assc,,(scalar2(plus(scalar2,long(-5))))
Reply   : 201806116:181001:The violating tuple's meaning is '1 and -3.and it holds that 'gt(scalar1,scalar2)''.
Request : commit
Reply   : 

Comment : scalar1 may not be known as a relvarid
Request : update assignmentconstraint,restrict(assignmentconstraint,eq(errorcode,long(181001))),                            (sp_expression(join\(rename\(inserts\(dbm_assc\),\(scalar1,relvarid\)\),relvarid\)))
Reply   : 
Request : commit
Reply   : 

Request : inquire restrict(constraintinvolvesrelvar,eq(errorcode,long(181001)))
Reply   : RELATION(HEADING(ERRORCODE(LONG)RELVARNAME(NAME))BODY(TUPLE(ERRORCODE(181001)RELVARNAME(RELVARID))TUPLE(ERRORCODE(181001)RELVARNAME(DBM_ASSC))))

Comment : test it - must fail
Request : assert dbm_assc,dbm_assc(tuple(scalar1(2)scalar2(9)))
Reply   : 201806116:181001:The violating tuple's meaning is '2 and 9. AND Relation variable ATTRIBUTE has internal ID 2.'.
Comment : test it - must pass
Request : assert dbm_assc,dbm_assc(tuple(scalar1(2468013579)scalar2(9876543210)))
Reply   : 
Request : commit
Reply   : 

Request : cmd(delete assignmentconstraint,restrict(assignmentconstraint,eq(errorcode,long(181001))))cmd(delete assignmentconstraintcheck,restrict(assignmentconstraintcheck,eq(errorcode,long(181001))))
Reply   : 
Request : commit
Reply   : 

Request : delete dbm_assc,dbm_assc
Reply   : 
Request : commit
Reply   : 

Comment : remove the physical design of the relvars used in the test
Request : cmd(unassert recordtype,recordtype(tuple(indexname(l_r_dbm_assc)filename(dbm_assc.spdb)storagespaceid(1)recordtypename(r_dbm_assc)relvarname(dbm_assc))))cmd(unassert index,index(tuple(filename(dbm_assc.spdb)storagespaceid(2)recordtypename(r_dbm_assc)relvarname(dbm_assc)indexname(l_r_dbm_assc))))cmd(unassert recordattribute,recordattribute(tuple(recordtypename(r_dbm_assc)relvarname(dbm_assc)attributename(scalar1)ordinal(10))tuple(recordtypename(r_dbm_assc)relvarname(dbm_assc)attributename(scalar2)ordinal(20))))cmd(unassert indexcomponent,indexcomponent(tuple(relvarname(dbm_assc)indexname(l_r_dbm_assc)ordinal(10)sp_expression(scalar1))tuple(relvarname(dbm_assc)indexname(l_r_dbm_assc)ordinal(20)sp_expression(scalar2))))
Reply   : 

Comment : remove the storage resources used in the test
Request : cmd(unassert dbmsfile,dbmsfile(tuple(filename(dbm_assc.spdb)pagesize(8192))))cmd(unassert storagespace,storagespace(tuple(filename(dbm_assc.spdb)extentscount(2)pagecount(20)storagespaceid(1))tuple(filename(dbm_assc.spdb)extentscount(2)pagecount(20)storagespaceid(2))))cmd(unassert dataspace,dataspace(tuple(filename(dbm_assc.spdb)storagespaceid(1)gapcompressionthreshold(5)maximumgaps(9))))cmd(unassert multihashingindexspace,multihashingindexspace(tuple(filename(dbm_assc.spdb)storagespaceid(2)gapcompressionthreshold(5)maximumgaps(9))))
Reply   : 

Comment : remove the logical design of the relvars used in the test
Request : cmd(unassert relvar,relvar(tuple(relvarname(dbm_assc)relvarpredicate(scalar1 and scalar2.))))cmd(unassert relvarattribute,relvarattribute(tuple(relvarname(dbm_assc)attributename(scalar1))tuple(relvarname(dbm_assc)attributename(scalar2))))
Reply   : 

Comment : remove the attributes used in the test
Request : unassert attribute,semiminus(attribute(tuple(attributename(scalar1)typename(long))tuple(attributename(scalar2)typename(long))),relvarattribute)
Reply   : 

END
