summaryrefslogtreecommitdiff
path: root/modules/system/system.install
diff options
context:
space:
mode:
Diffstat (limited to 'modules/system/system.install')
-rw-r--r--modules/system/system.install214
1 files changed, 214 insertions, 0 deletions
diff --git a/modules/system/system.install b/modules/system/system.install
index 67443602b..8ffd1d5f0 100644
--- a/modules/system/system.install
+++ b/modules/system/system.install
@@ -298,6 +298,220 @@ function system_install() {
db_query("INSERT INTO {variable} (name, value) VALUES ('%s', '%s')", 'node_options_forum', 'a:1:{i:0;s:6:"status";}');
}
+/**
+ * Implementation of hook_schema().
+ */
+function system_schema() {
+ // NOTE: {variable} needs to be created before all other tables, as
+ // some database drivers, e.g. Oracle and DB2, will require variable_get()
+ // and variable_set() for overcoming some database specific limitations.
+ $schema['variable'] = array(
+ 'fields' => array(
+ 'name' => array('type' => 'varchar', 'length' => 128, 'not null' => TRUE, 'default' => ''),
+ 'value' => array('type' => 'text', 'not null' => TRUE, 'size' => 'big'),
+ ),
+ 'primary key' => array('name'),
+ );
+
+ $schema['actions'] = array(
+ 'fields' => array(
+ 'aid' => array('type' => 'varchar', 'length' => 255, 'not null' => TRUE, 'default' => '0'),
+ 'type' => array('type' => 'varchar', 'length' => 32, 'not null' => TRUE, 'default' => ''),
+ 'callback' => array('type' => 'varchar', 'length' => 255, 'not null' => TRUE, 'default' => ''),
+ 'parameters' => array('type' => 'text', 'not null' => TRUE, 'size' => 'big'),
+ 'description' => array('type' => 'varchar', 'length' => 255, 'not null' => TRUE, 'default' => '0'),
+ ),
+ 'primary key' => array('aid'),
+ );
+
+ $schema['actions_aid'] = array(
+ 'fields' => array(
+ 'aid' => array('type' => 'serial', 'unsigned' => TRUE, 'not null' => TRUE),
+ ),
+ 'primary key' => array('aid'),
+ );
+
+ $schema['batch'] = array(
+ 'fields' => array(
+ 'bid' => array('type' => 'serial', 'unsigned' => TRUE, 'not null' => TRUE),
+ 'token' => array('type' => 'varchar', 'length' => 64, 'not null' => TRUE),
+ 'timestamp' => array('type' => 'int', 'not null' => TRUE),
+ 'batch' => array('type' => 'text', 'not null' => FALSE, 'size' => 'big')
+ ),
+ 'primary key' => array('bid'),
+ 'indexes' => array('token' => array('token')),
+ );
+
+ $schema['cache'] = array(
+ 'fields' => array(
+ 'cid' => array('type' => 'varchar', 'length' => 255, 'not null' => TRUE, 'default' => ''),
+ 'data' => array('type' => 'blob', 'not null' => FALSE, 'size' => 'big'),
+ 'expire' => array('type' => 'int', 'not null' => TRUE, 'default' => 0),
+ 'created' => array('type' => 'int', 'not null' => TRUE, 'default' => 0),
+ 'headers' => array('type' => 'text', 'not null' => FALSE),
+ 'serialized' => array('type' => 'int', 'size' => 'small', 'not null' => TRUE, 'default' => 0)
+ ),
+ 'indexes' => array('expire' => array('expire')),
+ 'primary key' => array('cid'),
+ );
+
+ $schema['cache_form'] = $schema['cache'];
+ $schema['cache_page'] = $schema['cache'];
+ $schema['cache_menu'] = $schema['cache'];
+
+ $schema['files'] = array(
+ 'fields' => array(
+ 'fid' => array('type' => 'serial', 'unsigned' => TRUE, 'not null' => TRUE),
+ 'uid' => array('type' => 'int', 'unsigned' => TRUE, 'not null' => TRUE, 'default' => 0),
+ 'filename' => array('type' => 'varchar', 'length' => 255, 'not null' => TRUE, 'default' => ''),
+ 'filepath' => array('type' => 'varchar', 'length' => 255, 'not null' => TRUE, 'default' => ''),
+ 'filemime' => array('type' => 'varchar', 'length' => 255, 'not null' => TRUE, 'default' => ''),
+ 'filesize' => array('type' => 'int', 'unsigned' => TRUE, 'not null' => TRUE, 'default' => 0),
+ 'status' => array('type' => 'int', 'not null' => TRUE, 'default' => 0),
+ 'timestamp' => array('type' => 'int', 'unsigned' => TRUE, 'not null' => TRUE, 'default' => 0),
+ ),
+ 'indexes' => array(
+ 'uid' => array('uid'),
+ 'status' => array('status'),
+ 'timestamp' => array('timestamp'),
+ ),
+ 'primary key' => array('fid'),
+ );
+
+ $schema['flood'] = array(
+ 'fields' => array(
+ 'fid' => array('type' => 'serial', 'not null' => TRUE),
+ 'event' => array('type' => 'varchar', 'length' => 64, 'not null' => TRUE, 'default' => ''),
+ 'hostname' => array('type' => 'varchar', 'length' => 128, 'not null' => TRUE, 'default' => ''),
+ 'timestamp' => array('type' => 'int', 'not null' => TRUE, 'default' => 0)
+ ),
+ 'primary key' => array('fid'),
+ );
+
+ $schema['history'] = array(
+ 'fields' => array(
+ 'uid' => array('type' => 'int', 'not null' => TRUE, 'default' => 0),
+ 'nid' => array('type' => 'int', 'not null' => TRUE, 'default' => 0),
+ 'timestamp' => array('type' => 'int', 'not null' => TRUE, 'default' => 0)
+ ),
+ 'primary key' => array('uid', 'nid'),
+ );
+ $schema['menu_router'] = array(
+ 'fields' => array(
+ 'path' => array('type' => 'varchar', 'length' => 255, 'not null' => TRUE, 'default' => ''),
+ 'load_functions' => array('type' => 'varchar', 'length' => 255, 'not null' => TRUE, 'default' => ''),
+ 'to_arg_functions' => array('type' => 'varchar', 'length' => 255, 'not null' => TRUE, 'default' => ''),
+ 'access_callback' => array('type' => 'varchar', 'length' => 255, 'not null' => TRUE, 'default' => ''),
+ 'access_arguments' => array('type' => 'text', 'not null' => FALSE),
+ 'page_callback' => array('type' => 'varchar', 'length' => 255, 'not null' => TRUE, 'default' => ''),
+ 'page_arguments' => array('type' => 'text', 'not null' => FALSE),
+ 'fit' => array('type' => 'int', 'not null' => TRUE, 'default' => 0),
+ 'number_parts' => array('type' => 'int', 'not null' => TRUE, 'default' => 0, 'size' => 'small'),
+ 'tab_parent' => array('type' => 'varchar', 'length' => 255, 'not null' => TRUE, 'default' => ''),
+ 'tab_root' => array('type' => 'varchar', 'length' => 255, 'not null' => TRUE, 'default' => ''),
+ 'title' => array('type' => 'varchar', 'length' => 255, 'not null' => TRUE, 'default' => ''),
+ 'title_callback' => array('type' => 'varchar', 'length' => 255, 'not null' => TRUE, 'default' => ''),
+ 'title_arguments' => array('type' => 'varchar', 'length' => 255, 'not null' => TRUE, 'default' => ''),
+ 'type' => array('type' => 'int', 'not null' => TRUE, 'default' => 0),
+ 'block_callback' => array('type' => 'varchar', 'length' => 255, 'not null' => TRUE, 'default' => ''),
+ 'description' => array('type' => 'text', 'not null' => TRUE),
+ 'position' => array('type' => 'varchar', 'length' => 255, 'not null' => TRUE, 'default' => ''),
+ 'weight' => array('type' => 'int', 'not null' => TRUE, 'default' => 0),
+ 'file' => array('type' => 'text', 'size' => 'medium')
+ ),
+ 'indexes' => array(
+ 'fit' => array('fit'),
+ 'tab_parent' => array('tab_parent')
+ ),
+ 'primary key' => array('path'),
+ );
+
+ $schema['menu_links'] = array(
+ 'fields' => array(
+ 'menu_name' => array('type' => 'varchar', 'length' => 32, 'not null' => TRUE, 'default' => ''),
+ 'mlid' => array('type' => 'serial', 'unsigned' => TRUE, 'not null' => TRUE),
+ 'plid' => array('type' => 'int', 'unsigned' => TRUE, 'not null' => TRUE, 'default' => 0),
+ 'link_path' => array('type' => 'varchar', 'length' => 255, 'not null' => TRUE, 'default' => ''),
+ 'router_path' => array('type' => 'varchar', 'length' => 255, 'not null' => TRUE, 'default' => ''),
+ 'link_title' => array('type' => 'varchar', 'length' => 255, 'not null' => TRUE, 'default' => ''),
+ 'options' => array('type' => 'text', 'not null' => FALSE),
+ 'module' => array('type' => 'varchar', 'length' => 255, 'not null' => TRUE, 'default' => 'system'),
+ 'hidden' => array('type' => 'int', 'not null' => TRUE, 'default' => 0, 'size' => 'small'),
+ 'external' => array('type' => 'int', 'not null' => TRUE, 'default' => 0, 'size' => 'small'),
+ 'has_children' => array('type' => 'int', 'not null' => TRUE, 'default' => 0, 'size' => 'small'),
+ 'expanded' => array('type' => 'int', 'not null' => TRUE, 'default' => 0, 'size' => 'small'),
+ 'weight' => array('type' => 'int', 'not null' => TRUE, 'default' => 0),
+ 'depth' => array('type' => 'int', 'not null' => TRUE, 'default' => 0, 'size' => 'small'),
+ 'customized' => array('type' => 'int', 'not null' => TRUE, 'default' => 0, 'size' => 'small'),
+ 'p1' => array('type' => 'int', 'unsigned' => TRUE, 'not null' => TRUE, 'default' => 0),
+ 'p2' => array('type' => 'int', 'unsigned' => TRUE, 'not null' => TRUE, 'default' => 0),
+ 'p3' => array('type' => 'int', 'unsigned' => TRUE, 'not null' => TRUE, 'default' => 0),
+ 'p4' => array('type' => 'int', 'unsigned' => TRUE, 'not null' => TRUE, 'default' => 0),
+ 'p5' => array('type' => 'int', 'unsigned' => TRUE, 'not null' => TRUE, 'default' => 0),
+ 'p6' => array('type' => 'int', 'unsigned' => TRUE, 'not null' => TRUE, 'default' => 0),
+ 'p7' => array('type' => 'int', 'unsigned' => TRUE, 'not null' => TRUE, 'default' => 0),
+ 'p8' => array('type' => 'int', 'unsigned' => TRUE, 'not null' => TRUE, 'default' => 0),
+ 'p9' => array('type' => 'int', 'unsigned' => TRUE, 'not null' => TRUE, 'default' => 0),
+ 'updated' => array('type' => 'int', 'not null' => TRUE, 'default' => 0, 'size' => 'small'),
+ ),
+ 'indexes' => array(
+ 'path_menu' => array(array('link_path', 128), 'menu_name'),
+ 'menu_plid_expand_child' => array('menu_name', 'plid', 'expanded', 'has_children'),
+ 'menu_parents' => array('menu_name', 'p1', 'p2', 'p3', 'p4', 'p5', 'p6', 'p7', 'p8', 'p9'),
+ 'router_path' => array(array('router_path', 128)),
+ ),
+ 'primary key' => array('mlid'),
+ );
+
+ $schema['sessions'] = array(
+ 'fields' => array(
+ 'uid' => array('type' => 'int', 'unsigned' => TRUE, 'not null' => TRUE),
+ 'sid' => array('type' => 'varchar', 'length' => 64, 'not null' => TRUE, 'default' => ''),
+ 'hostname' => array('type' => 'varchar', 'length' => 128, 'not null' => TRUE, 'default' => ''),
+ 'timestamp' => array('type' => 'int', 'not null' => TRUE, 'default' => 0),
+ 'cache' => array('type' => 'int', 'not null' => TRUE, 'default' => 0),
+ 'session' => array('type' => 'text', 'not null' => FALSE, 'size' => 'big')
+ ),
+ 'primary key' => array('sid'),
+ 'indexes' => array(
+ 'timestamp' => array('timestamp'),
+ 'uid' => array('uid')
+ ),
+ );
+
+ $schema['system'] = array(
+ 'fields' => array(
+ 'filename' => array('type' => 'varchar', 'length' => 255, 'not null' => TRUE, 'default' => ''),
+ 'name' => array('type' => 'varchar', 'length' => 255, 'not null' => TRUE, 'default' => ''),
+ 'type' => array('type' => 'varchar', 'length' => 255, 'not null' => TRUE, 'default' => ''),
+ 'owner' => array('type' => 'varchar', 'length' => 255, 'not null' => TRUE, 'default' => ''),
+ 'status' => array('type' => 'int', 'not null' => TRUE, 'default' => 0),
+ 'throttle' => array('type' => 'int', 'not null' => TRUE, 'default' => 0, 'size' => 'tiny'),
+ 'bootstrap' => array('type' => 'int', 'not null' => TRUE, 'default' => 0),
+ 'schema_version' => array('type' => 'int', 'not null' => TRUE, 'default' => -1, 'size' => 'small'),
+ 'weight' => array('type' => 'int', 'not null' => TRUE, 'default' => 0),
+ 'info' => array('type' => 'text', 'not null' => FALSE)
+ ),
+ 'primary key' => array('filename'),
+ 'indexes' => array('weight' => array('weight')),
+ );
+
+ $schema['url_alias'] = array(
+ 'fields' => array(
+ 'pid' => array('type' => 'serial', 'unsigned' => TRUE, 'not null' => TRUE),
+ 'src' => array('type' => 'varchar', 'length' => 128, 'not null' => TRUE, 'default' => ''),
+ 'dst' => array('type' => 'varchar', 'length' => 128, 'not null' => TRUE, 'default' => ''),
+ 'language' => array('type' => 'varchar', 'length' => 12, 'not null' => TRUE, 'default' => '')
+ ),
+ 'unique keys' => array('dst_language' => array('dst', 'language')),
+ 'primary key' => array('pid'),
+ 'indexes' => array('src' => array('src')),
+ );
+
+ return $schema;
+}
+
+
// Updates for core
function system_update_110() {