A new user interface for you! Read more...

File libpreludedb-python-swig.patch of Package libpreludedb

--- bindings/python/_preludedb.cxx	2016-04-23 00:28:28.316000363 +0200
+++ bindings/python/_preludedb.cxx	2016-04-28 13:03:57.019999999 +0200
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 3.0.2
+ * Version 3.0.8
  *
  * This file is not intended to be easily readable and contains a number of
  * coding conventions designed to improve portability and efficiency. Do not make
@@ -13,7 +13,11 @@
 # define TARGET_LANGUAGE_OUTPUT_TYPE PyObject **
 
 
+
+#ifndef SWIGPYTHON
 #define SWIGPYTHON
+#endif
+
 #define SWIG_PYTHON_THREADS
 #define SWIG_PYTHON_NO_BUILD_NONE
 #define SWIG_PYTHON_DIRECTOR_NO_VTABLE
@@ -151,6 +155,19 @@
 # define _SCL_SECURE_NO_DEPRECATE
 #endif
 
+/* Deal with Apple's deprecated 'AssertMacros.h' from Carbon-framework */
+#if defined(__APPLE__) && !defined(__ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES)
+# define __ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES 0
+#endif
+
+/* Intel's compiler complains if a variable which was never initialised is
+ * cast to void, which is a common idiom which we use to indicate that we
+ * are aware a variable isn't used.  So we just silence that warning.
+ * See: https://github.com/swig/swig/issues/192 for more discussion.
+ */
+#ifdef __INTEL_COMPILER
+# pragma warning disable 592
+#endif
 
 
 #if defined(_DEBUG) && defined(SWIG_PYTHON_INTERPRETER_NO_DEBUG)
@@ -1320,7 +1337,7 @@
 
 /* Unpack the argument tuple */
 
-SWIGINTERN int
+SWIGINTERN Py_ssize_t
 SWIG_Python_UnpackTuple(PyObject *args, const char *name, Py_ssize_t min, Py_ssize_t max, PyObject **objs)
 {
   if (!args) {
@@ -1334,7 +1351,7 @@
   }  
   if (!PyTuple_Check(args)) {
     if (min <= 1 && max >= 1) {
-      int i;
+      Py_ssize_t i;
       objs[0] = args;
       for (i = 1; i < max; ++i) {
 	objs[i] = 0;
@@ -1354,7 +1371,7 @@
 		   name, (min == max ? "" : "at most "), (int)max, (int)l);
       return 0;
     } else {
-      int i;
+      Py_ssize_t i;
       for (i = 0; i < l; ++i) {
 	objs[i] = PyTuple_GET_ITEM(args, i);
       }
@@ -1540,6 +1557,23 @@
 #endif
 } SwigPyObject;
 
+
+#ifdef SWIGPYTHON_BUILTIN
+
+SWIGRUNTIME PyObject *
+SwigPyObject_get___dict__(PyObject *v, PyObject *SWIGUNUSEDPARM(args))
+{
+  SwigPyObject *sobj = (SwigPyObject *)v;
+
+  if (!sobj->dict)
+    sobj->dict = PyDict_New();
+
+  Py_INCREF(sobj->dict);
+  return sobj->dict;
+}
+
+#endif
+
 SWIGRUNTIME PyObject *
 SwigPyObject_long(SwigPyObject *v)
 {
@@ -1678,16 +1712,32 @@
     if (destroy) {
       /* destroy is always a VARARGS method */
       PyObject *res;
+
+      /* PyObject_CallFunction() has the potential to silently drop
+         the active active exception.  In cases of unnamed temporary
+         variable or where we just finished iterating over a generator
+         StopIteration will be active right now, and this needs to
+         remain true upon return from SwigPyObject_dealloc.  So save
+         and restore. */
+      
+      PyObject *val = NULL, *type = NULL, *tb = NULL;
+      PyErr_Fetch(&val, &type, &tb);
+
       if (data->delargs) {
-	/* we need to create a temporary object to carry the destroy operation */
-	PyObject *tmp = SwigPyObject_New(sobj->ptr, ty, 0);
-	res = SWIG_Python_CallFunctor(destroy, tmp);
-	Py_DECREF(tmp);
+        /* we need to create a temporary object to carry the destroy operation */
+        PyObject *tmp = SwigPyObject_New(sobj->ptr, ty, 0);
+        res = SWIG_Python_CallFunctor(destroy, tmp);
+        Py_DECREF(tmp);
       } else {
-	PyCFunction meth = PyCFunction_GET_FUNCTION(destroy);
-	PyObject *mself = PyCFunction_GET_SELF(destroy);
-	res = ((*meth)(mself, v));
+        PyCFunction meth = PyCFunction_GET_FUNCTION(destroy);
+        PyObject *mself = PyCFunction_GET_SELF(destroy);
+        res = ((*meth)(mself, v));
       }
+      if (!res)
+        PyErr_WriteUnraisable(destroy);
+
+      PyErr_Restore(val, type, tb);
+
       Py_XDECREF(res);
     } 
 #if !defined(SWIG_PYTHON_SILENT_MEMLEAK)
@@ -1711,6 +1761,7 @@
   next = tmp;
 #endif
   if (!SwigPyObject_Check(next)) {
+    PyErr_SetString(PyExc_TypeError, "Attempt to append a non SwigPyObject");
     return NULL;
   }
   sobj->next = next;
@@ -1810,7 +1861,7 @@
 static PyMethodDef
 swigobject_methods[] = {
   {(char *)"disown",  (PyCFunction)SwigPyObject_disown,  METH_VARARGS,  (char *)"releases ownership of the pointer"},
-  {(char *)"acquire", (PyCFunction)SwigPyObject_acquire, METH_VARARGS,  (char *)"aquires ownership of the pointer"},
+  {(char *)"acquire", (PyCFunction)SwigPyObject_acquire, METH_VARARGS,  (char *)"acquires ownership of the pointer"},
   {(char *)"own",     (PyCFunction)SwigPyObject_own,     METH_VARARGS,  (char *)"returns/sets ownership of the pointer"},
   {(char *)"append",  (PyCFunction)SwigPyObject_append,  METH_VARARGS,  (char *)"appends another 'this' object"},
   {(char *)"next",    (PyCFunction)SwigPyObject_next,    METH_VARARGS,  (char *)"returns the next 'this' object"},
@@ -1866,7 +1917,9 @@
     (unaryfunc)SwigPyObject_oct,  /*nb_oct*/
     (unaryfunc)SwigPyObject_hex,  /*nb_hex*/
 #endif
-#if PY_VERSION_HEX >= 0x03000000 /* 3.0 */
+#if PY_VERSION_HEX >= 0x03050000 /* 3.5 */
+    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 /* nb_inplace_add -> nb_inplace_matrix_multiply */
+#elif PY_VERSION_HEX >= 0x03000000 /* 3.0 */
     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 /* nb_inplace_add -> nb_index, nb_inplace_divide removed */
 #elif PY_VERSION_HEX >= 0x02050000 /* 2.5.0 */
     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 /* nb_inplace_add -> nb_index */
@@ -1946,10 +1999,19 @@
       0,                                    /* tp_del */
 #endif
 #if PY_VERSION_HEX >= 0x02060000
-      0,                                    /* tp_version */
+      0,                                    /* tp_version_tag */
+#endif
+#if PY_VERSION_HEX >= 0x03040000
+      0,                                    /* tp_finalize */
 #endif
 #ifdef COUNT_ALLOCS
-      0,0,0,0                               /* tp_alloc -> tp_next */
+      0,                                    /* tp_allocs */
+      0,                                    /* tp_frees */
+      0,                                    /* tp_maxalloc */
+#if PY_VERSION_HEX >= 0x02050000
+      0,                                    /* tp_prev */
+#endif
+      0                                     /* tp_next */
 #endif
     };
     swigpyobject_type = tmp;
@@ -2125,10 +2187,19 @@
       0,                                    /* tp_del */
 #endif
 #if PY_VERSION_HEX >= 0x02060000
-      0,                                    /* tp_version */
+      0,                                    /* tp_version_tag */
+#endif
+#if PY_VERSION_HEX >= 0x03040000
+      0,                                    /* tp_finalize */
 #endif
 #ifdef COUNT_ALLOCS
-      0,0,0,0                               /* tp_alloc -> tp_next */
+      0,                                    /* tp_allocs */
+      0,                                    /* tp_frees */
+      0,                                    /* tp_maxalloc */
+#if PY_VERSION_HEX >= 0x02050000
+      0,                                    /* tp_prev */
+#endif
+      0                                     /* tp_next */
 #endif
     };
     swigpypacked_type = tmp;
@@ -2579,18 +2650,21 @@
 	  newobj = (SwigPyObject *) newobj->next;
         newobj->next = next_self;
         newobj = (SwigPyObject *)next_self;
+#ifdef SWIGPYTHON_BUILTIN
+        newobj->dict = 0;
+#endif
       }
     } else {
       newobj = PyObject_New(SwigPyObject, clientdata->pytype);
+#ifdef SWIGPYTHON_BUILTIN
+      newobj->dict = 0;
+#endif
     }
     if (newobj) {
       newobj->ptr = ptr;
       newobj->ty = type;
       newobj->own = own;
       newobj->next = 0;
-#ifdef SWIGPYTHON_BUILTIN
-      newobj->dict = 0;
-#endif
       return (PyObject*) newobj;
     }
     return SWIG_Py_Void();
@@ -2653,13 +2727,11 @@
 {
   PyObject *dict;
   if (!PyModule_Check(m)) {
-    PyErr_SetString(PyExc_TypeError,
-		    "PyModule_AddObject() needs module as first arg");
+    PyErr_SetString(PyExc_TypeError, "PyModule_AddObject() needs module as first arg");
     return SWIG_ERROR;
   }
   if (!o) {
-    PyErr_SetString(PyExc_TypeError,
-		    "PyModule_AddObject() needs non-NULL value");
+    PyErr_SetString(PyExc_TypeError, "PyModule_AddObject() needs non-NULL value");
     return SWIG_ERROR;
   }
   
@@ -2943,8 +3015,18 @@
 wrapper##_closure(PyObject *a) {		\
     SwigPyObject *sobj;				\
     sobj = (SwigPyObject *)a;			\
+    Py_XDECREF(sobj->dict);			\
     if (sobj->own) {				\
-	PyObject *o = wrapper(a, NULL);		\
+	PyObject *o;				\
+	PyObject *val = 0, *type = 0, *tb = 0;	\
+	PyErr_Fetch(&val, &type, &tb);		\
+	o = wrapper(a, NULL);			\
+	if (!o) {				\
+	    PyObject *deallocname = PyString_FromString(#wrapper); \
+	    PyErr_WriteUnraisable(deallocname);	\
+	    Py_DECREF(deallocname);		\
+	}					\
+	PyErr_Restore(val, type, tb);		\
 	Py_XDECREF(o);				\
     }						\
     if (PyType_IS_GC(a->ob_type)) {		\
@@ -2997,7 +3079,7 @@
 
 #define SWIGPY_TERNARYCALLFUNC_CLOSURE(wrapper)			\
 SWIGINTERN PyObject *						\
-wrapper##_closure(PyObject *callable_object, PyObject *args, PyObject *) {	\
+wrapper##_closure(PyObject *callable_object, PyObject *args, PyObject *) { \
     return wrapper(callable_object, args);			\
 }
 
@@ -3057,7 +3139,7 @@
     return result;					\
 }
 
-#define SWIGPY_FUNPACK_SSIZEARGFUNC_CLOSURE(wrapper)		\
+#define SWIGPY_FUNPACK_SSIZEARGFUNC_CLOSURE(wrapper)	\
 SWIGINTERN PyObject *					\
 wrapper##_closure(PyObject *a, Py_ssize_t b) {		\
     PyObject *arg, *result;				\
@@ -3366,10 +3448,19 @@
       0,                                        /* tp_del */
 #endif
 #if PY_VERSION_HEX >= 0x02060000
-      0,                                        /* tp_version */
+      0,                                        /* tp_version_tag */
+#endif
+#if PY_VERSION_HEX >= 0x03040000
+      0,                                        /* tp_finalize */
 #endif
 #ifdef COUNT_ALLOCS
-      0,0,0,0                                   /* tp_alloc -> tp_next */
+      0,                                        /* tp_allocs */
+      0,                                        /* tp_frees */
+      0,                                        /* tp_maxalloc */
+#if PY_VERSION_HEX >= 0x02050000
+      0,                                        /* tp_prev */
+#endif
+      0                                         /* tp_next */
 #endif
     };
     staticvar_type = tmp;
@@ -3546,7 +3637,7 @@
 #endif
 #define SWIG_name    "_preludedb"
 
-#define SWIGVERSION 0x030002 
+#define SWIGVERSION 0x030008 
 #define SWIG_VERSION SWIGVERSION
 
 
@@ -3569,27 +3660,35 @@
 
     SwigPtr_PyObject(const SwigPtr_PyObject& item) : _obj(item._obj)
     {
+      SWIG_PYTHON_THREAD_BEGIN_BLOCK;
       Py_XINCREF(_obj);      
+      SWIG_PYTHON_THREAD_END_BLOCK;
     }
     
     SwigPtr_PyObject(PyObject *obj, bool initial_ref = true) :_obj(obj)
     {
       if (initial_ref) {
+        SWIG_PYTHON_THREAD_BEGIN_BLOCK;
         Py_XINCREF(_obj);
+        SWIG_PYTHON_THREAD_END_BLOCK;
       }
     }
     
     SwigPtr_PyObject & operator=(const SwigPtr_PyObject& item) 
     {
+      SWIG_PYTHON_THREAD_BEGIN_BLOCK;
       Py_XINCREF(item._obj);
       Py_XDECREF(_obj);
       _obj = item._obj;
+      SWIG_PYTHON_THREAD_END_BLOCK;
       return *this;      
     }
     
     ~SwigPtr_PyObject() 
     {
+      SWIG_PYTHON_THREAD_BEGIN_BLOCK;
       Py_XDECREF(_obj);
+      SWIG_PYTHON_THREAD_END_BLOCK;
     }
     
     operator PyObject *() const
@@ -3781,9 +3880,11 @@
   if (PyFloat_Check(obj)) {
     if (val) *val = PyFloat_AsDouble(obj);
     return SWIG_OK;
+#if PY_VERSION_HEX < 0x03000000
   } else if (PyInt_Check(obj)) {
     if (val) *val = PyInt_AsLong(obj);
     return SWIG_OK;
+#endif
   } else if (PyLong_Check(obj)) {
     double v = PyLong_AsDouble(obj);
     if (!PyErr_Occurred()) {
@@ -3875,18 +3976,7 @@
       return SWIG_OK;
     } else {
       PyErr_Clear();
-#if PY_VERSION_HEX >= 0x03000000
-      {
-        long v = PyLong_AsLong(obj);
-        if (!PyErr_Occurred()) {
-          if (v < 0) {
-            return SWIG_OverflowError;
-          }
-        } else {
-          PyErr_Clear();
-        }
-      }
-#endif
+      return SWIG_OverflowError;
     }
   }
 #ifdef SWIG_PYTHON_CAST_MODE
@@ -3943,16 +4033,20 @@
 SWIGINTERN int
 SWIG_AsVal_long (PyObject *obj, long* val)
 {
+#if PY_VERSION_HEX < 0x03000000
   if (PyInt_Check(obj)) {
     if (val) *val = PyInt_AsLong(obj);
     return SWIG_OK;
-  } else if (PyLong_Check(obj)) {
+  } else
+#endif
+  if (PyLong_Check(obj)) {
     long v = PyLong_AsLong(obj);
     if (!PyErr_Occurred()) {
       if (val) *val = v;
       return SWIG_OK;
     } else {
       PyErr_Clear();
+      return SWIG_OverflowError;
     }
   }
 #ifdef SWIG_PYTHON_CAST_MODE
@@ -4001,7 +4095,7 @@
 #include <vector>
 
 
-namespace swig {  
+namespace swig {
   template <class Type>
   struct noconst_traits {
     typedef Type noconst_type;
@@ -4015,7 +4109,7 @@
   /*
     type categories
   */
-  struct pointer_category { };  
+  struct pointer_category { };
   struct value_category { };
 
   /*
@@ -4028,12 +4122,12 @@
     return traits<typename noconst_traits<Type >::noconst_type >::type_name();
   }
 
-  template <class Type> 
+  template <class Type>
   struct traits_info {
     static swig_type_info *type_query(std::string name) {
       name += " *";
       return SWIG_TypeQuery(name.c_str());
-    }    
+    }
     static swig_type_info *type_info() {
       static swig_type_info *info = type_query(type_name<Type>());
       return info;
@@ -4054,17 +4148,17 @@
       std::string ptrname = name;
       ptrname += " *";
       return ptrname;
-    }    
+    }
     static const char* type_name() {
       static std::string name = make_ptr_name(swig::type_name<Type>());
       return name.c_str();
     }
   };
 
-  template <class Type, class Category> 
+  template <class Type, class Category>
   struct traits_as { };
- 
-  template <class Type, class Category> 
+
+  template <class Type, class Category>
   struct traits_check { };
 
 }
@@ -4408,6 +4502,12 @@
     return pos;
   }
 
+  template <class Sequence>
+  inline void
+  erase(Sequence* seq, const typename Sequence::iterator& position) {
+    seq->erase(position);
+  }
+
   template <class Sequence, class Difference>
   inline Sequence*
   getslice(const Sequence* self, Difference i, Difference j, Py_ssize_t step) {
@@ -4782,7 +4882,7 @@
   template <class T>
   struct SwigPySequence_Ref
   {
-    SwigPySequence_Ref(PyObject* seq, int index)
+    SwigPySequence_Ref(PyObject* seq, Py_ssize_t index)
       : _seq(seq), _index(index)
     {
     }
@@ -4794,7 +4894,7 @@
 	return swig::as<T>(item, true);
       } catch (std::exception& e) {
 	char msg[1024];
-	sprintf(msg, "in sequence element %d ", _index);
+	sprintf(msg, "in sequence element %d ", (int)_index);
 	if (!PyErr_Occurred()) {
 	  ::SWIG_Error(SWIG_TypeError,  swig::type_name<T>());
 	}
@@ -4812,7 +4912,7 @@
 
   private:
     PyObject* _seq;
-    int _index;
+    Py_ssize_t _index;
   };
 
   template <class T>
@@ -4833,13 +4933,13 @@
     typedef Reference reference;
     typedef T value_type;
     typedef T* pointer;
-    typedef int difference_type;
+    typedef Py_ssize_t difference_type;
 
     SwigPySequence_InputIterator()
     {
     }
 
-    SwigPySequence_InputIterator(PyObject* seq, int index)
+    SwigPySequence_InputIterator(PyObject* seq, Py_ssize_t index)
       : _seq(seq), _index(index)
     {
     }
@@ -4919,6 +5019,7 @@
     difference_type _index;
   };
 
+  // STL container wrapper around a Python sequence
   template <class T>
   struct SwigPySequence_Cont
   {
@@ -4926,8 +5027,8 @@
     typedef const SwigPySequence_Ref<T> const_reference;
     typedef T value_type;
     typedef T* pointer;
-    typedef int difference_type;
-    typedef int size_type;
+    typedef Py_ssize_t difference_type;
+    typedef size_t size_type;
     typedef const pointer const_pointer;
     typedef SwigPySequence_InputIterator<T, reference> iterator;
     typedef SwigPySequence_InputIterator<T, const_reference> const_iterator;
@@ -4988,13 +5089,13 @@
 
     bool check(bool set_err = true) const
     {
-      int s = size();
-      for (int i = 0; i < s; ++i) {
+      Py_ssize_t s = size();
+      for (Py_ssize_t i = 0; i < s; ++i) {
 	swig::SwigVar_PyObject item = PySequence_GetItem(_seq, i);
 	if (!swig::check<value_type>(item)) {
 	  if (set_err) {
 	    char msg[1024];
-	    sprintf(msg, "in sequence element %d", i);
+	    sprintf(msg, "in sequence element %d", (int)i);
 	    SWIG_Error(SWIG_RuntimeError, msg);
 	  }
 	  return false;
@@ -5484,17 +5585,17 @@
 
 
 namespace swig {
-  template <> struct traits<std::string > {
+  template <> struct traits< std::string > {
     typedef value_category category;
     static const char* type_name() { return"std::string"; }
-  };  
-  template <>  struct traits_asval<std::string > {   
+  };
+  template <>  struct traits_asval< std::string > {
     typedef std::string value_type;
-    static int asval(PyObject *obj, value_type *val) { 
+    static int asval(PyObject *obj, value_type *val) {
       return SWIG_AsVal_std_string (obj, val);
     }
   };
-  template <>  struct traits_from<std::string > {
+  template <>  struct traits_from< std::string > {
     typedef std::string value_type;
     static PyObject *from(const value_type& val) {
       return SWIG_From_std_string  (val);
@@ -5568,10 +5669,9 @@
 #endif
       size_type size = seq.size();
       if (size <= (size_type)INT_MAX) {
-	PyObject *obj = PyTuple_New((int)size);
-	int i = 0;
-	for (const_iterator it = seq.begin();
-	     it != seq.end(); ++it, ++i) {
+	PyObject *obj = PyTuple_New((Py_ssize_t)size);
+	Py_ssize_t i = 0;
+	for (const_iterator it = seq.begin(); it != seq.end(); ++it, ++i) {
 	  PyTuple_SetItem(obj,i,swig::from<value_type>(*it));
 	}
 	return obj;
@@ -5602,7 +5702,7 @@
 
 
       namespace swig {
-	template <>  struct traits<std::vector<std::string, std::allocator< std::string > > > {
+	template <>  struct traits<std::vector< std::string, std::allocator< std::string > > > {
 	  typedef pointer_category category;
 	  static const char* type_name() {
 	    return "std::vector<" "std::string" "," "std::allocator< std::string >" " >";
@@ -5622,6 +5722,7 @@
       return SWIG_OK;
     } else {
       PyErr_Clear();
+      res = SWIG_OverflowError;
     }
   } else {
     unsigned long v;
@@ -5648,17 +5749,17 @@
 
 
 namespace swig {
-  template <> struct traits<unsigned long long > {
+  template <> struct traits< unsigned long long > {
     typedef value_category category;
     static const char* type_name() { return"unsigned long long"; }
-  };  
-  template <>  struct traits_asval<unsigned long long > {   
+  };
+  template <>  struct traits_asval< unsigned long long > {
     typedef unsigned long long value_type;
-    static int asval(PyObject *obj, value_type *val) { 
+    static int asval(PyObject *obj, value_type *val) {
       return SWIG_AsVal_unsigned_SS_long_SS_long (obj, val);
     }
   };
-  template <>  struct traits_from<unsigned long long > {
+  template <>  struct traits_from< unsigned long long > {
     typedef unsigned long long value_type;
     static PyObject *from(const value_type& val) {
       return SWIG_From_unsigned_SS_long_SS_long  (val);
@@ -5668,7 +5769,7 @@
 
 
       namespace swig {
-	template <>  struct traits<std::vector<unsigned long long, std::allocator< unsigned long long > > > {
+	template <>  struct traits<std::vector< unsigned long long, std::allocator< unsigned long long > > > {
 	  typedef pointer_category category;
 	  static const char* type_name() {
 	    return "std::vector<" "unsigned long long" "," "std::allocator< unsigned long long >" " >";
@@ -5678,7 +5779,7 @@
     
 
   namespace swig {
-    template <>  struct traits<Prelude::IDMEFValue > {
+    template <>  struct traits< Prelude::IDMEFValue > {
       typedef pointer_category category;
       static const char* type_name() { return"Prelude::IDMEFValue"; }
     };
@@ -5686,7 +5787,7 @@
 
 
       namespace swig {
-	template <>  struct traits<std::vector<Prelude::IDMEFValue, std::allocator< Prelude::IDMEFValue > > > {
+	template <>  struct traits<std::vector< Prelude::IDMEFValue, std::allocator< Prelude::IDMEFValue > > > {
 	  typedef pointer_category category;
 	  static const char* type_name() {
 	    return "std::vector<" "Prelude::IDMEFValue" "," "std::allocator< Prelude::IDMEFValue >" " >";
@@ -5696,7 +5797,7 @@
     
 
   namespace swig {
-    template <>  struct traits<Prelude::IDMEFPath > {
+    template <>  struct traits< Prelude::IDMEFPath > {
       typedef pointer_category category;
       static const char* type_name() { return"Prelude::IDMEFPath"; }
     };
@@ -5704,7 +5805,7 @@
 
 
       namespace swig {
-	template <>  struct traits<std::vector<Prelude::IDMEFPath, std::allocator< Prelude::IDMEFPath > > > {
+	template <>  struct traits<std::vector< Prelude::IDMEFPath, std::allocator< Prelude::IDMEFPath > > > {
 	  typedef pointer_category category;
 	  static const char* type_name() {
 	    return "std::vector<" "Prelude::IDMEFPath" "," "std::allocator< Prelude::IDMEFPath >" " >";
@@ -6035,10 +6136,9 @@
       static PyObject *asdict(const map_type& map) {
 	SWIG_PYTHON_THREAD_BEGIN_BLOCK;
 	size_type size = map.size();
-	int pysize = (size <= (size_type) INT_MAX) ? (int) size : -1;
+	Py_ssize_t pysize = (size <= (size_type) INT_MAX) ? (Py_ssize_t) size : -1;
 	if (pysize < 0) {
-	  PyErr_SetString(PyExc_OverflowError,
-			  "map size not valid in python");
+	  PyErr_SetString(PyExc_OverflowError, "map size not valid in python");
 	  SWIG_PYTHON_THREAD_END_BLOCK;
 	  return NULL;
 	}
@@ -6065,7 +6165,7 @@
 
 
       namespace swig {
-	template <>  struct traits<std::map<std::string, std::string, std::less< std::string >, std::allocator< std::pair< std::string const,std::string > > > > {
+	template <>  struct traits<std::map< std::string, std::string, std::less< std::string >, std::allocator< std::pair< std::string const,std::string > > > > {
 	  typedef pointer_category category;
 	  static const char* type_name() {
 	    return "std::map<" "std::string" "," "std::string" "," "std::less< std::string >" "," "std::allocator< std::pair< std::string const,std::string > >" " >";
@@ -6224,8 +6324,10 @@
 
 
 SWIGINTERN PyObject *_wrap_SwigPyIterator_incr(PyObject *self, PyObject *args) {
-  int argc;
-  PyObject *argv[3];
+  Py_ssize_t argc;
+  PyObject *argv[3] = {
+    0
+  };
   
   if (!(argc = SWIG_Python_UnpackTuple(args,"SwigPyIterator_incr",0,2,argv+1))) SWIG_fail;
   argv[0] = self;
@@ -6316,8 +6418,10 @@
 
 
 SWIGINTERN PyObject *_wrap_SwigPyIterator_decr(PyObject *self, PyObject *args) {
-  int argc;
-  PyObject *argv[3];
+  Py_ssize_t argc;
+  PyObject *argv[3] = {
+    0
+  };
   
   if (!(argc = SWIG_Python_UnpackTuple(args,"SwigPyIterator_decr",0,2,argv+1))) SWIG_fail;
   argv[0] = self;
@@ -6841,8 +6945,10 @@
 
 
 SWIGINTERN PyObject *_wrap_SwigPyIterator___sub__(PyObject *self, PyObject *args) {
-  int argc;
-  PyObject *argv[3];
+  Py_ssize_t argc;
+  PyObject *argv[3] = {
+    0
+  };
   
   if (!(argc = SWIG_Python_UnpackTuple(args,"SwigPyIterator___sub__",0,2,argv+1))) SWIG_fail;
   argv[0] = self;
@@ -8719,7 +8825,7 @@
   }
   arg1 = reinterpret_cast< PreludeDB::DB * >(argp1);
   {
-    std::vector<std::string,std::allocator< std::string > > *ptr = (std::vector<std::string,std::allocator< std::string > > *)0;
+    std::vector< std::string,std::allocator< std::string > > *ptr = (std::vector< std::string,std::allocator< std::string > > *)0;
     res2 = swig::asptr(obj1, &ptr);
     if (!SWIG_IsOK(res2)) {
       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "DB_getValues" "', argument " "2"" of type '" "std::vector< std::string,std::allocator< std::string > > const &""'"); 
@@ -9097,7 +9203,7 @@
   }
   arg1 = reinterpret_cast< PreludeDB::DB * >(argp1);
   {
-    std::vector<unsigned long long,std::allocator< unsigned long long > > *ptr = (std::vector<unsigned long long,std::allocator< unsigned long long > > *)0;
+    std::vector< unsigned long long,std::allocator< unsigned long long > > *ptr = (std::vector< unsigned long long,std::allocator< unsigned long long > > *)0;
     int res = swig::asptr(swig_obj[1], &ptr);
     if (!SWIG_IsOK(res) || !ptr) {
       SWIG_exception_fail(SWIG_ArgError((ptr ? res : SWIG_TypeError)), "in method '" "DB_deleteAlert" "', argument " "2"" of type '" "std::vector< unsigned long long,std::allocator< unsigned long long > >""'"); 
@@ -9127,8 +9233,10 @@
 
 
 SWIGINTERN PyObject *_wrap_DB_deleteAlert(PyObject *self, PyObject *args) {
-  int argc;
-  PyObject *argv[3];
+  Py_ssize_t argc;
+  PyObject *argv[3] = {
+    0
+  };
   
   if (!(argc = SWIG_Python_UnpackTuple(args,"DB_deleteAlert",0,2,argv+1))) SWIG_fail;
   argv[0] = self;
@@ -9270,7 +9378,7 @@
   }
   arg1 = reinterpret_cast< PreludeDB::DB * >(argp1);
   {
-    std::vector<unsigned long long,std::allocator< unsigned long long > > *ptr = (std::vector<unsigned long long,std::allocator< unsigned long long > > *)0;
+    std::vector< unsigned long long,std::allocator< unsigned long long > > *ptr = (std::vector< unsigned long long,std::allocator< unsigned long long > > *)0;
     int res = swig::asptr(swig_obj[1], &ptr);
     if (!SWIG_IsOK(res) || !ptr) {
       SWIG_exception_fail(SWIG_ArgError((ptr ? res : SWIG_TypeError)), "in method '" "DB_deleteHeartbeat" "', argument " "2"" of type '" "std::vector< unsigned long long,std::allocator< unsigned long long > >""'"); 
@@ -9300,8 +9408,10 @@
 
 
 SWIGINTERN PyObject *_wrap_DB_deleteHeartbeat(PyObject *self, PyObject *args) {
-  int argc;
-  PyObject *argv[3];
+  Py_ssize_t argc;
+  PyObject *argv[3] = {
+    0
+  };
   
   if (!(argc = SWIG_Python_UnpackTuple(args,"DB_deleteHeartbeat",0,2,argv+1))) SWIG_fail;
   argv[0] = self;
@@ -9392,7 +9502,7 @@
     }
   }
   {
-    std::vector<Prelude::IDMEFValue,std::allocator< Prelude::IDMEFValue > > *ptr = (std::vector<Prelude::IDMEFValue,std::allocator< Prelude::IDMEFValue > > *)0;
+    std::vector< Prelude::IDMEFValue,std::allocator< Prelude::IDMEFValue > > *ptr = (std::vector< Prelude::IDMEFValue,std::allocator< Prelude::IDMEFValue > > *)0;
     res3 = swig::asptr(swig_obj[2], &ptr);
     if (!SWIG_IsOK(res3)) {
       SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "DB_updateFromList" "', argument " "3"" of type '" "std::vector< Prelude::IDMEFValue,std::allocator< Prelude::IDMEFValue > > const &""'"); 
@@ -9485,7 +9595,7 @@
     }
   }
   {
-    std::vector<Prelude::IDMEFValue,std::allocator< Prelude::IDMEFValue > > *ptr = (std::vector<Prelude::IDMEFValue,std::allocator< Prelude::IDMEFValue > > *)0;
+    std::vector< Prelude::IDMEFValue,std::allocator< Prelude::IDMEFValue > > *ptr = (std::vector< Prelude::IDMEFValue,std::allocator< Prelude::IDMEFValue > > *)0;
     res3 = swig::asptr(swig_obj[2], &ptr);
     if (!SWIG_IsOK(res3)) {
       SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "DB_updateFromList" "', argument " "3"" of type '" "std::vector< Prelude::IDMEFValue,std::allocator< Prelude::IDMEFValue > > const &""'"); 
@@ -9496,7 +9606,7 @@
     arg3 = ptr;
   }
   {
-    std::vector<unsigned long long,std::allocator< unsigned long long > > *ptr = (std::vector<unsigned long long,std::allocator< unsigned long long > > *)0;
+    std::vector< unsigned long long,std::allocator< unsigned long long > > *ptr = (std::vector< unsigned long long,std::allocator< unsigned long long > > *)0;
     int res = swig::asptr(swig_obj[3], &ptr);
     if (!SWIG_IsOK(res) || !ptr) {
       SWIG_exception_fail(SWIG_ArgError((ptr ? res : SWIG_TypeError)), "in method '" "DB_updateFromList" "', argument " "4"" of type '" "std::vector< unsigned long long,std::allocator< unsigned long long > > const""'"); 
@@ -9534,8 +9644,10 @@
 
 
 SWIGINTERN PyObject *_wrap_DB_updateFromList(PyObject *self, PyObject *args) {
-  int argc;
-  PyObject *argv[5];
+  Py_ssize_t argc;
+  PyObject *argv[5] = {
+    0
+  };
   
   if (!(argc = SWIG_Python_UnpackTuple(args,"DB_updateFromList",0,4,argv+1))) SWIG_fail;
   argv[0] = self;
@@ -9628,7 +9740,7 @@
     }
   }
   {
-    std::vector<Prelude::IDMEFValue,std::allocator< Prelude::IDMEFValue > > *ptr = (std::vector<Prelude::IDMEFValue,std::allocator< Prelude::IDMEFValue > > *)0;
+    std::vector< Prelude::IDMEFValue,std::allocator< Prelude::IDMEFValue > > *ptr = (std::vector< Prelude::IDMEFValue,std::allocator< Prelude::IDMEFValue > > *)0;
     res3 = swig::asptr(obj2, &ptr);
     if (!SWIG_IsOK(res3)) {
       SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "DB_update" "', argument " "3"" of type '" "std::vector< Prelude::IDMEFValue,std::allocator< Prelude::IDMEFValue > > const &""'"); 
@@ -9665,7 +9777,7 @@
   }
   if (obj4) {
     {
-      std::vector<std::string,std::allocator< std::string > > *ptr = (std::vector<std::string,std::allocator< std::string > > *)0;
+      std::vector< std::string,std::allocator< std::string > > *ptr = (std::vector< std::string,std::allocator< std::string > > *)0;
       res5 = swig::asptr(obj4, &ptr);
       if (!SWIG_IsOK(res5)) {
         SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "DB_update" "', argument " "5"" of type '" "std::vector< std::string,std::allocator< std::string > > const &""'"); 
@@ -9905,8 +10017,10 @@
 
 
 SWIGINTERN int _wrap_new_ResultIdents(PyObject *self, PyObject *args) {
-  int argc;
-  PyObject *argv[3];
+  Py_ssize_t argc;
+  PyObject *argv[3] = {
+    0
+  };
   
   if (!(argc = SWIG_Python_UnpackTuple(args,"new_ResultIdents",0,2,argv))) SWIG_fail;
   --argc;
@@ -10103,8 +10217,10 @@
 
 
 SWIGINTERN PyObject *_wrap_ResultIdents_get(PyObject *self, PyObject *args) {
-  int argc;
-  PyObject *argv[3];
+  Py_ssize_t argc;
+  PyObject *argv[3] = {
+    0
+  };
   
   if (!(argc = SWIG_Python_UnpackTuple(args,"ResultIdents_get",0,2,argv+1))) SWIG_fail;
   argv[0] = self;
@@ -10309,8 +10425,10 @@
 
 
 SWIGINTERN int _wrap_new_ResultValues(PyObject *self, PyObject *args) {
-  int argc;
-  PyObject *argv[2];
+  Py_ssize_t argc;
+  PyObject *argv[2] = {
+    0
+  };
   
   if (!(argc = SWIG_Python_UnpackTuple(args,"new_ResultValues",0,1,argv))) SWIG_fail;
   --argc;
@@ -10614,8 +10732,10 @@
 
 
 SWIGINTERN PyObject *_wrap_ResultValues_get(PyObject *self, PyObject *args) {
-  int argc;
-  PyObject *argv[3];
+  Py_ssize_t argc;
+  PyObject *argv[3] = {
+    0
+  };
   
   if (!(argc = SWIG_Python_UnpackTuple(args,"ResultValues_get",0,2,argv+1))) SWIG_fail;
   argv[0] = self;
@@ -10774,8 +10894,10 @@
 
 
 SWIGINTERN int _wrap_new_ResultValuesRow(PyObject *self, PyObject *args) {
-  int argc;
-  PyObject *argv[3];
+  Py_ssize_t argc;
+  PyObject *argv[3] = {
+    0
+  };
   
   if (!(argc = SWIG_Python_UnpackTuple(args,"new_ResultValuesRow",0,2,argv))) SWIG_fail;
   --argc;
@@ -11070,8 +11192,10 @@
 
 
 SWIGINTERN PyObject *_wrap_ResultValuesRow_get(PyObject *self, PyObject *args) {
-  int argc;
-  PyObject *argv[4];
+  Py_ssize_t argc;
+  PyObject *argv[4] = {
+    0
+  };
   
   if (!(argc = SWIG_Python_UnpackTuple(args,"ResultValuesRow_get",0,3,argv+1))) SWIG_fail;
   argv[0] = self;
@@ -11208,8 +11332,10 @@
 
 
 SWIGINTERN int _wrap_new_PreludeDBError(PyObject *self, PyObject *args) {
-  int argc;
-  PyObject *argv[2];
+  Py_ssize_t argc;
+  PyObject *argv[2] = {
+    0
+  };
   
   if (!(argc = SWIG_Python_UnpackTuple(args,"new_PreludeDBError",0,1,argv))) SWIG_fail;
   --argc;
@@ -11340,7 +11466,7 @@
   
   if ((nobjs < 1) || (nobjs > 1)) SWIG_fail;
   {
-    std::map<std::string,std::string,std::less< std::string >,std::allocator< std::pair< std::string const,std::string > > > *ptr = (std::map<std::string,std::string,std::less< std::string >,std::allocator< std::pair< std::string const,std::string > > > *)0;
+    std::map< std::string,std::string,std::less< std::string >,std::allocator< std::pair< std::string const,std::string > > > *ptr = (std::map< std::string,std::string,std::less< std::string >,std::allocator< std::pair< std::string const,std::string > > > *)0;
     res1 = swig::asptr(swig_obj[0], &ptr);
     if (!SWIG_IsOK(res1)) {
       SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_SQL" "', argument " "1"" of type '" "std::map< std::string,std::string,std::less< std::string >,std::allocator< std::pair< std::string const,std::string > > > const &""'"); 
@@ -11370,8 +11496,10 @@
 
 
 SWIGINTERN int _wrap_new_SQL(PyObject *self, PyObject *args) {
-  int argc;
-  PyObject *argv[2];
+  Py_ssize_t argc;
+  PyObject *argv[2] = {
+    0
+  };
   
   if (!(argc = SWIG_Python_UnpackTuple(args,"new_SQL",0,1,argv))) SWIG_fail;
   --argc;
@@ -11777,8 +11905,10 @@
 
 
 SWIGINTERN int _wrap_new_Table(PyObject *self, PyObject *args) {
-  int argc;
-  PyObject *argv[2];
+  Py_ssize_t argc;
+  PyObject *argv[2] = {
+    0
+  };
   
   if (!(argc = SWIG_Python_UnpackTuple(args,"new_Table",0,1,argv))) SWIG_fail;
   --argc;
@@ -12127,8 +12257,10 @@
 
 
 SWIGINTERN PyObject *_wrap_Table_get(PyObject *self, PyObject *args) {
-  int argc;
-  PyObject *argv[3];
+  Py_ssize_t argc;
+  PyObject *argv[3] = {
+    0
+  };
   
   if (!(argc = SWIG_Python_UnpackTuple(args,"Table_get",0,2,argv+1))) SWIG_fail;
   argv[0] = self;
@@ -12309,8 +12441,10 @@
 
 
 SWIGINTERN int _wrap_new_Row(PyObject *self, PyObject *args) {
-  int argc;
-  PyObject *argv[2];
+  Py_ssize_t argc;
+  PyObject *argv[2] = {
+    0
+  };
   
   if (!(argc = SWIG_Python_UnpackTuple(args,"new_Row",0,1,argv))) SWIG_fail;
   --argc;
@@ -12491,8 +12625,10 @@
 
 
 SWIGINTERN PyObject *_wrap_Row_getField(PyObject *self, PyObject *args) {
-  int argc;
-  PyObject *argv[3];
+  Py_ssize_t argc;
+  PyObject *argv[3] = {
+    0
+  };
   
   if (!(argc = SWIG_Python_UnpackTuple(args,"Row_getField",0,2,argv+1))) SWIG_fail;
   argv[0] = self;
@@ -12671,8 +12807,10 @@
 
 
 SWIGINTERN PyObject *_wrap_Row_get(PyObject *self, PyObject *args) {
-  int argc;
-  PyObject *argv[3];
+  Py_ssize_t argc;
+  PyObject *argv[3] = {
+    0
+  };
   
   if (!(argc = SWIG_Python_UnpackTuple(args,"Row_get",0,2,argv+1))) SWIG_fail;
   argv[0] = self;
@@ -12757,7 +12895,10 @@
 };
 
 SWIGPY_DESTRUCTOR_CLOSURE(_wrap_delete_SwigPyIterator)
+static SwigPyGetSet SwigPyIterator___dict___getset = { SwigPyObject_get___dict__, 0 };
 SWIGINTERN PyGetSetDef SwigPyBuiltin__swig__SwigPyIterator_getset[] = {
+    { (char*) "__dict__", (getter) SwigPyBuiltin_FunpackGetterClosure, (setter) 0, (char*)"swig::SwigPyIterator.__dict__", (void*) &SwigPyIterator___dict___getset }
+,
     {NULL, NULL, NULL, NULL, NULL} /* Sentinel */
 };
 
@@ -12864,7 +13005,26 @@
 #if PY_VERSION_HEX >= 0x02060000
     (int) 0,                                  /* tp_version_tag */
 #endif
+#if PY_VERSION_HEX >= 0x03040000
+    (destructor) 0,                           /* tp_finalize */
+#endif
+#ifdef COUNT_ALLOCS
+    (Py_ssize_t) 0,                           /* tp_allocs */
+    (Py_ssize_t) 0,                           /* tp_frees */
+    (Py_ssize_t) 0,                           /* tp_maxalloc */
+#if PY_VERSION_HEX >= 0x02050000
+    (struct _typeobject*) 0,                  /* tp_prev */
+#endif
+    (struct _typeobject*) 0,                  /* tp_next */
+#endif
+  },
+#if PY_VERSION_HEX >= 0x03050000
+  {
+    (unaryfunc) 0,                            /* am_await */
+    (unaryfunc) 0,                            /* am_aiter */
+    (unaryfunc) 0,                            /* am_anext */
   },
+#endif
   {
     (binaryfunc) (binaryfunc) _wrap_SwigPyIterator___add__, /* nb_add */
     (binaryfunc) (binaryfunc) _wrap_SwigPyIterator___sub___closure, /* nb_subtract */
@@ -12919,6 +13079,10 @@
 #if PY_VERSION_HEX >= 0x02050000
     (unaryfunc) 0,                            /* nb_index */
 #endif
+#if PY_VERSION_HEX >= 0x03050000
+    (binaryfunc) 0,                           /* nb_matrix_multiply */
+    (binaryfunc) 0,                           /* nb_inplace_matrix_multiply */
+#endif
   },
   {
     (lenfunc) 0,                              /* mp_length */
@@ -12959,13 +13123,20 @@
   },
     (PyObject*) 0,                            /* ht_name */
     (PyObject*) 0,                            /* ht_slots */
+#if PY_VERSION_HEX >= 0x03030000
+    (PyObject*) 0,                            /* ht_qualname */
+    (struct _dictkeysobject*) 0,              /* ht_cached_keys */
+#endif
 };
 
 SWIGINTERN SwigPyClientData SwigPyBuiltin__swig__SwigPyIterator_clientdata = {0, 0, 0, 0, 0, 0, (PyTypeObject *)&SwigPyBuiltin__swig__SwigPyIterator_type};
 
 SWIGPY_DESTRUCTOR_CLOSURE(_wrap_delete_TableIterator)
+static SwigPyGetSet TableIterator___dict___getset = { SwigPyObject_get___dict__, 0 };
 static SwigPyGetSet TableIterator__done_getset = { _wrap_TableIterator__done_get, _wrap_TableIterator__done_set };
 SWIGINTERN PyGetSetDef SwigPyBuiltin__GenericIteratorT_PreludeDB__SQL__Table_PreludeDB__SQL__Table__Row_t_getset[] = {
+    { (char*) "__dict__", (getter) SwigPyBuiltin_FunpackGetterClosure, (setter) 0, (char*)"GenericIterator<(PreludeDB::SQL::Table,PreludeDB::SQL::Table::Row)>.__dict__", (void*) &TableIterator___dict___getset }
+,
     { (char*) "_done", (getter) SwigPyBuiltin_FunpackGetterClosure, (setter) SwigPyBuiltin_FunpackSetterClosure, (char*)"GenericIterator<(PreludeDB::SQL::Table,PreludeDB::SQL::Table::Row)>._done", (void*) &TableIterator__done_getset }
 ,
     {NULL, NULL, NULL, NULL, NULL} /* Sentinel */
@@ -13055,7 +13226,26 @@
 #if PY_VERSION_HEX >= 0x02060000
     (int) 0,                                  /* tp_version_tag */
 #endif
+#if PY_VERSION_HEX >= 0x03040000
+    (destructor) 0,                           /* tp_finalize */
+#endif
+#ifdef COUNT_ALLOCS
+    (Py_ssize_t) 0,                           /* tp_allocs */
+    (Py_ssize_t) 0,                           /* tp_frees */
+    (Py_ssize_t) 0,                           /* tp_maxalloc */
+#if PY_VERSION_HEX >= 0x02050000
+    (struct _typeobject*) 0,                  /* tp_prev */
+#endif
+    (struct _typeobject*) 0,                  /* tp_next */
+#endif
   },
+#if PY_VERSION_HEX >= 0x03050000
+  {
+    (unaryfunc) 0,                            /* am_await */
+    (unaryfunc) 0,                            /* am_aiter */
+    (unaryfunc) 0,                            /* am_anext */
+  },
+#endif
   {
     (binaryfunc) 0,                           /* nb_add */
     (binaryfunc) 0,                           /* nb_subtract */
@@ -13110,6 +13300,10 @@
 #if PY_VERSION_HEX >= 0x02050000
     (unaryfunc) 0,                            /* nb_index */
 #endif
+#if PY_VERSION_HEX >= 0x03050000
+    (binaryfunc) 0,                           /* nb_matrix_multiply */
+    (binaryfunc) 0,                           /* nb_inplace_matrix_multiply */
+#endif
   },
   {
     (lenfunc) 0,                              /* mp_length */
@@ -13150,13 +13344,20 @@
   },
     (PyObject*) 0,                            /* ht_name */
     (PyObject*) 0,                            /* ht_slots */
+#if PY_VERSION_HEX >= 0x03030000
+    (PyObject*) 0,                            /* ht_qualname */
+    (struct _dictkeysobject*) 0,              /* ht_cached_keys */
+#endif
 };
 
 SWIGINTERN SwigPyClientData SwigPyBuiltin__GenericIteratorT_PreludeDB__SQL__Table_PreludeDB__SQL__Table__Row_t_clientdata = {0, 0, 0, 0, 0, 0, (PyTypeObject *)&SwigPyBuiltin__GenericIteratorT_PreludeDB__SQL__Table_PreludeDB__SQL__Table__Row_t_type};
 
 SWIGPY_DESTRUCTOR_CLOSURE(_wrap_delete_TableRowIterator)
+static SwigPyGetSet TableRowIterator___dict___getset = { SwigPyObject_get___dict__, 0 };
 static SwigPyGetSet TableRowIterator__done_getset = { _wrap_TableRowIterator__done_get, _wrap_TableRowIterator__done_set };
 SWIGINTERN PyGetSetDef SwigPyBuiltin__GenericIteratorT_PreludeDB__SQL__Table__Row_char_const_t_getset[] = {
+    { (char*) "__dict__", (getter) SwigPyBuiltin_FunpackGetterClosure, (setter) 0, (char*)"GenericIterator<(PreludeDB::SQL::Table::Row,q(const).char)>.__dict__", (void*) &TableRowIterator___dict___getset }
+,
     { (char*) "_done", (getter) SwigPyBuiltin_FunpackGetterClosure, (setter) SwigPyBuiltin_FunpackSetterClosure, (char*)"GenericIterator<(PreludeDB::SQL::Table::Row,q(const).char)>._done", (void*) &TableRowIterator__done_getset }
 ,
     {NULL, NULL, NULL, NULL, NULL} /* Sentinel */
@@ -13246,7 +13447,26 @@
 #if PY_VERSION_HEX >= 0x02060000
     (int) 0,                                  /* tp_version_tag */
 #endif
+#if PY_VERSION_HEX >= 0x03040000
+    (destructor) 0,                           /* tp_finalize */
+#endif
+#ifdef COUNT_ALLOCS
+    (Py_ssize_t) 0,                           /* tp_allocs */
+    (Py_ssize_t) 0,                           /* tp_frees */
+    (Py_ssize_t) 0,                           /* tp_maxalloc */
+#if PY_VERSION_HEX >= 0x02050000
+    (struct _typeobject*) 0,                  /* tp_prev */
+#endif
+    (struct _typeobject*) 0,                  /* tp_next */
+#endif
+  },
+#if PY_VERSION_HEX >= 0x03050000
+  {
+    (unaryfunc) 0,                            /* am_await */
+    (unaryfunc) 0,                            /* am_aiter */
+    (unaryfunc) 0,                            /* am_anext */
   },
+#endif
   {
     (binaryfunc) 0,                           /* nb_add */
     (binaryfunc) 0,                           /* nb_subtract */
@@ -13301,6 +13521,10 @@
 #if PY_VERSION_HEX >= 0x02050000
     (unaryfunc) 0,                            /* nb_index */
 #endif
+#if PY_VERSION_HEX >= 0x03050000
+    (binaryfunc) 0,                           /* nb_matrix_multiply */
+    (binaryfunc) 0,                           /* nb_inplace_matrix_multiply */
+#endif
   },
   {
     (lenfunc) 0,                              /* mp_length */
@@ -13341,13 +13565,20 @@
   },
     (PyObject*) 0,                            /* ht_name */
     (PyObject*) 0,                            /* ht_slots */
+#if PY_VERSION_HEX >= 0x03030000
+    (PyObject*) 0,                            /* ht_qualname */
+    (struct _dictkeysobject*) 0,              /* ht_cached_keys */
+#endif
 };
 
 SWIGINTERN SwigPyClientData SwigPyBuiltin__GenericIteratorT_PreludeDB__SQL__Table__Row_char_const_t_clientdata = {0, 0, 0, 0, 0, 0, (PyTypeObject *)&SwigPyBuiltin__GenericIteratorT_PreludeDB__SQL__Table__Row_char_const_t_type};
 
 SWIGPY_DESTRUCTOR_CLOSURE(_wrap_delete_ResultIdentsIterator)
+static SwigPyGetSet ResultIdentsIterator___dict___getset = { SwigPyObject_get___dict__, 0 };
 static SwigPyGetSet ResultIdentsIterator__done_getset = { _wrap_ResultIdentsIterator__done_get, _wrap_ResultIdentsIterator__done_set };
 SWIGINTERN PyGetSetDef SwigPyBuiltin__GenericIteratorT_PreludeDB__DB__ResultIdents__VECTOR_UINT64_TYPE_t_getset[] = {
+    { (char*) "__dict__", (getter) SwigPyBuiltin_FunpackGetterClosure, (setter) 0, (char*)"GenericIterator<(PreludeDB::DB::ResultIdents,_VECTOR_UINT64_TYPE)>.__dict__", (void*) &ResultIdentsIterator___dict___getset }
+,
     { (char*) "_done", (getter) SwigPyBuiltin_FunpackGetterClosure, (setter) SwigPyBuiltin_FunpackSetterClosure, (char*)"GenericIterator<(PreludeDB::DB::ResultIdents,_VECTOR_UINT64_TYPE)>._done", (void*) &ResultIdentsIterator__done_getset }
 ,
     {NULL, NULL, NULL, NULL, NULL} /* Sentinel */
@@ -13437,7 +13668,26 @@
 #if PY_VERSION_HEX >= 0x02060000
     (int) 0,                                  /* tp_version_tag */
 #endif
+#if PY_VERSION_HEX >= 0x03040000
+    (destructor) 0,                           /* tp_finalize */
+#endif
+#ifdef COUNT_ALLOCS
+    (Py_ssize_t) 0,                           /* tp_allocs */
+    (Py_ssize_t) 0,                           /* tp_frees */
+    (Py_ssize_t) 0,                           /* tp_maxalloc */
+#if PY_VERSION_HEX >= 0x02050000
+    (struct _typeobject*) 0,                  /* tp_prev */
+#endif
+    (struct _typeobject*) 0,                  /* tp_next */
+#endif
   },
+#if PY_VERSION_HEX >= 0x03050000
+  {
+    (unaryfunc) 0,                            /* am_await */
+    (unaryfunc) 0,                            /* am_aiter */
+    (unaryfunc) 0,                            /* am_anext */
+  },
+#endif
   {
     (binaryfunc) 0,                           /* nb_add */
     (binaryfunc) 0,                           /* nb_subtract */
@@ -13492,6 +13742,10 @@
 #if PY_VERSION_HEX >= 0x02050000
     (unaryfunc) 0,                            /* nb_index */
 #endif
+#if PY_VERSION_HEX >= 0x03050000
+    (binaryfunc) 0,                           /* nb_matrix_multiply */
+    (binaryfunc) 0,                           /* nb_inplace_matrix_multiply */
+#endif
   },
   {
     (lenfunc) 0,                              /* mp_length */
@@ -13532,13 +13786,20 @@
   },
     (PyObject*) 0,                            /* ht_name */
     (PyObject*) 0,                            /* ht_slots */
+#if PY_VERSION_HEX >= 0x03030000
+    (PyObject*) 0,                            /* ht_qualname */
+    (struct _dictkeysobject*) 0,              /* ht_cached_keys */
+#endif
 };
 
 SWIGINTERN SwigPyClientData SwigPyBuiltin__GenericIteratorT_PreludeDB__DB__ResultIdents__VECTOR_UINT64_TYPE_t_clientdata = {0, 0, 0, 0, 0, 0, (PyTypeObject *)&SwigPyBuiltin__GenericIteratorT_PreludeDB__DB__ResultIdents__VECTOR_UINT64_TYPE_t_type};
 
 SWIGPY_DESTRUCTOR_CLOSURE(_wrap_delete_ResultValuesIterator)
+static SwigPyGetSet ResultValuesIterator___dict___getset = { SwigPyObject_get___dict__, 0 };
 static SwigPyGetSet ResultValuesIterator__done_getset = { _wrap_ResultValuesIterator__done_get, _wrap_ResultValuesIterator__done_set };
 SWIGINTERN PyGetSetDef SwigPyBuiltin__GenericIteratorT_PreludeDB__DB__ResultValues_PreludeDB__DB__ResultValues__ResultValuesRow_t_getset[] = {
+    { (char*) "__dict__", (getter) SwigPyBuiltin_FunpackGetterClosure, (setter) 0, (char*)"GenericIterator<(PreludeDB::DB::ResultValues,PreludeDB::DB::ResultValues::ResultValuesRow)>.__dict__", (void*) &ResultValuesIterator___dict___getset }
+,
     { (char*) "_done", (getter) SwigPyBuiltin_FunpackGetterClosure, (setter) SwigPyBuiltin_FunpackSetterClosure, (char*)"GenericIterator<(PreludeDB::DB::ResultValues,PreludeDB::DB::ResultValues::ResultValuesRow)>._done", (void*) &ResultValuesIterator__done_getset }
 ,
     {NULL, NULL, NULL, NULL, NULL} /* Sentinel */
@@ -13628,7 +13889,26 @@
 #if PY_VERSION_HEX >= 0x02060000
     (int) 0,                                  /* tp_version_tag */
 #endif
+#if PY_VERSION_HEX >= 0x03040000
+    (destructor) 0,                           /* tp_finalize */
+#endif
+#ifdef COUNT_ALLOCS
+    (Py_ssize_t) 0,                           /* tp_allocs */
+    (Py_ssize_t) 0,                           /* tp_frees */
+    (Py_ssize_t) 0,                           /* tp_maxalloc */
+#if PY_VERSION_HEX >= 0x02050000
+    (struct _typeobject*) 0,                  /* tp_prev */
+#endif
+    (struct _typeobject*) 0,                  /* tp_next */
+#endif
+  },
+#if PY_VERSION_HEX >= 0x03050000
+  {
+    (unaryfunc) 0,                            /* am_await */
+    (unaryfunc) 0,                            /* am_aiter */
+    (unaryfunc) 0,                            /* am_anext */
   },
+#endif
   {
     (binaryfunc) 0,                           /* nb_add */
     (binaryfunc) 0,                           /* nb_subtract */
@@ -13683,6 +13963,10 @@
 #if PY_VERSION_HEX >= 0x02050000
     (unaryfunc) 0,                            /* nb_index */
 #endif
+#if PY_VERSION_HEX >= 0x03050000
+    (binaryfunc) 0,                           /* nb_matrix_multiply */
+    (binaryfunc) 0,                           /* nb_inplace_matrix_multiply */
+#endif
   },
   {
     (lenfunc) 0,                              /* mp_length */
@@ -13723,12 +14007,19 @@
   },
     (PyObject*) 0,                            /* ht_name */
     (PyObject*) 0,                            /* ht_slots */
+#if PY_VERSION_HEX >= 0x03030000
+    (PyObject*) 0,                            /* ht_qualname */
+    (struct _dictkeysobject*) 0,              /* ht_cached_keys */
+#endif
 };
 
 SWIGINTERN SwigPyClientData SwigPyBuiltin__GenericIteratorT_PreludeDB__DB__ResultValues_PreludeDB__DB__ResultValues__ResultValuesRow_t_clientdata = {0, 0, 0, 0, 0, 0, (PyTypeObject *)&SwigPyBuiltin__GenericIteratorT_PreludeDB__DB__ResultValues_PreludeDB__DB__ResultValues__ResultValuesRow_t_type};
 
 SWIGPY_DESTRUCTOR_CLOSURE(_wrap_delete_ResultValuesDRowIterator)
+static SwigPyGetSet ResultValuesDRowIterator___dict___getset = { SwigPyObject_get___dict__, 0 };
 SWIGINTERN PyGetSetDef SwigPyBuiltin__GenericDirectIteratorT_PreludeDB__DB__ResultValues__ResultValuesRow_PyObject_t_getset[] = {
+    { (char*) "__dict__", (getter) SwigPyBuiltin_FunpackGetterClosure, (setter) 0, (char*)"GenericDirectIterator<(PreludeDB::DB::ResultValues::ResultValuesRow,PyObject)>.__dict__", (void*) &ResultValuesDRowIterator___dict___getset }
+,
     {NULL, NULL, NULL, NULL, NULL} /* Sentinel */
 };
 
@@ -13816,7 +14107,26 @@
 #if PY_VERSION_HEX >= 0x02060000
     (int) 0,                                  /* tp_version_tag */
 #endif
+#if PY_VERSION_HEX >= 0x03040000
+    (destructor) 0,                           /* tp_finalize */
+#endif
+#ifdef COUNT_ALLOCS
+    (Py_ssize_t) 0,                           /* tp_allocs */
+    (Py_ssize_t) 0,                           /* tp_frees */
+    (Py_ssize_t) 0,                           /* tp_maxalloc */
+#if PY_VERSION_HEX >= 0x02050000
+    (struct _typeobject*) 0,                  /* tp_prev */
+#endif
+    (struct _typeobject*) 0,                  /* tp_next */
+#endif
+  },
+#if PY_VERSION_HEX >= 0x03050000
+  {
+    (unaryfunc) 0,                            /* am_await */
+    (unaryfunc) 0,                            /* am_aiter */
+    (unaryfunc) 0,                            /* am_anext */
   },
+#endif
   {
     (binaryfunc) 0,                           /* nb_add */
     (binaryfunc) 0,                           /* nb_subtract */
@@ -13871,6 +14181,10 @@
 #if PY_VERSION_HEX >= 0x02050000
     (unaryfunc) 0,                            /* nb_index */
 #endif
+#if PY_VERSION_HEX >= 0x03050000
+    (binaryfunc) 0,                           /* nb_matrix_multiply */
+    (binaryfunc) 0,                           /* nb_inplace_matrix_multiply */
+#endif
   },
   {
     (lenfunc) 0,                              /* mp_length */
@@ -13911,13 +14225,20 @@
   },
     (PyObject*) 0,                            /* ht_name */
     (PyObject*) 0,                            /* ht_slots */
+#if PY_VERSION_HEX >= 0x03030000
+    (PyObject*) 0,                            /* ht_qualname */
+    (struct _dictkeysobject*) 0,              /* ht_cached_keys */
+#endif
 };
 
 SWIGINTERN SwigPyClientData SwigPyBuiltin__GenericDirectIteratorT_PreludeDB__DB__ResultValues__ResultValuesRow_PyObject_t_clientdata = {0, 0, 0, 0, 0, 0, (PyTypeObject *)&SwigPyBuiltin__GenericDirectIteratorT_PreludeDB__DB__ResultValues__ResultValuesRow_PyObject_t_type};
 
 SWIGPY_DESTRUCTOR_CLOSURE(_wrap_delete_ResultValuesRowIterator)
+static SwigPyGetSet ResultValuesRowIterator___dict___getset = { SwigPyObject_get___dict__, 0 };
 static SwigPyGetSet ResultValuesRowIterator__done_getset = { _wrap_ResultValuesRowIterator__done_get, _wrap_ResultValuesRowIterator__done_set };
 SWIGINTERN PyGetSetDef SwigPyBuiltin__GenericIteratorT_PreludeDB__DB__ResultValues__ResultValuesRow_Prelude__IDMEFValue_t_getset[] = {
+    { (char*) "__dict__", (getter) SwigPyBuiltin_FunpackGetterClosure, (setter) 0, (char*)"GenericIterator<(PreludeDB::DB::ResultValues::ResultValuesRow,Prelude::IDMEFValue)>.__dict__", (void*) &ResultValuesRowIterator___dict___getset }
+,
     { (char*) "_done", (getter) SwigPyBuiltin_FunpackGetterClosure, (setter) SwigPyBuiltin_FunpackSetterClosure, (char*)"GenericIterator<(PreludeDB::DB::ResultValues::ResultValuesRow,Prelude::IDMEFValue)>._done", (void*) &ResultValuesRowIterator__done_getset }
 ,
     {NULL, NULL, NULL, NULL, NULL} /* Sentinel */
@@ -14007,7 +14328,26 @@
 #if PY_VERSION_HEX >= 0x02060000
     (int) 0,                                  /* tp_version_tag */
 #endif
+#if PY_VERSION_HEX >= 0x03040000
+    (destructor) 0,                           /* tp_finalize */
+#endif
+#ifdef COUNT_ALLOCS
+    (Py_ssize_t) 0,                           /* tp_allocs */
+    (Py_ssize_t) 0,                           /* tp_frees */
+    (Py_ssize_t) 0,                           /* tp_maxalloc */
+#if PY_VERSION_HEX >= 0x02050000
+    (struct _typeobject*) 0,                  /* tp_prev */
+#endif
+    (struct _typeobject*) 0,                  /* tp_next */
+#endif
   },
+#if PY_VERSION_HEX >= 0x03050000
+  {
+    (unaryfunc) 0,                            /* am_await */
+    (unaryfunc) 0,                            /* am_aiter */
+    (unaryfunc) 0,                            /* am_anext */
+  },
+#endif
   {
     (binaryfunc) 0,                           /* nb_add */
     (binaryfunc) 0,                           /* nb_subtract */
@@ -14062,6 +14402,10 @@
 #if PY_VERSION_HEX >= 0x02050000
     (unaryfunc) 0,                            /* nb_index */
 #endif
+#if PY_VERSION_HEX >= 0x03050000
+    (binaryfunc) 0,                           /* nb_matrix_multiply */
+    (binaryfunc) 0,                           /* nb_inplace_matrix_multiply */
+#endif
   },
   {
     (lenfunc) 0,                              /* mp_length */
@@ -14102,12 +14446,19 @@
   },
     (PyObject*) 0,                            /* ht_name */
     (PyObject*) 0,                            /* ht_slots */
+#if PY_VERSION_HEX >= 0x03030000
+    (PyObject*) 0,                            /* ht_qualname */
+    (struct _dictkeysobject*) 0,              /* ht_cached_keys */
+#endif
 };
 
 SWIGINTERN SwigPyClientData SwigPyBuiltin__GenericIteratorT_PreludeDB__DB__ResultValues__ResultValuesRow_Prelude__IDMEFValue_t_clientdata = {0, 0, 0, 0, 0, 0, (PyTypeObject *)&SwigPyBuiltin__GenericIteratorT_PreludeDB__DB__ResultValues__ResultValuesRow_Prelude__IDMEFValue_t_type};
 
 SWIGPY_DESTRUCTOR_CLOSURE(_wrap_delete_DB)
+static SwigPyGetSet DB___dict___getset = { SwigPyObject_get___dict__, 0 };
 SWIGINTERN PyGetSetDef SwigPyBuiltin__PreludeDB__DB_getset[] = {
+    { (char*) "__dict__", (getter) SwigPyBuiltin_FunpackGetterClosure, (setter) 0, (char*)"PreludeDB::DB.__dict__", (void*) &DB___dict___getset }
+,
     {NULL, NULL, NULL, NULL, NULL} /* Sentinel */
 };
 
@@ -14206,7 +14557,26 @@
 #if PY_VERSION_HEX >= 0x02060000
     (int) 0,                                  /* tp_version_tag */
 #endif
+#if PY_VERSION_HEX >= 0x03040000
+    (destructor) 0,                           /* tp_finalize */
+#endif
+#ifdef COUNT_ALLOCS
+    (Py_ssize_t) 0,                           /* tp_allocs */
+    (Py_ssize_t) 0,                           /* tp_frees */
+    (Py_ssize_t) 0,                           /* tp_maxalloc */
+#if PY_VERSION_HEX >= 0x02050000
+    (struct _typeobject*) 0,                  /* tp_prev */
+#endif
+    (struct _typeobject*) 0,                  /* tp_next */
+#endif
+  },
+#if PY_VERSION_HEX >= 0x03050000
+  {
+    (unaryfunc) 0,                            /* am_await */
+    (unaryfunc) 0,                            /* am_aiter */
+    (unaryfunc) 0,                            /* am_anext */
   },
+#endif
   {
     (binaryfunc) 0,                           /* nb_add */
     (binaryfunc) 0,                           /* nb_subtract */
@@ -14261,6 +14631,10 @@
 #if PY_VERSION_HEX >= 0x02050000
     (unaryfunc) 0,                            /* nb_index */
 #endif
+#if PY_VERSION_HEX >= 0x03050000
+    (binaryfunc) 0,                           /* nb_matrix_multiply */
+    (binaryfunc) 0,                           /* nb_inplace_matrix_multiply */
+#endif
   },
   {
     (lenfunc) 0,                              /* mp_length */
@@ -14301,15 +14675,22 @@
   },
     (PyObject*) 0,                            /* ht_name */
     (PyObject*) 0,                            /* ht_slots */
+#if PY_VERSION_HEX >= 0x03030000
+    (PyObject*) 0,                            /* ht_qualname */
+    (struct _dictkeysobject*) 0,              /* ht_cached_keys */
+#endif
 };
 
 SWIGINTERN SwigPyClientData SwigPyBuiltin__PreludeDB__DB_clientdata = {0, 0, 0, 0, 0, 0, (PyTypeObject *)&SwigPyBuiltin__PreludeDB__DB_type};
 
 SWIGPY_DESTRUCTOR_CLOSURE(_wrap_delete_ResultIdents)
 static SwigPyGetSet ResultIdents__result_getset = { _wrap_ResultIdents__result_get, _wrap_ResultIdents__result_set };
+static SwigPyGetSet ResultIdents___dict___getset = { SwigPyObject_get___dict__, 0 };
 SWIGINTERN PyGetSetDef SwigPyBuiltin__PreludeDB__DB__ResultIdents_getset[] = {
     { (char*) "_result", (getter) SwigPyBuiltin_FunpackGetterClosure, (setter) SwigPyBuiltin_FunpackSetterClosure, (char*)"PreludeDB::DB::ResultIdents._result", (void*) &ResultIdents__result_getset }
 ,
+    { (char*) "__dict__", (getter) SwigPyBuiltin_FunpackGetterClosure, (setter) 0, (char*)"PreludeDB::DB::ResultIdents.__dict__", (void*) &ResultIdents___dict___getset }
+,
     {NULL, NULL, NULL, NULL, NULL} /* Sentinel */
 };
 
@@ -14399,7 +14780,26 @@
 #if PY_VERSION_HEX >= 0x02060000
     (int) 0,                                  /* tp_version_tag */
 #endif
+#if PY_VERSION_HEX >= 0x03040000
+    (destructor) 0,                           /* tp_finalize */
+#endif
+#ifdef COUNT_ALLOCS
+    (Py_ssize_t) 0,                           /* tp_allocs */
+    (Py_ssize_t) 0,                           /* tp_frees */
+    (Py_ssize_t) 0,                           /* tp_maxalloc */
+#if PY_VERSION_HEX >= 0x02050000
+    (struct _typeobject*) 0,                  /* tp_prev */
+#endif
+    (struct _typeobject*) 0,                  /* tp_next */
+#endif
   },
+#if PY_VERSION_HEX >= 0x03050000
+  {
+    (unaryfunc) 0,                            /* am_await */
+    (unaryfunc) 0,                            /* am_aiter */
+    (unaryfunc) 0,                            /* am_anext */
+  },
+#endif
   {
     (binaryfunc) 0,                           /* nb_add */
     (binaryfunc) 0,                           /* nb_subtract */
@@ -14454,6 +14854,10 @@
 #if PY_VERSION_HEX >= 0x02050000
     (unaryfunc) 0,                            /* nb_index */
 #endif
+#if PY_VERSION_HEX >= 0x03050000
+    (binaryfunc) 0,                           /* nb_matrix_multiply */
+    (binaryfunc) 0,                           /* nb_inplace_matrix_multiply */
+#endif
   },
   {
     (lenfunc) (lenfunc) _wrap_ResultIdents_count_closure, /* mp_length */
@@ -14494,15 +14898,22 @@
   },
     (PyObject*) 0,                            /* ht_name */
     (PyObject*) 0,                            /* ht_slots */
+#if PY_VERSION_HEX >= 0x03030000
+    (PyObject*) 0,                            /* ht_qualname */
+    (struct _dictkeysobject*) 0,              /* ht_cached_keys */
+#endif
 };
 
 SWIGINTERN SwigPyClientData SwigPyBuiltin__PreludeDB__DB__ResultIdents_clientdata = {0, 0, 0, 0, 0, 0, (PyTypeObject *)&SwigPyBuiltin__PreludeDB__DB__ResultIdents_type};
 
 SWIGPY_DESTRUCTOR_CLOSURE(_wrap_delete_ResultValues)
 static SwigPyGetSet ResultValues__result_getset = { _wrap_ResultValues__result_get, _wrap_ResultValues__result_set };
+static SwigPyGetSet ResultValues___dict___getset = { SwigPyObject_get___dict__, 0 };
 SWIGINTERN PyGetSetDef SwigPyBuiltin__PreludeDB__DB__ResultValues_getset[] = {
     { (char*) "_result", (getter) SwigPyBuiltin_FunpackGetterClosure, (setter) SwigPyBuiltin_FunpackSetterClosure, (char*)"PreludeDB::DB::ResultValues._result", (void*) &ResultValues__result_getset }
 ,
+    { (char*) "__dict__", (getter) SwigPyBuiltin_FunpackGetterClosure, (setter) 0, (char*)"PreludeDB::DB::ResultValues.__dict__", (void*) &ResultValues___dict___getset }
+,
     {NULL, NULL, NULL, NULL, NULL} /* Sentinel */
 };
 
@@ -14595,7 +15006,26 @@
 #if PY_VERSION_HEX >= 0x02060000
     (int) 0,                                  /* tp_version_tag */
 #endif
+#if PY_VERSION_HEX >= 0x03040000
+    (destructor) 0,                           /* tp_finalize */
+#endif
+#ifdef COUNT_ALLOCS
+    (Py_ssize_t) 0,                           /* tp_allocs */
+    (Py_ssize_t) 0,                           /* tp_frees */
+    (Py_ssize_t) 0,                           /* tp_maxalloc */
+#if PY_VERSION_HEX >= 0x02050000
+    (struct _typeobject*) 0,                  /* tp_prev */
+#endif
+    (struct _typeobject*) 0,                  /* tp_next */
+#endif
   },
+#if PY_VERSION_HEX >= 0x03050000
+  {
+    (unaryfunc) 0,                            /* am_await */
+    (unaryfunc) 0,                            /* am_aiter */
+    (unaryfunc) 0,                            /* am_anext */
+  },
+#endif
   {
     (binaryfunc) 0,                           /* nb_add */
     (binaryfunc) 0,                           /* nb_subtract */
@@ -14650,6 +15080,10 @@
 #if PY_VERSION_HEX >= 0x02050000
     (unaryfunc) 0,                            /* nb_index */
 #endif
+#if PY_VERSION_HEX >= 0x03050000
+    (binaryfunc) 0,                           /* nb_matrix_multiply */
+    (binaryfunc) 0,                           /* nb_inplace_matrix_multiply */
+#endif
   },
   {
     (lenfunc) (lenfunc) _wrap_ResultValues_count_closure, /* mp_length */
@@ -14690,12 +15124,19 @@
   },
     (PyObject*) 0,                            /* ht_name */
     (PyObject*) 0,                            /* ht_slots */
+#if PY_VERSION_HEX >= 0x03030000
+    (PyObject*) 0,                            /* ht_qualname */
+    (struct _dictkeysobject*) 0,              /* ht_cached_keys */
+#endif
 };
 
 SWIGINTERN SwigPyClientData SwigPyBuiltin__PreludeDB__DB__ResultValues_clientdata = {0, 0, 0, 0, 0, 0, (PyTypeObject *)&SwigPyBuiltin__PreludeDB__DB__ResultValues_type};
 
 SWIGPY_DESTRUCTOR_CLOSURE(_wrap_delete_ResultValuesRow)
+static SwigPyGetSet ResultValuesRow___dict___getset = { SwigPyObject_get___dict__, 0 };
 SWIGINTERN PyGetSetDef SwigPyBuiltin__PreludeDB__DB__ResultValues__ResultValuesRow_getset[] = {
+    { (char*) "__dict__", (getter) SwigPyBuiltin_FunpackGetterClosure, (setter) 0, (char*)"PreludeDB::DB::ResultValues::ResultValuesRow.__dict__", (void*) &ResultValuesRow___dict___getset }
+,
     {NULL, NULL, NULL, NULL, NULL} /* Sentinel */
 };
 
@@ -14786,7 +15227,26 @@
 #if PY_VERSION_HEX >= 0x02060000
     (int) 0,                                  /* tp_version_tag */
 #endif
+#if PY_VERSION_HEX >= 0x03040000
+    (destructor) 0,                           /* tp_finalize */
+#endif
+#ifdef COUNT_ALLOCS
+    (Py_ssize_t) 0,                           /* tp_allocs */
+    (Py_ssize_t) 0,                           /* tp_frees */
+    (Py_ssize_t) 0,                           /* tp_maxalloc */
+#if PY_VERSION_HEX >= 0x02050000
+    (struct _typeobject*) 0,                  /* tp_prev */
+#endif
+    (struct _typeobject*) 0,                  /* tp_next */
+#endif
+  },
+#if PY_VERSION_HEX >= 0x03050000
+  {
+    (unaryfunc) 0,                            /* am_await */
+    (unaryfunc) 0,                            /* am_aiter */
+    (unaryfunc) 0,                            /* am_anext */
   },
+#endif
   {
     (binaryfunc) 0,                           /* nb_add */
     (binaryfunc) 0,                           /* nb_subtract */
@@ -14841,6 +15301,10 @@
 #if PY_VERSION_HEX >= 0x02050000
     (unaryfunc) 0,                            /* nb_index */
 #endif
+#if PY_VERSION_HEX >= 0x03050000
+    (binaryfunc) 0,                           /* nb_matrix_multiply */
+    (binaryfunc) 0,                           /* nb_inplace_matrix_multiply */
+#endif
   },
   {
     (lenfunc) (lenfunc) _wrap_ResultValuesRow_count_closure, /* mp_length */
@@ -14881,12 +15345,19 @@
   },
     (PyObject*) 0,                            /* ht_name */
     (PyObject*) 0,                            /* ht_slots */
+#if PY_VERSION_HEX >= 0x03030000
+    (PyObject*) 0,                            /* ht_qualname */
+    (struct _dictkeysobject*) 0,              /* ht_cached_keys */
+#endif
 };
 
 SWIGINTERN SwigPyClientData SwigPyBuiltin__PreludeDB__DB__ResultValues__ResultValuesRow_clientdata = {0, 0, 0, 0, 0, 0, (PyTypeObject *)&SwigPyBuiltin__PreludeDB__DB__ResultValues__ResultValuesRow_type};
 
 SWIGPY_DESTRUCTOR_CLOSURE(_wrap_delete_PreludeDBError)
+static SwigPyGetSet PreludeDBError___dict___getset = { SwigPyObject_get___dict__, 0 };
 SWIGINTERN PyGetSetDef SwigPyBuiltin__PreludeDB__PreludeDBError_getset[] = {
+    { (char*) "__dict__", (getter) SwigPyBuiltin_FunpackGetterClosure, (setter) 0, (char*)"PreludeDB::PreludeDBError.__dict__", (void*) &PreludeDBError___dict___getset }
+,
     {NULL, NULL, NULL, NULL, NULL} /* Sentinel */
 };
 
@@ -14972,7 +15443,26 @@
 #if PY_VERSION_HEX >= 0x02060000
     (int) 0,                                  /* tp_version_tag */
 #endif
+#if PY_VERSION_HEX >= 0x03040000
+    (destructor) 0,                           /* tp_finalize */
+#endif
+#ifdef COUNT_ALLOCS
+    (Py_ssize_t) 0,                           /* tp_allocs */
+    (Py_ssize_t) 0,                           /* tp_frees */
+    (Py_ssize_t) 0,                           /* tp_maxalloc */
+#if PY_VERSION_HEX >= 0x02050000
+    (struct _typeobject*) 0,                  /* tp_prev */
+#endif
+    (struct _typeobject*) 0,                  /* tp_next */
+#endif
   },
+#if PY_VERSION_HEX >= 0x03050000
+  {
+    (unaryfunc) 0,                            /* am_await */
+    (unaryfunc) 0,                            /* am_aiter */
+    (unaryfunc) 0,                            /* am_anext */
+  },
+#endif
   {
     (binaryfunc) 0,                           /* nb_add */
     (binaryfunc) 0,                           /* nb_subtract */
@@ -15027,6 +15517,10 @@
 #if PY_VERSION_HEX >= 0x02050000
     (unaryfunc) 0,                            /* nb_index */
 #endif
+#if PY_VERSION_HEX >= 0x03050000
+    (binaryfunc) 0,                           /* nb_matrix_multiply */
+    (binaryfunc) 0,                           /* nb_inplace_matrix_multiply */
+#endif
   },
   {
     (lenfunc) 0,                              /* mp_length */
@@ -15067,12 +15561,19 @@
   },
     (PyObject*) 0,                            /* ht_name */
     (PyObject*) 0,                            /* ht_slots */
+#if PY_VERSION_HEX >= 0x03030000
+    (PyObject*) 0,                            /* ht_qualname */
+    (struct _dictkeysobject*) 0,              /* ht_cached_keys */
+#endif
 };
 
 SWIGINTERN SwigPyClientData SwigPyBuiltin__PreludeDB__PreludeDBError_clientdata = {0, 0, 0, 0, 0, 0, (PyTypeObject *)&SwigPyBuiltin__PreludeDB__PreludeDBError_type};
 
 SWIGPY_DESTRUCTOR_CLOSURE(_wrap_delete_SQL)
+static SwigPyGetSet SQL___dict___getset = { SwigPyObject_get___dict__, 0 };
 SWIGINTERN PyGetSetDef SwigPyBuiltin__PreludeDB__SQL_getset[] = {
+    { (char*) "__dict__", (getter) SwigPyBuiltin_FunpackGetterClosure, (setter) 0, (char*)"PreludeDB::SQL.__dict__", (void*) &SQL___dict___getset }
+,
     {NULL, NULL, NULL, NULL, NULL} /* Sentinel */
 };
 
@@ -15165,7 +15666,26 @@
 #if PY_VERSION_HEX >= 0x02060000
     (int) 0,                                  /* tp_version_tag */
 #endif
+#if PY_VERSION_HEX >= 0x03040000
+    (destructor) 0,                           /* tp_finalize */
+#endif
+#ifdef COUNT_ALLOCS
+    (Py_ssize_t) 0,                           /* tp_allocs */
+    (Py_ssize_t) 0,                           /* tp_frees */
+    (Py_ssize_t) 0,                           /* tp_maxalloc */
+#if PY_VERSION_HEX >= 0x02050000
+    (struct _typeobject*) 0,                  /* tp_prev */
+#endif
+    (struct _typeobject*) 0,                  /* tp_next */
+#endif
   },
+#if PY_VERSION_HEX >= 0x03050000
+  {
+    (unaryfunc) 0,                            /* am_await */
+    (unaryfunc) 0,                            /* am_aiter */
+    (unaryfunc) 0,                            /* am_anext */
+  },
+#endif
   {
     (binaryfunc) 0,                           /* nb_add */
     (binaryfunc) 0,                           /* nb_subtract */
@@ -15220,6 +15740,10 @@
 #if PY_VERSION_HEX >= 0x02050000
     (unaryfunc) 0,                            /* nb_index */
 #endif
+#if PY_VERSION_HEX >= 0x03050000
+    (binaryfunc) 0,                           /* nb_matrix_multiply */
+    (binaryfunc) 0,                           /* nb_inplace_matrix_multiply */
+#endif
   },
   {
     (lenfunc) 0,                              /* mp_length */
@@ -15260,12 +15784,19 @@
   },
     (PyObject*) 0,                            /* ht_name */
     (PyObject*) 0,                            /* ht_slots */
+#if PY_VERSION_HEX >= 0x03030000
+    (PyObject*) 0,                            /* ht_qualname */
+    (struct _dictkeysobject*) 0,              /* ht_cached_keys */
+#endif
 };
 
 SWIGINTERN SwigPyClientData SwigPyBuiltin__PreludeDB__SQL_clientdata = {0, 0, 0, 0, 0, 0, (PyTypeObject *)&SwigPyBuiltin__PreludeDB__SQL_type};
 
 SWIGPY_DESTRUCTOR_CLOSURE(_wrap_delete_Table)
+static SwigPyGetSet Table___dict___getset = { SwigPyObject_get___dict__, 0 };
 SWIGINTERN PyGetSetDef SwigPyBuiltin__PreludeDB__SQL__Table_getset[] = {
+    { (char*) "__dict__", (getter) SwigPyBuiltin_FunpackGetterClosure, (setter) 0, (char*)"PreludeDB::SQL::Table.__dict__", (void*) &Table___dict___getset }
+,
     {NULL, NULL, NULL, NULL, NULL} /* Sentinel */
 };
 
@@ -15360,7 +15891,26 @@
 #if PY_VERSION_HEX >= 0x02060000
     (int) 0,                                  /* tp_version_tag */
 #endif
+#if PY_VERSION_HEX >= 0x03040000
+    (destructor) 0,                           /* tp_finalize */
+#endif
+#ifdef COUNT_ALLOCS
+    (Py_ssize_t) 0,                           /* tp_allocs */
+    (Py_ssize_t) 0,                           /* tp_frees */
+    (Py_ssize_t) 0,                           /* tp_maxalloc */
+#if PY_VERSION_HEX >= 0x02050000
+    (struct _typeobject*) 0,                  /* tp_prev */
+#endif
+    (struct _typeobject*) 0,                  /* tp_next */
+#endif
   },
+#if PY_VERSION_HEX >= 0x03050000
+  {
+    (unaryfunc) 0,                            /* am_await */
+    (unaryfunc) 0,                            /* am_aiter */
+    (unaryfunc) 0,                            /* am_anext */
+  },
+#endif
   {
     (binaryfunc) 0,                           /* nb_add */
     (binaryfunc) 0,                           /* nb_subtract */
@@ -15415,6 +15965,10 @@
 #if PY_VERSION_HEX >= 0x02050000
     (unaryfunc) 0,                            /* nb_index */
 #endif
+#if PY_VERSION_HEX >= 0x03050000
+    (binaryfunc) 0,                           /* nb_matrix_multiply */
+    (binaryfunc) 0,                           /* nb_inplace_matrix_multiply */
+#endif
   },
   {
     (lenfunc) (lenfunc) _wrap_Table_count_closure, /* mp_length */
@@ -15455,12 +16009,19 @@
   },
     (PyObject*) 0,                            /* ht_name */
     (PyObject*) 0,                            /* ht_slots */
+#if PY_VERSION_HEX >= 0x03030000
+    (PyObject*) 0,                            /* ht_qualname */
+    (struct _dictkeysobject*) 0,              /* ht_cached_keys */
+#endif
 };
 
 SWIGINTERN SwigPyClientData SwigPyBuiltin__PreludeDB__SQL__Table_clientdata = {0, 0, 0, 0, 0, 0, (PyTypeObject *)&SwigPyBuiltin__PreludeDB__SQL__Table_type};
 
 SWIGPY_DESTRUCTOR_CLOSURE(_wrap_delete_Row)
+static SwigPyGetSet Row___dict___getset = { SwigPyObject_get___dict__, 0 };
 SWIGINTERN PyGetSetDef SwigPyBuiltin__PreludeDB__SQL__Table__Row_getset[] = {
+    { (char*) "__dict__", (getter) SwigPyBuiltin_FunpackGetterClosure, (setter) 0, (char*)"PreludeDB::SQL::Table::Row.__dict__", (void*) &Row___dict___getset }
+,
     {NULL, NULL, NULL, NULL, NULL} /* Sentinel */
 };
 
@@ -15552,7 +16113,26 @@
 #if PY_VERSION_HEX >= 0x02060000
     (int) 0,                                  /* tp_version_tag */
 #endif
+#if PY_VERSION_HEX >= 0x03040000
+    (destructor) 0,                           /* tp_finalize */
+#endif
+#ifdef COUNT_ALLOCS
+    (Py_ssize_t) 0,                           /* tp_allocs */
+    (Py_ssize_t) 0,                           /* tp_frees */
+    (Py_ssize_t) 0,                           /* tp_maxalloc */
+#if PY_VERSION_HEX >= 0x02050000
+    (struct _typeobject*) 0,                  /* tp_prev */
+#endif
+    (struct _typeobject*) 0,                  /* tp_next */
+#endif
   },
+#if PY_VERSION_HEX >= 0x03050000
+  {
+    (unaryfunc) 0,                            /* am_await */
+    (unaryfunc) 0,                            /* am_aiter */
+    (unaryfunc) 0,                            /* am_anext */
+  },
+#endif
   {
     (binaryfunc) 0,                           /* nb_add */
     (binaryfunc) 0,                           /* nb_subtract */
@@ -15607,6 +16187,10 @@
 #if PY_VERSION_HEX >= 0x02050000
     (unaryfunc) 0,                            /* nb_index */
 #endif
+#if PY_VERSION_HEX >= 0x03050000
+    (binaryfunc) 0,                           /* nb_matrix_multiply */
+    (binaryfunc) 0,                           /* nb_inplace_matrix_multiply */
+#endif
   },
   {
     (lenfunc) (lenfunc) _wrap_Row_count_closure, /* mp_length */
@@ -15647,6 +16231,10 @@
   },
     (PyObject*) 0,                            /* ht_name */
     (PyObject*) 0,                            /* ht_slots */
+#if PY_VERSION_HEX >= 0x03030000
+    (PyObject*) 0,                            /* ht_qualname */
+    (struct _dictkeysobject*) 0,              /* ht_cached_keys */
+#endif
 };
 
 SWIGINTERN SwigPyClientData SwigPyBuiltin__PreludeDB__SQL__Table__Row_clientdata = {0, 0, 0, 0, 0, 0, (PyTypeObject *)&SwigPyBuiltin__PreludeDB__SQL__Table__Row_type};
@@ -15931,7 +16519,7 @@
 SWIG_InitializeModule(void *clientdata) {
   size_t i;
   swig_module_info *module_head, *iter;
-  int found, init;
+  int init;
   
   /* check to see if the circular list has been setup, if not, set it up */
   if (swig_module.next==0) {
@@ -15950,22 +16538,18 @@
     /* This is the first module loaded for this interpreter */
     /* so set the swig module into the interpreter */
     SWIG_SetModule(clientdata, &swig_module);
-    module_head = &swig_module;
   } else {
     /* the interpreter has loaded a SWIG module, but has it loaded this one? */
-    found=0;
     iter=module_head;
     do {
       if (iter==&swig_module) {
-        found=1;
-        break;
+        /* Our module is already in the list, so there's nothing more to do. */
+        return;
       }
       iter=iter->next;
     } while (iter!= module_head);
     
-    /* if the is found in the list, then all is done and we may leave */
-    if (found) return;
-    /* otherwise we must add out module into the list */
+    /* otherwise we must add our module into the list */
     swig_module.next = module_head->next;
     module_head->next = &swig_module;
   }
@@ -16284,10 +16868,19 @@
         0,                                  /* tp_del */
 #endif
 #if PY_VERSION_HEX >= 0x02060000
-        0,                                  /* tp_version */
+        0,                                  /* tp_version_tag */
+#endif
+#if PY_VERSION_HEX >= 0x03040000
+        0,                                  /* tp_finalize */
 #endif
 #ifdef COUNT_ALLOCS
-        0,0,0,0                             /* tp_alloc -> tp_next */
+        0,                                  /* tp_allocs */
+        0,                                  /* tp_frees */
+        0,                                  /* tp_maxalloc */
+#if PY_VERSION_HEX >= 0x02050000
+        0,                                  /* tp_prev */
+#endif
+        0                                   /* tp_next */
 #endif
       };
       varlink_type = tmp;
@@ -16376,7 +16969,9 @@
     size_t i;
     for (i = 0; methods[i].ml_name; ++i) {
       const char *c = methods[i].ml_doc;
-      if (c && (c = strstr(c, "swig_ptr: "))) {
+      if (!c) continue;
+      c = strstr(c, "swig_ptr: ");
+      if (c) {
         int j;
         swig_const_info *ci = 0;
         const char *name = c + 10;
@@ -16478,6 +17073,7 @@
   PyObject *public_interface, *public_symbol;
   PyObject *this_descr;
   PyObject *thisown_descr;
+  PyObject *self = 0;
   int i;
   
   (void)builtin_pytype;
@@ -16485,6 +17081,7 @@
   (void)builtin_basetype;
   (void)tuple;
   (void)static_getset;
+  (void)self;
   
   /* metatype is used to implement static member variables. */
   metatype_args = Py_BuildValue("(s(O){})", "SwigPyObjectType", &PyType_Type);
@@ -16504,6 +17101,7 @@
 #else
   m = Py_InitModule((char *) SWIG_name, SwigMethods);
 #endif
+  
   md = d = PyModule_GetDict(m);
   (void)md;
   
--- bindings/python/preludedb.py	2016-04-23 00:28:28.310000363 +0200
+++ bindings/python/preludedb.py	2016-04-28 13:03:57.019999999 +0200
@@ -1,5 +1,5 @@
 # This file was automatically generated by SWIG (http://www.swig.org).
-# Version 3.0.2
+# Version 3.0.8
 #
 # Do not make changes to this file unless you know what you are doing--modify
 # the SWIG interface file instead.
@@ -10,7 +10,7 @@
 
 
 from sys import version_info
-if version_info >= (2,6,0):
+if version_info >= (2, 6, 0):
     def swig_import_helper():
         from os.path import dirname
         import imp
@@ -35,47 +35,67 @@
 try:
     _swig_property = property
 except NameError:
-    pass # Python < 2.2 doesn't have 'property'.
-def _swig_setattr_nondynamic(self,class_type,name,value,static=1):
-    if (name == "thisown"): return self.this.own(value)
+    pass  # Python < 2.2 doesn't have 'property'.
+
+
+def _swig_setattr_nondynamic(self, class_type, name, value, static=1):
+    if (name == "thisown"):
+        return self.this.own(value)
     if (name == "this"):
         if type(value).__name__ == 'SwigPyObject':
             self.__dict__[name] = value
             return
-    method = class_type.__swig_setmethods__.get(name,None)
-    if method: return method(self,value)
+    method = class_type.__swig_setmethods__.get(name, None)
+    if method:
+        return method(self, value)
     if (not static):
-        self.__dict__[name] = value
+        object.__setattr__(self, name, value)
     else:
         raise AttributeError("You cannot add attributes to %s" % self)
 
-def _swig_setattr(self,class_type,name,value):
-    return _swig_setattr_nondynamic(self,class_type,name,value,0)
 
-def _swig_getattr(self,class_type,name):
-    if (name == "thisown"): return self.this.own()
-    method = class_type.__swig_getmethods__.get(name,None)
-    if method: return method(self)
-    raise AttributeError(name)
+def _swig_setattr(self, class_type, name, value):
+    return _swig_setattr_nondynamic(self, class_type, name, value, 0)
+
+
+def _swig_getattr_nondynamic(self, class_type, name, static=1):
+    if (name == "thisown"):
+        return self.this.own()
+    method = class_type.__swig_getmethods__.get(name, None)
+    if method:
+        return method(self)
+    if (not static):
+        return object.__getattr__(self, name)
+    else:
+        raise AttributeError(name)
+
+def _swig_getattr(self, class_type, name):
+    return _swig_getattr_nondynamic(self, class_type, name, 0)
+
 
 def _swig_repr(self):
-    try: strthis = "proxy of " + self.this.__repr__()
-    except: strthis = ""
+    try:
+        strthis = "proxy of " + self.this.__repr__()
+    except Exception:
+        strthis = ""
     return "<%s.%s; %s >" % (self.__class__.__module__, self.__class__.__name__, strthis,)
 
 try:
     _object = object
     _newclass = 1
 except AttributeError:
-    class _object : pass
+    class _object:
+        pass
     _newclass = 0
 
 
+
 def _swig_setattr_nondynamic_method(set):
-    def set_attr(self,name,value):
-        if (name == "thisown"): return self.this.own(value)
-        if hasattr(self,name) or (name == "this"):
-            set(self,name,value)
+    def set_attr(self, name, value):
+        if (name == "thisown"):
+            return self.this.own(value)
+        if hasattr(self, name) or (name == "this"):
+            set(self, name, value)
         else:
             raise AttributeError("You cannot add attributes to %s" % self)
     return set_attr