(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


Reply via email to