| From: | "Taral" <taral(at)cyberjunkie(dot)com> | 
|---|---|
| To: | <pgsql-interfaces(at)hub(dot)org> | 
| Subject: | Updated IDL with considerations for COSS | 
| Date: | 1998-11-16 03:33:31 | 
| Message-ID: | 001001be1111$e1d06600$8a14f7d0@taral.dobiecenter.com | 
| Views: | Whole Thread | Raw Message | Download mbox | Resend email | 
| Thread: | |
| Lists: | pgsql-interfaces | 
Took a look at COSS and modified this to be upgradable...
Taral
P.S. Back to one file... MICO doesn't care about any support/no any support
:) We can always use #ifdef/#ifndef
--- cut here ---
module PostgreSQL {
    // Standard types
    typedef short int2type;
    typedef long int4type;
    struct int8type {
        long lsw;
        long msw;
    };
    // Direct row interface
    //
    // *** This interface is critical!
    // *** It will be used in the final COSS Query Service compliant
implementation.
    //
    // Allows read-write access to a row without issuing a slow UPDATE
    // Will throw an object-does-not-exist (??) exception if the row gets
deleted
    interface Row {
        typedef sequence<Cell> type;
        attribute type data; // set operation not yet implemented
        void delete();
    };
    // <info>
    // More about the application of COSS:
    //
    // A Table will be a QueryableCollection of Rows
    // A Database will be a QueryableCollection of Tables
    // Both will be queryable via the Query Service
    //
    // 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>
    // Query result interface
    interface QueryResult {
        typedef sequence<Row> type;
        typedef sequence<string> headerType;
        readonly attribute headerType header;
        readonly attribute type data;
        Row fetch(in long rownum); // not yet implemented
        // zero based numbering of rows
    };
    // Connected database object
    interface Database {
        QueryResult exec(in string query);
        void disconnect();
    };
    // Server object (stateless)
    interface Server {
        Database connect(in string db, in string user, in string password);
    };
};
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Aleksey Demakov | 1998-11-16 05:13:37 | Re: [INTERFACES] ORB API | 
| Previous Message | Taral | 1998-11-16 00:50:21 | RE: MICO |