You are here

function location_install in Location 5

Same name and namespace in other branches
  1. 5.3 location.install \location_install()
  2. 6.3 location.install \location_install()

File

./location.install, line 3

Code

function location_install() {
  drupal_set_message('Installing location');
  switch ($GLOBALS['db_type']) {
    case 'mysql':
    case 'mysqli':
      db_query("\n      CREATE TABLE {location} (\n        eid int unsigned NOT NULL default '0',\n        lid int unsigned NOT NULL default '0',\n        type varchar(6) NOT NULL default '',\n        name varchar(255) default NULL,\n        street varchar(255) default NULL,\n        additional varchar(255) default NULL,\n        city varchar(255) default NULL,\n        province varchar(16) default NULL,\n        postal_code varchar(16) default NULL,\n        country char(2) default NULL,\n        latitude decimal(10,6) default NULL,\n        longitude decimal(10,6) default NULL,\n        source tinyint default '0',\n        is_primary tinyint NOT NULL default '0',\n        PRIMARY KEY  (lid)\n      ) /*!40100 DEFAULT CHARACTER SET utf8 */;\n      ");
      db_query("\n      CREATE TABLE {zipcodes} (\n        zip varchar(16) NOT NULL default '0',\n        city varchar(30) NOT NULL default '',\n        state varchar(30) NOT NULL default '',\n        latitude decimal(10,6) NOT NULL default '0.000000',\n        longitude decimal(10,6) NOT NULL default '0.000000',\n        timezone tinyint NOT NULL default '0',\n        dst tinyint NOT NULL default '0',\n        country char(2) default '',\n        PRIMARY KEY (country, zip),\n        KEY pc (country, zip),\n        KEY zip (zip),\n        KEY latitude (latitude),\n        KEY longitude (longitude),\n        KEY country (country)\n      ) /*!40100 DEFAULT CHARACTER SET utf8 */;\n      ");
      $success = TRUE;
      break;
    case 'pgsql':
      db_query("CREATE TABLE {location} (\n        lid serial CHECK (lid >= 0),\n        eid int NOT NULL default '0' CHECK (eid >= 0),\n        type varchar(6) NOT NULL default '',\n        name varchar(255) default NULL,\n        street varchar(255) default NULL,\n        additional varchar(255) default NULL,\n        city varchar(255) default NULL,\n        province varchar(16) default NULL,\n        postal_code varchar(16) default NULL,\n        country char(2) default NULL,\n        latitude decimal(10,6) default NULL,\n        longitude decimal(10,6) default NULL,\n        source smallint default '0',\n        is_primary smallint default '0',\n        PRIMARY KEY (lid)\n      )");
      db_query("CREATE TABLE {zipcodes} (\n        zip varchar(16) NOT NULL default '0',\n        city varchar(30) NOT NULL default '',\n        state varchar(30) NOT NULL default '',\n        latitude decimal(10,6) NOT NULL default '0.000000',\n        longitude decimal(10,6) NOT NULL default '0.000000',\n        timezone smallint NOT NULL default '0',\n        dst smallint NOT NULL default '0',\n        country char(2) default '',\n        PRIMARY KEY (country, zip)\n      )");
      db_query("CREATE INDEX {zipcodes}_pc_idx ON {zipcodes} (country, zip)");
      db_query("CREATE INDEX {zipcodes}_zip_idx ON {zipcodes} (zip)");
      db_query("CREATE INDEX {zipcodes}_latitude_idx ON {zipcodes} (latitude)");
      db_query("CREATE INDEX {zipcodes}_longitude_idx ON {zipcodes} (longitude)");
      db_query("CREATE INDEX {zipcodes}_country_idx ON {zipcodes} (country)");
      $success = TRUE;
      break;
    default:
      break;
  }

  // End case
  if ($success) {
    drupal_set_message(t('Location module installed tables successfully. If you would also like a database of zip codes, please manually import the appropriate zipcode.XX.YYYY file(s) in the %module directory.', array(
      '%module' => drupal_get_path('module', 'location') . '/database',
    )));
  }
  else {
    drupal_set_message(t('The installation of Location module was unsuccessful.'), 'error');
  }
}