# File mysql-serialize.rb, line 184
  def sql_initdb (dbi)
    sql = "CREATE TABLE " << sql_quote_name("sql_ids") << " ("
    sql << sql_quote_name("id") << " INT NOT NULL PRIMARY KEY, "
    sql << sql_quote_name("class") << " VARCHAR(255) NOT NULL, "
    sql << sql_quote_name("refs") << " INT NOT NULL, "
    sql << "INDEX (" << sql_quote_name("id") << ")"
    sql << ") TYPE = InnoDB"
    dbi.do_more(sql)

    sql = "CREATE TABLE " << sql_quote_name("sql_meta") << " ("
    sql << sql_quote_name("id") << " BIGINT UNSIGNED"
    sql << ") TYPE = InnoDB"
    dbi.do_more(sql)

    dbi.do_more("INSERT INTO " << sql_quote_name("sql_meta") << " VALUES (0)")

    # trying to remove some redundant code...
    [["String", "LONGBLOB"], 
      ["Fixnum", "INT"], 
      ["Float", "DOUBLE"],
      ["Date", "DATE"],
      ["Time", "TIME"],
      ["Boolean", "BIT"],
      ["Bignum", "LONGTEXT"]].each { |class_type|

      classname, typename = class_type

      sql = "CREATE TABLE " << sql_quote_name(classname) << " ("
      sql << sql_quote_name("sql_assoc_id") << " INT NOT NULL, "
      sql << sql_quote_name("val") << " " << typename << " NOT NULL, "
      sql << "INDEX (" << sql_quote_name("sql_assoc_id") << "), "
      sql << "FOREIGN KEY (" << sql_quote_name("sql_assoc_id") << ") "
      sql << "REFERENCES " << sql_quote_name("sql_ids") << "("
      sql << sql_quote_name("id") << ") ON DELETE CASCADE"
      sql << ") TYPE = InnoDB"

      dbi.do_more(sql)
    }

    # built in classes that need special attention:
    # Exception
    sql = "CREATE TABLE " << sql_quote_name("Exception") << " ("
    sql << sql_quote_name("sql_assoc_id") << " INT NOT NULL, "
    sql << sql_quote_name("type") << " VARCHAR(255) NOT NULL, "
    sql << sql_quote_name("backtrace") << " LONGTEXT NOT NULL, "
    sql << "INDEX (" << sql_quote_name("sql_assoc_id") << "), "
    sql << "FOREIGN KEY (" << sql_quote_name("sql_assoc_id") << ") "
    sql << "REFERENCES " << sql_quote_name("sql_ids") << "("
    sql << sql_quote_name("id") << ") ON DELETE CASCADE"
    sql << ") TYPE = InnoDB"
    # File
    sql = "CREATE TABLE " << sql_quote_name("File") << " ("
    sql << sql_quote_name("sql_assoc_id") << " INT NOT NULL, "
    sql << sql_quote_name("path") << " LONGTEXT NOT NULL, "
    sql << sql_quote_name("pos") << " BIGINT NOT NULL, "
    sql << sql_quote_name("mode") << " CHAR(2) NOT NULL, "
    sql << "INDEX (" << sql_quote_name("sql_assoc_id") << "), "
    sql << "FOREIGN KEY (" << sql_quote_name("sql_assoc_id") << ") "
    sql << "REFERENCES " << sql_quote_name("sql_ids") << "("
    sql << sql_quote_name("id") << ") ON DELETE CASCADE"
    sql << ") TYPE = InnoDB"
  end