From: | Alvaro Herrera <alvherre(at)2ndquadrant(dot)com> |
---|---|
To: | Fabien COELHO <coelho(at)cri(dot)ensmp(dot)fr> |
Cc: | Michael Paquier <michael(dot)paquier(at)gmail(dot)com>, "pgsql-hackers(at)postgresql(dot)org" <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: pgbench stats per script & other stuff |
Date: | 2016-03-04 18:41:57 |
Message-ID: | 20160304184157.GA726930@alvherre.pgsql |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Fabien COELHO wrote:
> >However, this is still a bit broken -- you cannot return a stack
> >variable from process_file, because the stack goes away once the
> >function returns. You need to malloc it.
>
> That is why the "fs" variable in process_file is declared "static", and why
> I wrote "some hidden awkwarness".
>
> I did want to avoid a malloc because then who would free the struct?
> addScript cannot to it systematically because builtins are static. Or it
> would have to create an on purpose struct, but I then that would be more
> awkwarness, and malloc/free to pass arguments between functions is not
> efficient nor very elegant.
>
> So the "static" option looked like the simplest & most elegant version.
Surely that trick breaks if you have more than one -f switch, no? Oh, I
see what you're doing: you only use the command list, which is
allocated, so it doesn't matter that the rest of the struct changes
later. That seems rather nasty to me -- I'd avoid that.
I'm not concerned about freeing the struct; what's the problem with it
surviving until the program terminates? If somebody specifies thousands
of -f switches, they will waste a few bytes with each, but I'm hardly
concerned about a few dozen kilobytes there ...
--
Álvaro Herrera http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
From | Date | Subject | |
---|---|---|---|
Next Message | Fabien COELHO | 2016-03-04 18:42:29 | Re: pgbench small bug fix |
Previous Message | Fabien COELHO | 2016-03-04 18:34:11 | Re: pgbench stats per script & other stuff |