From sac-owner Thu Jul 26 01:30:36 2007
Received: from sunmail2sca.sfbay.sun.com (sunmail2sca.SFBay.Sun.COM [129.145.155.234])
	by sac.sfbay.sun.com (8.13.8+Sun/8.13.8) with ESMTP id l6Q8Ua88004814
	for <one-pager@sac.eng.sun.com>; Thu, 26 Jul 2007 01:30:36 -0700 (PDT)
Received: from sunmail2sca.sfbay.sun.com (localhost [127.0.0.1])
	by sunmail2sca.sfbay.sun.com (8.13.7+Sun/8.13.7/ENSMAIL,v2.2) with ESMTP id l6Q8SRgv019476
	for <one-pager-not-2b-used-directly@sunmail2sca.sfbay.sun.com>; Thu, 26 Jul 2007 01:28:27 -0700 (PDT)
Received: (from noaccess@localhost)
	by sunmail2sca.sfbay.sun.com (8.13.7+Sun/8.13.7/Submit) id l6Q8SRKu019475
	for one-pager-not-2b-used-directly; Thu, 26 Jul 2007 01:28:27 -0700 (PDT)
Received: from nwk-avmta-2.sfbay.sun.com (nwk-avmta-2.SFBay.Sun.COM [129.145.155.6])
	by sunmail2sca.sfbay.sun.com (8.13.7+Sun/8.13.7/ENSMAIL,v2.2) with ESMTP id l6Q8SQge019468;
	Thu, 26 Jul 2007 01:28:26 -0700 (PDT)
Received: from pmxchannel-daemon.nwk-avmta-2.sfbay.sun.com by
 nwk-avmta-2.sfbay.sun.com
 (Sun Java System Messaging Server 6.2-3.04 (built Jul 15 2005))
 id <0JLS0030327EER00@nwk-avmta-2.sfbay.sun.com>; Thu,
 26 Jul 2007 01:28:26 -0700 (PDT)
Received: from sineb-mail-1.sun.com ([192.18.19.6])
 by nwk-avmta-2.sfbay.sun.com
 (Sun Java System Messaging Server 6.2-3.04 (built Jul 15 2005))
 with ESMTP id <0JLS00KTS27D1J40@nwk-avmta-2.sfbay.sun.com>; Thu,
 26 Jul 2007 01:28:26 -0700 (PDT)
Received: from fe-apac-05.sun.com
 (fe-apac-05.sun.com [192.18.19.176] (may be forged))
	by sineb-mail-1.sun.com (8.13.6+Sun/8.12.9) with ESMTP id l6Q8SPEF029908; Thu,
 26 Jul 2007 08:28:25 +0000 (GMT)
Received: from conversion-daemon.mail-apac.sun.com by mail-apac.sun.com
 (Sun Java System Messaging Server 6.2-6.01 (built Apr  3 2006))
 id <0JLS0030123CNO00@mail-apac.sun.com>
 (original mail from Mayuresh.Nirhali@Sun.COM); Thu,
 26 Jul 2007 16:28:25 +0800 (SGT)
Received: from [129.158.227.167] by mail-apac.sun.com
 (Sun Java System Messaging Server 6.2-6.01 (built Apr  3 2006))
 with ESMTPSA id <0JLS00A4F277F389@mail-apac.sun.com>; Thu,
 26 Jul 2007 16:28:23 +0800 (SGT)
Date: Thu, 26 Jul 2007 13:55:30 +0530
From: Mayuresh Nirhali <Mayuresh.Nirhali@sun.com>
Subject: [2007/431]DBD::Pg OnePager
Sender: Mayuresh.Nirhali@sun.com
To: one-pager@sun.com
Cc: postgresql-techteam@sun.com
Message-id: <46A85A7A.5090309@Sun.COM>
MIME-version: 1.0
Content-type: text/plain; format=flowed; charset=ISO-8859-1
Content-transfer-encoding: 7BIT
X-PMX-Version: 5.2.0.264296
User-Agent: Thunderbird 2.0.0.0 (X11/20070423)
Status: RO
Content-Length: 7669

Template Version: @(#)20070726_mayuresh.nirhali 1.3 09/04/15 SMI

This information is 
Copyright 2006 Sun Microsystems

1. Introduction
   1.1. Project/Component Working Name:

	DBI PostgreSQL Interface for Perl

   1.2. Name of Document Author/Supplier:

	Mayuresh Nirhali

   1.3. Date of This Document:
	
	07/24/07

   1.4. Name of Major Document Customer(s)/Consumer(s):
	1.4.1. The PAC or CPT you expect to review your project:

		DB PAC

	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@sun.com

	1.4.4. The name of your business unit:

		Software/DBTG

   1.5. Email Aliases:
    	1.5.1. Responsible Manager: Thulasinathan.P@Sun.COM
    	1.5.2. Responsible Engineer: Mayuresh.Nirhali@Sun.COM
    	1.5.3. Marketing Manager: Matthew.Baier@Sun.COM
	1.5.4. Interest List: sun-postgres-pteam@Sun.COM

2. Project Summary
   2.1. Project Description:
	
	PostgreSQL version 8.1 was integrated into Nevada & S10u2 in Spring
	2006. The core product does not include any interface with Perl. The
	DBD::Pg driver, that is the PostgreSQL DBI interface will allow perl 
	programs to work with PostgreSQL database. This project aims at 
	integrating the DBD::Pg driver into Solaris.

   2.2. Risks and Assumptions:

	DBD::Pg driver is an open source product, and we (Sun) were not involved
	in it's development. As in the original ARC case for PostgreSQL 8.1, 
	we have to make a number of assumptions about its use of stable interfaces.

	DBD::Pg driver is developed and maintained by the Perl community. It is
	currently very stable and mature. This driver can be distributed under the
	terms of either GNU General Public License or the Artistic License.

	DBD::Pg driver depends on Generic Database Interface module (DBI) for Perl.
	The DBI module also can be distributed under the terms of either GNU General
	Public LIcense or the Artistic License. 

	DBD::Pg driver facilitates the perl database applications to work with PostgreSQL.
	Integration of the same completes the loop between Perl and PostgreSQL, both of 
	which already exist in Solaris.

3. Business Summary
   3.1. Problem Area:

	Perl database applications need the DBD::Pg driver installed to work with 
	PostgreSQL database on Solaris.

   3.2. Market/Requester:

	Any Perl database application user will benefit from DBD::Pg driver.

	Sun Japan has released a product which requires DBD::Pg. They are currently 
	supporting it themselves.

   3.3. Business Justification:

	This significantly enhances our PostgreSQL offering on Solaris. Solaris would
	now be able to compete with other Operating systems running perl based database
	applications.

   3.4. Competitive Analysis:

	The competitor really in this situation is the low-cost platform dealers such as
	Dell running Linux. We need to prove that database solutions can be implemented at
	a low cost on Solaris as an alternative to using high-cost database software on
	low-cost hardware.

   3.5. Opportunity Window/Exposure:

	DBD::Pg driver (along with DBI module) is ready to be integrated.

   3.6. How will you know when you are done?:

	When the DBD::Pg driver is integrated into the S10 and Nevada SFW consolidations.


#ifndef HALF_PAGER	// A Half Pager stops at this point

4. Technical Description:
    4.1. Details:

	The Database Interface module (DBI) in Perl is a generic database access module for
	Perl programming language. It defines a set of methods, variables, and conventions
	that provide a consistent database interface, independent of the actual database 
	being used. DBI is a layer "glue" between an application and one or more database
	driver modules. The DBI provides a standard interface and framework for the drivers
	to operate within. More information on DBI can be found here,
	http://search.cpan.org/~timb/DBI-1.58/DBI.pm 

	DBD::Pg is a Perl module that works with the DBI module to provide access to PostgreSQL
	Database. More information on DBD::Pg can be found at,
	http://search.cpan.org/~dbdpg/DBD-Pg-1.49/Pg.pm

	Both, DBI and DBD::Pg will need to be integrated into SFW consolidation. The two modules
	will go as two different packages and there will be only one version of such modules at
	any time. The two packages will mainly include shared objects. 
	
    4.2. Bug/RFE Number(s):
    
    4.3. In Scope:

    4.4. Out of Scope:
    
    4.5. Interfaces:

	The modules installed would in turn interact with PostgreSQL server
	process at the specified port. This port specification is handled in
	PostgreSQL and hence, that is not related in this regard. 

	There are no configuration files to create/edit. There is no API.
    
    4.6. Doc Impact:
	
	This integration will rightly add man entries. None of the existing man
	entries will be touched. Some of the new man entries are as below,

	/usr/perl5/5.8.4/man/man1/dbilogstrip.1
	/usr/perl5/5.8.4/man/man1/dbiprof.1
	/usr/perl5/5.8.4/man/man1/dbiproxy.1
	/usr/perl5/5.8.4/man/man3/Bundle::DBI.3
	/usr/perl5/5.8.4/man/man3/DBD::DBM.3
	/usr/perl5/5.8.4/man/man3/DBD::File.3
	/usr/perl5/5.8.4/man/man3/DBD::Gofer.3
	/usr/perl5/5.8.4/man/man3/DBI.3
	/usr/perl5/5.8.4/man/man3/DBD::Pg.3
    
    4.7. Admin/Config Impact:
    
    4.8. HA Impact:
    
    4.9. I18N/L10N Impact:
    
    4.10. Packaging & Delivery:

	SUNWpmdbi	Database independent interface module for Perl
	SUNWdbdpg	The DBI PostgreSQL interface for Perl
    
    4.11. Security Impact:
    
    4.12. Dependencies:

	DBD::Pg driver will mainly depend on the Perl DBI module that will
	also be included. DBD::Pg then, will depend on PostgreSQL libpq client
	API (PostgreSQL version 8.2).

	$ldd Pg.so 
        libpq.so.5 =>    /usr/postgres/8.2/lib/libpq.so.5
        libssl.so.0.9.8 =>       /usr/sfw/lib/libssl.so.0.9.8
        libcrypto.so.0.9.8 =>    /usr/sfw/lib/libcrypto.so.0.9.8
        libkrb5.so.1 =>  /usr/lib/libkrb5.so.1
        libsocket.so.1 =>        /lib/libsocket.so.1
        libpthread.so.1 =>       /lib/libpthread.so.1
        libc.so.1 =>     /lib/libc.so.1
        libnsl.so.1 =>   /lib/libnsl.so.1
        libmp.so.2 =>    /lib/libmp.so.2
        libmd.so.1 =>    /lib/libmd.so.1
        libscf.so.1 =>   /lib/libscf.so.1
        libuutil.so.1 =>         /lib/libuutil.so.1
        libgen.so.1 =>   /lib/libgen.so.1
        libcrypto_extra.so.0.9.8 =>      (file not found)
        mech_krb5.so.1 =>        /usr/lib/gss/mech_krb5.so.1
        libgss.so.1 =>   /usr/lib/libgss.so.1
        libresolv.so.2 =>        /lib/libresolv.so.2
        libpkcs11.so.1 =>        /usr/lib/libpkcs11.so.1
        libcryptoutil.so.1 =>    /usr/lib/libcryptoutil.so.1
        libm.so.2 =>     /lib/libm.so.2


5. Reference Documents:

	http://search.cpan.org/~timb/DBI-1.58/DBI.pm
	http://search.cpan.org/~dbdpg/DBD-Pg-1.49/Pg.pm

6. Resources and Schedule:
   6.1. Projected Availability:

	Integration targeted for Nevada and S10 update 5.

   6.2. Cost of Effort:

	Minimal. One resource to integrate into SFW gate.	

   6.3. Cost of Capital Resources:

	None.

   6.4. Product Approval Committee requested information:
   	6.4.1. Consolidation or Component Name:
	
		SFW

	6.4.3. Type of CPT Review and Approval expected:

		Standard

        6.4.4. Project Boundary Conditions:

		N/A

	6.4.5. Is this a necessary project for OEM agreements:

		NO

	6.4.6. Notes:

	6.4.7. Target RTI Date/Release:
		
		ASAP

	6.4.8. Target Code Design Review Date:
	6.4.9. Update approval addition:

   6.5. ARC review type:

		Standard

7. Prototype Availability:
   7.1. Prototype Availability:

	N/A

   7.2. Prototype Cost:

	N/A
#endif


