Projet

Général

Profil

Bug #3537

sql et date avec année < 1900 : year out of range

Ajouté par Thomas Noël il y a plus de 10 ans. Mis à jour il y a plus de 10 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
-
Version cible:
-
Début:
05 septembre 2013
Echéance:
% réalisé:

100%

Temps estimé:
Patch proposed:
Planning:

Description

Exception:
  type = '<type 'exceptions.ValueError'>', value = 'year out of range'

Stack trace (most recent call first):
  File "/usr/lib/python2.6/site-packages/wcs/sql.py", line 377, in get_sql_dict_from_data
   375                     pass
   376                 elif sql_type == 'date':
>  377                     value = datetime.datetime.fromtimestamp(time.mktime(value))
   378                 elif sql_type == 'bytea':
   379                     value = bytearray(cPickle.dumps(value))

  locals:
     sql_type = 'date'
     value = time.struct_time(tm_year=1883, tm_mon=9, tm_mday=18, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=1, tm_yday=261, tm_isdst=-1)

Révisions associées

Révision c77d5e92 (diff)
Ajouté par Thomas Noël il y a plus de 10 ans

don't convert dates with mktime (fix #3537)

Historique

#1

Mis à jour par Thomas Noël il y a plus de 10 ans

Proposition de correction :

diff --git a/wcs/sql.py b/wcs/sql.py
index b964909..b2b8714 100644
--- a/wcs/sql.py
+++ b/wcs/sql.py
@@ -374,7 +374,7 @@ class SqlMixin:
                 elif sql_type == 'varchar':
                     pass
                 elif sql_type == 'date':
-                    value = datetime.datetime.fromtimestamp(time.mktime(value))
+                    value = datetime.datetime(value.tm_year, value.tm_mon, value.tm_mday)
                 elif sql_type == 'bytea':
                     value = bytearray(cPickle.dumps(value))
                 elif sql_type == 'boolean':
#2

Mis à jour par Thomas Noël il y a plus de 10 ans

  • Statut changé de Nouveau à Résolu (à déployer)
  • % réalisé changé de 0 à 100
#3

Mis à jour par Frédéric Péters il y a plus de 10 ans

  • Statut changé de Résolu (à déployer) à Fermé

Formats disponibles : Atom PDF