Changeset: 7d82fa34c0f4 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=7d82fa34c0f4
Modified Files:
        clients/python2/monetdb/sql/pythonize.py
        clients/python2/monetdb/sql/types.py
        clients/python3/monetdb/sql/pythonize.py
        clients/python3/monetdb/sql/types.py
Branch: iot
Log Message:

Added python mapi driver support for JSON and UUID types


diffs (170 lines):

diff --git a/clients/python2/monetdb/sql/pythonize.py 
b/clients/python2/monetdb/sql/pythonize.py
--- a/clients/python2/monetdb/sql/pythonize.py
+++ b/clients/python2/monetdb/sql/pythonize.py
@@ -27,6 +27,7 @@ def _extract_timezone(data):
 
     return data[:-6], datetime.timedelta(hours=sign * int(data[-5:-3]), 
minutes=sign * int(data[-2:]))
 
+
 def strip(data):
     """ returns a python string, with chopped off quotes,
     and replaced escape characters"""
@@ -71,6 +72,7 @@ def py_timestamp(data):
     else:
         return datetime.datetime.strptime(data, '%Y-%m-%d %H:%M:%S')
 
+
 def py_timestamptz(data):
     """ Returns a python Timestamp where data contains a tz code
     """
@@ -86,31 +88,33 @@ mapping = {
     types.VARCHAR: strip,
     types.CLOB: strip,
     types.BLOB: str,
-    types.DECIMAL: Decimal,
+    types.WRD: int,
+    types.SERIAL: int,
+    types.TINYINT: int,
     types.SMALLINT: int,
+    types.SHORTINT: int,
+    types.MEDIUMINT: int,
     types.INT: int,
-    types.WRD: int,
+    types.LONGINT: int,
     types.BIGINT: int,
     types.HUGEINT: int,
-    types.SERIAL: int,
     types.REAL: float,
+    types.FLOAT: float,
     types.DOUBLE: float,
+    types.DECIMAL: Decimal,
     types.BOOLEAN: py_bool,
     types.DATE: py_date,
     types.TIME: py_time,
+    types.TIMETZ: py_timetz,
     types.TIMESTAMP: py_timestamp,
     types.TIMESTAMPTZ: py_timestamptz,
-    types.TIMETZ: py_timetz,
     types.INTERVAL: strip,
     types.MONTH_INTERVAL: strip,
     types.SEC_INTERVAL: strip,
-    types.TINYINT: int,
-    types.SHORTINT: int,
-    types.MEDIUMINT: int,
-    types.LONGINT: int,
-    types.FLOAT: float,
     types.URL: strip,
     types.INET: str,
+    types.UUID: strip,
+    types.JSON: strip
 }
 
 
diff --git a/clients/python2/monetdb/sql/types.py 
b/clients/python2/monetdb/sql/types.py
--- a/clients/python2/monetdb/sql/types.py
+++ b/clients/python2/monetdb/sql/types.py
@@ -34,6 +34,8 @@ TINYINT = 'tinyint'
 
 URL = 'url'
 INET = 'inet'
+UUID = 'uuid'
+JSON = 'json'
 
 # Not on the website:
 SHORTINT = 'shortint'
@@ -47,7 +49,9 @@ TIMETZ = 'timetz'
 # full names and aliases, spaces are replaced with underscores
 CHARACTER = CHAR
 CHARACTER_VARYING = VARCHAR
-CHARACHTER_LARGE_OBJECT = CLOB
+CHARACTER_LARGE_OBJECT = CLOB
 BINARY_LARGE_OBJECT = BLOB
 NUMERIC = DECIMAL
 DOUBLE_PRECISION = DOUBLE
+BOOL = BOOLEAN
+INTEGER = INT
diff --git a/clients/python3/monetdb/sql/pythonize.py 
b/clients/python3/monetdb/sql/pythonize.py
--- a/clients/python3/monetdb/sql/pythonize.py
+++ b/clients/python3/monetdb/sql/pythonize.py
@@ -28,6 +28,7 @@ def _extract_timezone(data):
 
     return data[:-6], datetime.timedelta(hours=sign * int(data[-5:-3]), 
minutes=sign * int(data[-2:]))
 
+
 def strip(data):
     """ returns a python string, with chopped off quotes,
     and replaced escape characters"""
@@ -75,6 +76,7 @@ def py_timestamp(data):
     else:
         return datetime.datetime.strptime(data, '%Y-%m-%d %H:%M:%S')
 
+
 def py_timestamptz(data):
     """ Returns a python Timestamp where data contains a tz code
     """
@@ -90,31 +92,33 @@ mapping = {
     types.VARCHAR: strip,
     types.CLOB: strip,
     types.BLOB: str,
-    types.DECIMAL: Decimal,
+    types.WRD: int,
+    types.SERIAL: int,
+    types.TINYINT: int,
     types.SMALLINT: int,
+    types.SHORTINT: int,
+    types.MEDIUMINT: int,
     types.INT: int,
-    types.WRD: int,
+    types.LONGINT: int,
     types.BIGINT: int,
     types.HUGEINT: int,
-    types.SERIAL: int,
     types.REAL: float,
+    types.FLOAT: float,
     types.DOUBLE: float,
+    types.DECIMAL: Decimal,
     types.BOOLEAN: py_bool,
     types.DATE: py_date,
     types.TIME: py_time,
+    types.TIMETZ: py_timetz,
     types.TIMESTAMP: py_timestamp,
     types.TIMESTAMPTZ: py_timestamptz,
-    types.TIMETZ: py_timetz,
     types.INTERVAL: strip,
     types.MONTH_INTERVAL: strip,
     types.SEC_INTERVAL: strip,
-    types.TINYINT: int,
-    types.SHORTINT: int,
-    types.MEDIUMINT: int,
-    types.LONGINT: int,
-    types.FLOAT: float,
     types.URL: strip,
     types.INET: str,
+    types.UUID: strip,
+    types.JSON: strip
 }
 
 
diff --git a/clients/python3/monetdb/sql/types.py 
b/clients/python3/monetdb/sql/types.py
--- a/clients/python3/monetdb/sql/types.py
+++ b/clients/python3/monetdb/sql/types.py
@@ -34,6 +34,8 @@ TINYINT = 'tinyint'
 
 URL = 'url'
 INET = 'inet'
+UUID = 'uuid'
+JSON = 'json'
 
 # Not on the website:
 SHORTINT = 'shortint'
@@ -47,7 +49,9 @@ TIMETZ = 'timetz'
 # full names and aliases, spaces are replaced with underscores
 CHARACTER = CHAR
 CHARACTER_VARYING = VARCHAR
-CHARACHTER_LARGE_OBJECT = CLOB
+CHARACTER_LARGE_OBJECT = CLOB
 BINARY_LARGE_OBJECT = BLOB
 NUMERIC = DECIMAL
 DOUBLE_PRECISION = DOUBLE
+BOOL = BOOLEAN
+INTEGER = INT
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to