Re: pure parsers and reentrant scanners

Heikki Linnakangas <hlinnaka@iki.fi>

From: Heikki Linnakangas <hlinnaka@iki.fi>
To: Peter Eisentraut <peter@eisentraut.org>, pgsql-hackers <pgsql-hackers@postgresql.org>
Date: 2024-12-16T08:40:57Z
Lists: pgsql-hackers

Commits

Same data as JSON: GET /api/v1/messages/:b64id/commits the thread's linked commits as JSON, with link sources. API reference →
  1. Return yyparse() result not via global variable

  2. Remove flex version checks

  3. Drop warning-free support for Flex 2.5.35

  4. plpgsql: pure parser and reentrant scanner

  5. flex code modernization: Replace YY_EXTRA_TYPE define with flex option

  6. guc: reentrant scanner

  7. jsonpath scanner: reentrant scanner

  8. syncrep parser: pure parser and reentrant scanner

  9. replication parser: pure parser and reentrant scanner

  10. bootstrap: pure parser and reentrant scanner

  11. Small whitespace improvement

  12. Prevent redeclaration of typedef yyscan_t

  13. seg: pure parser and reentrant scanner

  14. cube: pure parser and reentrant scanner

On 16/12/2024 09:39, Peter Eisentraut wrote:
> On 02.12.24 10:46, Peter Eisentraut wrote:
>> This patch series changes several parsers in the backend and contrib 
>> modules to use bison pure parsers and flex reentrant scanners. This is 
>> ultimately toward thread-safety, but I think it's also just nicer in 
>> general, and it might also fix a few possible small memory leaks.
> 
> I did a bit more work on this, so here is an updated patch set.

Looks good to me. There's more work to be done, but this is all good 
steps in the right direction.

-- 
Heikki Linnakangas
Neon (https://neon.tech)