• Heikki Linnakangas's avatar
    Add 'noError' argument to encoding conversion functions. · ea1b99a6
    Heikki Linnakangas authored
    With the 'noError' argument, you can try to convert a buffer without
    knowing the character boundaries beforehand. The functions now need to
    return the number of input bytes successfully converted.
    
    This is is a backwards-incompatible change, if you have created a custom
    encoding conversion with CREATE CONVERSION. This adds a check to
    pg_upgrade for that, refusing the upgrade if there are any user-defined
    encoding conversions. Custom conversions are very rare, there are no
    commonly used extensions that I know of that uses that feature. No other
    objects can depend on conversions, so if you do have one, you can fairly
    easily drop it before upgrading, and recreate it after the upgrade with
    an updated version.
    
    Add regression tests for built-in encoding conversions. This doesn't cover
    every conversion, but it covers all the internal functions in conv.c that
    are used to implement the conversions.
    
    Reviewed-by: John Naylor
    Discussion: https://www.postgresql.org/message-id/e7861509-3960-538a-9025-b75a61188e01%40iki.fi
    ea1b99a6
create_function_1.source 3.61 KB