Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1w0sRS-002Hmm-1S for pgsql-hackers@arkaria.postgresql.org; Fri, 13 Mar 2026 02:39:58 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1w0sRQ-001OR7-0D for pgsql-hackers@arkaria.postgresql.org; Fri, 13 Mar 2026 02:39:56 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1w0sRP-001OQv-1Y for pgsql-hackers@lists.postgresql.org; Fri, 13 Mar 2026 02:39:56 +0000 Received: from mail-dy1-x1330.google.com ([2607:f8b0:4864:20::1330]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1w0sRM-00000001s2w-1uEd for pgsql-hackers@postgresql.org; Fri, 13 Mar 2026 02:39:54 +0000 Received: by mail-dy1-x1330.google.com with SMTP id 5a478bee46e88-2be19f05d7dso1546874eec.1 for ; Thu, 12 Mar 2026 19:39:52 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1773369591; cv=none; d=google.com; s=arc-20240605; b=dajDv93wlsy2cpd5KCEWrMHyDbI4MX1u6/LxnKUmcNf1FA94yedWA/vbLiqgy9Ap0h 9kq5MlKy+ivzm3us+jEpXEO4A8EJaY0B9F1c8PHFhVBSAm7cJplA4M9J1VcpRsiISkN8 Add5fFt8vDDIcza/+x3prmbtKdca14FBBso2HksHm/PJCWpOoQYF/vcl8clMAunDUojr rWNiH8ALUw9ENzLwsVJrv2NDqSyvDy1pzi1S/XoK7RdrK8IFzEXZEH1pLDB50D5+t9M2 L90eFpniy0c6OQuG8pPY5P2Eh08DtXd9LE9fB8/d8dA08v1OFiIreLIrzVZJBrPOdKdB ZvhQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:dkim-signature; bh=PXuH+iYaKcQZgYWcKlDMsEheEA3j698i09Ai9O4PYBs=; fh=CXrzMNK3Jh+YPxu+Ns3TbpMiCW0pmy+k/91uqP/CMbE=; b=EvByf5nX4rs7ICVojzsgS/aS6LqTpXqgPiog/dLCIUx7MacIixnHqp++s0wOnxbLqH JqJBI8dxiZYwG6bQQhssT9PWq0ryXMTPZX6IjkfyhyXWKuqRwh/x/mqNgdWhMWz1VnvX 37ojrBj28VKtlQQ1YzSVDMlJVT3/HjI1K1M9SIdbQw8VgF1u5fLB9VIoBV8f5sIkSLo+ gWDA6nfBeHKXYatHdKHpP/kWydRawSpU6E2tcnnPrvjrmNdBoR34GykkcOjh9iSajhZx CAReiG7ffl/OIZCcZWsgeO4vmRbJ7T96xQ4va5CCPNzfCfhb1kMH91ziih3+i8G9ljV5 wXMw==; darn=postgresql.org ARC-Authentication-Results: i=1; mx.google.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=enterprisedb.com; s=google; t=1773369591; x=1773974391; darn=postgresql.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=PXuH+iYaKcQZgYWcKlDMsEheEA3j698i09Ai9O4PYBs=; b=K1vJg8vB5Vfj1uplSzIRk1g+Wt9IsfIXD10mwPEOVOETjAzVkClhTMbBv4lFAaVPZe ABRv4nuWHPQs8c5komT81y1jres5Sh6GBkjeQ0Jm13PeBXTX+15ocaTQFb8ROML42d/0 UDH0vgCyBB7yvgXn5WU+3q+67d0VZxrOWX1iROKwnA/8pgs4h7D1EdZ0FqaqvbXoVPPL P0toS9srwptvV7oF/3NX+oukYkIP+2I233MdUQ5SfrIp8SWKs/ipPUdSXeNAVuYJtaQl AWfa3Sgzegh0/yXdooUkDmeAg1TFjLPU5hIxIn6a04gdAeZOfUoa5ZTnXwtcwK6yGHJZ /ptw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1773369591; x=1773974391; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=PXuH+iYaKcQZgYWcKlDMsEheEA3j698i09Ai9O4PYBs=; b=Mjeduq1q6smkUIgsKTj8TUASUyIB2en2n9ITczfe/4PrE/T8v4El9FFmUab84e9lpr j5QjNw9vydrTfo8KFmyQwelvvQN/LiWwHtSWtiDzgKVLQxywYXw5qttU/zOOAqsDzbOS Ph/z2KgYGQrEZKhfvMRC+lDhXF7pMtywCvLaWmSZMzJNnMUMvuappGBiL/4i0ixAOkIP CLmjKrx3crmid5FtTqESbeHeYtqQL8a28zUWl9NYS7IuhB+gPbN99ukrHMfVd1AB/YTr P9OwCB+ByZW5AtRzqK9d9ciCnBvoigVH9ZS9TK186mGiO0E+yoDuZiOuIaZggv0cDbg0 7N2A== X-Forwarded-Encrypted: i=1; AJvYcCUKZW/u1LqaO9O+gsEFe3rMMqcHeX90hAYXeH7QT1TdvB68dHJzYGgzwbkX6wM+H6YrJEov05CA0h6PMKSN@postgresql.org X-Gm-Message-State: AOJu0YxBc5utM4u7+afBJFjnbmrdba0p27dYs1170/4zY30mqYNBT5FK kD4TWEBgMqMdYVZxTcX3Lm3Lpi3mP2jZvhJRxfgcosTt1kGOS3VFdHaefvAuVQhbWf53pAGJXXl CF1gbLXFXFQLhHA0SXIxS3T7OzhMcsa5IQ3UurssU X-Gm-Gg: ATEYQzw5FrqdknfsGXaNqSF4xX5VCbboyW6zcQBHjlqFLqThb4aelPhFdSwTVhhwlq9 9cTI28uF9LALY3H6T9PGa8Iv+ZQ4393kN+zJ0bAzkBwhpfcSl2sAjgdSaJ2bFSQDZ+qfRvlGphK T7cDe7l/BzKLhyfD13inCu/FMZYnX0oXjokd4ymStD156Wn3S9MFZlC+6OhvTHTLYzKAHTI6oIw ERlu7ZIW9cFhznHlHOIwdQHxMT4mtsJdClUwsJeuraM595s0opLDaRqXQiydrYQ99ihvf/4kXAa SdloNppP X-Received: by 2002:a05:7301:1f0e:b0:2ae:5d3b:e1ba with SMTP id 5a478bee46e88-2bea552460emr955758eec.23.1773369591229; Thu, 12 Mar 2026 19:39:51 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Manni Wood Date: Thu, 12 Mar 2026 21:39:38 -0500 X-Gm-Features: AaiRm53paWabPM8svUmtWYygviyJpm9TyRiMhILgRf2fJtRSJtPLrJyjsfa3aME Message-ID: Subject: Re: Speed up COPY FROM text/CSV parsing using SIMD To: Nathan Bossart Cc: Nazir Bilal Yavuz , KAZAR Ayoub , Neil Conway , Andrew Dunstan , Shinya Kato , PostgreSQL-development Content-Type: multipart/alternative; boundary="0000000000008a7d5f064cdec830" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --0000000000008a7d5f064cdec830 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Thu, Mar 12, 2026 at 12:37=E2=80=AFPM Nathan Bossart wrote: > Here is what I have staged for commit, which I'm planning to do tomorrow. > Please review and/or test if you are able. > > -- > nathan > Hello, Nathan! I found some time this evening to run some benchmarks using your v15 patch. I hope these help. lz4 - arm arm NARROW master (git revert dc592a41557b072178f1798700bf9c69cd8e4235) default_toast_compression =3D lz4 TXT : 10203.493250 ms CSV : 10217.946000 ms TXT with 1/3 escapes: 10305.912750 ms CSV with 1/3 quotes: 12339.182000 ms arm NARROW v15 default_toast_compression =3D lz4 TXT : 10205.261500 ms -0.017330% regression CSV : 10358.898500 ms -1.379460% regression TXT with 1/3 escapes: 10053.073000 ms 2.453347% improvement CSV with 1/3 quotes: 11881.337000 ms 3.710497% improvement arm WIDE master (git revert dc592a41557b072178f1798700bf9c69cd8e4235) default_toast_compression =3D lz4 TXT : 5613.525250 ms CSV : 8069.692750 ms TXT with 1/3 escapes: 7088.888250 ms CSV with 1/3 quotes: 10902.545500 ms arm WIDE v15 default_toast_compression =3D lz4 TXT : 3201.494500 ms 42.968200% improvement CSV : 3146.033750 ms 61.014207% improvement TXT with 1/3 escapes: 6677.907500 ms 5.797535% improvement CSV with 1/3 quotes: 10766.909500 ms 1.244076% improvement lz4 - x86 x86 NARROW master (git revert dc592a41557b072178f1798700bf9c69cd8e4235) default_toast_compression =3D lz4 TXT : 26110.287750 ms CSV : 27923.199750 ms TXT with 1/3 escapes: 27984.483250 ms CSV with 1/3 quotes: 34387.239000 ms x86 NARROW v15 default_toast_compression =3D lz4 TXT : 26019.629000 ms 0.347215% improvement CSV : 26379.889000 ms 5.526984% improvement TXT with 1/3 escapes: 28865.322750 ms -3.147600% regression CSV with 1/3 quotes: 33218.293250 ms 3.399359% improvement x86 WIDE master (git revert dc592a41557b072178f1798700bf9c69cd8e4235) default_toast_compression =3D lz4 TXT : 15829.765000 ms CSV : 20479.146000 ms TXT with 1/3 escapes: 18437.507500 ms CSV with 1/3 quotes: 29749.379250 ms x86 WIDE v15 default_toast_compression =3D lz4 TXT : 8056.305000 ms 49.106604% improvement CSV : 7997.555500 ms 60.947808% improvement TXT with 1/3 escapes: 16324.925500 ms 11.458067% improvement CSV with 1/3 quotes: 29978.346500 ms -0.769654% regression pglz - arm arm NARROW master (git revert dc592a41557b072178f1798700bf9c69cd8e4235) default_toast_compression =3D pglz TXT : 10334.666250 ms CSV : 10978.851250 ms TXT with 1/3 escapes: 11076.502750 ms CSV with 1/3 quotes: 12582.679000 ms arm NARROW v15 default_toast_compression =3D pglz TXT : 10002.507750 ms 3.214023% improvement CSV : 10017.436250 ms 8.756973% improvement TXT with 1/3 escapes: 10179.949000 ms 8.094195% improvement CSV with 1/3 quotes: 12088.836750 ms 3.924778% improvement arm WIDE master (git revert dc592a41557b072178f1798700bf9c69cd8e4235) default_toast_compression =3D pglz TXT : 11403.206000 ms CSV : 13915.718750 ms TXT with 1/3 escapes: 12888.060250 ms CSV with 1/3 quotes: 16741.463000 ms arm WIDE v15 default_toast_compression =3D pglz TXT : 9005.868250 ms 21.023366% improvement CSV : 8935.159250 ms 35.790889% improvement TXT with 1/3 escapes: 12432.655250 ms 3.533542% improvement CSV with 1/3 quotes: 16564.852250 ms 1.054930% improvement pglz - x86 x86 NARROW master (git revert dc592a41557b072178f1798700bf9c69cd8e4235) default_toast_compression =3D pglz TXT : 26404.516250 ms CSV : 28138.719000 ms TXT with 1/3 escapes: 28084.379750 ms CSV with 1/3 quotes: 34502.702250 ms x86 NARROW v15 default_toast_compression =3D pglz TXT : 26438.415000 ms -0.128382% regression CSV : 26869.718000 ms 4.509804% improvement TXT with 1/3 escapes: 29379.299750 ms -4.610819% regression CSV with 1/3 quotes: 33371.390250 ms 3.278908% improvement x86 WIDE master (git revert dc592a41557b072178f1798700bf9c69cd8e4235) default_toast_compression =3D pglz TXT : 30595.372000 ms CSV : 35665.908500 ms TXT with 1/3 escapes: 32746.252000 ms CSV with 1/3 quotes: 44136.542750 ms x86 WIDE v15 default_toast_compression =3D pglz TXT : 22681.770750 ms 25.865354% improvement CSV : 22692.153000 ms 36.375789% improvement TXT with 1/3 escapes: 30638.978000 ms 6.435161% improvement CSV with 1/3 quotes: 44330.233000 ms -0.438843% regression --=20 -- Manni Wood EDB: https://www.enterprisedb.com --0000000000008a7d5f064cdec830 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable



<= div class=3D"gmail_quote gmail_quote_container">
On Thu, Mar 12, 2026 at 12:37=E2=80=AFPM Nathan Bossart <nathandbossart@gmail.com> wr= ote:
Here is wha= t I have staged for commit, which I'm planning to do tomorrow.
Please review and/or test if you are able.

--
nathan

Hello, Nathan!

= I found some time this evening to run some benchmarks using your v15 patch.= I hope these help.

lz4 - arm

arm NARROW master (git revert d= c592a41557b072178f1798700bf9c69cd8e4235) default_toast_compression =3D lz4<= br>TXT : =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 10203.4932= 50 ms
CSV : =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 1021= 7.946000 ms
TXT with 1/3 escapes: 10305.912750 ms
CSV with 1/3 quotes= : =C2=A012339.182000 ms

arm NARROW v15 default_toast_compression =3D= lz4
TXT : =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 10205= .261500 ms =C2=A0-0.017330% regression
CSV : =C2=A0 =C2=A0 =C2=A0 =C2=A0= =C2=A0 =C2=A0 =C2=A0 =C2=A0 10358.898500 ms =C2=A0-1.379460% regressionTXT with 1/3 escapes: 10053.073000 ms =C2=A02.453347% improvement
CSV w= ith 1/3 quotes: =C2=A011881.337000 ms =C2=A03.710497% improvement

ar= m WIDE master (git revert dc592a41557b072178f1798700bf9c69cd8e4235) default= _toast_compression =3D lz4
TXT : =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 5613.525250 ms
CSV : =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 8069.692750 ms
TXT with 1/3 escapes: 7088.88825= 0 ms
CSV with 1/3 quotes: =C2=A010902.545500 ms

arm WIDE v15 defa= ult_toast_compression =3D lz4
TXT : =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 3201.494500 ms =C2=A042.968200% improvement
CSV : = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 3146.033750 ms =C2= =A061.014207% improvement
TXT with 1/3 escapes: 6677.907500 ms =C2=A05.7= 97535% improvement
CSV with 1/3 quotes: =C2=A010766.909500 ms =C2=A01.24= 4076% improvement

lz4 - x86

x86 NARROW master (git revert dc5= 92a41557b072178f1798700bf9c69cd8e4235) default_toast_compression =3D lz4TXT : =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 26110.287750= ms
CSV : =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 27923.= 199750 ms
TXT with 1/3 escapes: 27984.483250 ms
CSV with 1/3 quotes: = =C2=A034387.239000 ms

x86 NARROW v15 default_toast_compression =3D l= z4
TXT : =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 26019.6= 29000 ms =C2=A00.347215% improvement
CSV : =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 26379.889000 ms =C2=A05.526984% improvement
= TXT with 1/3 escapes: 28865.322750 ms =C2=A0-3.147600% regression
CSV wi= th 1/3 quotes: =C2=A033218.293250 ms =C2=A03.399359% improvement

x86= WIDE master (git revert dc592a41557b072178f1798700bf9c69cd8e4235) default_= toast_compression =3D lz4
TXT : =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 15829.765000 ms
CSV : =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 20479.146000 ms
TXT with 1/3 escapes: 18437.507= 500 ms
CSV with 1/3 quotes: =C2=A029749.379250 ms

x86 WIDE v15 de= fault_toast_compression =3D lz4
TXT : =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0= =C2=A0 =C2=A0 =C2=A0 8056.305000 ms =C2=A049.106604% improvement
CSV : = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 7997.555500 ms =C2= =A060.947808% improvement
TXT with 1/3 escapes: 16324.925500 ms =C2=A011= .458067% improvement
CSV with 1/3 quotes: =C2=A029978.346500 ms =C2=A0-0= .769654% regression



pglz - arm

arm NARROW master (git= revert dc592a41557b072178f1798700bf9c69cd8e4235) default_toast_compression= =3D pglz
TXT : =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = 10334.666250 ms
CSV : =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 10978.851250 ms
TXT with 1/3 escapes: 11076.502750 ms
CSV with= 1/3 quotes: =C2=A012582.679000 ms

arm NARROW v15 default_toast_comp= ression =3D pglz
TXT : =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 10002.507750 ms =C2=A03.214023% improvement
CSV : =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 10017.436250 ms =C2=A08.756973% i= mprovement
TXT with 1/3 escapes: 10179.949000 ms =C2=A08.094195% improve= ment
CSV with 1/3 quotes: =C2=A012088.836750 ms =C2=A03.924778% improvem= ent

arm WIDE master (git revert dc592a41557b072178f1798700bf9c69cd8e= 4235) default_toast_compression =3D pglz
TXT : =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 11403.206000 ms
CSV : =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 13915.718750 ms
TXT with 1/3 esca= pes: 12888.060250 ms
CSV with 1/3 quotes: =C2=A016741.463000 ms

a= rm WIDE v15 default_toast_compression =3D pglz
TXT : =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 9005.868250 ms =C2=A021.023366% impr= ovement
CSV : =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 89= 35.159250 ms =C2=A035.790889% improvement
TXT with 1/3 escapes: 12432.65= 5250 ms =C2=A03.533542% improvement
CSV with 1/3 quotes: =C2=A016564.852= 250 ms =C2=A01.054930% improvement

pglz - x86

x86 NARROW mast= er (git revert dc592a41557b072178f1798700bf9c69cd8e4235) default_toast_comp= ression =3D pglz
TXT : =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 26404.516250 ms
CSV : =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 28138.719000 ms
TXT with 1/3 escapes: 28084.379750 ms
C= SV with 1/3 quotes: =C2=A034502.702250 ms

x86 NARROW v15 default_toa= st_compression =3D pglz
TXT : =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 26438.415000 ms =C2=A0-0.128382% regression
CSV : =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 26869.718000 ms =C2=A04.50= 9804% improvement
TXT with 1/3 escapes: 29379.299750 ms =C2=A0-4.610819%= regression
CSV with 1/3 quotes: =C2=A033371.390250 ms =C2=A03.278908% i= mprovement

x86 WIDE master (git revert dc592a41557b072178f1798700bf9= c69cd8e4235) default_toast_compression =3D pglz
TXT : =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 30595.372000 ms
CSV : =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 35665.908500 ms
TXT with 1= /3 escapes: 32746.252000 ms
CSV with 1/3 quotes: =C2=A044136.542750 ms
x86 WIDE v15 default_toast_compression =3D pglz
TXT : =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 22681.770750 ms =C2=A025.8653= 54% improvement
CSV : =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 22692.153000 ms =C2=A036.375789% improvement
TXT with 1/3 escapes= : 30638.978000 ms =C2=A06.435161% improvement
CSV with 1/3 quotes: =C2= =A044330.233000 ms =C2=A0-0.438843% regression
--
-- Manni Wood EDB: https://www.enterprisedb.com
--0000000000008a7d5f064cdec830--