will be shut down on June 1, 2019. At that point this instance will be unreachable and all data will be irrevocably deleted. More details at

Commit 05d36229 authored by mmn's avatar mmn

Conversation entries where id==0 would screw up the "re-auto-increment" sequencing

parent 6924bb1d
......@@ -34,7 +34,7 @@ if (!defined('GNUSOCIAL')) { exit(1); }
class Conversation extends Managed_DataObject
public $__table = 'conversation'; // table name
public $id; // int(4) primary_key not_null
public $id; // int(4) primary_key not_null auto_increment
public $uri; // varchar(191) unique_key not 255 because utf8mb4 takes more space
public $created; // datetime not_null
public $modified; // timestamp not_null default_CURRENT_TIMESTAMP
......@@ -55,6 +55,32 @@ class Conversation extends Managed_DataObject
static public function beforeSchemaUpdate()
$table = strtolower(get_called_class());
$schema = Schema::get();
$schemadef = $schema->getTableDef($table);
// 2016-01-06 We have to make sure there is no conversation with id==0 since it will screw up auto increment resequencing
if ($schemadef['fields']['id']['auto_increment']) {
// since we already have auto incrementing ('serial') we can continue
// The conversation will be recreated in upgrade.php, which will
// generate a new URI, but that's collateral damage for you.
$conv = new Conversation();
$conv->id = 0;
if ($conv->find()) {
while ($conv->fetch()) {
// Since we have filtered on 0 this only deletes such entries
// which I have been afraid wouldn't work, but apparently does!
// (I thought it would act as null or something and find _all_ conversation entries)
* Factory method for creating a new conversation.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment