From: | "Brendan Jurd" <direvus(at)gmail(dot)com> |
---|---|
To: | "Gregory Stark" <stark(at)enterprisedb(dot)com> |
Cc: | pgsql-hackers(at)postgresql(dot)org |
Subject: | Re: Text <-> C string |
Date: | 2007-09-21 21:02:20 |
Message-ID: | 37ed240d0709211402j187df41fr2e42dabf6f6d94f3@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers pgsql-patches |
Well, a couple of specific cases that I came across are
quote_identifier() in src/backend/utils/adt/quote.c, and
do_to_timestamp() in src/backend/utils/adt/formatting.c (line 3349).
I was getting a rough notion of how common the duplication was using
$ egrep -Rn -C 2 'memcpy.*VARDATA' src/backend
Not all of these are genuine duplications of textout and textin (you
have to eyeball them individually to work that out) but it's a
reasonable starting point.
The files matched under src/backend are as follows.
src/backend/libpq/be-fsstubs.c
src/backend/utils/mb/mbutils.c
src/backend/utils/adt/timestamp.c
src/backend/utils/adt/nabstime.c
src/backend/utils/adt/xml.c
src/backend/utils/adt/quote.c
src/backend/utils/adt/oracle_compat.c
src/backend/utils/adt/varchar.c
src/backend/utils/adt/ruleutils.c
src/backend/utils/adt/varlena.c
src/backend/utils/adt/tsginidx.c
src/backend/utils/adt/cash.c
src/backend/utils/adt/date.c
src/backend/utils/adt/genfile.c
src/backend/utils/adt/network.c
src/backend/utils/adt/selfuncs.c
src/backend/utils/adt/formatting.c
src/backend/utils/adt/version.c
src/backend/utils/adt/pgstatfuncs.c
src/backend/access/heap/tuptoaster.c
src/backend/access/common/heaptuple.c
src/backend/storage/large_object/inv_api.c
src/backend/executor/execQual.c
src/backend/catalog/pg_conversion.c
On 9/22/07, Gregory Stark <stark(at)enterprisedb(dot)com> wrote:
>
> "Brendan Jurd" <direvus(at)gmail(dot)com> writes:
>
> > On 9/22/07, Gregory Stark <stark(at)enterprisedb(dot)com> wrote:
> >> The canonical way to do it is with
> >>
> >> DatumGetCString(DirectFunctionCall1(textout, t))
> >
> > Ah, I see. Thanks.
> >
> > In that case, would it be helpful if I submitted a patch for the
> > various code fragments that do this locally, updating them to use
> > DatumGetCString?
>
> I would be interested in seeing just a list of such places if you have it
> handy. I don't think we consider it wrong to violate the text data type
> abstraction barrier like you describe though.
>
> I'm interested because any such code is possibly either failing to take into
> account toasted data or is unnecessarily detoasting packed varlenas.
>
> --
> Gregory Stark
> EnterpriseDB http://www.enterprisedb.com
>
> ---------------------------(end of broadcast)---------------------------
> TIP 5: don't forget to increase your free space map settings
>
From | Date | Subject | |
---|---|---|---|
Next Message | Alvaro Herrera | 2007-09-21 21:45:49 | Re: Open issues for HOT patch |
Previous Message | Brendan Jurd | 2007-09-21 20:39:21 | Re: Text <-> C string |
From | Date | Subject | |
---|---|---|---|
Next Message | Tom Lane | 2007-09-21 22:53:56 | Re: Eliminate more detoast copies for packed varlenas |
Previous Message | Brendan Jurd | 2007-09-21 20:39:21 | Re: Text <-> C string |