472,989 Members | 2,992 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 472,989 software developers and data experts.

Help with PostgreSQL porting project

Hi all;

A few years ago, I set about porting a PHP application from MySQL to
PostgreSQL, after realizing that MySQL wasn't going to be able to handle it.
In order to do this, I built a light, fast database abstraction layer which
conforms to the behavior of the MySQL functions in PHP. This means that a
large amount of porting work could be made simple using this porting layer
if the application was originally used PHP's native MySQL functions rather
than a standard porting layer. The application was originally released
under the GPL.

I am pleased to announce that I have been able to secure permission from all
contributors to be able to re-release this under the LGPL, so that it can be
used with non-GPL programs.

If there is interest in this project, please let me know.

Best Wishes,
Chris Travers
---------------------------(end of broadcast)---------------------------
TIP 9: the planner will ignore your desire to choose an index scan if your
joining column's datatypes do not match

Nov 12 '05 #1
4 2309
Hi,

On Fri, 2004-01-02 at 13:38, Chris Travers wrote:
A few years ago, I set about porting a PHP application from MySQL to
PostgreSQL, after realizing that MySQL wasn't going to be able to handle it.
In order to do this, I built a light, fast database abstraction layer which
conforms to the behavior of the MySQL functions in PHP. This means that a
large amount of porting work could be made simple using this porting layer
if the application was originally used PHP's native MySQL functions rather
than a standard porting layer. The application was originally released
under the GPL.


I guess it might bother you when people ask this but, what made you do
the hardwork while it's already been done by several other projects like
PHP ADODB and PEAR?

Just another curious guy from far side of the world,
Happy new year :)
--
__________
| |
| | Enver ALTIN (a.k.a. skyblue)
| | Software developer, IT consultant
| FRONT |
|==========| FrontSITE Bilgi Teknolojisi A..
|_____SITE_| http://www.frontsite.com.tr/

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.3 (GNU/Linux)

iD8DBQA/9V2GZCB2FZvqK0sRAulPAJ4+e4kcihKiUMlf0M+1OOa8F57lvQ CghIud
PNgQaQ8WHY83eTKr4kLLNO8=
=2Ozb
-----END PGP SIGNATURE-----

Nov 12 '05 #2
Enver ALTIN wrote:
Hi,

On Fri, 2004-01-02 at 13:38, Chris Travers wrote:
A few years ago, I set about porting a PHP application from MySQL to
PostgreSQL, after realizing that MySQL wasn't going to be able to handle it.
In order to do this, I built a light, fast database abstraction layer which
conforms to the behavior of the MySQL functions in PHP. This means that a
large amount of porting work could be made simple using this porting layer
if the application was originally used PHP's native MySQL functions rather
than a standard porting layer. The application was originally released
under the GPL.

I guess it might bother you when people ask this but, what made you do
the hardwork while it's already been done by several other projects like
PHP ADODB and PEAR?

Are those two LIGHT weight?

Afaik, PEAR (DB) affects the performance of your OO-php-app quite bad,
but I haven't really tested it very often myself, just seen tests by others?
And I'm not talking "quite bad, because php is not very fast in OO", I'm
talking "quite bad, compared to other (custom built, light weight,
simple) OO abstraction layers".

Maybe that has changed since then? But I have, for that reason, never
really started using PEAR...

Best regards,

Arjen

---------------------------(end of broadcast)---------------------------
TIP 2: you can get off all lists at once with the unregister command
(send "unregister YourEmailAddressHere" to ma*******@postgresql.org)

Nov 12 '05 #3
Hi,

On Fri, 2004-01-02 at 14:20, Arjen van der Meijden wrote:
Are those two LIGHT weight?
Afaik, PEAR (DB) affects the performance of your OO-php-app quite bad,
but I haven't really tested it very often myself, just seen tests by others?
And I'm not talking "quite bad, because php is not very fast in OO", I'm
talking "quite bad, compared to other (custom built, light weight,
simple) OO abstraction layers".
Maybe that has changed since then? But I have, for that reason, never
really started using PEAR...


Please don't get me wrong, I've got an obsession like determining the
idea behind any free software project which I'm not really sure if it's
a good thing or not.

I'm not the only one who thinks there are way too many projects
duplicating each other (either completely or partially); wasting human
resources and motivation in both short and long term.

Just talking about PEAR::DB, you know, it's a generic database
abstraction layer which attempts to provide almost the same interface
for hopefully all databases supported by PHP; not only for PostgreSQL
and MySQL. It's no junk and it's something barely standardized and it's
bundled with official PHP distribution. In the end, it's free software.
I have noticed no performance bottlenecks in the past and even if there
was, I doubt there is a starving need for performance in web
applications. And I could be a good salesman so I'd better shut up :)

The term "lightweight" means barely nothing to me. Mozilla is FAT, but
most of us do use (at least parts of) it. PostgreSQL is not that
lightweight, you could use flat-files and POSIX API. For many cases,
weight is affordable, and we could possibly help it lose that fat by bug
reports.

BTW, you have not posted a URL for your work. Could you please do so, if
there is any? I would like to take a quick look at your code some time
this weekend.

Thanks for your patience for reading through the
stripped-from-good-ideas proven long text written by me.
Happy new year,
--
__________
| |
| | Enver ALTIN (a.k.a. skyblue)
| | Software developer, IT consultant
| FRONT |
|==========| FrontSITE Bilgi Teknolojisi A..
|_____SITE_| http://www.frontsite.com.tr/

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.3 (GNU/Linux)

iD8DBQA/9WZ+ZCB2FZvqK0sRAp29AJ4hgqs8lI2JCCyjY2q6K/xgfnWkaACfYgeD
wpV2Tt1wtb8DU3wYXHHwJro=
=xeGU
-----END PGP SIGNATURE-----

Nov 12 '05 #4
Actually, I already had a few thousand lines of code done (using PHP's MySQL
functions) and I needed an abstraction layer to conform to my existing code.

In this case, if an application has been written with PHP's MySQL functions,
porting it to this layer would be simple and straightforward, with a minimum
of rewriting code (aside from, perhaps checking a few queries). Most of it
could be handled with search/replace facilities.

Even with a standard abstraction layer like PEAR or ADODB, the query syntax
is not identical between database managers. Although this is not nearly
perfect, I have attempted abstract over many of these differences (LIMIT
clauses, timestamp formats, etc.) The abstraction is not perfect but it
helps. A few additional functions could be written to better abstract some
of these things.

Basically these files contain a set of light-weight wrappers to facilitate
porting frim MySQL to PostgreSQL of PHP applications.

Basically, incompatibility comes from three things:
1: Incompatible data representation (aside from timestamps not handled by
most abstraction layers, including this one). However, some of these could
be better handled (such as BOOLs).

2: Incompatible function behavior (normally handled by any abstraction
layer)
For example PostgreSQL's return sets are not forward only, while MySQL's
are.

3: Query differences. For example, if I write:
SELECT * FROM customers ORDER BY last_name LIMIT 30 OFFSET 30
This will run on MySQL, but not PostgreSQL. I handled the difference in my
project by adding a function to generate limit clauses for given offsets and
limits. For RDBMS's that don't support offsets (MSSQL, Firebird), this
would be a bit more complex, but it could be done.

In other words, this is a simple API wrapper to make the db's behave the
same. It is NOT OO.

Best Wishes,
Chris Travers

----- Original Message -----
From: "Arjen van der Meijden" <ac********@vulcanus.its.tudelft.nl>
To: "Enver ALTIN" <en*********@frontsite.com.tr>
Cc: "Chris Travers" <ch***@travelamericas.com>;
<pg***********@postgresql.org>
Sent: Friday, January 02, 2004 7:20 PM
Subject: Re: [GENERAL] Help with PostgreSQL porting project

Enver ALTIN wrote:
Hi,

On Fri, 2004-01-02 at 13:38, Chris Travers wrote:
A few years ago, I set about porting a PHP application from MySQL to
PostgreSQL, after realizing that MySQL wasn't going to be able to handle it.In order to do this, I built a light, fast database abstraction layer whichconforms to the behavior of the MySQL functions in PHP. This means that alarge amount of porting work could be made simple using this porting layerif the application was originally used PHP's native MySQL functions ratherthan a standard porting layer. The application was originally released
under the GPL.

I guess it might bother you when people ask this but, what made you do
the hardwork while it's already been done by several other projects like
PHP ADODB and PEAR?

Are those two LIGHT weight?

Afaik, PEAR (DB) affects the performance of your OO-php-app quite bad,
but I haven't really tested it very often myself, just seen tests by

others? And I'm not talking "quite bad, because php is not very fast in OO", I'm
talking "quite bad, compared to other (custom built, light weight,
simple) OO abstraction layers".

Maybe that has changed since then? But I have, for that reason, never
really started using PEAR...

Best regards,

Arjen


---------------------------(end of broadcast)---------------------------
TIP 1: subscribe and unsubscribe commands go to ma*******@postgresql.org

Nov 12 '05 #5

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

0
by: Savage | last post by:
I have a PostgreSQL database running under linux. Unfortunately the company has deemed it neccessary to move from Linux to Windows, so now I am tasked with moving all of the PostgreSQL database...
28
by: Jed | last post by:
Hello to all! I have a couple of projects I intend starting on, and was wondering if someone here could make a suggestion for a good compiler and development environment. My goals are as...
10
by: Rada Chirkova | last post by:
Hi, at NC State University, my students and I are working on a project called "self-organizing databases," please see description below. I would like to use an open-source database system for...
20
by: John Wells | last post by:
Yes, I know you've seen the above subject before, so please be gentle with the flamethrowers. I'm preparing to enter a discussion with management at my company regarding going forward as either...
11
by: Errol Neal | last post by:
Hi all, Not sure if this is a question for a php list or this one, but I'll give it a shot and if I am wrong, please do not crucify me. :-) There is a php based sourceforge project called...
3
by: Rod Early | last post by:
I have the task of converting a SQL Server 2000 database to PostgreSQL. The data itself does not need to be converted, but the structure and stored procedures must be. I expect that converting...
2
by: Nadeem Bitar | last post by:
I've searched unsuccessfully on google and the archives for a technical comparison of Oracle and PostgreSQL. Is there any free and recent comparison that covers more than just the basic...
5
by: BK-Chicago | last post by:
I am in the midst of porting a massive MFC application from VS6.0 to VS8.0. While i have fixed most of the compile time errors, i do have quite a linker error that i have not been able to resolve....
7
by: Penelope Dramas | last post by:
Hello, We have decided to change our database back-end from MSDE to postgreSQL. Would anyone please share his/her experience with this database as far as speed, functionality and security...
0
by: lllomh | last post by:
Define the method first this.state = { buttonBackgroundColor: 'green', isBlinking: false, // A new status is added to identify whether the button is blinking or not } autoStart=()=>{
0
tracyyun
by: tracyyun | last post by:
Hello everyone, I have a question and would like some advice on network connectivity. I have one computer connected to my router via WiFi, but I have two other computers that I want to be able to...
2
by: giovanniandrean | last post by:
The energy model is structured as follows and uses excel sheets to give input data: 1-Utility.py contains all the functions needed to calculate the variables and other minor things (mentions...
4
NeoPa
by: NeoPa | last post by:
Hello everyone. I find myself stuck trying to find the VBA way to get Access to create a PDF of the currently-selected (and open) object (Form or Report). I know it can be done by selecting :...
3
NeoPa
by: NeoPa | last post by:
Introduction For this article I'll be using a very simple database which has Form (clsForm) & Report (clsReport) classes that simply handle making the calling Form invisible until the Form, or all...
1
by: Teri B | last post by:
Hi, I have created a sub-form Roles. In my course form the user selects the roles assigned to the course. 0ne-to-many. One course many roles. Then I created a report based on the Course form and...
3
by: nia12 | last post by:
Hi there, I am very new to Access so apologies if any of this is obvious/not clear. I am creating a data collection tool for health care employees to complete. It consists of a number of...
0
isladogs
by: isladogs | last post by:
The next online meeting of the Access Europe User Group will be on Wednesday 6 Dec 2023 starting at 18:00 UK time (6PM UTC) and finishing at about 19:15 (7.15PM). In this month's session, Mike...
4
by: GKJR | last post by:
Does anyone have a recommendation to build a standalone application to replace an Access database? I have my bookkeeping software I developed in Access that I would like to make available to other...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.