def update(self, table, **kw):
        _check_args('update', kw.keys(), (
            'set', 'values', 'where', 'where_or', 'filter_values',
            'map_values', 'debug_print','debug_assert'
        ))
        values = kw.pop('values', kw.pop('set', {}))
        where = kw.pop('where', {})
        where_or = kw.pop('where_or', {})
        if kw.pop('filter_values', False):
            columns = self.get_table_infos(table).columns
            values = {c: v for c, v in values.items() if c in columns}
        map_values = kw.pop('map_values', {})
        values =  {
            k: (map_values.get(v, v) if isinstance(v, collections.Hashable) else v)
            for k, v in values.items()
        }
        q = 'update {table} set ({fields}) = ({placeholders})'
        q = q.format(
            table=table,
            fields=','.join(values.keys()),
            placeholders=','.join(['%s' for _ in values])
        )
        if where:
            where_clause = _get_where_clause(where.items())
            q += " where %s" % where_clause
        if where_or:
            where_or_clause = _get_where_clause(where_or.items(), 'or')
            if where:
                q += ' and (%s)' % where_or_clause
            else:
                q += ' where %s' % where_or_clause
        q += ' returning *'
        vals = list(values.values()) + list(where.values()) + list(where_or.values())
        self._exec_query(q, vals, **kw)
        return self.cursor.fetchone()
Ensure clusters that connect on a keyspace, do
dataset/ETHPy150Open cjauvin/little_pger/little_pger.py/LittlePGer.update--crossover with--dataset/ETHPy150Open datastax/python-driver/tests/integration/standard/test_cluster.py/ClusterTests.test_connect_on_keyspace