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" ?>
<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>
<TABLE NAME="config" COMMENT="Moodle configuration variables" NEXT="config_plugins">
<FIELDS>
@ -478,7 +481,7 @@
<INDEX NAME="name" UNIQUE="false" FIELDS="name"/>
</INDEXES>
</TABLE>
<TABLE NAME="scale" COMMENT="Defines grading scales" PREVIOUS="modules" NEXT="sessions">
<TABLE NAME="scale" COMMENT="Defines grading scales" PREVIOUS="modules" NEXT="sessions2">
<FIELDS>
<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"/>
@ -495,21 +498,24 @@
<INDEX NAME="courseid" UNIQUE="false" FIELDS="courseid"/>
</INDEXES>
</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>
<FIELD NAME="sesskey" TYPE="char" LENGTH="32" 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="expireref" TYPE="char" LENGTH="64" NOTNULL="false" SEQUENCE="false" ENUM="false" PREVIOUS="expiry" NEXT="data"/>
<FIELD NAME="data" TYPE="text" LENGTH="medium" NOTNULL="true" SEQUENCE="false" ENUM="false" PREVIOUS="expireref"/>
<FIELD NAME="sesskey" TYPE="char" LENGTH="64" NOTNULL="true" SEQUENCE="false" ENUM="false" NEXT="expiry"/>
<FIELD NAME="expiry" TYPE="datetime" NOTNULL="true" SEQUENCE="false" ENUM="false" PREVIOUS="sesskey" NEXT="expireref"/>
<FIELD NAME="expireref" TYPE="char" LENGTH="250" NOTNULL="false" DEFAULT="" SEQUENCE="false" ENUM="false" PREVIOUS="expiry" NEXT="created"/>
<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>
<KEYS>
<KEY NAME="primary" TYPE="primary" FIELDS="sesskey" COMMENT="Primary key for sessions"/>
</KEYS>
<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>
</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>
<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"/>

View file

@ -2142,6 +2142,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(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;
}

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` (
`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';
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`
#

View file

@ -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;
}

View file

@ -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,

View file

@ -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

View file

@ -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