]> git.mxchange.org Git - friendica.git/blobdiff - include/dbstructure.php
so this is why my db updates were reverted ;-)
[friendica.git] / include / dbstructure.php
index 309b7e05aff42064146edaa7eb812e4ee02fb845..bdf6b8924692380879eca9e17b5abe66eefc4f26 100644 (file)
@@ -1,5 +1,4 @@
 <?php
-
 require_once("boot.php");
 
 function dbstructure_run(&$argv, &$argc) {
@@ -13,13 +12,10 @@ function dbstructure_run(&$argv, &$argc) {
                @include(".htconfig.php");
                require_once("include/dba.php");
                $db = new dba($db_host, $db_user, $db_pass, $db_data);
-                       unset($db_host, $db_user, $db_pass, $db_data);
+                       unset($db_host, $db_user, $db_pass, $db_data);
        }
 
-       load_config('config');
-       load_config('system');
-
-       update_structure($a);
+       update_structure(true, true);
 }
 
 if (array_search(__file__,get_included_files())===0){
@@ -67,9 +63,9 @@ function table_structure($table) {
        return(array("fields"=>$fielddata, "indexes"=>$indexdata));
 }
 
-function print_structure($db) {
-       foreach ($db AS $name => $structure) {
-               echo "\t".'$db["'.$name."\"] = array(\n";
+function print_structure($database) {
+       foreach ($database AS $name => $structure) {
+               echo "\t".'$database["'.$name."\"] = array(\n";
 
                echo "\t\t\t".'"fields" => array('."\n";
                foreach ($structure["fields"] AS $fieldname => $parameters) {
@@ -94,17 +90,20 @@ function print_structure($db) {
        }
 }
 
-function update_structure($a) {
+function update_structure($verbose, $action) {
+       global $a, $db;
+
+       $errors = false;
 
        // Get the current structure
-       $db = array();
+       $database = array();
 
        $tables = q("show tables");
 
        foreach ($tables AS $table) {
                $table = current($table);
 
-               $db[$table] = table_structure($table);
+               $database[$table] = table_structure($table);
        }
 
        // Get the definition
@@ -112,34 +111,74 @@ function update_structure($a) {
 
        // Compare it
        foreach ($definition AS $name => $structure) {
-               if (!isset($db[$name]))
-                       db_create_table($name, $structure["fields"]);
-               else {
+               $sql3="";
+               if (!isset($database[$name])) {
+                       $r = db_create_table($name, $structure["fields"], $verbose, $action);
+                        if(false === $r)
+                               $errors .=  t('Errors encountered creating database tables.').$name.EOL;
+               } else {
                        // Compare the field structure field by field
                        foreach ($structure["fields"] AS $fieldname => $parameters) {
-                               if (!isset($db[$name]["fields"][$fieldname]))
-                                       db_add_table_field($name, $fieldname, $parameters);
-                               else {
+                               if (!isset($database[$name]["fields"][$fieldname])) {
+                                       $sql2=db_add_table_field($name, $fieldname, $parameters);
+                                       if ($sql3 == "")
+                                               $sql3 = "ALTER TABLE `".$name."` ".$sql2;
+                                       else
+                                               $sql3 .= ", ".$sql2;
+                               } else {
                                        // Compare the field definition
-                                       $current_field_definition = implode($db[$name]["fields"][$fieldname]);
+                                       $current_field_definition = implode($database[$name]["fields"][$fieldname]);
                                        $new_field_definition = implode($parameters);
-                                       if ($current_field_definition != $new_field_definition)
-                                               db_modify_table_field($name, $fieldname, $parameters);
+                                       if ($current_field_definition != $new_field_definition) {
+                                               $sql2=db_modify_table_field($fieldname, $parameters);
+                                               if ($sql3 == "")
+                                                       $sql3 = "ALTER TABLE `".$name."` ".$sql2;
+                                               else
+                                                       $sql3 .= ", ".$sql2;
+                                       }
+
                                }
                        }
                }
-
                // Drop the index if it isn't present in the definition
-               if (isset($db[$name]))
-                       foreach ($db[$name]["indexes"] AS $indexname => $fieldnames)
-                               if (!isset($structure["indexes"][$indexname]))
-                                       db_drop_index($name, $indexname);
+               if (isset($database[$name]))
+                       foreach ($database[$name]["indexes"] AS $indexname => $fieldnames)
+                               if (!isset($structure["indexes"][$indexname])) {
+                                       $sql2=db_drop_index($indexname);
+                                       if ($sql3 == "")
+                                               $sql3 = "ALTER TABLE `".$name."` ".$sql2;
+                                       else
+                                               $sql3 .= ", ".$sql2;
+                               }
 
                // Create the index
-               foreach ($structure["indexes"] AS $indexname => $fieldnames)
-                       if (!isset($db[$name]["indexes"][$indexname]))
-                               db_create_index($name, $indexname, $fieldnames);
+               foreach ($structure["indexes"] AS $indexname => $fieldnames) {
+                       if (!isset($database[$name]["indexes"][$indexname])) {
+                               $sql2=db_create_index($indexname, $fieldnames);
+                               if ($sql2 != "") {
+                                       if ($sql3 == "")
+                                               $sql3 = "ALTER TABLE `".$name."` ".$sql2;
+                                       else
+                                               $sql3 .= ", ".$sql2;
+                               }
+                       }
+               }
+
+               if ($sql3 != "") {
+                       $sql3 .= ";";
+
+                       if ($verbose)
+                               echo $sql3."\n";
+
+                       if ($action) {
+                               $r = @$db->q($sql3);
+                               if(false === $r)
+                                       $errors .=  t('Errors encountered performing database changes.').$sql3.EOL;
+                       }
+               }
        }
+
+       return $errors;
 }
 
 function db_field_command($parameters, $create = true) {
@@ -160,7 +199,11 @@ function db_field_command($parameters, $create = true) {
        return($fieldstruct);
 }
 
-function db_create_table($name, $fields) {
+function db_create_table($name, $fields, $verbose, $action) {
+       global $a, $db;
+
+       $r = true;
+
        $sql = "";
        foreach($fields AS $fieldname => $field) {
                if ($sql != "")
@@ -170,29 +213,32 @@ function db_create_table($name, $fields) {
        }
 
        $sql = sprintf("CREATE TABLE IF NOT EXISTS `%s` (\n", dbesc($name)).$sql."\n) DEFAULT CHARSET=utf8";
-       echo $sql.";\n";
-       //$ret = q($sql);
+
+       if ($verbose)
+               echo $sql.";\n";
+
+       if ($action)
+               $r = @$db->q($sql);
+
+       return $r;
 }
 
-function db_add_table_field($name, $fieldname, $parameters) {
-       $sql = sprintf("ALTER TABLE `%s` ADD `%s` %s", dbesc($name), dbesc($fieldname), db_field_command($parameters));
-       echo $sql.";\n";
-       //$ret = q($sql);
+function db_add_table_field($fieldname, $parameters) {
+       $sql = sprintf("ADD `%s` %s", dbesc($fieldname), db_field_command($parameters));
+       return($sql);
 }
 
-function db_modify_table_field($name, $fieldname, $parameters) {
-       $sql = sprintf("ALTER TABLE `%s` MODIFY `%s` %s", dbesc($name), dbesc($fieldname), db_field_command($parameters, false));
-       echo $sql.";\n";
-       //$ret = q($sql);
+function db_modify_table_field($fieldname, $parameters) {
+       $sql = sprintf("MODIFY `%s` %s", dbesc($fieldname), db_field_command($parameters, false));
+       return($sql);
 }
 
-function db_drop_index($name, $indexname) {
-       $sql = sprintf("DROP INDEX `%s` ON `%s`", dbesc($indexname), dbesc($name));
-       echo $sql.";\n";
-       //$ret = q($sql);
+function db_drop_index($indexname) {
+       $sql = sprintf("DROP INDEX `%s`", dbesc($indexname));
+       return($sql);
 }
 
-function db_create_index($name, $indexname, $fieldnames) {
+function db_create_index($indexname, $fieldnames) {
 
        if ($indexname == "PRIMARY")
                return;
@@ -208,20 +254,19 @@ function db_create_index($name, $indexname, $fieldnames) {
                        $names .= "`".dbesc($fieldname)."`";
        }
 
-       $sql = sprintf("CREATE INDEX `%s` ON `%s`(%s)", dbesc($indexname), dbesc($name), $names);
-       echo $sql."\n";
-       //$ret = q($sql);
+       $sql = sprintf("ADD INDEX `%s` (%s)", dbesc($indexname), $names);
+       return($sql);
 }
 
 function db_definition() {
 
-       $db = array();
+       $database = array();
 
-       $db["addon"] = array(
+       $database["addon"] = array(
                        "fields" => array(
                                        "id" => array("type" => "int(11)", "not null" => "1", "extra" => "auto_increment", "primary" => "1"),
-                                       "name" => array("type" => "char(255)", "not null" => "1"),
-                                       "version" => array("type" => "char(255)", "not null" => "1"),
+                                       "name" => array("type" => "varchar(255)", "not null" => "1"),
+                                       "version" => array("type" => "varchar(255)", "not null" => "1"),
                                        "installed" => array("type" => "tinyint(1)", "not null" => "1", "default" => "0"),
                                        "hidden" => array("type" => "tinyint(1)", "not null" => "1", "default" => "0"),
                                        "timestamp" => array("type" => "bigint(20)", "not null" => "1", "default" => "0"),
@@ -231,13 +276,13 @@ function db_definition() {
                                        "PRIMARY" => array("id"),
                                        )
                        );
-       $db["attach"] = array(
+       $database["attach"] = array(
                        "fields" => array(
                                        "id" => array("type" => "int(11)", "not null" => "1", "extra" => "auto_increment", "primary" => "1"),
                                        "uid" => array("type" => "int(11)", "not null" => "1"),
-                                       "hash" => array("type" => "char(64)", "not null" => "1"),
-                                       "filename" => array("type" => "char(255)", "not null" => "1"),
-                                       "filetype" => array("type" => "char(64)", "not null" => "1"),
+                                       "hash" => array("type" => "varchar(64)", "not null" => "1"),
+                                       "filename" => array("type" => "varchar(255)", "not null" => "1"),
+                                       "filetype" => array("type" => "varchar(64)", "not null" => "1"),
                                        "filesize" => array("type" => "int(11)", "not null" => "1"),
                                        "data" => array("type" => "longblob", "not null" => "1"),
                                        "created" => array("type" => "datetime", "not null" => "1", "default" => "0000-00-00 00:00:00"),
@@ -251,7 +296,7 @@ function db_definition() {
                                        "PRIMARY" => array("id"),
                                        )
                        );
-       $db["auth_codes"] = array(
+       $database["auth_codes"] = array(
                        "fields" => array(
                                        "id" => array("type" => "varchar(40)", "not null" => "1", "primary" => "1"),
                                        "client_id" => array("type" => "varchar(20)", "not null" => "1"),
@@ -263,9 +308,9 @@ function db_definition() {
                                        "PRIMARY" => array("id"),
                                        )
                        );
-       $db["cache"] = array(
+       $database["cache"] = array(
                        "fields" => array(
-                                       "k" => array("type" => "char(255)", "not null" => "1", "primary" => "1"),
+                                       "k" => array("type" => "varchar(255)", "not null" => "1", "primary" => "1"),
                                        "v" => array("type" => "text", "not null" => "1"),
                                        "updated" => array("type" => "datetime", "not null" => "1"),
                                        ),
@@ -274,20 +319,20 @@ function db_definition() {
                                        "updated" => array("updated"),
                                        )
                        );
-       $db["challenge"] = array(
+       $database["challenge"] = array(
                        "fields" => array(
                                        "id" => array("type" => "int(10) unsigned", "not null" => "1", "extra" => "auto_increment", "primary" => "1"),
-                                       "challenge" => array("type" => "char(255)", "not null" => "1"),
-                                       "dfrn-id" => array("type" => "char(255)", "not null" => "1"),
+                                       "challenge" => array("type" => "varchar(255)", "not null" => "1"),
+                                       "dfrn-id" => array("type" => "varchar(255)", "not null" => "1"),
                                        "expire" => array("type" => "int(11)", "not null" => "1"),
-                                       "type" => array("type" => "char(255)", "not null" => "1"),
-                                       "last_update" => array("type" => "char(255)", "not null" => "1"),
+                                       "type" => array("type" => "varchar(255)", "not null" => "1"),
+                                       "last_update" => array("type" => "varchar(255)", "not null" => "1"),
                                        ),
                        "indexes" => array(
                                        "PRIMARY" => array("id"),
                                        )
                        );
-       $db["clients"] = array(
+       $database["clients"] = array(
                        "fields" => array(
                                        "client_id" => array("type" => "varchar(20)", "not null" => "1", "primary" => "1"),
                                        "pw" => array("type" => "varchar(20)", "not null" => "1"),
@@ -300,19 +345,19 @@ function db_definition() {
                                        "PRIMARY" => array("client_id"),
                                        )
                        );
-       $db["config"] = array(
+       $database["config"] = array(
                        "fields" => array(
                                        "id" => array("type" => "int(10) unsigned", "not null" => "1", "extra" => "auto_increment", "primary" => "1"),
-                                       "cat" => array("type" => "char(255)", "not null" => "1"),
-                                       "k" => array("type" => "char(255)", "not null" => "1"),
+                                       "cat" => array("type" => "varchar(255)", "not null" => "1"),
+                                       "k" => array("type" => "varchar(255)", "not null" => "1"),
                                        "v" => array("type" => "text", "not null" => "1"),
                                        ),
                        "indexes" => array(
                                        "PRIMARY" => array("id"),
-                                       "access" => array("cat","k"),
+                                       "access" => array("cat(30)","k(30)"),
                                        )
                        );
-       $db["contact"] = array(
+       $database["contact"] = array(
                        "fields" => array(
                                        "id" => array("type" => "int(11)", "not null" => "1", "extra" => "auto_increment", "primary" => "1"),
                                        "uid" => array("type" => "int(11)", "not null" => "1"),
@@ -321,23 +366,23 @@ function db_definition() {
                                        "remote_self" => array("type" => "tinyint(1)", "not null" => "1", "default" => "0"),
                                        "rel" => array("type" => "tinyint(1)", "not null" => "1", "default" => "0"),
                                        "duplex" => array("type" => "tinyint(1)", "not null" => "1", "default" => "0"),
-                                       "network" => array("type" => "char(255)", "not null" => "1"),
-                                       "name" => array("type" => "char(255)", "not null" => "1"),
-                                       "nick" => array("type" => "char(255)", "not null" => "1"),
-                                       "attag" => array("type" => "char(255)", "not null" => "1"),
+                                       "network" => array("type" => "varchar(255)", "not null" => "1"),
+                                       "name" => array("type" => "varchar(255)", "not null" => "1"),
+                                       "nick" => array("type" => "varchar(255)", "not null" => "1"),
+                                       "attag" => array("type" => "varchar(255)", "not null" => "1"),
                                        "photo" => array("type" => "text", "not null" => "1"),
                                        "thumb" => array("type" => "text", "not null" => "1"),
                                        "micro" => array("type" => "text", "not null" => "1"),
                                        "site-pubkey" => array("type" => "text", "not null" => "1"),
-                                       "issued-id" => array("type" => "char(255)", "not null" => "1"),
-                                       "dfrn-id" => array("type" => "char(255)", "not null" => "1"),
-                                       "url" => array("type" => "char(255)", "not null" => "1"),
-                                       "nurl" => array("type" => "char(255)", "not null" => "1"),
-                                       "addr" => array("type" => "char(255)", "not null" => "1"),
-                                       "alias" => array("type" => "char(255)", "not null" => "1"),
+                                       "issued-id" => array("type" => "varchar(255)", "not null" => "1"),
+                                       "dfrn-id" => array("type" => "varchar(255)", "not null" => "1"),
+                                       "url" => array("type" => "varchar(255)", "not null" => "1"),
+                                       "nurl" => array("type" => "varchar(255)", "not null" => "1"),
+                                       "addr" => array("type" => "varchar(255)", "not null" => "1"),
+                                       "alias" => array("type" => "varchar(255)", "not null" => "1"),
                                        "pubkey" => array("type" => "text", "not null" => "1"),
                                        "prvkey" => array("type" => "text", "not null" => "1"),
-                                       "batch" => array("type" => "char(255)", "not null" => "1"),
+                                       "batch" => array("type" => "varchar(255)", "not null" => "1"),
                                        "request" => array("type" => "text", "not null" => "1"),
                                        "notify" => array("type" => "text", "not null" => "1"),
                                        "poll" => array("type" => "text", "not null" => "1"),
@@ -347,7 +392,7 @@ function db_definition() {
                                        "ret-aes" => 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" => "char(255)", "not null" => "1"),
+                                       "hub-verify" => array("type" => "varchar(255)", "not null" => "1"),
                                        "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"),
                                        "name-date" => array("type" => "datetime", "not null" => "1", "default" => "0000-00-00 00:00:00"),
@@ -368,7 +413,7 @@ function db_definition() {
                                        "closeness" => array("type" => "tinyint(2)", "not null" => "1", "default" => "99"),
                                        "info" => array("type" => "mediumtext", "not null" => "1"),
                                        "profile-id" => array("type" => "int(11)", "not null" => "1", "default" => "0"),
-                                       "bdyear" => array("type" => "char(4)", "not null" => "1"),
+                                       "bdyear" => array("type" => "varchar(4)", "not null" => "1"),
                                        "bd" => array("type" => "date", "not null" => "1"),
                                        "notify_new_posts" => array("type" => "tinyint(1)", "not null" => "1", "default" => "0"),
                                        "fetch_further_information" => array("type" => "tinyint(1)", "not null" => "1", "default" => "0"),
@@ -378,13 +423,13 @@ function db_definition() {
                                        "uid" => array("uid"),
                                        )
                        );
-       $db["conv"] = array(
+       $database["conv"] = array(
                        "fields" => array(
                                        "id" => array("type" => "int(10) unsigned", "not null" => "1", "extra" => "auto_increment", "primary" => "1"),
-                                       "guid" => array("type" => "char(64)", "not null" => "1"),
+                                       "guid" => array("type" => "varchar(64)", "not null" => "1"),
                                        "recips" => array("type" => "mediumtext", "not null" => "1"),
                                        "uid" => array("type" => "int(11)", "not null" => "1"),
-                                       "creator" => array("type" => "char(255)", "not null" => "1"),
+                                       "creator" => array("type" => "varchar(255)", "not null" => "1"),
                                        "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"),
                                        "subject" => array("type" => "mediumtext", "not null" => "1"),
@@ -394,10 +439,10 @@ function db_definition() {
                                        "uid" => array("uid"),
                                        )
                        );
-       $db["deliverq"] = array(
+       $database["deliverq"] = array(
                        "fields" => array(
                                        "id" => array("type" => "int(10) unsigned", "not null" => "1", "extra" => "auto_increment", "primary" => "1"),
-                                       "cmd" => array("type" => "char(32)", "not null" => "1"),
+                                       "cmd" => array("type" => "varchar(32)", "not null" => "1"),
                                        "item" => array("type" => "int(11)", "not null" => "1"),
                                        "contact" => array("type" => "int(11)", "not null" => "1"),
                                        ),
@@ -405,7 +450,7 @@ function db_definition() {
                                        "PRIMARY" => array("id"),
                                        )
                        );
-       $db["dsprphotoq"] = array(
+       $database["dsprphotoq"] = array(
                        "fields" => array(
                                        "id" => array("type" => "int(10) unsigned", "not null" => "1", "extra" => "auto_increment", "primary" => "1"),
                                        "uid" => array("type" => "int(11)", "not null" => "1"),
@@ -416,12 +461,12 @@ function db_definition() {
                                        "PRIMARY" => array("id"),
                                        )
                        );
-       $db["event"] = array(
+       $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"),
                                        "cid" => array("type" => "int(11)", "not null" => "1"),
-                                       "uri" => array("type" => "char(255)", "not null" => "1"),
+                                       "uri" => array("type" => "varchar(255)", "not null" => "1"),
                                        "created" => array("type" => "datetime", "not null" => "1"),
                                        "edited" => array("type" => "datetime", "not null" => "1"),
                                        "start" => array("type" => "datetime", "not null" => "1"),
@@ -429,7 +474,7 @@ function db_definition() {
                                        "summary" => array("type" => "text", "not null" => "1"),
                                        "desc" => array("type" => "text", "not null" => "1"),
                                        "location" => array("type" => "text", "not null" => "1"),
-                                       "type" => array("type" => "char(255)", "not null" => "1"),
+                                       "type" => array("type" => "varchar(255)", "not null" => "1"),
                                        "nofinish" => array("type" => "tinyint(1)", "not null" => "1", "default" => "0"),
                                        "adjust" => array("type" => "tinyint(1)", "not null" => "1", "default" => "1"),
                                        "ignore" => array("type" => "tinyint(1) unsigned", "not null" => "1", "default" => "0"),
@@ -443,22 +488,22 @@ function db_definition() {
                                        "uid" => array("uid"),
                                        )
                        );
-       $db["fcontact"] = array(
+       $database["fcontact"] = array(
                        "fields" => array(
                                        "id" => array("type" => "int(10) unsigned", "not null" => "1", "extra" => "auto_increment", "primary" => "1"),
-                                       "url" => array("type" => "char(255)", "not null" => "1"),
-                                       "name" => array("type" => "char(255)", "not null" => "1"),
-                                       "photo" => array("type" => "char(255)", "not null" => "1"),
-                                       "request" => array("type" => "char(255)", "not null" => "1"),
-                                       "nick" => array("type" => "char(255)", "not null" => "1"),
-                                       "addr" => array("type" => "char(255)", "not null" => "1"),
-                                       "batch" => array("type" => "char(255)", "not null" => "1"),
-                                       "notify" => array("type" => "char(255)", "not null" => "1"),
-                                       "poll" => array("type" => "char(255)", "not null" => "1"),
-                                       "confirm" => array("type" => "char(255)", "not null" => "1"),
+                                       "url" => array("type" => "varchar(255)", "not null" => "1"),
+                                       "name" => array("type" => "varchar(255)", "not null" => "1"),
+                                       "photo" => array("type" => "varchar(255)", "not null" => "1"),
+                                       "request" => array("type" => "varchar(255)", "not null" => "1"),
+                                       "nick" => array("type" => "varchar(255)", "not null" => "1"),
+                                       "addr" => array("type" => "varchar(255)", "not null" => "1"),
+                                       "batch" => array("type" => "varchar(255)", "not null" => "1"),
+                                       "notify" => array("type" => "varchar(255)", "not null" => "1"),
+                                       "poll" => array("type" => "varchar(255)", "not null" => "1"),
+                                       "confirm" => array("type" => "varchar(255)", "not null" => "1"),
                                        "priority" => array("type" => "tinyint(1)", "not null" => "1"),
-                                       "network" => array("type" => "char(32)", "not null" => "1"),
-                                       "alias" => array("type" => "char(255)", "not null" => "1"),
+                                       "network" => array("type" => "varchar(32)", "not null" => "1"),
+                                       "alias" => array("type" => "varchar(255)", "not null" => "1"),
                                        "pubkey" => array("type" => "text", "not null" => "1"),
                                        "updated" => array("type" => "datetime", "not null" => "1", "default" => "0000-00-00 00:00:00"),
                                        ),
@@ -467,7 +512,7 @@ function db_definition() {
                                        "addr" => array("addr"),
                                        )
                        );
-       $db["ffinder"] = array(
+       $database["ffinder"] = array(
                        "fields" => array(
                                        "id" => array("type" => "int(10) unsigned", "not null" => "1", "extra" => "auto_increment", "primary" => "1"),
                                        "uid" => array("type" => "int(10) unsigned", "not null" => "1"),
@@ -478,11 +523,11 @@ function db_definition() {
                                        "PRIMARY" => array("id"),
                                        )
                        );
-       $db["fserver"] = array(
+       $database["fserver"] = array(
                        "fields" => array(
                                        "id" => array("type" => "int(11)", "not null" => "1", "extra" => "auto_increment", "primary" => "1"),
-                                       "server" => array("type" => "char(255)", "not null" => "1"),
-                                       "posturl" => array("type" => "char(255)", "not null" => "1"),
+                                       "server" => array("type" => "varchar(255)", "not null" => "1"),
+                                       "posturl" => array("type" => "varchar(255)", "not null" => "1"),
                                        "key" => array("type" => "text", "not null" => "1"),
                                        ),
                        "indexes" => array(
@@ -490,15 +535,15 @@ function db_definition() {
                                        "server" => array("server"),
                                        )
                        );
-       $db["fsuggest"] = array(
+       $database["fsuggest"] = array(
                        "fields" => array(
                                        "id" => array("type" => "int(11)", "not null" => "1", "extra" => "auto_increment", "primary" => "1"),
                                        "uid" => array("type" => "int(11)", "not null" => "1"),
                                        "cid" => array("type" => "int(11)", "not null" => "1"),
-                                       "name" => array("type" => "char(255)", "not null" => "1"),
-                                       "url" => array("type" => "char(255)", "not null" => "1"),
-                                       "request" => array("type" => "char(255)", "not null" => "1"),
-                                       "photo" => array("type" => "char(255)", "not null" => "1"),
+                                       "name" => array("type" => "varchar(255)", "not null" => "1"),
+                                       "url" => array("type" => "varchar(255)", "not null" => "1"),
+                                       "request" => array("type" => "varchar(255)", "not null" => "1"),
+                                       "photo" => array("type" => "varchar(255)", "not null" => "1"),
                                        "note" => array("type" => "text", "not null" => "1"),
                                        "created" => array("type" => "datetime", "not null" => "1"),
                                        ),
@@ -506,7 +551,7 @@ function db_definition() {
                                        "PRIMARY" => array("id"),
                                        )
                        );
-       $db["gcign"] = array(
+       $database["gcign"] = array(
                        "fields" => array(
                                        "id" => array("type" => "int(11)", "not null" => "1", "extra" => "auto_increment", "primary" => "1"),
                                        "uid" => array("type" => "int(11)", "not null" => "1"),
@@ -518,21 +563,21 @@ function db_definition() {
                                        "gcid" => array("gcid"),
                                        )
                        );
-       $db["gcontact"] = array(
+       $database["gcontact"] = array(
                        "fields" => array(
                                        "id" => array("type" => "int(10) unsigned", "not null" => "1", "extra" => "auto_increment", "primary" => "1"),
-                                       "name" => array("type" => "char(255)", "not null" => "1"),
-                                       "url" => array("type" => "char(255)", "not null" => "1"),
-                                       "nurl" => array("type" => "char(255)", "not null" => "1"),
-                                       "photo" => array("type" => "char(255)", "not null" => "1"),
-                                       "connect" => array("type" => "char(255)", "not null" => "1"),
+                                       "name" => array("type" => "varchar(255)", "not null" => "1"),
+                                       "url" => array("type" => "varchar(255)", "not null" => "1"),
+                                       "nurl" => array("type" => "varchar(255)", "not null" => "1"),
+                                       "photo" => array("type" => "varchar(255)", "not null" => "1"),
+                                       "connect" => array("type" => "varchar(255)", "not null" => "1"),
                                        ),
                        "indexes" => array(
                                        "PRIMARY" => array("id"),
                                        "nurl" => array("nurl"),
                                        )
                        );
-       $db["glink"] = array(
+       $database["glink"] = array(
                        "fields" => array(
                                        "id" => array("type" => "int(10) unsigned", "not null" => "1", "extra" => "auto_increment", "primary" => "1"),
                                        "cid" => array("type" => "int(11)", "not null" => "1"),
@@ -548,20 +593,20 @@ function db_definition() {
                                        "zcid" => array("zcid"),
                                        )
                        );
-       $db["group"] = array(
+       $database["group"] = array(
                        "fields" => array(
                                        "id" => array("type" => "int(10) unsigned", "not null" => "1", "extra" => "auto_increment", "primary" => "1"),
                                        "uid" => array("type" => "int(10) unsigned", "not null" => "1"),
                                        "visible" => array("type" => "tinyint(1)", "not null" => "1", "default" => "0"),
                                        "deleted" => array("type" => "tinyint(1)", "not null" => "1", "default" => "0"),
-                                       "name" => array("type" => "char(255)", "not null" => "1"),
+                                       "name" => array("type" => "varchar(255)", "not null" => "1"),
                                        ),
                        "indexes" => array(
                                        "PRIMARY" => array("id"),
                                        "uid" => array("uid"),
                                        )
                        );
-       $db["group_member"] = array(
+       $database["group_member"] = array(
                        "fields" => array(
                                        "id" => array("type" => "int(10) unsigned", "not null" => "1", "extra" => "auto_increment", "primary" => "1"),
                                        "uid" => array("type" => "int(10) unsigned", "not null" => "1"),
@@ -573,30 +618,30 @@ function db_definition() {
                                        "uid_gid_contactid" => array("uid","gid","contact-id"),
                                        )
                        );
-       $db["guid"] = array(
+       $database["guid"] = array(
                        "fields" => array(
                                        "id" => array("type" => "int(10) unsigned", "not null" => "1", "extra" => "auto_increment", "primary" => "1"),
-                                       "guid" => array("type" => "char(64)", "not null" => "1"),
+                                       "guid" => array("type" => "varchar(255)", "not null" => "1"),
                                        ),
                        "indexes" => array(
                                        "PRIMARY" => array("id"),
                                        "guid" => array("guid"),
                                        )
                        );
-       $db["hook"] = array(
+       $database["hook"] = array(
                        "fields" => array(
                                        "id" => array("type" => "int(11)", "not null" => "1", "extra" => "auto_increment", "primary" => "1"),
-                                       "hook" => array("type" => "char(255)", "not null" => "1"),
-                                       "file" => array("type" => "char(255)", "not null" => "1"),
-                                       "function" => array("type" => "char(255)", "not null" => "1"),
+                                       "hook" => array("type" => "varchar(255)", "not null" => "1"),
+                                       "file" => array("type" => "varchar(255)", "not null" => "1"),
+                                       "function" => array("type" => "varchar(255)", "not null" => "1"),
                                        "priority" => array("type" => "int(11) unsigned", "not null" => "1", "default" => "0"),
                                        ),
                        "indexes" => array(
                                        "PRIMARY" => array("id"),
-                                       "hook_file_function" => array("hook","file","function"),
+                                       "hook_file_function" => array("hook(30)","file(60)","function(30)"),
                                        )
                        );
-       $db["intro"] = array(
+       $database["intro"] = array(
                        "fields" => array(
                                        "id" => array("type" => "int(10) unsigned", "not null" => "1", "extra" => "auto_increment", "primary" => "1"),
                                        "uid" => array("type" => "int(10) unsigned", "not null" => "1"),
@@ -605,7 +650,7 @@ function db_definition() {
                                        "knowyou" => array("type" => "tinyint(1)", "not null" => "1"),
                                        "duplex" => array("type" => "tinyint(1)", "not null" => "1", "default" => "0"),
                                        "note" => array("type" => "text", "not null" => "1"),
-                                       "hash" => array("type" => "char(255)", "not null" => "1"),
+                                       "hash" => array("type" => "varchar(255)", "not null" => "1"),
                                        "datetime" => array("type" => "datetime", "not null" => "1"),
                                        "blocked" => array("type" => "tinyint(1)", "not null" => "1", "default" => "1"),
                                        "ignore" => array("type" => "tinyint(1)", "not null" => "1", "default" => "0"),
@@ -614,49 +659,49 @@ function db_definition() {
                                        "PRIMARY" => array("id"),
                                        )
                        );
-       $db["item"] = array(
+       $database["item"] = array(
                        "fields" => array(
                                        "id" => array("type" => "int(10) unsigned", "not null" => "1", "extra" => "auto_increment", "primary" => "1"),
-                                       "guid" => array("type" => "char(64)", "not null" => "1"),
-                                       "uri" => array("type" => "char(255)", "not null" => "1"),
+                                       "guid" => array("type" => "varchar(255)", "not null" => "1"),
+                                       "uri" => array("type" => "varchar(255)", "not null" => "1"),
                                        "uid" => array("type" => "int(10) unsigned", "not null" => "1", "default" => "0"),
                                        "contact-id" => array("type" => "int(11)", "not null" => "1"),
-                                       "type" => array("type" => "char(255)", "not null" => "1"),
+                                       "type" => array("type" => "varchar(255)", "not null" => "1"),
                                        "wall" => array("type" => "tinyint(1)", "not null" => "1", "default" => "0"),
                                        "gravity" => array("type" => "tinyint(1)", "not null" => "1", "default" => "0"),
                                        "parent" => array("type" => "int(10) unsigned", "not null" => "1", "default" => "0"),
-                                       "parent-uri" => array("type" => "char(255)", "not null" => "1"),
-                                       "extid" => array("type" => "char(255)", "not null" => "1"),
-                                       "thr-parent" => array("type" => "char(255)", "not null" => "1"),
+                                       "parent-uri" => array("type" => "varchar(255)", "not null" => "1"),
+                                       "extid" => array("type" => "varchar(255)", "not null" => "1"),
+                                       "thr-parent" => array("type" => "varchar(255)", "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"),
                                        "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"),
-                                       "owner-name" => array("type" => "char(255)", "not null" => "1"),
-                                       "owner-link" => array("type" => "char(255)", "not null" => "1"),
-                                       "owner-avatar" => array("type" => "char(255)", "not null" => "1"),
-                                       "author-name" => array("type" => "char(255)", "not null" => "1"),
-                                       "author-link" => array("type" => "char(255)", "not null" => "1"),
-                                       "author-avatar" => array("type" => "char(255)", "not null" => "1"),
-                                       "title" => array("type" => "char(255)", "not null" => "1"),
+                                       "owner-name" => array("type" => "varchar(255)", "not null" => "1"),
+                                       "owner-link" => array("type" => "varchar(255)", "not null" => "1"),
+                                       "owner-avatar" => array("type" => "varchar(255)", "not null" => "1"),
+                                       "author-name" => array("type" => "varchar(255)", "not null" => "1"),
+                                       "author-link" => array("type" => "varchar(255)", "not null" => "1"),
+                                       "author-avatar" => array("type" => "varchar(255)", "not null" => "1"),
+                                       "title" => array("type" => "varchar(255)", "not null" => "1"),
                                        "body" => array("type" => "mediumtext", "not null" => "1"),
-                                       "app" => array("type" => "char(255)", "not null" => "1"),
-                                       "verb" => array("type" => "char(255)", "not null" => "1"),
-                                       "object-type" => array("type" => "char(255)", "not null" => "1"),
+                                       "app" => array("type" => "varchar(255)", "not null" => "1"),
+                                       "verb" => array("type" => "varchar(255)", "not null" => "1"),
+                                       "object-type" => array("type" => "varchar(255)", "not null" => "1"),
                                        "object" => array("type" => "text", "not null" => "1"),
-                                       "target-type" => array("type" => "char(255)", "not null" => "1"),
+                                       "target-type" => array("type" => "varchar(255)", "not null" => "1"),
                                        "target" => array("type" => "text", "not null" => "1"),
                                        "postopts" => array("type" => "text", "not null" => "1"),
-                                       "plink" => array("type" => "char(255)", "not null" => "1"),
-                                       "resource-id" => array("type" => "char(255)", "not null" => "1"),
+                                       "plink" => array("type" => "varchar(255)", "not null" => "1"),
+                                       "resource-id" => array("type" => "varchar(255)", "not null" => "1"),
                                        "event-id" => array("type" => "int(11)", "not null" => "1"),
                                        "tag" => array("type" => "mediumtext", "not null" => "1"),
                                        "attach" => array("type" => "mediumtext", "not null" => "1"),
                                        "inform" => array("type" => "mediumtext", "not null" => "1"),
                                        "file" => array("type" => "mediumtext", "not null" => "1"),
-                                       "location" => array("type" => "char(255)", "not null" => "1"),
-                                       "coord" => array("type" => "char(255)", "not null" => "1"),
+                                       "location" => array("type" => "varchar(255)", "not null" => "1"),
+                                       "coord" => array("type" => "varchar(255)", "not null" => "1"),
                                        "allow_cid" => array("type" => "mediumtext", "not null" => "1"),
                                        "allow_gid" => array("type" => "mediumtext", "not null" => "1"),
                                        "deny_cid" => array("type" => "mediumtext", "not null" => "1"),
@@ -674,7 +719,7 @@ function db_definition() {
                                        "forum_mode" => array("type" => "tinyint(1)", "not null" => "1", "default" => "0"),
                                        "last-child" => array("type" => "tinyint(1) unsigned", "not null" => "1", "default" => "1"),
                                        "mention" => array("type" => "tinyint(1)", "not null" => "1", "default" => "0"),
-                                       "network" => array("type" => "char(32)", "not null" => "1"),
+                                       "network" => array("type" => "varchar(32)", "not null" => "1"),
                                        ),
                        "indexes" => array(
                                        "PRIMARY" => array("id"),
@@ -712,13 +757,13 @@ function db_definition() {
                                        "uid_ownerlink" => array("uid","owner-link"),
                                        )
                        );
-       $db["item_id"] = array(
+       $database["item_id"] = array(
                        "fields" => array(
                                        "id" => array("type" => "int(11)", "not null" => "1", "extra" => "auto_increment", "primary" => "1"),
                                        "iid" => array("type" => "int(11)", "not null" => "1"),
                                        "uid" => array("type" => "int(11)", "not null" => "1"),
-                                       "sid" => array("type" => "char(255)", "not null" => "1"),
-                                       "service" => array("type" => "char(255)", "not null" => "1"),
+                                       "sid" => array("type" => "varchar(255)", "not null" => "1"),
+                                       "service" => array("type" => "varchar(255)", "not null" => "1"),
                                        ),
                        "indexes" => array(
                                        "PRIMARY" => array("id"),
@@ -728,34 +773,34 @@ function db_definition() {
                                        "iid" => array("iid"),
                                        )
                        );
-       $db["locks"] = array(
+       $database["locks"] = array(
                        "fields" => array(
                                        "id" => array("type" => "int(11)", "not null" => "1", "extra" => "auto_increment", "primary" => "1"),
-                                       "name" => array("type" => "char(128)", "not null" => "1"),
+                                       "name" => array("type" => "varchar(128)", "not null" => "1"),
                                        "locked" => array("type" => "tinyint(1)", "not null" => "1", "default" => "0"),
                                        ),
                        "indexes" => array(
                                        "PRIMARY" => array("id"),
                                        )
                        );
-       $db["mail"] = array(
+       $database["mail"] = array(
                        "fields" => array(
                                        "id" => array("type" => "int(10) unsigned", "not null" => "1", "extra" => "auto_increment", "primary" => "1"),
                                        "uid" => array("type" => "int(10) unsigned", "not null" => "1"),
-                                       "guid" => array("type" => "char(64)", "not null" => "1"),
-                                       "from-name" => array("type" => "char(255)", "not null" => "1"),
-                                       "from-photo" => array("type" => "char(255)", "not null" => "1"),
-                                       "from-url" => array("type" => "char(255)", "not null" => "1"),
-                                       "contact-id" => array("type" => "char(255)", "not null" => "1"),
+                                       "guid" => array("type" => "varchar(64)", "not null" => "1"),
+                                       "from-name" => array("type" => "varchar(255)", "not null" => "1"),
+                                       "from-photo" => array("type" => "varchar(255)", "not null" => "1"),
+                                       "from-url" => array("type" => "varchar(255)", "not null" => "1"),
+                                       "contact-id" => array("type" => "varchar(255)", "not null" => "1"),
                                        "convid" => array("type" => "int(11) unsigned", "not null" => "1"),
-                                       "title" => array("type" => "char(255)", "not null" => "1"),
+                                       "title" => array("type" => "varchar(255)", "not null" => "1"),
                                        "body" => array("type" => "mediumtext", "not null" => "1"),
                                        "seen" => array("type" => "tinyint(1)", "not null" => "1"),
                                        "reply" => array("type" => "tinyint(1)", "not null" => "1", "default" => "0"),
                                        "replied" => array("type" => "tinyint(1)", "not null" => "1"),
                                        "unknown" => array("type" => "tinyint(1)", "not null" => "1", "default" => "0"),
-                                       "uri" => array("type" => "char(255)", "not null" => "1"),
-                                       "parent-uri" => array("type" => "char(255)", "not null" => "1"),
+                                       "uri" => array("type" => "varchar(255)", "not null" => "1"),
+                                       "parent-uri" => array("type" => "varchar(255)", "not null" => "1"),
                                        "created" => array("type" => "datetime", "not null" => "1", "default" => "0000-00-00 00:00:00"),
                                        ),
                        "indexes" => array(
@@ -768,19 +813,19 @@ function db_definition() {
                                        "parent-uri" => array("parent-uri"),
                                        )
                        );
-       $db["mailacct"] = array(
+       $database["mailacct"] = array(
                        "fields" => array(
                                        "id" => array("type" => "int(11)", "not null" => "1", "extra" => "auto_increment", "primary" => "1"),
                                        "uid" => array("type" => "int(11)", "not null" => "1"),
-                                       "server" => array("type" => "char(255)", "not null" => "1"),
+                                       "server" => array("type" => "varchar(255)", "not null" => "1"),
                                        "port" => array("type" => "int(11)", "not null" => "1"),
-                                       "ssltype" => array("type" => "char(16)", "not null" => "1"),
-                                       "mailbox" => array("type" => "char(255)", "not null" => "1"),
-                                       "user" => array("type" => "char(255)", "not null" => "1"),
+                                       "ssltype" => array("type" => "varchar(16)", "not null" => "1"),
+                                       "mailbox" => array("type" => "varchar(255)", "not null" => "1"),
+                                       "user" => array("type" => "varchar(255)", "not null" => "1"),
                                        "pass" => array("type" => "text", "not null" => "1"),
-                                       "reply_to" => array("type" => "char(255)", "not null" => "1"),
+                                       "reply_to" => array("type" => "varchar(255)", "not null" => "1"),
                                        "action" => array("type" => "int(11)", "not null" => "1"),
-                                       "movetofolder" => array("type" => "char(255)", "not null" => "1"),
+                                       "movetofolder" => array("type" => "varchar(255)", "not null" => "1"),
                                        "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"),
                                        ),
@@ -788,7 +833,7 @@ function db_definition() {
                                        "PRIMARY" => array("id"),
                                        )
                        );
-       $db["manage"] = array(
+       $database["manage"] = array(
                        "fields" => array(
                                        "id" => array("type" => "int(11)", "not null" => "1", "extra" => "auto_increment", "primary" => "1"),
                                        "uid" => array("type" => "int(11)", "not null" => "1"),
@@ -799,29 +844,29 @@ function db_definition() {
                                        "uid_mid" => array("uid","mid"),
                                        )
                        );
-       $db["notify"] = array(
+       $database["notify"] = array(
                        "fields" => array(
                                        "id" => array("type" => "int(11)", "not null" => "1", "extra" => "auto_increment", "primary" => "1"),
-                                       "hash" => array("type" => "char(64)", "not null" => "1"),
+                                       "hash" => array("type" => "varchar(64)", "not null" => "1"),
                                        "type" => array("type" => "int(11)", "not null" => "1"),
-                                       "name" => array("type" => "char(255)", "not null" => "1"),
-                                       "url" => array("type" => "char(255)", "not null" => "1"),
-                                       "photo" => array("type" => "char(255)", "not null" => "1"),
+                                       "name" => array("type" => "varchar(255)", "not null" => "1"),
+                                       "url" => array("type" => "varchar(255)", "not null" => "1"),
+                                       "photo" => array("type" => "varchar(255)", "not null" => "1"),
                                        "date" => array("type" => "datetime", "not null" => "1"),
                                        "msg" => array("type" => "mediumtext", "not null" => "1"),
                                        "uid" => array("type" => "int(11)", "not null" => "1"),
-                                       "link" => array("type" => "char(255)", "not null" => "1"),
+                                       "link" => array("type" => "varchar(255)", "not null" => "1"),
                                        "parent" => array("type" => "int(11)", "not null" => "1"),
                                        "seen" => array("type" => "tinyint(1)", "not null" => "1", "default" => "0"),
-                                       "verb" => array("type" => "char(255)", "not null" => "1"),
-                                       "otype" => array("type" => "char(16)", "not null" => "1"),
+                                       "verb" => array("type" => "varchar(255)", "not null" => "1"),
+                                       "otype" => array("type" => "varchar(16)", "not null" => "1"),
                                        ),
                        "indexes" => array(
                                        "PRIMARY" => array("id"),
                                        "uid" => array("uid"),
                                        )
                        );
-       $db["notify-threads"] = array(
+       $database["notify-threads"] = array(
                        "fields" => array(
                                        "id" => array("type" => "int(11)", "not null" => "1", "extra" => "auto_increment", "primary" => "1"),
                                        "notify-id" => array("type" => "int(11)", "not null" => "1"),
@@ -835,33 +880,33 @@ function db_definition() {
                                        "receiver-uid" => array("receiver-uid"),
                                        )
                        );
-       $db["pconfig"] = array(
+       $database["pconfig"] = 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"),
-                                       "cat" => array("type" => "char(255)", "not null" => "1"),
-                                       "k" => array("type" => "char(255)", "not null" => "1"),
+                                       "cat" => array("type" => "varchar(255)", "not null" => "1"),
+                                       "k" => array("type" => "varchar(255)", "not null" => "1"),
                                        "v" => array("type" => "mediumtext", "not null" => "1"),
                                        ),
                        "indexes" => array(
                                        "PRIMARY" => array("id"),
-                                       "access" => array("uid","cat","k"),
+                                       "access" => array("uid","cat(30)","k(30)"),
                                        )
                        );
-       $db["photo"] = array(
+       $database["photo"] = array(
                        "fields" => array(
                                        "id" => array("type" => "int(10) unsigned", "not null" => "1", "extra" => "auto_increment", "primary" => "1"),
                                        "uid" => array("type" => "int(10) unsigned", "not null" => "1"),
                                        "contact-id" => array("type" => "int(10) unsigned", "not null" => "1", "default" => "0"),
-                                       "guid" => array("type" => "char(64)", "not null" => "1"),
-                                       "resource-id" => array("type" => "char(255)", "not null" => "1"),
+                                       "guid" => array("type" => "varchar(64)", "not null" => "1"),
+                                       "resource-id" => array("type" => "varchar(255)", "not null" => "1"),
                                        "created" => array("type" => "datetime", "not null" => "1"),
                                        "edited" => array("type" => "datetime", "not null" => "1"),
-                                       "title" => array("type" => "char(255)", "not null" => "1"),
+                                       "title" => array("type" => "varchar(255)", "not null" => "1"),
                                        "desc" => array("type" => "text", "not null" => "1"),
-                                       "album" => array("type" => "char(255)", "not null" => "1"),
-                                       "filename" => array("type" => "char(255)", "not null" => "1"),
-                                       "type" => array("type" => "char(128)", "not null" => "1", "default" => "image/jpeg"),
+                                       "album" => array("type" => "varchar(255)", "not null" => "1"),
+                                       "filename" => array("type" => "varchar(255)", "not null" => "1"),
+                                       "type" => array("type" => "varchar(128)", "not null" => "1", "default" => "image/jpeg"),
                                        "height" => array("type" => "smallint(6)", "not null" => "1"),
                                        "width" => array("type" => "smallint(6)", "not null" => "1"),
                                        "datasize" => array("type" => "int(10) unsigned", "not null" => "1", "default" => "0"),
@@ -880,7 +925,7 @@ function db_definition() {
                                        "guid" => array("guid"),
                                        )
                        );
-       $db["poll"] = array(
+       $database["poll"] = array(
                        "fields" => array(
                                        "id" => array("type" => "int(11)", "not null" => "1", "extra" => "auto_increment", "primary" => "1"),
                                        "uid" => array("type" => "int(11)", "not null" => "1"),
@@ -900,7 +945,7 @@ function db_definition() {
                                        "uid" => array("uid"),
                                        )
                        );
-       $db["poll_result"] = array(
+       $database["poll_result"] = array(
                        "fields" => array(
                                        "id" => array("type" => "int(11)", "not null" => "1", "extra" => "auto_increment", "primary" => "1"),
                                        "poll_id" => array("type" => "int(11)", "not null" => "1"),
@@ -912,35 +957,35 @@ function db_definition() {
                                        "choice" => array("choice"),
                                        )
                        );
-       $db["profile"] = array(
+       $database["profile"] = array(
                        "fields" => array(
                                        "id" => array("type" => "int(11)", "not null" => "1", "extra" => "auto_increment", "primary" => "1"),
                                        "uid" => array("type" => "int(11)", "not null" => "1"),
-                                       "profile-name" => array("type" => "char(255)", "not null" => "1"),
+                                       "profile-name" => array("type" => "varchar(255)", "not null" => "1"),
                                        "is-default" => array("type" => "tinyint(1)", "not null" => "1", "default" => "0"),
                                        "hide-friends" => array("type" => "tinyint(1)", "not null" => "1", "default" => "0"),
-                                       "name" => array("type" => "char(255)", "not null" => "1"),
-                                       "pdesc" => array("type" => "char(255)", "not null" => "1"),
-                                       "dob" => array("type" => "char(32)", "not null" => "1", "default" => "0000-00-00"),
-                                       "address" => array("type" => "char(255)", "not null" => "1"),
-                                       "locality" => array("type" => "char(255)", "not null" => "1"),
-                                       "region" => array("type" => "char(255)", "not null" => "1"),
-                                       "postal-code" => array("type" => "char(32)", "not null" => "1"),
-                                       "country-name" => array("type" => "char(255)", "not null" => "1"),
-                                       "hometown" => array("type" => "char(255)", "not null" => "1"),
-                                       "gender" => array("type" => "char(32)", "not null" => "1"),
-                                       "marital" => array("type" => "char(255)", "not null" => "1"),
+                                       "name" => array("type" => "varchar(255)", "not null" => "1"),
+                                       "pdesc" => array("type" => "varchar(255)", "not null" => "1"),
+                                       "dob" => array("type" => "varchar(32)", "not null" => "1", "default" => "0000-00-00"),
+                                       "address" => array("type" => "varchar(255)", "not null" => "1"),
+                                       "locality" => array("type" => "varchar(255)", "not null" => "1"),
+                                       "region" => array("type" => "varchar(255)", "not null" => "1"),
+                                       "postal-code" => array("type" => "varchar(32)", "not null" => "1"),
+                                       "country-name" => array("type" => "varchar(255)", "not null" => "1"),
+                                       "hometown" => array("type" => "varchar(255)", "not null" => "1"),
+                                       "gender" => array("type" => "varchar(32)", "not null" => "1"),
+                                       "marital" => array("type" => "varchar(255)", "not null" => "1"),
                                        "with" => array("type" => "text", "not null" => "1"),
                                        "howlong" => array("type" => "datetime", "not null" => "1", "default" => "0000-00-00 00:00:00"),
-                                       "sexual" => array("type" => "char(255)", "not null" => "1"),
-                                       "politic" => array("type" => "char(255)", "not null" => "1"),
-                                       "religion" => array("type" => "char(255)", "not null" => "1"),
+                                       "sexual" => array("type" => "varchar(255)", "not null" => "1"),
+                                       "politic" => array("type" => "varchar(255)", "not null" => "1"),
+                                       "religion" => array("type" => "varchar(255)", "not null" => "1"),
                                        "pub_keywords" => array("type" => "text", "not null" => "1"),
                                        "prv_keywords" => array("type" => "text", "not null" => "1"),
                                        "likes" => array("type" => "text", "not null" => "1"),
                                        "dislikes" => array("type" => "text", "not null" => "1"),
                                        "about" => array("type" => "text", "not null" => "1"),
-                                       "summary" => array("type" => "char(255)", "not null" => "1"),
+                                       "summary" => array("type" => "varchar(255)", "not null" => "1"),
                                        "music" => array("type" => "text", "not null" => "1"),
                                        "book" => array("type" => "text", "not null" => "1"),
                                        "tv" => array("type" => "text", "not null" => "1"),
@@ -950,9 +995,9 @@ function db_definition() {
                                        "work" => array("type" => "text", "not null" => "1"),
                                        "education" => array("type" => "text", "not null" => "1"),
                                        "contact" => array("type" => "text", "not null" => "1"),
-                                       "homepage" => array("type" => "char(255)", "not null" => "1"),
-                                       "photo" => array("type" => "char(255)", "not null" => "1"),
-                                       "thumb" => array("type" => "char(255)", "not null" => "1"),
+                                       "homepage" => array("type" => "varchar(255)", "not null" => "1"),
+                                       "photo" => array("type" => "varchar(255)", "not null" => "1"),
+                                       "thumb" => array("type" => "varchar(255)", "not null" => "1"),
                                        "publish" => array("type" => "tinyint(1)", "not null" => "1", "default" => "0"),
                                        "net-publish" => array("type" => "tinyint(1)", "not null" => "1", "default" => "0"),
                                        ),
@@ -961,39 +1006,39 @@ function db_definition() {
                                        "hometown" => array("hometown"),
                                        )
                        );
-       $db["profile_check"] = array(
+       $database["profile_check"] = array(
                        "fields" => array(
                                        "id" => array("type" => "int(10) unsigned", "not null" => "1", "extra" => "auto_increment", "primary" => "1"),
                                        "uid" => array("type" => "int(10) unsigned", "not null" => "1"),
                                        "cid" => array("type" => "int(10) unsigned", "not null" => "1", "default" => "0"),
-                                       "dfrn_id" => array("type" => "char(255)", "not null" => "1"),
-                                       "sec" => array("type" => "char(255)", "not null" => "1"),
+                                       "dfrn_id" => array("type" => "varchar(255)", "not null" => "1"),
+                                       "sec" => array("type" => "varchar(255)", "not null" => "1"),
                                        "expire" => array("type" => "int(11)", "not null" => "1"),
                                        ),
                        "indexes" => array(
                                        "PRIMARY" => array("id"),
                                        )
                        );
-       $db["push_subscriber"] = array(
+       $database["push_subscriber"] = array(
                        "fields" => array(
                                        "id" => array("type" => "int(11)", "not null" => "1", "extra" => "auto_increment", "primary" => "1"),
                                        "uid" => array("type" => "int(11)", "not null" => "1"),
-                                       "callback_url" => array("type" => "char(255)", "not null" => "1"),
-                                       "topic" => array("type" => "char(255)", "not null" => "1"),
-                                       "nickname" => array("type" => "char(255)", "not null" => "1"),
+                                       "callback_url" => array("type" => "varchar(255)", "not null" => "1"),
+                                       "topic" => array("type" => "varchar(255)", "not null" => "1"),
+                                       "nickname" => array("type" => "varchar(255)", "not null" => "1"),
                                        "push" => array("type" => "int(11)", "not null" => "1"),
                                        "last_update" => array("type" => "datetime", "not null" => "1"),
-                                       "secret" => array("type" => "char(255)", "not null" => "1"),
+                                       "secret" => array("type" => "varchar(255)", "not null" => "1"),
                                        ),
                        "indexes" => array(
                                        "PRIMARY" => array("id"),
                                        )
                        );
-       $db["queue"] = array(
+       $database["queue"] = array(
                        "fields" => array(
                                        "id" => array("type" => "int(11)", "not null" => "1", "extra" => "auto_increment", "primary" => "1"),
                                        "cid" => array("type" => "int(11)", "not null" => "1"),
-                                       "network" => array("type" => "char(32)", "not null" => "1"),
+                                       "network" => array("type" => "varchar(32)", "not null" => "1"),
                                        "created" => array("type" => "datetime", "not null" => "1"),
                                        "last" => array("type" => "datetime", "not null" => "1"),
                                        "content" => array("type" => "mediumtext", "not null" => "1"),
@@ -1008,24 +1053,24 @@ function db_definition() {
                                        "batch" => array("batch"),
                                        )
                        );
-       $db["register"] = array(
+       $database["register"] = array(
                        "fields" => array(
                                        "id" => array("type" => "int(11) unsigned", "not null" => "1", "extra" => "auto_increment", "primary" => "1"),
-                                       "hash" => array("type" => "char(255)", "not null" => "1"),
+                                       "hash" => array("type" => "varchar(255)", "not null" => "1"),
                                        "created" => array("type" => "datetime", "not null" => "1"),
                                        "uid" => array("type" => "int(11) unsigned", "not null" => "1"),
-                                       "password" => array("type" => "char(255)", "not null" => "1"),
-                                       "language" => array("type" => "char(16)", "not null" => "1"),
+                                       "password" => array("type" => "varchar(255)", "not null" => "1"),
+                                       "language" => array("type" => "varchar(16)", "not null" => "1"),
                                        ),
                        "indexes" => array(
                                        "PRIMARY" => array("id"),
                                        )
                        );
-       $db["search"] = array(
+       $database["search"] = array(
                        "fields" => array(
                                        "id" => array("type" => "int(11)", "not null" => "1", "extra" => "auto_increment", "primary" => "1"),
                                        "uid" => array("type" => "int(11)", "not null" => "1"),
-                                       "term" => array("type" => "char(255)", "not null" => "1"),
+                                       "term" => array("type" => "varchar(255)", "not null" => "1"),
                                        ),
                        "indexes" => array(
                                        "PRIMARY" => array("id"),
@@ -1033,10 +1078,10 @@ function db_definition() {
                                        "term" => array("term"),
                                        )
                        );
-       $db["session"] = array(
+       $database["session"] = array(
                        "fields" => array(
                                        "id" => array("type" => "bigint(20) unsigned", "not null" => "1", "extra" => "auto_increment", "primary" => "1"),
-                                       "sid" => array("type" => "char(255)", "not null" => "1"),
+                                       "sid" => array("type" => "varchar(255)", "not null" => "1"),
                                        "data" => array("type" => "text", "not null" => "1"),
                                        "expire" => array("type" => "int(10) unsigned", "not null" => "1"),
                                        ),
@@ -1046,14 +1091,14 @@ function db_definition() {
                                        "expire" => array("expire"),
                                        )
                        );
-       $db["sign"] = array(
+       $database["sign"] = array(
                        "fields" => array(
                                        "id" => array("type" => "int(10) unsigned", "not null" => "1", "extra" => "auto_increment", "primary" => "1"),
                                        "iid" => array("type" => "int(10) unsigned", "not null" => "1", "default" => "0"),
                                        "retract_iid" => array("type" => "int(10) unsigned", "not null" => "1", "default" => "0"),
                                        "signed_text" => array("type" => "mediumtext", "not null" => "1"),
                                        "signature" => array("type" => "text", "not null" => "1"),
-                                       "signer" => array("type" => "char(255)", "not null" => "1"),
+                                       "signer" => array("type" => "varchar(255)", "not null" => "1"),
                                        ),
                        "indexes" => array(
                                        "PRIMARY" => array("id"),
@@ -1061,13 +1106,13 @@ function db_definition() {
                                        "retract_iid" => array("retract_iid"),
                                        )
                        );
-       $db["spam"] = array(
+       $database["spam"] = array(
                        "fields" => array(
                                        "id" => array("type" => "int(11)", "not null" => "1", "extra" => "auto_increment", "primary" => "1"),
                                        "uid" => array("type" => "int(11)", "not null" => "1"),
                                        "spam" => array("type" => "int(11)", "not null" => "1", "default" => "0"),
                                        "ham" => array("type" => "int(11)", "not null" => "1", "default" => "0"),
-                                       "term" => array("type" => "char(255)", "not null" => "1"),
+                                       "term" => array("type" => "varchar(255)", "not null" => "1"),
                                        "date" => array("type" => "datetime", "not null" => "1", "default" => "0000-00-00 00:00:00"),
                                        ),
                        "indexes" => array(
@@ -1078,14 +1123,14 @@ function db_definition() {
                                        "term" => array("term"),
                                        )
                        );
-       $db["term"] = array(
+       $database["term"] = array(
                        "fields" => array(
                                        "tid" => array("type" => "int(10) unsigned", "not null" => "1", "extra" => "auto_increment", "primary" => "1"),
                                        "oid" => array("type" => "int(10) unsigned", "not null" => "1"),
                                        "otype" => array("type" => "tinyint(3) unsigned", "not null" => "1"),
                                        "type" => array("type" => "tinyint(3) unsigned", "not null" => "1"),
-                                       "term" => array("type" => "char(255)", "not null" => "1"),
-                                       "url" => array("type" => "char(255)", "not null" => "1"),
+                                       "term" => array("type" => "varchar(255)", "not null" => "1"),
+                                       "url" => array("type" => "varchar(255)", "not null" => "1"),
                                        "aid" => array("type" => "int(10) unsigned", "not null" => "1", "default" => "0"),
                                        "uid" => array("type" => "int(10) unsigned", "not null" => "1", "default" => "0"),
                                        ),
@@ -1098,7 +1143,7 @@ function db_definition() {
                                        "otype_type_term_tid" => array("otype","type","term","tid"),
                                        )
                        );
-       $db["thread"] = array(
+       $database["thread"] = array(
                        "fields" => array(
                                        "iid" => array("type" => "int(10) unsigned", "not null" => "1", "default" => "0", "primary" => "1"),
                                        "uid" => array("type" => "int(10) unsigned", "not null" => "1", "default" => "0"),
@@ -1121,7 +1166,7 @@ function db_definition() {
                                        "origin" => array("type" => "tinyint(1)", "not null" => "1", "default" => "0"),
                                        "forum_mode" => array("type" => "tinyint(1)", "not null" => "1", "default" => "0"),
                                        "mention" => array("type" => "tinyint(1)", "not null" => "1", "default" => "0"),
-                                       "network" => array("type" => "char(32)", "not null" => "1"),
+                                       "network" => array("type" => "varchar(32)", "not null" => "1"),
                                        ),
                        "indexes" => array(
                                        "PRIMARY" => array("iid"),
@@ -1136,7 +1181,7 @@ function db_definition() {
                                        "uid_commented" => array("uid","commented"),
                                        )
                        );
-       $db["tokens"] = array(
+       $database["tokens"] = array(
                        "fields" => array(
                                        "id" => array("type" => "varchar(40)", "not null" => "1", "primary" => "1"),
                                        "secret" => array("type" => "text", "not null" => "1"),
@@ -1149,35 +1194,35 @@ function db_definition() {
                                        "PRIMARY" => array("id"),
                                        )
                        );
-       $db["unique_contacts"] = array(
+       $database["unique_contacts"] = array(
                        "fields" => array(
                                        "id" => array("type" => "int(11)", "not null" => "1", "extra" => "auto_increment", "primary" => "1"),
-                                       "url" => array("type" => "char(255)", "not null" => "1"),
-                                       "nick" => array("type" => "char(255)", "not null" => "1"),
-                                       "name" => array("type" => "char(255)", "not null" => "1"),
-                                       "avatar" => array("type" => "char(255)", "not null" => "1"),
+                                       "url" => array("type" => "varchar(255)", "not null" => "1"),
+                                       "nick" => array("type" => "varchar(255)", "not null" => "1"),
+                                       "name" => array("type" => "varchar(255)", "not null" => "1"),
+                                       "avatar" => array("type" => "varchar(255)", "not null" => "1"),
                                        ),
                        "indexes" => array(
                                        "PRIMARY" => array("id"),
                                        "url" => array("url"),
                                        )
                        );
-       $db["user"] = array(
+       $database["user"] = array(
                        "fields" => array(
                                        "uid" => array("type" => "int(11)", "not null" => "1", "extra" => "auto_increment", "primary" => "1"),
-                                       "guid" => array("type" => "char(64)", "not null" => "1"),
-                                       "username" => array("type" => "char(255)", "not null" => "1"),
-                                       "password" => array("type" => "char(255)", "not null" => "1"),
-                                       "nickname" => array("type" => "char(255)", "not null" => "1"),
-                                       "email" => array("type" => "char(255)", "not null" => "1"),
-                                       "openid" => array("type" => "char(255)", "not null" => "1"),
-                                       "timezone" => array("type" => "char(128)", "not null" => "1"),
-                                       "language" => array("type" => "char(32)", "not null" => "1", "default" => "en"),
+                                       "guid" => array("type" => "varchar(64)", "not null" => "1"),
+                                       "username" => array("type" => "varchar(255)", "not null" => "1"),
+                                       "password" => array("type" => "varchar(255)", "not null" => "1"),
+                                       "nickname" => array("type" => "varchar(255)", "not null" => "1"),
+                                       "email" => array("type" => "varchar(255)", "not null" => "1"),
+                                       "openid" => array("type" => "varchar(255)", "not null" => "1"),
+                                       "timezone" => array("type" => "varchar(128)", "not null" => "1"),
+                                       "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"),
-                                       "default-location" => array("type" => "char(255)", "not null" => "1"),
+                                       "default-location" => array("type" => "varchar(255)", "not null" => "1"),
                                        "allow_location" => array("type" => "tinyint(1)", "not null" => "1", "default" => "0"),
-                                       "theme" => array("type" => "char(255)", "not null" => "1"),
+                                       "theme" => array("type" => "varchar(255)", "not null" => "1"),
                                        "pubkey" => array("type" => "text", "not null" => "1"),
                                        "prvkey" => array("type" => "text", "not null" => "1"),
                                        "spubkey" => array("type" => "text", "not null" => "1"),
@@ -1192,14 +1237,14 @@ function db_definition() {
                                        "notify-flags" => array("type" => "int(11) unsigned", "not null" => "1", "default" => "65535"),
                                        "page-flags" => array("type" => "int(11) unsigned", "not null" => "1", "default" => "0"),
                                        "prvnets" => array("type" => "tinyint(1)", "not null" => "1", "default" => "0"),
-                                       "pwdreset" => array("type" => "char(255)", "not null" => "1"),
+                                       "pwdreset" => array("type" => "varchar(255)", "not null" => "1"),
                                        "maxreq" => array("type" => "int(11)", "not null" => "1", "default" => "10"),
                                        "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"),
-                                       "service_class" => array("type" => "char(32)", "not null" => "1"),
+                                       "service_class" => array("type" => "varchar(32)", "not null" => "1"),
                                        "def_gid" => array("type" => "int(11)", "not null" => "1", "default" => "0"),
                                        "allow_cid" => array("type" => "mediumtext", "not null" => "1"),
                                        "allow_gid" => array("type" => "mediumtext", "not null" => "1"),
@@ -1212,10 +1257,10 @@ function db_definition() {
                                        "nickname" => array("nickname"),
                                        )
                        );
-       $db["userd"] = array(
+       $database["userd"] = array(
                        "fields" => array(
                                        "id" => array("type" => "int(11)", "not null" => "1", "extra" => "auto_increment", "primary" => "1"),
-                                       "username" => array("type" => "char(255)", "not null" => "1"),
+                                       "username" => array("type" => "varchar(255)", "not null" => "1"),
                                        ),
                        "indexes" => array(
                                        "PRIMARY" => array("id"),
@@ -1223,5 +1268,5 @@ function db_definition() {
                                        )
                        );
 
-       return($db);
+       return($database);
 }