From: Daniele Varrazzo Date: Sun, 6 Jun 2021 21:30:51 +0000 (+0100) Subject: Parse datetype without using endswith in c X-Git-Tag: 3.0.dev0~39^2~8 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=4c92fa62968165d45173044059964b97010e7045;p=thirdparty%2Fpsycopg.git Parse datetype without using endswith in c --- diff --git a/psycopg3_c/psycopg3_c/types/date.pyx b/psycopg3_c/psycopg3_c/types/date.pyx index 9ad92c9cd..79e59164f 100644 --- a/psycopg3_c/psycopg3_c/types/date.pyx +++ b/psycopg3_c/psycopg3_c/types/date.pyx @@ -374,10 +374,10 @@ cdef class DateLoader(CLoader): self._order = ORDER_YMD elif ds[0] == b'G': # German self._order = ORDER_DMY - elif ds[0] == b'S' or ds[0] == b'P': # SQL or Postgres - self._order = ( - ORDER_DMY if ds.endswith(b"DMY") else ORDER_MDY - ) + elif ds[0] == b'S': # SQL, DMY / MDY + self._order = ORDER_DMY if ds[5] == b'D' else ORDER_MDY + elif ds[0] == b'P': # Postgres, DMY / MDY + self._order = ORDER_DMY if ds[10] == b'D' else ORDER_MDY else: raise e.InterfaceError(f"unexpected DateStyle: {ds.decode('ascii')}") @@ -626,14 +626,10 @@ cdef class TimestampLoader(CLoader): self._order = ORDER_YMD elif ds[0] == b'G': # German self._order = ORDER_DMY - elif ds[0] == b'S': # SQL - self._order = ( - ORDER_DMY if ds.endswith(b"DMY") else ORDER_MDY - ) - elif ds[0] == b'P': # Postgres - self._order = ( - ORDER_PGDM if ds.endswith(b"DMY") else ORDER_PGMD - ) + elif ds[0] == b'S': # SQL, DMY / MDY + self._order = ORDER_DMY if ds[5] == b'D' else ORDER_MDY + elif ds[0] == b'P': # Postgres, DMY / MDY + self._order = ORDER_PGDM if ds[10] == b'D' else ORDER_PGMD else: raise e.InterfaceError(f"unexpected DateStyle: {ds.decode('ascii')}")