From: Daniele Varrazzo Date: Sat, 17 Dec 2022 03:47:18 +0000 (+0000) Subject: fix(numpy): fix dumpers registration order X-Git-Tag: pool-3.2.0~70^2~13 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=7bd6330501f9d4cf99f6e59c24e5409203c3cf62;p=thirdparty%2Fpsycopg.git fix(numpy): fix dumpers registration order If numpy dumpers are registered after numeric ones, then NPNumericBinaryDumper is used instead of NumericBinaryDumper when looking up by oid. This breaks dumping values with a decimal part. --- diff --git a/psycopg/psycopg/postgres.py b/psycopg/psycopg/postgres.py index 045491373..0b171f4d7 100644 --- a/psycopg/psycopg/postgres.py +++ b/psycopg/psycopg/postgres.py @@ -109,7 +109,6 @@ def register_default_adapters(context: AdaptContext) -> None: from .types import net, none, numeric, numpy, range, string, uuid array.register_default_adapters(context) - bool.register_default_adapters(context) composite.register_default_adapters(context) datetime.register_default_adapters(context) enum.register_default_adapters(context) @@ -117,8 +116,12 @@ def register_default_adapters(context: AdaptContext) -> None: multirange.register_default_adapters(context) net.register_default_adapters(context) none.register_default_adapters(context) - numeric.register_default_adapters(context) - numpy.register_default_adapters(context) range.register_default_adapters(context) string.register_default_adapters(context) uuid.register_default_adapters(context) + + # Make sure to register dumpers to the standard types last, in order to + # pick them by default when looking up by oid. + numpy.register_default_adapters(context) + bool.register_default_adapters(context) + numeric.register_default_adapters(context)