James Addison <jay@xxxxxxxxxxxxxx> writes: > In other words: each additional strpos(value, ...) expression > increased the evaluation time by a similar, significant duration of > two seconds. This seems to confirm the basis that each expression is > currently evaluated separately, by an independent read from the input > text. That's correct. We have not felt a need to try to identify duplicate function calls: the cost of looking for them would seldom be repaid, so that such an optimization would be a net loss for most people. (In your example, they're not even truly duplicates.) > I'd like to suggest the introduction of a documented multiple string > matching algorithm[1], to yield results for each of multiple strpos > calls while only reading through their common input text at-most once. This seems like something with a pretty narrow audience. I'd suggest building it as an extension rather than trying to persuade people it belongs in core Postgres. regards, tom lane