RE: [INTERFACES] IDL :) - Mailing list pgsql-interfaces

From Taral
Subject RE: [INTERFACES] IDL :)
Date
Msg-id 000801be10f4$33ea2480$8a14f7d0@taral.dobiecenter.com
Whole thread Raw
In response to Re: [INTERFACES] IDL :)  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-interfaces
> We need some way of not having to enumerate all the possible field
> datatypes in advance.

[ suggestions snipped ]

d) none of the above

CORBA provides the "any" type, and it turns out that those discriminated
unions are TERRIBLE memory hogs in C++. So see attached.

There are now two files because some ORBs require a special switch to enable
a type to be extracted from/represented by an "any".

So now our user-defined types will have to work via the dynamic
interfaces... someone explain to me how those types work!

Taral

--- cut here: pgsql.idl ---

module PostgreSQL {
    // Discriminated unions removed due to inefficiency in C++
implementation

    typedef any Cell;
    typedef sequence<Cell> Column;

    interface Row {
        typedef sequence<Cell> type;
        attribute type data; // throws BAD_OPERATION on set until BE
supports this
    };

    interface QueryResult {
        typedef sequence<Column> type;
        typedef sequence<string> headerType;

        readonly attribute headerType header;
        attribute type data; // throws BAD_OPERATION on set until
implemented

        Row fetch(in long rownum); // returns nil or BAD_OPERATION until
implemented
        // zero based numbering of rows
    };

    interface Database {
        QueryResult exec(in string query);
        oneway void disconnect();
    };

    interface Server {
        Database connect(in string db, in string user, in string password);
    };
};

--- cut here: pgsql_types.idl ---

// This file compiled for support of any for new types

module PostgreSQL {
    enum celltype {
        int2,
        int4,
        int8

        // more types
    };

    typedef short int2type;
    typedef long int4type;
    struct int8type {
        long lsw;
        long msw;
    };
};


pgsql-interfaces by date:

Previous
From: Tom Lane
Date:
Subject: Re: [INTERFACES] IDL :)
Next
From: "Taral"
Date:
Subject: MICO