Get rid of backtracking in jsonpath_scan.l
Alexander Korotkov <akorotkov@postgresql.org>
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
Files
| Path | Change | +/− |
|---|---|---|
| src/backend/utils/adt/jsonpath_scan.l | modified | +35 −21 |
| src/backend/utils/adt/Makefile | modified | +1 −0 |
| src/test/regress/expected/jsonb_jsonpath.out | modified | +1 −1 |
| src/test/regress/expected/jsonpath_encoding_1.out | added | +237 −0 |
| src/test/regress/expected/jsonpath_encoding.out | added | +249 −0 |
| src/test/regress/expected/jsonpath.out | modified | +168 −0 |
| src/test/regress/parallel_schedule | modified | +1 −1 |
| src/test/regress/serial_schedule | modified | +1 −0 |
| src/test/regress/sql/jsonb_jsonpath.sql | modified | +1 −1 |
| src/test/regress/sql/jsonpath_encoding.sql | added | +71 −0 |
| src/test/regress/sql/jsonpath.sql | modified | +30 −0 |