Received: from id.godlike.com (id.godlike.com [206.205.199.129]) by hub.org (8.9.1/8.9.1) with ESMTP id PAA15096 for ; Mon, 16 Nov 1998 15:05:50 -0500 (EST) (envelope-from taral@cyberjunkie.com) Received: from taral ([208.247.20.138]) by id.godlike.com (8.8.5/8.8.5) with SMTP id PAA03324 for ; Mon, 16 Nov 1998 15:05:45 -0500 (EST) From: "Taral" To: Subject: IDL update Date: Mon, 16 Nov 1998 14:05:45 -0600 Message-ID: <000001be119c$7ee41600$8a14f7d0@taral.dobiecenter.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_NextPart_000_0001_01BE116A.3449A600" X-Priority: 3 (Normal) X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook 8.5, Build 4.71.2173.0 X-MimeOLE: Produced By Microsoft MimeOLE V4.72.3155.0 Importance: Normal This is a multi-part message in MIME format. ------=_NextPart_000_0001_01BE116A.3449A600 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit More COS Query Service support. Taral P.S. Note that updates are incremental: only new/changed files are sent. If you need the full set at any point, just ask me. ------=_NextPart_000_0001_01BE116A.3449A600 Content-Type: application/octet-stream; name="CosQuery.idl" Content-Transfer-Encoding: quoted-printable Content-Disposition: attachment; filename="CosQuery.idl" /* RCS $Id: CosQuery.idl,v 1.3 1998/01/08 23:29:21 skender Exp $ * * = -------------------------------------------------------------------------= --- * This is unmarked software provided by the Object Management = Group,Inc. (OMG) * = -------------------------------------------------------------------------= --- */ /** * CosQuery is the Common Object Services Specification query module * as it it appears in COSS1, v1.0. */ #ifndef CosQuery_idl #define CosQuery_idl #ifndef CosQueryCollection_idl #include "CosQueryCollection.idl" #endif module CosQuery { exception QueryInvalid {string why;};=20 exception QueryProcessingError {string why;};=20 exception QueryTypeInvalid {}; enum QueryStatus {complete, incomplete}; typedef CosQueryCollection::ParameterList ParameterList; typedef CORBA::InterfaceDef QLType; typedef sequence QLTypeSeq; interface Query; interface QueryLanguageType {};=20 interface SQLQuery : QueryLanguageType {};=20 interface SQL_92Query : SQLQuery {};=20 interface OQL : QueryLanguageType {};=20 interface OQLBasic : OQL {};=20 interface OQL_93 : OQL {};=20 interface OQL_93Basic : OQL_93, OQLBasic {}; interface QueryEvaluator {=20 readonly attribute QLTypeSeq ql_types;=20 readonly attribute QLType default_ql_type; any evaluate (in string query, in QLType ql_type,=20 in ParameterList params)=20 raises(QueryTypeInvalid, QueryInvalid, QueryProcessingError);=20 }; interface QueryableCollection : QueryEvaluator,=20 CosQueryCollection::Collection { }; interface QueryManager : QueryEvaluator {=20 Query create (in string query, in QLType ql_type,=20 in ParameterList params)=20 raises(QueryTypeInvalid, QueryInvalid); }; interface Query {=20 readonly attribute QueryManager query_mgr; void prepare (in ParameterList params)=20 raises(QueryProcessingError);=20 void execute (in ParameterList params)=20 raises(QueryProcessingError); QueryStatus get_status ();=20 any get_result ();=20 }; }; #endif // CosQuery_idl ------=_NextPart_000_0001_01BE116A.3449A600 Content-Type: application/octet-stream; name="pgsql.idl" Content-Transfer-Encoding: quoted-printable Content-Disposition: attachment; filename="pgsql.idl" #ifndef pgsql_idl #define pgsql_idl #ifndef CosQuery_idl #include "CosQuery.idl" #endif #ifndef CosQueryCollection_idl #include "CosQueryCollection.idl" #endif module PostgreSQL { =09 // Built-in types =09 module Types { // Arrays in network order typedef short int2; typedef long int4; typedef long int8[2]; }; =09 =09 // NULL support =09 typedef boolean Null; =09 union Value switch (Null) { case false: any value; }; =09 =09 // Row definition =09 typedef sequence Row; =09 // // More about the application of COSS: //=20 // 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 //=20 // Other relations will be representable using the Relationship Service // This includes primary/foreign keys and anything else :) //=20 // GRANT/REVOKE can be supplied via the Security Service //=20 // 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: //=20 // 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. //=20 // I'm not sure yet about LOCK and UNLOCK. // =09 =09 // Connected database object =09 interface Database : CosQuery::QueryableCollection { void disconnect(); }; =09 =09 // Server object (stateless) =09 interface Server { Database connect(in string db, in string user, in string password); }; }; #endif // pgsql_idl ------=_NextPart_000_0001_01BE116A.3449A600--