class_docstr: SQLite3 TaskRecord backend.
docstr: Ensure that an incorrect table doesn't exist
  
  If a bad (old) table does exist, return False
docstr_tok: ["Ensure","that","an","incorrect","table","does","n't","exist","If","a","bad","(","old",")","table","does","exist",",","return","False"]
code: def _check_table(self):
      """Ensure that an incorrect table doesn't exist
  
      If a bad (old) table does exist, return False
      """
      cursor = self._db.execute("PRAGMA table_info('%s')" % self.table)
      lines = cursor.fetchall()
      if not lines:
          # table does not exist
          return True
      types = {}
      keys = []
      for line in lines:
          keys.append(line[1])
          types[line[1]] = line[2]
      if self._keys != keys:
          # key mismatch
          self.log.warning("keys mismatch")
          return False
      for key in self._keys:
          if types[key] != self._types[key]:
              self.log.warning(
                  f"type mismatch: {key}: {types[key]} != {self._types[key]}"
              )
              return False
      return True
  
imports: import json
  import os
  from datetime import datetime
  from dateutil.parser import parse
  from tornado import ioloop
  from traitlets import Dict, Instance, List, Unicode
  from ..util import ensure_timezone, extract_dates
  from .dictdb import BaseDB
label_desc: Use image node_id 4 for calling the SQLiteDB obj's underlying member method code with example usage: obj._check_table() and returns: True, True, False, False