]> git.ipfire.org Git - thirdparty/psycopg.git/commitdiff
Parse datetype without using endswith in c
authorDaniele Varrazzo <daniele.varrazzo@gmail.com>
Sun, 6 Jun 2021 21:30:51 +0000 (22:30 +0100)
committerDaniele Varrazzo <daniele.varrazzo@gmail.com>
Sun, 6 Jun 2021 21:30:51 +0000 (22:30 +0100)
psycopg3_c/psycopg3_c/types/date.pyx

index 9ad92c9cdff604d51a6aa898809733701ccbebe9..79e59164f047bf84b775db360ca1d2a76513cab4 100644 (file)
@@ -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')}")