| From: | Henson Choi <assam258(at)gmail(dot)com> |
|---|---|
| To: | Tatsuo Ishii <ishii(at)postgresql(dot)org> |
| Cc: | david(dot)g(dot)johnston(at)gmail(dot)com, vik(at)postgresfriends(dot)org, jacob(dot)champion(at)enterprisedb(dot)com, er(at)xs4all(dot)nl, peter(at)eisentraut(dot)org, pgsql-hackers(at)postgresql(dot)org |
| Subject: | Re: Row pattern recognition |
| Date: | 2026-01-04 15:47:58 |
| Message-ID: | CAAAe_zBZBi5-H+JN7LS0EgDBfH2SLgq_U4UjBhS9EozLCynrHw@mail.gmail.com |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-hackers |
Hi Ishii-san,
I've been working on an NFA implementation prototype.
This is a very early prototype - still buggy and incomplete,
but shows the basic approach. Attached HTML file - open in
browser (runs locally, no server needed).
I used JavaScript for quick prototyping and visualization.
The actual PostgreSQL implementation would be in C, but the
algorithm logic remains the same.
To test:
1. Use default pattern
2. Enter variables sequentially: A, B, C, D, E, F, G, H, I
3. Try different patterns and options in the UI
Implemented:
- Patterns: *, +, ?, (A|B), (A B)+
- Reluctant quantifiers: A+?, A*? (switches to reluctant mode)
Note: This part probably has issues
- Execution trace with state visualization
- Context management: multiple matches, absorption
- Options: SKIP modes, output modes
Many rough edges, especially reluctant matching.
Just sharing the direction.
My responses may be slow due to company work during weekdays.
Best regards,
Henson
| Attachment | Content-Type | Size |
|---|---|---|
| matcher_standalone.html | text/html | 135.0 KB |
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Jim Jones | 2026-01-04 17:27:25 | Re: libxml2 video about its abandonment |
| Previous Message | Andrew Dunstan | 2026-01-04 15:37:05 | Re: Non-text mode for pg_dumpall |