On Thu, Feb 18, 2021, at 21:44, Tom Lane wrote: >Hmm ... I might be misunderstanding, but I think our engine already >does a version of this. See the discussion of "colors" in >src/backend/regex/README.
Thanks, I will read it with great interest. >Maybe. In practice the actual scanning tends to be tracking more than one >possible NFA state in parallel, so I'm not sure how often we could expect >to be able to use this idea. That is, even if we know that state X can >only succeed by following an arc to Y and then another to Z, we might >also be interested in what happens if the NFA is in state Q at this point; >and it seems unlikely that Q would have exactly the same two following >arc colors. Right. Actually I don't have a clear idea on how it could be implemented in an NFA engine. >I do have some ideas about possible future optimizations, and one reason >I'm grateful for this large set of real regexes is that it can provide a >concrete basis for deciding that particular optimizations are or are not >worth pursuing. So thanks again for collecting it! My pleasure. Thanks for using it! /Joel