HomePhabricator

Give the session table a normal `id` column as a primary key

Description

Give the session table a normal id column as a primary key

Summary:
Ref T4310. Ref T3720. Two major things are going on here:

  • I'm making this table work more like a standard table, which, e.g., makes delete() simpler to implement.
  • Currently, the primary key is (userPHID, type). I want to get rid of this, issue unlimited sessions, and GC old sessions. This means we can't have a unique key on (userPHID, type) anymore. This removes it as the primary key and adds it as a normal key instead. There's no functional change -- the code to generate sessions guarantees that it will never write duplicate rows or write additional rows -- but allows us to drop the -1, -2 qualifiers in the future.
  • Also of note, our task is made far simpler here because MySQL will automatically assign values to new AUTO_INCREMENT columns, so we don't have to migrate to get real IDs.

Test Plan: Ran migrations, verified table looked sane. Logged out, logged in.

Reviewers: btrahan

Reviewed By: btrahan

CC: aran

Maniphest Tasks: T3720, T4310

Differential Revision: https://secure.phabricator.com/D7975

Details

Provenance
epriestleyAuthored on Jan 15 2014, 9:55 PM
epriestleyPushed on Jan 15 2014, 9:55 PM
Reviewer
btrahan
Differential Revision
D7975: Give the session table a normal `id` column as a primary key
Parents
rP89bd84986a48: Fix typo
Branches
Unknown
Tags
Unknown
Tasks
T4310: Allow external users to establish real sessions
Restricted Maniphest Task

Event Timeline