? drupal-document-schema-164983-37.patch
? drupal-document-schema-164983-39.patch
? modules/search/mysearch.schema
? modules/taxonomy/mytaxo.schema
Index: modules/aggregator/aggregator.schema
===================================================================
RCS file: /cvs/drupal/drupal/modules/aggregator/aggregator.schema,v
retrieving revision 1.3
diff -u -p -r1.3 aggregator.schema
--- modules/aggregator/aggregator.schema	15 Jul 2007 10:09:21 -0000	1.3
+++ modules/aggregator/aggregator.schema	25 Sep 2007 11:48:11 -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 -p -r1.3 block.schema
--- modules/block/block.schema	14 Sep 2007 17:46:32 -0000	1.3
+++ modules/block/block.schema	25 Sep 2007 11:48:11 -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 -p -r1.2 book.schema
--- modules/book/book.schema	30 Jul 2007 18:20:21 -0000	1.2
+++ modules/book/book.schema	25 Sep 2007 11:48:11 -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 -p -r1.4 comment.schema
--- modules/comment/comment.schema	30 Jul 2007 21:27:34 -0000	1.4
+++ modules/comment/comment.schema	25 Sep 2007 11:48:11 -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 -p -r1.3 contact.schema
--- modules/contact/contact.schema	15 Jul 2007 10:09:21 -0000	1.3
+++ modules/contact/contact.schema	25 Sep 2007 11:48:11 -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 -p -r1.3 dblog.schema
--- modules/dblog/dblog.schema	28 Jul 2007 07:11:14 -0000	1.3
+++ modules/dblog/dblog.schema	25 Sep 2007 11:48:11 -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 -p -r1.1 drupal.schema
--- modules/drupal/drupal.schema	25 May 2007 12:46:44 -0000	1.1
+++ modules/drupal/drupal.schema	25 Sep 2007 11:48:11 -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 -p -r1.1 filter.schema
--- modules/filter/filter.schema	25 May 2007 12:46:44 -0000	1.1
+++ modules/filter/filter.schema	25 Sep 2007 11:48:11 -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/forum/forum.schema
===================================================================
RCS file: /cvs/drupal/drupal/modules/forum/forum.schema,v
retrieving revision 1.3
diff -u -p -r1.3 forum.schema
--- modules/forum/forum.schema	5 Sep 2007 08:27:57 -0000	1.3
+++ modules/forum/forum.schema	25 Sep 2007 11:48:11 -0000
@@ -2,10 +2,29 @@
 
 function forum_schema() {
   $schema['forum'] = array(
+    'description' => t('Stores the relationship of nodes to forum terms.'),
     '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('The {node}.nid of the node.'),
+      ),
+      'vid' => array(
+        'type' => 'int',
+        'unsigned' => TRUE,
+        'not null' => TRUE,
+        'default' => 0,
+        'description' => t('Primary Key: The {node}.vid of the node.'),
+      ),
+      'tid' => array(
+        'type' => 'int',
+        'unsigned' => TRUE,
+        'not null' => TRUE,
+        'default' => 0,
+        'description' => t('The {term_data}.tid of the forum term assigned to the node.'),
+      ),
     ),
     'indexes' => array(
       'nid' => array('nid'),
Index: modules/locale/locale.schema
===================================================================
RCS file: /cvs/drupal/drupal/modules/locale/locale.schema,v
retrieving revision 1.7
diff -u -p -r1.7 locale.schema
--- modules/locale/locale.schema	2 Sep 2007 15:19:16 -0000	1.7
+++ modules/locale/locale.schema	25 Sep 2007 11:48:11 -0000
@@ -3,45 +3,120 @@
 
 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 +124,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 -p -r1.4 menu.schema
--- modules/menu/menu.schema	29 Aug 2007 20:46:18 -0000	1.4
+++ modules/menu/menu.schema	25 Sep 2007 11:48:11 -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 -p -r1.7 node.schema
--- modules/node/node.schema	30 Aug 2007 15:31:46 -0000	1.7
+++ modules/node/node.schema	25 Sep 2007 11:48:11 -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/openid/openid.schema
===================================================================
RCS file: /cvs/drupal/drupal/modules/openid/openid.schema,v
retrieving revision 1.2
diff -u -p -r1.2 openid.schema
--- modules/openid/openid.schema	4 Jul 2007 15:52:06 -0000	1.2
+++ modules/openid/openid.schema	25 Sep 2007 11:48:11 -0000
@@ -3,14 +3,46 @@
 
 function openid_schema() {
   $schema['openid_association'] = array(
+    'description' => t('Stores OpenID account information.'),
     'fields' => array(
-      'idp_endpoint_uri' => array('type' => 'varchar', 'length' => 255),
-      'assoc_handle' => array('type' => 'varchar', 'length' => 255, 'not null' => TRUE),
-      'assoc_type' => array('type' => 'varchar', 'length' => 32),
-      'session_type' => array('type' => 'varchar', 'length' => 32),
-      'mac_key' => array('type' => 'varchar', 'length' => 255),
-      'created' => array('type' => 'int', 'not null' => TRUE, 'default' => 0),
-      'expires_in' => array('type' => 'int', 'not null' => TRUE, 'default' => 0),
+      'idp_endpoint_uri' => array(
+        'type' => 'varchar',
+        'length' => 255,
+        'description' => t('URI for the OpenID provider.'),
+      ),
+      'assoc_handle' => array(
+        'type' => 'varchar',
+        'length' => 255,
+        'not null' => TRUE,
+        'description' => t('TODO'),
+      ),
+      'assoc_type' => array(
+        'type' => 'varchar',
+        'length' => 32,
+        'description' => t('TODO'),
+      ),
+      'session_type' => array(
+        'type' => 'varchar',
+        'length' => 32,
+        'description' => t('TODO'),
+      ),
+      'mac_key' => array(
+        'type' => 'varchar',
+        'length' => 255,
+        'description' => t('TODO'),
+      ),
+      'created' => array(
+        'type' => 'int',
+        'not null' => TRUE,
+        'default' => 0,
+        'description' => t('Timestamp for the date the ID was created on the site.'),
+      ),
+      'expires_in' => array(
+        'type' => 'int',
+        'not null' => TRUE,
+        'default' => 0,
+        'description' => t('Timestamp for the date the ID will expire on the site.'),
+      ),
     ),
     'primary key' => array('assoc_handle'),
   );
Index: modules/poll/poll.schema
===================================================================
RCS file: /cvs/drupal/drupal/modules/poll/poll.schema,v
retrieving revision 1.1
diff -u -p -r1.1 poll.schema
--- modules/poll/poll.schema	25 May 2007 12:46:45 -0000	1.1
+++ modules/poll/poll.schema	25 Sep 2007 11:48:11 -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/profile/profile.schema
===================================================================
RCS file: /cvs/drupal/drupal/modules/profile/profile.schema,v
retrieving revision 1.2
diff -u -p -r1.2 profile.schema
--- modules/profile/profile.schema	9 Aug 2007 11:05:40 -0000	1.2
+++ modules/profile/profile.schema	25 Sep 2007 11:48:11 -0000
@@ -3,20 +3,89 @@
 
 function profile_schema() {
   $schema['profile_fields'] = array(
+    'description' => t('TODO'),
     'fields' => array(
-      'fid'          => array('type' => 'serial', 'not null' => TRUE),
-      'title'        => array('type' => 'varchar', 'length' => 255, 'not null' => FALSE),
-      'name'         => array('type' => 'varchar', 'length' => 128, 'not null' => TRUE, 'default' => ''),
-      'explanation'  => array('type' => 'text', 'not null' => FALSE),
-      'category'     => array('type' => 'varchar', 'length' => 255, 'not null' => FALSE),
-      'page'         => array('type' => 'varchar', 'length' => 255, 'not null' => FALSE),
-      'type'         => array('type' => 'varchar', 'length' => 128, 'not null' => FALSE),
-      'weight'       => array('type' => 'int', 'not null' => TRUE, 'default' => 0, 'size' => 'tiny'),
-      'required'     => array('type' => 'int', 'not null' => TRUE, 'default' => 0, 'size' => 'tiny'),
-      'register'     => array('type' => 'int', 'not null' => TRUE, 'default' => 0, 'size' => 'tiny'),
-      'visibility'   => array('type' => 'int', 'not null' => TRUE, 'default' => 0, 'size' => 'tiny'),
-      'autocomplete' => array('type' => 'int', 'not null' => TRUE, 'default' => 0, 'size' => 'tiny'),
-      'options'      => array('type' => 'text', 'not null' => FALSE)
+      'fid' => array(
+        'type' => 'serial',
+        'not null' => TRUE,
+        'description' => t('TODO'),
+      ),
+      'title' => array(
+        'type' => 'varchar',
+        'length' => 255,
+        'not null' => FALSE,
+        'description' => t('TODO'),
+      ),
+      'name' => array(
+        'type' => 'varchar',
+        'length' => 128,
+        'not null' => TRUE,
+        'default' => '',
+        'description' => t('TODO'),
+      ),
+      'explanation' => array(
+        'type' => 'text',
+        'not null' => FALSE,
+        'description' => t('TODO'),
+      ),
+      'category' => array(
+        'type' => 'varchar',
+        'length' => 255,
+        'not null' => FALSE,
+        'description' => t('TODO'),
+      ),
+      'page' => array(
+        'type' => 'varchar',
+        'length' => 255,
+        'not null' => FALSE,
+        'description' => t('TODO'),
+      ),
+      'type' => array(
+        'type' => 'varchar',
+        'length' => 128,
+        'not null' => FALSE,
+        'description' => t('TODO'),
+      ),
+      'weight' => array(
+        'type' => 'int',
+        'not null' => TRUE,
+        'default' => 0,
+        'size' => 'tiny',
+        'description' => t('TODO'),
+      ),
+      'required' => array(
+        'type' => 'int',
+        'not null' => TRUE,
+        'default' => 0,
+        'size' => 'tiny',
+        'description' => t('TODO'),
+      ),
+      'register' => array(
+        'type' => 'int',
+        'not null' => TRUE,
+        'default' => 0,
+        'size' => 'tiny',
+        'description' => t('TODO'),
+      ),
+      'visibility' => array(
+        'type' => 'int',
+        'not null' => TRUE,
+        'default' => 0,
+        'size' => 'tiny',
+        'description' => t('TODO'),
+      ),
+      'autocomplete' => array(
+        'type' => 'int',
+        'not null' => TRUE,
+        'default' => 0,
+        'size' => 'tiny',
+        'description' => t('TODO'),
+      ),
+      'options' => array(
+        'type' => 'text',
+        'not null' => FALSE,
+        'description' => t('TODO'),
+      ),
     ),
     'indexes' => array('category' => array('category')),
     'unique keys' => array('name' => array('name')),
@@ -24,10 +93,27 @@ function profile_schema() {
   );
 
   $schema['profile_values'] = array(
+    'description' => t('TODO'),
     'fields' => array(
-      'fid'   => array('type' => 'int', 'unsigned' => TRUE, 'not null' => FALSE, 'default' => 0),
-      'uid'   => array('type' => 'int', 'unsigned' => TRUE, 'not null' => FALSE, 'default' => 0),
-      'value' => array('type' => 'text', 'not null' => FALSE)
+      'fid' => array(
+        'type' => 'int',
+        'unsigned' => TRUE,
+        'not null' => FALSE,
+        'default' => 0,
+        'description' => t('TODO'),
+      ),
+      'uid' => array(
+        'type' => 'int',
+        'unsigned' => TRUE,
+        'not null' => FALSE,
+        'default' => 0,
+        'description' => t('TODO'),
+      ),
+      'value' => array(
+        'type' => 'text',
+        'not null' => FALSE,
+        'description' => t('TODO'),
+      ),
     ),
     'indexes' => array(
       'fid' => array('fid'),
Index: modules/search/search.schema
===================================================================
RCS file: /cvs/drupal/drupal/modules/search/search.schema,v
retrieving revision 1.3
diff -u -p -r1.3 search.schema
--- modules/search/search.schema	15 Jul 2007 10:09:21 -0000	1.3
+++ modules/search/search.schema	25 Sep 2007 11:48:11 -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 -p -r1.1 statistics.schema
--- modules/statistics/statistics.schema	25 May 2007 12:46:45 -0000	1.1
+++ modules/statistics/statistics.schema	25 Sep 2007 11:48:11 -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/system/system.schema
===================================================================
RCS file: /cvs/drupal/drupal/modules/system/system.schema,v
retrieving revision 1.13
diff -u -p -r1.13 system.schema
--- modules/system/system.schema	11 Sep 2007 19:14:34 -0000	1.13
+++ modules/system/system.schema	25 Sep 2007 11:48:11 -0000
@@ -6,207 +6,665 @@ function system_schema() {
   // some database drivers, e.g. Oracle and DB2, will require variable_get()
   // and variable_set() for overcoming some database specific limitations.
   $schema['variable'] = array(
+    'description' => t('Named variable/value pairs created by Drupal core or any other module or theme.  All variables are cached in memory at the start of every Drupal request so developers should not be careless about what is stored here.'),
     'fields' => array(
-      'name'     => array('type' => 'varchar', 'length' => 128, 'not null' => TRUE, 'default' => ''),
-      'value'    => array('type' => 'text', 'not null' => TRUE, 'size' => 'big'),
-    ),
+      'name' => array(
+        'description' => t('The name of the variable.'),
+        'type' => 'varchar',
+        'length' => 128,
+        'not null' => TRUE,
+        'default' => ''),
+      'value' => array(
+        'description' => t('The value of the variable.'),
+        'type' => 'text',
+        'not null' => TRUE,
+        'size' => 'big'),
+      ),
     'primary key' => array('name'),
-  );
+    );
 
   $schema['actions'] = array(
+    'description' => t('TODO'),
     'fields' => array(
-      'aid' => array('type' => 'varchar', 'length' => 255, 'not null' => TRUE, 'default' => '0'),
-      'type' => array('type' => 'varchar', 'length' => 32, 'not null' => TRUE, 'default' => ''),
-      'callback' => array('type' => 'varchar', 'length' => 255, 'not null' => TRUE, 'default' => ''),
-      'parameters' => array('type' => 'text', 'not null' => TRUE, 'size' => 'big'),
-      'description' => array('type' => 'varchar', 'length' => 255, 'not null' => TRUE, 'default' => '0'),
-    ),
+      'aid' => array(
+        'description' => t('TODO'),
+        'type' => 'varchar',
+        'length' => 255,
+        'not null' => TRUE,
+        'default' => '0'),
+      'type' => array(
+        'description' => t('TODO'),
+        'type' => 'varchar',
+        'length' => 32,
+        'not null' => TRUE,
+        'default' => ''),
+      'callback' => array(
+        'description' => t('TODO'),
+        'type' => 'varchar',
+        'length' => 255,
+        'not null' => TRUE,
+        'default' => ''),
+      'parameters' => array(
+        'description' => t('TODO'),
+        'type' => 'text',
+        'not null' => TRUE,
+        'size' => 'big'),
+      'description' => array(
+        'description' => t('TODO'),
+        'type' => 'varchar',
+        'length' => 255,
+        'not null' => TRUE,
+        'default' => '0'),
+      ),
     'primary key' => array('aid'),
-  );
+    );
 
   $schema['actions_aid'] = array(
+    'description' => t('TODO'),
     'fields' => array(
-      'aid' => array('type' => 'serial', 'unsigned' => TRUE, 'not null' => TRUE),
-    ),
+      'aid' => array(
+        'description' => t('TODO'),
+        'type' => 'serial',
+        'unsigned' => TRUE,
+        'not null' => TRUE),
+      ),
     'primary key' => array('aid'),
-  );
+    );
 
   $schema['batch'] = array(
+    'description' => t('TODO'),
     'fields' => array(
-      'bid'       => array('type' => 'serial', 'unsigned' => TRUE, 'not null' => TRUE),
-      'token'     => array('type' => 'varchar', 'length' => 64, 'not null' => TRUE),
-      'timestamp' => array('type' => 'int', 'not null' => TRUE),
-      'batch'     => array('type' => 'text', 'not null' => FALSE, 'size' => 'big')
-    ),
+      'bid' => array(
+        'description' => t('TODO'),
+        'type' => 'serial',
+        'unsigned' => TRUE,
+        'not null' => TRUE),
+      'token' => array(
+        'description' => t('TODO'),
+        'type' => 'varchar',
+        'length' => 64,
+        'not null' => TRUE),
+      'timestamp' => array(
+        'description' => t('TODO'),
+        'type' => 'int',
+        'not null' => TRUE),
+      'batch' => array(
+        'description' => t('TODO'),
+        'type' => 'text',
+        'not null' => FALSE,
+        'size' => 'big')
+      ),
     'primary key' => array('bid'),
     'indexes' => array('token' => array('token')),
-  );
+    );
 
   $schema['cache'] = array(
+    'description' => t('TODO'),
     'fields' => array(
-      'cid'        => array('type' => 'varchar', 'length' => 255, 'not null' => TRUE, 'default' => ''),
-      'data'       => array('type' => 'blob', 'not null' => FALSE, 'size' => 'big'),
-      'expire'     => array('type' => 'int', 'not null' => TRUE, 'default' => 0),
-      'created'    => array('type' => 'int', 'not null' => TRUE, 'default' => 0),
-      'headers'    => array('type' => 'text', 'not null' => FALSE),
-      'serialized' => array('type' => 'int', 'size' => 'small', 'not null' => TRUE, 'default' => 0)
-    ),
+      'cid' => array(
+        'description' => t('TODO'),
+        'type' => 'varchar',
+        'length' => 255,
+        'not null' => TRUE,
+        'default' => ''),
+      'data' => array(
+        'description' => t('TODO'),
+        'type' => 'blob',
+        'not null' => FALSE,
+        'size' => 'big'),
+      'expire' => array(
+        'description' => t('TODO'),
+        'type' => 'int',
+        'not null' => TRUE,
+        'default' => 0),
+      'created' => array(
+        'description' => t('TODO'),
+        'type' => 'int',
+        'not null' => TRUE,
+        'default' => 0),
+      'headers' => array(
+        'description' => t('TODO'),
+        'type' => 'text',
+        'not null' => FALSE),
+      'serialized' => array(
+        'description' => t('TODO'),
+        'type' => 'int',
+        'size' => 'small',
+        'not null' => TRUE,
+        'default' => 0)
+      ),
     'indexes' => array('expire' => array('expire')),
     'primary key' => array('cid'),
-  );
+    );
 
   $schema['cache_form'] = $schema['cache'];
   $schema['cache_page'] = $schema['cache'];
   $schema['cache_menu'] = $schema['cache'];
 
   $schema['files'] = array(
+    'description' => t('TODO'),
     'fields' => array(
-      'fid'       => array('type' => 'serial', 'unsigned' => TRUE, 'not null' => TRUE),
-      'uid'       => array('type' => 'int', 'unsigned' => TRUE, 'not null' => TRUE, 'default' => 0),
-      'filename'  => array('type' => 'varchar', 'length' => 255, 'not null' => TRUE, 'default' => ''),
-      'filepath'  => array('type' => 'varchar', 'length' => 255, 'not null' => TRUE, 'default' => ''),
-      'filemime'  => array('type' => 'varchar', 'length' => 255, 'not null' => TRUE, 'default' => ''),
-      'filesize'  => array('type' => 'int', 'unsigned' => TRUE, 'not null' => TRUE, 'default' => 0),
-      'status'    => array('type' => 'int', 'not null' => TRUE, 'default' => 0),
-      'timestamp' => array('type' => 'int', 'unsigned' => TRUE, 'not null' => TRUE, 'default' => 0),
-    ),
+      'fid' => array(
+        'description' => t('TODO'),
+        'type' => 'serial',
+        'unsigned' => TRUE,
+        'not null' => TRUE),
+      'uid' => array(
+        'description' => t('TODO'),
+        'type' => 'int',
+        'unsigned' => TRUE,
+        'not null' => TRUE,
+        'default' => 0),
+      'filename' => array(
+        'description' => t('TODO'),
+        'type' => 'varchar',
+        'length' => 255,
+        'not null' => TRUE,
+        'default' => ''),
+      'filepath' => array(
+        'description' => t('TODO'),
+        'type' => 'varchar',
+        'length' => 255,
+        'not null' => TRUE,
+        'default' => ''),
+      'filemime' => array(
+        'description' => t('TODO'),
+        'type' => 'varchar',
+        'length' => 255,
+        'not null' => TRUE,
+        'default' => ''),
+      'filesize' => array(
+        'description' => t('TODO'),
+        'type' => 'int',
+        'unsigned' => TRUE,
+        'not null' => TRUE,
+        'default' => 0),
+      'status' => array(
+        'description' => t('TODO'),
+        'type' => 'int',
+        'not null' => TRUE,
+        'default' => 0),
+      'timestamp' => array(
+        'description' => t('TODO'),
+        'type' => 'int',
+        'unsigned' => TRUE,
+        'not null' => TRUE,
+        'default' => 0),
+      ),
     'indexes' => array(
-      'uid'       => array('uid'),
-      'status'    => array('status'),
+      'uid' => array('uid'),
+      'status' => array('status'),
       'timestamp' => array('timestamp'),
-    ),
+      ),
     'primary key' => array('fid'),
-  );
+    );
 
   $schema['flood'] = array(
+    'description' => t('TODO'),
     'fields' => array(
-      'fid'       => array('type' => 'serial', 'not null' => TRUE),
-      'event'     => array('type' => 'varchar', 'length' => 64, 'not null' => TRUE, 'default' => ''),
-      'hostname'  => array('type' => 'varchar', 'length' => 128, 'not null' => TRUE, 'default' => ''),
-      'timestamp' => array('type' => 'int', 'not null' => TRUE, 'default' => 0)
-    ),
+      'fid' => array(
+        'description' => t('TODO'),
+        'type' => 'serial',
+        'not null' => TRUE),
+      'event' => array(
+        'description' => t('TODO'),
+        'type' => 'varchar',
+        'length' => 64,
+        'not null' => TRUE,
+        'default' => ''),
+      'hostname' => array(
+        'description' => t('TODO'),
+        'type' => 'varchar',
+        'length' => 128,
+        'not null' => TRUE,
+        'default' => ''),
+      'timestamp' => array(
+        'description' => t('TODO'),
+        'type' => 'int',
+        'not null' => TRUE,
+        'default' => 0)
+      ),
     'primary key' => array('fid'),
-  );
+    );
 
   $schema['history'] = array(
+    'description' => t('A record of which {users} have read which {node}s.'),
     'fields' => array(
-      'uid'       => array('type' => 'int', 'not null' => TRUE, 'default' => 0),
-      'nid'       => array('type' => 'int', 'not null' => TRUE, 'default' => 0),
-      'timestamp' => array('type' => 'int', 'not null' => TRUE, 'default' => 0)
-    ),
+      'uid' => array(
+        'description' => t('The {users}.uid that read the {node} nid.'),
+        'type' => 'int',
+        'not null' => TRUE,
+        'default' => 0),
+      'nid' => array(
+        'description' => t('The {node}.nid that was read.'),
+        'type' => 'int',
+        'not null' => TRUE,
+        'default' => 0),
+      'timestamp' => array(
+        'description' => t('The Unix timestamp at which the read occurred.'),
+        'type' => 'int',
+        'not null' => TRUE,
+        'default' => 0)
+      ),
     'primary key' => array('uid', 'nid'),
-  );
+    );
   $schema['menu_router'] = array(
+    'description' => t('Maps paths to various callbacks (access, page and title)'),
     'fields' => array(
-      'path'             => array('type' => 'varchar', 'length' => 255, 'not null' => TRUE, 'default' => ''),
-      'load_functions'   => array('type' => 'varchar', 'length' => 255, 'not null' => TRUE, 'default' => ''),
-      'to_arg_functions' => array('type' => 'varchar', 'length' => 255, 'not null' => TRUE, 'default' => ''),
-      'access_callback'  => array('type' => 'varchar', 'length' => 255, 'not null' => TRUE, 'default' => ''),
-      'access_arguments' => array('type' => 'text', 'not null' => FALSE),
-      'page_callback'    => array('type' => 'varchar', 'length' => 255, 'not null' => TRUE, 'default' => ''),
-      'page_arguments'   => array('type' => 'text', 'not null' => FALSE),
-      'fit'              => array('type' => 'int', 'not null' => TRUE, 'default' => 0),
-      'number_parts'     => array('type' => 'int', 'not null' => TRUE, 'default' => 0, 'size' => 'small'),
-      'tab_parent'       => array('type' => 'varchar', 'length' => 255, 'not null' => TRUE, 'default' => ''),
-      'tab_root'         => array('type' => 'varchar', 'length' => 255, 'not null' => TRUE, 'default' => ''),
-      'title'            => array('type' => 'varchar', 'length' => 255, 'not null' => TRUE, 'default' => ''),
-      'title_callback'   => array('type' => 'varchar', 'length' => 255, 'not null' => TRUE, 'default' => ''),
-      'title_arguments'  => array('type' => 'varchar', 'length' => 255, 'not null' => TRUE, 'default' => ''),
-      'type'             => array('type' => 'int', 'not null' => TRUE, 'default' => 0),
-      'block_callback'   => array('type' => 'varchar', 'length' => 255, 'not null' => TRUE, 'default' => ''),
-      'description'      => array('type' => 'text', 'not null' => TRUE),
-      'position'         => array('type' => 'varchar', 'length' => 255, 'not null' => TRUE, 'default' => ''),
-      'weight'           => array('type' => 'int', 'not null' => TRUE, 'default' => 0),
-      'file'             => array('type' => 'text', 'size' => 'medium')
-    ),
+      'path' => array(
+        'description' => t('Primary Key: the Drupal path this entry describes'),
+        'type' => 'varchar',
+        'length' => 255,
+        'not null' => TRUE,
+        'default' => ''),
+      'load_functions' => array(
+        'description' => t('A serialized array of function names (like node_load) to be called to load an object corresponding to a part of the current path.'),
+        'type' => 'varchar',
+        'length' => 255,
+        'not null' => TRUE,
+        'default' => ''),
+      'to_arg_functions' => array(
+        'description' => t('A serialized array of function names (like user_current_to_arg) to be called to replace a part of the router path with another string.'),
+        'type' => 'varchar',
+        'length' => 255,
+        'not null' => TRUE,
+        'default' => ''),
+      'access_callback' => array(
+        'description' => t('The callback which determines the access to this router path. Defaults to user_access.'),
+        'type' => 'varchar',
+        'length' => 255,
+        'not null' => TRUE,
+        'default' => ''),
+      'access_arguments' => array(
+        'description' => t('A serialized array of arguments for the access callback.'),
+        'type' => 'text',
+        'not null' => FALSE),
+      'page_callback' => array(
+        'description' => t('The name of the function that renders the page.'),
+        'type' => 'varchar',
+        'length' => 255,
+        'not null' => TRUE,
+        'default' => ''),
+      'page_arguments' => array(
+        'description' => t('A serialized array of arguments for the page callback.'),
+        'type' => 'text',
+        'not null' => FALSE),
+      'fit' => array(
+        'description' => t('A numeric representation of how specific the path is.'),
+        'type' => 'int',
+        'not null' => TRUE,
+        'default' => 0),
+      'number_parts' => array(
+        'description' => t('Number of parts in this router path.'),
+        'type' => 'int',
+        'not null' => TRUE,
+        'default' => 0,
+        'size' => 'small'),
+      'tab_parent' => array(
+        'description' => t('Only for local tasks (tabs) - the router path of the parent page (which may also be a local task).'),
+        'type' => 'varchar',
+        'length' => 255,
+        'not null' => TRUE,
+        'default' => ''),
+      'tab_root' => array(
+        'description' => t('Router path of the closest non-tab parent page.  For pages that are not local tasks, this will be the same as the path.'),
+        'type' => 'varchar',
+        'length' => 255,
+        'not null' => TRUE,
+        'default' => ''),
+      'title' => array(
+        'description' => t('The title for the current page, or the title for the tab if this is a local task.'),
+        'type' => 'varchar',
+        'length' => 255,
+        'not null' => TRUE,
+        'default' => ''),
+      'title_callback' => array(
+        'description' => t('A function which will alter the title. Defaults to t()'),
+        'type' => 'varchar',
+        'length' => 255,
+        'not null' => TRUE,
+        'default' => ''),
+      'title_arguments' => array(
+        'description' => t('A serialized array of arguments for the title callback.  If empty, the title will be used as the sole argument for the title callback.'),
+        'type' => 'varchar',
+        'length' => 255,
+        'not null' => TRUE,
+        'default' => ''),
+      'type' => array(
+        'description' => t('Numeric representation of the type of the menu item, like MENU_LOCAL_TASK.'),
+        'type' => 'int',
+        'not null' => TRUE,
+        'default' => 0),
+      'block_callback' => array(
+        'description' => t('Name of a function used to render the block on the system administration page for this item.'),
+        'type' => 'varchar',
+        'length' => 255,
+        'not null' => TRUE,
+        'default' => ''),
+      'description' => array(
+        'description' => t('A description of this item.'),
+        'type' => 'text',
+        'not null' => TRUE),
+      'position' => array(
+        'description' => t('The position of the block (left or right) on the system administration page for this item.'),
+        'type' => 'varchar',
+        'length' => 255,
+        'not null' => TRUE,
+        'default' => ''),
+      'weight' => array(
+        'description' => t('Weight of the element. Lighter weights are higher up, heavier weights go down.'),
+        'type' => 'int',
+        'not null' => TRUE,
+        'default' => 0),
+      'file' => array(
+        'description' => t('The file to include for this element, usually the page callback function lives in this file.'),
+        'type' => 'text',
+        'size' => 'medium')
+      ),
     'indexes' => array(
-      'fit'        => array('fit'),
+      'fit' => array('fit'),
       'tab_parent' => array('tab_parent')
-    ),
+      ),
     'primary key' => array('path'),
-  );
+    );
 
   $schema['menu_links'] = array(
+    'description' => t('TODO'),
     'fields' => array(
-      'menu_name'    => array('type' => 'varchar', 'length' => 32, 'not null' => TRUE, 'default' => ''),
-      'mlid'         => array('type' => 'serial', 'unsigned' => TRUE, 'not null' => TRUE),
-      'plid'         => array('type' => 'int', 'unsigned' => TRUE, 'not null' => TRUE, 'default' => 0),
-      'link_path'    => array('type' => 'varchar', 'length' => 255, 'not null' => TRUE, 'default' => ''),
-      'router_path'  => array('type' => 'varchar', 'length' => 255, 'not null' => TRUE, 'default' => ''),
-      'link_title'   => array('type' => 'varchar', 'length' => 255, 'not null' => TRUE, 'default' => ''),
-      'options'      => array('type' => 'text', 'not null' => FALSE),
-      'module'       => array('type' => 'varchar', 'length' => 255, 'not null' => TRUE, 'default' => 'system'),
-      'hidden'       => array('type' => 'int', 'not null' => TRUE, 'default' => 0, 'size' => 'small'),
-      'external'     => array('type' => 'int', 'not null' => TRUE, 'default' => 0, 'size' => 'small'),
-      'has_children' => array('type' => 'int', 'not null' => TRUE, 'default' => 0, 'size' => 'small'),
-      'expanded'     => array('type' => 'int', 'not null' => TRUE, 'default' => 0, 'size' => 'small'),
-      'weight'       => array('type' => 'int', 'not null' => TRUE, 'default' => 0),
-      'depth'        => array('type' => 'int', 'not null' => TRUE, 'default' => 0, 'size' => 'small'),
-      'customized'   => array('type' => 'int', 'not null' => TRUE, 'default' => 0, 'size' => 'small'),
-      'p1'           => array('type' => 'int', 'unsigned' => TRUE, 'not null' => TRUE, 'default' => 0),
-      'p2'           => array('type' => 'int', 'unsigned' => TRUE, 'not null' => TRUE, 'default' => 0),
-      'p3'           => array('type' => 'int', 'unsigned' => TRUE, 'not null' => TRUE, 'default' => 0),
-      'p4'           => array('type' => 'int', 'unsigned' => TRUE, 'not null' => TRUE, 'default' => 0),
-      'p5'           => array('type' => 'int', 'unsigned' => TRUE, 'not null' => TRUE, 'default' => 0),
-      'p6'           => array('type' => 'int', 'unsigned' => TRUE, 'not null' => TRUE, 'default' => 0),
-      'p7'           => array('type' => 'int', 'unsigned' => TRUE, 'not null' => TRUE, 'default' => 0),
-      'p8'           => array('type' => 'int', 'unsigned' => TRUE, 'not null' => TRUE, 'default' => 0),
-      'p9'           => array('type' => 'int', 'unsigned' => TRUE, 'not null' => TRUE, 'default' => 0),
-      'updated'      => array('type' => 'int', 'not null' => TRUE, 'default' => 0, 'size' => 'small'),
-    ),
+      'menu_name' => array(
+        'description' => t('TODO'),
+        'type' => 'varchar',
+        'length' => 32,
+        'not null' => TRUE,
+        'default' => ''),
+      'mlid' => array(
+        'description' => t('TODO'),
+        'type' => 'serial',
+        'unsigned' => TRUE,
+        'not null' => TRUE),
+      'plid' => array(
+        'description' => t('TODO'),
+        'type' => 'int',
+        'unsigned' => TRUE,
+        'not null' => TRUE,
+        'default' => 0),
+      'link_path' => array(
+        'description' => t('TODO'),
+        'type' => 'varchar',
+        'length' => 255,
+        'not null' => TRUE,
+        'default' => ''),
+      'router_path' => array(
+        'description' => t('TODO'),
+        'type' => 'varchar',
+        'length' => 255,
+        'not null' => TRUE,
+        'default' => ''),
+      'link_title' => array(
+        'description' => t('TODO'),
+        'type' => 'varchar',
+        'length' => 255,
+        'not null' => TRUE,
+        'default' => ''),
+      'options' => array(
+        'description' => t('TODO'),
+        'type' => 'text',
+        'not null' => FALSE),
+      'module' => array(
+        'type' => 'varchar',
+        'length' => 255,
+        'not null' => TRUE,
+        'default' => 'system'),
+      'hidden' => array(
+        'description' => t('TODO'),
+        'type' => 'int',
+        'not null' => TRUE,
+        'default' => 0,
+        'size' => 'small'),
+      'external' => array(
+        'description' => t('TODO'),
+        'type' => 'int',
+        'not null' => TRUE,
+        'default' => 0,
+        'size' => 'small'),
+      'has_children' => array(
+        'description' => t('TODO'),
+        'type' => 'int',
+        'not null' => TRUE,
+        'default' => 0,
+        'size' => 'small'),
+      'expanded' => array(
+        'description' => t('TODO'),
+        'type' => 'int',
+        'not null' => TRUE,
+        'default' => 0,
+        'size' => 'small'),
+      'weight' => array(
+        'description' => t('TODO'),
+        'type' => 'int',
+        'not null' => TRUE,
+        'default' => 0),
+      'depth' => array(
+        'description' => t('TODO'),
+        'type' => 'int',
+        'not null' => TRUE,
+        'default' => 0,
+        'size' => 'small'),
+      'customized' => array(
+        'description' => t('TODO'),
+        'type' => 'int',
+        'not null' => TRUE,
+        'default' => 0,
+        'size' => 'small'),
+      'p1' => array(
+        'description' => t('TODO'),
+        'type' => 'int',
+        'unsigned' => TRUE,
+        'not null' => TRUE,
+        'default' => 0),
+      'p2' => array(
+        'description' => t('TODO'),
+        'type' => 'int',
+        'unsigned' => TRUE,
+        'not null' => TRUE,
+        'default' => 0),
+      'p3' => array(
+        'description' => t('TODO'),
+        'type' => 'int',
+        'unsigned' => TRUE,
+        'not null' => TRUE,
+        'default' => 0),
+      'p4' => array(
+        'description' => t('TODO'),
+        'type' => 'int',
+        'unsigned' => TRUE,
+        'not null' => TRUE,
+        'default' => 0),
+      'p5' => array(
+        'description' => t('TODO'),
+        'type' => 'int',
+        'unsigned' => TRUE,
+        'not null' => TRUE,
+        'default' => 0),
+      'p6' => array(
+        'description' => t('TODO'),
+        'type' => 'int',
+        'unsigned' => TRUE,
+        'not null' => TRUE,
+        'default' => 0),
+      'p7' => array(
+        'description' => t('TODO'),
+        'type' => 'int',
+        'unsigned' => TRUE,
+        'not null' => TRUE,
+        'default' => 0),
+      'p8' => array(
+        'description' => t('TODO'),
+        'type' => 'int',
+        'unsigned' => TRUE,
+        'not null' => TRUE,
+        'default' => 0),
+      'p9' => array(
+        'description' => t('TODO'),
+        'type' => 'int',
+        'unsigned' => TRUE,
+        'not null' => TRUE,
+        'default' => 0),
+      'updated' => array(
+        'description' => t('TODO'),
+        'type' => 'int',
+        'not null' => TRUE,
+        'default' => 0,
+        'size' => 'small'),
+      ),
     'indexes' => array(
-      'path_menu'              => array(array('link_path', 128), 'menu_name'),
-      'menu_plid_expand_child' => array('menu_name', 'plid', 'expanded', 'has_children'),
-      'menu_parents'           => array('menu_name', 'p1', 'p2', 'p3', 'p4', 'p5', 'p6', 'p7', 'p8', 'p9'),
-      'router_path'            => array(array('router_path', 128)),
-    ),
+      'path_menu' => array(array('link_path', 128), 'menu_name'),
+      'menu_plid_expand_child' => array(
+        'menu_name', 'plid', 'expanded', 'has_children'),
+      'menu_parents' => array(
+        'menu_name', 'p1', 'p2', 'p3', 'p4', 'p5', 'p6', 'p7', 'p8', 'p9'),
+      'router_path' => array(array('router_path', 128)),
+      ),
     'primary key' => array('mlid'),
-  );
+    );
 
   $schema['sessions'] = array(
+    'description' => t('Drupal\'s session handlers read and write into the sessions table. Each record represents a user session, either anonymous or authenticated.'),
     'fields' => array(
-      'uid'       => array('type' => 'int', 'unsigned' => TRUE, 'not null' => TRUE),
-      'sid'       => array('type' => 'varchar', 'length' => 64, 'not null' => TRUE, 'default' => ''),
-      'hostname'  => array('type' => 'varchar', 'length' => 128, 'not null' => TRUE, 'default' => ''),
-      'timestamp' => array('type' => 'int', 'not null' => TRUE, 'default' => 0),
-      'cache'     => array('type' => 'int', 'not null' => TRUE, 'default' => 0),
-      'session'   => array('type' => 'text', 'not null' => FALSE, 'size' => 'big')
-    ),
+      'uid' => array(
+        'description' => t('The {users}.uid corresponding to a session, or 0 for anonymous user.'),
+        'type' => 'int',
+        'unsigned' => TRUE,
+        'not null' => TRUE),
+      'sid' => array(
+        'description' => t('Primary key: A session ID. The value is generated by PHP\'s Session API.'),
+        'type' => 'varchar',
+        'length' => 64,
+        'not null' => TRUE,
+        'default' => ''),
+      'hostname' => array(
+        'description' => t('The IP address that last used this session ID (sid).'),
+        'type' => 'varchar',
+        'length' => 128,
+        'not null' => TRUE,
+        'default' => ''),
+      'timestamp' => array(
+        'description' => t('The Unix timestamp when this session last requested a page. Old records are purged by PHP automatically.'),
+        'type' => 'int',
+        'not null' => TRUE,
+        'default' => 0),
+      'cache' => array(
+        'description' => t('The time of this user\'s last post. This is used when the site has specified a minimum_cache_lifetime. See cache_get().'),
+        'type' => 'int',
+        'not null' => TRUE,
+        'default' => 0),
+      'session' => array(
+        'description' => t('The serialized contents of $_SESSION, an array of name/value pairs that persists across page requests by this session ID.  Drupal loads $_SESSION from here at the start of each request and saves it at the end.'),
+        'type' => 'text',
+        'not null' => FALSE,
+        'size' => 'big')
+      ),
     'primary key' => array('sid'),
     'indexes' => array(
       'timestamp' => array('timestamp'),
-      'uid'       => array('uid')
-    ),
-  );
+      'uid' => array('uid')
+      ),
+    );
 
   $schema['system'] = array(
+    'description' => t('A list of all modules, themes, and theme engines that are or have been installed in Drupal\'s file system.'),
     'fields' => array(
-      'filename'       => array('type' => 'varchar', 'length' => 255, 'not null' => TRUE, 'default' => ''),
-      'name'           => array('type' => 'varchar', 'length' => 255, 'not null' => TRUE, 'default' => ''),
-      'type'           => array('type' => 'varchar', 'length' => 255, 'not null' => TRUE, 'default' => ''),
-      'owner'          => array('type' => 'varchar', 'length' => 255, 'not null' => TRUE, 'default' => ''),
-      'status'         => array('type' => 'int', 'not null' => TRUE, 'default' => 0),
-      'throttle'       => array('type' => 'int', 'not null' => TRUE, 'default' => 0, 'size' => 'tiny'),
-      'bootstrap'      => array('type' => 'int', 'not null' => TRUE, 'default' => 0),
-      'schema_version' => array('type' => 'int', 'not null' => TRUE, 'default' => -1, 'size' => 'small'),
-      'weight'         => array('type' => 'int', 'not null' => TRUE, 'default' => 0),
-      'info'           => array('type' => 'text', 'not null' => FALSE)
-    ),
+      'filename' => array(
+        'description' => t('The path of the primary file for this item, relative to the Drupal root; e.g. modules/node/node.module.'),
+        'type' => 'varchar',
+        'length' => 255,
+        'not null' => TRUE,
+        'default' => ''),
+      'name' => array(
+        'description' => t('The name of the item; e.g. node.'),
+        'type' => 'varchar',
+        'length' => 255,
+        'not null' => TRUE,
+        'default' => ''),
+      'type' => array(
+        'description' => t('The type of the item, either module, theme, or theme_engine.'),
+        'type' => 'varchar',
+        'length' => 255,
+        'not null' => TRUE,
+        'default' => ''),
+      'owner' => array(
+        'description' => t('TODO'),
+        'type' => 'varchar',
+        'length' => 255,
+        'not null' => TRUE,
+        'default' => ''),
+      'status' => array(
+        'description' => t('Boolean indicating whether or not this item is enabled.'),
+        'type' => 'int',
+        'not null' => TRUE,
+        'default' => 0),
+      'throttle' => array(
+        'description' => t('Boolean indicating whether this item is disabled when the throttle.module disables throttlable items.'),
+        'type' => 'int',
+        'not null' => TRUE,
+        'default' => 0,
+        'size' => 'tiny'),
+      'bootstrap' => array(
+        'description' => t('Boolean indicating whether this module is loaded during Drupal\'s early bootstrapping phase (e.g. even before the page cache is consulted).'),
+        'type' => 'int',
+        'not null' => TRUE,
+        'default' => 0),
+      'schema_version' => array(
+        'description' => t('The module\'s database schema version number.  -1 if the module is not installed (its tables do not exist); 0 or the largest N of the module\'s hook_update_N() function that has either been run or existed when the module was first installed.'),
+        'type' => 'int',
+        'not null' => TRUE,
+        'default' => -1,
+        'size' => 'small'),
+      'weight' => array(
+        'description' => t('The order in which this module\'s hooks should be invoked relative to other modules.  Equal-weighted modules are ordered by name.'),
+        'type' => 'int',
+        'not null' => TRUE,
+        'default' => 0),
+      'info' => array(
+        'description' => t('A serialized array containing information from the module\'s .info file; keys can include name, description, package, version, core, dependencies, depedents, and php.'),
+        'type' => 'text',
+        'not null' => FALSE)
+      ),
     'primary key' => array('filename'),
     'indexes' => array('weight' => array('weight')),
-  );
+    );
 
   $schema['url_alias'] = array(
+    'description' => t('A list of URL aliases for Drupal paths; a user may visit either the source or destination path.'),
     'fields' => array(
-      'pid'      => array('type' => 'serial', 'unsigned' => TRUE, 'not null' => TRUE),
-      'src'      => array('type' => 'varchar', 'length' => 128, 'not null' => TRUE, 'default' => ''),
-      'dst'      => array('type' => 'varchar', 'length' => 128, 'not null' => TRUE, 'default' => ''),
-      'language' => array('type' => 'varchar', 'length' => 12, 'not null' => TRUE, 'default' => '')
-    ),
+      'pid' => array(
+        'description' => t('A unique path alias identifier.'),
+        'type' => 'serial',
+        'unsigned' => TRUE,
+        'not null' => TRUE),
+      'src' => array(
+        'description' => t('The Drupal path this alias is for; e.g. node/12.'),
+        'type' => 'varchar',
+        'length' => 128,
+        'not null' => TRUE,
+        'default' => ''),
+      'dst' => array(
+        'description' => t('The alias for this path; e.g. title-of-the-story.'),
+        'type' => 'varchar',
+        'length' => 128,
+        'not null' => TRUE,
+        'default' => ''),
+      'language' => array(
+        'description' => t('The language this alias is for; if blank, the alias will be used for unknown languages.  Each Drupal path can have an alias for each supported language.'),
+        'type' => 'varchar',
+        'length' => 12,
+        'not null' => TRUE,
+        'default' => '')
+      ),
     'unique keys' => array('dst_language' => array('dst', 'language')),
     'primary key' => array('pid'),
     'indexes' => array('src' => array('src')),
-  );
+    );
 
   return $schema;
 }
Index: modules/taxonomy/taxonomy.schema
===================================================================
RCS file: /cvs/drupal/drupal/modules/taxonomy/taxonomy.schema,v
retrieving revision 1.1
diff -u -p -r1.1 taxonomy.schema
--- modules/taxonomy/taxonomy.schema	25 May 2007 12:46:46 -0000	1.1
+++ modules/taxonomy/taxonomy.schema	25 Sep 2007 11:48:11 -0000
@@ -3,94 +3,267 @@
 
 function taxonomy_schema() {
   $schema['term_data'] = array(
+    'description' => t('Stores term information.'),
     '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('Primary Key: Unique term ID.'),
+      ),
+      'vid' => array(
+        'type' => 'int',
+        'unsigned' => TRUE,
+        'not null' => TRUE,
+        'default' => 0,
+        'description' => t('The {vocabulary}.vid of the vocabulary to which the term is assigned.'),
+      ),
+      'name' => array(
+        'type' => 'varchar',
+        'length' => 255,
+        'not null' => TRUE,
+        'default' => '',
+        'description' => t('The term name.'),
+      ),
+      'description' => array(
+        'type' => 'text',
+        'not null' => FALSE,
+        'size' => 'big',
+        'description' => t('A description of the term.'),
+      ),
+      'weight' => array(
+        'type' => 'int',
+        'not null' => TRUE,
+        'default' => 0,
+        'size' => 'tiny',
+        'description' => t('The weight of this term in relation to other terms.'),
+      ),
     ),
     'primary key' => array('tid'),
     'indexes' => array('vid' => array('vid')),
   );
 
   $schema['term_hierarchy'] = array(
+    'description' => t('Stores the hierarchical relationship between terms.'),
     '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('Primary Key: The {term_data}.tid of the term.'),
+      ),
+      'parent' => array(
+        'type' => 'int',
+        'unsigned' => TRUE,
+        'not null' => TRUE,
+        'default' => 0,
+        'description' => t("Primary Key: The {term_data}.tid of the term's parent. 0 indicates no parent."),
+      ),
     ),
     'indexes' => array(
       'parent' => array('parent'),
-      'tid'    => array('tid')
+      'tid' => array('tid'),
     ),
     'primary key' => array('tid', 'parent'),
   );
 
   $schema['term_node'] = array(
+    'description' => t('Stores the relationship of terms to nodes.'),
     '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('Primary Key: The {node}.nid of the node.'),
+      ),
+      'vid' => array(
+        'type' => 'int',
+        'unsigned' => TRUE,
+        'not null' => TRUE,
+        'default' => 0,
+        'description' => t('Primary Key: The {node}.vid of the node.'),
+      ),
+      'tid' => array(
+        'type' => 'int',
+        'unsigned' => TRUE,
+        'not null' => TRUE,
+        'default' => 0,
+        'description' => t('Primary Key: The {term_data}.tid of a term assigned to the node.'),
+      ),
     ),
     'indexes' => array(
       'nid' => array('nid'),
-      'tid' => array('tid'),
-      'vid' => array('vid')
-    ),
-    'primary key' => array(
-      'vid',
-      'tid',
-      'nid'
+      'vid' => array('vid'),
+      'tid' => array('tid'),      
     ),
+    'primary key' => array('nid', 'vid', 'tid'),
   );
 
   $schema['term_relation'] = array(
+    'description' => t('Stores non-hierarchical relationships between terms.'),
     '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('Primary Key: Unique term relation ID.'),
+      ),
+      'tid1' => array(
+        'type' => 'int',
+        'unsigned' => TRUE,
+        'not null' => TRUE,
+        'default' => 0,
+        'description' => t('The {term_data}.tid of the first term in a relationship.'),
+      ),
+      'tid2' => array(
+        'type' => 'int',
+        'unsigned' => TRUE,
+        'not null' => TRUE,
+        'default' => 0,
+        'description' => t('The {term_data}.tid of the second term in a relationship.'),
+      ),
     ),
     'indexes' => array(
       'tid1' => array('tid1'),
-      'tid2' => array('tid2')
+      'tid2' => array('tid2'),
     ),
     'primary key' => array('trid'),
   );
 
   $schema['term_synonym'] = array(
+    'description' => t('Stores term synonyms.'),
     '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('Primary Key: Unique term synonym ID.'),
+      ),
+      'tid' => array(
+        'type' => 'int',
+        'unsigned' => TRUE,
+        'not null' => TRUE,
+        'default' => 0,
+        'description' => t('The {term_data}.tid of the term.'),
+      ),
+      'name' => array(
+        'type' => 'varchar',
+        'length' => 255,
+        'not null' => TRUE,
+        'default' => '',
+        'description' => t('The name of the synonym.'),
+      ),
     ),
     'indexes' => array(
       'name' => array(array('name', 3)),
-      'tid'  => array('tid')
+      'tid' => array('tid'),
     ),
     'primary key' => array('tsid'),
   );
 
   $schema['vocabulary'] = array(
+    'description' => t('Stores vocabulary information.'),
     '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('Primary Key: Unique vocabulary ID.'),
+      ),
+      'name' => array(
+        'type' => 'varchar',
+        'length' => 255,
+        'not null' => TRUE,
+        'default' => '',
+        'description' => t('Name of the vocabulary.'),
+      ),
+      'description' => array(
+        'type' => 'text',
+        'not null' => FALSE,
+        'size' => 'big',
+        'description' => t('Description of the vocabulary.'),
+      ),
+      'help' => array(
+        'type' => 'varchar',
+        'length' => 255,
+        'not null' => TRUE,
+        'default' => '',
+        'description' => t('Help text to display for the vocabulary.'),
+      ),
+      'relations' => array(
+        'type' => 'int',
+        'unsigned' => TRUE,
+        'not null' => TRUE,
+        'default' => 0,
+        'size' => 'tiny',
+        'description' => t('Whether or not related terms are enabled within the vocabulary. (0 = disabled, 1 = enabled)'),
+      ),
+      'hierarchy' => array(
+        'type' => 'int',
+        'unsigned' => TRUE,
+        'not null' => TRUE,
+        'default' => 0,
+        'size' => 'tiny',
+        'description' => t('The type of hierarchy allowed within the vocabulary. (0 = disabled, 1 = single, 2 = multiple)'),
+      ),
+      'multiple' => array(
+        'type' => 'int',
+        'unsigned' => TRUE,
+        'not null' => TRUE,
+        'default' => 0,
+        'size' => 'tiny',
+        'description' => t('Whether or not multiple terms from this vocablulary may be assigned to a node. (0 = disabled, 1 = enabled)'),
+      ),
+      'required' => array(
+        'type' => 'int',
+        'unsigned' => TRUE,
+        'not null' => TRUE,
+        'default' => 0,
+        'size' => 'tiny',
+        'description' => t('Whether or not terms are required for nodes using this vocabulary. (0 = disabled, 1 = enabled)'),
+      ),
+      'tags' => array(
+        'type' => 'int',
+        'unsigned' => TRUE,
+        'not null' => TRUE,
+        'default' => 0,
+        'size' => 'tiny',
+        'description' => t('Whether or not free tagging is enabled for the vocabulary. (0 = disabled, 1 = enabled)'),
+      ),
+      'module' => array(
+        'type' => 'varchar',
+        'length' => 255,
+        'not null' => TRUE,
+        'default' => '',
+        'description' => t('The module which created the vocabulary.'),
+      ),
+      'weight' => array(
+        'type' => 'int',
+        'not null' => TRUE,
+        'default' => 0,
+        'size' => 'tiny',
+        'description' => t('The weight of the vocabulary in relation to other vocabularies.'),
+      ),
     ),
     'primary key' => array('vid'),
   );
 
   $schema['vocabulary_node_types'] = array(
+    'description' => t('Stores which node types vocabularies may be used with.'),
     '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('Primary Key: the {vocabulary}.vid of the vocabulary.'),
+      ),
+      'type' => array(
+        'type' => 'varchar',
+        'length' => 32,'not null' => TRUE,
+        'default' => '',
+        'description' => t('The {node}.type of the node type for which the vocabulary may be used.'),
+      ),
     ),
     '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 -p -r1.1 trigger.schema
--- modules/trigger/trigger.schema	11 Sep 2007 14:50:05 -0000	1.1
+++ modules/trigger/trigger.schema	25 Sep 2007 11:48:11 -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 -p -r1.1 upload.schema
--- modules/upload/upload.schema	30 May 2007 08:08:59 -0000	1.1
+++ modules/upload/upload.schema	25 Sep 2007 11:48:11 -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 -p -r1.3 user.schema
--- modules/user/user.schema	15 Jul 2007 10:09:21 -0000	1.3
+++ modules/user/user.schema	25 Sep 2007 11:48:11 -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'),
   );
