db sessions are now using the newer session handler adodb-session2.php

This commit is contained in:
skodak 2006-08-29 22:45:54 +00:00
parent 2af2711f79
commit 647a256616
7 changed files with 83 additions and 29 deletions

View file

@ -1,5 +1,8 @@
<?xml version="1.0" encoding="UTF-8" ?> <?xml version="1.0" encoding="UTF-8" ?>
<XMLDB PATH="lib/db" VERSION="20060821" COMMENT="XMLDB file for core Moodle tables"> <XMLDB PATH="lib/db" VERSION="20060829" COMMENT="XMLDB file for core Moodle tables"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="../../lib/xmldb/xmldb.xsd"
>
<TABLES> <TABLES>
<TABLE NAME="config" COMMENT="Moodle configuration variables" NEXT="config_plugins"> <TABLE NAME="config" COMMENT="Moodle configuration variables" NEXT="config_plugins">
<FIELDS> <FIELDS>
@ -478,7 +481,7 @@
<INDEX NAME="name" UNIQUE="false" FIELDS="name"/> <INDEX NAME="name" UNIQUE="false" FIELDS="name"/>
</INDEXES> </INDEXES>
</TABLE> </TABLE>
<TABLE NAME="scale" COMMENT="Defines grading scales" PREVIOUS="modules" NEXT="sessions"> <TABLE NAME="scale" COMMENT="Defines grading scales" PREVIOUS="modules" NEXT="sessions2">
<FIELDS> <FIELDS>
<FIELD NAME="id" TYPE="int" LENGTH="10" NOTNULL="true" UNSIGNED="true" SEQUENCE="true" ENUM="false" NEXT="courseid"/> <FIELD NAME="id" TYPE="int" LENGTH="10" NOTNULL="true" UNSIGNED="true" SEQUENCE="true" ENUM="false" NEXT="courseid"/>
<FIELD NAME="courseid" TYPE="int" LENGTH="10" NOTNULL="true" UNSIGNED="true" DEFAULT="0" SEQUENCE="false" ENUM="false" PREVIOUS="id" NEXT="userid"/> <FIELD NAME="courseid" TYPE="int" LENGTH="10" NOTNULL="true" UNSIGNED="true" DEFAULT="0" SEQUENCE="false" ENUM="false" PREVIOUS="id" NEXT="userid"/>
@ -495,21 +498,24 @@
<INDEX NAME="courseid" UNIQUE="false" FIELDS="courseid"/> <INDEX NAME="courseid" UNIQUE="false" FIELDS="courseid"/>
</INDEXES> </INDEXES>
</TABLE> </TABLE>
<TABLE NAME="sessions" COMMENT="Optional database session storage, not used by default" PREVIOUS="scale" NEXT="timezone"> <TABLE NAME="sessions2" COMMENT="Optional database session storage in new format, not used by default" PREVIOUS="scale" NEXT="timezone">
<FIELDS> <FIELDS>
<FIELD NAME="sesskey" TYPE="char" LENGTH="32" NOTNULL="true" SEQUENCE="false" ENUM="false" NEXT="expiry"/> <FIELD NAME="sesskey" TYPE="char" LENGTH="64" NOTNULL="true" SEQUENCE="false" ENUM="false" NEXT="expiry"/>
<FIELD NAME="expiry" TYPE="int" LENGTH="11" NOTNULL="true" UNSIGNED="true" DEFAULT="0" SEQUENCE="false" ENUM="false" PREVIOUS="sesskey" NEXT="expireref"/> <FIELD NAME="expiry" TYPE="datetime" NOTNULL="true" SEQUENCE="false" ENUM="false" PREVIOUS="sesskey" NEXT="expireref"/>
<FIELD NAME="expireref" TYPE="char" LENGTH="64" NOTNULL="false" SEQUENCE="false" ENUM="false" PREVIOUS="expiry" NEXT="data"/> <FIELD NAME="expireref" TYPE="char" LENGTH="250" NOTNULL="false" DEFAULT="" SEQUENCE="false" ENUM="false" PREVIOUS="expiry" NEXT="created"/>
<FIELD NAME="data" TYPE="text" LENGTH="medium" NOTNULL="true" SEQUENCE="false" ENUM="false" PREVIOUS="expireref"/> <FIELD NAME="created" TYPE="datetime" NOTNULL="true" SEQUENCE="false" ENUM="false" PREVIOUS="expireref" NEXT="modified"/>
<FIELD NAME="modified" TYPE="datetime" NOTNULL="true" SEQUENCE="false" ENUM="false" PREVIOUS="created" NEXT="sessdata"/>
<FIELD NAME="sessdata" TYPE="text" LENGTH="big" NOTNULL="false" DEFAULT="" SEQUENCE="false" ENUM="false" PREVIOUS="modified"/>
</FIELDS> </FIELDS>
<KEYS> <KEYS>
<KEY NAME="primary" TYPE="primary" FIELDS="sesskey" COMMENT="Primary key for sessions"/> <KEY NAME="primary" TYPE="primary" FIELDS="sesskey" COMMENT="Primary key for sessions"/>
</KEYS> </KEYS>
<INDEXES> <INDEXES>
<INDEX NAME="expiry" UNIQUE="false" FIELDS="expiry"/> <INDEX NAME="sess2_expiry" UNIQUE="false" FIELDS="expiry" NEXT="sess2_expireref"/>
<INDEX NAME="sess2_expireref" UNIQUE="false" FIELDS="expireref" PREVIOUS="sess2_expiry"/>
</INDEXES> </INDEXES>
</TABLE> </TABLE>
<TABLE NAME="timezone" COMMENT="Rules for calculating local wall clock time for users" PREVIOUS="sessions" NEXT="user"> <TABLE NAME="timezone" COMMENT="Rules for calculating local wall clock time for users" PREVIOUS="sessions2" NEXT="user">
<FIELDS> <FIELDS>
<FIELD NAME="id" TYPE="int" LENGTH="10" NOTNULL="true" UNSIGNED="false" SEQUENCE="true" ENUM="false" NEXT="name"/> <FIELD NAME="id" TYPE="int" LENGTH="10" NOTNULL="true" UNSIGNED="false" SEQUENCE="true" ENUM="false" NEXT="name"/>
<FIELD NAME="name" TYPE="char" LENGTH="100" NOTNULL="true" SEQUENCE="false" ENUM="false" PREVIOUS="id" NEXT="year"/> <FIELD NAME="name" TYPE="char" LENGTH="100" NOTNULL="true" SEQUENCE="false" ENUM="false" PREVIOUS="id" NEXT="year"/>
@ -1031,4 +1037,4 @@
</SENTENCES> </SENTENCES>
</STATEMENT> </STATEMENT>
</STATEMENTS> </STATEMENTS>
</XMLDB> </XMLDB>

View file

@ -2141,6 +2141,25 @@ function main_upgrade($oldversion=0) {
if ($oldversion < 2006082800) { if ($oldversion < 2006082800) {
table_column('user', '', 'ajax', 'integer', '1', 'unsigned', '1', '', 'htmleditor'); 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; return $result;
} }

View file

@ -532,20 +532,22 @@ CREATE TABLE `prefix_scale` (
# #
# Table structure for table `sessions` # 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 TABLE `prefix_sessions` ( CREATE INDEX prefix_sess_exp_ix ON prefix_sessions2 (expiry);
`sesskey` char(32) NOT null default '', CREATE INDEX prefix_sess_exp2_ix ON prefix_sessions2 (expireref);
`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 `timezone` # Table structure for table `timezone`
# #

View file

@ -1741,6 +1741,25 @@ function main_upgrade($oldversion=0) {
table_column('user', '', 'ajax', 'integer', '1', 'unsigned', '1', '', 'htmleditor'); 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; return $result;
} }

View file

@ -338,14 +338,19 @@ CREATE TABLE prefix_scale (
timemodified integer NOT NULL default '0' timemodified integer NOT NULL default '0'
); );
CREATE TABLE prefix_sessions ( CREATE TABLE prefix_sessions2 (
sesskey char(32) PRIMARY KEY, sesskey VARCHAR(255) NOT NULL default '',
expiry integer NOT null, expiry TIMESTAMP NOT NULL,
expireref varchar(64), expireref VARCHAR(255),
data text NOT null 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 ( CREATE TABLE prefix_timezone (
id SERIAL PRIMARY KEY, id SERIAL PRIMARY KEY,

View file

@ -314,9 +314,12 @@ $CFG->os = PHP_OS;
$ADODB_SESSION_USER = $CFG->dbuser; $ADODB_SESSION_USER = $CFG->dbuser;
$ADODB_SESSION_PWD = $CFG->dbpass; $ADODB_SESSION_PWD = $CFG->dbpass;
$ADODB_SESSION_DB = $CFG->dbname; $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 /// Set sessioncookie variable if it isn't already

View file

@ -6,7 +6,7 @@
// This is compared against the values stored in the database to determine // This is compared against the values stored in the database to determine
// whether upgrades should be performed (see lib/db/*.php) // whether upgrades should be performed (see lib/db/*.php)
$version = 2006082800; // YYYYMMDD = date $version = 2006082900; // YYYYMMDD = date
// XY = increments within a single day // XY = increments within a single day
$release = '1.7 dev'; // Human-friendly version name $release = '1.7 dev'; // Human-friendly version name