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; } }