pg.ddx.io  pgsql-interfaces@postgresql.org mailing list archive  
help / color / mirror / Atom feed
From: Taral <taral@cyberjunkie.com>
To: pgsql-interfaces@hub.org
Subject: Updated IDL with considerations for COSS
Date: Sun, 15 Nov 1998 21:33:31 -0600
Message-ID: <001001be1111$e1d06600$8a14f7d0@taral.dobiecenter.com> (raw)

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);
    };
};




view thread (5+ messages)  latest in thread

Message-ID: <001001be1111$e1d06600$8a14f7d0@taral.dobiecenter.com>
Permalink:  ../001001be1111$e1d06600$8a14f7d0@taral.dobiecenter.com/
Also on:    postgresql.org/message-id/001001be1111$e1d06600$8a14f7d0@taral.dobiecenter.com

 · 

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: pgsql-interfaces@postgresql.org
  Cc: taral@cyberjunkie.com, pgsql-interfaces@hub.org
  Subject: Re: Updated IDL with considerations for COSS
  In-Reply-To: <001001be1111$e1d06600$8a14f7d0@taral.dobiecenter.com>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox