Gennick: It's well-known that the Red Hat Database is a version of PostgreSQL. How different is the Red Hat Database from plain old PostgreSQL.
Drake: This is a better question for Red Hat, however I can point out some obvious traits. The Red Hat Database was originally a 7.1.2 code base. It now lists as 7.1.3, which puts the code at just about 12 months old. The 7.2 series is quite a bit more advanced, stable, and manageable than the 7.1 series. In fact, we delayed our release of Mammoth until the community released 7.2.1 for these reasons.
Gennick: Has Red Hat been successful in its offering of PostgreSQL as the Red Hat Database? And has Red Hat's offering spurred any additional interest in PostgreSQL in general, outside of the Red Hat sphere of influence?
Drake: Again, this is probably more a question for Red Hat. However, I can say we get a lot of people calling us saying, "I can't convince myself to spend $2,300 on PostgreSQL, can Command Prompt help me?". Outside of people noticing us when they review Red Hat DB we don't run into the Red Hat DB often. The marketing team over at Red Hat does not seem focused on delivering mind share for its database product.
Gennick: If you were giving advice to someone just beginning to use PostgreSQL, are there any technology intersections, such as PostgreSQL and PHP for example, that you think deserve special attention?
Drake: Well outside of LXP and reading Practical PostgreSQL from O'Reilly--blatant plug--I believe that PHP and Java both deserve mention with PostgreSQL. It is also important to remember what PostgreSQL is. It is easiest to think of PostgreSQL as baby Oracle. They have a lot of the same features, but PostgreSQL is a lot easier to manage. I would also suggest the following Web sites:
Gennick: Oracle and Microsoft have been hard at work building XML support into their databases. Oracle9i, for example, allows you to easily return query results in XML format. When can we expect to see XML support in PostgreSQL?
Drake: You can process XML results with LXP (or any other Web language) with PostgreSQL and we (Command Prompt) are looking into developing XQuery support for PostgreSQL. There are advantages and disadvantages to exporting your data as XML. Exporting XML directly from the database adds verbosity to the query results, which can make processing them easier, but also adds a lot of unrequired data, thus creating a possible strain on bandwidth (not just Net bandwidth, but i/o bandwidth as well). We find that it is better to export raw tabular data and format to XML for processing through XSLT than to export XML directly from the database.
With LXP 1.0 you will be able to process a query, render the tabular results as XML, and then process them through XSLT to generate whatever output you desire. You could even transform the XML to PDF on the fly and store it back to PostgreSQL as a large object, or bytea.
Gennick: A "bytea"? What is that?.
Drake: It is a data type for binary data. However unlike a large object it is stored within the table row just like the rest of the data.
Gennick: What does Command Prompt do besides the obvious PostgreSQL support?
Drake: Command Prompt--warning marketing lingo imminent--is a managed services firm with a focus on PostgreSQL and Linux custom development. We offer a full enterprise-class product and services line including; A VAR/OEM program, managed hosting (Virtual and Dedicated), custom application programming, tier 3 support, consulting services, and training. We also offer a complete commercial line of products called Mammoth. These include Mammoth PostgreSQL, Mammoth LXP, Mammoth S/ODBC, and Mammoth Browser.
Gennick: What features would you like to see the PostgreSQL community working on?
Drake: I know this will sound like blasphemy but I would like to see stronger support for Win32. There is a large need in the Win32 community for a database that is as capable as PostgreSQL without costing $10,000 to $40,000 dollars.
Gennick: What are some of the problems with the current level of Windows support?
Drake: The largest problem is a limitation on the number of connections that can be made. PostgreSQL on Win32 uses Cygwin, which is a POSIX compatibility layer for Win32. The Cygwin fork() implementation, which PostgreSQL uses, is limited as to how many times it can branch. You end up hitting a connection limit at 63 connections, I believe.
We have done some optimizing and testing with Mammoth PostgreSQL on Win32 and have found it to be very stable, with decent performance as long as we keep the connections at 50 or below.
Gennick: What specific features is Command Prompt working on for PostgreSQL?
Drake: Well, we mentioned previously that we are working on XQuery support. We also have a procedural language called XPL, which is basically LXP but is meant to be called from the database (Like pl/PgSQL), our S/ODBC driver and our cross-platform management tool, Mammoth Browser. We are also working on a replication and load-balancing engine for PostgreSQL.
Gennick: Josh, thanks very much for your time, and for a very interesting interview. I learned a lot from our little chat.
Drake: Jonathan, you're very welcome. It's been my pleasure.
O'Reilly & Associates recently released (January 2002) Practical PostgreSQL.
Sample Chapter 2, "Installing PostgreSQL", is available free online.
For more information, or to order the book, click here.
Jonathan Gennick is an O'Reilly Media, Inc. editor specializing in database and programming titles.
Return to the O'Reilly Network.