Optimization in convert_string_datum?
I'm reviewing the strxfrm patch, and while comparing that code to the
code in varstr_cmp (which uses the same UTF8/UTF16 workaround but for
strcoll instead), and I noticed that in varstr_cmp we have an
optimization to use a stack based buffer instead of palloc if the string
is short enough. Is convert_string_datum performance-critical enough to
make it worthwhile to put a similar optimization there?
//Magnus
Magnus Hagander <magnus@hagander.net> writes:
I'm reviewing the strxfrm patch, and while comparing that code to the
code in varstr_cmp (which uses the same UTF8/UTF16 workaround but for
strcoll instead), and I noticed that in varstr_cmp we have an
optimization to use a stack based buffer instead of palloc if the string
is short enough. Is convert_string_datum performance-critical enough to
make it worthwhile to put a similar optimization there?
No, I don't believe so. It should only get invoked a few times per
query at most, since only the planner uses it.
It would be far more useful to figure out a way to make that code
actually do something sane with multibyte encodings than to
micro-optimize what's there.
regards, tom lane
I'm reviewing the strxfrm patch, and while comparing that code to the
code in varstr_cmp (which uses the same UTF8/UTF16 workaround but for
strcoll instead), and I noticed that in varstr_cmp we have an
optimization to use a stack based buffer instead of palloc if the string
is short enough. Is convert_string_datum performance-critical enough to
make it worthwhile to put a similar optimization there?No, I don't believe so. It should only get invoked a few times per
query at most, since only the planner uses it.
ok.
It would be far more useful to figure out a way to make that code
actually do something sane with multibyte encodings than to
micro-optimize what's there.
I'm not volunteering to do that - at least not now ;)
/Magnus