pgsql.idl
上传用户:blenddy
上传日期:2007-01-07
资源大小:6495k
文件大小:2k
源码类别:

数据库系统

开发平台:

Unix_Linux

  1. #ifndef pgsql_idl
  2. #define pgsql_idl
  3. #ifndef CosQuery_idl
  4. #include "CosQuery.idl"
  5. #endif
  6. #ifndef CosQueryCollection_idl
  7. #include "CosQueryCollection.idl"
  8. #endif
  9. #pragma prefix ""
  10. module PostgreSQL {
  11. // Built-in types
  12. module Types {
  13. // Arrays in network order
  14. typedef short int2;
  15. typedef long int4;
  16. typedef long int8[2];
  17. };
  18. // NULL support
  19. typedef boolean Null;
  20. union Value switch (Null) {
  21.   case FALSE: any value;
  22. };
  23. // Row definition
  24. typedef sequence<Value> Row;
  25. // <info>
  26. // More about the application of COSS:
  27. // 
  28. // A Table will be a QueryableCollection of Rows
  29. // A Database will be a QueryableCollection of Tables
  30. // (Currently Tables are not exported... maybe later.)
  31. // Both will be queryable via the Query Service
  32. // 
  33. // Other relations will be representable using the Relationship Service
  34. // This includes primary/foreign keys and anything else :)
  35. // 
  36. // GRANT/REVOKE can be supplied via the Security Service
  37. // 
  38. // See a pattern here? The whole of SQL can be implemented by these services!
  39. // The statements go through a parser. Queries and subqueries are passed to the
  40. // database for processing. Returned items are handled appropriately:
  41. // 
  42. // SELECT: return the items to the caller
  43. // UPDATE: modify the items (direct)
  44. // DELETE: call delete() on each Row (direct)
  45. // GRANT/REVOKE: modify ACLs (via Security Service)
  46. // ALTER: modify the items (direct) and/or the relations (via Relationship Service)
  47. // etc.
  48. // 
  49. // I'm not sure yet about LOCK and UNLOCK.
  50. // </info>
  51. // Expirable object
  52. interface Expirable {
  53. /* oneway? */ void keepalive();
  54. void remove();
  55. };
  56. // Upcall object
  57. interface Upcall {
  58. void notice(in string message);
  59. void abort();
  60. };
  61. // Connected database object
  62. interface Database : CosQuery::QueryableCollection, Expirable {
  63. void setupcall(in Upcall obj);
  64. };
  65. // Server object (stateless)
  66. interface Server {
  67. Database connect(in string db, in string user, in string password);
  68. };
  69. };
  70. #endif // pgsql_idl