[DOCS] Built-in Functions doc format Changes

- The function titles were changed to upper case.
- The function titles no longer use <codeph>. <codeph> font appears
smaller than the <p> font.
- Return type were changed to upper case data types.
- Minor typos were fixed, such as extra commas and periods in titles.
- The indexterm dita elememts were removed. Indexterm was incomplete
and WIP. No plan to go ahead and implement it, so removed.

Change-Id: I797532463da8d29fe5bc7543cfdfb5b2b82db197
Reviewed-on: http://gerrit.cloudera.org:8080/11619
Tested-by: Impala Public Jenkins <impala-public-jenk...@cloudera.com>
Reviewed-by: Michael Brown <mi...@cloudera.com>


Project: http://git-wip-us.apache.org/repos/asf/impala/repo
Commit: http://git-wip-us.apache.org/repos/asf/impala/commit/e8ee827a
Tree: http://git-wip-us.apache.org/repos/asf/impala/tree/e8ee827a
Diff: http://git-wip-us.apache.org/repos/asf/impala/diff/e8ee827a

Branch: refs/heads/master
Commit: e8ee827a6d39cf470f33a07e0f760ffc36775e1d
Parents: b0d0d73
Author: Alex Rodoni <arod...@cloudera.com>
Authored: Mon Oct 8 15:26:32 2018 -0700
Committer: Alex Rodoni <arod...@cloudera.com>
Committed: Wed Oct 10 18:18:09 2018 +0000

----------------------------------------------------------------------
 docs/shared/impala_common.xml                |   65 +-
 docs/topics/impala_aggregate_functions.xml   |    4 -
 docs/topics/impala_analytic_functions.xml    |   17 +-
 docs/topics/impala_bit_functions.xml         |  432 +++--
 docs/topics/impala_conditional_functions.xml |  487 ++++--
 docs/topics/impala_conversion_functions.xml  |  872 ++--------
 docs/topics/impala_datetime_functions.xml    | 1825 +++++++++++++--------
 docs/topics/impala_functions.xml             |    2 +-
 docs/topics/impala_math_functions.xml        | 1301 +++++++++------
 docs/topics/impala_misc_functions.xml        |  184 ++-
 docs/topics/impala_string_functions.xml      |  919 +++++++----
 11 files changed, 3383 insertions(+), 2725 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/impala/blob/e8ee827a/docs/shared/impala_common.xml
----------------------------------------------------------------------
diff --git a/docs/shared/impala_common.xml b/docs/shared/impala_common.xml
index ff0f449..45b7d87 100644
--- a/docs/shared/impala_common.xml
+++ b/docs/shared/impala_common.xml
@@ -1335,34 +1335,34 @@ drop database temp;
           href="../topics/impala_s3.xml#s3"/> for details about working with S3
         tables. </p>
 
-      <p id="y2k38" rev="2.2.0">
-        In Impala 2.2.0 and higher, built-in functions that accept or return 
integers representing <codeph>TIMESTAMP</codeph> values
-        use the <codeph>BIGINT</codeph> type for parameters and return values, 
rather than <codeph>INT</codeph>.
-        This change lets the date and time functions avoid an overflow error 
that would otherwise occur
-        on January 19th, 2038 (known as the
-        <xref href="http://en.wikipedia.org/wiki/Year_2038_problem"; 
scope="external" format="html"><q>Year 2038 problem</q> or <q>Y2K38 
problem</q></xref>).
-        This change affects the <codeph>from_unixtime()</codeph> and 
<codeph>unix_timestamp()</codeph> functions.
-        You might need to change application code that interacts with these 
functions, change the types of
-        columns that store the return values, or add <codeph>CAST()</codeph> 
calls to SQL statements that
-        call these functions.
-      </p>
-
-      <p id="timestamp_conversions">
-        Impala automatically converts <codeph>STRING</codeph> literals of the
-        correct format into <codeph>TIMESTAMP</codeph> values. Timestamp values
-        are accepted in the format <codeph>"yyyy-MM-dd 
HH:mm:ss.SSSSSS"</codeph>,
-        and can consist of just the date, or just the time, with or without the
-        fractional second portion. For example, you can specify 
<codeph>TIMESTAMP</codeph>
-        values such as <codeph>'1966-07-30'</codeph>, 
<codeph>'08:30:00'</codeph>,
-        or <codeph>'1985-09-25 17:45:30.005'</codeph>.
-      </p>
-      <p>
-        Leading zeroes are not required in the numbers representing the date
-        component, such as month and date, or the time component, such as
-        hour, minute, and second. For example, Impala accepts both
-        <codeph>"2018-1-1 01:02:03"</codeph> and
-          <codeph>"2018-01-01 1:2:3"</codeph> as valid.
-      </p>
+      <p id="y2k38" rev="2.2.0"> In Impala 2.2.0 and higher, built-in functions
+        that accept or return integers representing <codeph>TIMESTAMP</codeph>
+        values use the <codeph>BIGINT</codeph> type for parameters and return
+        values, rather than <codeph>INT</codeph>. This change lets the date and
+        time functions avoid an overflow error that would otherwise occur on
+        January 19th, 2038 (known as the <xref
+          href="http://en.wikipedia.org/wiki/Year_2038_problem"; 
scope="external"
+          format="html"><q>Year 2038 problem</q> or <q>Y2K38
+        problem</q></xref>). This change affects the
+          <codeph>FROM_UNIXTIME()</codeph> and 
<codeph>UNIX_TIMESTAMP()</codeph>
+        functions. You might need to change application code that interacts 
with
+        these functions, change the types of columns that store the return
+        values, or add <codeph>CAST()</codeph> calls to SQL statements that 
call
+        these functions. </p>
+
+      <p id="timestamp_conversions"> Impala automatically converts
+          <codeph>STRING</codeph> literals of the correct format into
+          <codeph>TIMESTAMP</codeph> values. Timestamp values are accepted in
+        the format <codeph>'yyyy-MM-dd HH:mm:ss.SSSSSS'</codeph>, and can
+        consist of just the date, or just the time, with or without the
+        fractional second portion. For example, you can specify
+          <codeph>TIMESTAMP</codeph> values such as
+          <codeph>'1966-07-30'</codeph>, <codeph>'08:30:00'</codeph>, or
+          <codeph>'1985-09-25 17:45:30.005'</codeph>. </p>
+      <p> Leading zeroes are not required in the numbers representing the date
+        component, such as month and date, or the time component, such as hour,
+        minute, and second. For example, Impala accepts both <codeph>'2018-1-1
+          01:02:03'</codeph> and <codeph>'2018-01-01 1:2:3'</codeph> as valid. 
</p>
       <p>
         In <codeph>STRING</codeph> to <codeph>TIMESTAMP</codeph> conversions,
         leading and trailing white spaces, such as a space, a tab, a newline, 
or
@@ -2056,10 +2056,11 @@ show functions in _impala_builtins like 
'*<varname>substring</varname>*';
       </p>
 
       <p id="datetime_function_chaining">
-        <codeph>unix_timestamp()</codeph> and <codeph>from_unixtime()</codeph> 
are often used in combination to
-        convert a <codeph>TIMESTAMP</codeph> value into a particular string 
format. For example:
-<codeblock xml:space="preserve">select from_unixtime(unix_timestamp(now() + 
interval 3 days),
-  'yyyy/MM/dd HH:mm') as yyyy_mm_dd_hh_mm;
+        <codeph>UNIX_TIMESTAMP()</codeph> and <codeph>FROM_UNIXTIME()</codeph>
+        are often used in combination to convert a <codeph>TIMESTAMP</codeph>
+        value into a particular string format. For example:
+        <codeblock xml:space="preserve">SELECT 
FROM_UNIXTIME(UNIX_TIMESTAMP(NOW() + interval 3 days),
+  'yyyy/MM/dd HH:mm') AS yyyy_mm_dd_hh_mm;
 +------------------+
 | yyyy_mm_dd_hh_mm |
 +------------------+

http://git-wip-us.apache.org/repos/asf/impala/blob/e8ee827a/docs/topics/impala_aggregate_functions.xml
----------------------------------------------------------------------
diff --git a/docs/topics/impala_aggregate_functions.xml 
b/docs/topics/impala_aggregate_functions.xml
index 1e01ad7..1d9118f 100644
--- a/docs/topics/impala_aggregate_functions.xml
+++ b/docs/topics/impala_aggregate_functions.xml
@@ -42,10 +42,6 @@ under the License.
 
     <p conref="../shared/impala_common.xml#common/aggr3"/>
 
-    <p>
-      <indexterm audience="hidden">aggregate functions</indexterm>
-    </p>
-
     <p outputclass="toc"/>
   </conbody>
 </concept>

http://git-wip-us.apache.org/repos/asf/impala/blob/e8ee827a/docs/topics/impala_analytic_functions.xml
----------------------------------------------------------------------
diff --git a/docs/topics/impala_analytic_functions.xml 
b/docs/topics/impala_analytic_functions.xml
index 39d4fc5..f139927 100644
--- a/docs/topics/impala_analytic_functions.xml
+++ b/docs/topics/impala_analytic_functions.xml
@@ -43,16 +43,13 @@ under the License.
 
   <conbody>
 
-    <p rev="2.0.0">
-      <indexterm audience="hidden">analytic functions</indexterm>
-
-      <indexterm audience="hidden">window functions</indexterm>
-      Analytic functions (also known as window functions) are a special 
category of built-in functions. Like
-      aggregate functions, they examine the contents of multiple input rows to 
compute each output value. However,
-      rather than being limited to one result value per <codeph>GROUP 
BY</codeph> group, they operate on
-      <term>windows</term> where the input rows are ordered and grouped using 
flexible conditions expressed through
-      an <codeph>OVER()</codeph> clause.
-    </p>
+    <p rev="2.0.0"> Analytic functions (also known as window functions) are a
+      special category of built-in functions. Like aggregate functions, they
+      examine the contents of multiple input rows to compute each output value.
+      However, rather than being limited to one result value per <codeph>GROUP
+        BY</codeph> group, they operate on <term>windows</term> where the input
+      rows are ordered and grouped using flexible conditions expressed through
+      an <codeph>OVER()</codeph> clause. </p>
 
     <p conref="../shared/impala_common.xml#common/added_in_20"/>
 

http://git-wip-us.apache.org/repos/asf/impala/blob/e8ee827a/docs/topics/impala_bit_functions.xml
----------------------------------------------------------------------
diff --git a/docs/topics/impala_bit_functions.xml 
b/docs/topics/impala_bit_functions.xml
index c42f834..35f584a 100644
--- a/docs/topics/impala_bit_functions.xml
+++ b/docs/topics/impala_bit_functions.xml
@@ -1,4 +1,5 @@
-<?xml version="1.0" encoding="UTF-8"?><!--
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
 Licensed to the Apache Software Foundation (ASF) under one
 or more contributor license agreements.  See the NOTICE file
 distributed with this work for additional information
@@ -20,7 +21,13 @@ under the License.
 <concept id="bit_functions" rev="2.3.0">
 
   <title>Impala Bit Functions</title>
-  <titlealts audience="PDF"><navtitle>Bit Functions</navtitle></titlealts>
+
+  <titlealts audience="PDF">
+
+    <navtitle>Bit Functions</navtitle>
+
+  </titlealts>
+
   <prolog>
     <metadata>
       <data name="Category" value="Impala"/>
@@ -35,32 +42,38 @@ under the License.
   <conbody>
 
     <p rev="2.3.0">
-      Bit manipulation functions perform bitwise operations involved in 
scientific processing or computer science algorithms.
-      For example, these functions include setting, clearing, or testing bits 
within an integer value, or changing the
-      positions of bits with or without wraparound.
+      Bit manipulation functions perform bitwise operations involved in 
scientific processing or
+      computer science algorithms. For example, these functions include 
setting, clearing, or
+      testing bits within an integer value, or changing the positions of bits 
with or without
+      wraparound.
     </p>
 
     <p>
-      If a function takes two integer arguments that are required to be of the 
same type, the smaller argument is promoted
-      to the type of the larger one if required. For example, 
<codeph>BITAND(1,4096)</codeph> treats both arguments as
-      <codeph>SMALLINT</codeph>, because 1 can be represented as a 
<codeph>TINYINT</codeph> but 4096 requires a <codeph>SMALLINT</codeph>.
+      If a function takes two integer arguments that are required to be of the 
same type, the
+      smaller argument is promoted to the type of the larger one if required. 
For example,
+      <codeph>BITAND(1,4096)</codeph> treats both arguments as 
<codeph>SMALLINT</codeph>,
+      because 1 can be represented as a <codeph>TINYINT</codeph> but 4096 
requires a
+      <codeph>SMALLINT</codeph>.
     </p>
 
     <p>
-     Remember that all Impala integer values are signed. Therefore, when 
dealing with binary values where the most significant
-     bit is 1, the specified or returned values might be negative when 
represented in base 10.
+      Remember that all Impala integer values are signed. Therefore, when 
dealing with binary
+      values where the most significant bit is 1, the specified or returned 
values might be
+      negative when represented in base 10.
     </p>
 
     <p>
-      Whenever any argument is <codeph>NULL</codeph>, either the input value, 
bit position, or number of shift or rotate positions,
-      the return value from any of these functions is also 
<codeph>NULL</codeph>
+      Whenever any argument is <codeph>NULL</codeph>, either the input value, 
bit position, or
+      number of shift or rotate positions, the return value from any of these 
functions is also
+      <codeph>NULL</codeph>
     </p>
 
     <p conref="../shared/impala_common.xml#common/related_info"/>
 
     <p>
-      The bit functions operate on all the integral data types: <xref 
href="impala_int.xml#int"/>,
-      <xref href="impala_bigint.xml#bigint"/>, <xref 
href="impala_smallint.xml#smallint"/>, and
+      The bit functions operate on all the integral data types:
+      <xref href="impala_int.xml#int"/>, <xref 
href="impala_bigint.xml#bigint"/>,
+      <xref href="impala_smallint.xml#smallint"/>, and
       <xref href="impala_tinyint.xml#tinyint"/>.
     </p>
 
@@ -72,51 +85,85 @@ under the License.
       Impala supports the following bit functions:
     </p>
 
-<!--
-bitand
-bitnot
-bitor
-bitxor
-countset
-getbit
-rotateleft
-rotateright
-setbit
-shiftleft
-shiftright
--->
+    <ul>
+      <li>
+        <xref href="#bit_functions/bitand">BITAND</xref>
+      </li>
 
-    <dl>
+      <li>
+        <xref href="#bit_functions/bitnot">BITNOT</xref>
+      </li>
+
+      <li>
+        <xref href="#bit_functions/bitor">BITOR</xref>
+      </li>
 
+      <li>
+        <xref href="#bit_functions/bitxor">BITXOR</xref>
+      </li>
+
+      <li>
+        <xref href="#bit_functions/countset">COUNTSET</xref>
+      </li>
+
+      <li>
+        <xref href="#bit_functions/getbit">GETBIT</xref>
+      </li>
+
+      <li>
+        <xref href="#bit_functions/rotateleft">ROTATELEFT</xref>
+      </li>
+
+      <li>
+        <xref href="#bit_functions/rotateright">ROTATERIGHT</xref>
+      </li>
+
+      <li>
+        <xref href="#bit_functions/setbit">SETBIT</xref>
+      </li>
+
+      <li>
+        <xref href="#bit_functions/shiftleft">SHIFTLEFT</xref>
+      </li>
+
+      <li>
+        <xref href="#bit_functions/shiftright">SHIFTRIGHT</xref>
+      </li>
+    </ul>
+
+    <dl>
       <dlentry id="bitand">
 
         <dt>
-          <codeph>bitand(integer_type a, same_type b)</codeph>
+          BITAND(integer_type a, same_type b)
         </dt>
 
         <dd>
-          <indexterm audience="hidden">bitand() function</indexterm>
-          <b>Purpose:</b> Returns an integer value representing the bits that 
are set to 1 in both of the arguments.
-          If the arguments are of different sizes, the smaller is promoted to 
the type of the larger.
+          <b>Purpose:</b> Returns an integer value representing the bits that 
are set to 1 in
+          both of the arguments. If the arguments are of different sizes, the 
smaller is
+          promoted to the type of the larger.
           <p>
-            <b>Usage notes:</b> The <codeph>bitand()</codeph> function is 
equivalent to the <codeph>&amp;</codeph> binary operator.
+            <b>Usage notes:</b> The <codeph>BITAND()</codeph> function is 
equivalent to the
+            <codeph>&amp;</codeph> binary operator.
           </p>
+
           <p conref="../shared/impala_common.xml#common/return_type_same"/>
+
           <p conref="../shared/impala_common.xml#common/added_in_230"/>
+
           <p conref="../shared/impala_common.xml#common/example_blurb"/>
+
           <p>
-            The following examples show the results of ANDing integer values.
-            255 contains all 1 bits in its lowermost 7 bits.
-            32767 contains all 1 bits in its lowermost 15 bits.
-            <!--
+            The following examples show the results of ANDing integer values. 
255 contains all 1
+            bits in its lowermost 7 bits. 32767 contains all 1 bits in its 
lowermost 15 bits.
+<!--
             Negative numbers have a 1 in the sign bit and the value is the
             <xref href="https://en.wikipedia.org/wiki/Two%27s_complement"; 
scope="external" format="html">two's complement</xref>
             of the positive equivalent.
             -->
-            You can use the <codeph>bin()</codeph> function to check the 
binary representation of any
-            integer value, although the result is always represented as a 
64-bit value.
-            If necessary, the smaller argument is promoted to the
-            type of the larger one.
+            You can use the <codeph>BIN()</codeph> function to check the 
binary representation
+            of any integer value, although the result is always represented as 
a 64-bit value.
+            If necessary, the smaller argument is promoted to the type of the 
larger one.
           </p>
 <codeblock>select bitand(255, 32767); /* 0000000011111111 &amp; 
0111111111111111 */
 +--------------------+
@@ -160,23 +207,27 @@ select bitand(-1,15); /* 11111111 &amp; 00001111 */
       <dlentry id="bitnot">
 
         <dt>
-          <codeph>bitnot(integer_type a)</codeph>
+          BITNOT(integer_type a)
         </dt>
 
         <dd>
-          <indexterm audience="hidden">bitnot() function</indexterm>
           <b>Purpose:</b> Inverts all the bits of the input argument.
           <p>
-            <b>Usage notes:</b> The <codeph>bitnot()</codeph> function is 
equivalent to the <codeph>~</codeph> unary operator.
+            <b>Usage notes:</b> The <codeph>BITNOT()</codeph> function is 
equivalent to the
+            <codeph>~</codeph> unary operator.
           </p>
+
           <p conref="../shared/impala_common.xml#common/return_type_same"/>
+
           <p conref="../shared/impala_common.xml#common/added_in_230"/>
+
           <p conref="../shared/impala_common.xml#common/example_blurb"/>
+
           <p>
-            These examples illustrate what happens when you flip all the bits 
of an integer value.
-            The sign always changes. The decimal representation is one 
different between the positive and
-            negative values.
-            <!--
+            These examples illustrate what happens when you flip all the bits 
of an integer
+            value. The sign always changes. The decimal representation is one 
different between
+            the positive and negative values.
+<!--
             because negative values are represented as the
             <xref href="https://en.wikipedia.org/wiki/Two%27s_complement"; 
scope="external" format="html">two's complement</xref>
             of the corresponding positive value.
@@ -217,19 +268,24 @@ select bitnot(-128); /* 10000000 -> 01111111 */
       <dlentry id="bitor">
 
         <dt>
-          <codeph>bitor(integer_type a, same_type b)</codeph>
+          BITOR(integer_type a, same_type b)
         </dt>
 
         <dd>
-          <indexterm audience="hidden">bitor() function</indexterm>
-          <b>Purpose:</b> Returns an integer value representing the bits that 
are set to 1 in either of the arguments.
-          If the arguments are of different sizes, the smaller is promoted to 
the type of the larger.
+          <b>Purpose:</b> Returns an integer value representing the bits that 
are set to 1 in
+          either of the arguments. If the arguments are of different sizes, 
the smaller is
+          promoted to the type of the larger.
           <p>
-            <b>Usage notes:</b> The <codeph>bitor()</codeph> function is 
equivalent to the <codeph>|</codeph> binary operator.
+            <b>Usage notes:</b> The <codeph>BITOR()</codeph> function is 
equivalent to the
+            <codeph>|</codeph> binary operator.
           </p>
+
           <p conref="../shared/impala_common.xml#common/return_type_same"/>
+
           <p conref="../shared/impala_common.xml#common/added_in_230"/>
+
           <p conref="../shared/impala_common.xml#common/example_blurb"/>
+
           <p>
             The following examples show the results of ORing integer values.
           </p>
@@ -261,24 +317,30 @@ select bitor(0,7); /* 00000000 | 00000111 */
       <dlentry id="bitxor">
 
         <dt>
-          <codeph>bitxor(integer_type a, same_type b)</codeph>
+          BITXOR(integer_type a, same_type b)
         </dt>
 
         <dd>
-          <indexterm audience="hidden">bitxor() function</indexterm>
-          <b>Purpose:</b> Returns an integer value representing the bits that 
are set to 1 in one but not both of the arguments.
-          If the arguments are of different sizes, the smaller is promoted to 
the type of the larger.
+          <b>Purpose:</b> Returns an integer value representing the bits that 
are set to 1 in
+          one but not both of the arguments. If the arguments are of different 
sizes, the
+          smaller is promoted to the type of the larger.
           <p>
-            <b>Usage notes:</b> The <codeph>bitxor()</codeph> function is 
equivalent to the <codeph>^</codeph> binary operator.
+            <b>Usage notes:</b> The <codeph>BITXOR()</codeph> function is 
equivalent to the
+            <codeph>^</codeph> binary operator.
           </p>
+
           <p conref="../shared/impala_common.xml#common/return_type_same"/>
+
           <p conref="../shared/impala_common.xml#common/added_in_230"/>
+
           <p conref="../shared/impala_common.xml#common/example_blurb"/>
+
           <p>
-            The following examples show the results of XORing integer values.
-            XORing a non-zero value with zero returns the non-zero value.
-            XORing two identical values returns zero, because all the 1 bits 
from the first argument are also 1 bits in the second argument.
-            XORing different non-zero values turns off some bits and leaves 
others turned on, based on whether the same bit is set in both arguments.
+            The following examples show the results of XORing integer values. 
XORing a non-zero
+            value with zero returns the non-zero value. XORing two identical 
values returns
+            zero, because all the 1 bits from the first argument are also 1 
bits in the second
+            argument. XORing different non-zero values turns off some bits and 
leaves others
+            turned on, based on whether the same bit is set in both arguments.
           </p>
 <codeblock>select bitxor(0,15); /* 00000000 ^ 00001111 */
 +---------------+
@@ -315,22 +377,30 @@ select bitxor(3,7); /* 00000011 ^ 00000111 */
       <dlentry id="countset">
 
         <dt>
-          <codeph>countset(integer_type a [, int zero_or_one])</codeph>
+          COUNTSET(integer_type a [, INT zero_or_one])
         </dt>
 
         <dd>
-          <indexterm audience="hidden">countset() function</indexterm>
-          <b>Purpose:</b> By default, returns the number of 1 bits in the 
specified integer value.
-          If the optional second argument is set to zero, it returns the 
number of 0 bits instead.
-          <p conref="../shared/impala_common.xml#common/usage_notes_blurb"/>
+          <b>Purpose:</b> By default, returns the number of 1 bits in the 
specified integer
+          value. If the optional second argument is set to zero, it returns 
the number of 0 bits
+          instead.
+          <p
+            conref="../shared/impala_common.xml#common/usage_notes_blurb"/>
+
           <p>
             In discussions of information theory, this operation is referred 
to as the
-            <q><xref href="https://en.wikipedia.org/wiki/Hamming_weight"; 
scope="external" format="html">population count</xref></q>
-            or <q>popcount</q>.
+            <q><xref
+                href="https://en.wikipedia.org/wiki/Hamming_weight";
+                scope="external" format="html">population
+            count</xref></q> or <q>popcount</q>.
           </p>
+
           <p conref="../shared/impala_common.xml#common/return_type_same"/>
+
           <p conref="../shared/impala_common.xml#common/added_in_230"/>
+
           <p conref="../shared/impala_common.xml#common/example_blurb"/>
+
           <p>
             The following examples show how to count the number of 1 bits in 
an integer value.
           </p>
@@ -383,25 +453,29 @@ select countset(7,0); /* 00000111 = 5 0 bits; third 
argument can only be 0 or 1
       <dlentry id="getbit">
 
         <dt>
-          <codeph>getbit(integer_type a, int position)</codeph>
+          GETBIT(integer_type a, INT position)
         </dt>
 
         <dd>
-          <indexterm audience="hidden">getbit() function</indexterm>
-          <b>Purpose:</b> Returns a 0 or 1 representing the bit at a
-          specified position. The positions are numbered right to left, 
starting at zero.
-          The position argument cannot be negative.
-          <p conref="../shared/impala_common.xml#common/usage_notes_blurb"/>
+          <b>Purpose:</b> Returns a 0 or 1 representing the bit at a specified 
position. The
+          positions are numbered right to left, starting at zero. The position 
argument cannot
+          be negative.
+          <p
+            conref="../shared/impala_common.xml#common/usage_notes_blurb"/>
+
           <p>
-            When you use a literal input value, it is treated as an 8-bit, 
16-bit,
-            and so on value, the smallest type that is appropriate.
-            The type of the input value limits the range of the positions.
-            Cast the input value to the appropriate type if you need to
+            When you use a literal input value, it is treated as an 8-bit, 
16-bit, and so on
+            value, the smallest type that is appropriate. The type of the 
input value limits the
+            range of the positions. Cast the input value to the appropriate 
type if you need to
             ensure it is treated as a 64-bit, 32-bit, and so on value.
           </p>
+
           <p conref="../shared/impala_common.xml#common/return_type_same"/>
+
           <p conref="../shared/impala_common.xml#common/added_in_230"/>
+
           <p conref="../shared/impala_common.xml#common/example_blurb"/>
+
           <p>
             The following examples show how to test a specific bit within an 
integer value.
           </p>
@@ -457,33 +531,37 @@ select getbit(cast(-1 as int),25); /* 
11111111111111111111111111111111 */
       <dlentry id="rotateleft">
 
         <dt>
-          <codeph>rotateleft(integer_type a, int positions)</codeph>
+          ROTATELEFT(integer_type a, INT positions)
         </dt>
 
         <dd>
-          <indexterm audience="hidden">rotateleft() function</indexterm>
-          <b>Purpose:</b> Rotates an integer value left by a specified number 
of bits.
-          As the most significant bit is taken out of the original value,
-          if it is a 1 bit, it is <q>rotated</q> back to the least significant 
bit.
-          Therefore, the final value has the same number of 1 bits as the 
original value,
-          just in different positions.
-          In computer science terms, this operation is a
-          <q><xref href="https://en.wikipedia.org/wiki/Circular_shift"; 
scope="external" format="html">circular shift</xref></q>.
-          <p conref="../shared/impala_common.xml#common/usage_notes_blurb"/>
+          <b>Purpose:</b> Rotates an integer value left by a specified number 
of bits. As the
+          most significant bit is taken out of the original value, if it is a 
1 bit, it is
+          <q>rotated</q> back to the least significant bit. Therefore, the 
final value has the
+          same number of 1 bits as the original value, just in different 
positions. In computer
+          science terms, this operation is a
+          <q><xref
+              href="https://en.wikipedia.org/wiki/Circular_shift";
+              scope="external" format="html">circular
+          shift</xref></q>.
+          <p
+            conref="../shared/impala_common.xml#common/usage_notes_blurb"/>
+
           <p>
-            Specifying a second argument of zero leaves the original value 
unchanged.
-            Rotating a -1 value by any number of positions still returns -1,
-            because the original value has all 1 bits and all the 1 bits are
-            preserved during rotation.
-            Similarly, rotating a 0 value by any number of positions still 
returns 0.
-            Rotating a value by the same number of bits as in the value 
returns the same value.
-            Because this is a circular operation, the number of positions is 
not limited
-            to the number of bits in the input value.
-            For example, rotating an 8-bit value by 1, 9, 17, and so on 
positions returns an
-            identical result in each case.
+            Specifying a second argument of zero leaves the original value 
unchanged. Rotating a
+            -1 value by any number of positions still returns -1, because the 
original value has
+            all 1 bits and all the 1 bits are preserved during rotation. 
Similarly, rotating a 0
+            value by any number of positions still returns 0. Rotating a value 
by the same
+            number of bits as in the value returns the same value. Because 
this is a circular
+            operation, the number of positions is not limited to the number of 
bits in the input
+            value. For example, rotating an 8-bit value by 1, 9, 17, and so on 
positions returns
+            an identical result in each case.
           </p>
+
           <p conref="../shared/impala_common.xml#common/return_type_same"/>
+
           <p conref="../shared/impala_common.xml#common/added_in_230"/>
+
           <p conref="../shared/impala_common.xml#common/example_blurb"/>
 <codeblock>select rotateleft(1,4); /* 00000001 -> 00010000 */
 +------------------+
@@ -521,33 +599,37 @@ select rotateleft(-127,3); /* 10000001 -> 00001100 */
       <dlentry id="rotateright">
 
         <dt>
-          <codeph>rotateright(integer_type a, int positions)</codeph>
+          ROTATERIGHT(integer_type a, INT positions)
         </dt>
 
         <dd>
-          <indexterm audience="hidden">rotateright() function</indexterm>
-          <b>Purpose:</b> Rotates an integer value right by a specified number 
of bits.
-          As the least significant bit is taken out of the original value,
-          if it is a 1 bit, it is <q>rotated</q> back to the most significant 
bit.
-          Therefore, the final value has the same number of 1 bits as the 
original value,
-          just in different positions.
-          In computer science terms, this operation is a
-          <q><xref href="https://en.wikipedia.org/wiki/Circular_shift"; 
scope="external" format="html">circular shift</xref></q>.
-          <p conref="../shared/impala_common.xml#common/usage_notes_blurb"/>
+          <b>Purpose:</b> Rotates an integer value right by a specified number 
of bits. As the
+          least significant bit is taken out of the original value, if it is a 
1 bit, it is
+          <q>rotated</q> back to the most significant bit. Therefore, the 
final value has the
+          same number of 1 bits as the original value, just in different 
positions. In computer
+          science terms, this operation is a
+          <q><xref
+              href="https://en.wikipedia.org/wiki/Circular_shift";
+              scope="external" format="html">circular
+          shift</xref></q>.
+          <p
+            conref="../shared/impala_common.xml#common/usage_notes_blurb"/>
+
           <p>
-            Specifying a second argument of zero leaves the original value 
unchanged.
-            Rotating a -1 value by any number of positions still returns -1,
-            because the original value has all 1 bits and all the 1 bits are
-            preserved during rotation.
-            Similarly, rotating a 0 value by any number of positions still 
returns 0.
-            Rotating a value by the same number of bits as in the value 
returns the same value.
-            Because this is a circular operation, the number of positions is 
not limited
-            to the number of bits in the input value.
-            For example, rotating an 8-bit value by 1, 9, 17, and so on 
positions returns an
-            identical result in each case.
+            Specifying a second argument of zero leaves the original value 
unchanged. Rotating a
+            -1 value by any number of positions still returns -1, because the 
original value has
+            all 1 bits and all the 1 bits are preserved during rotation. 
Similarly, rotating a 0
+            value by any number of positions still returns 0. Rotating a value 
by the same
+            number of bits as in the value returns the same value. Because 
this is a circular
+            operation, the number of positions is not limited to the number of 
bits in the input
+            value. For example, rotating an 8-bit value by 1, 9, 17, and so on 
positions returns
+            an identical result in each case.
           </p>
+
           <p conref="../shared/impala_common.xml#common/return_type_same"/>
+
           <p conref="../shared/impala_common.xml#common/added_in_230"/>
+
           <p conref="../shared/impala_common.xml#common/example_blurb"/>
 <codeblock>select rotateright(16,4); /* 00010000 -> 00000001 */
 +--------------------+
@@ -584,30 +666,31 @@ select rotateright(-127,3); /* 10000001 -> 00110000 */
       <dlentry id="setbit">
 
         <dt>
-          <codeph>setbit(integer_type a, int position [, int 
zero_or_one])</codeph>
+          SETBIT(integer_type a, INT position [, INT zero_or_one])
         </dt>
 
         <dd>
-          <indexterm audience="hidden">setbit() function</indexterm>
-          <b>Purpose:</b> By default, changes a bit at a specified position to 
a 1, if it is not already.
-          If the optional third argument is set to zero, the specified bit is 
set to 0 instead.
-          <p conref="../shared/impala_common.xml#common/usage_notes_blurb"/>
-          If the bit at the specified position was already 1 (by default)
-          or 0 (with a third argument of zero), the return value is
-          the same as the first argument.
-          The positions are numbered right to left, starting at zero.
-          (Therefore, the return value could be different from the first 
argument
-          even if the position argument is zero.)
-          The position argument cannot be negative.
+          <b>Purpose:</b> By default, changes a bit at a specified position to 
a 1, if it is not
+          already. If the optional third argument is set to zero, the 
specified bit is set to 0
+          instead.
+          <p
+            conref="../shared/impala_common.xml#common/usage_notes_blurb"/>
+          If the bit at the specified position was already 1 (by default) or 0 
(with a third
+          argument of zero), the return value is the same as the first 
argument. The positions
+          are numbered right to left, starting at zero. (Therefore, the return 
value could be
+          different from the first argument even if the position argument is 
zero.) The position
+          argument cannot be negative.
           <p>
-            When you use a literal input value, it is treated as an 8-bit, 
16-bit,
-            and so on value, the smallest type that is appropriate.
-            The type of the input value limits the range of the positions.
-            Cast the input value to the appropriate type if you need to
+            When you use a literal input value, it is treated as an 8-bit, 
16-bit, and so on
+            value, the smallest type that is appropriate. The type of the 
input value limits the
+            range of the positions. Cast the input value to the appropriate 
type if you need to
             ensure it is treated as a 64-bit, 32-bit, and so on value.
           </p>
+
           <p conref="../shared/impala_common.xml#common/return_type_same"/>
+
           <p conref="../shared/impala_common.xml#common/added_in_230"/>
+
           <p conref="../shared/impala_common.xml#common/example_blurb"/>
 <codeblock>select setbit(0,0); /* 00000000 -> 00000001 */
 +--------------+
@@ -668,32 +751,39 @@ select setbit(7,2,0); /* 00000111 -> 00000011; third 
argument of 0 clears instea
       <dlentry id="shiftleft">
 
         <dt>
-          <codeph>shiftleft(integer_type a, int positions)</codeph>
+          SHIFTLEFT(integer_type a, INT positions)
         </dt>
 
         <dd>
-          <indexterm audience="hidden">shiftleft() function</indexterm>
-          <b>Purpose:</b> Shifts an integer value left by a specified number 
of bits.
-          As the most significant bit is taken out of the original value,
-          it is discarded and the least significant bit becomes 0.
-          In computer science terms, this operation is a <q><xref 
href="https://en.wikipedia.org/wiki/Logical_shift"; scope="external" 
format="html">logical shift</xref></q>.
-          <p conref="../shared/impala_common.xml#common/usage_notes_blurb"/>
+          <b>Purpose:</b> Shifts an integer value left by a specified number 
of bits. As the
+          most significant bit is taken out of the original value, it is 
discarded and the least
+          significant bit becomes 0. In computer science terms, this operation 
is a
+          <q><xref
+              href="https://en.wikipedia.org/wiki/Logical_shift";
+              scope="external" format="html">logical
+          shift</xref></q>.
+          <p
+            conref="../shared/impala_common.xml#common/usage_notes_blurb"/>
+
           <p>
-            The final value has either the same number of 1 bits as the 
original value, or fewer.
-            Shifting an 8-bit value by 8 positions, a 16-bit value by 16 
positions, and so on produces
-            a result of zero.
+            The final value has either the same number of 1 bits as the 
original value, or
+            fewer. Shifting an 8-bit value by 8 positions, a 16-bit value by 
16 positions, and
+            so on produces a result of zero.
           </p>
+
           <p>
-            Specifying a second argument of zero leaves the original value 
unchanged.
-            Shifting any value by 0 returns the original value.
-            Shifting any value by 1 is the same as multiplying it by 2,
-            as long as the value is small enough; larger values eventually
-            become negative when shifted, as the sign bit is set.
-            Starting with the value 1 and shifting it left by N positions gives
-            the same result as 2 to the Nth power, or 
<codeph>pow(2,<varname>N</varname>)</codeph>.
+            Specifying a second argument of zero leaves the original value 
unchanged. Shifting
+            any value by 0 returns the original value. Shifting any value by 1 
is the same as
+            multiplying it by 2, as long as the value is small enough; larger 
values eventually
+            become negative when shifted, as the sign bit is set. Starting 
with the value 1 and
+            shifting it left by N positions gives the same result as 2 to the 
Nth power, or
+            <codeph>POW(2,<varname>N</varname>)</codeph>.
           </p>
+
           <p conref="../shared/impala_common.xml#common/return_type_same"/>
+
           <p conref="../shared/impala_common.xml#common/added_in_230"/>
+
           <p conref="../shared/impala_common.xml#common/example_blurb"/>
 <codeblock>select shiftleft(1,0); /* 00000001 -> 00000001 */
 +-----------------+
@@ -744,29 +834,36 @@ select shiftleft(-1,4); /* 11111111 -> 11110000 */
       <dlentry id="shiftright">
 
         <dt>
-          <codeph>shiftright(integer_type a, int positions)</codeph>
+          SHIFTRIGHT(integer_type a, INT positions)
         </dt>
 
         <dd>
-          <indexterm audience="hidden">shiftright() function</indexterm>
-          <b>Purpose:</b> Shifts an integer value right by a specified number 
of bits.
-          As the least significant bit is taken out of the original value,
-          it is discarded and the most significant bit becomes 0.
-          In computer science terms, this operation is a <q><xref 
href="https://en.wikipedia.org/wiki/Logical_shift"; scope="external" 
format="html">logical shift</xref></q>.
-          <p conref="../shared/impala_common.xml#common/usage_notes_blurb"/>
+          <b>Purpose:</b> Shifts an integer value right by a specified number 
of bits. As the
+          least significant bit is taken out of the original value, it is 
discarded and the most
+          significant bit becomes 0. In computer science terms, this operation 
is a
+          <q><xref
+              href="https://en.wikipedia.org/wiki/Logical_shift";
+              scope="external" format="html">logical
+          shift</xref></q>.
+          <p
+            conref="../shared/impala_common.xml#common/usage_notes_blurb"/>
+
           <p>
-          Therefore, the final value has either the same number of 1 bits as 
the original value, or fewer.
-          Shifting an 8-bit value by 8 positions, a 16-bit value by 16 
positions, and so on produces
-          a result of zero.
+            Therefore, the final value has either the same number of 1 bits as 
the original
+            value, or fewer. Shifting an 8-bit value by 8 positions, a 16-bit 
value by 16
+            positions, and so on produces a result of zero.
           </p>
+
           <p>
-            Specifying a second argument of zero leaves the original value 
unchanged.
-            Shifting any value by 0 returns the original value.
-            Shifting any positive value right by 1 is the same as dividing it 
by 2.
-            Negative values become positive when shifted right.
+            Specifying a second argument of zero leaves the original value 
unchanged. Shifting
+            any value by 0 returns the original value. Shifting any positive 
value right by 1 is
+            the same as dividing it by 2. Negative values become positive when 
shifted right.
           </p>
+
           <p conref="../shared/impala_common.xml#common/return_type_same"/>
+
           <p conref="../shared/impala_common.xml#common/added_in_230"/>
+
           <p conref="../shared/impala_common.xml#common/example_blurb"/>
 <codeblock>select shiftright(16,0); /* 00010000 -> 00010000 */
 +-------------------+
@@ -806,7 +903,8 @@ select shiftright(-1,5); /* 11111111 -> 00000111 */
         </dd>
 
       </dlentry>
-
     </dl>
+
   </conbody>
+
 </concept>

http://git-wip-us.apache.org/repos/asf/impala/blob/e8ee827a/docs/topics/impala_conditional_functions.xml
----------------------------------------------------------------------
diff --git a/docs/topics/impala_conditional_functions.xml 
b/docs/topics/impala_conditional_functions.xml
index 45717e1..106c518 100644
--- a/docs/topics/impala_conditional_functions.xml
+++ b/docs/topics/impala_conditional_functions.xml
@@ -1,4 +1,5 @@
-<?xml version="1.0" encoding="UTF-8"?><!--
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
 Licensed to the Apache Software Foundation (ASF) under one
 or more contributor license agreements.  See the NOTICE file
 distributed with this work for additional information
@@ -20,7 +21,13 @@ under the License.
 <concept id="conditional_functions">
 
   <title>Impala Conditional Functions</title>
-  <titlealts audience="PDF"><navtitle>Conditional 
Functions</navtitle></titlealts>
+
+  <titlealts audience="PDF">
+
+    <navtitle>Conditional Functions</navtitle>
+
+  </titlealts>
+
   <prolog>
     <metadata>
       <data name="Category" value="Impala"/>
@@ -35,34 +42,115 @@ under the License.
   <conbody>
 
     <p>
-      Impala supports the following conditional functions for testing 
equality, comparison operators, and nullity:
+      Impala supports the following conditional functions for testing 
equality, comparison
+      operators, and nullity:
     </p>
 
+    <ul>
+      <li>
+        <xref href="#conditional_functions/case">CASE</xref>
+      </li>
+
+      <li>
+        <xref href="#conditional_functions/case2">CASE2</xref>
+      </li>
+
+      <li>
+        <xref href="#conditional_functions/coalesce">COALESCE</xref>
+      </li>
+
+      <li>
+        <xref href="#conditional_functions/decode">DECODE</xref>
+      </li>
+
+      <li>
+        <xref href="#conditional_functions/if">IF</xref>
+      </li>
+
+      <li>
+        <xref href="#conditional_functions/ifnull">IFNULL</xref>
+      </li>
+
+      <li>
+        <xref href="#conditional_functions/isfalse">ISFALSE</xref>
+      </li>
+
+      <li>
+        <xref href="#conditional_functions/isnotfalse">ISNOTFALSE</xref>
+      </li>
+
+      <li>
+        <xref href="#conditional_functions/isnottrue">ISNOTTRUE</xref>
+      </li>
+
+      <li>
+        <xref href="#conditional_functions/isnull">ISNULL</xref>
+      </li>
+
+      <li>
+        <xref href="#conditional_functions/istrue">ISTRUE</xref>
+      </li>
+
+      <li>
+        <xref href="#conditional_functions/nonnullvalue">NONNULLVALUE</xref>
+      </li>
+
+      <li>
+        <xref href="#conditional_functions/nullif">NULLIF</xref>
+      </li>
+
+      <li>
+        <xref href="#conditional_functions/nullifzero">NULLIFZERO</xref>
+      </li>
+
+      <li>
+        <xref href="#conditional_functions/nullvalue">NULLVALUE</xref>
+      </li>
+
+      <li>
+        <xref href="#conditional_functions/nvl">NVL</xref>
+      </li>
+
+      <li>
+        <xref href="#conditional_functions/nvl2">NVL2</xref>
+      </li>
+
+      <li>
+        <xref href="#conditional_functions/zeroifnull">ZEROIFNULL</xref>
+      </li>
+    </ul>
+
     <dl>
       <dlentry id="case">
 
         <dt>
-          <codeph>CASE a WHEN b THEN c [WHEN d THEN e]... [ELSE f] END</codeph>
+          CASE a WHEN b THEN c [WHEN d THEN e]... [ELSE f] END
         </dt>
 
         <dd>
-          <indexterm audience="hidden">CASE expression</indexterm>
-          <b>Purpose:</b> Compares an expression to one or more possible 
values, and returns a corresponding result
-          when a match is found.
-          <p conref="../shared/impala_common.xml#common/return_same_type"/>
+          <b>Purpose:</b> Compares an expression to one or more possible 
values, and returns a
+          corresponding result when a match is found.
+          <p
+            conref="../shared/impala_common.xml#common/return_same_type"/>
+
           <p conref="../shared/impala_common.xml#common/usage_notes_blurb"/>
+
           <p>
-            In this form of the <codeph>CASE</codeph> expression, the initial 
value <codeph>A</codeph>
-            being evaluated for each row it typically a column reference, or 
an expression involving
-            a column. This form can only compare against a set of specified 
values, not ranges,
-            multi-value comparisons such as <codeph>BETWEEN</codeph> or 
<codeph>IN</codeph>,
-            regular expressions, or <codeph>NULL</codeph>.
+            In this form of the <codeph>CASE</codeph> expression, the initial 
value
+            <codeph>A</codeph> being evaluated for each row it typically a 
column reference, or
+            an expression involving a column. This form can only compare 
against a set of
+            specified values, not ranges, multi-value comparisons such as
+            <codeph>BETWEEN</codeph> or <codeph>IN</codeph>, regular 
expressions, or
+            <codeph>NULL</codeph>.
           </p>
+
           <p conref="../shared/impala_common.xml#common/example_blurb"/>
+
           <p>
-            Although this example is split across multiple lines, you can put 
any or all parts of a <codeph>CASE</codeph> expression
-            on a single line, with no punctuation or other separators between 
the <codeph>WHEN</codeph>,
-            <codeph>ELSE</codeph>, and <codeph>END</codeph> clauses.
+            Although this example is split across multiple lines, you can put 
any or all parts
+            of a <codeph>CASE</codeph> expression on a single line, with no 
punctuation or other
+            separators between the <codeph>WHEN</codeph>, 
<codeph>ELSE</codeph>, and
+            <codeph>END</codeph> clauses.
           </p>
 <codeblock>select case x
     when 1 then 'one'
@@ -79,52 +167,61 @@ under the License.
       <dlentry id="case2">
 
         <dt>
-          <codeph>CASE WHEN a THEN b [WHEN c THEN d]... [ELSE e] END</codeph>
+          CASE WHEN a THEN b [WHEN c THEN d]... [ELSE e] END
         </dt>
 
         <dd>
-          <indexterm audience="hidden">CASE expression</indexterm>
-          <b>Purpose:</b> Tests whether any of a sequence of expressions is 
true, and returns a corresponding
-          result for the first true expression.
-          <p conref="../shared/impala_common.xml#common/return_same_type"/>
+          <b>Purpose:</b> Tests whether any of a sequence of expressions is 
true, and returns a
+          corresponding result for the first true expression.
+          <p
+            conref="../shared/impala_common.xml#common/return_same_type"/>
+
           <p conref="../shared/impala_common.xml#common/usage_notes_blurb"/>
+
           <p>
-            <codeph>CASE</codeph> expressions without an initial test value 
have more flexibility.
-            For example, they can test different columns in different 
<codeph>WHEN</codeph> clauses,
-            or use comparison operators such as <codeph>BETWEEN</codeph>, 
<codeph>IN</codeph> and <codeph>IS NULL</codeph>
-            rather than comparing against discrete values.
+            <codeph>CASE</codeph> expressions without an initial test value 
have more
+            flexibility. For example, they can test different columns in 
different
+            <codeph>WHEN</codeph> clauses, or use comparison operators such as
+            <codeph>BETWEEN</codeph>, <codeph>IN</codeph> and <codeph>IS 
NULL</codeph> rather
+            than comparing against discrete values.
           </p>
+
           <p>
             <codeph>CASE</codeph> expressions are often the foundation of long 
queries that
-            summarize and format results for easy-to-read reports. For 
example, you might
-            use a <codeph>CASE</codeph> function call to turn values from a 
numeric column
-            into category strings corresponding to integer values, or labels 
such as <q>Small</q>,
-            <q>Medium</q> and <q>Large</q> based on ranges. Then subsequent 
parts of the
-            query might aggregate based on the transformed values, such as how 
many
-            values are classified as small, medium, or large. You can also use 
<codeph>CASE</codeph>
-            to signal problems with out-of-bounds values, 
<codeph>NULL</codeph> values,
-            and so on.
+            summarize and format results for easy-to-read reports. For 
example, you might use a
+            <codeph>CASE</codeph> function call to turn values from a numeric 
column into
+            category strings corresponding to integer values, or labels such 
as <q>Small</q>,
+            <q>Medium</q> and <q>Large</q> based on ranges. Then subsequent 
parts of the query
+            might aggregate based on the transformed values, such as how many 
values are
+            classified as small, medium, or large. You can also use 
<codeph>CASE</codeph> to
+            signal problems with out-of-bounds values, <codeph>NULL</codeph> 
values, and so on.
           </p>
+
           <p>
             By using operators such as <codeph>OR</codeph>, 
<codeph>IN</codeph>,
-            <codeph>REGEXP</codeph>, and so on in <codeph>CASE</codeph> 
expressions,
-            you can build extensive tests and transformations into a single 
query.
-            Therefore, applications that construct SQL statements often rely 
heavily on <codeph>CASE</codeph>
-            calls in the generated SQL code.
+            <codeph>REGEXP</codeph>, and so on in <codeph>CASE</codeph> 
expressions, you can
+            build extensive tests and transformations into a single query. 
Therefore,
+            applications that construct SQL statements often rely heavily on
+            <codeph>CASE</codeph> calls in the generated SQL code.
           </p>
+
           <p>
-            Because this flexible form of the <codeph>CASE</codeph> 
expressions allows you to perform
-            many comparisons and call multiple functions when evaluating each 
row, be careful applying
-            elaborate <codeph>CASE</codeph> expressions to queries that 
process large amounts of data.
-            For example, when practical, evaluate and transform values through 
<codeph>CASE</codeph>
-            after applying operations such as aggregations that reduce the 
size of the result set;
-            transform numbers to strings after performing joins with the 
original numeric values.
+            Because this flexible form of the <codeph>CASE</codeph> 
expressions allows you to
+            perform many comparisons and call multiple functions when 
evaluating each row, be
+            careful applying elaborate <codeph>CASE</codeph> expressions to 
queries that process
+            large amounts of data. For example, when practical, evaluate and 
transform values
+            through <codeph>CASE</codeph> after applying operations such as 
aggregations that
+            reduce the size of the result set; transform numbers to strings 
after performing
+            joins with the original numeric values.
           </p>
+
           <p conref="../shared/impala_common.xml#common/example_blurb"/>
+
           <p>
-            Although this example is split across multiple lines, you can put 
any or all parts of a <codeph>CASE</codeph> expression
-            on a single line, with no punctuation or other separators between 
the <codeph>WHEN</codeph>,
-            <codeph>ELSE</codeph>, and <codeph>END</codeph> clauses.
+            Although this example is split across multiple lines, you can put 
any or all parts
+            of a <codeph>CASE</codeph> expression on a single line, with no 
punctuation or other
+            separators between the <codeph>WHEN</codeph>, 
<codeph>ELSE</codeph>, and
+            <codeph>END</codeph> clauses.
           </p>
 <codeblock>select case
     when dayname(now()) in ('Saturday','Sunday') then 'result undefined on 
weekends'
@@ -142,14 +239,15 @@ under the License.
       <dlentry id="coalesce">
 
         <dt>
-          <codeph>coalesce(type v1, type v2, ...)</codeph>
+          COALESCE(type v1, type v2, ...)
         </dt>
 
         <dd>
-          <indexterm audience="hidden">coalesce() function</indexterm>
-          <b>Purpose:</b> Returns the first specified argument that is not 
<codeph>NULL</codeph>, or
-          <codeph>NULL</codeph> if all arguments are <codeph>NULL</codeph>.
-          <p conref="../shared/impala_common.xml#common/return_same_type"/>
+          <b>Purpose:</b> Returns the first specified argument that is not
+          <codeph>NULL</codeph>, or <codeph>NULL</codeph> if all arguments are
+          <codeph>NULL</codeph>.
+          <p
+            conref="../shared/impala_common.xml#common/return_same_type"/>
         </dd>
 
       </dlentry>
@@ -157,32 +255,40 @@ under the License.
       <dlentry rev="2.0.0" id="decode">
 
         <dt>
-          <codeph>decode(type expression, type search1, type result1 [, type 
search2, type result2 ...] [, type
-          default] )</codeph>
+          DECODE(type expression, type search1, type result1 [, type search2, 
type result2 ...]
+          [, type default] )
         </dt>
 
         <dd>
-          <indexterm audience="hidden">decode() function</indexterm>
-          <b>Purpose:</b> Compares an expression to one or more possible 
values, and returns a corresponding result
-          when a match is found.
-          <p conref="../shared/impala_common.xml#common/return_same_type"/>
+          <b>Purpose:</b> Compares an expression to one or more possible 
values, and returns a
+          corresponding result when a match is found.
+          <p
+            conref="../shared/impala_common.xml#common/return_same_type"/>
+
           <p conref="../shared/impala_common.xml#common/usage_notes_blurb"/>
+
           <p>
             Can be used as shorthand for a <codeph>CASE</codeph> expression.
           </p>
+
           <p>
-            The original expression and the search expressions must of the 
same type or convertible types. The
-            result expression can be a different type, but all result 
expressions must be of the same type.
+            The original expression and the search expressions must of the 
same type or
+            convertible types. The result expression can be a different type, 
but all result
+            expressions must be of the same type.
           </p>
+
           <p>
-            Returns a successful match If the original expression is 
<codeph>NULL</codeph> and a search expression
-            is also <codeph>NULL</codeph>. the
+            Returns a successful match If the original expression is 
<codeph>NULL</codeph> and a
+            search expression is also <codeph>NULL</codeph>. the
           </p>
+
           <p>
-            Returns <codeph>NULL</codeph> if the final 
<codeph>default</codeph> value is omitted and none of the
-            search expressions match the original expression.
+            Returns <codeph>NULL</codeph> if the final 
<codeph>default</codeph> value is omitted
+            and none of the search expressions match the original expression.
           </p>
+
           <p conref="../shared/impala_common.xml#common/example_blurb"/>
+
           <p>
             The following example translates numeric day values into 
descriptive names:
           </p>
@@ -197,13 +303,12 @@ under the License.
       <dlentry id="if">
 
         <dt>
-          <codeph>if(boolean condition, type ifTrue, type 
ifFalseOrNull)</codeph>
+          IF(BOOLEAN condition, type ifTrue, type ifFalseOrNull)
         </dt>
 
         <dd>
-          <indexterm audience="hidden">if() function</indexterm>
-          <b>Purpose:</b> Tests an expression and returns a corresponding 
result depending on whether the result is
-          true, false, or <codeph>NULL</codeph>.
+          <b>Purpose:</b> Tests an expression and returns a corresponding 
result depending on
+          whether the result is true, false, or <codeph>NULL</codeph>.
           <p>
             <b>Return type:</b> Same as the <codeph>ifTrue</codeph> argument 
value
           </p>
@@ -214,13 +319,12 @@ under the License.
       <dlentry rev="1.3.0" id="ifnull">
 
         <dt>
-          <codeph>ifnull(type a, type ifNull)</codeph>
+          IFNULL(type a, type ifNull)
         </dt>
 
         <dd>
-          <indexterm audience="hidden">isnull() function</indexterm>
-          <b>Purpose:</b> Alias for the <codeph>isnull()</codeph> function, 
with the same behavior. To simplify
-          porting SQL with vendor extensions to Impala.
+          <b>Purpose:</b> Alias for the <codeph>ISNULL()</codeph> function, 
with the same
+          behavior. To simplify porting SQL with vendor extensions to Impala.
           <p conref="../shared/impala_common.xml#common/added_in_130"/>
         </dd>
 
@@ -229,19 +333,24 @@ under the License.
       <dlentry id="isfalse" rev="2.2.0">
 
         <dt>
-          <codeph>isfalse(<varname>boolean</varname>)</codeph>
+          ISFALSE(BOOLEAN expression)
         </dt>
 
         <dd>
-          <indexterm audience="hidden">isfalse() function</indexterm>
           <b>Purpose:</b> Tests if a Boolean expression is 
<codeph>false</codeph> or not.
-          Returns <codeph>true</codeph> if so.
-          If the argument is <codeph>NULL</codeph>, returns 
<codeph>false</codeph>.
-          Identical to <codeph>isnottrue()</codeph>, except it returns the 
opposite value for a <codeph>NULL</codeph> argument.
-          <p conref="../shared/impala_common.xml#common/return_type_boolean"/>
+          Returns <codeph>true</codeph> if so. If the argument is 
<codeph>NULL</codeph>, returns
+          <codeph>false</codeph>. Similar to <codeph>ISNOTTRUE()</codeph>, 
except it returns the
+          opposite value for a <codeph>NULL</codeph> argument.
+          <p
+            conref="../shared/impala_common.xml#common/return_type_boolean"/>
+
           <p conref="../shared/impala_common.xml#common/added_in_220"/>
+
           <p conref="../shared/impala_common.xml#common/usage_notes_blurb"/>
-          <p 
conref="../shared/impala_common.xml#common/boolean_functions_vs_expressions"/>
+
+          <p
+            
conref="../shared/impala_common.xml#common/boolean_functions_vs_expressions"
+          />
         </dd>
 
       </dlentry>
@@ -249,20 +358,27 @@ under the License.
       <dlentry id="isnotfalse" rev="2.2.0">
 
         <dt>
-          <codeph>isnotfalse(<varname>boolean</varname>)</codeph>
+          ISNOTFALSE(BOOLEAN expression)
         </dt>
 
         <dd>
-          <indexterm audience="hidden">isnotfalse() function</indexterm>
-          <b>Purpose:</b> Tests if a Boolean expression is not 
<codeph>false</codeph> (that is, either <codeph>true</codeph> or 
<codeph>NULL</codeph>).
-          Returns <codeph>true</codeph> if so.
-          If the argument is <codeph>NULL</codeph>, returns 
<codeph>true</codeph>.
-          Identical to <codeph>istrue()</codeph>, except it returns the 
opposite value for a <codeph>NULL</codeph> argument.
-          <p conref="../shared/impala_common.xml#common/return_type_boolean"/>
+          <b>Purpose:</b> Tests if a Boolean expression is not 
<codeph>false</codeph> (that is,
+          either <codeph>true</codeph> or <codeph>NULL</codeph>). Returns 
<codeph>true</codeph>
+          if so. If the argument is <codeph>NULL</codeph>, returns 
<codeph>true</codeph>.
+          Similar to <codeph>ISTRUE()</codeph>, except it returns the opposite 
value for a
+          <codeph>NULL</codeph> argument.
+          <p
+            conref="../shared/impala_common.xml#common/return_type_boolean"/>
+
           <p 
conref="../shared/impala_common.xml#common/for_compatibility_only"/>
+
           <p conref="../shared/impala_common.xml#common/added_in_220"/>
+
           <p conref="../shared/impala_common.xml#common/usage_notes_blurb"/>
-          <p 
conref="../shared/impala_common.xml#common/boolean_functions_vs_expressions"/>
+
+          <p
+            
conref="../shared/impala_common.xml#common/boolean_functions_vs_expressions"
+          />
         </dd>
 
       </dlentry>
@@ -270,19 +386,25 @@ under the License.
       <dlentry id="isnottrue" rev="2.2.0">
 
         <dt>
-          <codeph>isnottrue(<varname>boolean</varname>)</codeph>
+          ISNOTTRUE(BOOLEAN expression)
         </dt>
 
         <dd>
-          <indexterm audience="hidden">isnottrue() function</indexterm>
-          <b>Purpose:</b> Tests if a Boolean expression is not 
<codeph>true</codeph> (that is, either <codeph>false</codeph> or 
<codeph>NULL</codeph>).
-          Returns <codeph>true</codeph> if so.
-          If the argument is <codeph>NULL</codeph>, returns 
<codeph>true</codeph>.
-          Identical to <codeph>isfalse()</codeph>, except it returns the 
opposite value for a <codeph>NULL</codeph> argument.
-          <p conref="../shared/impala_common.xml#common/return_type_boolean"/>
+          <b>Purpose:</b> Tests if a Boolean expression is not 
<codeph>true</codeph> (that is,
+          either <codeph>false</codeph> or <codeph>NULL</codeph>). Returns 
<codeph>true</codeph>
+          if so. If the argument is <codeph>NULL</codeph>, returns 
<codeph>true</codeph>.
+          Similar to <codeph>ISFALSE()</codeph>, except it returns the 
opposite value for a
+          <codeph>NULL</codeph> argument.
+          <p
+            conref="../shared/impala_common.xml#common/return_type_boolean"/>
+
           <p conref="../shared/impala_common.xml#common/added_in_220"/>
+
           <p conref="../shared/impala_common.xml#common/usage_notes_blurb"/>
-          <p 
conref="../shared/impala_common.xml#common/boolean_functions_vs_expressions"/>
+
+          <p
+            
conref="../shared/impala_common.xml#common/boolean_functions_vs_expressions"
+          />
         </dd>
 
       </dlentry>
@@ -290,18 +412,19 @@ under the License.
       <dlentry id="isnull">
 
         <dt>
-          <codeph>isnull(type a, type ifNull)</codeph>
+          ISNULL(type a, type ifNull)
         </dt>
 
         <dd>
-          <indexterm audience="hidden">isnull() function</indexterm>
-          <b>Purpose:</b> Tests if an expression is <codeph>NULL</codeph>, and 
returns the expression result value
-          if not. If the first argument is <codeph>NULL</codeph>, returns the 
second argument.
+          <b>Purpose:</b> Tests if an expression is <codeph>NULL</codeph>, and 
returns the
+          expression result value if not. If the first argument is 
<codeph>NULL</codeph>,
+          returns the second argument.
           <p>
-            <b>Compatibility notes:</b> Equivalent to the 
<codeph>nvl()</codeph> function from Oracle Database or
-            <codeph>ifnull()</codeph> from MySQL. The <codeph>nvl()</codeph> 
and <codeph>ifnull()</codeph>
-            functions are also available in Impala.
+            <b>Compatibility notes:</b> Equivalent to the 
<codeph>NVL()</codeph> function from
+            Oracle Database or <codeph>IFNULL()</codeph> from MySQL. The 
<codeph>NVL()</codeph>
+            and <codeph>IFNULL()</codeph> functions are also available in 
Impala.
           </p>
+
           <p>
             <b>Return type:</b> Same as the first argument value
           </p>
@@ -312,20 +435,26 @@ under the License.
       <dlentry id="istrue" rev="2.2.0">
 
         <dt>
-          <codeph>istrue(<varname>boolean</varname>)</codeph>
+          ISTRUE(BOOLEAN expression)
         </dt>
 
         <dd>
-          <indexterm audience="hidden">istrue() function</indexterm>
-          <b>Purpose:</b> Tests if a Boolean expression is 
<codeph>true</codeph> or not.
-          Returns <codeph>true</codeph> if so.
-          If the argument is <codeph>NULL</codeph>, returns 
<codeph>false</codeph>.
-          Identical to <codeph>isnotfalse()</codeph>, except it returns the 
opposite value for a <codeph>NULL</codeph> argument.
-          <p conref="../shared/impala_common.xml#common/return_type_boolean"/>
+          <b>Purpose:</b> Tests if a Boolean expression is 
<codeph>true</codeph> or not. Returns
+          <codeph>true</codeph> if so. If the argument is 
<codeph>NULL</codeph>, returns
+          <codeph>false</codeph>. Similar to <codeph>ISNOTFALSE()</codeph>, 
except it returns
+          the opposite value for a <codeph>NULL</codeph> argument.
+          <p
+            conref="../shared/impala_common.xml#common/return_type_boolean"/>
+
           <p 
conref="../shared/impala_common.xml#common/for_compatibility_only"/>
+
           <p conref="../shared/impala_common.xml#common/added_in_220"/>
+
           <p conref="../shared/impala_common.xml#common/usage_notes_blurb"/>
-          <p 
conref="../shared/impala_common.xml#common/boolean_functions_vs_expressions"/>
+
+          <p
+            
conref="../shared/impala_common.xml#common/boolean_functions_vs_expressions"
+          />
         </dd>
 
       </dlentry>
@@ -333,16 +462,17 @@ under the License.
       <dlentry id="nonnullvalue" rev="2.2.0">
 
         <dt>
-          <codeph>nonnullvalue(<varname>expression</varname>)</codeph>
+          NONNULLVALUE(type expression)
         </dt>
 
         <dd>
-          <indexterm audience="hidden">function</indexterm>
           <b>Purpose:</b> Tests if an expression (of any type) is 
<codeph>NULL</codeph> or not.
-          Returns <codeph>false</codeph> if so.
-          The converse of <codeph>nullvalue()</codeph>.
-          <p conref="../shared/impala_common.xml#common/return_type_boolean"/>
+          Returns <codeph>false</codeph> if so. The converse of 
<codeph>NULLVALUE()</codeph>.
+          <p
+            conref="../shared/impala_common.xml#common/return_type_boolean"/>
+
           <p 
conref="../shared/impala_common.xml#common/for_compatibility_only"/>
+
           <p conref="../shared/impala_common.xml#common/added_in_220"/>
         </dd>
 
@@ -351,35 +481,38 @@ under the License.
       <dlentry rev="1.3.0" id="nullif">
 
         <dt>
-          
<codeph>nullif(<varname>expr1</varname>,<varname>expr2</varname>)</codeph>
+          NULLIF(type expr1, type expr2)
         </dt>
 
         <dd>
-          <indexterm audience="hidden">nullif() function</indexterm>
-          <b>Purpose:</b> Returns <codeph>NULL</codeph> if the two specified 
arguments are equal. If the specified
-          arguments are not equal, returns the value of 
<varname>expr1</varname>. The data types of the expressions
-          must be compatible, according to the conversion rules from <xref 
href="impala_datatypes.xml#datatypes"/>.
-          You cannot use an expression that evaluates to <codeph>NULL</codeph> 
for <varname>expr1</varname>; that
-          way, you can distinguish a return value of <codeph>NULL</codeph> 
from an argument value of
-          <codeph>NULL</codeph>, which would never match 
<varname>expr2</varname>.
+          <b>Purpose:</b> Returns <codeph>NULL</codeph> if the two specified 
arguments are
+          equal. If the specified arguments are not equal, returns the value of
+          <varname>expr1</varname>. The data types of the expressions must be 
compatible,
+          according to the conversion rules from <xref 
href="impala_datatypes.xml#datatypes"/>.
+          You cannot use an expression that evaluates to <codeph>NULL</codeph> 
for
+          <varname>expr1</varname>; that way, you can distinguish a return 
value of
+          <codeph>NULL</codeph> from an argument value of 
<codeph>NULL</codeph>, which would
+          never match <varname>expr2</varname>.
           <p>
-            <b>Usage notes:</b> This function is effectively shorthand for a 
<codeph>CASE</codeph> expression of
-            the form:
+            <b>Usage notes:</b> This function is effectively shorthand for a
+            <codeph>CASE</codeph> expression of the form:
           </p>
 <codeblock>CASE
   WHEN <varname>expr1</varname> = <varname>expr2</varname> THEN NULL
   ELSE <varname>expr1</varname>
 END</codeblock>
           <p>
-            It is commonly used in division expressions, to produce a 
<codeph>NULL</codeph> result instead of a
-            divide-by-zero error when the divisor is equal to zero:
+            It is commonly used in division expressions, to produce a 
<codeph>NULL</codeph>
+            result instead of a divide-by-zero error when the divisor is equal 
to zero:
           </p>
 <codeblock>select 1.0 / nullif(c1,0) as reciprocal from t1;</codeblock>
           <p>
-            You might also use it for compatibility with other database 
systems that support the same
-            <codeph>NULLIF()</codeph> function.
+            You might also use it for compatibility with other database 
systems that support the
+            same <codeph>NULLIF()</codeph> function.
           </p>
+
           <p conref="../shared/impala_common.xml#common/return_same_type"/>
+
           <p conref="../shared/impala_common.xml#common/added_in_130"/>
         </dd>
 
@@ -388,21 +521,22 @@ END</codeblock>
       <dlentry rev="1.3.0" id="nullifzero">
 
         <dt>
-          <codeph>nullifzero(<varname>numeric_expr</varname>)</codeph>
+          NULLIFZERO(type numeric_expr)
         </dt>
 
-        <dd><b>Purpose:</b> Returns <codeph>NULL</codeph> if the numeric
-          expression evaluates to 0, otherwise returns the result of the
-          expression.
+        <dd>
+          <b>Purpose:</b> Returns <codeph>NULL</codeph> if the numeric 
expression evaluates to
+          0, otherwise returns the result of the expression.
           <p>
-            <b>Usage notes:</b> Used to avoid error conditions such as
-            divide-by-zero in numeric calculations. Serves as shorthand for a
-            more elaborate <codeph>CASE</codeph> expression, to simplify 
porting
-            SQL with vendor extensions to Impala.
+            <b>Usage notes:</b> Used to avoid error conditions such as 
divide-by-zero in numeric
+            calculations. Serves as shorthand for a more elaborate 
<codeph>CASE</codeph>
+            expression, to simplify porting SQL with vendor extensions to 
Impala.
           </p>
-          <p><b>Return type:</b>
-            Same type as the input argument
+
+          <p>
+            <b>Return type:</b> Same type as the input argument
           </p>
+
           <p conref="../shared/impala_common.xml#common/added_in_130"/>
         </dd>
 
@@ -411,16 +545,17 @@ END</codeblock>
       <dlentry id="nullvalue" rev="2.2.0">
 
         <dt>
-          <codeph>nullvalue(<varname>expression</varname>)</codeph>
+          NULLVALUE(type expression)
         </dt>
 
         <dd>
-          <indexterm audience="hidden">function</indexterm>
           <b>Purpose:</b> Tests if an expression (of any type) is 
<codeph>NULL</codeph> or not.
-          Returns <codeph>true</codeph> if so.
-          The converse of <codeph>nonnullvalue()</codeph>.
-          <p conref="../shared/impala_common.xml#common/return_type_boolean"/>
+          Returns <codeph>true</codeph> if so. The converse of 
<codeph>NONNULLVALUE()</codeph>.
+          <p
+            conref="../shared/impala_common.xml#common/return_type_boolean"/>
+
           <p 
conref="../shared/impala_common.xml#common/for_compatibility_only"/>
+
           <p conref="../shared/impala_common.xml#common/added_in_220"/>
         </dd>
 
@@ -429,18 +564,19 @@ END</codeblock>
       <dlentry id="nvl" rev="1.1">
 
         <dt>
-          <codeph>nvl(type a, type ifNull)</codeph>
+          NVL(type a, type ifNull)
         </dt>
 
         <dd>
-          <indexterm audience="hidden">nvl() function</indexterm>
-          <b>Purpose:</b> Alias for the <codeph>isnull()</codeph> function. 
Tests if an expression is
-          <codeph>NULL</codeph>, and returns the expression result value if 
not. If the first argument is
-          <codeph>NULL</codeph>, returns the second argument. Equivalent to 
the <codeph>nvl()</codeph> function
-          from Oracle Database or <codeph>ifnull()</codeph> from MySQL.
+          <b>Purpose:</b> Alias for the <codeph>ISNULL()</codeph> function. 
Tests if an
+          expression is <codeph>NULL</codeph>, and returns the expression 
result value if not.
+          If the first argument is <codeph>NULL</codeph>, returns the second 
argument.
+          Equivalent to the <codeph>NVL()</codeph> function from Oracle 
Database or
+          <codeph>IFNULL()</codeph> from MySQL.
           <p>
             <b>Return type:</b> Same as the first argument value
           </p>
+
           <p conref="../shared/impala_common.xml#common/added_in_11"/>
         </dd>
 
@@ -449,27 +585,29 @@ END</codeblock>
       <dlentry id="nvl2" rev="2.9.0 IMPALA-5030">
 
         <dt>
-          <codeph>nvl2(type a, type ifNull, type ifNotNull)</codeph>
+          NVL2(type a, type ifNull, type ifNotNull)
         </dt>
 
         <dd>
-          <indexterm audience="hidden">nvl2() function</indexterm>
-          <b>Purpose:</b> Enhanced variant of the <codeph>nvl()</codeph> 
function. Tests an expression
-          and returns different result values depending on whether it is 
<codeph>NULL</codeph> or not.
-          If the first argument is <codeph>NULL</codeph>, returns the second 
argument.
-          If the first argument is not <codeph>NULL</codeph>, returns the 
third argument.
-          Equivalent to the <codeph>nvl2()</codeph> function from Oracle 
Database.
+          <b>Purpose:</b> Enhanced variant of the <codeph>NVL()</codeph> 
function. Tests an
+          expression and returns different result values depending on whether 
it is
+          <codeph>NULL</codeph> or not. If the first argument is 
<codeph>NULL</codeph>, returns
+          the second argument. If the first argument is not 
<codeph>NULL</codeph>, returns the
+          third argument. Equivalent to the <codeph>NVL2()</codeph> function 
from Oracle
+          Database.
           <p>
             <b>Return type:</b> Same as the first argument value
           </p>
+
           <p conref="../shared/impala_common.xml#common/added_in_290"/>
+
           <p conref="../shared/impala_common.xml#common/example_blurb"/>
+
           <p>
-            The following examples show how a query can use special indicator 
values
-            to represent null and not-null expression values. The first 
example tests
-            an <codeph>INT</codeph> column and so uses special integer values.
-            The second example tests a <codeph>STRING</codeph> column and so 
uses
-            special string values.
+            The following examples show how a query can use special indicator 
values to
+            represent null and not-null expression values. The first example 
tests an
+            <codeph>INT</codeph> column and so uses special integer values. 
The second example
+            tests a <codeph>STRING</codeph> column and so uses special string 
values.
           </p>
 <codeblock>
 select x, nvl2(x, 999, 0) from nvl2_demo;
@@ -499,22 +637,29 @@ select s, nvl2(s, 'is not null', 'is null') from 
nvl2_demo;
       <dlentry rev="1.3.0" id="zeroifnull">
 
         <dt>
-          <codeph>zeroifnull(<varname>numeric_expr</varname>)</codeph>
+          ZEROIFNULL(type numeric_expr)
         </dt>
 
-        <dd><b>Purpose:</b> Returns 0 if the numeric expression evaluates to
-            <codeph>NULL</codeph>, otherwise returns the result of the
-          expression. <p>
-            <b>Usage notes:</b> Used to avoid unexpected results due to
-            unexpected propagation of <codeph>NULL</codeph> values in numeric
-            calculations. Serves as shorthand for a more elaborate
-              <codeph>CASE</codeph> expression, to simplify porting SQL with
-            vendor extensions to Impala. </p>
-          <p><b>Return type:</b> Same type as the input argument </p>
+        <dd>
+          <b>Purpose:</b> Returns 0 if the numeric expression evaluates to
+          <codeph>NULL</codeph>, otherwise returns the result of the 
expression.
+          <p>
+            <b>Usage notes:</b> Used to avoid unexpected results due to 
unexpected propagation
+            of <codeph>NULL</codeph> values in numeric calculations. Serves as 
shorthand for a
+            more elaborate <codeph>CASE</codeph> expression, to simplify 
porting SQL with vendor
+            extensions to Impala.
+          </p>
+
+          <p>
+            <b>Return type:</b> Same type as the input argument
+          </p>
+
           <p conref="../shared/impala_common.xml#common/added_in_130"/>
         </dd>
 
       </dlentry>
     </dl>
+
   </conbody>
+
 </concept>

Reply via email to