From ea8cfd18a5628ede50617ef628244d7adf23e17b Mon Sep 17 00:00:00 2001 From: Dries Buytaert <dries@buytaert.net> Date: Tue, 8 Nov 2005 12:02:23 +0000 Subject: [PATCH] - Patch #27140 by Cvbge: PostgreSQL updates/fixes. --- database/database.pgsql | 2 +- database/updates.inc | 43 ++++++++++++++++++++++------------------- 2 files changed, 24 insertions(+), 21 deletions(-) diff --git a/database/database.pgsql b/database/database.pgsql index ba43d9cd978e..eed12dba0563 100644 --- a/database/database.pgsql +++ b/database/database.pgsql @@ -199,7 +199,7 @@ CREATE INDEX comments_nid_idx ON comments(nid); -- CREATE TABLE contact ( - cid int NOT NULL, + cid SERIAL, category varchar(255) NOT NULL default '', recipients text NOT NULL default '', reply text NOT NULL default '', diff --git a/database/updates.inc b/database/updates.inc index 5f6aaef9408e..ec6faf022b52 100644 --- a/database/updates.inc +++ b/database/updates.inc @@ -53,7 +53,7 @@ * * - Changing a column: (an example): * mysql: $ret[] = update_sql("ALTER TABLE {locales_source} CHANGE location location varchar(255) NOT NULL default ''"); - * pgsql: db_change_column($ret, 'locales_source', 'location', 'location', 'varchar(255)', array('not null' => TRUE, 'default' => '')); + * pgsql: db_change_column($ret, 'locales_source', 'location', 'location', 'varchar(255)', array('not null' => TRUE, 'default' => "''")); * */ @@ -677,7 +677,7 @@ function update_137() { $ret[] = update_sql("ALTER TABLE {locales_source} CHANGE location location varchar(255) NOT NULL default ''"); } elseif ($GLOBALS['db_type'] == 'pgsql') { - db_change_column($ret, 'locales_source', 'location', 'location', 'varchar(255)', array('not null' => TRUE, 'default' => '')); + db_change_column($ret, 'locales_source', 'location', 'location', 'varchar(255)', array('not null' => TRUE, 'default' => "''")); } return $ret; } @@ -728,7 +728,7 @@ function update_142() { $ret = array(); switch ($GLOBALS['db_type']) { case 'pgsql': - db_add_column($ret, 'watchdog', 'referer', 'varchar(128)', array('not null' => TRUE, 'default' => '')); + db_add_column($ret, 'watchdog', 'referer', 'varchar(128)', array('not null' => TRUE, 'default' => "''")); break; case 'mysql': case 'mysqli': @@ -765,7 +765,7 @@ function update_144() { elseif ($GLOBALS['db_type'] == 'pgsql') { $ret[] = update_sql("DROP INDEX {node}_type_idx"); // Drop indexes using "type" column $ret[] = update_sql("DROP INDEX {node}_title_idx"); - db_change_column($ret, 'node', 'type', 'type', 'varchar(32)', array('not null' => TRUE, 'default' => '')); + db_change_column($ret, 'node', 'type', 'type', 'varchar(32)', array('not null' => TRUE, 'default' => "''")); // Let's recreate the indexes $ret[] = update_sql("CREATE INDEX {node}_type_idx ON {node}(type)"); $ret[] = update_sql("CREATE INDEX {node}_title_type_idx ON {node}(title,type)"); @@ -780,8 +780,8 @@ function update_145() { switch ($GLOBALS['db_type']) { case 'pgsql': - db_change_column($ret, 'blocks', 'region', 'region', 'varchar(64)', array('default' => 'left', 'not null' => TRUE)); - db_add_column($ret, 'blocks', 'theme', 'varchar(255)', array('not null' => TRUE, 'default' => '')); + db_change_column($ret, 'blocks', 'region', 'region', 'varchar(64)', array('default' => "'left'", 'not null' => TRUE)); + db_add_column($ret, 'blocks', 'theme', 'varchar(255)', array('not null' => TRUE, 'default' => "''")); break; case 'mysql': case 'mysqli': @@ -931,7 +931,7 @@ function update_148() { // Add support for tracking users' session ids (useful for tracking anon users) switch ($GLOBALS['db_type']) { case 'pgsql': - db_add_column($ret, 'accesslog', 'sid', 'varchar(32)', array('not null' => TRUE, 'default' => '')); + db_add_column($ret, 'accesslog', 'sid', 'varchar(32)', array('not null' => TRUE, 'default' => "''")); break; case 'mysql': case 'mysqli': @@ -947,7 +947,7 @@ function update_149() { switch ($GLOBALS['db_type']) { case 'pgsql': - db_add_column($ret, 'files', 'description', 'varchar(255)', array('not null' => TRUE, 'default' => '')); + db_add_column($ret, 'files', 'description', 'varchar(255)', array('not null' => TRUE, 'default' => "''")); break; case 'mysql': case 'mysqli': @@ -1126,17 +1126,20 @@ function update_153(){ $ret = array(); switch ($GLOBALS['db_type']) { case 'pgsql': - $ret[] = update_sql("ALTER TABLE {contact} DROP CONSTRAINT {contact}_pkey category"); - $ret[] = update_sql("ALTER TABLE {contact} ADD COLUMN cid int PRIMARY KEY"); - $ret[] = update_sql("ALTER TABLE {contact} ADD UNIQUE (category)"); + $ret[] = update_sql("ALTER TABLE {contact} DROP CONSTRAINT {contact}_pkey"); + $ret[] = update_sql("CREATE SEQUENCE {contact}_cid_seq"); + db_add_column($ret, 'contact', 'cid', 'integer', array('not null' => TRUE, 'default' => "nextval('{contact}_cid_seq')")); + $ret[] = update_sql("ALTER TABLE {contact} ADD PRIMARY KEY (cid)"); + $ret[] = update_sql("ALTER TABLE {contact} ADD CONSTRAINT {contact}_category_key UNIQUE (category)"); + break; case 'mysql': case 'mysqli': $ret[] = update_sql("ALTER TABLE {contact} DROP PRIMARY KEY"); $ret[] = update_sql("ALTER TABLE {contact} ADD COLUMN cid int(11) NOT NULL PRIMARY KEY auto_increment"); - $ret[] = update_sql("ALTER TABLE {contact} ADD UNIQUE KEY category (category)"); + $ret[] = update_sql("ALTER TABLE {contact} ADD UNIQUE KEY category (category)"); + break; } - $ret = array(); - + return $ret; } @@ -1160,7 +1163,7 @@ function update_153(){ * @param $attributes * Additional optional attributes. Recognized atributes: * - not null => TRUE/FALSE - * - default => NULL/FALSE/value (without '') + * - default => NULL/FALSE/value (with or without '', it wont' be added) * @return * nothing, but modifies $ret parametr. */ @@ -1177,8 +1180,8 @@ function db_add_column(&$ret, $table, $column, $type, $attributes = array()) { $default = ''; } else { - $default_val = "'$attributes[default]'"; - $default = "default '$attributes[default]'"; + $default_val = "$attributes[default]"; + $default = "default $attributes[default]"; } } @@ -1207,7 +1210,7 @@ function db_add_column(&$ret, $table, $column, $type, $attributes = array()) { * @param $attributes * Additional optional attributes. Recognized atributes: * - not null => TRUE/FALSE - * - default => NULL/FALSE/value (without '') + * - default => NULL/FALSE/value (with or without '', it wont' be added) * @return * nothing, but modifies $ret parametr. */ @@ -1224,8 +1227,8 @@ function db_change_column(&$ret, $table, $column, $column_new, $type, $attribute $default = ''; } else { - $default_val = "'$attributes[default]'"; - $default = "default '$attributes[default]'"; + $default_val = "$attributes[default]"; + $default = "default $attributes[default]"; } } -- GitLab