Added nmea5 dim_* to sql database
authorJean-Michel Nirgal Vourgère <jmv@nirgal.com>
Mon, 9 Aug 2010 04:46:36 +0000 (04:46 +0000)
committerJean-Michel Nirgal Vourgère <jmv@nirgal.com>
Mon, 9 Aug 2010 04:46:36 +0000 (04:46 +0000)
bin/common.py
structure.sql

index aa896afa80ee65b4f4784de3177045aa684a06e2..c65dcba373f0ba9c806e2eb602ac5dc6a162d0d3 100755 (executable)
@@ -13,7 +13,7 @@ __all__ = [
     #'_hash3_pathfilename',
     'db_bydate_addrecord',
     'db_lastinfo_setrecord_ifnewer',
-    'sql_add_nmea5',
+    #'sql_add_nmea5',
     #'aivdm_record123_format',
     #'aivdm_record123_length',
     #'aivdm_record5_format',
@@ -577,6 +577,10 @@ def sql_add_nmea5(strmmsi, timestamp, imo, name, callsign, type, \
     sqlinfo['name'] = name or None
     sqlinfo['callsign'] = callsign or None
     sqlinfo['type'] = type
+    sqlinfo['dim_bow'] = dim_bow
+    sqlinfo['dim_stern'] = dim_stern
+    sqlinfo['dim_port'] = dim_port
+    sqlinfo['dim_starboard'] = dim_starboard
     sqlinfo['destination'] = None
     if destination:
         destination = destination.replace('\0', ' ').rstrip(' @\0')
@@ -591,6 +595,10 @@ def sql_add_nmea5(strmmsi, timestamp, imo, name, callsign, type, \
         sqlexec(u'UPDATE vessel SET callsign = %(callsign)s WHERE mmsi=%(mmsi)s AND (callsign IS NULL OR updated<%(updated)s)', sqlinfo)
     if sqlinfo['type']:
         sqlexec(u'UPDATE vessel SET type = %(type)s WHERE mmsi=%(mmsi)s AND (type IS NULL OR updated<%(updated)s)', sqlinfo)
+    if sqlinfo['dim_bow'] or sqlinfo['dim_stern']:
+        sqlexec(u'UPDATE vessel SET dim_bow = %(dim_bow)s, dim_stern = %(dim_stern)s WHERE mmsi=%(mmsi)s AND ((dim_port = 0 OR dim_stern=0) OR updated<%(updated)s)', sqlinfo)
+    if sqlinfo['dim_port'] or sqlinfo['dim_starboard']:
+        sqlexec(u'UPDATE vessel SET dim_port = %(dim_port)s, dim_starboard = %(dim_starboard)s WHERE mmsi=%(mmsi)s AND ((dim_port = 0 OR dim_starboard=0) OR updated<%(updated)s)', sqlinfo)
     if sqlinfo['destination']:
         sqlexec(u'UPDATE vessel SET destination = %(destination)s WHERE mmsi=%(mmsi)s AND (destination IS NULL OR updated<%(updated)s)', sqlinfo)
     sqlexec(u'UPDATE vessel SET (updated, source) = (%(updated)s, %(source)s) WHERE mmsi=%(mmsi)s AND updated<%(updated)s', sqlinfo)
index a5bc93733957af1f9627eecb2694d860272f8ce1..edb6b351860a548d5e9d83da84c569f6e0b70dde 100644 (file)
@@ -274,7 +274,11 @@ CREATE TABLE vessel (
     source character varying(8),
     mmsi integer NOT NULL,
     imo integer,
-    destination character varying(20)
+    destination character varying(20),
+    dim_bow integer DEFAULT 0 NOT NULL,
+    dim_stern integer DEFAULT 0 NOT NULL,
+    dim_port integer DEFAULT 0 NOT NULL,
+    dim_starboard integer DEFAULT 0 NOT NULL
 );