Re: Replace some cstring_to_text to cstring_to_text_with_len

From: Ranier Vilela <ranier(dot)vf(at)gmail(dot)com>
To: Dagfinn Ilmari Mannsåker <ilmari(at)ilmari(dot)org>
Cc: Andrew Dunstan <andrew(at)dunslane(dot)net>, John Naylor <john(dot)naylor(at)enterprisedb(dot)com>, Michael Paquier <michael(at)paquier(dot)xyz>, Pg Hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: Replace some cstring_to_text to cstring_to_text_with_len
Date: 2023-08-31 14:11:44
Message-ID: CAEudQAqogU7oKazA+D=CBpLCuroC2bcS6t_wGdWYTssocL4N=g@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Em qui., 31 de ago. de 2023 às 10:12, Dagfinn Ilmari Mannsåker <
ilmari(at)ilmari(dot)org> escreveu:

> Andrew Dunstan <andrew(at)dunslane(dot)net> writes:
>
> > On 2023-08-31 Th 07:41, John Naylor wrote:
> >>
> >> On Thu, Aug 31, 2023 at 6:07 PM Ranier Vilela <ranier(dot)vf(at)gmail(dot)com>
> wrote:
> >> >
> >> > Em qui., 31 de ago. de 2023 às 00:22, Michael Paquier
> >> <michael(at)paquier(dot)xyz> escreveu:
> >> >>
> >> >> On Wed, Aug 30, 2023 at 03:00:13PM -0300, Ranier Vilela wrote:
> >> >> > cstring_to_text has a small overhead, because call strlen for
> >> >> > pointer to char parameter.
> >> >> >
> >> >> > Is it worth the effort to avoid this, where do we know the size
> >> of the
> >> >> > parameter?
> >> >>
> >> >> Are there workloads where this matters?
> >> >
> >> > None, but note this change has the same spirit of 8b26769bc.
> >>
> >> - return cstring_to_text("");
> >> + return cstring_to_text_with_len("", 0);
> >>
> >> This looks worse, so we'd better be getting something in return.
> >
> >
> > I agree this is a bit ugly. I wonder if we'd be better off creating a
> > function that returned an empty text value, so we'd just avoid
> > converting the empty cstring altogether and say:
> >
> > return empty_text();
>
> Or we could generalise it for any string literal (of which there are
> slightly more¹ non-empty than empty in calls to
> cstring_to_text(_with_len)):
>
> #define literal_to_text(str) cstring_to_text_with_len("" str "",
> sizeof(str)-1)
>
I do not agree, I think this will get worse.

best regards,
Ranier Vilela

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Hayato Kuroda (Fujitsu) 2023-08-31 14:26:21 RE: [PoC] pg_upgrade: allow to upgrade publisher node
Previous Message Ranier Vilela 2023-08-31 14:10:55 Re: Replace some cstring_to_text to cstring_to_text_with_len