Re: Text <-> C string
От | Brendan Jurd |
---|---|
Тема | Re: Text <-> C string |
Дата | |
Msg-id | 37ed240d0709211402j187df41fr2e42dabf6f6d94f3@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: Text <-> C string (Gregory Stark <stark@enterprisedb.com>) |
Список | pgsql-hackers |
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@enterprisedb.com> wrote: > > "Brendan Jurd" <direvus@gmail.com> writes: > > > On 9/22/07, Gregory Stark <stark@enterprisedb.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 >
В списке pgsql-hackers по дате отправления: