Comment : Charset=windows-1252
Comment : test cases for using virtual relvars in database constraints

Comment : attributes and relvar design
Request : cmd(assert attribute,attribute(tuple(attributename(scalar1)typename(long))tuple(attributename(scalar2)typename(long))tuple(attributename(scalar3)typename(long))))cmd(assert relvar,relvar(tuple(relvarname(dbcvrv1)relvarpredicate(record with scalar1 and scalar2 and scalar3.))))cmd(assert relvarattribute,relvarattribute(tuple(relvarname(dbcvrv1)attributename(scalar1))tuple(relvarname(dbcvrv1)attributename(scalar2))tuple(relvarname(dbcvrv1)attributename(scalar3))))
Reply   : 

Comment : persistence resources
Request : cmd(assert storagespace,storagespace(tuple(filename(dbcvrv1a.spdb)extentscount(2)pagecount(2)storagespaceid(1))tuple(filename(dbcvrv1a.spdb)extentscount(2)pagecount(2)storagespaceid(2))))cmd(assert dataspace,dataspace(tuple(filename(dbcvrv1a.spdb)storagespaceid(1)gapcompressionthreshold(5)maximumgaps(9))))cmd(assert dbmsfile,dbmsfile(tuple(filename(dbcvrv1a.spdb)pagesize(8192)))))cmd(assert hashingindexspace,hashingindexspace(tuple(filename(dbcvrv1a.spdb)storagespaceid(2))))
Reply   : 

Comment : physical relvar design
Request : cmd(assert recordtype,recordtype(tuple(filename(dbcvrv1a.spdb)storagespaceid(1)indexname(l_r_dbcvrv1)recordtypename(r_dbcvrv1)relvarname(dbcvrv1))))cmd(assert index,index(tuple(filename(dbcvrv1a.spdb)storagespaceid(2)recordtypename(r_dbcvrv1)relvarname(dbcvrv1)indexname(l_r_dbcvrv1))))cmd(assert recordattribute,recordattribute(tuple(recordtypename(r_dbcvrv1)relvarname(dbcvrv1)attributename(scalar1)ordinal(10))tuple(recordtypename(r_dbcvrv1)relvarname(dbcvrv1)attributename(scalar2)ordinal(20))tuple(recordtypename(r_dbcvrv1)relvarname(dbcvrv1)attributename(scalar3)ordinal(30))))cmd(assert indexcomponent,indexcomponent(tuple(relvarname(dbcvrv1)indexname(l_r_dbcvrv1)ordinal(10)sp_expression(scalar1))))
Reply   : 

Comment : test cases for using virtual relvars in database constraints

Comment : clear the relvar 
Request : delete dbcvrv1,dbcvrv1
Reply   : 
Request : commit
Reply   : 

Comment : viewexpression : update if it exists, assert if it doesn't
Request : update virtualrelvar,restrict(virtualrelvar,eq(relvarname,name(v_dbcvrv1))),(sp_expression(string(relation\(heading\(\)body\(\)\))))
Reply   : 
Request : assert virtualrelvar,virtualrelvar(tuple(relvarname(v_dbcvrv1)sp_expression(string(relation\(heading\(\)body\(\)\)))))
Reply   : 

Comment : set a database constraint involving v_vrtdbc
Request : assert databaseconstraint,databaseconstraint(tuple(errorcode(184005)constraintlabel(test with view) sp_expression(join\(restrict\(dbcvrv1,gt\(scalar1,scalar2\)\),v_dbcvrv1\) )))
Reply   : 

Comment : populate the relvar - should pass because the view evaluates to table_dum
Request : assert dbcvrv1,dbcvrv1(tuple(scalar1(1)scalar2(0)scalar3(0)))
Reply   : 
Request : commit
Reply   : 

Comment : change view expression - should cause detection of dbcvrv1 in violation of constraint
Request : update virtualrelvar,virtualrelvar(tuple(relvarname(v_dbcvrv1)sp_expression(string(relation\(heading\(\)body\(\)\))))),(sp_expression(string(relation\(heading\(\)body\(tuple\(\)\)\))))
Reply   : 1497858657:107:A problem prevented a commit from completing successfully, exception type was be.SIRAPRISE.server.DBMSRuntimeException, exception message was The requested update could not be accepted because it would bring the database in a state of violation of database constraint 184005 (test with view).  First violating tuple is TUPLE(SCALAR2(0)SCALAR3(0)SCALAR1(1)).. The cause of this problem was a be.SIRAPRISE.server.DBMSRuntimeException with message The requested update could not be accepted because it would bring the database in a state of violation of database constraint 184005 (test with view).  First violating tuple is TUPLE(SCALAR2(0)SCALAR3(0)SCALAR1(1))..

Comment : change the data
Request : update dbcvrv1,,(scalar2(long(2)))
Reply   : 
Request : commit
Reply   : 

Comment : change view expression - should now succeed because data has changed
Request : update virtualrelvar,virtualrelvar(tuple(relvarname(v_dbcvrv1)sp_expression(string(relation\(heading\(\)body\(\)\))))),(sp_expression(string(relation\(heading\(\)body\(tuple\(\)\)\))))
Reply   : 

Comment : populate the relvar - should fail because of the new database constraint
Request : assert dbcvrv1,dbcvrv1(tuple(scalar1(1)scalar2(0)scalar3(0)))
Reply   : 201806116:184005:The violating tuple's meaning is 'Record with 1 and 0 and 0.and it holds that 'GT(SCALAR1,SCALAR2)' AND '.
Request : commit
Reply   : 

Comment : clean up the database constraint
Request : delete databaseconstraint,restrict(databaseconstraint,eq(errorcode,long(184005)))
Reply   : 

Comment : clean up the view
Request : delete virtualrelvar,restrict(virtualrelvar,eq(relvarname,name(v_dbcvrv1)))
Reply   : 

Comment : clear the relvar 
Request : delete dbcvrv1,dbcvrv1
Reply   : 

Comment : clean up test cases for using virtual relvars in database constraints

Comment : the relvar data
Request : delete dbcvrv1,dbcvrv1
Reply   : 
Request : commit
Reply   : 

Comment : physical relvar design
Request : cmd(unassert recordtype,recordtype(tuple(filename(dbcvrv1a.spdb)storagespaceid(1)indexname(l_r_dbcvrv1)recordtypename(r_dbcvrv1)relvarname(dbcvrv1))))cmd(unassert index,index(tuple(filename(dbcvrv1a.spdb)storagespaceid(2)recordtypename(r_dbcvrv1)relvarname(dbcvrv1)indexname(l_r_dbcvrv1))))cmd(unassert recordattribute,recordattribute(tuple(recordtypename(r_dbcvrv1)relvarname(dbcvrv1)attributename(scalar1)ordinal(10))tuple(recordtypename(r_dbcvrv1)relvarname(dbcvrv1)attributename(scalar2)ordinal(20))tuple(recordtypename(r_dbcvrv1)relvarname(dbcvrv1)attributename(scalar3)ordinal(30))))cmd(unassert indexcomponent,indexcomponent(tuple(relvarname(dbcvrv1)indexname(l_r_dbcvrv1)ordinal(10)sp_expression(scalar1))))
Reply   : 

Comment : persistence resources
Request : cmd(unassert storagespace,storagespace(tuple(filename(dbcvrv1a.spdb)extentscount(2)pagecount(2)storagespaceid(1))tuple(filename(dbcvrv1a.spdb)extentscount(2)pagecount(2)storagespaceid(2))))cmd(unassert dataspace,dataspace(tuple(filename(dbcvrv1a.spdb)storagespaceid(1)gapcompressionthreshold(5)maximumgaps(9))))cmd(unassert dbmsfile,dbmsfile(tuple(filename(dbcvrv1a.spdb)pagesize(8192)))))cmd(unassert hashingindexspace,hashingindexspace(tuple(filename(dbcvrv1a.spdb)storagespaceid(2))))
Reply   : 

Comment : attributes and relvar design
Request : cmd(unassert attribute,semiminus(attribute(tuple(attributename(scalar1)typename(long))tuple(attributename(scalar2)typename(long))tuple(attributename(scalar3)typename(long))),relvarattribute))cmd(unassert relvar,relvar(tuple(relvarname(dbcvrv1)relvarpredicate(record with scalar1 and scalar2 and scalar3.))))cmd(unassert relvarattribute,relvarattribute(tuple(relvarname(dbcvrv1)attributename(scalar1))tuple(relvarname(dbcvrv1)attributename(scalar2))tuple(relvarname(dbcvrv1)attributename(scalar3))))
Reply   : 

Comment : viewexpression
Request : unassert virtualrelvar,restrict(virtualrelvar,eq(relvarname,name(v_dbcvrv1)))
Reply   : 
END
