pgsql.idl
上传用户:blenddy
上传日期:2007-01-07
资源大小:6495k
文件大小:2k
- #ifndef pgsql_idl
- #define pgsql_idl
- #ifndef CosQuery_idl
- #include "CosQuery.idl"
- #endif
- #ifndef CosQueryCollection_idl
- #include "CosQueryCollection.idl"
- #endif
- #pragma prefix ""
- module PostgreSQL {
-
- // Built-in types
-
- module Types {
- // Arrays in network order
- typedef short int2;
- typedef long int4;
- typedef long int8[2];
- };
-
-
- // NULL support
-
- typedef boolean Null;
-
- union Value switch (Null) {
- case FALSE: any value;
- };
-
-
- // Row definition
-
- typedef sequence<Value> Row;
-
- // <info>
- // More about the application of COSS:
- //
- // A Table will be a QueryableCollection of Rows
- // A Database will be a QueryableCollection of Tables
- // (Currently Tables are not exported... maybe later.)
- // Both will be queryable via the Query Service
- //
- // Other relations will be representable using the Relationship Service
- // This includes primary/foreign keys and anything else :)
- //
- // GRANT/REVOKE can be supplied via the Security Service
- //
- // See a pattern here? The whole of SQL can be implemented by these services!
- // The statements go through a parser. Queries and subqueries are passed to the
- // database for processing. Returned items are handled appropriately:
- //
- // SELECT: return the items to the caller
- // UPDATE: modify the items (direct)
- // DELETE: call delete() on each Row (direct)
- // GRANT/REVOKE: modify ACLs (via Security Service)
- // ALTER: modify the items (direct) and/or the relations (via Relationship Service)
- // etc.
- //
- // I'm not sure yet about LOCK and UNLOCK.
- // </info>
-
- // Expirable object
-
- interface Expirable {
- /* oneway? */ void keepalive();
- void remove();
- };
-
-
- // Upcall object
-
- interface Upcall {
- void notice(in string message);
- void abort();
- };
-
-
- // Connected database object
-
- interface Database : CosQuery::QueryableCollection, Expirable {
- void setupcall(in Upcall obj);
- };
-
-
- // Server object (stateless)
-
- interface Server {
- Database connect(in string db, in string user, in string password);
- };
- };
- #endif // pgsql_idl