Skip site navigation (1) Skip section navigation (2)

Re: PyGreSQL inserttable patch

From: Bruce Momjian <pgman(at)candle(dot)pha(dot)pa(dot)us>
To: Christoph Zwerschke <zwerschke(at)zuv(dot)uni-heidelberg(dot)de>
Cc: pgsql-patches(at)postgresql(dot)org
Subject: Re: PyGreSQL inserttable patch
Date: 2002-12-05 05:59:02
Message-ID: 200212050559.gB55x2D27640@candle.pha.pa.us (view raw or flat)
Thread:
Lists: pgsql-patches
Your patch has been added to the PostgreSQL unapplied patches list at:

	http://momjian.postgresql.org/cgi-bin/pgpatches

I will try to apply it within the next 48 hours.

---------------------------------------------------------------------------


Christoph Zwerschke wrote:
> PyGreSQL inserttable patch
> =====================
> 
> I suggested an improvement of the inserttable in the PyGreSQL interface
> already in January, but seemingly it was never implemented. I was told this
> is the right place to get patches in for PyGreSQL, so I'm reposting my patch
> here.
> 
> I consider the inserttable methode essential in populating the database
> because of its benefits in performance compared to insert, so I think this
> patch is quite essential. The attachment is an improved version of the
> corresponding pg_inserttable function in pgmodule.c, which fixes the
> following problems:
> 
> * The function raised exceptions because PyList_GetItem was used beyond the
> size of the list. This was checked by comparing the result with NULL, but
> the exception was not cleaned up, which could result in mysterious errors in
> the following Python code. Instead of clearing the exception using
> PyErr_Clear or something like that, I avoided throwing the exception at all
> by at first requesting the size of the list. Using this opportunity, I also
> checked the uniformity of the size of the rows passed in the lists/tuples.
> The function also accepts (and silently ignores) empty lists and sublists.
> * Python "None" values are now accepted and properly converted to PostgreSQL
> NULL values
> * The function now generates an error message in case of a line buffer
> overflow
> * It copes with tabulators, newlines and backslashes in strings now
> * Rewrote the buffer filling code which should now run faster by avoiding
> unnecessary string copy operations forth and back
> 
> [Side Mark: I think the following should be added to the to do list: "Write
> an option for inserttable which uses 'copy binary from' instead of 'copy
> from.'" This could speed up things considerably. In particular, numbers
> would not be needed to be converted to strings forth and back. This is a
> pretty difficult and laborious task and I can't do it. However, it should be
> annotated as a possible 'to do'.]
> 
> Christoph Zwerschke
> Zentrale Universitaetsverwaltung Heidelberg

[ Attachment, skipping... ]

> 
> ---------------------------(end of broadcast)---------------------------
> TIP 1: subscribe and unsubscribe commands go to majordomo(at)postgresql(dot)org

-- 
  Bruce Momjian                        |  http://candle.pha.pa.us
  pgman(at)candle(dot)pha(dot)pa(dot)us               |  (610) 359-1001
  +  If your life is a hard drive,     |  13 Roberts Road
  +  Christ can be your backup.        |  Newtown Square, Pennsylvania 19073

In response to

pgsql-patches by date

Next:From: Bruce MomjianDate: 2002-12-05 06:09:27
Subject: Re: Alter domain
Previous:From: Bruce MomjianDate: 2002-12-05 05:23:28
Subject: Re: Hierarchical queries a la Oracle patch. for 7.3rc1.

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group