Re: Missing free_var() at end of accum_sum_final()?

From: "Joel Jacobson" <joel(at)compiler(dot)org>
To: "Dean Rasheed" <dean(dot)a(dot)rasheed(at)gmail(dot)com>
Cc: "Michael Paquier" <michael(at)paquier(dot)xyz>, pgsql-hackers(at)lists(dot)postgresql(dot)org, "Andres Freund" <andres(at)anarazel(dot)de>
Subject: Re: Missing free_var() at end of accum_sum_final()?
Date: 2023-02-20 18:12:21
Message-ID: c307ce58-04ba-4df5-8f0d-3d02472fb2a7@app.fastmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Hi,

I found another small but significant improvement of the previous patch:

else if (ndigits < var->buf_len)
{
- memset(var->buf, 0, var->buf_len);
+ var->buf[0] = 0;
var->digits = var->buf + 1;
var->ndigits = ndigits;
}

We don't need to set all buf elements to zero, only the first one.
This is not an improvement of HEAD, it's just a mistake I made in my previous patch.

COPY foo FROM '/tmp/random-numerics.csv';

HEAD:

Time: 8431.325 ms (00:08.431)
Time: 8424.749 ms (00:08.425)
Time: 8425.387 ms (00:08.425)
Time: 8519.869 ms (00:08.520)
Time: 8452.585 ms (00:08.453)

0004-fixed-buf.patch:
Time: 8539.475 ms (00:08.539)
Time: 8401.628 ms (00:08.402)
Time: 8399.440 ms (00:08.399)
Time: 8373.861 ms (00:08.374)
Time: 8388.002 ms (00:08.388)

0005-fixed-buf.patch:

Time: 8038.218 ms (00:08.038)
Time: 8082.898 ms (00:08.083)
Time: 7999.950 ms (00:08.000)
Time: 8039.640 ms (00:08.040)
Time: 7994.816 ms (00:07.995)

Almost half a second faster!

/Joel

Attachment Content-Type Size
0005-fixed-buf.patch application/octet-stream 28.3 KB

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Matthias van de Meent 2023-02-20 18:15:56 Re: Ignoring BRIN for HOT updates (was: -udpates seems broken)
Previous Message Tom Lane 2023-02-20 18:11:43 Re: Killing off removed rels properly