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-31T09:04:10Z
Lists: pgsql-hackers
Attachments
- v4-0001-Use-a-stringInfo-instead-of-a-char-for-replace_st.patch (application/octet-stream) patch v4-0001
‐‐‐‐‐‐‐ Original Message ‐‐‐‐‐‐‐ On Wednesday, 19 August 2020 11:07, Georgios <gkokolatos@protonmail.com> wrote: > > > ‐‐‐‐‐‐‐ 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. I noticed that the cfbot [1] was unhappy with the raw use of __attribute__ on windows builds. In retrospect it is rather obvious it would complain. Please find v4 attached. //Georgios > > //Georgios > > > Asim [1] https://ci.appveyor.com/project/postgresql-cfbot/postgresql/build/1.0.105985
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