5
#include "CosQuery.idl"
8
#ifndef CosQueryCollection_idl
9
#include "CosQueryCollection.idl"
19
// Arrays in network order
30
union Value switch (Null) {
31
case FALSE: any value;
37
typedef sequence<Value> Row;
40
// More about the application of COSS:
42
// A Table will be a QueryableCollection of Rows
43
// A Database will be a QueryableCollection of Tables
44
// (Currently Tables are not exported... maybe later.)
45
// Both will be queryable via the Query Service
47
// Other relations will be representable using the Relationship Service
48
// This includes primary/foreign keys and anything else :)
50
// GRANT/REVOKE can be supplied via the Security Service
52
// See a pattern here? The whole of SQL can be implemented by these services!
53
// The statements go through a parser. Queries and subqueries are passed to the
54
// database for processing. Returned items are handled appropriately:
56
// SELECT: return the items to the caller
57
// UPDATE: modify the items (direct)
58
// DELETE: call delete() on each Row (direct)
59
// GRANT/REVOKE: modify ACLs (via Security Service)
60
// ALTER: modify the items (direct) and/or the relations (via Relationship Service)
63
// I'm not sure yet about LOCK and UNLOCK.
69
/* oneway? */ void keepalive();
77
void notice(in string message);
82
// Connected database object
84
interface Database : CosQuery::QueryableCollection, Expirable {
85
void setupcall(in Upcall obj);
89
// Server object (stateless)
92
Database connect(in string db, in string user, in string password);