Re: [PATCH] - Provide robust alternatives for replace_string
Georgios <gkokolatos@protonmail.com>
From: Georgios <gkokolatos@protonmail.com>
To: Asim Praveen <pasim@vmware.com>
Cc: Alvaro Herrera <alvherre@2ndquadrant.com>,
PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2020-08-19T08:07:16Z
Lists: pgsql-hackers
Attachments
- v3-0001-Use-a-stringInfo-instead-of-a-char-for-replace_st.patch (application/octet-stream) patch v3-0001
‐‐‐‐‐‐‐ Original Message ‐‐‐‐‐‐‐ On Friday, 7 August 2020 09:02, Asim Praveen <pasim@vmware.com> wrote: > > On 05-Aug-2020, at 7:01 PM, Alvaro Herrera alvherre@2ndquadrant.com wrote: > > On 2020-Aug-05, Asim Praveen wrote: > > > > > Please find attached a StringInfo based solution to this problem. It > > > uses fgetln instead of fgets such that a line is read in full, without > > > ever splitting it. > > > > never heard of fgetln, my system doesn't have a manpage for it, and we > > don't use it anywhere AFAICS. Are you planning to add something to > > src/common for it? > > Indeed! I noticed fgetln on the man page of fgets and used it without checking. And this happened on a MacOS system. > > Please find a revised version that uses fgetc instead. Although not an issue in the current branch, fgetc might become a bit slow in large files. Please find v3 which simply continues reading the line if fgets fills the buffer and there is still data to read. Also this version, implements Alvaro's suggestion to break API compatibility. To that extent, ecpg regress has been slightly modified to use the new version of replace_string() where needed, or remove it all together where possible. //Georgios > > Asim
Commits
-
Refactor pg_get_line() to expose an alternative StringInfo-based API.
- 8e3c58e6e459 14.0 landed
-
Remove arbitrary line length limits in pg_regress (plain and ECPG).
- 784b1ba1a2b9 14.0 landed
-
Remove arbitrary restrictions on password length.
- 67a472d71c98 14.0 cited