<?php
+
+use \Friendica\Core\Config;
+
require_once("boot.php");
require_once("include/text.php");
function table_structure($table) {
$structures = q("DESCRIBE `%s`", $table);
+ $full_columns = q("SHOW FULL COLUMNS FROM `%s`", $table);
+
$indexes = q("SHOW INDEX FROM `%s`", $table);
+ $table_status = q("SHOW TABLE STATUS WHERE `name` = '%s'", $table);
+
+ if (dbm::is_result($table_status)) {
+ $table_status = $table_status[0];
+ } else {
+ $table_status = array();
+ }
+
$fielddata = array();
$indexdata = array();
$indexdata[$index["Key_name"]][] = $column;
}
-
if (dbm::is_result($structures)) {
foreach ($structures AS $field) {
$fielddata[$field["Field"]]["type"] = $field["Type"];
}
}
}
- return(array("fields"=>$fielddata, "indexes"=>$indexdata));
+ if (dbm::is_result($full_columns)) {
+ foreach ($full_columns AS $column) {
+ $fielddata[$column["Field"]]["Collation"] = $column["Collation"];
+ }
+ }
+
+ return array("fields" => $fielddata, "indexes" => $indexdata, "table_status" => $table_status);
}
-function print_structure($database, $charset) {
+function print_structure($database) {
echo "-- ------------------------------------------\n";
echo "-- ".FRIENDICA_PLATFORM." ".FRIENDICA_VERSION." (".FRIENDICA_CODENAME,")\n";
echo "-- DB_UPDATE_VERSION ".DB_UPDATE_VERSION."\n";
echo "--\n";
echo "-- TABLE $name\n";
echo "--\n";
- db_create_table($name, $structure['fields'], $charset, true, false, $structure["indexes"]);
+ db_create_table($name, $structure['fields'], true, false, $structure["indexes"]);
echo "\n";
}
global $a, $db;
if ($action) {
- set_config('system', 'maintenance', 1);
- }
-
- if (isset($a->config["system"]["db_charset"])) {
- $charset = $a->config["system"]["db_charset"];
- } else {
- $charset = "utf8";
+ Config::set('system', 'maintenance', 1);
+ Config::set('system', 'maintenance_reason', sprintf(t(': Database update'), dbm::date().' '.date('e')));
}
$errors = false;
$tables = q("SHOW TABLES");
}
- foreach ($tables AS $table) {
- $table = current($table);
+ if (dbm::is_result($tables)) {
+ foreach ($tables AS $table) {
+ $table = current($table);
- logger(sprintf('updating structure for table %s ...', $table), LOGGER_DEBUG);
- $database[$table] = table_structure($table);
+ logger(sprintf('updating structure for table %s ...', $table), LOGGER_DEBUG);
+ $database[$table] = table_structure($table);
+ }
}
// Get the definition
if (is_null($definition)) {
- $definition = db_definition($charset);
+ $definition = db_definition();
}
// MySQL >= 5.7.4 doesn't support the IGNORE keyword in ALTER TABLE statements
$group_by = "";
$sql3 = "";
if (!isset($database[$name])) {
- $r = db_create_table($name, $structure["fields"], $charset, $verbose, $action, $structure['indexes']);
+ $r = db_create_table($name, $structure["fields"], $verbose, $action, $structure['indexes']);
if (!dbm::is_result($r)) {
$errors .= t('Errors encountered creating database tables.').$name.EOL;
}
if (!isset($database[$name]["fields"][$fieldname])) {
$sql2=db_add_table_field($fieldname, $parameters);
if ($sql3 == "") {
- $sql3 = "ALTER TABLE `".$temp_name."` ".$sql2;
+ $sql3 = "ALTER" . $ignore . " TABLE `".$temp_name."` ".$sql2;
} else {
$sql3 .= ", ".$sql2;
}
} else {
// Compare the field definition
- $current_field_definition = implode(",",$database[$name]["fields"][$fieldname]);
- $new_field_definition = implode(",",$parameters);
+ $field_definition = $database[$name]["fields"][$fieldname];
+
+ // Define the default collation if not given
+ if (!isset($parameters['Collation']) AND !is_null($field_definition['Collation'])) {
+ $parameters['Collation'] = 'utf8mb4_general_ci';
+ } else {
+ $parameters['Collation'] = null;
+ }
+
+ $current_field_definition = implode(",", $field_definition);
+ $new_field_definition = implode(",", $parameters);
if ($current_field_definition != $new_field_definition) {
- $sql2=db_modify_table_field($fieldname, $parameters);
+ $sql2 = db_modify_table_field($fieldname, $parameters);
if ($sql3 == "") {
- $sql3 = "ALTER TABLE `".$temp_name."` ".$sql2;
+ $sql3 = "ALTER" . $ignore . " TABLE `".$temp_name."` ".$sql2;
} else {
$sql3 .= ", ".$sql2;
}
}
-
}
}
}
$group_by = db_group_by($indexname, $fieldnames);
}
if ($sql2 != "") {
- if ($sql3 == "")
+ if ($sql3 == "") {
$sql3 = "ALTER" . $ignore . " TABLE `".$temp_name."` ".$sql2;
- else
+ } else {
$sql3 .= ", ".$sql2;
+ }
+ }
+ }
+ }
+
+ if (isset($database[$name]["table_status"]["Collation"])) {
+ if ($database[$name]["table_status"]["Collation"] != 'utf8mb4_general_ci') {
+ $sql2 = "DEFAULT COLLATE utf8mb4_general_ci";
+
+ if ($sql3 == "") {
+ $sql3 = "ALTER" . $ignore . " TABLE `".$temp_name."` ".$sql2;
+ } else {
+ $sql3 .= ", ".$sql2;
}
}
}
}
if ($action) {
+ Config::set('system', 'maintenance_reason', sprintf(t('%s: updating %s table.'), dbm::date().' '.date('e'), $name));
+
// Ensure index conversion to unique removes duplicates
if ($is_unique) {
if ($ignore != "") {
}
}
- if ($action)
- set_config('system', 'maintenance', 0);
+ if ($action) {
+ Config::set('system', 'maintenance', 0);
+ Config::set('system', 'maintenance_reason', '');
+ }
return $errors;
}
function db_field_command($parameters, $create = true) {
$fieldstruct = $parameters["type"];
+ if (!is_null($parameters["Collation"])) {
+ $fieldstruct .= " COLLATE ".$parameters["Collation"];
+ }
+
if ($parameters["not null"])
$fieldstruct .= " NOT NULL";
return($fieldstruct);
}
-function db_create_table($name, $fields, $charset, $verbose, $action, $indexes=null) {
+function db_create_table($name, $fields, $verbose, $action, $indexes=null) {
global $a, $db;
$r = true;
$sql = implode(",\n\t", $sql_rows);
- $sql = sprintf("CREATE TABLE IF NOT EXISTS `%s` (\n\t", dbesc($name)).$sql."\n) DEFAULT CHARSET=".$charset;
+ $sql = sprintf("CREATE TABLE IF NOT EXISTS `%s` (\n\t", dbesc($name)).$sql."\n) DEFAULT COLLATE utf8mb4_general_ci";
if ($verbose)
echo $sql.";\n";
return $sql;
}
-function db_index_suffix($charset, $reduce = 0) {
- if ($charset != "utf8mb4") {
- return "";
- }
-
- // On utf8mb4 indexes can only have a length of 191
- $indexlength = 191 - $reduce;
-
- return "(".$indexlength.")";
-}
-
-function db_definition($charset) {
+function db_definition() {
$database = array();
"filetype" => array("type" => "varchar(64)", "not null" => "1", "default" => ""),
"filesize" => array("type" => "int(11)", "not null" => "1", "default" => "0"),
"data" => array("type" => "longblob", "not null" => "1"),
- "created" => array("type" => "datetime", "not null" => "1", "default" => "0000-00-00 00:00:00"),
- "edited" => array("type" => "datetime", "not null" => "1", "default" => "0000-00-00 00:00:00"),
+ "created" => array("type" => "datetime", "not null" => "1", "default" => NULL_DATE),
+ "edited" => array("type" => "datetime", "not null" => "1", "default" => NULL_DATE),
"allow_cid" => array("type" => "mediumtext"),
"allow_gid" => array("type" => "mediumtext"),
"deny_cid" => array("type" => "mediumtext"),
"k" => array("type" => "varbinary(255)", "not null" => "1", "primary" => "1"),
"v" => array("type" => "mediumtext"),
"expire_mode" => array("type" => "int(11)", "not null" => "1", "default" => "0"),
- "updated" => array("type" => "datetime", "not null" => "1", "default" => "0000-00-00 00:00:00"),
+ "updated" => array("type" => "datetime", "not null" => "1", "default" => NULL_DATE),
),
"indexes" => array(
"PRIMARY" => array("k"),
"fields" => array(
"id" => array("type" => "int(11)", "not null" => "1", "extra" => "auto_increment", "primary" => "1"),
"uid" => array("type" => "int(11)", "not null" => "1", "default" => "0"),
- "created" => array("type" => "datetime", "not null" => "1", "default" => "0000-00-00 00:00:00"),
+ "created" => array("type" => "datetime", "not null" => "1", "default" => NULL_DATE),
"self" => array("type" => "tinyint(1)", "not null" => "1", "default" => "0"),
"remote_self" => array("type" => "tinyint(1)", "not null" => "1", "default" => "0"),
"rel" => array("type" => "tinyint(1)", "not null" => "1", "default" => "0"),
"usehub" => array("type" => "tinyint(1)", "not null" => "1", "default" => "0"),
"subhub" => array("type" => "tinyint(1)", "not null" => "1", "default" => "0"),
"hub-verify" => array("type" => "varchar(255)", "not null" => "1", "default" => ""),
- "last-update" => array("type" => "datetime", "not null" => "1", "default" => "0000-00-00 00:00:00"),
- "success_update" => array("type" => "datetime", "not null" => "1", "default" => "0000-00-00 00:00:00"),
- "failure_update" => array("type" => "datetime", "not null" => "1", "default" => "0000-00-00 00:00:00"),
- "name-date" => array("type" => "datetime", "not null" => "1", "default" => "0000-00-00 00:00:00"),
- "uri-date" => array("type" => "datetime", "not null" => "1", "default" => "0000-00-00 00:00:00"),
- "avatar-date" => array("type" => "datetime", "not null" => "1", "default" => "0000-00-00 00:00:00"),
- "term-date" => array("type" => "datetime", "not null" => "1", "default" => "0000-00-00 00:00:00"),
- "last-item" => array("type" => "datetime", "not null" => "1", "default" => "0000-00-00 00:00:00"),
+ "last-update" => array("type" => "datetime", "not null" => "1", "default" => NULL_DATE),
+ "success_update" => array("type" => "datetime", "not null" => "1", "default" => NULL_DATE),
+ "failure_update" => array("type" => "datetime", "not null" => "1", "default" => NULL_DATE),
+ "name-date" => array("type" => "datetime", "not null" => "1", "default" => NULL_DATE),
+ "uri-date" => array("type" => "datetime", "not null" => "1", "default" => NULL_DATE),
+ "avatar-date" => array("type" => "datetime", "not null" => "1", "default" => NULL_DATE),
+ "term-date" => array("type" => "datetime", "not null" => "1", "default" => NULL_DATE),
+ "last-item" => array("type" => "datetime", "not null" => "1", "default" => NULL_DATE),
"priority" => array("type" => "tinyint(3)", "not null" => "1", "default" => "0"),
"blocked" => array("type" => "tinyint(1)", "not null" => "1", "default" => "1"),
"readonly" => array("type" => "tinyint(1)", "not null" => "1", "default" => "0"),
"writable" => array("type" => "tinyint(1)", "not null" => "1", "default" => "0"),
"forum" => array("type" => "tinyint(1)", "not null" => "1", "default" => "0"),
"prv" => array("type" => "tinyint(1)", "not null" => "1", "default" => "0"),
- "contact-type" => array("type" => "int(11) unsigned", "not null" => "1", "default" => "0"),
+ "contact-type" => array("type" => "int(11)", "not null" => "1", "default" => "0"),
"hidden" => array("type" => "tinyint(1)", "not null" => "1", "default" => "0"),
"archive" => array("type" => "tinyint(1)", "not null" => "1", "default" => "0"),
"pending" => array("type" => "tinyint(1)", "not null" => "1", "default" => "1"),
"recips" => array("type" => "text"),
"uid" => array("type" => "int(11)", "not null" => "1", "default" => "0"),
"creator" => array("type" => "varchar(255)", "not null" => "1", "default" => ""),
- "created" => array("type" => "datetime", "not null" => "1", "default" => "0000-00-00 00:00:00"),
- "updated" => array("type" => "datetime", "not null" => "1", "default" => "0000-00-00 00:00:00"),
+ "created" => array("type" => "datetime", "not null" => "1", "default" => NULL_DATE),
+ "updated" => array("type" => "datetime", "not null" => "1", "default" => NULL_DATE),
"subject" => array("type" => "text"),
),
"indexes" => array(
"uid" => array("uid"),
)
);
- $database["deliverq"] = array(
- "fields" => array(
- "id" => array("type" => "int(10) unsigned", "not null" => "1", "extra" => "auto_increment", "primary" => "1"),
- "cmd" => array("type" => "varbinary(32)", "not null" => "1", "default" => ""),
- "item" => array("type" => "int(11)", "not null" => "1", "default" => "0"),
- "contact" => array("type" => "int(11)", "not null" => "1", "default" => "0"),
- ),
- "indexes" => array(
- "PRIMARY" => array("id"),
- "cmd_item_contact" => array("UNIQUE", "cmd", "item", "contact"),
- )
- );
$database["event"] = array(
"fields" => array(
"id" => array("type" => "int(11)", "not null" => "1", "extra" => "auto_increment", "primary" => "1"),
"uid" => array("type" => "int(11)", "not null" => "1", "default" => "0"),
"cid" => array("type" => "int(11)", "not null" => "1", "default" => "0"),
"uri" => array("type" => "varchar(255)", "not null" => "1", "default" => ""),
- "created" => array("type" => "datetime", "not null" => "1", "default" => "0000-00-00 00:00:00"),
- "edited" => array("type" => "datetime", "not null" => "1", "default" => "0000-00-00 00:00:00"),
- "start" => array("type" => "datetime", "not null" => "1", "default" => "0000-00-00 00:00:00"),
- "finish" => array("type" => "datetime", "not null" => "1", "default" => "0000-00-00 00:00:00"),
+ "created" => array("type" => "datetime", "not null" => "1", "default" => NULL_DATE),
+ "edited" => array("type" => "datetime", "not null" => "1", "default" => NULL_DATE),
+ "start" => array("type" => "datetime", "not null" => "1", "default" => NULL_DATE),
+ "finish" => array("type" => "datetime", "not null" => "1", "default" => NULL_DATE),
"summary" => array("type" => "text"),
"desc" => array("type" => "text"),
"location" => array("type" => "text"),
"network" => array("type" => "varchar(32)", "not null" => "1", "default" => ""),
"alias" => array("type" => "varchar(255)", "not null" => "1", "default" => ""),
"pubkey" => array("type" => "text"),
- "updated" => array("type" => "datetime", "not null" => "1", "default" => "0000-00-00 00:00:00"),
+ "updated" => array("type" => "datetime", "not null" => "1", "default" => NULL_DATE),
),
"indexes" => array(
"PRIMARY" => array("id"),
"request" => array("type" => "varchar(255)", "not null" => "1", "default" => ""),
"photo" => array("type" => "varchar(255)", "not null" => "1", "default" => ""),
"note" => array("type" => "text"),
- "created" => array("type" => "datetime", "not null" => "1", "default" => "0000-00-00 00:00:00"),
+ "created" => array("type" => "datetime", "not null" => "1", "default" => NULL_DATE),
),
"indexes" => array(
"PRIMARY" => array("id"),
"nurl" => array("type" => "varchar(255)", "not null" => "1", "default" => ""),
"photo" => array("type" => "varchar(255)", "not null" => "1", "default" => ""),
"connect" => array("type" => "varchar(255)", "not null" => "1", "default" => ""),
- "created" => array("type" => "datetime", "not null" => "1", "default" => "0000-00-00 00:00:00"),
- "updated" => array("type" => "datetime", "default" => "0000-00-00 00:00:00"),
- "last_contact" => array("type" => "datetime", "default" => "0000-00-00 00:00:00"),
- "last_failure" => array("type" => "datetime", "default" => "0000-00-00 00:00:00"),
+ "created" => array("type" => "datetime", "not null" => "1", "default" => NULL_DATE),
+ "updated" => array("type" => "datetime", "default" => NULL_DATE),
+ "last_contact" => array("type" => "datetime", "default" => NULL_DATE),
+ "last_failure" => array("type" => "datetime", "default" => NULL_DATE),
"location" => array("type" => "varchar(255)", "not null" => "1", "default" => ""),
"about" => array("type" => "text"),
"keywords" => array("type" => "text"),
"uid" => array("type" => "int(11)", "not null" => "1", "default" => "0"),
"gcid" => array("type" => "int(11)", "not null" => "1", "default" => "0"),
"zcid" => array("type" => "int(11)", "not null" => "1", "default" => "0"),
- "updated" => array("type" => "datetime", "not null" => "1", "default" => "0000-00-00 00:00:00"),
+ "updated" => array("type" => "datetime", "not null" => "1", "default" => NULL_DATE),
),
"indexes" => array(
"PRIMARY" => array("id"),
"noscrape" => array("type" => "varchar(255)", "not null" => "1", "default" => ""),
"network" => array("type" => "varchar(32)", "not null" => "1", "default" => ""),
"platform" => array("type" => "varchar(255)", "not null" => "1", "default" => ""),
- "created" => array("type" => "datetime", "not null" => "1", "default" => "0000-00-00 00:00:00"),
- "last_poco_query" => array("type" => "datetime", "default" => "0000-00-00 00:00:00"),
- "last_contact" => array("type" => "datetime", "default" => "0000-00-00 00:00:00"),
- "last_failure" => array("type" => "datetime", "default" => "0000-00-00 00:00:00"),
+ "created" => array("type" => "datetime", "not null" => "1", "default" => NULL_DATE),
+ "last_poco_query" => array("type" => "datetime", "default" => NULL_DATE),
+ "last_contact" => array("type" => "datetime", "default" => NULL_DATE),
+ "last_failure" => array("type" => "datetime", "default" => NULL_DATE),
),
"indexes" => array(
"PRIMARY" => array("id"),
"duplex" => array("type" => "tinyint(1)", "not null" => "1", "default" => "0"),
"note" => array("type" => "text"),
"hash" => array("type" => "varchar(255)", "not null" => "1", "default" => ""),
- "datetime" => array("type" => "datetime", "not null" => "1", "default" => "0000-00-00 00:00:00"),
+ "datetime" => array("type" => "datetime", "not null" => "1", "default" => NULL_DATE),
"blocked" => array("type" => "tinyint(1)", "not null" => "1", "default" => "1"),
"ignore" => array("type" => "tinyint(1)", "not null" => "1", "default" => "0"),
),
"parent-uri" => array("type" => "varchar(255)", "not null" => "1", "default" => ""),
"extid" => array("type" => "varchar(255)", "not null" => "1", "default" => ""),
"thr-parent" => array("type" => "varchar(255)", "not null" => "1", "default" => ""),
- "created" => array("type" => "datetime", "not null" => "1", "default" => "0000-00-00 00:00:00"),
- "edited" => array("type" => "datetime", "not null" => "1", "default" => "0000-00-00 00:00:00"),
- "commented" => array("type" => "datetime", "not null" => "1", "default" => "0000-00-00 00:00:00"),
- "received" => array("type" => "datetime", "not null" => "1", "default" => "0000-00-00 00:00:00"),
- "changed" => array("type" => "datetime", "not null" => "1", "default" => "0000-00-00 00:00:00"),
+ "created" => array("type" => "datetime", "not null" => "1", "default" => NULL_DATE),
+ "edited" => array("type" => "datetime", "not null" => "1", "default" => NULL_DATE),
+ "commented" => array("type" => "datetime", "not null" => "1", "default" => NULL_DATE),
+ "received" => array("type" => "datetime", "not null" => "1", "default" => NULL_DATE),
+ "changed" => array("type" => "datetime", "not null" => "1", "default" => NULL_DATE),
"owner-id" => array("type" => "int(11)", "not null" => "1", "default" => "0"),
"owner-name" => array("type" => "varchar(255)", "not null" => "1", "default" => ""),
"owner-link" => array("type" => "varchar(255)", "not null" => "1", "default" => ""),
"parent-uri" => array("parent-uri"),
"extid" => array("extid"),
"uid_id" => array("uid","id"),
+ "uid_contactid_id" => array("uid","contact-id","id"),
"uid_created" => array("uid","created"),
"uid_unseen_contactid" => array("uid","unseen","contact-id"),
"uid_network_received" => array("uid","network","received"),
"id" => array("type" => "int(11)", "not null" => "1", "extra" => "auto_increment", "primary" => "1"),
"name" => array("type" => "varchar(128)", "not null" => "1", "default" => ""),
"locked" => array("type" => "tinyint(1)", "not null" => "1", "default" => "0"),
- "created" => array("type" => "datetime", "default" => "0000-00-00 00:00:00"),
+ "created" => array("type" => "datetime", "default" => NULL_DATE),
),
"indexes" => array(
"PRIMARY" => array("id"),
"unknown" => array("type" => "tinyint(1)", "not null" => "1", "default" => "0"),
"uri" => array("type" => "varchar(255)", "not null" => "1", "default" => ""),
"parent-uri" => array("type" => "varchar(255)", "not null" => "1", "default" => ""),
- "created" => array("type" => "datetime", "not null" => "1", "default" => "0000-00-00 00:00:00"),
+ "created" => array("type" => "datetime", "not null" => "1", "default" => NULL_DATE),
),
"indexes" => array(
"PRIMARY" => array("id"),
"action" => array("type" => "int(11)", "not null" => "1", "default" => "0"),
"movetofolder" => array("type" => "varchar(255)", "not null" => "1", "default" => ""),
"pubmail" => array("type" => "tinyint(1)", "not null" => "1", "default" => "0"),
- "last_check" => array("type" => "datetime", "not null" => "1", "default" => "0000-00-00 00:00:00"),
+ "last_check" => array("type" => "datetime", "not null" => "1", "default" => NULL_DATE),
),
"indexes" => array(
"PRIMARY" => array("id"),
"name" => array("type" => "varchar(255)", "not null" => "1", "default" => ""),
"url" => array("type" => "varchar(255)", "not null" => "1", "default" => ""),
"photo" => array("type" => "varchar(255)", "not null" => "1", "default" => ""),
- "date" => array("type" => "datetime", "not null" => "1", "default" => "0000-00-00 00:00:00"),
+ "date" => array("type" => "datetime", "not null" => "1", "default" => NULL_DATE),
"msg" => array("type" => "mediumtext"),
"uid" => array("type" => "int(11)", "not null" => "1", "default" => "0"),
"link" => array("type" => "varchar(255)", "not null" => "1", "default" => ""),
"fields" => array(
"url" => array("type" => "varbinary(255)", "not null" => "1", "primary" => "1"),
"content" => array("type" => "mediumtext"),
- "created" => array("type" => "datetime", "not null" => "1", "default" => "0000-00-00 00:00:00"),
+ "created" => array("type" => "datetime", "not null" => "1", "default" => NULL_DATE),
),
"indexes" => array(
"PRIMARY" => array("url"),
"guessing" => array("type" => "tinyint(1)", "not null" => "1", "default" => "0", "primary" => "1"),
"oembed" => array("type" => "tinyint(1)", "not null" => "1", "default" => "0", "primary" => "1"),
"content" => array("type" => "mediumtext"),
- "created" => array("type" => "datetime", "not null" => "1", "default" => "0000-00-00 00:00:00"),
+ "created" => array("type" => "datetime", "not null" => "1", "default" => NULL_DATE),
),
"indexes" => array(
"PRIMARY" => array("url", "guessing", "oembed"),
"contact-id" => array("type" => "int(10) unsigned", "not null" => "1", "default" => "0"),
"guid" => array("type" => "varchar(64)", "not null" => "1", "default" => ""),
"resource-id" => array("type" => "varchar(255)", "not null" => "1", "default" => ""),
- "created" => array("type" => "datetime", "not null" => "1", "default" => "0000-00-00 00:00:00"),
- "edited" => array("type" => "datetime", "not null" => "1", "default" => "0000-00-00 00:00:00"),
+ "created" => array("type" => "datetime", "not null" => "1", "default" => NULL_DATE),
+ "edited" => array("type" => "datetime", "not null" => "1", "default" => NULL_DATE),
"title" => array("type" => "varchar(255)", "not null" => "1", "default" => ""),
"desc" => array("type" => "text"),
"album" => array("type" => "varchar(255)", "not null" => "1", "default" => ""),
"fields" => array(
"pid" => array("type" => "int(10) unsigned", "not null" => "1", "primary" => "1"),
"command" => array("type" => "varbinary(32)", "not null" => "1", "default" => ""),
- "created" => array("type" => "datetime", "not null" => "1", "default" => "0000-00-00 00:00:00"),
+ "created" => array("type" => "datetime", "not null" => "1", "default" => NULL_DATE),
),
"indexes" => array(
"PRIMARY" => array("pid"),
"gender" => array("type" => "varchar(32)", "not null" => "1", "default" => ""),
"marital" => array("type" => "varchar(255)", "not null" => "1", "default" => ""),
"with" => array("type" => "text"),
- "howlong" => array("type" => "datetime", "not null" => "1", "default" => "0000-00-00 00:00:00"),
+ "howlong" => array("type" => "datetime", "not null" => "1", "default" => NULL_DATE),
"sexual" => array("type" => "varchar(255)", "not null" => "1", "default" => ""),
"politic" => array("type" => "varchar(255)", "not null" => "1", "default" => ""),
"religion" => array("type" => "varchar(255)", "not null" => "1", "default" => ""),
"topic" => array("type" => "varchar(255)", "not null" => "1", "default" => ""),
"nickname" => array("type" => "varchar(255)", "not null" => "1", "default" => ""),
"push" => array("type" => "int(11)", "not null" => "1", "default" => "0"),
- "last_update" => array("type" => "datetime", "not null" => "1", "default" => "0000-00-00 00:00:00"),
+ "last_update" => array("type" => "datetime", "not null" => "1", "default" => NULL_DATE),
"secret" => array("type" => "varchar(255)", "not null" => "1", "default" => ""),
),
"indexes" => array(
"id" => array("type" => "int(11)", "not null" => "1", "extra" => "auto_increment", "primary" => "1"),
"cid" => array("type" => "int(11)", "not null" => "1", "default" => "0"),
"network" => array("type" => "varchar(32)", "not null" => "1", "default" => ""),
- "created" => array("type" => "datetime", "not null" => "1", "default" => "0000-00-00 00:00:00"),
- "last" => array("type" => "datetime", "not null" => "1", "default" => "0000-00-00 00:00:00"),
+ "created" => array("type" => "datetime", "not null" => "1", "default" => NULL_DATE),
+ "last" => array("type" => "datetime", "not null" => "1", "default" => NULL_DATE),
"content" => array("type" => "mediumtext"),
"batch" => array("type" => "tinyint(1)", "not null" => "1", "default" => "0"),
),
"fields" => array(
"id" => array("type" => "int(11) unsigned", "not null" => "1", "extra" => "auto_increment", "primary" => "1"),
"hash" => array("type" => "varchar(255)", "not null" => "1", "default" => ""),
- "created" => array("type" => "datetime", "not null" => "1", "default" => "0000-00-00 00:00:00"),
+ "created" => array("type" => "datetime", "not null" => "1", "default" => NULL_DATE),
"uid" => array("type" => "int(11) unsigned", "not null" => "1", "default" => "0"),
"password" => array("type" => "varchar(255)", "not null" => "1", "default" => ""),
"language" => array("type" => "varchar(16)", "not null" => "1", "default" => ""),
"spam" => array("type" => "int(11)", "not null" => "1", "default" => "0"),
"ham" => array("type" => "int(11)", "not null" => "1", "default" => "0"),
"term" => array("type" => "varchar(255)", "not null" => "1", "default" => ""),
- "date" => array("type" => "datetime", "not null" => "1", "default" => "0000-00-00 00:00:00"),
+ "date" => array("type" => "datetime", "not null" => "1", "default" => NULL_DATE),
),
"indexes" => array(
"PRIMARY" => array("id"),
"term" => array("type" => "varchar(255)", "not null" => "1", "default" => ""),
"url" => array("type" => "varchar(255)", "not null" => "1", "default" => ""),
"guid" => array("type" => "varchar(255)", "not null" => "1", "default" => ""),
- "created" => array("type" => "datetime", "not null" => "1", "default" => "0000-00-00 00:00:00"),
- "received" => array("type" => "datetime", "not null" => "1", "default" => "0000-00-00 00:00:00"),
+ "created" => array("type" => "datetime", "not null" => "1", "default" => NULL_DATE),
+ "received" => array("type" => "datetime", "not null" => "1", "default" => NULL_DATE),
"global" => array("type" => "tinyint(1)", "not null" => "1", "default" => "0"),
"aid" => array("type" => "int(10) unsigned", "not null" => "1", "default" => "0"),
"uid" => array("type" => "int(10) unsigned", "not null" => "1", "default" => "0"),
"gcontact-id" => array("type" => "int(11) unsigned", "not null" => "1", "default" => "0"),
"owner-id" => array("type" => "int(11) unsigned", "not null" => "1", "default" => "0"),
"author-id" => array("type" => "int(11) unsigned", "not null" => "1", "default" => "0"),
- "created" => array("type" => "datetime", "not null" => "1", "default" => "0000-00-00 00:00:00"),
- "edited" => array("type" => "datetime", "not null" => "1", "default" => "0000-00-00 00:00:00"),
- "commented" => array("type" => "datetime", "not null" => "1", "default" => "0000-00-00 00:00:00"),
- "received" => array("type" => "datetime", "not null" => "1", "default" => "0000-00-00 00:00:00"),
- "changed" => array("type" => "datetime", "not null" => "1", "default" => "0000-00-00 00:00:00"),
+ "created" => array("type" => "datetime", "not null" => "1", "default" => NULL_DATE),
+ "edited" => array("type" => "datetime", "not null" => "1", "default" => NULL_DATE),
+ "commented" => array("type" => "datetime", "not null" => "1", "default" => NULL_DATE),
+ "received" => array("type" => "datetime", "not null" => "1", "default" => NULL_DATE),
+ "changed" => array("type" => "datetime", "not null" => "1", "default" => NULL_DATE),
"wall" => array("type" => "tinyint(1)", "not null" => "1", "default" => "0"),
"private" => array("type" => "tinyint(1)", "not null" => "1", "default" => "0"),
"pubmail" => array("type" => "tinyint(1)", "not null" => "1", "default" => "0"),
"uid_contactid_created" => array("uid","contact-id","created"),
"uid_created" => array("uid","created"),
"uid_commented" => array("uid","commented"),
+ "uid_wall_created" => array("uid","wall","created"),
)
);
$database["tokens"] = array(
"openid" => array("type" => "varchar(255)", "not null" => "1", "default" => ""),
"timezone" => array("type" => "varchar(128)", "not null" => "1", "default" => ""),
"language" => array("type" => "varchar(32)", "not null" => "1", "default" => "en"),
- "register_date" => array("type" => "datetime", "not null" => "1", "default" => "0000-00-00 00:00:00"),
- "login_date" => array("type" => "datetime", "not null" => "1", "default" => "0000-00-00 00:00:00"),
+ "register_date" => array("type" => "datetime", "not null" => "1", "default" => NULL_DATE),
+ "login_date" => array("type" => "datetime", "not null" => "1", "default" => NULL_DATE),
"default-location" => array("type" => "varchar(255)", "not null" => "1", "default" => ""),
"allow_location" => array("type" => "tinyint(1)", "not null" => "1", "default" => "0"),
"theme" => array("type" => "varchar(255)", "not null" => "1", "default" => ""),
"expire" => array("type" => "int(11) unsigned", "not null" => "1", "default" => "0"),
"account_removed" => array("type" => "tinyint(1)", "not null" => "1", "default" => "0"),
"account_expired" => array("type" => "tinyint(1)", "not null" => "1", "default" => "0"),
- "account_expires_on" => array("type" => "datetime", "not null" => "1", "default" => "0000-00-00 00:00:00"),
- "expire_notification_sent" => array("type" => "datetime", "not null" => "1", "default" => "0000-00-00 00:00:00"),
+ "account_expires_on" => array("type" => "datetime", "not null" => "1", "default" => NULL_DATE),
+ "expire_notification_sent" => array("type" => "datetime", "not null" => "1", "default" => NULL_DATE),
"service_class" => array("type" => "varchar(32)", "not null" => "1", "default" => ""),
"def_gid" => array("type" => "int(11)", "not null" => "1", "default" => "0"),
"allow_cid" => array("type" => "mediumtext"),
"id" => array("type" => "int(11)", "not null" => "1", "extra" => "auto_increment", "primary" => "1"),
"parameter" => array("type" => "text"),
"priority" => array("type" => "tinyint(3) unsigned", "not null" => "1", "default" => "0"),
- "created" => array("type" => "datetime", "not null" => "1", "default" => "0000-00-00 00:00:00"),
+ "created" => array("type" => "datetime", "not null" => "1", "default" => NULL_DATE),
"pid" => array("type" => "int(11)", "not null" => "1", "default" => "0"),
- "executed" => array("type" => "datetime", "not null" => "1", "default" => "0000-00-00 00:00:00"),
+ "executed" => array("type" => "datetime", "not null" => "1", "default" => NULL_DATE),
),
"indexes" => array(
"PRIMARY" => array("id"),
set_config('system','build',DB_UPDATE_VERSION);
return;
case "dumpsql":
- // For the dump that is used to create the database.sql we always assume utfmb4
- $charset = "utf8mb4";
- print_structure(db_definition($charset), $charset);
+ print_structure(db_definition());
return;
}
}