fprintf( stderr, "check %s\n", tuple2string( r, t ) );
}
}
fprintf( stderr, "check %s\n", tuple2string( r, t ) );
}
}
int j;
for ( j = 0; query[j]; j++ ) {
fprintf( stderr, "query %s\n", tuple2string( r, query[j] ) );
int j;
for ( j = 0; query[j]; j++ ) {
fprintf( stderr, "query %s\n", tuple2string( r, query[j] ) );
-// Report any knocked out tuples from relation_add or relation_delete
-// This will also clear and free the result vector.
-static void knockout_report(relation *r,vector *v) {
- vector_index i;
+// Report any knocked out tuples from Relation_add or Relation_delete
+// This will also clear and free the result Vector.
+static void knockout_report(Relation *r,Vector *v) {
+ VectorIndex i;
fprintf( stderr, "knock %s\n", tuple2string( r, t? *t : 0 ) );
}
fprintf( stderr, "knock %s\n", tuple2string( r, t? *t : 0 ) );
}
- vector_resize( v, 0, vector_clear_any, 0 );
+ Vector_resize( v, 0, Vector_clear_any, 0 );
int j;
for ( j = 0; query[j]; j++ ) {
fprintf( stderr, "add %s\n", tuple2string( r, query[j] ) );
int j;
for ( j = 0; query[j]; j++ ) {
fprintf( stderr, "add %s\n", tuple2string( r, query[j] ) );
int j;
for ( j = 0; query[j]; j++ ) {
fprintf( stderr, "delete %s\n", tuple2string( r, query[j] ) );
int j;
for ( j = 0; query[j]; j++ ) {
fprintf( stderr, "delete %s\n", tuple2string( r, query[j] ) );
query_report( &rel2, 0 );
query_report_all( &rel2, query2 );
query_report( &rel2, 0 );
query_report_all( &rel2, query2 );
- relation rel3 = RELATION( &stringitem, &stringitem, &stringitem );
- relation_add_constraint( &rel3, 1, 1, 0 ); // AxB -> C
- relation_add_constraint( &rel3, 1, 0, 1 ); // AxC -> B
+ Relation rel3 = RELATION( &stringitem, &stringitem, &stringitem );
+ Relation_add_constraint( &rel3, 1, 1, 0 ); // AxB -> C
+ Relation_add_constraint( &rel3, 1, 0, 1 ); // AxC -> B
query_report( &rel3, 0 );
query_report_all( &rel3, query3 );
query_report( &rel3, 0 );
query_report_all( &rel3, query3 );