From ccb3fa0219643d98d08fdd26dddecfa2dbb5e3b5 Mon Sep 17 00:00:00 2001 From: Dries Buytaert <dries@buytaert.net> Date: Mon, 12 Dec 2005 22:08:35 +0000 Subject: [PATCH] - Patch #39462 by Cvgbe: 1. fixed problem with long URLs being truncated (and causing errors) 2. added CREATE UNIQUE INDEX to prefix.sh 3. changed totalcount from int to bigint to prevent overflow 4. unifies index names, syncs with database.mysql Updated changelog. --- CHANGELOG.txt | 8 +++++ database/database.pgsql | 68 ++++++++++++++++++------------------ database/updates.inc | 77 +++++++++++++++++++++++++++++------------ scripts/prefix.sh | 1 + 4 files changed, 99 insertions(+), 55 deletions(-) diff --git a/CHANGELOG.txt b/CHANGELOG.txt index 06c2680a67c5..bd8f07dfd495 100644 --- a/CHANGELOG.txt +++ b/CHANGELOG.txt @@ -54,6 +54,10 @@ Drupal x.x.x, xxxx-xx-xx (development version) - PostgreSQL support: * removed dependency on PL/pgSQL procedural language +Drupal 4.6.5, 2005-12-12 +------------------------ +- fixed bugs: no critical bugs were identified. + Drupal 4.6.4, 2005-11-30 ------------------------ - fixed bugs, including 3 security vulnerabilities. @@ -114,6 +118,10 @@ Drupal 4.6.0, 2005-04-15 - documentation: * improved and extended PHPDoc/Doxygen comments. +Drupal 4.5.7, 2005-12-12 +------------------------ +- fixed bugs: no critical bugs were identified. + Drupal 4.5.6, 2005-11-30 ------------------------ - fixed bugs, including 3 security vulnerabilities. diff --git a/database/database.pgsql b/database/database.pgsql index fc992e2f92c4..6278a766a63b 100644 --- a/database/database.pgsql +++ b/database/database.pgsql @@ -20,10 +20,9 @@ CREATE TABLE access ( CREATE TABLE accesslog ( aid SERIAL, sid varchar(32) NOT NULL default '', - mask varchar(255) NOT NULL default '', title varchar(255) default NULL, - path varchar(255) default NULL, - url varchar(255) default NULL, + path text default NULL, + url text default NULL, hostname varchar(128) default NULL, uid integer default '0', timer integer NOT NULL default '0', @@ -31,6 +30,7 @@ CREATE TABLE accesslog ( PRIMARY KEY (aid) ); CREATE INDEX accesslog_timestamp_idx ON accesslog (timestamp); + -- -- Table structure for table 'aggregator_category' -- @@ -142,7 +142,7 @@ CREATE TABLE book ( PRIMARY KEY (vid) ); CREATE INDEX book_nid_idx ON book(nid); -CREATE INDEX book_parent ON book(parent); +CREATE INDEX book_parent_idx ON book(parent); -- -- Table structure for boxes @@ -224,7 +224,7 @@ CREATE TABLE node_comment_statistics ( comment_count integer NOT NULL default '0', PRIMARY KEY (nid) ); -CREATE INDEX node_comment_statistics_timestamp_idx ON node_comment_statistics(last_comment_timestamp); +CREATE INDEX node_comment_statistics_last_comment_timestamp_idx ON node_comment_statistics(last_comment_timestamp); -- -- Table structure for directory @@ -277,10 +277,9 @@ CREATE TABLE filter_formats ( CREATE TABLE filters ( format integer NOT NULL DEFAULT '0', module varchar(64) NOT NULL DEFAULT '', - delta smallint NOT NULL DEFAULT 1, + delta smallint NOT NULL DEFAULT 0, weight smallint DEFAULT '0' NOT NULL ); -CREATE INDEX filters_module_idx ON filters(module); CREATE INDEX filters_weight_idx ON filters(weight); -- @@ -355,8 +354,7 @@ CREATE TABLE locales_target ( plural int4 NOT NULL default '0', UNIQUE (lid) ); -CREATE INDEX locales_target_lid_idx ON locales_target(lid); -CREATE INDEX locales_target_lang_idx ON locales_target(locale); +CREATE INDEX locales_target_locale_idx ON locales_target(locale); CREATE INDEX locales_target_plid_idx ON locales_target(plid); CREATE INDEX locales_target_plural_idx ON locales_target(plural); @@ -432,11 +430,11 @@ CREATE INDEX node_type_idx ON node(type); CREATE INDEX node_title_type_idx ON node(title,type); CREATE INDEX node_status_idx ON node(status); CREATE INDEX node_uid_idx ON node(uid); +CREATE INDEX node_vid_idx ON node(vid); CREATE INDEX node_moderate_idx ON node (moderate); CREATE INDEX node_promote_status_idx ON node (promote, status); -CREATE INDEX node_created ON node(created); -CREATE INDEX node_changed ON node(changed); -CREATE INDEX node_vid_idx ON node(vid); +CREATE INDEX node_created_idx ON node(created); +CREATE INDEX node_changed_idx ON node(changed); CREATE INDEX node_status_type_nid_idx ON node(status,type,nid); -- @@ -472,21 +470,6 @@ CREATE TABLE node_revisions ( CREATE INDEX node_revisions_uid_idx ON node_revisions(uid); CREATE SEQUENCE node_revisions_vid_seq INCREMENT 1 START 1; --- --- Table structure for table 'node_counter' --- - -CREATE TABLE node_counter ( - nid integer NOT NULL default '0', - totalcount integer NOT NULL default '0', - daycount integer NOT NULL default '0', - timestamp integer NOT NULL default '0', - PRIMARY KEY (nid) -); -CREATE INDEX node_counter_totalcount_idx ON node_counter(totalcount); -CREATE INDEX node_counter_daycount_idx ON node_counter(daycount); -CREATE INDEX node_counter_timestamp_idx ON node_counter(timestamp); - -- -- Table structure for table 'url_alias' -- @@ -507,7 +490,7 @@ CREATE TABLE profile_fields ( UNIQUE (name), PRIMARY KEY (fid) ); -CREATE INDEX profile_fields_category ON profile_fields (category); +CREATE INDEX profile_fields_category_idx ON profile_fields (category); -- -- Table structure for table 'profile_values' @@ -527,8 +510,9 @@ CREATE TABLE url_alias ( dst varchar(128) NOT NULL default '', PRIMARY KEY (pid) ); -CREATE INDEX url_alias_dst_idx ON url_alias(dst); +CREATE UNIQUE INDEX url_alias_dst_idx ON url_alias(dst); CREATE INDEX url_alias_src_idx ON url_alias(src); + -- -- Table structure for permission -- @@ -626,6 +610,8 @@ CREATE TABLE sessions ( session text, PRIMARY KEY (sid) ); +CREATE INDEX sessions_uid_idx ON sessions(uid); +CREATE INDEX sessions_timestamp_idx ON sessions(timestamp); -- -- Table structure for sequences @@ -638,6 +624,21 @@ CREATE TABLE sessions ( -- PRIMARY KEY (name) -- ); +-- +-- Table structure for table 'node_counter' +-- + +CREATE TABLE node_counter ( + nid integer NOT NULL default '0', + totalcount integer NOT NULL default '0', + daycount integer NOT NULL default '0', + timestamp integer NOT NULL default '0', + PRIMARY KEY (nid) +); +CREATE INDEX node_counter_totalcount_idx ON node_counter(totalcount); +CREATE INDEX node_counter_daycount_idx ON node_counter(daycount); +CREATE INDEX node_counter_timestamp_idx ON node_counter(timestamp); + -- -- Table structure for system -- @@ -802,9 +803,9 @@ CREATE TABLE watchdog ( type varchar(16) NOT NULL default '', message text NOT NULL default '', severity smallint NOT NULL default '0', - link varchar(255) NOT NULL default '', - location varchar(128) NOT NULL default '', - referer varchar(128) NOT NULL default '', + link text NOT NULL default '', + location text NOT NULL default '', + referer text NOT NULL default '', hostname varchar(128) NOT NULL default '', timestamp integer NOT NULL default '0', PRIMARY KEY (wid) @@ -829,7 +830,6 @@ INSERT INTO system (filename, name, type, description, status, throttle, bootstr 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); 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); -INSERT INTO variable(name,value) VALUES('theme_default','s:10:"bluemarine";'); INSERT INTO users(uid,name,mail) VALUES(0,'',''); INSERT INTO users_roles(uid,rid) VALUES(0, 1); @@ -839,6 +839,8 @@ INSERT INTO permission VALUES (1,'access content',0); INSERT INTO role (name) VALUES ('authenticated user'); INSERT INTO permission VALUES (2,'access comments, access content, post comments, post comments without approval',0); +INSERT INTO variable(name,value) VALUES('theme_default', 's:10:"bluemarine";'); + INSERT INTO blocks(module,delta,theme,status) VALUES('user', 0, 'bluemarine', 1); INSERT INTO blocks(module,delta,theme,status) VALUES('user', 1, 'bluemarine', 1); diff --git a/database/updates.inc b/database/updates.inc index d00cf70a4960..6dbc04368592 100644 --- a/database/updates.inc +++ b/database/updates.inc @@ -530,12 +530,7 @@ function system_update_133() { function system_update_134() { $ret = array(); - if ($GLOBALS['db_type'] == 'mysql') { - $ret[] = update_sql('ALTER TABLE {blocks} DROP types'); - } - else { - $ret[] = update_sql("ALTER TABLE {blocks} RENAME types TO types_old"); - } + $ret[] = update_sql('ALTER TABLE {blocks} DROP types'); return $ret; } @@ -797,20 +792,11 @@ function system_update_146() { db_query("UPDATE {node_revisions} SET log = '%s' WHERE vid = %d", $row->log, $row->nid); } - if ($GLOBALS['db_type'] == 'mysql') { - $ret[] = update_sql("ALTER TABLE {book} DROP log"); - $ret[] = update_sql("ALTER TABLE {node} DROP teaser"); - $ret[] = update_sql("ALTER TABLE {node} DROP body"); - $ret[] = update_sql("ALTER TABLE {node} DROP format"); - $ret[] = update_sql("ALTER TABLE {node} DROP revisions"); - } - else { // pgsql - $ret[] = update_sql("ALTER TABLE {book} RENAME log TO log_old"); - $ret[] = update_sql("ALTER TABLE {node} RENAME teaser TO teaser_old"); - $ret[] = update_sql("ALTER TABLE {node} RENAME body TO body_old"); - $ret[] = update_sql("ALTER TABLE {node} RENAME format TO format_old"); - $ret[] = update_sql("ALTER TABLE {node} RENAME revisions TO revisions_old"); - } + $ret[] = update_sql("ALTER TABLE {book} DROP log"); + $ret[] = update_sql("ALTER TABLE {node} DROP teaser"); + $ret[] = update_sql("ALTER TABLE {node} DROP body"); + $ret[] = update_sql("ALTER TABLE {node} DROP format"); + $ret[] = update_sql("ALTER TABLE {node} DROP revisions"); return $ret; } @@ -1013,7 +999,7 @@ function system_update_152() { // Postgresql only update switch ($GLOBALS['db_type']) { case 'pgsql': - $ret[] = update_sql("ALTER TABLE {forum} RENAME shadow TO shadow_old"); + $ret[] = update_sql("ALTER TABLE {forum} DROP shadow"); break; case 'mysql': case 'mysqli': @@ -1213,7 +1199,6 @@ function system_update_159() { break; } - // FIXME - wrong - allways will be true? (limit was 20) if (db_num_rows($result) < 20) { $ret[] = update_sql('ALTER TABLE {old_revisions} DROP done'); } @@ -1240,3 +1225,51 @@ function system_update_161() { variable_del('forum_icon_path'); } +function system_update_162() { + $ret = array(); + + // PostgreSQL only update + switch ($GLOBALS['db_type']) { + case 'pgsql': + + $ret[] = update_sql('DROP INDEX {book}_parent'); + $ret[] = update_sql('CREATE INDEX {book}_parent_idx ON {book}(parent)'); + + $ret[] = update_sql('DROP INDEX {node_comment_statistics}_timestamp_idx'); + $ret[] = update_sql('CREATE INDEX {node_comment_statistics}_last_comment_timestamp_idx ON {node_comment_statistics}(last_comment_timestamp)'); + + $ret[] = update_sql('ALTER TABLE {filters} ALTER delta SET DEFAULT 0'); + $ret[] = update_sql('DROP INDEX {filters}_module_idx'); + + $ret[] = update_sql('DROP INDEX {locales_target}_lid_idx'); + $ret[] = update_sql('DROP INDEX {locales_target}_lang_idx'); + $ret[] = update_sql('CREATE INDEX {locales_target}_locale_idx ON {locales_target}(locale)'); + + $ret[] = update_sql('DROP INDEX {node}_created'); + $ret[] = update_sql('CREATE INDEX {node}_created_idx ON {node}(created)'); + $ret[] = update_sql('DROP INDEX {node}_changed'); + $ret[] = update_sql('CREATE INDEX {node}_changed_idx ON {node}(changed)'); + + $ret[] = update_sql('DROP INDEX {profile_fields}_category'); + $ret[] = update_sql('CREATE INDEX {profile_fields}_category_idx ON {profile_fields}(category)'); + + $ret[] = update_sql('DROP INDEX {url_alias}_dst_idx'); + $ret[] = update_sql('CREATE UNIQUE INDEX {url_alias}_dst_idx ON {url_alias}(dst)'); + + $ret[] = update_sql('CREATE INDEX {sessions}_uid_idx ON {sessions}(uid)'); + $ret[] = update_sql('CREATE INDEX {sessions}_timestamp_idx ON {sessions}(timestamp)'); + + $ret[] = update_sql('ALTER TABLE {accesslog} DROP mask'); + + db_change_column($ret, 'accesslog', 'path', 'path', 'text'); + db_change_column($ret, 'accesslog', 'url', 'url', 'text'); + db_change_column($ret, 'watchdog', 'link', 'link', 'text', array('not null' => TRUE, 'default' => "''")); + db_change_column($ret, 'watchdog', 'location', 'location', 'text', array('not null' => TRUE, 'default' => "''")); + db_change_column($ret, 'watchdog', 'referer', 'referer', 'text', array('not null' => TRUE, 'default' => "''")); + + break; + } + + return $ret; +} + diff --git a/scripts/prefix.sh b/scripts/prefix.sh index f33ff7b07e2d..5c5bb1f711b0 100644 --- a/scripts/prefix.sh +++ b/scripts/prefix.sh @@ -22,5 +22,6 @@ s/^CREATE SEQUENCE /CREATE SEQUENCE $PREFIX/; s/^ALTER SEQUENCE /ALTER SEQUENCE $PREFIX/; s/^CREATE INDEX \(.*\) ON /CREATE INDEX $PREFIX\\1 ON $PREFIX/; + s/^CREATE UNIQUE INDEX \(.*\) ON /CREATE UNIQUE INDEX $PREFIX\\1 ON $PREFIX/; " $2 -- GitLab