<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <title>PostgreSQL news</title>
    <link rel="alternate" type="text/html" href="http://blogs.codehaus.org/people/davec/" />
    <link rel="self" type="application/atom+xml" href="http://blogs.codehaus.org/people/davec/atom.xml" />
    <id>tag:blogs.codehaus.org,2010-01-17:/people/davec//50</id>
    <updated>2009-12-11T22:40:04Z</updated>
    <subtitle>PostgreSQL International</subtitle>
    <generator uri="http://www.sixapart.com/movabletype/">Movable Type 5.01</generator>

<entry>
    <title>Enterprise DB</title>
    <link rel="alternate" type="text/html" href="http://blogs.codehaus.org/people/davec/archives/001182_enterprise_db.html" />
    <id>tag:blogs.codehaus.org,2005:/people/davec//50.1182</id>

    <published>2005-09-30T19:42:07Z</published>
    <updated>2009-12-11T22:40:04Z</updated>

    <summary>Recently the folks at Enterprise DB announced that they had hired me. It is true that we signed a contract. However that is as far as it went. I visited Andy and Denis in New Jersey, and about a month later we signed a contract which had me working for them as their Senior Java Architect. A couple of days pass after signing the contract, and I am waiting anxiously for directions from my new employer. I send them some email, leave some voice messages, and hear nothing. Strange .... A couple more weeks go by, some emails exchange about this. They insist that I am integral to their plan. I figure they are busy trying to raise money. Finally I hear they have closed the second round of financing, so I send another email querying them. They reply that they figured I had moved on. This is getting stranger with every passing event. I finally get to the bottom of this and it turns out that we cannot come to mutually agreeable terms. The result of this is that I am not employed by Enterprise DB. Anyways, I wish them the best...</summary>
    <author>
        <name></name>
        <uri>http://blogs.codehaus.orgg/people/davec/</uri>
    </author>
    
    
    <content type="html" xml:lang="en" xml:base="http://blogs.codehaus.org/people/davec/">
        <![CDATA[<p>Recently the folks at Enterprise DB announced that they had hired me. It is true that we signed a contract. However that is as far as it went.</p>

<p>I visited Andy and Denis in New Jersey, and about a month later we signed a contract which had me working for them as their Senior Java Architect. A couple of days pass after signing the contract, and I am waiting anxiously for directions from my new employer.  I send them some email, leave some voice messages, and hear nothing. Strange .... A couple more weeks go by, some emails exchange about this. They insist that I am integral to their plan. I figure they are busy trying to raise money.</p>

<p>Finally I hear they have closed the second round of financing, so I send another email querying them. They reply that they figured I had moved on. This is getting stranger with every passing event. I finally get to the bottom of this and it turns out that we cannot come to mutually agreeable terms. The result of this is that I am not employed by Enterprise DB.</p>

<p>Anyways, I wish them the best</p>]]>
        
    </content>
</entry>

<entry>
    <title>Job Posting</title>
    <link rel="alternate" type="text/html" href="http://blogs.codehaus.org/people/davec/archives/001142_job_posting.html" />
    <id>tag:blogs.codehaus.org,2005:/people/davec//50.1142</id>

    <published>2005-08-04T13:08:29Z</published>
    <updated>2009-12-11T22:40:01Z</updated>

    <summary>I&apos;m looking for someone with the following: postgresql hibernate spring tapestry jasper HL7...</summary>
    <author>
        <name></name>
        <uri>http://blogs.codehaus.orgg/people/davec/</uri>
    </author>
    
    
    <content type="html" xml:lang="en" xml:base="http://blogs.codehaus.org/people/davec/">
        <![CDATA[<p>I'm looking for someone with the following:</p>

<p>postgresql<br />
hibernate<br />
spring<br />
tapestry<br />
jasper</p>

<p>HL7</p>]]>
        
    </content>
</entry>

<entry>
    <title>PostgreSQL Major Work</title>
    <link rel="alternate" type="text/html" href="http://blogs.codehaus.org/people/davec/archives/000635_postgresql_major_work.html" />
    <id>tag:blogs.codehaus.org,2004:/people/davec//50.635</id>

    <published>2004-03-03T21:11:00Z</published>
    <updated>2009-12-11T22:42:49Z</updated>

    <summary>MAJOR WORK IN PROGRESS - Win32 - Changes to many areas, especially the postmaster, ipc, libpq etc, to streamline and allow a single source Win32 port - the Win32 port is coming closer! (Claudio) Changes are being implemented to allow a single code base to work across both *NIX and Win32 systems. Mostly, code changes are such that the original behaviour is preserved, though in a way that allows it to also work on Win32 systems, or with minor changes. - Replication - involving remote copying of WAL logs, then cut-over and automatic catch-up on secondary node (Jan) - Background writer work progresses, which is likely to improve overall scalability/performance by smoothing dirty blocks writes; forms the basis for increased server availability also (Jan) - Initial stages of Named Function parameter support have been committed. pg_proc has a column to store names, and CREATE FUNCTION can insert data into it, but that&apos;s all as yet. (Dennis) - Buffer manager locking changes: lock contention data have shown that the BufMgrLock is the major source of contention under heavy load, effecting multi-CPU SMP scalability. Patch to rework the bufmgr&apos;s locking scheme to be more granular and further perf testing may yield further perf gains. (Neil) - Backend internal data structure changes: list rewrite: the linked list implementation used throughout the backend is being redesigned for constant-time length and append operations. This was done because lappend() is called quite frequently, and allows some ugly code (FastList) to be removed. (Neil) - Hash index changes: complete wrap up of unique hash indexes, as well as some improvements to hash index concurrent performance. (Neil) - Re-evaluation of Genetic Query Optimizer parameters and usage will likely continue for some and any real usage scenarios/observations are welcome - PITR APIs, basic utilities and testing (Simon)...</summary>
    <author>
        <name></name>
        <uri>http://blogs.codehaus.orgg/people/davec/</uri>
    </author>
    
    
    <content type="html" xml:lang="en" xml:base="http://blogs.codehaus.org/people/davec/">
        <![CDATA[<p>MAJOR WORK IN PROGRESS <br />
                                                                                                                                                                   <br />
- Win32 - Changes to many areas, especially the postmaster, ipc, libpq<br />
etc, to streamline and allow a single source Win32 port - the Win32 port<br />
is coming closer! (Claudio) Changes are being implemented to allow a<br />
single code base to work across both *NIX and Win32 systems. Mostly,<br />
code changes are such that the original behaviour is preserved, though<br />
in a way that allows it to also work on Win32 systems, or with minor<br />
changes.<br />
                                                                                                                                                                   <br />
- Replication - involving remote copying of WAL logs, then cut-over and<br />
automatic catch-up on secondary node (Jan)<br />
                                                                                                                                                                   <br />
- Background writer work progresses, which is likely to improve overall<br />
scalability/performance by smoothing dirty blocks writes; forms the<br />
basis for increased server availability also (Jan)<br />
                                                                                                                                                                   <br />
- Initial stages of Named Function parameter support have been<br />
committed. pg_proc has a column to store names, and CREATE FUNCTION can<br />
insert data into it, but that's all as yet. (Dennis)<br />
                                                                                                                                                                   <br />
- Buffer manager locking changes: lock contention data have shown that<br />
the BufMgrLock is the major source of contention under heavy load,<br />
effecting multi-CPU SMP scalability. Patch to rework the bufmgr's<br />
locking scheme to be more granular and further perf testing may yield<br />
further perf gains. (Neil)<br />
                                                                                                                                                                   <br />
- Backend internal data structure changes: list rewrite: the linked list<br />
implementation used throughout the backend is being redesigned for<br />
constant-time length and append operations. This was done because<br />
lappend() is called quite frequently, and allows some ugly code<br />
(FastList) to be removed. (Neil)<br />
                                                                                                                                                                   <br />
- Hash index changes: complete wrap up of unique hash indexes, as well<br />
as some improvements to hash index concurrent performance. (Neil)<br />
                                                                                                                                                                   <br />
- Re-evaluation of Genetic Query Optimizer parameters and usage will<br />
likely continue for some and any real usage scenarios/observations are<br />
welcome<br />
                                                                                                                                                                   <br />
- PITR APIs, basic utilities and testing (Simon)<br />
</p>]]>
        
    </content>
</entry>

<entry>
    <title>PostgreSQL Major Impacts</title>
    <link rel="alternate" type="text/html" href="http://blogs.codehaus.org/people/davec/archives/000634_postgresql_major_impacts.html" />
    <id>tag:blogs.codehaus.org,2004:/people/davec//50.634</id>

    <published>2004-03-03T21:08:47Z</published>
    <updated>2009-12-11T22:42:49Z</updated>

    <summary>MAJOR IMPACTS NOTED (Upgrades, performance, change of defaults etc) - initdb forced due to pg_proc change to support Named function parameters - initdb forced due to change of stored rule representation. - initdb recommended to allow picking up Info Schema changes - initdb is forced due to changes in pg_control contents for WAL logging enhancements. - geqo defaults have now been set to significantly more effective values; we should expect increased optimization elapsed times for very large queries, though hopefully outweighed by a significant improvement in plan selection - security tightening may cause errors with some existing applications - be aware, but also be thankful!...</summary>
    <author>
        <name></name>
        <uri>http://blogs.codehaus.orgg/people/davec/</uri>
    </author>
    
    
    <content type="html" xml:lang="en" xml:base="http://blogs.codehaus.org/people/davec/">
        <![CDATA[<p>MAJOR IMPACTS NOTED (Upgrades, performance, change of defaults etc)<br />
                                                                                                                                                                   <br />
- initdb forced due to pg_proc change to support Named function<br />
parameters<br />
                                                                                                                                                                   <br />
- initdb forced due to change of stored rule representation.<br />
                                                                                                                                                                   <br />
- initdb recommended to allow picking up Info Schema changes<br />
                                                                                                                                                                   <br />
- initdb is forced due to changes in pg_control contents for WAL logging<br />
enhancements.<br />
                                                                                                                                                                   <br />
- geqo defaults have now been set to significantly more effective<br />
values; we should expect increased optimization elapsed times for very<br />
large queries, though hopefully outweighed by a significant improvement<br />
in plan selection<br />
                                                                                                                                                                   <br />
- security tightening may cause errors with some existing applications -<br />
be aware, but also be thankful!<br />
</p>]]>
        
    </content>
</entry>

<entry>
    <title>PostgreSQL Refactoring</title>
    <link rel="alternate" type="text/html" href="http://blogs.codehaus.org/people/davec/archives/000633_postgresql_refactoring.html" />
    <id>tag:blogs.codehaus.org,2004:/people/davec//50.633</id>

    <published>2004-03-03T21:05:37Z</published>
    <updated>2009-12-11T22:42:48Z</updated>

    <summary>REFACTORING AND OTHER CODE CHANGES - Remove the explicit casting of NULL literals to a pointer in a wide variety of code locations (Neil) - Add operator strategy and comparison-value datatype fields to ScanKey. Remove the &apos;strategy map&apos; code - Passing the strategy number to the index AM directly should now be simpler and faster. Changes to ScanKeyEntryInitialize() API touches quite a lot of files. (Tom) - nbtree function _bt_first is now substantially changed/simplified (Tom) - Change PG_DELAY from msec to usec and use it consistently rather than select(). Add Win32 Sleep() for delay. (Bruce) - Supporting relaxing of ALTER...SET PATH requires changing the API for GUC assign_hook functions, which touches a lot of places (Tom) - initdb has now been completely re-written from shell script to C (Andrew) - Add some code to guc.c to allow backwards compatibility for server config parameters. Variable renaming is now more easily possible, since parameters can potentially be referenced by both their old and new names in SHOW and SET commands. (Tom) - Remove the long-dead &apos;persistent main memory&apos; storage manager (mm.c), since it seems quite unlikely to ever get resurrected. (Tom) - Add configure support for determining UINT64_FORMAT, the appropriate snprintf format for uint64 items (Tom) - Put another layer of indirection between the compute_stats functions and the actual data storage.| This change would eventually allow us to compute the values on-the-fly, for example using dynamic data sampling techniques when ANALYZE output is not available... (Tom) - In src/backend/access/ we have major changes in heap, nbtree, transam and common code - Almost all files src/backend/commands have changes; mostly robustness - JDBC interface has been moved out into its own project to improve the focus on this popular and important area of client code....</summary>
    <author>
        <name></name>
        <uri>http://blogs.codehaus.orgg/people/davec/</uri>
    </author>
    
    
    <content type="html" xml:lang="en" xml:base="http://blogs.codehaus.org/people/davec/">
        <![CDATA[<p>REFACTORING AND OTHER CODE CHANGES<br />
                                                                                                                                                                   <br />
- Remove the explicit casting of NULL literals to a pointer in a wide<br />
variety of code locations (Neil)<br />
                                                                                                                                                                   <br />
- Add operator strategy and comparison-value datatype fields to ScanKey.<br />
Remove the 'strategy map' code - Passing the strategy number to the<br />
index AM directly should now be simpler and faster. Changes to<br />
ScanKeyEntryInitialize() API touches quite a lot of files. (Tom)<br />
                                                                                                                                                                   <br />
- nbtree function _bt_first is now substantially changed/simplified<br />
(Tom)<br />
                                                                                                                                                                   <br />
- Change PG_DELAY from msec to usec and use it consistently rather than<br />
select(). Add Win32 Sleep() for delay. (Bruce)<br />
                                                                                                                                                                   <br />
- Supporting relaxing of ALTER...SET PATH requires changing the API for<br />
GUC assign_hook functions, which touches a lot of places (Tom)<br />
                                                                                                                                                                   <br />
- initdb has now been completely re-written from shell script to C<br />
(Andrew)<br />
                                                                                                                                                                   <br />
- Add some code to guc.c to allow backwards compatibility for server<br />
config parameters. Variable renaming is now more easily possible, since<br />
parameters can potentially be referenced by both their old and new names<br />
in SHOW and SET commands. (Tom)<br />
                                                                                                                                                                   <br />
- Remove the long-dead 'persistent main memory' storage manager (mm.c),<br />
since it seems quite unlikely to ever get resurrected. (Tom)<br />
                                                                                                                                                                   <br />
- Add configure support for determining UINT64_FORMAT, the appropriate<br />
snprintf format for uint64 items (Tom)<br />
                                                                                                                                                                   <br />
- Put another layer of indirection between the compute_stats functions<br />
and the actual data storage.|  This change would eventually allow us to<br />
compute the values on-the-fly, for example using dynamic data sampling<br />
techniques when ANALYZE output is not available... (Tom)<br />
                                                                                                                                                                   <br />
- In src/backend/access/ we have major changes in heap, nbtree, transam<br />
and common code<br />
                                                                                                                                                                   <br />
- Almost all files src/backend/commands have changes; mostly robustness</p>

<p>- JDBC interface has been moved out into its own project to improve the<br />
focus on this popular and important area of client code.<br />
                                                                                                                                                                   <br />
</p>]]>
        
    </content>
</entry>

<entry>
    <title>PostgreSQL New Functionality</title>
    <link rel="alternate" type="text/html" href="http://blogs.codehaus.org/people/davec/archives/000632_postgresql_new_functionality.html" />
    <id>tag:blogs.codehaus.org,2004:/people/davec//50.632</id>

    <published>2004-03-03T21:04:36Z</published>
    <updated>2009-12-11T22:42:48Z</updated>

    <summary>OTHER NEW FUNCTIONALITY - Add &quot;WITH / WITHOUT OIDS&quot; clause to CREATE TABLE AS. This allows the user to explicitly specify whether OIDs should be included in the newly-created relation; useful because it provides a way for application authors to ensure their applications are compatible with future versions of (in which the relation created by CREATE TABLE AS won&apos;t include OIDs by default). (Neil) - Add more kinds of exprs that can be accepted after a CREATE SCHEMA (Neil) - Info Schema enhanced further to support named function parameters (Dennis) - Change factorial to return a numeric (Gavin) - Comments can now be set on individual Cast, Conversion, Op Class, Large Object and Language (s) (Chris) - Have psql \dn show only visible temp schemas using current_schemas() - Have psql &apos;\i ~/&apos; actually load files it displays from home dir - Allow psql \du to show groups, and add \dg for groups - Allow pg_dump to dump CREATE CONVERSION (Chris) - Make USING and WITH optional to bring the syntax of \copy into exact agreement with what the backend grammar actually accepts and what the documentation already says (Tom, Bill Moran) - Remove platform dependencies from miscadmin.h and put them in port.h (Tom) - New generate_series() function; first of new class of Set Returning functions - can return more than one row. (Joe) - Monitoring of session disconnection now possible using the log_disconnections parameter (Andrew) - Customizable ANALYZE function for user definable functions is generic functionality, though as base for PostGIS enhancements...</summary>
    <author>
        <name></name>
        <uri>http://blogs.codehaus.orgg/people/davec/</uri>
    </author>
    
    
    <content type="html" xml:lang="en" xml:base="http://blogs.codehaus.org/people/davec/">
        <![CDATA[<p>OTHER NEW FUNCTIONALITY<br />
                                                                                                                                                                   <br />
- Add "WITH / WITHOUT OIDS" clause to CREATE TABLE AS. This allows the<br />
user to explicitly specify whether OIDs should be included in the<br />
newly-created relation; useful because it provides a way for application<br />
authors to ensure their applications are compatible with future versions<br />
of (in which the relation created by CREATE TABLE AS won't include OIDs<br />
by default). (Neil)<br />
                                                                                                                                                                   <br />
- Add more kinds of exprs that can be accepted after a CREATE SCHEMA<br />
(Neil)<br />
                                                                                                                                                                   <br />
- Info Schema enhanced further to support named function parameters<br />
(Dennis)<br />
                                                                                                                                                                   <br />
- Change factorial to return a numeric (Gavin)<br />
                                                                                                                                                                   <br />
- Comments can now be set on individual Cast, Conversion, Op Class,<br />
Large Object and Language (s) (Chris)<br />
                                                                                                                                                                   <br />
- Have psql \dn show only visible temp schemas using current_schemas()<br />
                                                                                                                                                                   <br />
- Have psql '\i ~/<tab><tab>' actually load files it displays from home<br />
dir<br />
                                                                                                                                                                   <br />
- Allow psql \du to show groups, and add \dg for groups<br />
                                                                                                                                                                   <br />
- Allow pg_dump to dump CREATE CONVERSION (Chris)<br />
                                                                                                                                                                   <br />
- Make USING and WITH optional to bring the syntax of \copy into exact<br />
agreement with what the backend grammar actually accepts and what the<br />
documentation already says (Tom, Bill Moran)<br />
                                                                                                                                                                   <br />
- Remove platform dependencies from miscadmin.h and put them in port.h<br />
(Tom)<br />
                                                                                                                                                                   <br />
- New generate_series() function; first of new class of Set Returning<br />
functions - can return more than one row. (Joe)<br />
                                                                                                                                                                   <br />
- Monitoring of session disconnection now possible using the<br />
log_disconnections parameter (Andrew)<br />
                                                                                                                                                                   <br />
- Customizable ANALYZE function for user definable functions is generic<br />
functionality, though as base for PostGIS enhancements<br />
</p>]]>
        
    </content>
</entry>

<entry>
    <title>PostgreSQL Security changes</title>
    <link rel="alternate" type="text/html" href="http://blogs.codehaus.org/people/davec/archives/000631_postgresql_security_changes.html" />
    <id>tag:blogs.codehaus.org,2004:/people/davec//50.631</id>

    <published>2004-03-03T21:03:28Z</published>
    <updated>2009-12-11T22:42:48Z</updated>

    <summary>SECURITY - New permission-checking code. Rather than relying on the query context of a rangetable entry to identify what permissions it wants checked, store a full AclMode mask in each RTE, and check exactly those bits. This allows an RTE specifying, say, INSERT privilege on a view to be copied into a derived UPDATE query without changing meaning. (Tom) - Parsing of quoted keywords in pg_hba.conf enhances client-server specific combination security (Andrew)...</summary>
    <author>
        <name></name>
        <uri>http://blogs.codehaus.orgg/people/davec/</uri>
    </author>
    
    
    <content type="html" xml:lang="en" xml:base="http://blogs.codehaus.org/people/davec/">
        <![CDATA[<p>SECURITY<br />
                                                                                                                                                                   <br />
- New permission-checking code. Rather than relying on the query context<br />
of a rangetable entry to identify what permissions it wants checked,<br />
store a full AclMode mask in each RTE, and check exactly those bits.<br />
This allows an RTE specifying, say, INSERT privilege on a view to be<br />
copied into a derived UPDATE query without changing meaning. (Tom)<br />
                                                                                                                                                                   <br />
- Parsing of quoted keywords in pg_hba.conf enhances client-server<br />
specific combination security (Andrew)<br />
</p>]]>
        
    </content>
</entry>

<entry>
    <title>PostgresSQL Robustness changes</title>
    <link rel="alternate" type="text/html" href="http://blogs.codehaus.org/people/davec/archives/000630_postgressql_robustness_changes.html" />
    <id>tag:blogs.codehaus.org,2004:/people/davec//50.630</id>

    <published>2004-03-03T21:02:40Z</published>
    <updated>2009-12-11T22:42:48Z</updated>

    <summary>ROBUSTNESS - Massive overhaul of pg_dump: make use of dependency information from pg_depend to determine a safe dump order.| Defaults and check constraints can be emitted either as part of a table or domain definition, or separately if that&apos;s needed to break a dependency loop. Lots of old half-baked code for controlling dump order removed. Performance work has also occurred to address some regressions in performance this caused. (Tom) - Changes to ALTER .. SET PATH allows ordered dumps to restore without error - pg_restore options to select restore order now removed - not needed (Tom) - In backend/access/transam/ add warning to AtEOXact_SPI() to catch cases where the current txn has been committed without SPI_finish() being called first. Allows detection of resource leaks... (Joe) - psql memory allocation is being cleaned up, using safer calls (Bruce/Neil) - GetNewTransactionId() logic sequence now enhanced to stay intact even at final stage of resource failure conditions, such as running out of disk space etc (Tom) - Add checks for close() and fclose() failure, applicable to some filesystems. Various locations affected in backend,initdb,copy (Tom) - A header record was added to each WAL file, to allow them to be reliably identified. We now avoid splitting WAL records across segment files, and we now make WAL entries for file creation, deletion, and truncation. This work should give the basics for building the true PITR implementation (J.R., Patrick, Tom) - Also, add support for making XLOG_SEG_SIZE configurable at compile time, similarly to BLCKSZ, possibly useful for smaller installations. (Tom)...</summary>
    <author>
        <name></name>
        <uri>http://blogs.codehaus.orgg/people/davec/</uri>
    </author>
    
    
    <content type="html" xml:lang="en" xml:base="http://blogs.codehaus.org/people/davec/">
        <![CDATA[<p>ROBUSTNESS<br />
                                                                                                                                                                   <br />
- Massive overhaul of pg_dump: make use of dependency information from<br />
pg_depend to determine a safe dump order.|  Defaults and check<br />
constraints can be emitted either as part of a table or domain<br />
definition, or separately if that's needed to break a dependency loop.<br />
Lots of old half-baked code for controlling dump order removed.<br />
Performance work has also occurred to address some regressions in<br />
performance this caused.<br />
(Tom)<br />
                                                                                                                                                                   <br />
- Changes to ALTER .. SET PATH allows ordered dumps to restore without<br />
error - pg_restore options to select restore order now removed - not<br />
needed (Tom)<br />
                                                                                                                                                                   <br />
- In backend/access/transam/ add warning to AtEOXact_SPI() to catch<br />
cases where the current txn has been committed without SPI_finish()<br />
being called first. Allows detection of resource leaks... (Joe)<br />
                                                                                                                                                                   <br />
- psql memory allocation is being cleaned up, using safer calls<br />
(Bruce/Neil)<br />
                                                                                                                                                                   <br />
- GetNewTransactionId() logic sequence now enhanced to stay intact even<br />
at final stage of resource failure conditions, such as running out of<br />
disk space etc (Tom)<br />
                                                                                                                                                                   <br />
- Add checks for close() and fclose() failure, applicable to some<br />
filesystems. Various locations affected in backend,initdb,copy (Tom)<br />
                                                                                                                                                                   <br />
- A header record was added to each WAL file, to allow them to be<br />
reliably identified. We now avoid splitting WAL records across segment<br />
files, and we now make WAL entries for file creation, deletion, and<br />
truncation. This work should give the basics for building the true PITR<br />
implementation (J.R., Patrick, Tom)<br />
                                                                                                                                                                   <br />
- Also, add support for making XLOG_SEG_SIZE configurable at compile<br />
time, similarly to BLCKSZ, possibly useful for smaller installations.<br />
(Tom)<br />
</p>]]>
        
    </content>
</entry>

<entry>
    <title>PostgresSQL changes</title>
    <link rel="alternate" type="text/html" href="http://blogs.codehaus.org/people/davec/archives/000629_postgressql_changes.html" />
    <id>tag:blogs.codehaus.org,2004:/people/davec//50.629</id>

    <published>2004-03-03T21:01:46Z</published>
    <updated>2009-12-11T22:42:48Z</updated>

    <summary>OPTIMIZER/EXECUTOR IMPROVEMENTS - Genetic Optimizer usage has been re-analyzed; geqo defaults have now been set to more effective values which are expected to significantly improve plan selection for complex multi-way joins (&gt; 10-way). geqo_effort setting now offers an easy 1..10 setting (like IBM DB2), that allows this to be controlled realistically by user/DBA. New heuristic added to significantly reduce number of join plans attempted before geqo begins. (Tom) - Avoid redundant unique-ification step on subqueries where the result is already known to be unique (i.e. it is a SELECT DISTINCT ... subquery, IN subqueries that use UNION/INTERSECT/EXCEPT (without ALL)). Also set join_in_selectivity correctly. (Tom) - Avoid redundant projection step when scanning a table that we need all the columns from.| In case of SELECT INTO, we have to check that the hasoids flag matches the desired output type, too. (Tom) - Repair mis-estimation of indexscan CPU costs.| When an indexqual contains a run-time key (that is, a nonconstant expression compared to the index variable), the key is evaluated just once per scan, but we were charging costs as though it were evaluated once per visited index entry. (Tom) - Avoid planner failure for cases involving Cartesian products inside IN (sub-SELECT) constructs. (Tom)...</summary>
    <author>
        <name></name>
        <uri>http://blogs.codehaus.orgg/people/davec/</uri>
    </author>
    
    
    <content type="html" xml:lang="en" xml:base="http://blogs.codehaus.org/people/davec/">
        <![CDATA[<p>OPTIMIZER/EXECUTOR IMPROVEMENTS<br />
                                                                                                                                                                   <br />
- Genetic Optimizer usage has been re-analyzed; geqo defaults have now<br />
been set to more effective values which are expected to significantly<br />
improve plan selection for complex multi-way joins (> 10-way).<br />
geqo_effort setting now offers an easy 1..10 setting (like IBM DB2),<br />
that allows this to be controlled realistically by user/DBA. New<br />
heuristic added to significantly reduce number of join plans attempted<br />
before geqo begins. (Tom)<br />
                                                                                                                                                                   <br />
- Avoid redundant unique-ification step on subqueries where the result<br />
is already known to be unique (i.e. it is a SELECT DISTINCT ...<br />
subquery, IN subqueries that use UNION/INTERSECT/EXCEPT (without ALL)).<br />
Also set join_in_selectivity correctly. (Tom)<br />
                                                                                                                                                                   <br />
- Avoid redundant projection step when scanning a table that we need all<br />
the columns from.|  In case of SELECT INTO, we have to check that the<br />
hasoids flag matches the desired output type, too. (Tom)<br />
                                                                                                                                                                   <br />
- Repair mis-estimation of indexscan CPU costs.|  When an indexqual<br />
contains a run-time key (that is, a nonconstant expression compared to<br />
the index variable), the key is evaluated just once per scan, but we<br />
were charging costs as though it were evaluated once per visited index<br />
entry. (Tom)<br />
                                                                                                                                                                   <br />
- Avoid planner failure for cases involving Cartesian products inside IN<br />
(sub-SELECT) constructs. (Tom)<br />
</p>]]>
        
    </content>
</entry>

<entry>
    <title>PostgreSQL changes </title>
    <link rel="alternate" type="text/html" href="http://blogs.codehaus.org/people/davec/archives/000628_postgresql_changes.html" />
    <id>tag:blogs.codehaus.org,2004:/people/davec//50.628</id>

    <published>2004-03-03T21:01:18Z</published>
    <updated>2009-12-11T22:42:48Z</updated>

    <summary>PERFORMANCE - Major new memory buffer cache algorithm has now been implemented using the Adaptive Replacement Cache algorithm. The implementation should have positive benefit for everybody&apos;s workload, since ARC will adapt to a variety of situations and has been designed to allow Vacuum to avoid interfering with user applications. (Jan) src/backend/buffer - New performance profiling of Intel CPU has allowed new spinlock code to achieve performance/throughput gains of up to 10% using DBT-2 (OLTP) workloads. Further gains to follow? (Manfred Spraul/Tom) src/backend/storage/lmgr/s_lock.c - TIP 9 now needs changing! Cross-data-type comparisons are now indexable by btrees. All the existing cross-type comparison operators (int2/int4/int8) and (float4/float8) have appropriate support. Also (date/timestamp) comparisons allow use of indexes for expressions like datecol &gt;= date &apos;today&apos; - interval &apos;1 month&apos; (Tom) Implications for user defined types and indices also? [HACKERS] 8-Nov-03 - Index performance improved when scanning highly non-unique indices; will greatly improve performance of cursor/fetch logic. B-tree&apos;s initial-positioning-strategy code has been improved for the case when index scans are caused by a WHERE indexcol &gt; something. We now start scan at first entry, rather than reading in all entries that share that index value before we begin to scan. (Tom, after Dimitry Tkach) - Heap access code is now faster when using compressed columns in-line; previous assumption was that all compressed columns were also toasted (Tom) - Optimized calling performance for dynamically loaded C functions. Hash table added to cache lookups of &apos;C&apos;-language functions. Some limited testing suggests that this puts the lookup speed for external functions just about on par with built-in functions. (Tom) - New delay feature added to VACUUM, allowing it to be executed in at a lower priority, ensuring other concurrent transaction performance can be maintained at a predictable level. Detailed analysis and graphs of run-time behaviour available at http://developer.postgresql.org/~wieck/vacuum_cost/ (Jan) Extended to include VACUUM FULL,ANALYZE and non-btree index vacuums. Centralize implementation of delay code by creating a pg_usleep() subroutine in src/port/pgsleep.c. (Tom) - More flexible memory control will allow large memory allocations to large maintenance operations such as CREATE INDEX, without effecting normal memory usage for queries. Rename server parameters SortMem and VacuumMem to work_mem and maintenance_work_mem; old names still available via new backward compatibility feature. Make btree index creation and initial validation of foreign-key constraints use maintenance_work_mem rather than work_mem as their memory limit. (Tom) - Restructure smgr API as per detailed proposal of 6 Feb, to improve performance in bgwriter and background checkpoint processes. Possibly also a precursor to later implementation of Tablespaces... (Tom) - ANALYZE will now collect statistics on expressional indexes, and make use of them during optimization in majority of cases. (Tom) - Repaired longstanding oversight in separate ANALYZE command: it updated the pg_class.relpages and reltuples counts for the table proper, but not for indexes. Greater planning accuracy should now result. (Tom)...</summary>
    <author>
        <name></name>
        <uri>http://blogs.codehaus.orgg/people/davec/</uri>
    </author>
    
    
    <content type="html" xml:lang="en" xml:base="http://blogs.codehaus.org/people/davec/">
        <![CDATA[<p>PERFORMANCE<br />
                                                                                                                                                                   <br />
- Major new memory buffer cache algorithm has now been implemented using<br />
the Adaptive Replacement Cache algorithm. The implementation should have<br />
positive benefit for everybody's workload, since ARC will adapt to a<br />
variety of situations and has been designed to allow Vacuum to avoid<br />
interfering with user applications. (Jan) src/backend/buffer<br />
                                                                                                                                                                   <br />
- New performance profiling of Intel CPU has allowed new spinlock code<br />
to achieve performance/throughput gains of up to 10% using DBT-2 (OLTP)<br />
workloads. Further gains to follow? (Manfred Spraul/Tom)<br />
src/backend/storage/lmgr/s_lock.c<br />
                                                                                                                                                                   <br />
- TIP 9 now needs changing! Cross-data-type comparisons are now<br />
indexable by btrees. All the existing cross-type comparison operators<br />
(int2/int4/int8) and (float4/float8) have appropriate support. Also<br />
(date/timestamp) comparisons allow use of indexes for expressions like<br />
datecol >= date 'today' - interval '1 month' (Tom) Implications for user<br />
defined types and indices also? [HACKERS] 8-Nov-03<br />
                                                                                                                                                                   <br />
- Index performance improved when scanning highly non-unique indices;<br />
will greatly improve performance of cursor/fetch logic. B-tree's<br />
initial-positioning-strategy code has been improved for the case when<br />
index scans are caused by a WHERE indexcol > something. We now start<br />
scan at first entry, rather than reading in all entries that share that<br />
index value before we begin to scan. (Tom, after Dimitry Tkach)<br />
                                                                                                                                                                   <br />
- Heap access code is now faster when using compressed columns in-line;<br />
previous assumption was that all compressed columns were also toasted<br />
(Tom)<br />
                                                                                                                                                                   <br />
- Optimized calling performance for dynamically loaded C functions. Hash<br />
table added to cache lookups of 'C'-language functions. Some limited<br />
testing suggests that this puts the lookup speed for external functions<br />
just about on par with built-in functions. (Tom)<br />
                                                                                                                                                                   <br />
- New delay feature added to VACUUM, allowing it to be executed in at a<br />
lower priority, ensuring other concurrent transaction performance can be<br />
maintained at a predictable level. Detailed analysis and graphs of<br />
run-time behaviour available at<br />
http://developer.postgresql.org/~wieck/vacuum_cost/ (Jan)<br />
Extended to include VACUUM FULL,ANALYZE and non-btree index vacuums.<br />
Centralize implementation of delay code by creating a pg_usleep()<br />
subroutine in src/port/pgsleep.c. (Tom)<br />
                                                                                                                                                                   <br />
- More flexible memory control will allow large memory allocations to<br />
large maintenance operations such as CREATE INDEX, without effecting<br />
normal memory usage for queries. Rename server parameters SortMem and<br />
VacuumMem to work_mem and maintenance_work_mem; old names still<br />
available via new backward compatibility feature. Make btree index<br />
creation and initial validation of foreign-key constraints use<br />
maintenance_work_mem rather than work_mem as their memory limit. (Tom)<br />
                                                                                                                                                                   <br />
- Restructure smgr API as per detailed proposal of 6 Feb, to improve<br />
performance in bgwriter and background checkpoint processes. Possibly<br />
also a precursor to later implementation of Tablespaces... (Tom)<br />
                                                                                                                                                                   <br />
- ANALYZE will now collect statistics on expressional indexes, and make<br />
use of them during optimization in majority of cases. (Tom)<br />
                                                                                                                                                                   <br />
- Repaired longstanding oversight in separate ANALYZE command: it<br />
updated the pg_class.relpages and reltuples counts for the table proper,<br />
but not for indexes. Greater planning accuracy should now result. (Tom)</p>]]>
        
    </content>
</entry>

<entry>
    <title>PostreSQL Support</title>
    <link rel="alternate" type="text/html" href="http://blogs.codehaus.org/people/davec/archives/000627_postresql_support.html" />
    <id>tag:blogs.codehaus.org,2004:/people/davec//50.627</id>

    <published>2004-03-03T20:41:50Z</published>
    <updated>2009-12-11T22:42:48Z</updated>

    <summary>PostgreSQL International PostgreSQL International is providing PostgreSQL support...</summary>
    <author>
        <name></name>
        <uri>http://blogs.codehaus.orgg/people/davec/</uri>
    </author>
    
    
    <content type="html" xml:lang="en" xml:base="http://blogs.codehaus.org/people/davec/">
        <![CDATA[<p>PostgreSQL International <a href="http://www.postgresintl.com">PostgreSQL International</a> is providing PostgreSQL support</p>]]>
        
    </content>
</entry>

<entry>
    <title>Postgresql International</title>
    <link rel="alternate" type="text/html" href="http://blogs.codehaus.org/people/davec/archives/000569_postgresql_international.html" />
    <id>tag:blogs.codehaus.org,2004:/people/davec//50.569</id>

    <published>2004-01-23T19:24:44Z</published>
    <updated>2009-12-11T22:42:46Z</updated>

    <summary>PostgreSQL support available from Postgresql International...</summary>
    <author>
        <name></name>
        <uri>http://blogs.codehaus.orgg/people/davec/</uri>
    </author>
    
    
    <content type="html" xml:lang="en" xml:base="http://blogs.codehaus.org/people/davec/">
        <![CDATA[<p>PostgreSQL support available from <a href=http://www.postgresintl.com/index.html>Postgresql International</a><!-- postgresql consultant postgresql consulting -></p>]]>
        
    </content>
</entry>

</feed>

