for a long time.
#
# PostgreSQL top level makefile
#
-# $PostgreSQL: pgsql/GNUmakefile.in,v 1.41 2004/10/06 08:49:58 momjian Exp $
+# $PostgreSQL: pgsql/GNUmakefile.in,v 1.42 2005/05/01 06:15:51 neilc Exp $
#
subdir =
$(TAR) chf $@ $(distdir)
opt_files := \
- src/tools src/corba src/tutorial \
+ src/tools src/tutorial \
$(addprefix src/pl/, plperl plpython tcl)
docs_files := doc/postgres.tar.gz doc/src doc/TODO.detail
+++ /dev/null
-/* RCS $PostgreSQL: pgsql/src/corba/CosQuery.idl,v 1.3 2003/11/29 22:40:52 pgsql 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;};
- exception QueryProcessingError {string why;};
- exception QueryTypeInvalid {};
-
- enum QueryStatus {complete, incomplete};
-
- typedef CosQueryCollection::ParameterList ParameterList;
-
- typedef CORBA::InterfaceDef QLType;
- typedef sequence<QLType> QLTypeSeq;
-
- interface Query;
- interface QueryLanguageType {};
- interface SQLQuery : QueryLanguageType {};
- interface SQL_92Query : SQLQuery {};
- interface OQL : QueryLanguageType {};
- interface OQLBasic : OQL {};
- interface OQL_93 : OQL {};
- interface OQL_93Basic : OQL_93, OQLBasic {};
-
- interface QueryEvaluator {
-
- readonly attribute QLTypeSeq ql_types;
- readonly attribute QLType default_ql_type;
-
- any evaluate (in string query,
- in QLType ql_type,
- in ParameterList params)
- raises(QueryTypeInvalid,
- QueryInvalid,
- QueryProcessingError);
- };
-
- interface QueryableCollection : QueryEvaluator,
- CosQueryCollection::Collection {
-
- };
-
- interface QueryManager : QueryEvaluator {
-
- Query create (in string query,
- in QLType ql_type,
- in ParameterList params)
- raises(QueryTypeInvalid,
- QueryInvalid);
-
- };
-
- interface Query {
-
- readonly attribute QueryManager query_mgr;
-
- void prepare (in ParameterList params)
- raises(QueryProcessingError);
-
- void execute (in ParameterList params)
- raises(QueryProcessingError);
-
- QueryStatus get_status ();
-
- any get_result ();
- };
-
-};
-
-#endif // CosQuery_idl
+++ /dev/null
-/* RCS $PostgreSQL: pgsql/src/corba/CosQueryCollection.idl,v 1.3 2003/11/29 22:40:52 pgsql Exp $
- *
- * ----------------------------------------------------------------------------
- * This is unmarked software provided by the Object Management Group,Inc. (OMG)
- * ----------------------------------------------------------------------------
- */
-
-
-/**
- * CosQueryCollection is the Common Object Services Specification query
- * query colleciton module as it it appears in COSS1, v1.0.
- */
-
-
-#ifndef CosQueryCollection_idl
-#define CosQueryCollection_idl
-
-module CosQueryCollection {
-
- exception ElementInvalid {};
- exception IteratorInvalid {};
- exception PositionInvalid {};
-
- typedef string Istring;
- struct NVPair {
- Istring name;
- any value;
- };
-
- typedef sequence<NVPair> ParameterList;
-
- interface Collection;
- interface Iterator;
-
- interface CollectionFactory {
- Collection create (in ParameterList params);
- };
-
- interface Collection {
-
- readonly attribute long cardinality;
-
- void add_element (in any element)
- raises(ElementInvalid);
-
- void add_all_elements (in Collection elements)
- raises(ElementInvalid);
-
- void insert_element_at (in any element, in Iterator where)
- raises(IteratorInvalid,
- ElementInvalid);
-
- void replace_element_at (in any element, in Iterator where)
- raises(IteratorInvalid,
- PositionInvalid,
- ElementInvalid);
-
- void remove_element_at (in Iterator where)
- raises(IteratorInvalid,
- PositionInvalid);
-
- void remove_all_elements ();
-
- any retrieve_element_at (in Iterator where)
- raises(IteratorInvalid,
- PositionInvalid);
-
- Iterator create_iterator ();
-
- };
-
- interface Iterator {
- any next ()
- raises(IteratorInvalid,
- PositionInvalid);
- void reset ();
- boolean more ();
- };
-
-};
-
-#endif // CosQueryCollection_idl
-
+++ /dev/null
-#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
+++ /dev/null
-// Internal interfaces
-
-#include "pgsql.idl"
-
-module PostgreSQL {
- interface QueryResult : CosQueryCollection::Collection, Expirable {};
-};
+++ /dev/null
-#include <iostream>
-#include "pgsql_int.h"
-
-bool terminate = false;
-
-int main(int argc, char *argv)
-{
- CORBA::ORB_var orb = CORBA::ORB_init(argc,argv,"");
- PortableManager::POA_var poa = PortableServer::POA::_narrow(orb->resolve_initial_references("RootPOA"));
- PortableManager::POAManager_var mgr = poa->the_POAManager();
-
- Server_impl *server = new Server_impl;
- poa->activate_object(server);
-
- CosNaming::NamingContext_var ctx = CosNaming::NamingContext::_narrow(orb->resolve_initial_references("NamingService"));
- CosNaming::Name_var n = new CosNaming::Name(1);
- n[0].id("PostgreSQL");
- n[0].name("service");
- bool bindok = false;
-
- if (!CORBA::Object::is_nil(ctx)) {
- try {
- CosNaming::NamingContext_var myctx = ctx->bind_new_context(n);
- CosNaming::Name_var n2 = new CosNaming::Name(1);
- n2[0].id("Server");
- n2[0].name("Server");
- myctx->bind(n2,server->_this());
- bindok = true;
- } catch (CORBA::Exception &e) {
- cerr << "Warning: Naming Service bind failed" << endl;
- bindok = false;
- }
- } else {
- cerr << "Warning: Naming Service not found" << endl;
- }
-
- mgr->activate();
- while (!terminate) {
- if (orb->work_pending())
- orb->perform_work();
- if (expiry_needed())
- expire_now();
- }
-
- if (!CORBA::Object::is_nil(ctx) && bindok) {
- try {
- CosNaming::NamingContext myctx = ctx->resolve(n);
- ctx->unbind(n);
- myctx->destroy();
- } catch (CORBA::Exception &e) {
- cerr << "Warning: Naming Service unbind failed" << endl;
- }
- }
-
- orb->shutdown(true);
-
- delete server;
- return 0;
-}