Re: printTable API (was: Show INHERIT in \du)

From: "Brendan Jurd" <direvus(at)gmail(dot)com>
To: "Tom Lane" <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: pgsql-hackers(at)postgresql(dot)org, "Alvaro Herrera" <alvherre(at)commandprompt(dot)com>
Subject: Re: printTable API (was: Show INHERIT in \du)
Date: 2008-04-03 16:10:26
Message-ID: 37ed240d0804030910j219a6b09x7b09fe4c4e9c2a03@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers pgsql-patches

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On 31/03/2008, Tom Lane wrote:
> "Brendan Jurd" writes:
> > 1. describe malloc's the cells to zero, but print just does a local
> > calloc without any initialisation.
>
> There isn't any functional difference there. I am not sure, but I think
> the reason print.c has its own malloc wrappers instead of depending on
> common.c's is that we use print.c in some bin/scripts/ programs that
> do not want common.c too.
>

Yeah, it looks like createlang and droplang use print.c to emit a list
of installed languages.

> > 2. describe only does an mbvalidate for WIN32, but print does it in all cases.
>
> I don't know why describe only does that for WIN32; it looks
> inconsistent to me too. Possibly some trolling in the CVS history would
> give a clue about this.
>

Well, mbvalidate was originally added to print.c in 2001, as part of a
big patch to add multibyte support to psql [1]. However, it was only
added to describe much later (2003) in response to a bug report about
8-bit characters not displaying correctly on the Windows console [2].
I think that because the bug was only observed in Windows, the patch
was added #ifdef WIN32, even though print.c was already using
mbvalidate for all content.

This nicely illustrates the nuisance inherent to duplication of code!

Based on this, I'm going to go ahead with using mbvalidate in all cases.

Cheers,
BJ

[1] http://repo.or.cz/w/PostgreSQL.git?a=commit;h=a428cef1
[2] http://repo.or.cz/w/PostgreSQL.git?a=commit;h=e6a16c17
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.7 (GNU/Linux)
Comment: http://getfiregpg.org

iD8DBQFH9QFt5YBsbHkuyV0RAv2ZAJ4/rfyjgFOh8XZo6aJo68dz5NsovQCgmf40
fCXMlsHdg1r4oTpfZD5DH+0=
=PrN1
-----END PGP SIGNATURE-----

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Pavan Deolasee 2008-04-03 16:12:48 Re: [GENERAL] ANALYZE getting dead tuple count hopelessly wrong
Previous Message Bruce Momjian 2008-04-03 16:07:54 Re: psql \G command -- send query and output using extended format

Browse pgsql-patches by date

  From Date Subject
Next Message Alvaro Herrera 2008-04-03 16:44:04 Re: psql \G command -- send query and output using extended format
Previous Message Gregory Stark 2008-04-03 16:09:49 Re: psql command aliases support