 
     _query: (opts) =>
         opts  = defaults opts,
-            query  : required
-            params : []
-            where  : undefined    # Used for SELECT: If given, must be a map with keys clauses with $::TYPE  (not $1::TYPE!)
+            query     : required
+            params    : []
+            where     : undefined # Used for SELECT: If given, must be a map with keys clauses with $::TYPE  (not $1::TYPE!)
                                   # and values the corresponding params.  Also, WHERE must not be in the query already.
                                   # If where[cond] is undefined, then cond is completely **ignored**.
-            values : undefined    # Used for INSERT: If given, then params and where must not be given.   Values is a map
-                                  # {field1:[{type1:value}|string|undefined], field2:[{type2:value}|string|undefined], ...} which gets converted to
+            values    : undefined # Used for INSERT: If given, then params and where must not be given.   Values is a map
+                                  # {'field1::type1':value, , 'field2::type2':value2, ...} which gets converted to
                                   # ' (field1, field2, ...) VALUES ($1::type1, $2::type2, ...) '
-                                  # with corresponding params set.  Undefined valued fields are ignored.
-            conflict : undefined  # if given, then values must be given; appends something like this to query:
+                                  # with corresponding params set.  Undefined valued fields are ignored and types may be omited.
+            conflict  : undefined # If given, then values must also be given; appends this to query:
                                   #     ON CONFLICT (name) DO UPDATE SET value=EXCLUDED.value'
-            jsonb_set : undefined # used for setting a field that contains a JSONB javascript map;
+            jsonb_set : undefined # Used for setting a field that contains a JSONB javascript map.
                                   # Give as input an object {key1:val1, key2:val2, ...}.
                                   # Every key has the corresponding value set, unless val is undefined/null, in which
                                   # case that key is deleted from the JSONB object.  Simple as that!  This is much, much

            return

        push_param = (param, type) ->
            if type == 'JSONB' and misc.is_array(param)
                param = misc.to_json(param)  # I don't understand why this is needed by the driver....
            opts.params.push(param)
            return opts.params.length

        @_query
            query  : 'INSERT INTO client_error_log'
            values :
                'id         :: UUID'      : misc.uuid()
                'event      :: TEXT'      : opts.event
                'error      :: TEXT'      : opts.error
                'account_id :: UUID'      : opts.account_id
                'time       :: TIMESTAMP' : 'NOW()'
            cb     : (err) => opts.cb?(err)

    get_client_error_log: (opts) =>
