docs: def _create_sqlite_metatable(self):
          """
          SQLite doesn't come with any metatables (at least ones that fit into our
          framework), so we're going to create them.
          """
          sys.stderr.write("Indexing schema. This will take a second...")
          rows_to_insert = []
          tables = [row[0] for row in self.cur.execute("select name from sqlite_master where type='table';")]
          for table in tables:
              for row in self.cur.execute("pragma table_info('{0}')".format(table)):
                  rows_to_insert.append((table, row[1], row[2]))
          # find for table and column names
          self.cur.execute("drop table if exists tmp_dbpy_schema;")
          self.cur.execute("create temp table tmp_dbpy_schema(table_name varchar, column_name varchar, data_type varchar);")
          for row in rows_to_insert:
              self.cur.execute("insert into tmp_dbpy_schema(table_name, column_name, data_type) values('{0}', '{1}', '{2}');".format(*row))
          self.cur.execute("SELECT name, sql  FROM sqlite_master where sql like '%REFERENCES%';")
  
          # find for foreign keys
          self.cur.execute("drop table if exists tmp_dbpy_foreign_keys;")
          self.cur.execute("create temp table tmp_dbpy_foreign_keys(table_name varchar, column_name varchar, foreign_table varchar, foreign_column varchar);")
          foreign_keys = []
          self.cur.execute("SELECT name, sql  FROM sqlite_master ;")
          for (table_name, sql) in self.cur:
              rgx = "FOREIGN KEY \(\[(.*)\]\) REFERENCES \[(.*)\] \(\[(.*)\]\)"
              if sql is None:
                  continue
              for (column_name, foreign_table, foreign_key) in re.findall(rgx, sql):
                  foreign_keys.append((table_name, column_name, foreign_table, foreign_key))
          for row in foreign_keys:
              sql_insert = "insert into tmp_dbpy_foreign_keys(table_name, column_name, foreign_table, foreign_column) values('{0}', '{1}', '{2}', '{3}');"
              self.cur.execute(sql_insert.format(*row))
  
          self.con.commit()
          sys.stderr.write("finished!\n")