Index: /Users/thomaswysocki/Sites/Clients/Timeout/trunk/htdocs/sites/all/modules/contrib/apachesolr/apachesolr.module
===================================================================
--- apachesolr.module	(revision 12772)
+++ apachesolr.module	(working copy)
@@ -1651,6 +1651,16 @@
   function get_filters($name = NULL);
 
   /**
+   * Return an array of all fields.
+   */
+  function get_fields($name = NULL);
+
+  /**
+   * Return an array of all subqueries.
+   */
+  function get_subqueries($query_id = NULL);
+
+  /**
    * Add a subquery to the query.
    *
    * @param Drupal_Solr_Query_Interface $query
@@ -1692,4 +1702,3 @@
    */
   function set_available_sort($field, $sort);
 }
-
Index: /Users/thomaswysocki/Sites/Clients/Timeout/trunk/htdocs/sites/all/modules/contrib/apachesolr/Solr_Base_Query.php
===================================================================
--- Solr_Base_Query.php	(revision 12771)
+++ Solr_Base_Query.php	(working copy)
@@ -143,6 +143,38 @@
   }
 
   /**
+   * Return an array of all fields.
+   */
+  function get_fields($name = NULL) {
+    $response = FALSE;
+    if (empty($name)) {
+      $response = $this->fields;
+    } else {
+      foreach ($this->fields as $fdx => $field) {
+        if ($field['#name'] === $name) {
+          $response = $field;
+          break;
+        }
+      }//end - foreach
+    }//end - if
+
+    return $response;
+  }
+
+  /**
+   * Return an array of all subqueries.
+   */
+  function get_subqueries($query_id = NULL) {
+    if (empty($query_id)) {
+      return $this->subqueries;
+    } else if (isset($this->subqueries[$query_id])) {
+      return $this->subqueries[$query_id];
+    } else {
+      return false;
+    }
+  }
+
+  /**
    * Get all filters, or the subset of filters for one field.
    *
    * @param $name
