Add support for TIMESTAMP WITH TIME ZONE storing offset from UTC (not named TZ)
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 3/5
- Tiempo estimado
- 1-2 días
- Aptitud para principiantes
- 48/100
Línea de trabajo
Comienza en src/oracledb/impl/base/buffer.pyx, en la lógica de análisis de timestamps de Buffer alrededor del manejo mostrado de los offsets de zona horaria. Comprueba cómo se convierten los valores TIMESTAMP WITH TIME ZONE y verifica después que los valores que solo contienen un offset produzcan datetimes conscientes de la zona horaria con el offset UTC almacenado, en lugar de datetimes ingenuos o zonas horarias con nombre.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Currently naive datetime(s) are returned when column type is TIMESTAMP WITH TIME ZONE.
Issue #274 can be split into two tasks, one is supporting named time zones as per issue #20. The other task is supporting timestamps having only the offset from UTC.
I have no knowledge of Cython so I cannot create a PR but what I would try is:
--- a/src/oracledb/impl/base/buffer.pyx
+++ b/src/oracledb/impl/base/buffer.pyx
@@ -354,7 +354,10 @@ cdef class Buffer:
tz_minute = ptr[12] - TZ_MINUTE_OFFSET
if tz_hour != 0 or tz_minute != 0:
seconds = tz_hour * 3600 + tz_minute * 60
- value += cydatetime.timedelta_new(0, seconds, 0)
+ tz_delta = cydatetime.timedelta_new(0, seconds, 0)
+ tz_utc = cydatetime.get_utc()
+ tz = cydatetime.timezone_new(tz_delta)
+ return value.replace(tzinfo=tz_utc).astimezone(tz)
return value
cdef object parse_interval_ds(self, const uint8_t* ptr):
- Lenguaje dominante
- Python
- Estrellas
- 454
- Forks
- 119
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Tiene una plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de oracle/python-oracledb
-
asyncio: DPY-4011 on connect_async() when the listener closes the original socket after a redirectPosiblemente ocupada @AlexGracas la tomó hace 7 días. Abierto
Dificultad 3/5 1-2 días Aptitud para principiantes 35/100
oracle/python-oracledb#616 ·
-
bug
Dificultad 4/5 3-5 días Aptitud para principiantes 48/100
oracle/python-oracledb#615 ·
-
Fetch character columns as raw bytes in the database character set into data frames (Thick mode)Abiertoenhancement
Dificultad 5/5 Más de una semana Aptitud para principiantes 35/100
oracle/python-oracledb#614 · 1 comentario ·
-
Client Library or Database
Dificultad 4/5 3-5 días Aptitud para principiantes 35/100
oracle/python-oracledb#613 · 3 comentarios ·
-
enhancement
Dificultad 5/5 Más de una semana Aptitud para principiantes 40/100
oracle/python-oracledb#612 ·
Todos los issues de oracle/python-oracledb
Issues similares
-
Atomic append fails to create a missing filePosiblemente ocupada @harbinresearcher la tomó hoy. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
fabiocaccamo/python-fsutil#201 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
Los mantenedores suelen responder en 1 día
-
task
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
danparshall/claude_researcher#87 ·
Los mantenedores suelen responder en 1 día
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
GhostManager/Ghostwriter#998 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 85/100
datajoint/datajoint-python#1586 ·
Los mantenedores suelen responder en 1 día