Documentation Source Text

Check-in [8efac9af2b]
Login

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:Minor changes to lang.in.
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1: 8efac9af2bbff420472bd34c490b0ea61098eb80
User & Date: dan 2010-09-10 19:11:05
Context
2010-09-11
17:46
Change to requirement marks in lang.in. check-in: b5882b3f8f user: dan tags: trunk
2010-09-10
19:11
Minor changes to lang.in. check-in: 8efac9af2b user: dan tags: trunk
2010-09-09
19:08
Bug in "fossil rename" prevented the removal of fileformat.in from working. This checkin deletes it, which we know works. check-in: 95550b75ee user: drh tags: trunk
Changes
Hide Diffs Side-by-Side Diffs Ignore Whitespace Patch

Changes to pages/lang.in.

  2779   2779       non-aggregate expression. ^Or, if the dataset contains zero rows, then 
  2780   2780       each non-aggregate expression is evaluated against a row consisting
  2781   2781       entirely of NULL values.
  2782   2782   
  2783   2783      <p>^The single row of result-set data created by evaluating the aggregate
  2784   2784       and non-aggregate expressions in the result-set forms the result of an
  2785   2785       aggregate query without a GROUP BY clause. ^An aggregate query without a
  2786         -    GROUP BY clause always returns exactly one row of data.
         2786  +    GROUP BY clause always returns exactly one row of data, even if there are
         2787  +    zero rows of input data.
  2787   2788   
  2788         -  <li><p>^If the SELECT statement is <b>an aggregate query with a GROUP
         2789  +  <li><p>^(If the SELECT statement is <b>an aggregate query with a GROUP
  2789   2790       BY</b> clause, then each of the expressions specified as part of the
  2790         -    GROUP BY clause is evaluated for each row of the filtered input dataset.
  2791         -    ^Each row is grouped with all other rows for which all GROUP BY 
  2792         -    expressions evaluate to the same values. ^For the purposes of grouping 
  2793         -    rows, NULL values are considered equal. ^The usual rules for selecting
  2794         -    a collation sequence with which to compare text values apply when evaluating
         2791  +    GROUP BY clause is evaluated for each row of the dataset. Each row
         2792  +    is then assigned to a "group" based on the results; rows for which
         2793  +    the results of evaluating the GROUP BY expressions are the same are
         2794  +    assigned to the same group.)^ ^For the purposes of grouping rows, NULL 
         2795  +    values are considered equal. ^The usual rules for [collation|selecting a
         2796  +    collation sequence] with which to compare text values apply when evaluating
  2795   2797       expressions in a GROUP BY clause.  ^The expressions in the GROUP BY clause
  2796   2798       do <em>not</em> have to be expressions that appear in the result. ^The
  2797   2799       expressions in a GROUP BY clause may not be aggregate expressions.
  2798   2800   
  2799         -    <p>^If a HAVING clause is specified, it is evaluated once for each group 
  2800         -    of rows and cast to an integer value. ^If the HAVING clause is an aggregate
  2801         -    expression, it is evaluated across all rows in the group. ^If a HAVING 
  2802         -    clause is a non-aggregate expression, it is evaluated with respect to an
  2803         -    arbitrarily selected row from the group. ^If the result of evaluating the
  2804         -    HAVING clause is NULL or zero (integer value 0), the group is discarded.
         2801  +    <p>^(If a HAVING clause is specified, it is evaluated once for each group 
         2802  +    of rows and cast to an integer value. If the result of evaluating the
         2803  +    HAVING clause is NULL or zero (integer value 0), the group is discarded.)^
         2804  +    ^If the HAVING clause is an aggregate expression, it is evaluated across
         2805  +    all rows in the group. ^If a HAVING clause is a non-aggregate expression,
         2806  +    it is evaluated with respect to an arbitrarily selected row from the group. 
  2805   2807       ^The HAVING expression may refer to values, even aggregate functions, that
  2806   2808       are not in the result.</p>
  2807   2809   
  2808   2810       <p>^Each expression in the result-set is then evaluated once for each
  2809   2811       group of rows. ^If the expression is an aggregate expression, it is 
  2810   2812       evaluated across all rows in the group. ^Otherwise, it is evaluated against
  2811   2813       a single arbitrarily chosen row from within the group. ^If there is more