summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--includes/install.pgsql.inc134
-rw-r--r--modules/aggregator/aggregator.install52
-rw-r--r--modules/book/book.install14
-rw-r--r--modules/contact/contact.install15
-rw-r--r--modules/drupal/drupal.install26
-rw-r--r--modules/forum/forum.install13
-rw-r--r--modules/locale/locale.install31
-rw-r--r--modules/poll/poll.install28
-rw-r--r--modules/profile/profile.install30
-rw-r--r--modules/search/search.install29
-rw-r--r--modules/statistics/statistics.install18
-rw-r--r--modules/system/system.install386
12 files changed, 768 insertions, 8 deletions
diff --git a/includes/install.pgsql.inc b/includes/install.pgsql.inc
new file mode 100644
index 000000000..cc9da3998
--- /dev/null
+++ b/includes/install.pgsql.inc
@@ -0,0 +1,134 @@
+<?php
+// $Id$
+
+// PostgreSQL specific install functions
+
+/**
+ * Check if PostgreSQL is available.
+ *
+ * @return
+ * TRUE/FALSE
+ */
+function pgsql_is_available() {
+ return function_exists('pg_connect');
+}
+
+/**
+ * Check if we can connect to PostgreSQL.
+ *
+ * @return
+ * TRUE/FALSE
+ */
+function drupal_test_pgsql($url, &$success) {
+ if (!pgsql_is_available()) {
+ drupal_set_message('PHP PostgreSQL support not enabled.', 'error');
+ return FALSE;
+ }
+
+ $url = parse_url($url);
+
+ // Decode url-encoded information in the db connection string.
+ $url['user'] = urldecode($url['user']);
+ $url['pass'] = urldecode($url['pass']);
+ $url['host'] = urldecode($url['host']);
+ $url['path'] = urldecode($url['path']);
+
+ // Build pgsql connection string and allow for non-standard PostgreSQL port.
+ $conn_string = ' user='. $url['user'] .' dbname='. substr($url['path'], 1) .' password='. $url['pass'] . ' host=' . $url['host'];
+ $conn_string .= isset($url['port']) ? ' port=' . $url['port'] : '';
+
+ // Test connecting to the database.
+ $connection = @pg_connect($conn_string);
+ if (!$connection) {
+ drupal_set_message(st('Failure to connect to your PostgreSQL database server. PostgreSQL reports the following message: %error.<ul><li>Are you sure you have the correct username and password?</li><li>Are you sure that you have typed the correct database hostname?</li><li>Are you sure that the database server is running?</li><li>Are you sure you typed the correct database name?</li></ul>For more help, see the <a href="http://drupal.org/node/258">Installation and upgrading handbook</a>. If you are unsure what these terms mean you should probably contact your hosting provider.', array('%error' => 'Connection failed. See log file for failure reason')), 'error');
+ return FALSE;
+ }
+
+ $success = array('CONNECT');
+
+ // Test CREATE.
+ $query = 'CREATE TABLE drupal_install_test (id integer NOT NULL)';
+ $result = pg_query($connection, $query);
+ if ($error = pg_result_error($result)) {
+ drupal_set_message(st('We were unable to create a test table on your PostgreSQL database server with the command %query. PostgreSQL reports the following message: %error.<ul><li>Are you sure the configured username has the necessary PostgreSQL permissions to create tables in the database?</li></ul>For more help, see the <a href="http://drupal.org/node/258">Installation and upgrading handbook</a>. If you are unsure what these terms mean you should probably contact your hosting provider.', array('%query' => $query, '%error' => $error)), 'error');
+ return FALSE;
+ }
+ $err = FALSE;
+ $success[] = 'SELECT';
+ $success[] = 'CREATE';
+
+ // Test INSERT.
+ $query = 'INSERT INTO drupal_install_test (id) VALUES (1)';
+ $result = pg_query($connection, $query);
+ if ($error = pg_result_error($result)) {
+ drupal_set_message(st('We were unable to insert a value into a test table on your PostgreSQL database server. We tried inserting a value with the command %query and PostgreSQL reported the following error: %error.', array('%query' => $query, '%error' => $error)), 'error');
+ $err = TRUE;
+ }
+ else {
+ $success[] = 'INSERT';
+ }
+
+ // Test UPDATE.
+ $query = 'UPDATE drupal_install_test SET id = 2';
+ $result = pg_query($connection, $query);
+ if ($error = pg_result_error($result)) {
+ drupal_set_message(st('We were unable to update a value in a test table on your PostgreSQL database server. We tried updating a value with the command %query and PostgreSQL reported the following error: %error.', array('%query' => $query, '%error' => $error)), 'error');
+ $err = TRUE;
+ }
+ else {
+ $success[] = 'UPDATE';
+ }
+
+ // Test LOCK.
+ $query = 'BEGIN; LOCK drupal_install_test IN SHARE ROW EXCLUSIVE MODE';
+ $result = pg_query($connection, $query);
+ if ($error = pg_result_error($result)) {
+ drupal_set_message(st('We were unable to lock a test table on your PostgreSQL database server. We tried locking a table with the command %query and PostgreSQL reported the following error: %error.', array('%query' => $query, '%error' => $error)), 'error');
+ $err = TRUE;
+ }
+ else {
+ $success[] = 'LOCK';
+ }
+
+ // Test UNLOCK, which is done automatically upon transaction end in PostgreSQL
+ $query = 'COMMIT';
+ $result = pg_query($connection, $query);
+ if ($error = pg_result_error()) {
+ drupal_set_message(st('We were unable to unlock a test table on your PostgreSQL database server. We tried unlocking a table with the command %query and PostgreSQL reported the following error: %error.', array('%query' => $query, '%error' => $error)), 'error');
+ $err = TRUE;
+ }
+ else {
+ $success[] = 'UNLOCK';
+ }
+
+ // Test DELETE.
+ $query = 'DELETE FROM drupal_install_test';
+ $result = pg_query($connection, $query);
+ if ($error = pg_result_error()) {
+ drupal_set_message(st('We were unable to delete a value from a test table on your PostgreSQL database server. We tried deleting a value with the command %query and PostgreSQL reported the following error: %error.', array('%query' => $query, '%error' => $error)), 'error');
+ $err = TRUE;
+ }
+ else {
+ $success[] = 'DELETE';
+ }
+
+ // Test DROP.
+ $query = 'DROP TABLE drupal_install_test';
+ $result = pg_query($connection, $query);
+ if ($error = pg_result_error()) {
+ drupal_set_message(st('We were unable to drop a test table from your PostgreSQL database server. We tried dropping a table with the command %query and PostgreSQL reported the following error %error.', array('%query' => $query, '%error' => $error)), 'error');
+ $err = TRUE;
+ }
+ else {
+ $success[] = 'DROP';
+ }
+
+ if ($err) {
+ return FALSE;
+ }
+
+ pg_close($connection);
+ return TRUE;
+}
+
+?>
diff --git a/modules/aggregator/aggregator.install b/modules/aggregator/aggregator.install
index 9c9b52f1a..5d042cc02 100644
--- a/modules/aggregator/aggregator.install
+++ b/modules/aggregator/aggregator.install
@@ -56,5 +56,57 @@ function aggregator_install() {
) /*!40100 DEFAULT CHARACTER SET UTF8 */ ");
break;
+ case 'pgsql':
+ db_query("CREATE TABLE {aggregator_category} (
+ cid serial,
+ title varchar(255) NOT NULL default '',
+ description text NOT NULL,
+ block smallint NOT NULL default '0',
+ PRIMARY KEY (cid),
+ UNIQUE (title)
+ )");
+
+ db_query("CREATE TABLE {aggregator_category_feed} (
+ fid int NOT NULL default '0',
+ cid int NOT NULL default '0',
+ PRIMARY KEY (fid,cid)
+ )");
+
+ db_query("CREATE TABLE {aggregator_category_item} (
+ iid int NOT NULL default '0',
+ cid int NOT NULL default '0',
+ PRIMARY KEY (iid,cid)
+ )");
+
+ db_query("CREATE TABLE {aggregator_feed} (
+ fid serial,
+ title varchar(255) NOT NULL default '',
+ url varchar(255) NOT NULL default '',
+ refresh int NOT NULL default '0',
+ checked int NOT NULL default '0',
+ link varchar(255) NOT NULL default '',
+ description text NOT NULL,
+ image text NOT NULL,
+ etag varchar(255) NOT NULL default '',
+ modified int NOT NULL default '0',
+ block smallint NOT NULL default '0',
+ PRIMARY KEY (fid),
+ UNIQUE (url),
+ UNIQUE (title)
+ )");
+
+ db_query("CREATE TABLE {aggregator_item} (
+ iid serial,
+ fid int NOT NULL default '0',
+ title varchar(255) NOT NULL default '',
+ link varchar(255) NOT NULL default '',
+ author varchar(255) NOT NULL default '',
+ description text NOT NULL,
+ timestamp int default NULL,
+ guid varchar(255),
+ PRIMARY KEY (iid)
+ )");
+
+ break;
}
}
diff --git a/modules/book/book.install b/modules/book/book.install
index cfc297555..377d219ad 100644
--- a/modules/book/book.install
+++ b/modules/book/book.install
@@ -14,5 +14,17 @@ function book_install() {
KEY nid (nid),
KEY parent (parent)
) /*!40100 DEFAULT CHARACTER SET UTF8 */ ");
+ break;
+ case 'pgsql':
+ db_query("CREATE TABLE {book} (
+ vid uint NOT NULL default '0',
+ nid uint NOT NULL default '0',
+ parent int NOT NULL default '0',
+ weight smallint NOT NULL default '0',
+ PRIMARY KEY (vid)
+ )");
+ db_query("CREATE INDEX {book}_nid_idx ON {book} (nid)");
+ db_query("CREATE INDEX {book}_parent_idx ON {book} (parent)");
+ break;
}
-} \ No newline at end of file
+}
diff --git a/modules/contact/contact.install b/modules/contact/contact.install
index 14e3c737d..608167631 100644
--- a/modules/contact/contact.install
+++ b/modules/contact/contact.install
@@ -15,5 +15,18 @@ function contact_install() {
PRIMARY KEY (cid),
UNIQUE KEY category (category)
) /*!40100 DEFAULT CHARACTER SET UTF8 */ ");
+ break;
+ case 'pgsql':
+ db_query("CREATE TABLE {contact} (
+ cid serial CHECK (cid >= 0),
+ category varchar(255) NOT NULL default '',
+ recipients text NOT NULL default '',
+ reply text NOT NULL default '',
+ weight smallint NOT NULL default '0',
+ selected smallint NOT NULL default '0',
+ PRIMARY KEY (cid),
+ UNIQUE (category)
+ )");
+ break;
}
-} \ No newline at end of file
+}
diff --git a/modules/drupal/drupal.install b/modules/drupal/drupal.install
index b1b418571..50012e145 100644
--- a/modules/drupal/drupal.install
+++ b/modules/drupal/drupal.install
@@ -26,5 +26,29 @@ function drupal_install() {
type varchar(255) NOT NULL default '',
PRIMARY KEY (cid,name)
) /*!40100 DEFAULT CHARACTER SET UTF8 */ ");
+ break;
+ case 'pgsql':
+ db_query("CREATE TABLE {client} (
+ cid serial CHECK (cid >= 0),
+ link varchar(255) NOT NULL default '',
+ name varchar(128) NOT NULL default '',
+ mail varchar(128) NOT NULL default '',
+ slogan text NOT NULL,
+ mission text NOT NULL,
+ users int NOT NULL default '0',
+ nodes int NOT NULL default '0',
+ version varchar(35) NOT NULL default'',
+ created int NOT NULL default '0',
+ changed int NOT NULL default '0',
+ PRIMARY KEY (cid)
+ )");
+
+ db_query("CREATE TABLE {client_system} (
+ cid int NOT NULL default '0',
+ name varchar(255) NOT NULL default '',
+ type varchar(255) NOT NULL default '',
+ PRIMARY KEY (cid,name)
+ )");
+ break;
}
-} \ No newline at end of file
+}
diff --git a/modules/forum/forum.install b/modules/forum/forum.install
index 9d7d80c21..c11eee108 100644
--- a/modules/forum/forum.install
+++ b/modules/forum/forum.install
@@ -13,5 +13,16 @@ function forum_install() {
KEY nid (nid),
KEY tid (tid)
) /*!40100 DEFAULT CHARACTER SET UTF8 */ ");
+ break;
+ case 'pgsql':
+ db_query("CREATE TABLE {forum} (
+ nid uint NOT NULL default '0',
+ vid uint NOT NULL default '0',
+ tid uint NOT NULL default '0',
+ PRIMARY KEY (vid)
+ )");
+ db_query("CREATE INDEX {forum}_nid_idx ON {forum} (nid)");
+ db_query("CREATE INDEX {forum}_tid_idx ON {forum} (tid)");
+ break;
}
-} \ No newline at end of file
+}
diff --git a/modules/locale/locale.install b/modules/locale/locale.install
index 08bcbc5bc..99192be0d 100644
--- a/modules/locale/locale.install
+++ b/modules/locale/locale.install
@@ -33,6 +33,37 @@ function locale_install() {
KEY plid (plid),
KEY plural (plural)
) /*!40100 DEFAULT CHARACTER SET UTF8 */ ");
+ break;
+ case 'pgsql':
+ db_query("CREATE TABLE {locales_meta} (
+ locale varchar(12) NOT NULL default '',
+ name varchar(64) NOT NULL default '',
+ enabled int NOT NULL default '0',
+ isdefault int NOT NULL default '0',
+ plurals int NOT NULL default '0',
+ formula varchar(128) NOT NULL default '',
+ PRIMARY KEY (locale)
+ )");
+
+ db_query("CREATE TABLE {locales_source} (
+ lid serial,
+ location varchar(255) NOT NULL default '',
+ source bytea NOT NULL,
+ PRIMARY KEY (lid)
+ )");
+
+ db_query("CREATE TABLE {locales_target} (
+ lid int NOT NULL default '0',
+ translation bytea NOT NULL,
+ locale varchar(12) NOT NULL default '',
+ plid int NOT NULL default '0',
+ plural int NOT NULL default '0'
+ )");
+ db_query("CREATE INDEX {locales_target}_lid_idx ON {locales_target} (lid)");
+ db_query("CREATE INDEX {locales_target}_locale_idx ON {locales_target} (locale)");
+ db_query("CREATE INDEX {locales_target}_plid_idx ON {locales_target} (plid)");
+ db_query("CREATE INDEX {locales_target}_plural_idx ON {locales_target} (plural)");
+ break;
}
db_query("INSERT INTO {locales_meta} (locale, name, enabled, isdefault) VALUES ('en', 'English', '1', '1')");
}
diff --git a/modules/poll/poll.install b/modules/poll/poll.install
index 8c8feaef8..f05958cca 100644
--- a/modules/poll/poll.install
+++ b/modules/poll/poll.install
@@ -31,5 +31,33 @@ function poll_install() {
PRIMARY KEY (chid),
KEY nid (nid)
) /*!40100 DEFAULT CHARACTER SET UTF8 */ ");
+ case 'pgsql':
+ db_query("CREATE TABLE {poll} (
+ nid uint NOT NULL default '0',
+ runtime int NOT NULL default '0',
+ active uint NOT NULL default '0',
+ PRIMARY KEY (nid)
+ )");
+
+ db_query("CREATE TABLE {poll_votes} (
+ nid uint NOT NULL,
+ uid uint NOT NULL default 0,
+ chorder int NOT NULL default -1,
+ hostname varchar(128) NOT NULL default ''
+ )");
+ db_query("CREATE INDEX {poll_votes}_nid_idx ON {poll_votes} (nid)");
+ db_query("CREATE INDEX {poll_votes}_uid_idx ON {poll_votes} (uid)");
+ db_query("CREATE INDEX {poll_votes}_hostname_idx ON {poll_votes} (hostname)");
+
+ db_query("CREATE TABLE {poll_choices} (
+ chid serial CHECK (chid >= 0),
+ nid uint NOT NULL default '0',
+ chtext varchar(128) NOT NULL default '',
+ chvotes int NOT NULL default '0',
+ chorder int NOT NULL default '0',
+ PRIMARY KEY (chid)
+ )");
+ db_query("CREATE INDEX {poll_choices}_nid_idx ON {poll_choices} (nid)");
+ break;
}
}
diff --git a/modules/profile/profile.install b/modules/profile/profile.install
index 2aa4e46cb..555c0f109 100644
--- a/modules/profile/profile.install
+++ b/modules/profile/profile.install
@@ -31,5 +31,33 @@ function profile_install() {
KEY uid (uid),
KEY fid (fid)
) /*!40100 DEFAULT CHARACTER SET UTF8 */ ");
+ case 'pgsql':
+ db_query("CREATE TABLE {profile_fields} (
+ fid serial,
+ title varchar(255) default NULL,
+ name varchar(128) default NULL,
+ explanation TEXT default NULL,
+ category varchar(255) default NULL,
+ page varchar(255) default NULL,
+ type varchar(128) default NULL,
+ weight smallint DEFAULT '0' NOT NULL,
+ required smallint DEFAULT '0' NOT NULL,
+ register smallint DEFAULT '0' NOT NULL,
+ visibility smallint DEFAULT '0' NOT NULL,
+ autocomplete smallint DEFAULT '0' NOT NULL,
+ options text,
+ UNIQUE (name),
+ PRIMARY KEY (fid)
+ )");
+ db_query("CREATE INDEX {profile_fields}_category_idx ON {profile_fields} (category)");
+
+ db_query("CREATE TABLE {profile_values} (
+ fid uint default '0',
+ uid uint default '0',
+ value text
+ )");
+ db_query("CREATE INDEX {profile_values}_uid_idx ON {profile_values} (uid)");
+ db_query("CREATE INDEX {profile_values}_fid_idx ON {profile_values} (fid)");
+ break;
}
-} \ No newline at end of file
+}
diff --git a/modules/search/search.install b/modules/search/search.install
index d6ab2fb2b..eddde85d4 100644
--- a/modules/search/search.install
+++ b/modules/search/search.install
@@ -29,5 +29,32 @@ function search_install() {
count float default NULL,
PRIMARY KEY (word)
) /*!40100 DEFAULT CHARACTER SET UTF8 */ ");
+ break;
+ case 'pgsql':
+ db_query("CREATE TABLE {search_dataset} (
+ sid uint NOT NULL default '0',
+ type varchar(16) default NULL,
+ data text NOT NULL
+ )");
+ db_query("CREATE INDEX {search_dataset}_sid_type_idx ON {search_dataset} (sid, type)");
+
+ db_query("CREATE TABLE {search_index} (
+ word varchar(50) NOT NULL default '',
+ sid uint NOT NULL default '0',
+ type varchar(16) default NULL,
+ fromsid uint NOT NULL default '0',
+ fromtype varchar(16) default NULL,
+ score float default NULL
+ )");
+ db_query("CREATE INDEX {search_index}_sid_type_idx ON {search_index} (sid, type)");
+ db_query("CREATE INDEX {search_index}_from_sid_type_idx ON {search_index} (fromsid, fromtype)");
+ db_query("CREATE INDEX {search_index}_word_idx ON {search_index} (word)");
+
+ db_query("CREATE TABLE {search_total} (
+ word varchar(50) NOT NULL default '',
+ count float default NULL,
+ PRIMARY KEY (word)
+ )");
+ break;
}
-} \ No newline at end of file
+}
diff --git a/modules/statistics/statistics.install b/modules/statistics/statistics.install
index 2d4899300..2517d8819 100644
--- a/modules/statistics/statistics.install
+++ b/modules/statistics/statistics.install
@@ -18,5 +18,21 @@ function statistics_install() {
KEY accesslog_timestamp (timestamp),
PRIMARY KEY (aid)
) /*!40100 DEFAULT CHARACTER SET UTF8 */ ");
+ break;
+ case 'pgsql':
+ db_query("CREATE TABLE {accesslog} (
+ aid serial,
+ sid varchar(32) NOT NULL default '',
+ title varchar(255) default NULL,
+ path varchar(255) default NULL,
+ url varchar(255) default NULL,
+ hostname varchar(128) default NULL,
+ uid uint default '0',
+ timer uint NOT NULL default '0',
+ timestamp uint NOT NULL default '0',
+ PRIMARY KEY (aid)
+ )");
+ db_query("CREATE INDEX {accesslog}_accesslog_timestamp_idx ON {accesslog} (timestamp)");
+ break;
}
-} \ No newline at end of file
+}
diff --git a/modules/system/system.install b/modules/system/system.install
index ba23868f1..7ff587f53 100644
--- a/modules/system/system.install
+++ b/modules/system/system.install
@@ -384,9 +384,393 @@ function system_install() {
break;
case 'pgsql':
- break;
+ /* create unsigned types */
+ db_query("CREATE DOMAIN uint integer CHECK (VALUE >= 0)");
+ db_query("CREATE DOMAIN smalluint smallint CHECK (VALUE >= 0)");
+ db_query("CREATE DOMAIN biguint bigint CHECK (VALUE >= 0)");
+
+ db_query("CREATE TABLE {access} (
+ aid serial,
+ mask varchar(255) NOT NULL default '',
+ type varchar(255) NOT NULL default '',
+ status smallint NOT NULL default '0',
+ PRIMARY KEY (aid)
+ )");
+
+ db_query("CREATE TABLE {authmap} (
+ aid serial CHECK (aid >= 0),
+ uid int NOT NULL default '0',
+ authname varchar(128) NOT NULL default '',
+ module varchar(128) NOT NULL default '',
+ PRIMARY KEY (aid),
+ UNIQUE (authname)
+ )");
+ db_query("CREATE TABLE {blocks} (
+ module varchar(64) DEFAULT '' NOT NULL,
+ delta varchar(32) NOT NULL default '0',
+ theme varchar(255) NOT NULL default '',
+ status smallint DEFAULT '0' NOT NULL,
+ weight smallint DEFAULT '0' NOT NULL,
+ region varchar(64) DEFAULT 'left' NOT NULL,
+ custom smallint DEFAULT '0' NOT NULL,
+ throttle smallint DEFAULT '0' NOT NULL,
+ visibility smallint DEFAULT '0' NOT NULL,
+ pages text DEFAULT '' NOT NULL
+ )");
+
+ db_query("CREATE TABLE {boxes} (
+ bid serial,
+ title varchar(64) NOT NULL default '',
+ body text,
+ info varchar(128) NOT NULL default '',
+ format smallint NOT NULL default '0',
+ PRIMARY KEY (bid),
+ UNIQUE (info)
+ )");
+
+ db_query("CREATE TABLE {cache} (
+ cid varchar(255) NOT NULL default '',
+ data bytea,
+ expire int NOT NULL default '0',
+ created int NOT NULL default '0',
+ headers text,
+ PRIMARY KEY (cid)
+ )");
+ db_query("CREATE INDEX {cache}_expire_idx ON {cache} (expire)");
+
+ db_query("CREATE TABLE {comments} (
+ cid serial,
+ pid int NOT NULL default '0',
+ nid int NOT NULL default '0',
+ uid int NOT NULL default '0',
+ subject varchar(64) NOT NULL default '',
+ comment text NOT NULL,
+ hostname varchar(128) NOT NULL default '',
+ timestamp int NOT NULL default '0',
+ score int NOT NULL default '0',
+ status smalluint NOT NULL default '0',
+ format smallint NOT NULL default '0',
+ thread varchar(255) NOT NULL,
+ users text,
+ name varchar(60) default NULL,
+ mail varchar(64) default NULL,
+ homepage varchar(255) default NULL,
+ PRIMARY KEY (cid)
+ )");
+ db_query("CREATE INDEX {comments}_nid_idx ON {comments} (nid)");
+
+ db_query("CREATE TABLE {node_comment_statistics} (
+ nid serial CHECK (nid >= 0),
+ last_comment_timestamp int NOT NULL default '0',
+ last_comment_name varchar(60) default NULL,
+ last_comment_uid int NOT NULL default '0',
+ comment_count uint NOT NULL default '0',
+ PRIMARY KEY (nid)
+ )");
+ db_query("CREATE INDEX {node_comment_statistics}_node_comment_timestamp_idx ON {node_comment_statistics} (last_comment_timestamp)");
+
+ db_query("CREATE TABLE {files} (
+ fid uint NOT NULL default 0,
+ nid uint NOT NULL default 0,
+ filename varchar(255) NOT NULL default '',
+ filepath varchar(255) NOT NULL default '',
+ filemime varchar(255) NOT NULL default '',
+ filesize uint NOT NULL default 0,
+ PRIMARY KEY (fid)
+ )");
+
+ db_query("CREATE TABLE {file_revisions} (
+ fid uint NOT NULL default 0,
+ vid uint NOT NULL default 0,
+ description varchar(255) NOT NULL default '',
+ list smalluint NOT NULL default 0,
+ PRIMARY KEY (fid, vid)
+ )");
+
+ db_query("CREATE TABLE {filter_formats} (
+ format serial,
+ name varchar(255) NOT NULL default '',
+ roles varchar(255) NOT NULL default '',
+ cache smallint NOT NULL default '0',
+ PRIMARY KEY (format),
+ UNIQUE (name)
+ )");
+
+ db_query("CREATE TABLE {filters} (
+ format int NOT NULL default '0',
+ module varchar(64) NOT NULL default '',
+ delta smallint DEFAULT '0' NOT NULL,
+ weight smallint DEFAULT '0' NOT NULL
+ )");
+ db_query("CREATE INDEX {filters}_weight_idx ON {filters} (weight)");
+
+ db_query("CREATE TABLE {flood} (
+ event varchar(64) NOT NULL default '',
+ hostname varchar(128) NOT NULL default '',
+ timestamp int NOT NULL default '0'
+ )");
+
+ db_query("CREATE TABLE {history} (
+ uid int NOT NULL default '0',
+ nid int NOT NULL default '0',
+ timestamp int NOT NULL default '0',
+ PRIMARY KEY (uid,nid)
+ )");
+
+ db_query("CREATE TABLE {menu} (
+ mid serial CHECK (mid >= 0),
+ pid uint NOT NULL default '0',
+ path varchar(255) NOT NULL default '',
+ title varchar(255) NOT NULL default '',
+ description varchar(255) NOT NULL default '',
+ weight smallint NOT NULL default '0',
+ type uint NOT NULL default '0',
+ PRIMARY KEY (mid)
+ )");
+ db_query("ALTER SEQUENCE {menu}_mid_seq MINVALUE 2 RESTART 2");
+
+ db_query("CREATE TABLE {node} (
+ nid serial CHECK (nid >= 0),
+ vid uint NOT NULL default '0',
+ type varchar(32) NOT NULL default '',
+ title varchar(128) NOT NULL default '',
+ uid int NOT NULL default '0',
+ status int NOT NULL default '1',
+ created int NOT NULL default '0',
+ changed int NOT NULL default '0',
+ comment int NOT NULL default '0',
+ promote int NOT NULL default '0',
+ moderate int NOT NULL default '0',
+ sticky int NOT NULL default '0',
+ PRIMARY KEY (nid, vid),
+ UNIQUE (vid)
+ )");
+ db_query("CREATE INDEX {node}_node_type_idx ON {node} (substr (type, 1, 4))");
+ db_query("CREATE INDEX {node}_node_title_type_idx ON {node} (title, substr(type, 1, 4))");
+ db_query("CREATE INDEX {node}_status_idx ON {node} (status)");
+ db_query("CREATE INDEX {node}_uid_idx ON {node} (uid)");
+ db_query("CREATE INDEX {node}_node_moderate_idx ON {node} (moderate)");
+ db_query("CREATE INDEX {node}_node_promote_status_idx ON {node} (promote, status)");
+ db_query("CREATE INDEX {node}_node_created_idx ON {node} (created)");
+ db_query("CREATE INDEX {node}_node_changed_idx ON {node} (changed)");
+ db_query("CREATE INDEX {node}_node_status_type_idx ON {node} (status, type, nid)");
+ db_query("CREATE INDEX {node}_nid_idx ON {node} (nid)");
+
+ db_query("CREATE TABLE {node_access} (
+ nid uint NOT NULL default '0',
+ gid uint NOT NULL default '0',
+ realm varchar(255) NOT NULL default '',
+ grant_view smalluint NOT NULL default '0',
+ grant_update smalluint NOT NULL default '0',
+ grant_delete smalluint NOT NULL default '0',
+ PRIMARY KEY (nid,gid,realm)
+ )");
+
+ db_query("CREATE TABLE {node_revisions} (
+ nid uint NOT NULL,
+ vid uint NOT NULL,
+ uid int NOT NULL default '0',
+ title varchar(128) NOT NULL default '',
+ body text NOT NULL default '',
+ teaser text NOT NULL default '',
+ log text NOT NULL default '',
+ timestamp int NOT NULL default '0',
+ format int NOT NULL default '0',
+ PRIMARY KEY (vid)
+ )");
+ db_query("CREATE INDEX {node_revisions}_nid_idx ON {node_revisions} (nid)");
+ db_query("CREATE INDEX {node_revisions}_uid_idx ON {node_revisions} (uid)");
+ db_query("CREATE SEQUENCE {node_revisions}_vid_seq INCREMENT 1 START 1");
+
+ db_query("CREATE TABLE {url_alias} (
+ pid serial CHECK (pid >= 0),
+ src varchar(128) NOT NULL default '',
+ dst varchar(128) NOT NULL default '',
+ PRIMARY KEY (pid),
+ UNIQUE (dst)
+ )");
+ db_query("CREATE INDEX {url_alias}_src_idx ON {url_alias} (src)");
+
+ db_query("CREATE TABLE {permission} (
+ rid uint NOT NULL default '0',
+ perm text,
+ tid uint NOT NULL default '0'
+ )");
+ db_query("CREATE INDEX {permission}_rid_idx ON {permission} (rid)");
+
+ db_query("CREATE TABLE {role} (
+ rid serial CHECK (rid >= 0),
+ name varchar(32) NOT NULL default '',
+ PRIMARY KEY (rid),
+ UNIQUE (name)
+ )");
+
+ db_query("CREATE TABLE {blocks_roles} (
+ module varchar(64) NOT NULL,
+ delta varchar(32) NOT NULL,
+ rid uint NOT NULL,
+ PRIMARY KEY (module, delta, rid)
+ )");
+
+ db_query("CREATE TABLE {sessions} (
+ uid uint NOT NULL,
+ sid varchar(32) NOT NULL default '',
+ hostname varchar(128) NOT NULL default '',
+ timestamp int NOT NULL default '0',
+ cache int NOT NULL default '0',
+ session text,
+ PRIMARY KEY (sid)
+ )");
+ db_query("CREATE INDEX {sessions}_uid_idx ON {sessions} (uid)");
+ db_query("CREATE INDEX {sessions}_timestamp_idx ON {sessions} (timestamp)");
+
+/* Only used for MySQL
+ db_query("CREATE TABLE {sequences} (
+ name varchar(255) NOT NULL default '',
+ id uint NOT NULL default '0',
+ PRIMARY KEY (name)
+ )"); */
+
+ db_query("CREATE TABLE {node_counter} (
+ nid int NOT NULL default '0',
+ totalcount biguint NOT NULL default '0',
+ daycount uint NOT NULL default '0',
+ timestamp uint NOT NULL default '0',
+ PRIMARY KEY (nid)
+ )");
+ db_query("CREATE INDEX {node_counter}_totalcount_idx ON {node_counter} (totalcount)");
+ db_query("CREATE INDEX {node_counter}_daycount_idx ON {node_counter} (daycount)");
+ db_query("CREATE INDEX {node_counter}_timestamp_idx ON {node_counter} (timestamp)");
+
+ db_query("CREATE TABLE {system} (
+ filename varchar(255) NOT NULL default '',
+ name varchar(255) NOT NULL default '',
+ type varchar(255) NOT NULL default '',
+ description varchar(255) NOT NULL default '',
+ status int NOT NULL default '0',
+ throttle smallint DEFAULT '0' NOT NULL,
+ bootstrap int NOT NULL default '0',
+ schema_version smallint NOT NULL default -1,
+ weight int NOT NULL default '0',
+ PRIMARY KEY (filename)
+ )");
+ db_query("CREATE INDEX {system}_weight_idx ON {system} (weight)");
+
+ db_query("CREATE TABLE {term_data} (
+ tid serial CHECK (tid >= 0),
+ vid uint NOT NULL default '0',
+ name varchar(255) NOT NULL default '',
+ description text,
+ weight smallint NOT NULL default '0',
+ PRIMARY KEY (tid)
+ )");
+ db_query("CREATE INDEX {term_data}_vid_idx ON {term_data} (vid)");
+
+ db_query("CREATE TABLE {term_hierarchy} (
+ tid uint NOT NULL default '0',
+ parent uint NOT NULL default '0',
+ PRIMARY KEY (tid, parent)
+ )");
+ db_query("CREATE INDEX {term_hierarchy}_tid_idx ON {term_hierarchy} (tid)");
+ db_query("CREATE INDEX {term_hierarchy}_parent_idx ON {term_hierarchy} (parent)");
+
+ db_query("CREATE TABLE {term_node} (
+ nid uint NOT NULL default '0',
+ tid uint NOT NULL default '0',
+ PRIMARY KEY (tid,nid)
+ )");
+ db_query("CREATE INDEX {term_node}_nid_idx ON {term_node} (nid)");
+ db_query("CREATE INDEX {term_node}_tid_idx ON {term_node} (tid)");
+
+ db_query("CREATE TABLE {term_relation} (
+ tid1 uint NOT NULL default '0',
+ tid2 uint NOT NULL default '0'
+ )");
+ db_query("CREATE INDEX {term_relation}_tid1_idx ON {term_relation} (tid1)");
+ db_query("CREATE INDEX {term_relation}_tid2_idx ON {term_relation} (tid2)");
+
+ db_query("CREATE TABLE {term_synonym} (
+ tid uint NOT NULL default '0',
+ name varchar(255) NOT NULL default ''
+ )");
+ db_query("CREATE INDEX {term_synonym}_tid_idx ON {term_synonym} (tid)");
+ db_query("CREATE INDEX {term_synonym}_name_idx ON {term_synonym} (substr(name, 1, 3))");
+
+ db_query("CREATE TABLE {users} (
+ uid uint NOT NULL default '0',
+ name varchar(60) NOT NULL default '',
+ pass varchar(32) NOT NULL default '',
+ mail varchar(64) default '',
+ mode smallint NOT NULL default '0',
+ sort smallint default '0',
+ threshold smallint default '0',
+ theme varchar(255) NOT NULL default '',
+ signature varchar(255) NOT NULL default '',
+ created int NOT NULL default '0',
+ access int NOT NULL default '0',
+ login int NOT NULL default '0',
+ status smallint NOT NULL default '0',
+ timezone varchar(8) default NULL,
+ language varchar(12) NOT NULL default '',
+ picture varchar(255) NOT NULL DEFAULT '',
+ init varchar(64) default '',
+ data text,
+ PRIMARY KEY (uid),
+ UNIQUE (name)
+ )");
+ db_query("CREATE INDEX {users}_access_idx ON {users} (access)");
+ db_query("CREATE SEQUENCE {users}_uid_seq INCREMENT 1 START 1");
+
+ db_query("CREATE TABLE {users_roles} (
+ uid uint NOT NULL default '0',
+ rid uint NOT NULL default '0',
+ PRIMARY KEY (uid, rid)
+ )");
+
+ db_query("CREATE TABLE {variable} (
+ name varchar(48) NOT NULL default '',
+ value text NOT NULL,
+ PRIMARY KEY (name)
+ )");
+
+ db_query("CREATE TABLE {vocabulary} (
+ vid serial CHECK (vid >= 0),
+ name varchar(255) NOT NULL default '',
+ description text,
+ help varchar(255) NOT NULL default '',
+ relations smalluint NOT NULL default '0',
+ hierarchy smalluint NOT NULL default '0',
+ multiple smalluint NOT NULL default '0',
+ required smalluint NOT NULL default '0',
+ tags smalluint NOT NULL default '0',
+ module varchar(255) NOT NULL default '',
+ weight smallint NOT NULL default '0',
+ PRIMARY KEY (vid)
+ )");
+
+ db_query("CREATE TABLE {vocabulary_node_types} (
+ vid uint NOT NULL DEFAULT '0',
+ type varchar(32) NOT NULL DEFAULT '',
+ PRIMARY KEY (vid, type)
+ )");
+
+ db_query("CREATE TABLE {watchdog} (
+ wid serial,
+ uid int NOT NULL default '0',
+ type varchar(16) NOT NULL default '',
+ message text NOT NULL,
+ severity smalluint NOT NULL default '0',
+ link varchar(255) NOT NULL default '',
+ location varchar(128) NOT NULL default '',
+ referer varchar(128) NOT NULL default '',
+ hostname varchar(128) NOT NULL default '',
+ timestamp int NOT NULL default '0',
+ PRIMARY KEY (wid)
+ )");
+ break;
}
+
db_query("INSERT INTO {system} (filename, name, type, description, status, throttle, bootstrap, schema_version) VALUES ('themes/engines/phptemplate/phptemplate.engine', 'phptemplate', 'theme_engine', '', 1, 0, 0, 0)");
db_query("INSERT INTO {system} (filename, name, type, description, status, throttle, bootstrap, schema_version) VALUES ('themes/bluemarine/page.tpl.php', 'bluemarine', 'theme', 'themes/engines/phptemplate/phptemplate.engine', 1, 0, 0, 0)");