All pastes #147332 Raw Edit

Something

public text v1 · immutable
#147332 ·published 2006-08-24 09:21 UTC
rendered paste body
function nodereference_install() {
  switch ($GLOBALS['db_type']) {
    case 'mysql':
    case 'mysqli':
      // the {tablename} syntax is so multisite installs can add a prefix to
      // the table name as set in the settings.php file
      db_query("CREATE TABLE {my_table} (
          vid int unsigned autoincrement,
          field_name varchar(32) NOT NULL default '',
          delta int unsigned NOT NULL default '0',
          field_nid int unsigned NOT NULL default '0',
          PRIMARY KEY  (vid, field_name, delta),
          KEY (field_name)
        ) /*!40100 DEFAULT CHARACTER SET utf8 */;");
      break;
   
    case 'pgsql':
      db_query("CREATE TABLE {my_table} (
          vid serial CHECK (vid >= 0),
          field_name varchar(32) NOT NULL default '',
          delta integer NOT NULL default '0' CHECK (delta >= 0),
          field_nid integer NOT NULL default '0' CHECK (field_nid >= 0),
          PRIMARY KEY  (vid, field_name, delta)
        )");
      
      // pgsql requires keys and indexes to be defined separately. it is important
      // to name the index as {tablename}_fieldname_idx (with the trailing idx) so
      // update scripts can be written easily
      db_query("CREATE INDEX {my_table}_field_name_idx ON {my_table} (field_name)");
      break;
  }
}