Get rid of backtracking in jsonpath_scan.l
Non-backtracking flex parsers work faster than backtracking ones. So, this
commit gets rid of backtracking in jsonpath_scan.l. That required explicit
handling of some cases as well as manual backtracking for some cases. More
regression tests for numerics are added.
Discussion: https://mail.google.com/mail/u/0?ik=a20b091faa&view=om&permmsgid=msg-f%3A1628425344167939063
Author: John Naylor, Nikita Gluknov, Alexander Korotkov
Branch
------
master
Details
-------
https://git.postgresql.org/pg/commitdiff/1d88a75c424664cc85f307a876cde85191d27272
Modified Files
--------------
src/backend/utils/adt/Makefile | 1 +
src/backend/utils/adt/jsonpath_scan.l | 56 +++--
src/test/regress/expected/jsonb_jsonpath.out | 2 +-
src/test/regress/expected/jsonpath.out | 168 +++++++++++++++
src/test/regress/expected/jsonpath_encoding.out | 249 ++++++++++++++++++++++
src/test/regress/expected/jsonpath_encoding_1.out | 237 ++++++++++++++++++++
src/test/regress/parallel_schedule | 2 +-
src/test/regress/serial_schedule | 1 +
src/test/regress/sql/jsonb_jsonpath.sql | 2 +-
src/test/regress/sql/jsonpath.sql | 30 +++
src/test/regress/sql/jsonpath_encoding.sql | 71 ++++++
11 files changed, 795 insertions(+), 24 deletions(-)