(How did I miss that? :-) Thanks, that makes it all clear. I request that you add a pointer in this one-pager to LSARC 2008/004, since it is a pre-requisite and this case completely depends on it. Otherwise, I have no other issues. -tdc
On Apr 2, 2008, at 11:02 AM, James Gates wrote: > The Postgres 8.3 case was approved in early 2008 (LSARC/2008/004). > > I think these were separate cases because a) the projects occurred > at separate times & b) libpqxx is not part of the core Postgres > distribution (it's a community contributed add-on) > > But in future I suspect that we'll combine the cases for new > versions of Postgres & libpqxx. > > > Tom Childers wrote: >> I'm confused by the version number. This is going into a Postgres >> 8.3 directory, however the last cases we've seen provide Postgres >> 8.2 on Solaris, with components in /usr/postgres/8.2/lib. >> Is there a Postgres 8.3 case coming? If so, we should approve >> this depending on 8.3 approval. Or...why couldn't this be >> incorporated into the 8.3 case? It's not a big deal to add a C++ >> API to an RDBMS product. >> -tdc >> On Apr 2, 2008, at 8:34 AM, James Gates wrote: >>> I am sponsoring this fast-track on behalf of Geir Green. The >>> timer was due to expire yesterday (04/01/08), but there were a >>> couple of questions on the alias last week that couldn't be >>> answered as Geir was on vacation. >>> >>> The questions (relating to which compiler is being used and >>> whether 64-bit libraries are being built) have now been >>> addressed in this new proposal, which can also be found in the >>> case directory. >>> >>> Assuming no further queries, I'll close the case at the end of >>> this week. >>> Template Version: @(#)onepager.txt 1.35 07/11/07 SMI >>> Copyright 2008 Sun Microsystems >>> >>> >>> 1. Introduction >>> 1.1. Project/Component Working Name: >>> libpqxx - Provide C++ API to PostgreSQL for Solaris and >>> Opensolaris >>> >>> 1.2. Name of Document Author/Supplier: >>> Geir Green >>> >>> 1.3. Date of This Document: >>> 04/02/08 >>> 1.3.1. Date this project was conceived: >>> 01/03/08 >>> >>> 1.4. Name of Major Document Customer(s)/Consumer(s): >>> 1.4.1. The PAC or CPT you expect to review your project: >>> Database >>> >>> 1.4.2. The ARC(s) you expect to review your project: >>> LSARC >>> >>> 1.4.3. The Director/VP who is "Sponsoring" this project: >>> Heidi Bergh-Hoff <heidi.bergh-hoff at sun.com> >>> >>> 1.4.4. The name of your business unit: >>> Database Technology Group (DBTG) >>> >>> 1.5. Email Aliases: >>> 1.5.1. Responsible Manager: >>> Erlend Dahl <erlend.dahl at sun.com> >>> >>> 1.5.2. Responsible Engineer: >>> Geir Green <geir.green at sun.com> >>> >>> 1.5.3. Marketing Manager: >>> Rebecca Hansen <rebecca.hansen at sun.com> >>> >>> 1.5.4. Interest List: >>> databases-discuss at sun.com >>> postgresql-techteam at sun.com >>> sun-postgres-pteam at sun.com >>> >>> 2. Project Summary >>> 2.1. Project Description: >>> libpqxx is the official C++ client API for PostgreSQL. >>> This project aims to provide libpqxx as a part of the >>> OpenSolaris >>> distribution(s). >>> >>> This project qualifies for micro/patch release binding. >>> >>> 2.2. Risks and Assumptions: >>> It is assumed that porting the libpqxx to Solaris may cause >>> modifications of the libpqxx code so that it will run >>> properly on the >>> Solaris platform. The modifications (if any) are expected >>> to be minor. >>> >>> The business risks associated with not providing the >>> libpqxx API for >>> PostgreSQL is considered high, as we would provide a less >>> complete >>> environment for PostgreSQL as compared to what the open >>> source >>> community would expect. >>> >>> >>> 3. Business Summary >>> 3.1. Problem Area: >>> A customer who is writing software in C++ that needs to >>> access >>> databases managed by postgres (on just about any >>> platform) libpqxx is >>> the library to use. >>> >>> 3.2. Market/Requester: >>> Projects Using libpqxx (taken from the README file >>> following the >>> source-code) - this list is far from complete. It is >>> known that there >>> are many other projects using libpqxx that are not >>> included here. >>> Some of them may be proprietary, or even have no names. >>> >>> As found on Google: >>> >>> DocConversion http://docconversion.sourceforge.net/ >>> Genea http://savannah.nongnu.org/projects/genea/ >>> Gnucomo http://www.gnucomo.org/ >>> MapServer http://mapserver.gis.umn.edu/ >>> QHacc http://qhacc.sourceforge.net/ >>> Vocal/Mascarpone http://www.vovida.org/ >>> >>> >>> Confirmed by authors: >>> >>> OKE http://www.liacs.nl/home/bsamwel/oke/ >>> prerelease-0.10/ >>> KOffice/Kexi http://www.kexi-project.org/ >>> KPoGre http://kpogre.sourceforge.net/ >>> Once MMORPG http://sourceforge.net/projects/once/ >>> Scippy http://dicomlib.swri.ca/scippy.html >>> >>> 3.6. How will you know when you are done?: >>> When the libpqxx code is integrated into the OpenSolaris SFW >>> consolidation. >>> >>> >>> 4. Technical Description: >>> 4.1. Details: >>> libpqxx(TM) is a C++ API to PostgreSQL(TM). It replaces >>> the earlier >>> libpq++(TM) with a more Standard Template Library (STL)- >>> conformant >>> interface and makes more extensive use of C++ language >>> features such >>> as exceptions, templates, and strings. >>> >>> Since libpqxx builds on top of the C front-end libpq(TM), >>> you will need >>> a working libpq library on your system prior to getting >>> started with >>> libpqxx. This is similar to the situation with the older >>> libpq++ >>> interface. >>> >>> The first thing you're likely to notice in programming >>> with libpqxx is >>> that unlike other libraries, it revolves entirely around >>> transactions. Transactions are a central concept in database >>> management systems, but they are widely under-appreciated >>> among >>> application developers. >>> >>> It may sometimes be possible to build limited >>> applications reliably >>> without serious use of transactions. More usually, however, >>> applications are designed without transactions simply >>> because the >>> developers aren't aware of the risks they are taking, and >>> any data >>> loss is rare or small enough not to be noticed. That kind >>> of design >>> was not considered acceptable for libpqxx. >>> >>> With conventional database APIs, you issue commands and >>> queries to a >>> database session or connection, and optionally create the >>> occasional >>> transaction. In libpqxx you start a transaction inside >>> the connection >>> first, do your SQL work using that transaction, then >>> commit the >>> transaction when it's complete. There are several types of >>> transactions with various "quality of service" >>> properties; if you >>> don't really want to use transactions at all, one of the >>> available >>> transaction types is called nontransaction. This >>> transaction type >>> provides classic, non-transactional behavior. >>> >>> Every command or query issues a result object, which is >>> really a smart >>> pointer so it can be copied around without incurring much >>> cost in >>> terms of performance. No need to write special code to >>> check these for >>> success; error conditions are converted to regular C++ >>> exceptions. >>> Result objects can be kept around for as long as they are >>> needed, >>> completely separate from the connections and transactions >>> that >>> originated them. >>> >>> 4.5. Interfaces: >>> >>> EXPORTED STABILITY NOTES >>> ------------------------------------------------------------ >>> libpqxx Uncommitted (NEW) C++ API >>> >>> >>> IMPORTED STABILITY NOTES >>> ------------------------------------------------------------ >>> libpq Volatile LSARC/2008/004 >>> >>> The 32 bit version of library libpqxx is installed in: >>> /usr/postgres/8.3/lib/libpqxx.so >>> - and the 64 bit version in: >>> /usr/postgres/8.3/lib/amd64/libpqxx.so >>> - and the header files in the directory: >>> /usr/postgres/8.3/include/pqxx/ >>> >>> Here is a list of all libpqxx modules: >>> >>> * String conversion >>> * Utility functions >>> * String escaping >>> * Connection classes >>> * Error/warning output >>> * Transaction classes >>> * Exception classes >>> * Transactor framework >>> * Notifications and Triggers >>> See the libpqxx Documentation: >>> >>> http://pqxx.org/devprojects/libpqxx/doc/2.6.9/html/Reference/ >>> >>> 4.6. Doc Impact: >>> Documentation is generated by the makefiles (doxygen) based on >>> the >>> source files. See: >>> http://pqxx.org/devprojects/libpqxx/doc/2.6.9/html/ >>> Reference/ index.html >>> >>> If man pages exist for other platforms e.g. Linux, these >>> pages may be >>> adapted to Solaris. Otherwise if man pages are needed, >>> they must be >>> written based on the existing documentation. >>> >>> 4.9. I18N/L10N Impact: >>> libpqxx is an API and in its self independent on >>> localization and >>> internationalization. >>> >>> >>> 4.10. Packaging & Delivery: >>> This library works on top of the C-level API library, >>> libpq and is >>> needed in order to use libpqxx. It will be delivered as >>> part of the >>> postgres package(s) and as for libpq, in both 32 and 64 >>> bit versions, >>> and of course made by Sun Studio C++. >>> >>> 4.12. Dependencies: >>> libpq.so , version 5.x (PostgreSQL client library, both >>> 32 and 64 bit) >>> libpq-fe.h, (PostgreSQL client library header >>> file) >>> >>> 5. Reference Documents: >>> >>> http://pqxx.org/devprojects/libpqxx/doc/2.6.9/html/ >>> >>> 6. Resources and Schedule: >>> 6.1. Projected Availability: >>> Q4FY08 >>> >>> 6.4. Product Approval Committee requested information: >>> 6.4.1. Consolidation or Component Name: >>> SFWNV >>> >>> 6.5. ARC review type: >>> FastTrack >>> >>> 6.6. ARC Exposure: >>> open
