? Makefile
? d5-mysql+locale.sql
? d5-mysql.sql
? d5-pgsql.backup
? files
? patches
? sites/all/modules
? sites/default/settings.php
Index: modules/aggregator/aggregator.schema
===================================================================
RCS file: /cvs/drupal/drupal/modules/aggregator/aggregator.schema,v
retrieving revision 1.3
diff -u -F^f -r1.3 aggregator.schema
--- modules/aggregator/aggregator.schema	15 Jul 2007 10:09:21 -0000	1.3
+++ modules/aggregator/aggregator.schema	15 Sep 2007 17:10:50 -0000
@@ -3,45 +3,149 @@
 
 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('TODO: ???'),
+      )
     ),
     '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('TODO: ???'),
+      ),
+      'etag' => array(
+        'type' => 'varchar',
+        'length' => 255,
+        'not null' => TRUE,
+        'default' => '',
+        'description' => t('TODO: ???'),
+      ),
+      '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('TODO: ???'),
+      )
     ),
     'unique keys' => array(
       'url'  => array('url'),
@@ -51,15 +155,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('TODO: ???'),
+      )
     ),
     'indexes' => array('fid' => array('fid')),
     'primary key' => array('iid'),
Index: modules/block/block.schema
===================================================================
RCS file: /cvs/drupal/drupal/modules/block/block.schema,v
retrieving revision 1.3
diff -u -F^f -r1.3 block.schema
--- modules/block/block.schema	14 Sep 2007 17:46:32 -0000	1.3
+++ modules/block/block.schema	15 Sep 2007 17:10:50 -0000
@@ -3,29 +3,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',
@@ -35,11 +126,34 @@ 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'),
Index: modules/book/book.schema
===================================================================
RCS file: /cvs/drupal/drupal/modules/book/book.schema,v
retrieving revision 1.2
diff -u -F^f -r1.2 book.schema
--- modules/book/book.schema	30 Jul 2007 18:20:21 -0000	1.2
+++ modules/book/book.schema	15 Sep 2007 17:10:50 -0000
@@ -3,10 +3,29 @@
 
 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'),
Index: modules/comment/comment.schema
===================================================================
RCS file: /cvs/drupal/drupal/modules/comment/comment.schema,v
retrieving revision 1.4
diff -u -F^f -r1.4 comment.schema
--- modules/comment/comment.schema	30 Jul 2007 21:27:34 -0000	1.4
+++ modules/comment/comment.schema	15 Sep 2007 17:10:50 -0000
@@ -3,21 +3,96 @@
 
 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, 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'),
@@ -27,12 +102,39 @@ function comment_schema() {
   );
 
   $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' => 'serial', 'unsigned' => TRUE, 'not null' => TRUE),
-      '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)
+      'nid' => array(
+        'type' => 'serial',
+        'unsigned' => TRUE,
+        'not null' => TRUE,
+        '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'),
Index: modules/contact/contact.schema
===================================================================
RCS file: /cvs/drupal/drupal/modules/contact/contact.schema,v
retrieving revision 1.3
diff -u -F^f -r1.3 contact.schema
--- modules/contact/contact.schema	15 Jul 2007 10:09:21 -0000	1.3
+++ modules/contact/contact.schema	15 Sep 2007 17:10:50 -0000
@@ -3,13 +3,47 @@
 
 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'),
Index: modules/dblog/dblog.schema
===================================================================
RCS file: /cvs/drupal/drupal/modules/dblog/dblog.schema,v
retrieving revision 1.3
diff -u -F^f -r1.3 dblog.schema
--- modules/dblog/dblog.schema	28 Jul 2007 07:11:14 -0000	1.3
+++ modules/dblog/dblog.schema	15 Sep 2007 17:10:50 -0000
@@ -3,18 +3,78 @@
 
 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(
+        'type' => 'int',
+        'not null' => TRUE,
+        'default' => 0,
+        'description' => t('The {user}.uid of the user who triggered the event.'),
+      ),
+      'type' => array(
+        'type' => 'varchar',
+        'length' => 16,
+        'not null' => TRUE,
+        'default' => '',
+        'description' => t('Type of log message, for example "user" or "page not found."'),
+      ),
+      'message' => array(
+        'type' => 'text',
+        'not null' => TRUE,
+        'size' => 'big',
+        'description' => t('Text of log message to be passed into the t() function.'),
+      ),
+      'variables' => array(
+        'type' => 'text',
+        'not null' => TRUE,
+        'size' => 'big',
+        'description' => t('Serialized array of variables that match the message string and that is passed into the t() function.'),
+      ),
+      'severity' => array(
+        'type' => 'int',
+        'unsigned' => TRUE,
+        'not null' => TRUE,
+        'default' => 0,
+        'size' => 'tiny',
+        'description' => t('The severity level of the event; ranges from 0 (Emergency) to 7 (Debug)'),
+      ),
+      'link' => array(
+        'type' => 'varchar',
+        'length' => 255,
+        'not null' => TRUE,
+        'default' => '',
+        'description' => t('Link to view the result of the event.'),
+      ),
+      'location'  => array(
+        'type' => 'text',
+        'not null' => TRUE,
+        'description' => t('URL of the origin of the event.'),
+      ),
+      'referer' => array(
+        'type' => 'varchar',
+        'length' => 128,
+        'not null' => TRUE,
+        'default' => '',
+        'description' => t('URL of referring page.'),
+      ),
+      'hostname' => array(
+        'type' => 'varchar',
+        'length' => 128,
+        'not null' => TRUE,
+        'default' => '',
+        'description' => t('Hostname of the user who triggered the event.'),
+      ),
+      'timestamp' => array(
+        'type' => 'int',
+        'not null' => TRUE,
+        'default' => 0,
+        'description' => t('Unix timestamp of when event occurred.'),
+      ),
     ),
     'primary key' => array('wid'),
     'indexes' => array('type' => array('type')),
Index: modules/drupal/drupal.schema
===================================================================
RCS file: /cvs/drupal/drupal/modules/drupal/drupal.schema,v
retrieving revision 1.1
diff -u -F^f -r1.1 drupal.schema
--- modules/drupal/drupal.schema	25 May 2007 12:46:44 -0000	1.1
+++ modules/drupal/drupal.schema	15 Sep 2007 17:10:50 -0000
@@ -3,27 +3,105 @@
 
 function drupal_schema() {
   $schema['client'] = array(
+    'description' => t('Lists details of all client sites that use this affiliate site for distributed logins.'),
     'fields' => array(
-      'cid'     => array('type' => 'serial', 'unsigned' => TRUE, 'not null' => TRUE),
-      'link'    => array('type' => 'varchar', 'length' => 255, 'not null' => TRUE, 'default' => ''),
-      'name'    => array('type' => 'varchar', 'length' => 128, 'not null' => TRUE, 'default' => ''),
-      'mail'    => array('type' => 'varchar', 'length' => 128, 'not null' => TRUE, 'default' => ''),
-      'slogan'  => array('type' => 'text', 'not null' => TRUE, 'size' => 'big'),
-      'mission' => array('type' => 'text', 'not null' => TRUE, 'size' => 'big'),
-      'users'   => array('type' => 'int', 'not null' => TRUE, 'default' => 0),
-      'nodes'   => array('type' => 'int', 'not null' => TRUE, 'default' => 0),
-      'version' => array('type' => 'varchar', 'length' => 35, 'not null' => TRUE, 'default' => ''),
-      'created' => array('type' => 'int', 'not null' => TRUE, 'default' => 0),
-      'changed' => array('type' => 'int', 'not null' => TRUE, 'default' => 0)
+      'cid' => array(
+        'type' => 'serial',
+        'unsigned' => TRUE,
+        'not null' => TRUE,
+        'description' => t('Primary Key: Unique client ID.'),
+      ),
+      'link' => array(
+        'type' => 'varchar',
+        'length' => 255,
+        'not null' => TRUE,
+        'default' => '',
+        'description' => t('Link to client site.'),
+      ),
+      'name' => array(
+        'type' => 'varchar',
+        'length' => 128,
+        'not null' => TRUE,
+        'default' => '',
+        'description' => t('Name of client site.'),
+      ),
+      'mail' => array(
+        'type' => 'varchar',
+        'length' => 128,
+        'not null' => TRUE,
+        'default' => '',
+        'description' => t('Client site admin e-mail address.'),
+      ),
+      'slogan' => array(
+        'type' => 'text',
+        'not null' => TRUE,
+        'size' => 'big',
+        'description' => t('Client site slogan.'),
+      ),
+      'mission' => array(
+        'type' => 'text',
+        'not null' => TRUE,
+        'size' => 'big',
+        'description' => t('Client site mission statement.'),
+      ),
+      'users' => array(
+        'type' => 'int',
+        'not null' => TRUE,
+        'default' => 0,
+        'description' => t('Number of users in client site.'),
+      ),
+      'nodes' => array(
+        'type' => 'int',
+        'not null' => TRUE,
+        'default' => 0,
+        'description' => t('Number of nodes in client site.'),
+      ),
+      'version' => array(
+        'type' => 'varchar',
+        'length' => 35,
+        'not null' => TRUE,
+        'default' => '',
+        'description' => t('What Drupal version client site is running.'),
+      ),
+      'created' => array(
+        'type' => 'int',
+        'not null' => TRUE,
+        'default' => 0,
+        'description' => t('When the client site was created, as Unix timestamp.'),
+      ),
+      'changed' => array(
+        'type' => 'int',
+        'not null' => TRUE,
+        'default' => 0,
+        'description' => t('Date client site was last modified, as Unix timestamp.'),
+      ),
     ),
     'primary key' => array('cid'),
   );
 
   $schema['client_system'] = array(
+    'description' => t('What components are installed on the client site.'),
     'fields' => array(
-      'cid'  => array('type' => 'int', 'not null' => TRUE, 'default' => 0),
-      'name' => array('type' => 'varchar', 'length' => 255, 'not null' => TRUE, 'default' => ''),
-      'type' => array('type' => 'varchar', 'length' => 255, 'not null' => TRUE, 'default' => '')
+      'cid'  => array(
+        'type' => 'int',
+        'not null' => TRUE,
+        'default' => 0,
+        'description' => t('Foreign key: The client site {client}.cid.'),
+      ),
+      'name' => array(
+        'type' => 'varchar',
+        'length' => 255,
+        'not null' => TRUE,
+        'default' => '',
+        'description' => t('The name of the component ("blog" or "garland").'),
+      ),
+      'type' => array(
+        'type' => 'varchar',
+        'length' => 255,
+        'not null' => TRUE,
+        'default' => '',
+        'description' => t('The type of component ("module" or "theme").'),
+      ),
     ),
     'primary key' => array('cid', 'name'),
   );
Index: modules/filter/filter.schema
===================================================================
RCS file: /cvs/drupal/drupal/modules/filter/filter.schema,v
retrieving revision 1.1
diff -u -F^f -r1.1 filter.schema
--- modules/filter/filter.schema	25 May 2007 12:46:44 -0000	1.1
+++ modules/filter/filter.schema	15 Sep 2007 17:10:50 -0000
@@ -3,22 +3,73 @@
 
 function filter_schema() {
   $schema['filters'] = array(
+    'description' => t('Table that maps filters (HTML corrector) to input formats (Filtered HTML).'),
     'fields' => array(
-      'fid'    => array('type' => 'serial', 'not null' => TRUE),
-      'format' => array('type' => 'int', 'not null' => TRUE, 'default' => 0),
-      'module' => array('type' => 'varchar', 'length' => 64, 'not null' => TRUE, 'default' => ''),
-      'delta'  => array('type' => 'int', 'not null' => TRUE, 'default' => 0, 'size' => 'tiny'),
-      'weight' => array('type' => 'int', 'not null' => TRUE, 'default' => 0, 'size' => 'tiny')
+      'fid' => array(
+        'type' => 'serial',
+        'not null' => TRUE,
+        'description' => t('Primary Key: Auto-incrementing filter ID.'),
+      ),
+      'format' => array(
+        'type' => 'int',
+        'not null' => TRUE,
+        'default' => 0,
+        'description' => t('Foreign Key: The {filter_formats}.fid to which this filter is assigned.'),
+      ),
+      'module' => array(
+        'type' => 'varchar',
+        'length' => 64,
+        'not null' => TRUE,
+        'default' => '',
+        'description' => t('The origin module of the filter.'),
+      ),
+      'delta' => array(
+        'type' => 'int',
+        'not null' => TRUE,
+        'default' => 0,
+        'size' => 'tiny',
+        'description' => t('ID to identify which filter within module is being referenced.'),
+      ),
+      'weight' => array(
+        'type' => 'int',
+        'not null' => TRUE,
+        'default' => 0,
+        'size' => 'tiny',
+        'description' => t('Weight of filter within format.'),
+      )
     ),
     'primary key' => array('fid'),
     'indexes' => array('weight' => array('weight')),
   );
   $schema['filter_formats'] = array(
+    'description' => t('Stores input formats: custom groupings of filters, such as Filtered HTML.'),
     'fields' => array(
-      'format' => array('type' => 'serial', 'not null' => TRUE),
-      'name'   => array('type' => 'varchar', 'length' => 255, 'not null' => TRUE, 'default' => ''),
-      'roles'  => array('type' => 'varchar', 'length' => 255, 'not null' => TRUE, 'default' => ''),
-      'cache'  => array('type' => 'int', 'not null' => TRUE, 'default' => 0, 'size' => 'tiny')
+      'format' => array(
+        'type' => 'serial',
+        'not null' => TRUE,
+        'description' => t('Primary Key: Unique ID for format.'),
+      ),
+      'name' => array(
+        'type' => 'varchar',
+        'length' => 255,
+        'not null' => TRUE,
+        'default' => '',
+        'description' => t('Name of the input format (Filtered HTML).'),
+      ),
+      'roles' => array(
+        'type' => 'varchar',
+        'length' => 255,
+        'not null' => TRUE,
+        'default' => '',
+        'description' => t('A comma-separated string of roles; references {role}.rid.'),
+      ),
+      'cache' => array(
+        'type' => 'int',
+        'not null' => TRUE,
+        'default' => 0,
+        'size' => 'tiny',
+        'description' => t('Flag to indicate whether format is cachable. (1 = cachable, 0 = not cachable)'),
+      ),
     ),
     'unique keys' => array('name' => array('name')),
     'primary key' => array('format'),
Index: modules/locale/locale.schema
===================================================================
RCS file: /cvs/drupal/drupal/modules/locale/locale.schema,v
retrieving revision 1.7
diff -u -F^f -r1.7 locale.schema
--- modules/locale/locale.schema	2 Sep 2007 15:19:16 -0000	1.7
+++ modules/locale/locale.schema	15 Sep 2007 17:10:50 -0000
@@ -3,45 +3,119 @@
 
 function locale_schema() {
   $schema['languages'] = array(
+    'description' => t('List of all available languages in the system.'),
     'fields' => array(
-      // Language code, eg 'de' or 'en-US'.
-      'language'   => array('type' => 'varchar', 'length' => 12, 'not null' => TRUE, 'default' => ''),
-      // Language name in English.
-      'name'       => array('type' => 'varchar', 'length' => 64, 'not null' => TRUE, 'default' => ''),
-      // Native language name.
-      'native'     => array('type' => 'varchar', 'length' => 64, 'not null' => TRUE, 'default' => ''),
-      // LANGUAGE_RTL or LANGUAGE_LTR
-      'direction'  => array('type' => 'int', 'not null' => TRUE, 'default' => 0),
-      // Enabled flag.
-      'enabled'    => array('type' => 'int', 'not null' => TRUE, 'default' => 0),
-      // Number of plural indexes in this language.
-      'plurals'    => array('type' => 'int', 'not null' => TRUE, 'default' => 0),
-      // Plural formula in PHP code to evaluate to get plural indexes.
-      'formula'    => array('type' => 'varchar', 'length' => 128, 'not null' => TRUE, 'default' => ''),
-      // Domain to use for this language.
-      'domain'     => array('type' => 'varchar', 'length' => 128, 'not null' => TRUE, 'default' => ''),
-      // Path prefix to use for this language.
-      'prefix'     => array('type' => 'varchar', 'length' => 128, 'not null' => TRUE, 'default' => ''),
-      // Weight, used in lists of languages.
-      'weight'     => array('type' => 'int', 'not null' => TRUE, 'default' => 0),
-      // Location of JavaScript translation file.
-      'javascript' => array('type' => 'varchar', 'length' => 32, 'not null' => TRUE, 'default' => ''),
+      'language' => array(
+        'type' => 'varchar',
+        'length' => 12,
+        'not null' => TRUE,
+        'default' => '',
+        'description' => t("Language code, eg 'de' or 'en-US'."),
+      ),
+      'name' => array(
+        'type' => 'varchar',
+        'length' => 64,
+        'not null' => TRUE,
+        'default' => '',
+        'description' => t('Language name in English.'),
+      ),
+      'native' => array(
+        'type' => 'varchar',
+        'length' => 64,
+        'not null' => TRUE,
+        'default' => '',
+        'description' => t('Native language name.'),
+      ),
+      'direction' => array(
+        'type' => 'int',
+        'not null' => TRUE,
+        'default' => 0,
+        'description' => t('Direction of language (Left-to-Right = 0, Right-to-Left = 1).'),
+      ),
+      'enabled' => array(
+        'type' => 'int',
+        'not null' => TRUE,
+        'default' => 0,
+        'description' => t('Enabled flag (1 = Enabled, 0 = Disabled).'),
+      ),
+      'plurals' => array(
+        'type' => 'int',
+        'not null' => TRUE,
+        'default' => 0,
+        'description' => t('Number of plural indexes in this language.'), 
+      ),
+      'formula' => array(
+        'type' => 'varchar',
+        'length' => 128,
+        'not null' => TRUE,
+        'default' => '',
+        'description' => t('Plural formula in PHP code to evaluate to get plural indexes.'),
+      ),
+      'domain' => array(
+        'type' => 'varchar',
+        'length' => 128,
+        'not null' => TRUE,
+        'default' => '',
+        'description' => t('Domain to use for this language.'),
+      ),
+      'prefix' => array(
+        'type' => 'varchar',
+        'length' => 128,
+        'not null' => TRUE,
+        'default' => '',
+        'description' => t('Path prefix to use for this language.'),
+      ),
+      'weight' => array(
+        'type' => 'int',
+        'not null' => TRUE,
+        'default' => 0,
+        'description' => t('Weight, used in lists of languages.'),
+      ),
+      'javascript' => array(
+        'type' => 'varchar',
+        'length' => 32,
+        'not null' => TRUE,
+        'default' => '',
+        'description' => t('Location of JavaScript translation file.'),
+      ),
     ),
     'primary key' => array('language'),
   );
 
   $schema['locales_source'] = array(
+    'description' => t('List of English source strings.'),
     'fields' => array(
-      // Unique identifier of this string.
-      'lid'       => array('type' => 'serial', 'not null' => TRUE),
-      // Drupal path in case of online discovered translations or file path in case of imported strings.
-      'location'  => array('type' => 'varchar', 'length' => 255, 'not null' => TRUE, 'default' => ''),
-      // A module defined group of translations, see hook_locale().
-      'textgroup' => array('type' => 'varchar', 'length' => 255, 'not null' => TRUE, 'default' => 'default'),
-      // The original string in English.
-      'source'    => array('type' => 'text', 'mysql_type' => 'blob', 'not null' => TRUE),
-      // Drupal core version, which last used the string.
-      'version'   => array('type' => 'varchar', 'length' => 20, 'not null' => TRUE, 'default' => 'none'),
+      'lid' => array(
+        'type' => 'serial',
+        'not null' => TRUE,
+        'description' => t('Unique identifier of this string.'),
+      ),
+      'location' => array(
+        'type' => 'varchar',
+        'length' => 255,
+        'not null' => TRUE,
+        'default' => '',
+        'description' => t('Drupal path in case of online discovered translations or file path in case of imported strings.'),
+      ),
+      'textgroup' => array(
+        'type' => 'varchar',
+        'length' => 255,
+        'not null' => TRUE,
+        'default' => 'default',
+        'description' => t('A module defined group of translations, see hook_locale().'),
+      ),
+      'source' => array(
+        'type' => 'text',
+        'mysql_type' => 'blob',
+        'not null' => TRUE,
+        'description' => t('The original string in English.'),
+      ),
+      'version' => array(
+        'type' => 'varchar',
+        'length' => 20,
+        'not null' => TRUE,
+        'default' => 'none',
+        'description' => t('Version of Drupal, where the string was last used (for locales optimization).'),
+      ),
     ),
     'primary key' => array('lid'),
     'indexes' => array
@@ -49,17 +123,39 @@ function locale_schema() {
   );
 
   $schema['locales_target'] = array(
+    'description' => t('Stores translated versions of strings.'),
     'fields' => array(
-      // References locales_source.
-      'lid'         => array('type' => 'int', 'not null' => TRUE, 'default' => 0),
-      // Translation string value in this language.
-      'translation' => array('type' => 'text', 'mysql_type' => 'blob', 'not null' => TRUE),
-      // Language code referencing the languages table.
-      'language'    => array('type' => 'varchar', 'length' => 12, 'not null' => TRUE, 'default' => ''),
-      // Parent lid (lid of the previous string in the plural chain) in case of plural strings.
-      'plid'        => array('type' => 'int', 'not null' => TRUE, 'default' => 0),
-      // Plural index number in case of plural strings.
-      'plural'      => array('type' => 'int', 'not null' => TRUE, 'default' => 0)
+      'lid' => array(
+        'type' => 'int',
+        'not null' => TRUE,
+        'default' => 0,
+        'description' => t('Source string ID. References {locales_source}.lid.'),
+      ),
+      'translation' => array(
+        'type' => 'text',
+        'mysql_type' => 'blob',
+        'not null' => TRUE,
+        'description' => t('Translation string value in this language.'),
+      ),
+      'language' => array(
+        'type' => 'varchar',
+        'length' => 12,
+        'not null' => TRUE,
+        'default' => '',
+        'description' => t('Language code. References {languages}.language.'),
+      ),
+      'plid' => array(
+        'type' => 'int',
+        'not null' => TRUE,
+        'default' => 0,
+        'description' => t('Parent lid (lid of the previous string in the plural chain) in case of plural strings. References {locales_source}.lid.'),
+      ),
+      'plural' => array(
+        'type' => 'int',
+        'not null' => TRUE,
+        'default' => 0,
+        'description' => t('Plural index number in case of plural strings.'),
+      ),
     ),
     'indexes' => array(
       'language'   => array('language'),
Index: modules/menu/menu.schema
===================================================================
RCS file: /cvs/drupal/drupal/modules/menu/menu.schema,v
retrieving revision 1.4
diff -u -F^f -r1.4 menu.schema
--- modules/menu/menu.schema	29 Aug 2007 20:46:18 -0000	1.4
+++ modules/menu/menu.schema	15 Sep 2007 17:10:50 -0000
@@ -4,10 +4,26 @@
 function menu_schema() {
   $schema['menu_custom'] = array(
     'fields' => array(
-      // This is used as a block delta so length is 32.
-      'menu_name'   => array('type' => 'varchar', 'length' => 32, 'not null' => TRUE, 'default' => ''),
-      'title'       => array('type' => 'varchar', 'length' => 255, 'not null' => TRUE, 'default' => ''),
-      'description' => array('type' => 'text', 'not null' => FALSE),
+      'description' => t('Holds definitions for top-level custom menus (for example, Primary Links).'),
+      'menu_name' => array(
+        'type' => 'varchar',
+        'length' => 32,
+        'not null' => TRUE,
+        'default' => '',
+        'description' => t('Primary Key: Unique key for menu. This is used as a block delta so length is 32.'),
+      ),
+      'title' => array(
+        'type' => 'varchar',
+        'length' => 255,
+        'not null' => TRUE,
+        'default' => '',
+        'description' => t('Menu title; displayed at top of block.'),
+      ),
+      'description' => array(
+        'type' => 'text',
+        'not null' => FALSE,
+        'description' => t('Menu description.'),
+      ),
     ),
     'primary key' => array('menu_name'),
   );
Index: modules/node/node.schema
===================================================================
RCS file: /cvs/drupal/drupal/modules/node/node.schema,v
retrieving revision 1.7
diff -u -F^f -r1.7 node.schema
--- modules/node/node.schema	30 Aug 2007 15:31:46 -0000	1.7
+++ modules/node/node.schema	15 Sep 2007 17:10:50 -0000
@@ -3,23 +3,89 @@
 
 function node_schema() {
   $schema['node'] = array(
+    'description' => t('The base table for nodes.'),
     'fields' => array(
-      'nid'       => array('type' => 'serial', 'unsigned' => TRUE, 'not null' => TRUE),
-      'vid'       => array('type' => 'int', 'unsigned' => TRUE, 'not null' => TRUE, 'default' => 0),
-      'type'      => array('type' => 'varchar', 'length' => 32, 'not null' => TRUE, 'default' => ''),
-      'language'  => array('type' => 'varchar', 'length' => 12, 'not null' => TRUE, 'default' => ''),
-      'title'     => array('type' => 'varchar', 'length' => 255, 'not null' => TRUE, 'default' => ''),
-      'uid'       => array('type' => 'int', 'not null' => TRUE, 'default' => 0),
-      'status'    => array('type' => 'int', 'not null' => TRUE, 'default' => 1),
-      'created'   => array('type' => 'int', 'not null' => TRUE, 'default' => 0),
-      'changed'   => array('type' => 'int', 'not null' => TRUE, 'default' => 0),
-      'comment'   => array('type' => 'int', 'not null' => TRUE, 'default' => 0),
-      'promote'   => array('type' => 'int', 'not null' => TRUE, 'default' => 0),
-      'moderate'  => array('type' => 'int', 'not null' => TRUE, 'default' => 0),
-      'sticky'    => array('type' => 'int', 'not null' => TRUE, 'default' => 0),
-      'tnid'      => array('type' => 'int', 'unsigned' => TRUE, 'not null' => TRUE, 'default' => 0),
-      'translate' => array('type' => 'int', 'not null' => TRUE, 'default' => 0),
-    ),
+      'nid'       => array(
+        'description' => t('The primary identifier for a node.'),
+        'type' => 'serial',
+		    'unsigned' => TRUE,
+		    'not null' => TRUE),
+      'vid'       => array(
+        'description' => t('The current {node_revisions}.vid version identifier.'),
+        'type' => 'int',
+			  'unsigned' => TRUE,
+			  'not null' => TRUE,
+			  'default' => 0),
+      'type'      => array(
+        'description' => t('The {node_type} of this node.'),
+        'type' => 'varchar',
+				'length' => 32,
+				'not null' => TRUE,
+				'default' => ''),
+      'language'  => array(
+        'description' => t('The {languages}.language of this node.'),
+        'type' => 'varchar',
+        'length' => 12,
+        'not null' => TRUE,
+        'default' => ''),
+      'title'     => array(
+        'description' => t('The title of this node, always treated a non-markup plain text.'),
+        'type' => 'varchar',
+        'length' => 255,
+        'not null' => TRUE,
+        'default' => ''),
+      'uid'       => array(
+        'description' => t('The {users}.uid that owns this node; initially, this is the user that created it.'),
+        'type' => 'int',
+        'not null' => TRUE,
+        'default' => 0),
+      'status'    => array(
+        'description' => t('Boolean indicating whether the node is published (visible to non-administrators).'),
+        'type' => 'int',
+        'not null' => TRUE,
+        'default' => 1),
+      'created'   => array(
+        'description' => t('The Unix timestamp when the node was created.'),
+        'type' => 'int',
+        'not null' => TRUE,
+        'default' => 0),
+      'changed'   => array(
+        'description' => t('The Unix timestamp when the node was most recently saved.'),
+        'type' => 'int',
+        'not null' => TRUE,
+        'default' => 0),
+      'comment'   => array(
+        'description' => t('Whether comments are allowed on this node: 0 = no, 1 = read only, 2 = read/write.'),
+        'type' => 'int',
+        'not null' => TRUE,
+        'default' => 0),
+      'promote'   => array(
+        'description' => t('Boolean indicating whether the node should displayed on the front page.'),
+        'type' => 'int',
+        'not null' => TRUE,
+        'default' => 0),
+      'moderate'  => array(
+        'description' => t('Previously, a boolean indicating whether the node was "in moderation"; mostly no longer used.'),
+        'type' => 'int',
+        'not null' => TRUE,
+        'default' => 0),
+      'sticky'    => array(
+        'description' => t('Boolean indicating whether the node should be displayed at the top of lists in which it appears.'),
+        'type' => 'int',
+        'not null' => TRUE,
+        'default' => 0),
+      'tnid'      => array(
+        'description' => t('The translation set id for this node, which equals the node id of the source post in each set.'),
+        'type' => 'int',
+        'unsigned' => TRUE,
+        'not null' => TRUE,
+        'default' => 0),
+      'translate' => array(
+        'description' => t('A boolean indicating whether this translation page needs to be updated.'),
+        'type' => 'int',
+        'not null' => TRUE,
+        'default' => 0),
+      ),
     'indexes' => array(
       'node_changed'        => array('changed'),
       'node_created'        => array('created'),
@@ -32,78 +98,236 @@ function node_schema() {
       'uid'                 => array('uid'),
       'tnid'                => array('tnid'),
       'translate'           => array('translate'),
-    ),
+      ),
     'unique keys' => array(
       'nid_vid' => array('nid', 'vid'),
       'vid'     => array('vid')
-    ),
+      ),
     'primary key' => array('nid'),
-  );
+    );
 
   $schema['node_access'] = array(
+    'description' => t('Identifies which realm/grant pairs a user must possess in order to view, update, or delete specific nodes.'),
     'fields' => array(
-      'nid'          => array('type' => 'int', 'unsigned' => TRUE, 'not null' => TRUE, 'default' => 0),
-      'gid'          => array('type' => 'int', 'unsigned' => TRUE, 'not null' => TRUE, 'default' => 0),
-      'realm'        => array('type' => 'varchar', 'length' => 255, 'not null' => TRUE, 'default' => ''),
-      'grant_view'   => array('type' => 'int', 'unsigned' => TRUE, 'not null' => TRUE, 'default' => 0, 'size' => 'tiny'),
-      'grant_update' => array('type' => 'int', 'unsigned' => TRUE, 'not null' => TRUE, 'default' => 0, 'size' => 'tiny'),
-      'grant_delete' => array('type' => 'int', 'unsigned' => TRUE, 'not null' => TRUE, 'default' => 0, 'size' => 'tiny')
-    ),
-    'primary key' => array(
-      'nid',
-      'gid',
-      'realm'
-    ),
-  );
+      'nid'          => array(
+        'description' => t('The {node}.nid this record affects.'),
+        'type' => 'int',
+        'unsigned' => TRUE,
+        'not null' => TRUE,
+        'default' => 0),
+      'gid'          => array(
+        'description' => t('The grant ID a user must possess in the specified realm to gain this row\'s privileges on the node.'),
+        'type' => 'int',
+        'unsigned' => TRUE,
+        'not null' => TRUE,
+        'default' => 0),
+      'realm'        => array(
+        'description' => t('The realm in which the user must possess the grant ID.  Each node access node can define one or more realms.'),
+        'type' => 'varchar',
+        'length' => 255,
+        'not null' => TRUE,
+        'default' => ''),
+      'grant_view'   => array(
+        'description' => t('Boolean indicating whether a user with the realm/grant pair can view this node.'),
+        'type' => 'int',
+        'unsigned' => TRUE,
+        'not null' => TRUE,
+        'default' => 0,
+        'size' => 'tiny'),
+      'grant_update' => array(
+        'description' => t('Boolean indicating whether a user with the realm/grant pair can edit this node.'),
+        'type' => 'int',
+        'unsigned' => TRUE,
+        'not null' => TRUE,
+        'default' => 0,
+        'size' => 'tiny'),
+      'grant_delete' => array(
+        'description' => t('Boolean indicating whether a user with the realm/grant pair can delete this node.'),
+        'type' => 'int',
+        'unsigned' => TRUE,
+        'not null' => TRUE,
+        'default' => 0,
+        'size' => 'tiny')
+      ),
+    'primary key' => array('nid', 'gid', 'realm'),
+    );
 
   $schema['node_counter'] = array(
+    'description' => t('Access statistics for {node}s.'),
     'fields' => array(
-      'nid'        => array('type' => 'int', 'not null' => TRUE, 'default' => 0),
-      'totalcount' => array('type' => 'int', 'unsigned' => TRUE, 'not null' => TRUE, 'default' => 0, 'size' => 'big'),
-      'daycount'   => array('type' => 'int', 'unsigned' => TRUE, 'not null' => TRUE, 'default' => 0, 'size' => 'medium'),
-      'timestamp'  => array('type' => 'int', 'unsigned' => TRUE, 'not null' => TRUE, 'default' => 0)
-    ),
+      'nid'        => array(
+        'description' => t('The {node}.nid for these statistics.'),
+        'type' => 'int',
+        'not null' => TRUE,
+        'default' => 0),
+      'totalcount' => array(
+        'description' => t('The total number of times the {node} has been viewed.'),
+        'type' => 'int',
+        'unsigned' => TRUE,
+        'not null' => TRUE,
+        'default' => 0,
+        'size' => 'big'),
+      'daycount'   => array(
+        'description' => t('The total number of times the {node} has been viewed today.'),
+        'type' => 'int',
+        'unsigned' => TRUE,
+        'not null' => TRUE,
+        'default' => 0,
+        'size' => 'medium'),
+      'timestamp'  => array(
+        'description' => t('The most recent time the {node} has been viewed.'),
+        'type' => 'int',
+        'unsigned' => TRUE,
+        'not null' => TRUE,
+        'default' => 0)
+      ),
     'primary key' => array('nid'),
-  );
+    );
 
   $schema['node_revisions'] = array(
+    'description' => t('Stores information about each saved version of a {node}.'),
     'fields' => array(
-      'nid'       => array('type' => 'int', 'unsigned' => TRUE, 'not null' => TRUE, 'default' => 0),
-      'vid'       => array('type' => 'serial', 'unsigned' => TRUE, 'not null' => TRUE),
-      'uid'       => array('type' => 'int', 'not null' => TRUE, 'default' => 0),
-      'title'     => array('type' => 'varchar', 'length' => 255, 'not null' => TRUE, 'default' => ''),
-      'body'      => array('type' => 'text', 'not null' => TRUE, 'size' => 'big'),
-      'teaser'    => array('type' => 'text', 'not null' => TRUE, 'size' => 'big'),
-      'log'       => array('type' => 'text', 'not null' => TRUE, 'size' => 'big'),
-      'timestamp' => array('type' => 'int', 'not null' => TRUE, 'default' => 0),
-      'format'    => array('type' => 'int', 'not null' => TRUE, 'default' => 0)
-    ),
+      'nid'       => array(
+        'description' => t('The {node} this version belongs to.'),
+        'type' => 'int',
+        'unsigned' => TRUE,
+        'not null' => TRUE,
+        'default' => 0),
+      'vid'       => array(
+        'description' => t('The primary identifier for this version.'),
+        'type' => 'serial',
+        'unsigned' => TRUE,
+        'not null' => TRUE),
+      'uid'       => array(
+        'description' => t('The {users}.uid that created this version.'),
+        'type' => 'int',
+        'not null' => TRUE,
+        'default' => 0),
+      'title'     => array(
+        'description' => t('The title of this version.'),
+        'type' => 'varchar',
+        'length' => 255,
+        'not null' => TRUE,
+        'default' => ''),
+      'body'      => array(
+        'description' => t('The body of this version.'),
+        'type' => 'text',
+        'not null' => TRUE,
+        'size' => 'big'),
+      'teaser'    => array(
+        'description' => t('The teaser of this version.'),
+        'type' => 'text',
+        'not null' => TRUE,
+        'size' => 'big'),
+      'log'       => array(
+        'description' => t('The log entry explaining the changes in this version.'),
+        'type' => 'text',
+        'not null' => TRUE,
+        'size' => 'big'),
+      'timestamp' => array(
+        'description' => t('A Unix timestamp indicating when this version was created.'),
+        'type' => 'int',
+        'not null' => TRUE,
+        'default' => 0),
+      'format'    => array(
+        'description' => t('The input format used by this version\'s body.'),
+        'type' => 'int',
+        'not null' => TRUE,
+        'default' => 0)
+      ),
     'indexes' => array(
       'nid' => array('nid'),
       'uid' => array('uid')
-    ),
+      ),
     'primary key' => array('vid'),
-  );
+    );
 
   $schema['node_type'] = array(
+    'description' => t('Stores information about all defined {node} types.'),
     'fields' => array(
-      'type'           => array('type' => 'varchar', 'length' => 32, 'not null' => TRUE),
-      'name'           => array('type' => 'varchar', 'length' => 255, 'not null' => TRUE, 'default' => ''),
-      'module'         => array('type' => 'varchar', 'length' => 255, 'not null' => TRUE),
-      'description'    => array('type' => 'text', 'not null' => TRUE, 'size' => 'medium'),
-      'help'           => array('type' => 'text', 'not null' => TRUE, 'size' => 'medium'),
-      'has_title'      => array('type' => 'int', 'unsigned' => TRUE, 'not null' => TRUE, 'size' => 'tiny'),
-      'title_label'    => array('type' => 'varchar', 'length' => 255, 'not null' => TRUE, 'default' => ''),
-      'has_body'       => array('type' => 'int', 'unsigned' => TRUE, 'not null' => TRUE, 'size' => 'tiny'),
-      'body_label'     => array('type' => 'varchar', 'length' => 255, 'not null' => TRUE, 'default' => ''),
-      'min_word_count' => array('type' => 'int', 'unsigned' => TRUE, 'not null' => TRUE, 'size' => 'small'),
-      'custom'         => array('type' => 'int', 'not null' => TRUE, 'default' => 0, 'size' => 'tiny'),
-      'modified'       => array('type' => 'int', 'not null' => TRUE, 'default' => 0, 'size' => 'tiny'),
-      'locked'         => array('type' => 'int', 'not null' => TRUE, 'default' => 0, 'size' => 'tiny'),
-      'orig_type'      => array('type' => 'varchar', 'length' => 255, 'not null' => TRUE, 'default' => '')
-    ),
+      'type'           => array(
+        'description' => t('The machine-readable name of this type.'),
+        'type' => 'varchar',
+        'length' => 32,
+        'not null' => TRUE),
+      'name'           => array(
+        'description' => t('The human-readable name of this type.'),
+        'type' => 'varchar',
+        'length' => 255,
+        'not null' => TRUE,
+        'default' => ''),
+      'module'         => array(
+        'description' => t('The module that implements this type.'),
+        'type' => 'varchar',
+        'length' => 255,
+        'not null' => TRUE),
+      'description'    => array(
+        'description' => t('A brief description of this type.'),
+        'type' => 'text',
+        'not null' => TRUE,
+        'size' => 'medium'),
+      'help'           => array(
+        'description' => t('Help information shown to the user when creating a {node} of this type.'),
+        'type' => 'text',
+        'not null' => TRUE,
+        'size' => 'medium'),
+      'has_title'      => array(
+        'description' => t('Boolean indicating whether this type uses the {node}.title field.'),
+        'type' => 'int',
+        'unsigned' => TRUE,
+        'not null' => TRUE,
+        'size' => 'tiny'),
+      'title_label'    => array(
+        'description' => t('The label displayed for the title field on the edit form.'),
+        'type' => 'varchar',
+        'length' => 255,
+        'not null' => TRUE,
+        'default' => ''),
+      'has_body'       => array(
+        'description' => t('Boolean indicating whether this type uses the {node}.body field.'),
+        'type' => 'int',
+        'unsigned' => TRUE,
+        'not null' => TRUE,
+        'size' => 'tiny'),
+      'body_label'     => array(
+        'description' => t('The label displayed for the body field on the edit form.'),
+        'type' => 'varchar',
+        'length' => 255,
+        'not null' => TRUE,
+        'default' => ''),
+      'min_word_count' => array(
+        'description' => t('The minimum number of words the body must contain.'),
+        'type' => 'int',
+        'unsigned' => TRUE,
+        'not null' => TRUE,
+        'size' => 'small'),
+      'custom'         => array(
+        'description' => t('A boolean indicating whether this type is defined by a module (FALSE) or by a user via a module like the Content Construction Kit (TRUE).'),
+        'type' => 'int',
+        'not null' => TRUE,
+        'default' => 0,
+        'size' => 'tiny'),
+      'modified'       => array(
+        'description' => t('A boolean indicating whether this type has been modified by an administrator; currently not used in any way.'),
+        'type' => 'int',
+        'not null' => TRUE,
+        'default' => 0,
+        'size' => 'tiny'),
+      'locked'         => array(
+        'description' => t('A boolean indicating whether the administrator can change the machine name of this type.'),
+        'type' => 'int',
+        'not null' => TRUE,
+        'default' => 0,
+        'size' => 'tiny'),
+      'orig_type'      => array(
+        'description' => t('The original machine-readable name of this node type.  The may be different from the current type name if the locked field is 0.'),
+        'type' => 'varchar',
+        'length' => 255,
+        'not null' => TRUE,
+        'default' => '')
+      ),
     'primary key' => array('type'),
-  );
+    );
 
   return $schema;
 }
Index: modules/poll/poll.schema
===================================================================
RCS file: /cvs/drupal/drupal/modules/poll/poll.schema,v
retrieving revision 1.1
diff -u -F^f -r1.1 poll.schema
--- modules/poll/poll.schema	25 May 2007 12:46:45 -0000	1.1
+++ modules/poll/poll.schema	15 Sep 2007 17:10:50 -0000
@@ -3,39 +3,110 @@
 
 function poll_schema() {
   $schema['poll'] = array(
+    'description' => t('Stores poll-specific information for poll nodes.'),
     'fields' => array(
-      'nid'     => array('type' => 'int', 'unsigned' => TRUE, 'not null' => TRUE, 'default' => 0),
-      'runtime' => array('type' => 'int', 'not null' => TRUE, 'default' => 0),
-      'active'  => array('type' => 'int', 'unsigned' => TRUE, 'not null' => TRUE, 'default' => 0)
-    ),
+      'nid'     => array(
+        'type' => 'int',
+        'unsigned' => TRUE,
+        'not null' => TRUE,
+        'default' => 0,
+        'description' => t('The poll\'s {node}.nid.')
+        ),
+      'runtime' => array(
+        'type' => 'int',
+        'not null' => TRUE,
+        'default' => 0,
+        'description' => t('The number of seconds past {node}.created during which the poll is open.')
+        ),
+      'active'  => array(
+        'type' => 'int',
+        'unsigned' => TRUE,
+        'not null' => TRUE,
+        'default' => 0,
+        'description' => t('Boolean indicating whether or not the poll is open.'),
+        ),
+      ),
     'primary key' => array('nid'),
-  );
+    );
 
   $schema['poll_choices'] = array(
+    'description' => t('Stores information about all choices for all {poll}s.'),
     'fields' => array(
-      'chid'    => array('type' => 'serial', 'unsigned' => TRUE, 'not null' => TRUE),
-      'nid'     => array('type' => 'int', 'unsigned' => TRUE, 'not null' => TRUE, 'default' => 0),
-      'chtext'  => array('type' => 'varchar', 'length' => 128, 'not null' => TRUE, 'default' => ''),
-      'chvotes' => array('type' => 'int', 'not null' => TRUE, 'default' => 0),
-      'chorder' => array('type' => 'int', 'not null' => TRUE, 'default' => 0)
-    ),
-    'indexes' => array('nid' => array('nid')),
+      'chid'    => array(
+        'type' => 'serial',
+        'unsigned' => TRUE,
+        'not null' => TRUE,
+        'description' => t('Unique identifer for a poll choice.'),
+        ),
+      'nid'     => array(
+        'type' => 'int',
+        'unsigned' => TRUE,
+        'not null' => TRUE,
+        'default' => 0,
+        'description' => t('The {node}.nid this choice belongs to.'),
+        ),
+      'chtext'  => array(
+        'type' => 'varchar',
+        'length' => 128,
+        'not null' => TRUE,
+        'default' => '',
+        'description' => t('The text for this choice.'),
+        ),
+      'chvotes' => array(
+        'type' => 'int',
+        'not null' => TRUE,
+        'default' => 0,
+        'description' => t('The total number of votes this choice has received by all users.'),
+        ),
+      'chorder' => array(
+        'type' => 'int',
+        'not null' => TRUE,
+        'default' => 0,
+        'description' => t('The sort order of this choice among all choices for the same node.'),
+        )
+      ),
+    'indexes' => array(
+      'nid' => array('nid')
+      ),
     'primary key' => array('chid'),
-  );
-
+    );
+  
   $schema['poll_votes'] = array(
+    'description' => t('Stores per-{users} votes for each {poll}.'),
     'fields' => array(
-      'nid'      => array('type' => 'int', 'unsigned' => TRUE, 'not null' => TRUE),
-      'uid'      => array('type' => 'int', 'unsigned' => TRUE, 'not null' => TRUE, 'default' => 0),
-      'chorder'  => array('type' => 'int', 'not null' => TRUE, 'default' => -1),
-      'hostname' => array('type' => 'varchar', 'length' => 128, 'not null' => TRUE, 'default' => '')
-    ),
+      'nid'      => array(
+        'type' => 'int',
+        'unsigned' => TRUE,
+        'not null' => TRUE,
+        'description' => t('The {poll} node this vote is for.'),
+        ),
+      'uid'      => array(
+        'type' => 'int',
+        'unsigned' => TRUE,
+        'not null' => TRUE,
+        'default' => 0,
+        'description' => t('The {users}.uid this vote is from unless the voter was anonymous.'),
+        ),
+      'chorder'  => array(
+        'type' => 'int',
+        'not null' => TRUE,
+        'default' => -1,
+        'description' => t('The {users}\'s vote for this poll.'),
+        ),
+      'hostname' => array(
+        'type' => 'varchar',
+        'length' => 128,
+        'not null' => TRUE,
+        'default' => '',
+        'description' => t('The IP address this vote is from unless the voter was logged in.'),
+        ),
+      ),
     'indexes' => array(
       'hostname' => array('hostname'),
       'nid'      => array('nid'),
       'uid'      => array('uid')
-    ),
-  );
+      ),
+    );
 
   return $schema;
 }
Index: modules/search/search.schema
===================================================================
RCS file: /cvs/drupal/drupal/modules/search/search.schema,v
retrieving revision 1.3
diff -u -F^f -r1.3 search.schema
--- modules/search/search.schema	15 Jul 2007 10:09:21 -0000	1.3
+++ modules/search/search.schema	15 Sep 2007 17:10:50 -0000
@@ -3,34 +3,95 @@
 
 function search_schema() {
   $schema['search_dataset'] = array(
+    'description' => t('TODO'),
     'fields' => array(
-      'sid'  => array('type' => 'int', 'unsigned' => TRUE, 'not null' => TRUE, 'default' => 0),
-      'type' => array('type' => 'varchar', 'length' => 16, 'not null' => FALSE),
-      'data' => array('type' => 'text', 'not null' => TRUE, 'size' => 'big')
+      'sid' => array(
+        'type' => 'int',
+        'unsigned' => TRUE,
+        'not null' => TRUE,
+        'default' => 0,
+        'description' => t('TODO'),
+      ),
+      'type' => array(
+        'type' => 'varchar',
+        'length' => 16,
+        'not null' => FALSE,
+        'description' => t('TODO'),
+      ),
+      'data' => array(
+        'type' => 'text',
+        'not null' => TRUE,
+        'size' => 'big',
+        'description' => t('TODO'),
+      ),
     ),
     'indexes' => array('sid_type' => array('sid', 'type')),
   );
 
   $schema['search_index'] = array(
+    'description' => t('TODO'),
     'fields' => array(
-      'word'     => array('type' => 'varchar', 'length' => 50, 'not null' => TRUE, 'default' => ''),
-      'sid'      => array('type' => 'int', 'unsigned' => TRUE, 'not null' => TRUE, 'default' => 0),
-      'type'     => array('type' => 'varchar', 'length' => 16, 'not null' => FALSE),
-      'fromsid'  => array('type' => 'int', 'unsigned' => TRUE, 'not null' => TRUE, 'default' => 0),
-      'fromtype' => array('type' => 'varchar', 'length' => 16, 'not null' => FALSE),
-      'score'    => array('type' => 'float', 'not null' => FALSE)
+      'word' => array(
+        'type' => 'varchar',
+        'length' => 50,
+        'not null' => TRUE,
+        'default' => '',
+        'description' => t('TODO'),
+      ),
+      'sid' => array(
+        'type' => 'int',
+        'unsigned' => TRUE,
+        'not null' => TRUE,
+        'default' => 0,
+        'description' => t('TODO'),
+      ),
+      'type' => array(
+        'type' => 'varchar',
+        'length' => 16,
+        'not null' => FALSE,
+        'description' => t('TODO'),
+      ),
+      'fromsid' => array(
+        'type' => 'int',
+        'unsigned' => TRUE,
+        'not null' => TRUE,
+        'default' => 0,
+        'description' => t('TODO'),
+      ),
+      'fromtype' => array(
+        'type' => 'varchar',
+        'length' => 16,
+        'not null' => FALSE,
+        'description' => t('TODO'),
+      ),
+      'score' => array(
+        'type' => 'float',
+        'not null' => FALSE,
+        'description' => t('TODO'),
+      ),
     ),
     'indexes' => array(
       'from_sid_type' => array('fromsid', 'fromtype'),
-      'sid_type'      => array('sid', 'type'),
-      'word'          => array('word')
+      'sid_type' => array('sid', 'type'),
+      'word' => array('word')
     ),
   );
 
   $schema['search_total'] = array(
+    'description' => t('TODO'),
     'fields' => array(
-      'word'  => array('type' => 'varchar', 'length' => 50, 'not null' => TRUE, 'default' => ''),
-      'count' => array('type' => 'float', 'not null' => FALSE)
+      'word' => array(
+        'description' => t('TODO'),
+        'type' => 'varchar',
+        'length' => 50,
+        'not null' => TRUE,
+        'default' => '',
+      ),
+      'count' => array(
+        'description' => t('TODO'),
+        'type' => 'float',
+        'not null' => FALSE,
+      ),
     ),
     'primary key' => array('word'),
   );
Index: modules/statistics/statistics.schema
===================================================================
RCS file: /cvs/drupal/drupal/modules/statistics/statistics.schema,v
retrieving revision 1.1
diff -u -F^f -r1.1 statistics.schema
--- modules/statistics/statistics.schema	25 May 2007 12:46:45 -0000	1.1
+++ modules/statistics/statistics.schema	15 Sep 2007 17:10:50 -0000
@@ -3,16 +3,65 @@
 
 function statistics_schema() {
   $schema['accesslog'] = array(
+    'description' => t('Stores site access information for statistics.'),
     'fields' => array(
-      'aid'       => array('type' => 'serial', 'not null' => TRUE),
-      'sid'       => array('type' => 'varchar', 'length' => 64, 'not null' => TRUE, 'default' => ''),
-      'title'     => array('type' => 'varchar', 'length' => 255, 'not null' => FALSE),
-      'path'      => array('type' => 'varchar', 'length' => 255, 'not null' => FALSE),
-      'url'       => array('type' => 'varchar', 'length' => 255, 'not null' => FALSE),
-      'hostname'  => array('type' => 'varchar', 'length' => 128, 'not null' => FALSE),
-      'uid'       => array('type' => 'int', 'unsigned' => TRUE, 'not null' => FALSE, 'default' => 0),
-      'timer'     => array('type' => 'int', 'unsigned' => TRUE, 'not null' => TRUE, 'default' => 0),
-      'timestamp' => array('type' => 'int', 'unsigned' => TRUE, 'not null' => TRUE, 'default' => 0)
+      'aid' => array(
+        'type' => 'serial',
+        'not null' => TRUE,
+        'description' => t('Primary Key: Unique accesslog ID.'),
+      ),
+      'sid' => array(
+        'type' => 'varchar',
+        'length' => 64,
+        'not null' => TRUE,
+        'default' => '',
+        'description' => t('Browser session ID of user that visited page.'),
+      ),
+      'title' => array(
+        'type' => 'varchar',
+        'length' => 255,
+        'not null' => FALSE,
+        'description' => t('Title of page visited.'),
+      ),
+      'path' => array(
+        'type' => 'varchar',
+        'length' => 255,
+        'not null' => FALSE,
+        'description' => t('Internal path to page visited (relative to Drupal root.)'),
+      ),
+      'url' => array(
+        'type' => 'varchar',
+        'length' => 255,
+        'not null' => FALSE,
+        'description' => t('Referrer URI.'),
+      ),
+      'hostname' => array(
+        'type' => 'varchar',
+        'length' => 128,
+        'not null' => FALSE,
+        'description' => t('Hostname of user that visited the page.'),
+      ),
+      'uid' => array(
+        'type' => 'int', 
+        'unsigned' => TRUE,
+        'not null' => FALSE,
+        'default' => 0,
+        'description' => t('User {user}.uid that visited the page.'),
+      ),
+      'timer' => array(
+        'type' => 'int',
+        'unsigned' => TRUE,
+        'not null' => TRUE,
+        'default' => 0,
+        'description' => t('Time in milliseconds that the page took to load.'),
+      ),
+      'timestamp' => array(
+        'type' => 'int',
+        'unsigned' => TRUE,
+        'not null' => TRUE,
+        'default' => 0,
+        'description' => t('Timestamp of when the page was visited.'),
+      ),
     ),
     'indexes' => array('accesslog_timestamp' => array('timestamp')),
     'primary key' => array('aid'),
Index: modules/taxonomy/taxonomy.schema
===================================================================
RCS file: /cvs/drupal/drupal/modules/taxonomy/taxonomy.schema,v
retrieving revision 1.1
diff -u -F^f -r1.1 taxonomy.schema
--- modules/taxonomy/taxonomy.schema	25 May 2007 12:46:46 -0000	1.1
+++ modules/taxonomy/taxonomy.schema	15 Sep 2007 17:10:50 -0000
@@ -3,94 +3,266 @@
 
 function taxonomy_schema() {
   $schema['term_data'] = array(
+    'description' => t('TODO'),
     'fields' => array(
-      'tid'         => array('type' => 'serial', 'unsigned' => TRUE, 'not null' => TRUE),
-      'vid'         => array('type' => 'int', 'unsigned' => TRUE, 'not null' => TRUE, 'default' => 0),
-      'name'        => array('type' => 'varchar', 'length' => 255, 'not null' => TRUE, 'default' => ''),
-      'description' => array('type' => 'text', 'not null' => FALSE, 'size' => 'big'),
-      'weight'      => array('type' => 'int', 'not null' => TRUE, 'default' => 0, 'size' => 'tiny')
+      'tid' => array(
+        'type' => 'serial',
+        'unsigned' => TRUE,
+        'not null' => TRUE,
+        'description' => t('TODO'),
+      ),
+      'vid' => array(
+        'type' => 'int',
+        'unsigned' => TRUE,
+        'not null' => TRUE,
+        'default' => 0,
+        'description' => t('TODO'),
+      ),
+      'name' => array(
+        'type' => 'varchar',
+        'length' => 255,
+        'not null' => TRUE,
+        'default' => '',
+        'description' => t('TODO'),
+      ),
+      'description' => array(
+        'type' => 'text',
+        'not null' => FALSE,
+        'size' => 'big',
+        'description' => t('TODO'),
+      ),
+      'weight' => array(
+        'type' => 'int',
+        'not null' => TRUE,
+        'default' => 0,
+        'size' => 'tiny',
+        'description' => t('TODO'),
+      ),
     ),
     'primary key' => array('tid'),
     'indexes' => array('vid' => array('vid')),
   );
 
   $schema['term_hierarchy'] = array(
+    'description' => t('TODO'),
     'fields' => array(
-      'tid'    => array('type' => 'int', 'unsigned' => TRUE, 'not null' => TRUE, 'default' => 0),
-      'parent' => array('type' => 'int', 'unsigned' => TRUE, 'not null' => TRUE, 'default' => 0)
+      'tid' => array(
+        'type' => 'int',
+        'unsigned' => TRUE,
+        'not null' => TRUE,
+        'default' => 0,
+        'description' => t('TODO'),
+      ),
+      'parent' => array(
+        'type' => 'int',
+        'unsigned' => TRUE,
+        'not null' => TRUE,
+        'default' => 0,
+        'description' => t('TODO'),
+      ),
     ),
     'indexes' => array(
       'parent' => array('parent'),
-      'tid'    => array('tid')
+      'tid' => array('tid'),
     ),
     'primary key' => array('tid', 'parent'),
   );
 
   $schema['term_node'] = array(
+    'description' => t('TODO'),
     'fields' => array(
-      'nid' => array('type' => 'int', 'unsigned' => TRUE, 'not null' => TRUE, 'default' => 0),
-      'vid' => array('type' => 'int', 'unsigned' => TRUE, 'not null' => TRUE, 'default' => 0),
-      'tid' => array('type' => 'int', 'unsigned' => TRUE, 'not null' => TRUE, 'default' => 0)
+      'nid' => array(
+        'type' => 'int',
+        'unsigned' => TRUE,
+        'not null' => TRUE,
+        'default' => 0,
+        'description' => t('TODO'),
+      ),
+      'vid' => array(
+        'type' => 'int',
+        'unsigned' => TRUE,
+        'not null' => TRUE,
+        'default' => 0,
+        'description' => t('TODO'),
+      ),
+      'tid' => array(
+        'type' => 'int',
+        'unsigned' => TRUE,
+        'not null' => TRUE,
+        'default' => 0,
+        'description' => t('TODO'),
+      ),
     ),
     'indexes' => array(
       'nid' => array('nid'),
       'tid' => array('tid'),
-      'vid' => array('vid')
-    ),
-    'primary key' => array(
-      'vid',
-      'tid',
-      'nid'
+      'vid' => array('vid'),
     ),
+    'primary key' => array('vid', 'tid', 'nid'),
   );
 
   $schema['term_relation'] = array(
+    'description' => t('TODO'),
     'fields' => array(
-      'trid' => array('type' => 'serial', 'not null' => TRUE),
-      'tid1' => array('type' => 'int', 'unsigned' => TRUE, 'not null' => TRUE, 'default' => 0),
-      'tid2' => array('type' => 'int', 'unsigned' => TRUE, 'not null' => TRUE, 'default' => 0)
+      'trid' => array(
+        'type' => 'serial',
+        'not null' => TRUE,
+        'description' => t('TODO'),
+      ),
+      'tid1' => array(
+        'type' => 'int',
+        'unsigned' => TRUE,
+        'not null' => TRUE,
+        'default' => 0,
+        'description' => t('TODO'),
+      ),
+      'tid2' => array(
+        'type' => 'int',
+        'unsigned' => TRUE,
+        'not null' => TRUE,
+        'default' => 0,
+        'description' => t('TODO'),
+      ),
     ),
     'indexes' => array(
       'tid1' => array('tid1'),
-      'tid2' => array('tid2')
+      'tid2' => array('tid2'),
     ),
     'primary key' => array('trid'),
   );
 
   $schema['term_synonym'] = array(
+    'description' => t('TODO'),
     'fields' => array(
-      'tsid' => array('type' => 'serial', 'not null' => TRUE),
-      'tid'  => array('type' => 'int', 'unsigned' => TRUE, 'not null' => TRUE, 'default' => 0),
-      'name' => array('type' => 'varchar', 'length' => 255, 'not null' => TRUE, 'default' => '')
+      'tsid' => array(
+        'type' => 'serial',
+        'not null' => TRUE,
+        'description' => t('TODO'),
+      ),
+      'tid' => array(
+        'type' => 'int',
+        'unsigned' => TRUE,
+        'not null' => TRUE,
+        'default' => 0,
+        'description' => t('TODO'),
+      ),
+      'name' => array(
+        'type' => 'varchar',
+        'length' => 255,'not null' => TRUE,
+        'default' => '',
+        'description' => t('TODO'),
+      ),
     ),
     'indexes' => array(
       'name' => array(array('name', 3)),
-      'tid'  => array('tid')
+      'tid' => array('tid'),
     ),
     'primary key' => array('tsid'),
   );
 
   $schema['vocabulary'] = array(
+    'description' => t('TODO'),
     'fields' => array(
-      'vid'         => array('type' => 'serial', 'unsigned' => TRUE, 'not null' => TRUE),
-      'name'        => array('type' => 'varchar', 'length' => 255, 'not null' => TRUE, 'default' => ''),
-      'description' => array('type' => 'text', 'not null' => FALSE, 'size' => 'big'),
-      'help'        => array('type' => 'varchar', 'length' => 255, 'not null' => TRUE, 'default' => ''),
-      'relations'   => array('type' => 'int', 'unsigned' => TRUE, 'not null' => TRUE, 'default' => 0, 'size' => 'tiny'),
-      'hierarchy'   => array('type' => 'int', 'unsigned' => TRUE, 'not null' => TRUE, 'default' => 0, 'size' => 'tiny'),
-      'multiple'    => array('type' => 'int', 'unsigned' => TRUE, 'not null' => TRUE, 'default' => 0, 'size' => 'tiny'),
-      'required'    => array('type' => 'int', 'unsigned' => TRUE, 'not null' => TRUE, 'default' => 0, 'size' => 'tiny'),
-      'tags'        => array('type' => 'int', 'unsigned' => TRUE, 'not null' => TRUE, 'default' => 0, 'size' => 'tiny'),
-      'module'      => array('type' => 'varchar', 'length' => 255, 'not null' => TRUE, 'default' => ''),
-      'weight'      => array('type' => 'int', 'not null' => TRUE, 'default' => 0, 'size' => 'tiny')
+      'vid' => array(
+        'type' => 'serial',
+        'unsigned' => TRUE,
+        'not null' => TRUE,
+        'description' => t('TODO'),
+      ),
+      'name' => array(
+        'type' => 'varchar',
+        'length' => 255,
+        'not null' => TRUE,
+        'default' => '',
+        'description' => t('TODO'),
+      ),
+      'description' => array(
+        'type' => 'text',
+        'not null' => FALSE,
+        'size' => 'big',
+        'description' => t('TODO'),
+      ),
+      'help' => array(
+        'type' => 'varchar',
+        'length' => 255,
+        'not null' => TRUE,
+        'default' => '',
+        'description' => t('TODO'),
+      ),
+      'relations' => array(
+        'type' => 'int',
+        'unsigned' => TRUE,
+        'not null' => TRUE,
+        'default' => 0,
+        'size' => 'tiny',
+        'description' => t('TODO'),
+      ),
+      'hierarchy' => array(
+        'type' => 'int',
+        'unsigned' => TRUE,
+        'not null' => TRUE,
+        'default' => 0,
+        'size' => 'tiny',
+        'description' => t('TODO'),
+      ),
+      'multiple' => array(
+        'type' => 'int',
+        'unsigned' => TRUE,
+        'not null' => TRUE,
+        'default' => 0,
+        'size' => 'tiny',
+        'description' => t('TODO'),
+      ),
+      'required' => array(
+        'type' => 'int',
+        'unsigned' => TRUE,
+        'not null' => TRUE,
+        'default' => 0,
+        'size' => 'tiny',
+        'description' => t('TODO'),
+      ),
+      'tags' => array(
+        'type' => 'int',
+        'unsigned' => TRUE,
+        'not null' => TRUE,
+        'default' => 0,
+        'size' => 'tiny',
+        'description' => t('TODO'),
+      ),
+      'module' => array(
+        'type' => 'varchar',
+        'length' => 255,
+        'not null' => TRUE,
+        'default' => '',
+        'description' => t('TODO'),
+      ),
+      'weight' => array(
+        'type' => 'int',
+        'not null' => TRUE,
+        'default' => 0,
+        'size' => 'tiny',
+        'description' => t('TODO'),
+      ),
     ),
     'primary key' => array('vid'),
   );
 
   $schema['vocabulary_node_types'] = array(
+    'description' => t('TODO'),
     'fields' => array(
-      'vid'  => array('type' => 'int', 'unsigned' => TRUE, 'not null' => TRUE, 'default' => 0),
-      'type' => array('type' => 'varchar', 'length' => 32, 'not null' => TRUE, 'default' => '')
+      'vid' => array(
+        'type' => 'int',
+        'unsigned' => TRUE,
+        'not null' => TRUE,
+        'default' => 0,
+        'description' => t('TODO'),
+      ),
+      'type' => array(
+        'type' => 'varchar',
+        'length' => 32,'not null' => TRUE,
+        'default' => '',
+        'description' => t('TODO'),
+      ),
     ),
     'primary key' => array('vid', 'type'),
   );
Index: modules/trigger/trigger.schema
===================================================================
RCS file: /cvs/drupal/drupal/modules/trigger/trigger.schema,v
retrieving revision 1.1
diff -u -F^f -r1.1 trigger.schema
--- modules/trigger/trigger.schema	11 Sep 2007 14:50:05 -0000	1.1
+++ modules/trigger/trigger.schema	15 Sep 2007 17:10:50 -0000
@@ -3,14 +3,34 @@
 
 function trigger_schema() {
   $schema['trigger_assignments'] = array(
+    'description' => t('Maps trigger to hook and operation assignments from trigger.module.'),
     'fields' => array(
-      'hook' => array('type' => 'varchar', 'length' => 32, 'not null' => TRUE, 'default' => ''),
-      'op' => array('type' => 'varchar', 'length' => 32, 'not null' => TRUE, 'default' => ''),
-      'aid' => array('type' => 'varchar', 'length' => 255, 'not null' => TRUE, 'default' => ''),
+      'hook' => array(
+        'type' => 'varchar',
+        'length' => 32,
+        'not null' => TRUE,
+        'default' => '',
+        'description' => t('The name of the internal Drupal hook upon which an action is firing; for example, nodeapi.'),
+      ),
+      'op' => array(
+        'type' => 'varchar',
+        'length' => 32,
+        'not null' => TRUE,
+        'default' => '',
+        'description' => t('The specific operation of the hook upon which an action is firing: for example, presave.'),
+      ),
+      'aid' => array(
+        'type' => 'varchar',
+        'length' => 255,
+        'not null' => TRUE,
+        'default' => '',
+        'description' => t("Action's {action}.aid."),
+      ),
       'weight' => array('type' => 'int', 'not null' => TRUE, 'default' => 0),
     ),
     'index keys' => array(
-      'hook_op' => array('hook', 'op'))
+      'hook_op' => array('hook', 'op'),
+    ),
   );
   return $schema;
 }
Index: modules/upload/upload.schema
===================================================================
RCS file: /cvs/drupal/drupal/modules/upload/upload.schema,v
retrieving revision 1.1
diff -u -F^f -r1.1 upload.schema
--- modules/upload/upload.schema	30 May 2007 08:08:59 -0000	1.1
+++ modules/upload/upload.schema	15 Sep 2007 17:10:51 -0000
@@ -3,12 +3,44 @@
 
 function upload_schema() {
   $schema['upload'] = array(
+    'description' => t('Stores uploaded file information and table associations.'),
     'fields' => array(
-      'fid'         => array('type' => 'int', 'unsigned' => TRUE, 'not null' => TRUE, 'default' => 0),
-      'nid'         => array('type' => 'int', 'unsigned' => TRUE, 'not null' => TRUE, 'default' => 0),
-      'vid'         => array('type' => 'int', 'unsigned' => TRUE, 'not null' => TRUE, 'default' => 0),
-      'description' => array('type' => 'varchar', 'length' => 255, 'not null' => TRUE, 'default' => ''),
-      'list'        => array('type' => 'int', 'unsigned' => TRUE, 'not null' => TRUE, 'default' => 0, 'size' => 'tiny')
+      'fid' => array(
+        'type' => 'int',
+        'unsigned' => TRUE,
+        'not null' => TRUE,
+        'default' => 0,
+        'description' => t('Primary Key: The {file}.fid.'),
+      ),
+      'nid' => array(
+        'type' => 'int',
+        'unsigned' => TRUE,
+        'not null' => TRUE,
+        'default' => 0,
+        'description' => t('The {node}.nid associated with the uploaded file.'),
+      ),
+      'vid' => array(
+        'type' => 'int',
+        'unsigned' => TRUE,
+        'not null' => TRUE,
+        'default' => 0,
+        'description' => t('Primary Key: The {node}.vid associated with the uploaded file.'),
+      ),
+      'description' => array(
+        'type' => 'varchar',
+        'length' => 255,
+        'not null' => TRUE,
+        'default' => '',
+        'description' => t('Description of the uploaded file.'),
+      ),
+      'list' => array(
+        'type' => 'int',
+        'unsigned' => TRUE,
+        'not null' => TRUE,
+        'default' => 0,
+        'size' => 'tiny',
+        'description' => t('Whether the file should be visibly listed on the node: yes(1) or no(0).'),
+      ),
     ),
     'primary key' => array('fid', 'vid'),
     'indexes' => array('vid' => array('vid'), 'nid' => array('nid')),
Index: modules/user/user.schema
===================================================================
RCS file: /cvs/drupal/drupal/modules/user/user.schema,v
retrieving revision 1.3
diff -u -F^f -r1.3 user.schema
--- modules/user/user.schema	15 Jul 2007 10:09:21 -0000	1.3
+++ modules/user/user.schema	15 Sep 2007 17:10:51 -0000
@@ -3,69 +3,252 @@
 
 function user_schema() {
   $schema['access'] = array(
+    'description' => t('Stores site access rules.'),
     'fields' => array(
-      'aid'    => array('type' => 'serial', 'not null' => TRUE),
-      'mask'   => array('type' => 'varchar', 'length' => 255, 'not null' => TRUE, 'default' => ''),
-      'type'   => array('type' => 'varchar', 'length' => 255, 'not null' => TRUE, 'default' => ''),
-      'status' => array('type' => 'int', 'not null' => TRUE, 'default' => 0, 'size' => 'tiny')
+      'aid' => array(
+        'type' => 'serial',
+        'not null' => TRUE,
+        'description' => t('Primary Key: Unique access ID.'),
+      ),
+      'mask' => array(
+        'type' => 'varchar',
+        'length' => 255,
+        'not null' => TRUE,
+        'default' => '',
+        'description' => t('Text mask used for filtering access.'),
+      ),
+      'type' => array(
+        'type' => 'varchar',
+        'length' => 255,
+        'not null' => TRUE,
+        'default' => '',
+        'description' => t('Type of access rule: name, mail or host.'),
+      ),
+      'status' => array(
+        'type' => 'int',
+        'not null' => TRUE,
+        'default' => 0,
+        'size' => 'tiny',
+        'description' => t('Whether rule is to allow(1) or deny(0) access.'),
+      ),
     ),
     'primary key' => array('aid'),
   );
 
   $schema['authmap'] = array(
+    'description' => t('Stores distributed authentication mapping.'),
     'fields' => array(
-      'aid'      => array('type' => 'serial', 'unsigned' => TRUE, 'not null' => TRUE),
-      'uid'      => array('type' => 'int', 'not null' => TRUE, 'default' => 0),
-      'authname' => array('type' => 'varchar', 'length' => 128, 'not null' => TRUE, 'default' => ''),
-      'module'   => array('type' => 'varchar', 'length' => 128, 'not null' => TRUE, 'default' => '')
+      'aid' => array(
+        'description' => t('Primary Key: Unique authmap ID.'),
+        'type' => 'serial',
+        'unsigned' => TRUE,
+        'not null' => TRUE,
+      ),
+      'uid' => array(
+        'type' => 'int',
+        'not null' => TRUE,
+        'default' => 0,
+        'description' => t("User's {user}.uid."),
+      ),
+      'authname' => array(
+        'type' => 'varchar',
+        'length' => 128,
+        'not null' => TRUE,
+        'default' => '',
+        'description' => t('Unique authentication name.'),
+      ),
+      'module' => array(
+        'type' => 'varchar',
+        'length' => 128,
+        'not null' => TRUE,
+        'default' => '',
+        'description' => t('Module which is controlling the authentication.'),
+      ),
     ),
     'unique keys' => array('authname' => array('authname')),
     'primary key' => array('aid'),
   );
 
   $schema['permission'] = array(
+    'description' => t('Stores permissions for users.'),
     'fields' => array(
-      'pid'  => array('type' => 'serial', 'not null' => TRUE),
-      'rid'  => array('type' => 'int', 'unsigned' => TRUE, 'not null' => TRUE, 'default' => 0),
-      'perm' => array('type' => 'text', 'not null' => FALSE, 'size' => 'big'),
-      'tid'  => array('type' => 'int', 'unsigned' => TRUE, 'not null' => TRUE, 'default' => 0)
+      'pid' => array(
+        'type' => 'serial',
+        'not null' => TRUE,
+        'description' => t('Primary Key: Unique permission ID.'),
+      ),
+      'rid' => array(
+        'type' => 'int',
+        'unsigned' => TRUE,
+        'not null' => TRUE,
+        'default' => 0,
+        'description' => t('The {role}.rid to which the permissions are assigned.'),
+      ),
+      'perm' => array(
+        'type' => 'text',
+        'not null' => FALSE,
+        'size' => 'big',
+        'description' => t('List of permissions being assigned.'),
+      ),
+      'tid' => array(
+        'type' => 'int',
+        'unsigned' => TRUE,
+        'not null' => TRUE,
+        'default' => 0,
+        'description' => t('Originally intended for taxonomy-based permissions, but never used.'),
+      ),
     ),
     'primary key' => array('pid'),
     'indexes' => array('rid' => array('rid')),
   );
 
   $schema['role'] = array(
+    'description' => t('Stores user roles.'),
     'fields' => array(
-      'rid'  => array('type' => 'serial', 'unsigned' => TRUE, 'not null' => TRUE),
-      'name' => array('type' => 'varchar', 'length' => 64, 'not null' => TRUE, 'default' => '')
+      'rid' => array(
+        'type' => 'serial',
+        'unsigned' => TRUE,
+        'not null' => TRUE,
+        'description' => t('Primary Key: Unique role id.'),
+      ),
+      'name' => array(
+        'type' => 'varchar',
+        'length' => 64,
+        'not null' => TRUE,
+        'default' => '',
+        'description' => t('Unique role name.'),
+      ),
     ),
     'unique keys' => array('name' => array('name')),
     'primary key' => array('rid'),
   );
 
   $schema['users'] = array(
+    'description' => t('Stores user data.'),
     'fields' => array(
-      'uid'       => array('type' => 'serial', 'unsigned' => TRUE, 'not null' => TRUE),
-      'name'      => array('type' => 'varchar', 'length' => 60, 'not null' => TRUE, 'default' => ''),
-      'pass'      => array('type' => 'varchar', 'length' => 32, 'not null' => TRUE, 'default' => ''),
-      'mail'      => array('type' => 'varchar', 'length' => 64, 'not null' => FALSE, 'default' => ''),
-      'mode'      => array('type' => 'int', 'not null' => TRUE, 'default' => 0, 'size' => 'tiny'),
-      'sort'      => array('type' => 'int', 'not null' => FALSE, 'default' => 0, 'size' => 'tiny'),
-      'threshold' => array('type' => 'int', 'not null' => FALSE, 'default' => 0, 'size' => 'tiny'),
-      'theme'     => array('type' => 'varchar', 'length' => 255, 'not null' => TRUE, 'default' => ''),
-      'signature' => array('type' => 'varchar', 'length' => 255, 'not null' => TRUE, 'default' => ''),
-      'created'   => array('type' => 'int', 'not null' => TRUE, 'default' => 0),
-      'access'    => array('type' => 'int', 'not null' => TRUE, 'default' => 0),
-      'login'     => array('type' => 'int', 'not null' => TRUE, 'default' => 0),
-      'status'    => array('type' => 'int', 'not null' => TRUE, 'default' => 0, 'size' => 'tiny'),
-      'timezone'  => array('type' => 'varchar', 'length' => 8, 'not null' => FALSE),
-      'language'  => array('type' => 'varchar', 'length' => 12, 'not null' => TRUE, 'default' => ''),
-      'picture'   => array('type' => 'varchar', 'length' => 255, 'not null' => TRUE, 'default' => ''),
-      'init'      => array('type' => 'varchar', 'length' => 64, 'not null' => FALSE, 'default' => ''),
-      'data'      => array('type' => 'text', 'not null' => FALSE, 'size' => 'big')
+      'uid' => array(
+        'type' => 'serial',
+        'unsigned' => TRUE,
+        'not null' => TRUE,
+        'description' => t('Primary Key: Unique user ID.'),
+      ),
+      'name' => array(
+        'type' => 'varchar',
+        'length' => 60,
+        'not null' => TRUE,
+        'default' => '',
+        'description' => t('Unique user name.'),
+      ),
+      'pass' => array(
+        'type' => 'varchar',
+        'length' => 32,
+        'not null' => TRUE,
+        'default' => '',
+        'description' => t("User's password."),
+      ),
+      'mail' => array(
+        'type' => 'varchar',
+        'length' => 64,
+        'not null' => FALSE,
+        'default' => '',
+        'description' => t("User's email address."),
+      ),
+      'mode' => array(
+        'type' => 'int',
+        'not null' => TRUE,
+        'default' => 0,
+        'size' => 'tiny',
+        'description' => t('Per-user comment display mode (threaded vs. flat), used by the {comment} module.'),
+      ),
+      'sort' => array(
+        'type' => 'int',
+        'not null' => FALSE,
+        'default' => 0,
+        'size' => 'tiny',
+        'description' => t('Per-user comment sort order (newest vs. oldest first), used by the {comment} module.'),
+      ),
+      'threshold' => array(
+        'type' => 'int',
+        'not null' => FALSE,
+        'default' => 0,
+        'size' => 'tiny',
+        'description' => t('Previously used by the {comment} module for per-user preferences; no longer used.'),
+      ),
+      'theme' => array(
+        'type' => 'varchar',
+        'length' => 255,
+        'not null' => TRUE,
+        'default' => '',
+        'description' => t("User's default theme."),
+      ),
+      'signature' => array(
+        'type' => 'varchar',
+        'length' => 255,
+        'not null' => TRUE,
+        'default' => '',
+        'description' => t("User's signature."),
+      ),
+      'created' => array(
+        'type' => 'int',
+        'not null' => TRUE,
+        'default' => 0,
+        'description' => t('Timestamp for when user was created.'),
+      ),
+      'access' => array(
+        'type' => 'int',
+        'not null' => TRUE,
+        'default' => 0,
+        'description' => t('Timestamp for previous time user accessed the site.'),
+      ),
+      'login' => array(
+        'type' => 'int',
+        'not null' => TRUE,
+        'default' => 0,
+        'description' => t("Timestamp for user's last login."),
+      ),
+      'status' => array(
+        'type' => 'int',
+        'not null' => TRUE,
+        'default' => 0,
+        'size' => 'tiny',
+        'description' => t('Whether the user is active(1) or blocked(0).'),
+      ),
+      'timezone' => array(
+        'type' => 'varchar',
+        'length' => 8,
+        'not null' => FALSE,
+        'description' => t("User's timezone."),
+      ),
+      'language' => array(
+        'type' => 'varchar',
+        'length' => 12,
+        'not null' => TRUE,
+        'default' => '',
+        'description' => t("User's default language."),
+      ),
+      'picture' => array(
+        'type' => 'varchar',
+        'length' => 255,
+        'not null' => TRUE,
+        'default' => '',
+        'description' => t("Path to the user's uploaded picture."),
+      ),
+      'init' => array(
+        'type' => 'varchar',
+        'length' => 64,
+        'not null' => FALSE,
+        'default' => '',
+        'description' => t('Email address used for initial account creation.'),
+      ),
+      'data' => array(
+        'type' => 'text',
+        'not null' => FALSE,
+        'size' => 'big',
+        'description' => t('TODO'),
+      ),
     ),
     'indexes' => array(
-      'access'  => array('access'),
+      'access' => array('access'),
       'created' => array('created')
     ),
     'unique keys' => array('name' => array('name')),
@@ -73,9 +256,22 @@ function user_schema() {
   );
 
   $schema['users_roles'] = array(
+    'description' => t('Maps users to roles.'),
     'fields' => array(
-      'uid' => array('type' => 'int', 'unsigned' => TRUE, 'not null' => TRUE, 'default' => 0),
-      'rid' => array('type' => 'int', 'unsigned' => TRUE, 'not null' => TRUE, 'default' => 0)
+      'uid' => array(
+        'type' => 'int',
+        'unsigned' => TRUE,
+        'not null' => TRUE,
+        'default' => 0,
+        'description' => t('Primary Key: {user}.uid for user.'),
+      ),
+      'rid' => array(
+        'type' => 'int',
+        'unsigned' => TRUE,
+        'not null' => TRUE,
+        'default' => 0,
+        'description' => t('Primary Key: {role}.rid for role.'),
+      ),
     ),
     'primary key' => array('uid', 'rid'),
   );
