code: def unsetrange(self, keys=None, prefix=""):
          
          if keys is not None:
              keys = ['%s%s' % (prefix, key) for key in keys]
              self.cursor.execute('delete from kv where key in (%s)' % ','.join(['?'] * len(keys)), keys)
              if self.revision and self.cursor.rowcount:
                  self.cursor.execute(
                      'insert into kv_revisions values %s' % ','.join(['(?, ?, ?)'] * len(keys)),
                      list(itertools.chain.from_iterable((key, self.revision, json.dumps('DELETED')) for key in keys)))
          else:
              self.cursor.execute('delete from kv where key like ?',
                                  ['%s%%' % prefix])
              if self.revision and self.cursor.rowcount:
                  self.cursor.execute(
                      'insert into kv_revisions values (?, ?, ?)',
                      ['%s%%' % prefix, self.revision, json.dumps('DELETED')])
docs: Remove a range of keys starting with a common prefix, from the database
          entirely.
  
          :param list keys: List of keys to remove.
          :param str prefix: Optional prefix to apply to all keys in ``keys``
              before removing.