Commit 8cf6fefe authored by Gábor Hojtsy's avatar Gábor Hojtsy

#164983 by multiple contributors: document the core database schemas

parent e5b36135
......@@ -27,45 +27,149 @@ function aggregator_uninstall() {
*/
function aggregator_schema() {
$schema['aggregator_category'] = array(
'description' => t('Stores categories for aggregator feeds and feed items.'),
'fields' => array(
'cid' => array('type' => 'serial', 'not null' => TRUE),
'title' => array('type' => 'varchar', 'length' => 255, 'not null' => TRUE, 'default' => ''),
'description' => array('type' => 'text', 'not null' => TRUE, 'size' => 'big'),
'block' => array('type' => 'int', 'not null' => TRUE, 'default' => 0, 'size' => 'tiny')
'cid' => array(
'type' => 'serial',
'not null' => TRUE,
'description' => t('Primary Key: Unique aggregator category ID.'),
),
'title' => array(
'type' => 'varchar',
'length' => 255,
'not null' => TRUE,
'default' => '',
'description' => t('Title of the category.'),
),
'description' => array(
'type' => 'text',
'not null' => TRUE,
'size' => 'big',
'description' => t('Description of the category'),
),
'block' => array(
'type' => 'int',
'not null' => TRUE,
'default' => 0,
'size' => 'tiny',
'description' => t('The number of recent items to show within the category block.'),
)
),
'primary key' => array('cid'),
'unique keys' => array('title' => array('title')),
);
$schema['aggregator_category_feed'] = array(
'description' => t('Bridge table; maps feeds to categories.'),
'fields' => array(
'fid' => array('type' => 'int', 'not null' => TRUE, 'default' => 0),
'cid' => array('type' => 'int', 'not null' => TRUE, 'default' => 0)
'fid' => array(
'type' => 'int',
'not null' => TRUE,
'default' => 0,
'description' => t("The feed's {aggregator_feed}.fid."),
),
'cid' => array(
'type' => 'int',
'not null' => TRUE,
'default' => 0,
'description' => t('The {aggregator_category}.cid to which the feed is being assigned.'),
)
),
'primary key' => array('fid', 'cid'),
);
$schema['aggregator_category_item'] = array(
'description' => t('Bridge table; maps feed items to categories.'),
'fields' => array(
'iid' => array('type' => 'int', 'not null' => TRUE, 'default' => 0),
'cid' => array('type' => 'int', 'not null' => TRUE, 'default' => 0)
'iid' => array(
'type' => 'int',
'not null' => TRUE,
'default' => 0,
'description' => t("The feed item's {aggregator_feed_item}.iid."),
),
'cid' => array(
'type' => 'int',
'not null' => TRUE,
'default' => 0,
'description' => t('The {aggregator_category}.cid to which the feed item is being assigned.'),
)
),
'primary key' => array('iid', 'cid'),
);
$schema['aggregator_feed'] = array(
'description' => t('Stores feeds to be parsed by the aggregator.'),
'fields' => array(
'fid' => array('type' => 'serial', 'not null' => TRUE),
'title' => array('type' => 'varchar', 'length' => 255, 'not null' => TRUE, 'default' => ''),
'url' => array('type' => 'varchar', 'length' => 255, 'not null' => TRUE, 'default' => ''),
'refresh' => array('type' => 'int', 'not null' => TRUE, 'default' => 0),
'checked' => array('type' => 'int', 'not null' => TRUE, 'default' => 0),
'link' => array('type' => 'varchar', 'length' => 255, 'not null' => TRUE, 'default' => ''),
'description' => array('type' => 'text', 'not null' => TRUE, 'size' => 'big'),
'image' => array('type' => 'text', 'not null' => TRUE, 'size' => 'big'),
'etag' => array('type' => 'varchar', 'length' => 255, 'not null' => TRUE, 'default' => ''),
'modified' => array('type' => 'int', 'not null' => TRUE, 'default' => 0),
'block' => array('type' => 'int', 'not null' => TRUE, 'default' => 0, 'size' => 'tiny')
'fid' => array(
'type' => 'serial',
'not null' => TRUE,
'description' => t('Primary Key: Unique feed ID.'),
),
'title' => array(
'type' => 'varchar',
'length' => 255,
'not null' => TRUE,
'default' => '',
'description' => t('Title of the feed.'),
),
'url' => array(
'type' => 'varchar',
'length' => 255,
'not null' => TRUE,
'default' => '',
'description' => t('URL to the feed.'),
),
'refresh' => array(
'type' => 'int',
'not null' => TRUE,
'default' => 0,
'description' => t('How often to check for new feed items, in seconds.'),
),
'checked' => array(
'type' => 'int',
'not null' => TRUE,
'default' => 0,
'description' => t('Last time feed was checked for new items, as Unix timestamp.'),
),
'link' => array(
'type' => 'varchar',
'length' => 255,
'not null' => TRUE,
'default' => '',
'description' => t('The parent website of the feed; comes from the <link> element in the feed.'),
),
'description' => array(
'type' => 'text',
'not null' => TRUE,
'size' => 'big',
'description' => t("The parent website's description; comes from the <description> element in the feed."),
),
'image' => array(
'type' => 'text',
'not null' => TRUE,
'size' => 'big',
'description' => t('An image representing the feed.'),
),
'etag' => array(
'type' => 'varchar',
'length' => 255,
'not null' => TRUE,
'default' => '',
'description' => t('Entity tag HTTP response header, used for validating cache.'),
),
'modified' => array(
'type' => 'int',
'not null' => TRUE,
'default' => 0,
'description' => t('When the feed was last modified, as a Unix timestamp.'),
),
'block' => array(
'type' => 'int',
'not null' => TRUE,
'default' => 0,
'size' => 'tiny',
'description' => t("Number of items to display in the feed's block."),
)
),
'unique keys' => array(
'url' => array('url'),
......@@ -75,15 +179,57 @@ function aggregator_schema() {
);
$schema['aggregator_item'] = array(
'description' => t('Stores the individual items imported from feeds.'),
'fields' => array(
'iid' => array('type' => 'serial', 'not null' => TRUE),
'fid' => array('type' => 'int', 'not null' => TRUE, 'default' => 0),
'title' => array('type' => 'varchar', 'length' => 255, 'not null' => TRUE, 'default' => ''),
'link' => array('type' => 'varchar', 'length' => 255, 'not null' => TRUE, 'default' => ''),
'author' => array('type' => 'varchar', 'length' => 255, 'not null' => TRUE, 'default' => ''),
'description' => array('type' => 'text', 'not null' => TRUE, 'size' => 'big'),
'timestamp' => array('type' => 'int', 'not null' => FALSE),
'guid' => array('type' => 'varchar', 'length' => 255, 'not null' => FALSE)
'iid' => array(
'type' => 'serial',
'not null' => TRUE,
'description' => t('Primary Key: Unique ID for feed item.'),
),
'fid' => array(
'type' => 'int',
'not null' => TRUE,
'default' => 0,
'description' => t('The {aggregator_feed}.fid to which this item belongs.'),
),
'title' => array(
'type' => 'varchar',
'length' => 255,
'not null' => TRUE,
'default' => '',
'description' => t('Title of the feed item.'),
),
'link' => array(
'type' => 'varchar',
'length' => 255,
'not null' => TRUE,
'default' => '',
'description' => t('Link to the feed item.'),
),
'author' => array(
'type' => 'varchar',
'length' => 255,
'not null' => TRUE,
'default' => '',
'description' => t('Author of the feed item.'),
),
'description' => array(
'type' => 'text',
'not null' => TRUE,
'size' => 'big',
'description' => t('Body of the feed item.'),
),
'timestamp' => array(
'type' => 'int',
'not null' => FALSE,
'description' => t('Post date of feed item, as a Unix timestamp.'),
),
'guid' => array(
'type' => 'varchar',
'length' => 255,
'not null' => FALSE,
'description' => t('Unique identifier for the feed item.'),
)
),
'indexes' => array('fid' => array('fid')),
'primary key' => array('iid'),
......@@ -91,4 +237,3 @@ function aggregator_schema() {
return $schema;
}
......@@ -6,29 +6,120 @@
*/
function block_schema() {
$schema['blocks'] = array(
'description' => t('Stores block settings, such as region and visibility settings.'),
'fields' => array(
'bid' => array('type' => 'serial', 'not null' => TRUE),
'module' => array('type' => 'varchar', 'length' => 64, 'not null' => TRUE, 'default' => ''),
'delta' => array('type' => 'varchar', 'length' => 32, 'not null' => TRUE, 'default' => '0'),
'theme' => array('type' => 'varchar', 'length' => 255, 'not null' => TRUE, 'default' => ''),
'status' => array('type' => 'int', 'not null' => TRUE, 'default' => 0, 'size' => 'tiny'),
'weight' => array('type' => 'int', 'not null' => TRUE, 'default' => 0, 'size' => 'tiny'),
'region' => array('type' => 'varchar', 'length' => 64, 'not null' => TRUE, 'default' => 'left'),
'custom' => array('type' => 'int', 'not null' => TRUE, 'default' => 0, 'size' => 'tiny'),
'throttle' => array('type' => 'int', 'not null' => TRUE, 'default' => 0, 'size' => 'tiny'),
'visibility' => array('type' => 'int', 'not null' => TRUE, 'default' => 0, 'size' => 'tiny'),
'pages' => array('type' => 'text', 'not null' => TRUE),
'title' => array('type' => 'varchar', 'length' => 64, 'not null' => TRUE, 'default' => ''),
'cache' => array('type' => 'int', 'not null' => TRUE, 'default' => 0, 'size' => 'tiny'),
'bid' => array(
'type' => 'serial',
'not null' => TRUE,
'description' => t('Primary Key: Unique block ID.'),
),
'module' => array(
'type' => 'varchar',
'length' => 64,
'not null' => TRUE,
'default' => '',
'description' => t("The module from which the block originates; for example, 'user' for the Who's Online block, and 'block' for any custom blocks."),
),
'delta' => array(
'type' => 'varchar',
'length' => 32,
'not null' => TRUE,
'default' => '0',
'description' => t('Unique ID for block within a module.'),
),
'theme' => array(
'type' => 'varchar',
'length' => 255,
'not null' => TRUE,
'default' => '',
'description' => t('The theme under which the block settings apply.'),
),
'status' => array(
'type' => 'int',
'not null' => TRUE,
'default' => 0,
'size' => 'tiny',
'description' => t('Block enabled status. (1 = enabled, 0 = disabled)'),
),
'weight' => array(
'type' => 'int',
'not null' => TRUE,
'default' => 0,
'size' => 'tiny',
'description' => t('Block weight within region.'),
),
'region' => array(
'type' => 'varchar',
'length' => 64,
'not null' => TRUE,
'default' => 'left',
'description' => t('Theme region within which the block is set.'),
),
'custom' => array(
'type' => 'int',
'not null' => TRUE,
'default' => 0,
'size' => 'tiny',
'description' => t('Flag to indicate how users may control visibility of the block. (0 = Users cannot control, 1 = On by default, but can be hidden, 2 = Hidden by default, but can be shown)'),
),
'throttle' => array(
'type' => 'int',
'not null' => TRUE,
'default' => 0,
'size' => 'tiny',
'description' => t('Flag to indicate whether or not to remove block when website traffic is high. (1 = throttle, 0 = do not throttle)'),
),
'visibility' => array(
'type' => 'int',
'not null' => TRUE,
'default' => 0,
'size' => 'tiny',
'description' => t('Flag to indicate how to show blocks on pages. (0 = Show on all pages except listed pages, 1 = Show only on listed pages, 2 = Use custom PHP code to determine visibility)'),
),
'pages' => array(
'type' => 'text',
'not null' => TRUE,
'description' => t('Contents of the "Pages" block; contain either a list of paths on which to include/exlclude the block or PHP code, depending on "visibility" setting.'),
),
'title' => array(
'type' => 'varchar',
'length' => 64,
'not null' => TRUE,
'default' => '',
'description' => t('Custom title for the block. (Empty string will use block default title, <none> will remove the title, text will cause block to use specified title.)'),
),
'cache' => array(
'type' => 'int',
'not null' => TRUE,
'default' => 0,
'size' => 'tiny',
'description' => t('Binary flag to indicate block cache mode. (-1: Do not cache, 1: Cache per role, 2: Cache per user, 4: Cache per page, 8: Block cache global) See BLOCK_CACHE_* constants in block.module for more detailed information.'),
),
),
'primary key' => array('bid'),
);
$schema['blocks_roles'] = array(
'description' => t('Sets up access permissions for blocks based on user roles'),
'fields' => array(
'module' => array('type' => 'varchar', 'length' => 64, 'not null' => TRUE),
'delta' => array('type' => 'varchar', 'length' => 32, 'not null' => TRUE),
'rid' => array('type' => 'int', 'unsigned' => TRUE, 'not null' => TRUE)
'module' => array(
'type' => 'varchar',
'length' => 64,
'not null' => TRUE,
'description' => t("The block's origin module, from {blocks}.module."),
),
'delta' => array(
'type' => 'varchar',
'length' => 32,
'not null' => TRUE,
'description' => t("The block's unique delta within module, from {blocks}.delta."),
),
'rid' => array(
'type' => 'int',
'unsigned' => TRUE,
'not null' => TRUE,
'description' => t("The user's role ID from {user_roles}.rid."),
),
),
'primary key' => array(
'module',
......@@ -38,17 +129,41 @@ function block_schema() {
);
$schema['boxes'] = array(
'description' => t('Stores contents of custom-made blocks.'),
'fields' => array(
'bid' => array('type' => 'serial', 'unsigned' => TRUE, 'not null' => TRUE),
'body' => array('type' => 'text', 'not null' => FALSE, 'size' => 'big'),
'info' => array('type' => 'varchar', 'length' => 128, 'not null' => TRUE, 'default' => ''),
'format' => array('type' => 'int', 'size' => 'small', 'not null' => TRUE, 'default' => 0)
'bid' => array(
'type' => 'serial',
'unsigned' => TRUE,
'not null' => TRUE,
'description' => t("The block's {block}.bid."),
),
'body' => array(
'type' => 'text',
'not null' => FALSE,
'size' => 'big',
'description' => t('Block contents.'),
),
'info' => array(
'type' => 'varchar',
'length' => 128,
'not null' => TRUE,
'default' => '',
'description' => t('Block description.'),
),
'format' => array(
'type' => 'int',
'size' => 'small',
'not null' => TRUE,
'default' => 0,
'description' => t("Block body's {filter_formats}.format; for example, 1 = Filtered HTML."),
)
),
'unique keys' => array('info' => array('info')),
'primary key' => array('bid'),
);
$schema['cache_block'] = drupal_get_schema_unprocessed('system', 'cache');
$schema['cache_block']['description'] = t('Cache table for the Block module to store already built blocks, identified by module, delta, and various contexts which may change the block, such as theme, locale, and caching mode defined for the block.');
return $schema;
}
......
......@@ -249,10 +249,29 @@ function book_update_6000() {
*/
function book_schema() {
$schema['book'] = array(
'description' => t('Stores book outline information. Uniquely connects each node in the outline to a link in {menu_links}'),
'fields' => array(
'mlid' => array('type' => 'int', 'unsigned' => TRUE, 'not null' => TRUE, 'default' => 0),
'nid' => array('type' => 'int', 'unsigned' => TRUE, 'not null' => TRUE, 'default' => 0),
'bid' => array('type' => 'int', 'unsigned' => TRUE, 'not null' => TRUE, 'default' => 0),
'mlid' => array(
'type' => 'int',
'unsigned' => TRUE,
'not null' => TRUE,
'default' => 0,
'description' => t("The book page's {menu_links}.mlid."),
),
'nid' => array(
'type' => 'int',
'unsigned' => TRUE,
'not null' => TRUE,
'default' => 0,
'description' => t("The book page's {node}.nid."),
),
'bid' => array(
'type' => 'int',
'unsigned' => TRUE,
'not null' => TRUE,
'default' => 0,
'description' => t("The book ID is the {book}.nid of the top-level page."),
),
),
'indexes' => array(
'nid' => array('nid'),
......
......@@ -62,21 +62,96 @@ function comment_update_6002() {
*/
function comment_schema() {
$schema['comments'] = array(
'description' => t('Stores comments and associated data.'),
'fields' => array(
'cid' => array('type' => 'serial', 'not null' => TRUE),
'pid' => array('type' => 'int', 'not null' => TRUE, 'default' => 0),
'nid' => array('type' => 'int', 'not null' => TRUE, 'default' => 0),
'uid' => array('type' => 'int', 'not null' => TRUE, 'default' => 0),
'subject' => array('type' => 'varchar', 'length' => 64, 'not null' => TRUE, 'default' => ''),
'comment' => array('type' => 'text', 'not null' => TRUE, 'size' => 'big'),
'hostname' => array('type' => 'varchar', 'length' => 128, 'not null' => TRUE, 'default' => ''),
'timestamp' => array('type' => 'int', 'not null' => TRUE, 'default' => 0),
'status' => array('type' => 'int', 'unsigned' => TRUE, 'not null' => TRUE, 'default' => 0, 'size' => 'tiny'),
'format' => array('type' => 'int', 'size' => 'small', 'not null' => TRUE, 'default' => 0),
'thread' => array('type' => 'varchar', 'length' => 255, 'not null' => TRUE),
'name' => array('type' => 'varchar', 'length' => 60, 'not null' => FALSE),
'mail' => array('type' => 'varchar', 'length' => 64, 'not null' => FALSE),
'homepage' => array('type' => 'varchar', 'length' => 255, 'not null' => FALSE)
'cid' => array(
'type' => 'serial',
'not null' => TRUE,
'description' => t('Primary Key: Unique comment ID.'),
),
'pid' => array(
'type' => 'int',
'not null' => TRUE,
'default' => 0,
'description' => t('The {comment}.cid to which this comment is a reply. If set to 0, this comment is not a reply to an existing comment.'),
),
'nid' => array(
'type' => 'int',
'not null' => TRUE,
'default' => 0,
'description' => t('The {node}.nid to which this comment is a reply.'),
),
'uid' => array(
'type' => 'int',
'not null' => TRUE,
'default' => 0,
'description' => t('The {user}.uid who authored the comment. If set to 0, this comment was created by an anonymous user.'),
),
'subject' => array(
'type' => 'varchar',
'length' => 64,
'not null' => TRUE,
'default' => '',
'description' => t('The comment title.'),
),
'comment' => array(
'type' => 'text',
'not null' => TRUE,
'size' => 'big',
'description' => t('The comment body.'),
),
'hostname' => array(
'type' => 'varchar',
'length' => 128,
'not null' => TRUE,
'default' => '',
'description' => t("The author's host name."),
),
'timestamp' => array(
'type' => 'int',
'not null' => TRUE,
'default' => 0,
'description' => t('The time that the comment was created, or last edited by its author, as a Unix timestamp.'),
),
'status' => array(
'type' => 'int',
'unsigned' => TRUE,
'not null' => TRUE,
'default' => 0,
'size' => 'tiny',
'description' => t('The published status of a comment. (0 = Published, 1 = Not Published)'),
),
'format' => array(
'type' => 'int',
'size' => 'small',
'not null' => TRUE,
'default' => 0,
'description' => t('The {filter_formats}.format of the comment body.'),
),
'thread' => array(
'type' => 'varchar',
'length' => 255,
'not null' => TRUE,
'description' => t("The vancode representation of the comment's place in a thread."),
),
'name' => array(
'type' => 'varchar',
'length' => 60,
'not null' => FALSE,
'description' => t("The comment author's name. Uses {user}.name if the user is logged in, otherwise uses the value typed into the comment form."),
),
'mail' => array(
'type' => 'varchar',
'length' => 64,
'not null' => FALSE,
'description' => t("The comment author's e-mail address from the comment form, if user is anonymous, and the 'Anonymous users may/must leave their contact information' setting is turned on."),
),
'homepage' => array(
'type' => 'varchar',
'length' => 255,
'not null' => FALSE,
'description' => t("The comment author's home page address from the comment form, if user is anonymous, and the 'Anonymous users may/must leave their contact information' setting is turned on."),
)
),
'indexes' => array(
'nid' => array('nid'),
......@@ -85,16 +160,44 @@ function comment_schema() {
'primary key' => array('cid'),
);
$schema['node_comment_statistics'] = array(
'fields' => array(
'nid' => array('type' => 'int', 'unsigned' => TRUE, 'not null' => TRUE, 'default' => 0),
'last_comment_timestamp' => array('type' => 'int', 'not null' => TRUE, 'default' => 0),
'last_comment_name' => array('type' => 'varchar', 'length' => 60, 'not null' => FALSE),
'last_comment_uid' => array('type' => 'int', 'not null' => TRUE, 'default' => 0),
'comment_count' => array('type' => 'int', 'unsigned' => TRUE, 'not null' => TRUE, 'default' => 0)
),
'indexes' => array('node_comment_timestamp' => array('last_comment_timestamp')),
'primary key' => array('nid'),
$schema['node_comment_statistics'] = array(
'description' => t('Maintains statistics of node and comments posts to show "new" and "updated" flags.'),
'fields' => array(
'nid' => array(
'type' => 'int',
'unsigned' => TRUE,
'not null' => TRUE,
'default' => 0,
'description' => t('The {node}.nid for which the statistics are compiled.'),
),
'last_comment_timestamp' => array(
'type' => 'int',
'not null' => TRUE,
'default' => 0,
'description' => t('The Unix timestamp of the last comment that was posted within this node, from {comment}.timestamp.'),
),
'last_comment_name' => array(
'type' => 'varchar',
'length' => 60,
'not null' => FALSE,
'description' => t('The name of the latest author to post a comment on this node, from {comment}.author.'),
),
'last_comment_uid' => array(
'type' => 'int',
'not null' => TRUE,
'default' => 0,
'description' => t('The user ID of the latest author to post a comment on this node, from {comment}.uid.'),
),
'comment_count' => array(
'type' => 'int',
'unsigned' => TRUE,
'not null' => TRUE,
'default' => 0,
'description' => t('The total number of comments on this node.'),
),
),
'indexes' => array('node_comment_timestamp' => array('last_comment_timestamp')),
'primary key' => array('nid'),
);
return $schema;
......
......@@ -26,13 +26,47 @@ function contact_uninstall() {
*/
function contact_schema() {
$schema['contact'] = array(
'description' => t('Contact form category settings.'),
'fields' => array(
'cid' => array('type' => 'serial', 'unsigned' => TRUE, 'not null' => TRUE),
'category' => array('type' => 'varchar', 'length' => 255, 'not null' => TRUE, 'default' => ''),
'recipients' => array('type' => 'text', 'not null' => TRUE, 'size' => 'big'),
'reply' => array('type' => 'text', 'not null' => TRUE, 'size' => 'big'),
'weight' => array('type' => 'int', 'not null' => TRUE, 'default' => 0, 'size' => 'tiny'),
'selected' => array('type' => 'int', 'not null' => TRUE, 'default' => 0, 'size' => 'tiny')
'cid' => array(
'type' => 'serial',
'unsigned' => TRUE,
'not null' => TRUE,
'description' => t('Primary Key: Unique category ID.'),
),
'category' => array(
'type' => 'varchar',
'length' => 255,
'not null' => TRUE,
'default' => '',
'description' => t('Category name.'),
),
'recipients' => array(
'type' => 'text',
'not null' => TRUE,
'size' => 'big',
'description' => t('Comma-separated list of recipient e-mail addresses.'),
),
'reply' => array(
'type' => 'text',
'not null' => TRUE,
'size' => 'big',
'description' => t('Text of the auto-reply message.'),
),
'weight' => array(
'type' => 'int',
'not null' => TRUE,
'default' => 0,
'size' => 'tiny',
'description' => t("The category's weight."),
),
'selected' => array(
'type' => 'int',
'not null' => TRUE,
'default' => 0,
'size' => 'tiny',
'description' => t('Flag to indicate whether or not category is selected by default. (1 = Yes, 0 = No)'),
),
),
'unique keys' => array('category' => array('category')),
'primary key' => array('cid'),
......
......@@ -22,18 +22,78 @@ function dblog_uninstall() {
*/
function dblog_schema() {
$schema['watchdog'] = array(
'description' => t('Table that contains logs of all system events.'),
'fields' => array(
'wid' => array('type' => 'serial', 'not null' => TRUE),
'uid' => array('type' => 'int', 'not null' => TRUE, 'default' => 0),
'type' => array('type' => 'varchar', 'length' => 16, 'not null' => TRUE, 'default' => ''),
'message' => array('type' => 'text', 'not null' => TRUE, 'size' => 'big'),
'variables' => array('type' => 'text', 'not null' => TRUE, 'size' => 'big'),
'severity' => array('type' => 'int', 'unsigned' => TRUE, 'not null' => TRUE, 'default' => 0, 'size' => 'tiny'),
'link' => array('type' => 'varchar', 'length' => 255, 'not null' => TRUE, 'default' => ''),
'location' => array('type' => 'text', 'not null' => TRUE),
'referer' => array('type' => 'varchar', 'length' => 128, 'not null' => TRUE, 'default' => ''),
'hostname' => array('type' => 'varchar', 'length' => 128, 'not null' => TRUE, 'default' => ''),
'timestamp' => array('type' => 'int', 'not null' => TRUE, 'default' => 0)
'wid' => array(
'type' => 'serial',
'not null' => TRUE,
'description' => t('Primary Key: Unique watchdog event ID.'),
),
'uid' => array(