From 647a25661626666d1f1f9c54ca47726e1763ad34 Mon Sep 17 00:00:00 2001 From: skodak Date: Tue, 29 Aug 2006 22:45:54 +0000 Subject: [PATCH] db sessions are now using the newer session handler adodb-session2.php --- lib/db/install.xml | 26 ++++++++++++++++---------- lib/db/mysql.php | 19 +++++++++++++++++++ lib/db/mysql.sql | 26 ++++++++++++++------------ lib/db/postgres7.php | 19 +++++++++++++++++++ lib/db/postgres7.sql | 17 +++++++++++------ lib/setup.php | 7 +++++-- version.php | 2 +- 7 files changed, 85 insertions(+), 31 deletions(-) diff --git a/lib/db/install.xml b/lib/db/install.xml index 16090e2cab..c331aaadf3 100644 --- a/lib/db/install.xml +++ b/lib/db/install.xml @@ -1,5 +1,8 @@ - + @@ -478,7 +481,7 @@
- +
@@ -495,21 +498,24 @@
- +
- - - - + + + + + + - + +
- +
@@ -1031,4 +1037,4 @@ - + \ No newline at end of file diff --git a/lib/db/mysql.php b/lib/db/mysql.php index 57a60c2fd8..3e5d0d95d5 100644 --- a/lib/db/mysql.php +++ b/lib/db/mysql.php @@ -2141,6 +2141,25 @@ function main_upgrade($oldversion=0) { if ($oldversion < 2006082800) { table_column('user', '', 'ajax', 'integer', '1', 'unsigned', '1', '', 'htmleditor'); } + + if ($oldversion < 2006082900) { + execute_sql("DROP TABLE {$CFG->prefix}sessions", false); + execute_sql(" + CREATE TABLE {$CFG->prefix}sessions2 ( + sesskey VARCHAR(64) NOT NULL default '', + expiry DATETIME NOT NULL, + expireref VARCHAR(250), + created DATETIME NOT NULL, + modified DATETIME NOT NULL, + sessdata TEXT, + CONSTRAINT PRIMARY KEY (sesskey) + ) COMMENT='Optional database session storage in new format, not used by default';", true); + + execute_sql(" + CREATE INDEX {$CFG->prefix}sess_exp_ix ON {$CFG->prefix}sessions2 (expiry);", true); + execute_sql(" + CREATE INDEX {$CFG->prefix}sess_exp2_ix ON {$CFG->prefix}sessions2 (expireref);", true); + } return $result; } diff --git a/lib/db/mysql.sql b/lib/db/mysql.sql index 993ceacaf7..765d1a55b4 100644 --- a/lib/db/mysql.sql +++ b/lib/db/mysql.sql @@ -532,20 +532,22 @@ CREATE TABLE `prefix_scale` ( # -# Table structure for table `sessions` -# - -CREATE TABLE `prefix_sessions` ( - `sesskey` char(32) NOT null default '', - `expiry` int(11) unsigned NOT null default '0', - `expireref` varchar(64) default '', - `data` mediumtext NOT null default '', - PRIMARY KEY (`sesskey`), - KEY (`expiry`) -) TYPE=MyISAM COMMENT='Optional database session storage, not used by default'; +# Table structure for table `sessions2` +# +CREATE TABLE prefix_sessions2 ( + sesskey VARCHAR(64) NOT NULL default '', + expiry DATETIME NOT NULL, + expireref VARCHAR(250), + created DATETIME NOT NULL, + modified DATETIME NOT NULL, + sessdata TEXT, +CONSTRAINT PRIMARY KEY (sesskey) +) COMMENT='Optional database session storage in new format, not used by default'; + +CREATE INDEX prefix_sess_exp_ix ON prefix_sessions2 (expiry); +CREATE INDEX prefix_sess_exp2_ix ON prefix_sessions2 (expireref); # -------------------------------------------------------- - # # Table structure for table `timezone` # diff --git a/lib/db/postgres7.php b/lib/db/postgres7.php index b114d6b959..f3e19bc35d 100644 --- a/lib/db/postgres7.php +++ b/lib/db/postgres7.php @@ -1741,6 +1741,25 @@ function main_upgrade($oldversion=0) { table_column('user', '', 'ajax', 'integer', '1', 'unsigned', '1', '', 'htmleditor'); } + if ($oldversion < 2006082900) { + execute_sql("DROP TABLE {$CFG->prefix}sessions", false); + execute_sql(" + CREATE TABLE {$CFG->prefix}sessions2 ( + sesskey VARCHAR(255) NOT NULL default '', + expiry TIMESTAMP NOT NULL, + expireref VARCHAR(255), + created TIMESTAMP NOT NULL, + modified TIMESTAMP NOT NULL, + sessdata TEXT, + CONSTRAINT {$CFG->prefix}sess_ses_pk PRIMARY KEY (sesskey) + );", true); + + execute_sql(" + CREATE INDEX {$CFG->prefix}sess_exp_ix ON {$CFG->prefix}sessions2 (expiry);", true); + execute_sql(" + CREATE INDEX {$CFG->prefix}sess_exp2_ix ON {$CFG->prefix}sessions2 (expireref);", true); + } + return $result; } diff --git a/lib/db/postgres7.sql b/lib/db/postgres7.sql index 70455595f0..0a4a345c66 100644 --- a/lib/db/postgres7.sql +++ b/lib/db/postgres7.sql @@ -338,14 +338,19 @@ CREATE TABLE prefix_scale ( timemodified integer NOT NULL default '0' ); -CREATE TABLE prefix_sessions ( - sesskey char(32) PRIMARY KEY, - expiry integer NOT null, - expireref varchar(64), - data text NOT null +CREATE TABLE prefix_sessions2 ( + sesskey VARCHAR(255) NOT NULL default '', + expiry TIMESTAMP NOT NULL, + expireref VARCHAR(255), + created TIMESTAMP NOT NULL, + modified TIMESTAMP NOT NULL, + sessdata TEXT, +CONSTRAINT prefix_sess_ses_pk PRIMARY KEY (sesskey) ); -CREATE INDEX prefix_sessions_expiry_idx ON prefix_sessions (expiry); +CREATE INDEX prefix_sess_exp_ix ON prefix_sessions2 (expiry); + +CREATE INDEX prefix_sess_exp2_ix ON prefix_sessions2 (expireref); CREATE TABLE prefix_timezone ( id SERIAL PRIMARY KEY, diff --git a/lib/setup.php b/lib/setup.php index e150e9309b..8a67c08f54 100644 --- a/lib/setup.php +++ b/lib/setup.php @@ -314,9 +314,12 @@ $CFG->os = PHP_OS; $ADODB_SESSION_USER = $CFG->dbuser; $ADODB_SESSION_PWD = $CFG->dbpass; $ADODB_SESSION_DB = $CFG->dbname; - $ADODB_SESSION_TBL = $CFG->prefix.'sessions'; + $ADODB_SESSION_TBL = $CFG->prefix.'sessions2'; + if (!empty($CFG->sessiontimeout)) { + $ADODB_SESS_LIFE = $CFG->sessiontimeout; + } - require_once($CFG->libdir. '/adodb/session/adodb-session.php'); + require_once($CFG->libdir. '/adodb/session/adodb-session2.php'); } } /// Set sessioncookie variable if it isn't already diff --git a/version.php b/version.php index f25a014ef3..ae85a13c9b 100644 --- a/version.php +++ b/version.php @@ -6,7 +6,7 @@ // This is compared against the values stored in the database to determine // whether upgrades should be performed (see lib/db/*.php) - $version = 2006082800; // YYYYMMDD = date + $version = 2006082900; // YYYYMMDD = date // XY = increments within a single day $release = '1.7 dev'; // Human-friendly version name -- 2.39.5