title: What happens if I use `AndExpression` without `CloseExpression`
body: <p>I have this subsonic query: </p>
  
  <pre><code>Select.AllColumnsFrom&lt;Data.Group&gt;()
      .Where(Data.Group.GroupIDColumn).IsNotEqualTo(m_sRootGroupID)
      .AndExpression(Data.Group.Columns.OwnerPersonID).IsEqualTo(gUserID)
      .OrExpression(Data.Group.Columns.OwnerPersonID).IsEqualTo(gUserContextID)
      .AndExpression(Data.Group.Columns.IsCallList).IsEqualTo(true)
      .CheckLogicalDelete().ExecuteTypedList&lt;Groups&gt;();
  </code></pre>
  
  <p>At first sight, it seems that the previous developer has mistaken <code>AndExpression</code> for <code>And</code>. I know that <a href="http://biasecurities.com/2008/07/complex-sql-conditional-statements-with-subsonic-2-1/" rel="nofollow noreferrer"><code>AndExpression</code></a> encloses the preceding statements inside parentheses.</p>
  
  <p>How is the above subsonic query be translated into SQL?</p>
  
  <p>This is what I'm thinking:</p>
  
  <pre><code>SELECT * 
  FROM tblGroups
  WHERE GroupID &lt;&gt; m_sRootGroupID
    AND ( --first [AndExpression]
      OwnerPersonID = `gUserID
      OR ( -- [OrExpression]
          OwnerPersonID = gUserContextID
          AND ( -- second [AndExpression]
               IsCallList = true
          )
      )
  ) -- first [AndExpression]
  AND ISNULL(IsDeleted,0) = 0
  </code></pre>
  
  <p>How is the <code>..Expression</code>s being handled if there is no <code>CloseExpression</code>?</p>