trafodion-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From svar...@apache.org
Subject [04/42] incubator-trafodion git commit: Rechecking of asciidoc conversion due to weird Windows10 upgrade.
Date Thu, 14 Jan 2016 18:18:08 GMT
http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/859a7e4c/docs/sql_reference/source/Trafodion_SQL_Reference_Manual.xml
----------------------------------------------------------------------
diff --git a/docs/sql_reference/source/Trafodion_SQL_Reference_Manual.xml b/docs/sql_reference/source/Trafodion_SQL_Reference_Manual.xml
deleted file mode 100755
index 351df80..0000000
--- a/docs/sql_reference/source/Trafodion_SQL_Reference_Manual.xml
+++ /dev/null
@@ -1,37555 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-* @@@ START COPYRIGHT @@@                                                       
-*
-* 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
-* regarding copyright ownership.  The ASF licenses this file
-* to you under the Apache License, Version 2.0 (the
-* "License"); you may not use this file except in compliance
-* with the License.  You may obtain a copy of the License at
-*
-*   http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing,
-* software distributed under the License is distributed on an
-* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-* KIND, either express or implied.  See the License for the
-* specific language governing permissions and limitations
-* under the License.
-*
-* @@@ END COPYRIGHT @@@
--->
-
-<!--Arbortext, Inc., 1988-2014, v.4002-->
-<!DOCTYPE book PUBLIC "-//Apache Software Foundation (ASF)//DTD DocBook Extension//EN"
- "ess.dtd">
-<book>
-<title>Trafodion SQL Reference Manual</title>
-<bookinfo>
-<title>Trafodion SQL Reference Manual</title>
-<edition>Trafodion Release 1.1.0</edition><pubsnumber>T775-110-001</pubsnumber>
-<pubdate>April 2015</pubdate>
-<abstract condition="hidden">
-<para>Last updated: 4/24/2015</para>
-</abstract>
-<copyright><year>2015</year><holder>Apache Software Foundation (ASF)
-</holder></copyright>
-<legalnotice>
-<!--WRITER'S NOTE: HP legal notice for open source release-->
-<title>Legal Notice</title>
-<para>The information contained herein is subject to change without
-notice. This documentation is distributed on an “AS IS” basis, without
-warranties or conditions of any kind, either express or implied. Nothing
-herein should be construed as constituting an additional warranty.
-HP shall not be liable for technical or editorial errors or omissions
-contained herein.</para><para>NOTICE REGARDING OPEN SOURCE SOFTWARE:
-Project Trafodion is licensed under the Apache License, Version 2.0
-(the "License"); you may not use software from Project Trafodion except
-in compliance with the License. You may obtain a copy of the License
-at <ulink url="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</ulink
->. Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.</para>
-<formalpara>
-<title>Acknowledgements</title>
-<para>Microsoft® and Windows® are U.S. registered trademarks of Microsoft
-Corporation. Java® is a registered trademark of Oracle and/or its
-affiliates.</para></formalpara>
-</legalnotice>
-</bookinfo>
-<preface>
-<title>About This Document</title>
-<para>This manual describes reference information about the syntax
-of SQL statements, functions, and other SQL language elements supported
-by the Trafodion project’s database software.</para>
-<para>Trafodion SQL statements and utilities are entered interactively
-or from script files using a client-based tool, such as the Trafodion
-Command Interface (TrafCI). To install and configure a client application
-that enables you to connect to and use a Trafodion database, see the <citetitle
->Trafodion Client Installation Guide</citetitle>.</para>
-<note>
-<para>In this manual, SQL language elements, statements, and clauses
-within statements are based on the ANSI SQL:1999 standard. </para>
-</note>
-<section>
-<title>Intended Audience</title>
-<para>This manual is intended for database administrators and application
-programmers who are using SQL to read, update, and create Trafodion
-SQL tables, which map to HBase tables, and to access native HBase<phrase
-> and Hive tables</phrase>.</para>
-<para>You should be familiar with structured query language (SQL)
-and with the American National Standard Database Language SQL:1999.</para>
-</section>
-<section>
-<title>New and Changed Information in This Edition</title>
-<para>This edition includes updates for these new features:</para>
-<informaltable colsep="0" frame="none" rowsep="0">
-<tgroup cols="2" tgroupstyle="TI  inline table">
-<colspec colwidth="1.00*"/>
-<colspec colwidth="1.00*"/>
-<thead>
-<row><entry><emphasis role="bold">New Feature</emphasis></entry><entry
-><emphasis role="bold">Location in the Manual</emphasis></entry></row>
-</thead>
-<tbody>
-<row><entry>On Line Analytical Process (OLAP) window functions</entry>
-<entry><itemizedlist>
-<listitem><para><xref linkend="olapfunc" role="select:quotedtitle page"
-/></para></listitem>
-</itemizedlist></entry></row>
-<row><entry>Ability to cancel DDL, update statistics, and additional
-child query operations in addition to DML statements</entry><entry
-><itemizedlist>
-<listitem><para><xref linkend="Control-Query-Cancel"
-role="select:quotedtitle page"/></para></listitem>
-</itemizedlist></entry></row>
-<row><entry>Authorization required to run the CONTROL QUERY CANCEL
-Statement</entry><entry><itemizedlist>
-<listitem><para><xref linkend="Control-Query-Cancel"
-role="select:quotedtitle page"/></para></listitem>
-</itemizedlist></entry></row>
-<row><entry>Ability to grant privileges on behalf of a role using
-the GRANTED BY clause. </entry><entry><itemizedlist>
-<listitem><para><xref linkend="GrantCompPriv_stmt"
-role="select:quotedtitle page"/></para></listitem>
-<listitem><para><xref linkend="i1068219" role="select:quotedtitle page"
-/></para></listitem>
-</itemizedlist></entry></row>
-<row><entry>Authorization required for all SHOWDDL commands</entry>
-<entry><itemizedlist>
-<listitem><para><xref linkend="showddl" role="select:quotedtitle page"
-/></para></listitem>
-<listitem><para><xref linkend="SHOWDDL_SCHEMA"
-role="select:quotedtitle page"/></para></listitem>
-</itemizedlist></entry></row>
-<row><entry>Ability to display the DDL syntax of a library object
-using the SHOWDDL LIBRARY command</entry><entry><itemizedlist>
-<listitem><para><xref linkend="showddl" role="select:quotedtitle page"
-/></para></listitem>
-</itemizedlist></entry></row>
-<row><entry>Listing of HBase objects using the GET HBASE OBJECTS command
-through an SQL interface</entry><entry><itemizedlist>
-<listitem><para><xref linkend="GET-HBASE-OBJECTS-Statement"
-role="select:quotedtitle page"/></para></listitem>
-</itemizedlist></entry></row>
-</tbody>
-</tgroup>
-</informaltable>
-</section>
-<section>
-<title>Document Organization</title>
-<informaltable frame="topbot">
-<tgroup cols="2" colsep="0" rowsep="0">
-<colspec colname="col3"/>
-<colspec colname="col4"/>
-<thead>
-<row rowsep="1" valign="bottom"><entry align="left" valign="bottom"
->Chapter or Appendix</entry><entry align="left" valign="bottom">Description</entry>
-</row>
-</thead>
-<tbody>
-<row><entry><xref linkend="i1012274"
-role="select:quotedtitle label page"/></entry><entry>Introduces Trafodion
-SQL and covers topics such as data consistency, transaction management,
-and ANSI compliance.</entry></row>
-<row><entry><xref linkend="i1076008"
-role="select:quotedtitle label page"/></entry><entry>Describes the
-SQL statements supported by Trafodion SQL.</entry></row>
-<row><entry><xref linkend="i1077886"
-role="select:quotedtitle label page"/></entry><entry>Describes the
-SQL utilities supported by Trafodion SQL.</entry></row>
-<row><entry><xref linkend="i1008163"
-role="select:quotedtitle label page"/></entry><entry>Describes parts
-of the language, such as database objects, data types, expressions,
-identifiers, literals, and predicates, which occur within the syntax
-of Trafodion SQL statements.</entry></row>
-<row><entry><xref linkend="i1004213"
-role="select:quotedtitle label page"/></entry><entry>Describes clauses
-used by Trafodion SQL statements.</entry></row>
-<row><entry><xref linkend="i1056860"
-role="select:quotedtitle label page"/></entry><entry>Describes specific
-functions and expressions that you can use in Trafodion SQL statements.</entry>
-</row>
-<row><entry><xref linkend="SQLRuntimeStats"
-role="select:quotedtitle label page"/></entry><entry>Describes how
-to gather statistics for active queries or for the Runtime Management
-System (RMS) and describes the RMS counters that are returned.</entry>
-</row>
-<row><entry><xref linkend="olapfunc"
-role="select:quotedtitle label page"/></entry><entry>Describes specific
-on line analytical processing functions.</entry></row>
-<row condition="hidden"><entry><xref linkend="mappingtbls"
-role="select:quotedtitle label page"/></entry><entry>Lists mappings
-for the UCS2 character set.</entry></row>
-<row><entry><xref linkend="i1003045"
-role="select:quotedtitle label page"/></entry><entry>Lists the words
-that are reserved in Trafodion SQL.</entry></row>
-<row><entry><xref linkend="CQD_Attributes"
-role="select:quotedtitle label page"/></entry><entry>Describes the
-Control Query Default (CQD) attributes that are supported in a Trafodion
-SQL environment.</entry></row>
-<row><entry><xref linkend="i1003125"
-role="select:quotedtitle label page"/></entry><entry>Describes limits
-in Trafodion SQL.</entry></row>
-<row condition="hidden"><entry><xref linkend="i1005787"
-role="select:quotedtitle label page"/></entry><entry>Describes how
-Trafodion SQL conforms to the ANSI standard.</entry></row>
-</tbody>
-</tgroup>
-</informaltable>
-</section>
-<section>
-<title>Notation Conventions</title>
-<section>
-<title>General Syntax Notation</title>
-<para><!--WRITER'S NOTE: Edit this list, deleting headings and discussions of notations that don't apply to your manual and adding any new ones you might need. If you need to follow a syntax standard other than the Neoview standard (for example, in manuals using a programming language, where uppercase versus lowercase is significant), modify the list as needed. -->This
-list summarizes the notation conventions for syntax presentation in
-this manual.</para>
-<variablelist>
-<varlistentry><term>UPPERCASE LETTERS</term>
-<listitem><para>Uppercase letters indicate keywords and reserved words.
- Type these items exactly as shown.  Items not enclosed in brackets
-are required.  For example:</para><para>SELECT</para>
-</listitem>
-</varlistentry>
-<varlistentry><term><replaceable>Italic Letters</replaceable></term>
-<listitem><para>Italic letters, regardless of font, indicate variable
-items that you supply.  Items not enclosed in brackets are required.
- For example:</para><para><replaceable>file-name</replaceable></para>
-</listitem>
-</varlistentry>
-<varlistentry><term><computeroutput>Computer Type</computeroutput
-></term>
-<listitem><para>Computer type letters within text indicate case-sensitive
-keywords and reserved words. Type these items exactly as shown. Items
-not enclosed in brackets are required. For example:</para>
-<programlisting>
-myfile.sh
-</programlisting>
-</listitem>
-</varlistentry>
-<varlistentry><term><userinput>Bold Text</userinput></term>
-<listitem><para>Bold text in an example indicates user input typed
-at the terminal.  For example:</para>
-<programlisting>
-ENTER RUN CODE
-
-?<userinput>123</userinput>
-CODE RECEIVED:      123.00
-</programlisting>
-<para>The user must press the Return key after typing the input.</para>
-</listitem>
-</varlistentry>
-<varlistentry><term>[  ]  Brackets</term>
-<listitem><para>Brackets enclose optional syntax items. For example:</para>
-<programlisting>
-DATETIME [<replaceable>start-field</replaceable> TO] <replaceable
->end-field</replaceable>
-</programlisting>
-<para>A group of items enclosed in brackets is a list from which you
-can choose one item or none. The items in the list can be arranged
-either vertically, with aligned brackets on each side of the list,
-or horizontally, enclosed in a pair of brackets and separated by vertical
-lines. For example:</para>
-<programlisting>
-DROP VIEW <replaceable>view</replaceable> [RESTRICT]
-                   [CASCADE]
-</programlisting>
-<programlisting>
-DROP VIEW <replaceable>view</replaceable> [ RESTRICT | CASCADE ]
-</programlisting>
-</listitem>
-</varlistentry>
-<varlistentry><term>{  }  Braces</term>
-<listitem><para>Braces enclose required syntax items. For example:</para>
-<programlisting>
-FROM { <replaceable>grantee</replaceable>[, <replaceable>grantee</replaceable
->]...}
-</programlisting>
-<para>A group of items enclosed in braces is a list from which you
-are required to choose one item. The items in the list can be arranged
-either vertically, with aligned braces on each side of the list, or
-horizontally, enclosed in a pair of braces and separated by vertical
-lines. For example:</para>
-<programlisting>
-INTERVAL { <replaceable>start-field</replaceable> TO <replaceable
->end-field</replaceable> }
-         { <replaceable>single-field</replaceable> }
-</programlisting>
-<programlisting>
-INTERVAL { <replaceable>start-field</replaceable> TO <replaceable
->end-field</replaceable>  | <replaceable>single-field</replaceable
-> }
-</programlisting>
-</listitem>
-</varlistentry>
-<varlistentry><term>|  Vertical Line</term>
-<listitem><para>A vertical line separates alternatives in a horizontal
-list that is enclosed in brackets or braces. For example:</para>
-<programlisting>
-{<replaceable>expression</replaceable> | NULL}
-</programlisting>
-</listitem>
-</varlistentry>
-<varlistentry><term>…  Ellipsis</term>
-<listitem><para>An ellipsis immediately following a pair of brackets
-or braces indicates that you can repeat the enclosed sequence of syntax
-items any number of times. For example:</para>
-<programlisting>
-ATTRIBUTE[S] <replaceable>attribute</replaceable> [, <replaceable
->attribute</replaceable>]...
-</programlisting>
-<programlisting>
-{, <replaceable>sql-expression</replaceable>}...
-</programlisting>
-<para>An ellipsis immediately following a single syntax item indicates
-that you can repeat that syntax item any number of times. For example:</para>
-<programlisting>
-<replaceable>expression-n</replaceable>…
-</programlisting>
-</listitem>
-</varlistentry>
-<varlistentry><term>Punctuation</term>
-<listitem><para>Parentheses, commas, semicolons, and other symbols
-not previously described must be typed as shown. For example:</para>
-<programlisting>
-DAY (<replaceable>datetime-expression</replaceable>)
-</programlisting>
-<programlisting>
-@<replaceable>script-file</replaceable>
-</programlisting>
-<para>Quotation marks around a symbol such as a bracket or brace indicate
-that the symbol is a required character that you must type as shown.
-For example:</para>
-<programlisting>
-"[" ANY <replaceable>N</replaceable> "]" | "[" FIRST <replaceable
->N</replaceable> "]"
-</programlisting>
-<para>According to the previous syntax, you must include square brackets
-around ANY and FIRST clauses (for example, <literal>[ANY 10]</literal
-> or <literal>[FIRST 5]</literal>). Do not include the quotation marks.</para>
-</listitem>
-</varlistentry>
-<varlistentry><term>Item Spacing</term>
-<listitem><para>Spaces shown between items are required unless one
-of the items is a punctuation symbol such as a parenthesis or a comma.
-For example:</para>
-<programlisting>
-DAY (<replaceable>datetime-expression</replaceable>)
-</programlisting>
-<programlisting>
-DAY(<replaceable>datetime-expression</replaceable>)
-</programlisting>
-<para>If no space exists between two items, spaces are not permitted.
-In this example, no spaces are permitted between the period and any
-other items:</para>
-<programlisting>
-<replaceable>myfile</replaceable>.sh
-</programlisting>
-</listitem>
-</varlistentry>
-<varlistentry><term>Line Spacing</term>
-<listitem><para>If the syntax of a command is too long to fit on a
-single line, each continuation line is indented three spaces and is
-separated from the preceding line by a blank line. This spacing distinguishes
-items in a continuation line from items in a vertical list of selections.
-For example:</para>
-<programlisting>
-<replaceable>match-value</replaceable> [NOT] LIKE <replaceable>pattern</replaceable
-> 
-
-   [ESCAPE <replaceable>esc-char-expression</replaceable>]
-</programlisting>
-</listitem>
-</varlistentry>
-</variablelist>
-</section>
-</section>
-<section condition="hidden" id="Related_Info">
-<title>Related Information</title>
-<para>This manual is part of the Trafodion documentation library. <phrase
-condition="hidden">For a list of manuals available in this release,
-see the <ulink
-url="https://sea-wiki.hpl.hp.com/wiki/index.php/Documentation">Documentation
-page in the Trafodion wiki</ulink>.</phrase></para>
-</section>
-<section>
-<title>Publishing History</title>
-<informaltable>
-<tgroup cols="3">
-<colspec colwidth="0.68*"/>
-<colspec colwidth="1.52*"/>
-<colspec colwidth="0.80*"/>
-<thead>
-<row><entry>Part Number</entry><entry>Product Version</entry><entry
->Publication Date</entry></row>
-</thead>
-<tbody>
-<row><entry>T775-110-001</entry><entry><para>Trafodion Release 1.1.0</para
-></entry><entry>April 2015</entry></row>
-<row><entry>T775-100-001</entry><entry><para>Trafodion Release 1.0.0</para
-></entry><entry>January 2015</entry></row>
-<row><entry>T775-090-001</entry><entry><para>Trafodion Release 0.9.0
-Beta</para></entry><entry>October 2014</entry></row>
-<row><entry>T775-080-003</entry><entry><para>Trafodion Release 0.8.0
-Beta</para><para>This edition of the manual includes updates to address <ulink
-url="https://bugs.launchpad.net/bugs/1354228">Launchpad bug 1354228</ulink
->. See the <xref linkend="i1063425" role="select:quotedtitle page"
-/>.</para></entry><entry>August 2014</entry></row>
-<row><entry>T775-080-002</entry><entry><para>Trafodion Release 0.8.0
-Beta</para><para>This edition of the manual includes updates to address <ulink
-url="https://bugs.launchpad.net/bugs/1352479">Launchpad bug 1352479</ulink
->. See the <xref linkend="i1008894" role="select:quotedtitle page"
-/>.</para></entry><entry>August 2014</entry></row>
-<row><entry>T775-080-001</entry><entry>Trafodion Release 0.8.0 Beta</entry>
-<entry>June 2014</entry></row>
-</tbody>
-</tgroup>
-</informaltable>
-</section>
-<section>
-<title>We Encourage Your Comments</title>
-<para>The Trafodion community encourages your comments concerning
-this document. We are committed to providing documentation that meets
-your needs. Send any errors found, suggestions for improvement, or
-compliments to:</para>
-<para><email>trafodion-documentation@lists.launchpad.net</email></para>
-<para>Include the document title, part number, and any comment, error
-found, or suggestion for improvement you have concerning this document.</para>
-</section>
-</preface>
-<chapter id="i1012274">
-<title>Introduction</title>
-<para>The Trafodion SQL database software allows you to use SQL statements,
-which comply closely to ANSI SQL:1999, to access data in Trafodion
-SQL tables, which map to HBase tables, and to access native HBase
-tables<phrase> and Hive tables</phrase>.</para>
-<para>This introduction describes:</para>
-<itemizedlist>
-<listitem><para><xref linkend="i1010744" role="select:quotedtitle"
-/></para></listitem>
-<listitem><para><xref linkend="SQL-Access-HBase"
-role="select:quotedtitle"/></para></listitem>
-<listitem><para><xref linkend="SQL-Access-Hive"
-role="select:quotedtitle"/></para></listitem>
-<listitem><para><xref linkend="i1009133" role="select:quotedtitle"
-/></para></listitem>
-<listitem condition="hidden"><para><xref linkend="i1016946"
-role="select:quotedtitle"/></para></listitem>
-<listitem><para><xref linkend="i1009606" role="select:quotedtitle"
-/></para></listitem>
-<listitem><para><xref linkend="i1004713" role="select:quotedtitle"
-/></para></listitem>
-<listitem><para><xref linkend="i1011471" role="select:quotedtitle"
-/></para></listitem>
-</itemizedlist>
-<para>Other sections of this manual describe the syntax and semantics
-of individual statements, commands, and language elements.</para>
-<section id="i1010744">
-<title>SQL Language</title>
-<para>The SQL language consists of statements and other language elements
-that you can use to access SQL databases. For descriptions of individual
-SQL statements, see <xref linkend="i1076008"
-role="select:quotedtitle label page"/>.</para>
-<para>SQL language elements are part of statements and commands and
-include data types, expressions, functions, identifiers, literals,
-and predicates. For more information, see <xref linkend="i1008163"
-role="select:quotedtitle label page"/> and <xref linkend="i1004213"
-role="select:quotedtitle label page"/>. For information on specific
-functions and expressions, see <xref linkend="i1056860"
-role="select:quotedtitle label page"/><phrase> and <xref
-linkend="olapfunc" role="select:quotedtitle label page"/></phrase
->.</para>
-</section>
-<section id="SQL-Access-HBase">
-<title>Using Trafodion SQL to Access HBase Tables</title>
-<para>You can use Trafodion SQL statements to read, update, and create
-HBase tables.</para>
-<itemizedlist>
-<listitem><para><xref linkend="Initializing-Trafodion-Metadata"
-role="select:quotedtitle page"/></para></listitem>
-<listitem><para><xref linkend="Types-HBase-Access"
-role="select:quotedtitle page"/></para></listitem>
-<listitem><para><xref
-linkend="Comparison-TrafodionSQLTables-HBaseTables"
-role="select:quotedtitle page"/></para></listitem>
-<listitem><para><xref linkend="Supported-SQL-HBase"
-role="select:quotedtitle page"/></para></listitem>
-</itemizedlist>
-<para>For a list of Control Query Default (CQD) settings for the HBase
-environment, see <xref linkend="HBase-CQDs"
-role="select:quotedtitle page"/>.</para>
-<section id="Initializing-Trafodion-Metadata">
-<title>Initializing the Trafodion Metadata</title>
-<para>Before using SQL statements for the first time to access HBase
-tables, you will need to initialize the Trafodion metadata. To initialize
-the Trafodion metadata, run this command:</para>
-<programlisting>initialize trafodion;</programlisting>
-</section>
-<section id="Types-HBase-Access">
-<title>Ways to Access HBase Tables</title>
-<para>Trafodion SQL supports these ways to access HBase tables:</para>
-<itemizedlist>
-<listitem><para><xref linkend="Accessing-Trafodion-SQL-Tables"
-role="select:quotedtitle page"/></para></listitem>
-<listitem><para><xref linkend="Cell-Per-Row-Access-HBase"
-role="select:quotedtitle page"/></para></listitem>
-<listitem><para><xref linkend="Rowwise-Access-HBase"
-role="select:quotedtitle page"/></para></listitem>
-</itemizedlist>
-<section id="Accessing-Trafodion-SQL-Tables">
-<title>Accessing Trafodion SQL Tables</title>
-<para>A Trafodion SQL table is a relational SQL table generated by
-a CREATE TABLE statement and mapped to an HBase table. Trafodion SQL
-tables have regular ANSI names in the catalog TRAFODION. A Trafodion
-SQL table name can be a fully qualified ANSI name of the form <literal
->TRAFODION.<replaceable>schema-name.object-name</replaceable></literal
->. </para>
-<para>To access a Trafodion SQL table, specify its ANSI table name
-in a Trafodion SQL statement, similar to how you would specify an
-ANSI table name when running SQL statements in a relational database.
-For example:</para>
-<programlisting>CREATE TABLE trafodion.sales.odetail
-  ( ordernum NUMERIC (6) UNSIGNED NO DEFAULT NOT NULL,
-    partnum NUMERIC (4) UNSIGNED NO DEFAULT NOT NULL,
-    unit_price NUMERIC (8,2) NO DEFAULT NOT NULL,
-    qty_ordered NUMERIC (5) UNSIGNED NO DEFAULT NOT NULL,
-    PRIMARY KEY (ordernum, partnum) );
-
-INSERT INTO trafodion.sales.odetail VALUES ( 900000, 7301, 425.00, 100 );
-
-SET SCHEMA trafodion.sales;
-SELECT * FROM odetail;</programlisting>
-<para>For more information about Trafodion SQL tables, see <xref
-linkend="Comparison-TrafodionSQLTables-HBaseTables"
-role="select:quotedtitle page"/> and <xref linkend="i1019224"
-role="select:quotedtitle page"/>.</para>
-</section>
-<section id="Cell-Per-Row-Access-HBase">
-<title>Cell-Per-Row Access to HBase Tables (Technology Preview)</title>
-<note>
-<para>This is a <emphasis>Technology Preview (Complete But Not Tested)</emphasis
-> feature, meaning that it is functionally complete but has not been
-tested or debugged. For more information about what <emphasis>Technology
-Preview</emphasis> means, see the <ulink
-url="https://wiki.trafodion.org/wiki/index.php/Technology_Preview_Features"
->Technology Preview Features</ulink> page on the Trafodion wiki.</para>
-</note>
-<para>To access HBase data using cell-per-row mode, specify the schema <literal
->HBASE."_CELL_"</literal> and the full ANSI name of the table as a
-delimited table name. You can specify the name of any HBase table,
-regardless of whether it was created through Trafodion SQL. For example:</para>
-<programlisting>select * from hbase."_CELL_"."TRAFODION.MYSCH.MYTAB";
-select * from hbase."_CELL_"."table_created_in_HBase";</programlisting>
-<para>All tables accessed through this schema have the same column
-layout:</para>
-<programlisting>>>invoke hbase."_CELL_"."table_created_in_HBase";
-  (
-    ROW_ID            VARCHAR(100)  ...
-  , COL_FAMILY        VARCHAR(100)  ...
-  , COL_NAME          VARCHAR(100)  ...
-  , COL_TIMESTAMP     LARGEINT      ...
-  , COL_VALUE         VARCHAR(1000) ...
-  )
-  PRIMARY KEY (ROW_ID)
->>select * from hbase."_CELL_"."mytab";</programlisting>
-</section>
-<section id="Rowwise-Access-HBase">
-<title>Rowwise Access to HBase Tables (Technology Preview)</title>
-<note>
-<para>This is a <emphasis>Technology Preview (Complete But Not Tested)</emphasis
-> feature, meaning that it is functionally complete but has not been
-tested or debugged.  For more information about what <emphasis>Technology
-Preview</emphasis> means, see the <ulink
-url="https://wiki.trafodion.org/wiki/index.php/Technology_Preview_Features"
->Technology Preview Features</ulink> page on the Trafodion wiki.</para>
-</note>
-<para>To access HBase data using rowwise mode, specify the schema <literal
->HBASE."_ROW_"</literal> and the full ANSI name of the table as a
-delimited table name. You can specify the name of any HBase table,
-regardless of whether it was created through Trafodion SQL. For example:</para>
-<programlisting>select * from hbase."_ROW_"."TRAFODION.MYSCH.MYTAB";
-select * from hbase."_ROW_"."table_created_in_HBase";</programlisting>
-<para>All column values of the row are returned as a single, big varchar:</para>
-<programlisting>>>invoke hbase."_ROW_"."mytab";
-  (
-    ROW_ID            VARCHAR(100)   ...
-  , COLUMN_DETAILS    VARCHAR(10000) ...
-  )
-  PRIMARY KEY (ROW_ID)
->>select * from hbase."_ROW_"."mytab";</programlisting>
-</section>
-</section>
-<section id="Comparison-TrafodionSQLTables-HBaseTables">
-<title>Trafodion SQL Tables Versus Native HBase Tables</title>
-<para>Trafodion SQL tables have many advantages over regular HBase
-tables:</para>
-<itemizedlist>
-<listitem><para>They can be made to look like regular, structured
-SQL tables with fixed columns.</para></listitem>
-<listitem><para>They support the usual SQL data types supported in
-relational databases.</para></listitem>
-<listitem><para>They support compound keys, unlike HBase tables that
-have a single row key (a string).</para></listitem>
-<listitem><para>They support indexes.</para></listitem>
-<listitem><para>They support <emphasis>salting</emphasis>, which is
-a technique of adding a hash value of the row key as a key prefix
-to avoid hot spots for sequential keys. For the syntax, see the <xref
-linkend="i1063425" role="select:quotedtitle page"/>.</para></listitem>
-</itemizedlist>
-<para>The problem with Trafodion SQL tables is that they use a fixed
-format to represent column values, making it harder for native HBase
-applications to access them. Also, they have a fixed structure, so
-users lose the flexibility of dynamic columns that comes with HBase.</para>
-</section>
-<section id="Supported-SQL-HBase">
-<title>Supported SQL Statements With HBase Tables</title>
-<para>You can use these SQL statements with HBase tables:</para>
-<itemizedlist>
-<listitem><para><xref linkend="i1008894" role="select:quotedtitle page"
-/></para></listitem>
-<listitem><para><xref linkend="i1008135" role="select:quotedtitle page"
-/></para></listitem>
-<listitem><para><xref linkend="i1073628" role="select:quotedtitle page"
-/></para></listitem>
-<listitem><para><xref linkend="i1007032" role="select:quotedtitle page"
-/></para></listitem>
-<listitem><para><xref linkend="i1062270" role="select:quotedtitle page"
-/></para></listitem>
-<listitem><para><xref linkend="GET-Statement"
-role="select:quotedtitle page"/></para></listitem>
-<listitem><para><xref linkend="INVOKE-Statement"
-role="select:quotedtitle page"/></para></listitem>
-<listitem><para><xref linkend="i1004893" role="select:quotedtitle page"
-/></para></listitem>
-<listitem><para><xref linkend="i1075725" role="select:quotedtitle page"
-/></para></listitem>
-<listitem><para><xref linkend="i1063425" role="select:quotedtitle page"
-/></para></listitem>
-<listitem><para><xref linkend="i1076221" role="select:quotedtitle page"
-/></para></listitem>
-<listitem><para><xref linkend="i1007408" role="select:quotedtitle page"
-/></para></listitem>
-<listitem><para><xref linkend="i1007625" role="select:quotedtitle page"
-/></para></listitem>
-<listitem><para><xref linkend="i1007707" role="select:quotedtitle page"
-/></para></listitem>
-<listitem><para><xref linkend="i1068219" role="select:quotedtitle page"
-/></para></listitem>
-<listitem><para><xref linkend="i1059131" role="select:quotedtitle page"
-/></para></listitem>
-</itemizedlist>
-</section>
-</section>
-<section id="SQL-Access-Hive">
-<title>Using Trafodion SQL to Access Hive Tables</title>
-<para>You can use Trafodion SQL statements to access Hive tables.</para>
-<itemizedlist>
-<listitem><para><xref linkend="ANSI-Names-Hive-Tables"
-role="select:quotedtitle page"/></para></listitem>
-<listitem><para><xref linkend="Type-Mapping-Hive"
-role="select:quotedtitle page"/></para></listitem>
-<listitem><para><xref linkend="Supported-SQL-Hive"
-role="select:quotedtitle page"/></para></listitem>
-</itemizedlist>
-<para>For a list of Control Query Default (CQD) settings for the Hive
-environment, see <xref linkend="Hive-CQDs"
-role="select:quotedtitle page"/>.</para>
-<section id="ANSI-Names-Hive-Tables">
-<title>ANSI Names for Hive Tables</title>
-<para>Hive tables appear in the Trafodion Hive ANSI namespace in a
-special catalog and schema named HIVE.HIVE. <phrase condition="hidden"
->You can change those default catalog and schema names using the HIVE_CATALOG
-and HIVE_DEFAULT_SCHEMA CQDs. For more information, see <xref
-linkend="Hive-CQDs" role="select:quotedtitle page"/>.</phrase> </para>
-<para>To select from a Hive table named T, <phrase condition="hidden"
->set the CQD MODE_SEAHIVE to ‘ON’ and </phrase>specify an implicit
-or explicit name, such as HIVE.HIVE.T, in a Trafodion SQL statement.
-This example should work if a Hive table named T has already been
-defined:</para>
-<programlisting>set schema hive.hive;
-<literal condition="hidden">cqd mode_seahive 'ON'; -- turns on Hive functionality
-</literal>cqd hive_max_string_length '20'; -- creates a more readable display
-select * from t; -- implicit table name
-set schema trafodion.seabase;
-select * from hive.hive.t; -- explicit table name</programlisting>
-</section>
-<section id="Type-Mapping-Hive">
-<title>Type Mapping From Hive to Trafodion SQL</title>
-<para>Trafodion performs the following data-type mappings:</para>
-<informaltable frame="all">
-<tgroup cols="2" colsep="1" rowsep="1">
-<colspec colname="col1"/>
-<colspec colname="col2"/>
-<thead>
-<row rowsep="1" valign="bottom"><entry align="left" valign="bottom"
->Hive Type</entry><entry align="left" valign="bottom">Trafodion SQL
-Type</entry></row>
-</thead>
-<tbody>
-<row><entry>tinyint</entry><entry>smallint</entry></row>
-<row><entry>smallint</entry><entry>smallint</entry></row>
-<row><entry>int</entry><entry>int</entry></row>
-<row><entry>bigint</entry><entry>largeint</entry></row>
-<row><entry>string</entry><entry>varchar(<replaceable>n</replaceable
-> bytes) character set utf8<footnote>
-<para>The value <replaceable>n</replaceable> is determined by CQD
-HIVE_MAX_STRING_LENGTH. <phrase condition="hidden">When CQD HIVE_DEFAULT_CHARSET
-is set to "ISO88591", Trafodion uses VARCHAR(<replaceable>n</replaceable
->) CHARACTER SET ISO88591 instead. </phrase>See <xref
-linkend="Hive-CQDs" role="select:quotedtitle page"/>.</para>
-</footnote></entry></row>
-<row><entry>float</entry><entry>real</entry></row>
-<row><entry>double</entry><entry>float(54)</entry></row>
-<row><entry>timestamp</entry><entry>timestamp(6)<footnote>
-<para>Hive supports timestamps with nanosecond resolution (precision
-of 9). Trafodion SQL supports only microsecond resolution (precision
-6).</para>
-</footnote></entry></row>
-</tbody>
-</tgroup>
-</informaltable>
-</section>
-<section id="Supported-SQL-Hive">
-<title>Supported SQL Statements With Hive Tables</title>
-<para>You can use these SQL statements with Hive tables:</para>
-<itemizedlist>
-<listitem><para><xref linkend="i1008894" role="select:quotedtitle page"
-/></para></listitem>
-<listitem><para><xref linkend="LOAD-Statement"
-role="select:quotedtitle page"/></para></listitem>
-<listitem condition="hidden"><para>INSERT OVERWRITE TABLE (Hive only)</para>
-</listitem>
-<listitem><para>GET TABLES (See the <xref linkend="GET-Statement"
-role="select:quotedtitle page"/>.)</para></listitem>
-<listitem><para><xref linkend="INVOKE-Statement"
-role="select:quotedtitle page"/></para></listitem>
-</itemizedlist>
-</section>
-</section>
-<section id="i1009133">
-<title>Data Consistency and Access Options</title>
-<indexterm><primary>Access options</primary><secondary>DML statements
-use of</secondary></indexterm>
-<para>Access options for DML statements affect the consistency of
-the data that your query accesses.</para>
-<para>For any DML statement, you specify access options by using the <literal
->FOR <replaceable>option</replaceable> ACCESS</literal> clause and,
-for a SELECT statement, by using this same clause, you can also specify
-access options for individual tables and views referenced in the FROM
-clause. </para>
-<indexterm><primary>Access options</primary><secondary
-sortas="[Access options:000">summary of</secondary></indexterm>
-<para>The possible settings for <replaceable>option</replaceable> in
-a DML statement are:</para>
-<informaltable colsep="0" frame="none" rowsep="0">
-<tgroup cols="2" tgroupstyle="DL  desc list">
-<tbody>
-<row><entry><indexterm><primary>READ COMMITTED</primary></indexterm
-><xref linkend="i1029337" role="select:quotedtitle"/></entry><entry
->Specifies that the data accessed by the DML statement must be from
-committed rows. </entry></row>
-<row condition="hidden"><entry><indexterm><primary>READ UNCOMMITTED</primary>
-</indexterm><xref linkend="i1017046" role="select:quotedtitle"/></entry>
-<entry>Specifies that the data accessed by the SELECT statement need
-not be from committed rows. </entry></row>
-<row condition="hidden"><entry><xref linkend="i1004457"
-role="select:quotedtitle"/></entry><entry>Specifies that the DML statement
-and any concurrent process (accessing the same data) execute as if
-the statement and the other process had run serially rather than concurrently. </entry>
-</row>
-<row condition="hidden"><entry><xref linkend="i1010828"
-role="select:quotedtitle"/></entry><entry>Allows transactions to skip
-rows locked in a conflicting mode by another transaction. SKIP CONFLICT
-cannot be used in a SET TRANSACTION statement.</entry></row>
-</tbody>
-</tgroup>
-</informaltable>
-<para>The SQL default access option for DML statements is READ COMMITTED. </para>
-<para condition="hidden">The implementation for <indexterm><primary
->REPEATABLE READ</primary><secondary>and SERIALIZABLE</secondary>
-</indexterm>REPEATABLE READ and SERIALIZABLE access options is equivalent. </para>
-<para>For related information about transactions, see <xref
-linkend="i1012239" role="select:quotedtitle page"/>.</para>
-<section condition="hidden" id="i1017046">
-<title>READ UNCOMMITTED</title>
-<para><indexterm><primary>Access options</primary><secondary>READ
-UNCOMMITTED </secondary></indexterm>This option enables you to access
-locked data. READ UNCOMMITTED is not available for DML statements
-that modify the database. It is available only for a SELECT statement. </para>
-<para>READ UNCOMMITTED provides the lowest level of data consistency.
-A SELECT statement executing with this access option is allowed to:</para>
-<itemizedlist>
-<listitem><para>Read data modified by a concurrent process (sometimes
-called <replaceable>dirty reads</replaceable>)</para></listitem>
-<listitem><para>Read different committed values for the same item
-at different times or find that the item no longer exists (sometimes
-called <replaceable>nonrepeatable reads</replaceable>)</para></listitem>
-<listitem><para>Read different sets of committed values satisfying
-the same predicate at different times (sometimes called <replaceable
->phantoms</replaceable>)</para></listitem>
-</itemizedlist>
-</section>
-<section id="i1029337">
-<title>READ COMMITTED</title>
-<para><indexterm><primary>Access options</primary><secondary>READ
-COMMITTED</secondary></indexterm><indexterm><primary>Locking</primary>
-<secondary>READ COMMITTED access option</secondary></indexterm>This
-option allows you to access only committed data.</para>
-<para>The implementation requires that a lock can be acquired on the
-data requested by the DML statement—but does not actually lock the
-data, thereby reducing lock request conflicts. If a lock cannot be
-granted (implying that the row contains uncommitted data), the DML
-statement request waits until the lock in place is released.</para>
-<para>READ COMMITTED provides the next higher level of data consistency
-(compared to READ UNCOMMITTED). A statement executing with this access
-option does not allow dirty reads, but both nonrepeatable reads and
-phantoms are possible.</para>
-<para>READ COMMITTED provides sufficient consistency for any process
-that does not require a repeatable read capability.</para>
-<para>READ COMMITTED is the default isolation level.</para>
-</section>
-<section condition="hidden" id="i1004457">
-<title>SERIALIZABLE or REPEATABLE READ</title>
-<para><indexterm><primary>Access options</primary><secondary>SERIALIZABLE</secondary>
-</indexterm>This option locks<indexterm><primary>Locking</primary>
-<secondary>SERIALIZABLE access option</secondary></indexterm> all
-data accessed through the DML statement and holds the locks on data
-in tables until the end of any containing transaction.<indexterm>
-<primary>Locking</primary><secondary>REPEATABLE READ access option</secondary>
-</indexterm> </para>
-<para><indexterm><primary>SERIALIZABLE</primary></indexterm>SERIALIZABLE<indexterm>
-<primary>Isolation levels</primary><secondary>SERIALIZABLE</secondary>
-</indexterm> (or REPEATABLE READ) <indexterm><primary>Access options</primary>
-<secondary>REPEATABLE READ</secondary></indexterm>provides the highest
-level of data consistency. A statement executing with this access
-option does not allow dirty reads, nonrepeatable reads, or phantoms.</para>
-</section>
-<section condition="hidden" id="i1010828">
-<title>SKIP CONFLICT</title>
-<para><indexterm><primary>Access options</primary><secondary>SKIP
-CONFLICT</secondary></indexterm>This option allows transactions to
-skip rows locked in a conflicting mode by another transaction. <indexterm>
-<primary>SKIP CONFLICT</primary><secondary>publish/subscribe</secondary>
-</indexterm>SKIP CONFLICT is not supported at the transaction level.
-It can only be specified at the table or statement level. </para>
-</section>
-</section>
-<section condition="hidden" id="i1016946">
-<title>Database Integrity and Locking</title>
-<para>To protect the integrity of the database, Trafodion SQL provides
-locks on data. For example, Trafodion SQL locks a row when an executing
-process accesses a row to modify it. The lock ensures that no other
-process simultaneously modifies the same row. </para>
-<para>Default locking normally protects data but reduces concurrency.
-If your application has problems with lock contention, you might want
-to use options that control the characteristics of locks.</para>
-<para>Locks have these characteristics:</para>
-<itemizedlist>
-<listitem><para><xref linkend="i1004512" role="select:quotedtitle"
-/> (short or long)</para></listitem>
-<listitem><para><xref linkend="i1029444" role="select:quotedtitle"
-/> (table lock, subset of rows, or single row) </para></listitem>
-<listitem><para><xref linkend="i1004527" role="select:quotedtitle"
-/> (exclusive, shared, no lock)</para></listitem>
-<listitem><para><xref linkend="i1004541" role="select:quotedtitle"
-/> (transaction or process)</para></listitem>
-</itemizedlist>
-<section id="i1004512">
-<title>Lock Duration</title>
-<para><indexterm><primary>Locking</primary><secondary>duration</secondary>
-</indexterm>Lock duration controls how long a lock is held. You can
-specify lock duration for only the read portion of a statement. <indexterm>
-<primary>Access options</primary><secondary>SERIALIZABLE</secondary>
-</indexterm>You can use the LOCK TABLE statement to lock a table.
-Lock duration is also affected by whether you <indexterm><primary
->SERIALIZABLE</primary></indexterm>choose the <indexterm><primary
->Isolation levels</primary><secondary>SERIALIZABLE</secondary>
-</indexterm>SERIALIZABLE<indexterm><primary>Locking</primary><secondary
->SERIALIZABLE access option</secondary></indexterm> access option<indexterm>
-<primary>Locking</primary><secondary>SERIALIZABLE access option</secondary>
-</indexterm> for DML statements. This access option causes the maximum
-lock duration.</para>
-</section>
-<section id="i1029444">
-<title>Lock Granularity</title>
-<para><indexterm><primary>Locking</primary><secondary>granularity</secondary>
-</indexterm>Lock granularity controls the number of rows affected
-by a single lock. The level of granularity can be a table, a subset
-of rows, or a single row.</para>
-<para>You can control locks for the entire table with the LOCK TABLE
-statement. Otherwise, Trafodion SQL determines the granularity by
-considering the access option you specify, the table size and definition,
-and the estimated percentage of rows the query will access.</para>
-<para>Trafodion SQL can automatically increase the granularity of
-locks for a particular volume per transaction, depending on processing
-requirements. This increase in granularity is called lock escalation. </para>
-<para>Trafodion SQL can automatically increase the granularity of
-locks for a particular table partition, depending on processing requirements.
-This increase in granularity is called <indexterm><primary>Locking</primary>
-<secondary>escalation</secondary></indexterm>lock escalation. The
-number of locks before escalation is about 8,000, provided no conflicting
-lock exists. If a conflicting lock exists, escalation will occur anywhere
-between 8,000 and 100,000, at about 8,000 lock increments. If the
-lock conflict prevents lock escalation when the transaction hits the
-volume lock limit, or the volume lock table space is exhausted, locking
-errors will result. </para>
-</section>
-<section id="i1004527">
-<title>Lock Mode</title>
-<para><indexterm><primary>Locking</primary><secondary>modes</secondary>
-</indexterm>Lock mode controls access to locked data. You can specify
-lock mode only for rows that are read.</para>
-<para><indexterm><primary>SHARE lock mode</primary></indexterm>SHARE
-lock mode allows multiple users to lock and read the same data. <indexterm>
-<primary>Locking</primary><secondary>EXCLUSIVE lock mode</secondary>
-</indexterm>EXCLUSIVE lock<indexterm><primary>EXCLUSIVE lock mode</primary>
-</indexterm><indexterm><primary>Locking</primary><secondary>SHARE
-lock mode</secondary></indexterm>mode limits access to locked data
-to the lock holder and to other users who specify READ UNCOMMITTED
-(but not READ COMMITTED or SERIALIZABLE) access. Lock modes are the
-same when you choose READ COMMITTED or SERIALIZABLE access.</para>
-<para>Lock mode is sometimes determined by Trafodion SQL. SQL ensures
-that an exclusive lock is in effect for write operations and usually
-acquires a shared lock for operations that access data without modifying
-it. You choose lock mode in these instances: </para>
-<itemizedlist>
-<listitem><para>On the <indexterm><primary>Locking</primary><secondary
->LOCK TABLE statement</secondary></indexterm>LOCK TABLE statement,
-you can choose EXCLUSIVE or SHARE. </para></listitem>
-<listitem><para>On the <indexterm><primary>Locking</primary><secondary
->SELECT statement</secondary></indexterm>SELECT statement, you can
-specify IN EXCLUSIVE MODE or IN SHARE MODE.</para></listitem>
-</itemizedlist>
-</section>
-<section id="i1004541">
-<title>Lock Holder</title>
-<para><indexterm><primary>Locking</primary><secondary>holder</secondary>
-</indexterm><indexterm><primary>Locking</primary><secondary>release
-of</secondary></indexterm>Only the lock holder can release a lock.
-A transaction releases the locks it holds at the end of the transaction
-in either of these cases:</para>
-<itemizedlist>
-<listitem><para>Locks on data read using SERIALIZABLE access</para>
-</listitem>
-<listitem><para>Locks on rows updated</para></listitem>
-</itemizedlist>
-</section>
-</section>
-<section id="i1009606">
-<title>Transaction Management</title>
-<para>A transaction (a set of database changes that must be completed
-as a group) is the basic recoverable unit in case of a failure or
-transaction interruption. Transactions are controlled through client
-tools that interact with the database using ODBC or JDBC. The typical
-order of events is: </para>
-<procedure>
-<step><para>Transaction is started.</para></step>
-<step><para>Database changes are made.</para></step>
-<step><para>Transaction is committed.</para></step>
-</procedure>
-<para>If, however, the changes cannot be made or if you do not want
-to complete the transaction, you can abort the transaction so that
-the database is rolled back to its original state.</para>
-<para>This subsection discusses these considerations for transaction
-management:</para>
-<itemizedlist>
-<listitem condition="hidden"><para><xref linkend="i1017673"
-role="select:quotedtitle page"/></para></listitem>
-<listitem><para><xref linkend="i1009642" role="select:quotedtitle page"
-/></para></listitem>
-<listitem><para><xref linkend="i1009675" role="select:quotedtitle page"
-/></para></listitem>
-<listitem><para><xref linkend="i1009687" role="select:quotedtitle page"
-/></para></listitem>
-<listitem><para><xref linkend="i1027603" role="select:quotedtitle page"
-/></para></listitem>
-<listitem condition="hidden"><para><xref linkend="i1026505"
-role="select:quotedtitle page"/></para></listitem>
-<listitem><para><xref linkend="i1012239" role="select:quotedtitle page"
-/></para></listitem>
-<listitem condition="hidden"><para><xref linkend="transrollback"
-role="select:quotedtitle page"/></para></listitem>
-</itemizedlist>
-<section condition="hidden" id="i1017673">
-<title>Statement Atomicity</title>
-<indexterm><primary>Statement atomicity</primary><secondary>description
-of</secondary></indexterm>
-<para>To maintain database consistency, transactions must be controlled
-so that they complete successfully or are aborted. SQL does not automatically
-abort transactions unless something changed that requires work to
-be rolled back, such as a network problem in the middle of updating
-a row. </para>
-<para>SQL guarantees that an individual SQL statement within a transaction
-completes successfully or has no effect on the database. </para>
-<indexterm><primary>Statement atomicity</primary><secondary>automatic</secondary>
-</indexterm>
-<para>When an INSERT, UPDATE, or DELETE statement encounters an error,
-that transaction is not aborted, but continues. The effect of the
-SQL statement is rolled back, so the statement has no effect on the
-database, but the transaction is not aborted. </para>
-<para>Statement atomicity is met if these conditions are met:<itemizedlist>
-<listitem><para>The UPD_ABORT_ON_ERROR default must be set to OFF
-(the default).</para></listitem>
-<listitem><para>The underlying table must not have referential integrity
-constraints.</para></listitem>
-<listitem><para>The SQL query is not:<itemizedlist>
-<listitem><para>A publish/subscribe query with stream access</para>
-</listitem>
-<listitem><para>A CALL statement</para></listitem>
-<listitem><para>A holdable cursor</para></listitem>
-<listitem><para>A SELECT statement with an embedded UPDATE or DELETE</para>
-</listitem>
-<listitem><para>A DDL statement</para></listitem>
-<listitem><para>An UPDATE STATISTICS statement</para></listitem>
-</itemizedlist></para></listitem>
-<listitem><para>The query plan does not choose VSBB inserts or use
-Executor Server Process (ESP) parallelism.</para></listitem>
-<listitem><para>The AUTOCOMMIT option must be set to ON.</para>
-</listitem>
-</itemizedlist></para>
-<para>If these conditions are not met, the transaction is aborted
-by Trafodion SQL if a failure occurs. This behavior occurs for all
-INSERT, UPDATE, or DELETE statements in Trafodion SQL.</para>
-</section>
-<section id="i1009642">
-<title>User-Defined and System-Defined Transactions</title>
-<section>
-<title>User-Defined Transactions</title>
-<indexterm><primary>Transaction management</primary></indexterm>
-<para>Transactions you define are called <emphasis>user-defined transactions</emphasis
->. To be sure that a sequence of statements executes successfully
-or not at all, you can define one transaction consisting of these
-statements by using the BEGIN WORK statement and COMMIT WORK statement.
-You can abort a transaction by using the ROLLBACK WORK statement.
-If AUTOCOMMIT is on, you do not have to end the transaction explicitly
-as Trafodion SQL will end the transaction automatically. Sometimes
-an error occurs that requires the user-defined transaction to be aborted.
-Trafodion SQL will automatically abort the transaction and return
-an error indicating that the transaction was rolled back.</para>
-</section>
-<section>
-<title>System-Defined Transactions</title>
-<para>In some cases, Trafodion SQL defines transactions for you. These
-transactions are called <emphasis>system-defined transactions</emphasis
->. Most DML statements initiate transactions implicitly at the start
-of execution. See <xref linkend="i1010466"
-role="select:quotedtitle page"/>. However, even if a transaction is
-initiated implicitly, you must end a transaction explicitly with the
-COMMIT WORK statement or the ROLLBACK WORK statement. If AUTOCOMMIT
-is on, you do not need to end a transaction explicitly.</para>
-</section>
-</section>
-<section id="i1009675">
-<title>Rules for DML Statements</title>
-<indexterm><primary>Transaction management</primary><secondary>rules
-for DML statements</secondary></indexterm>
-<para>If deadlock occurs, the DML statement times out and receives
-an error.</para>
-</section>
-<section id="i1009687">
-<title>Effect of AUTOCOMMIT Option</title>
-<indexterm><primary>Transaction management</primary><secondary>AUTOCOMMIT,
-effect of</secondary></indexterm>
-<para>AUTOCOMMIT is an option that can be set in a SET TRANSACTION
-statement. It specifies whether Trafodion SQL will commit automatically,
-or roll back if an error occurs, at the end of statement execution.
-This option applies to any statement for which the system initiates
-a transaction. See <xref linkend="i1010391"
-role="select:quotedtitle page"/>.</para>
-<para>If this option is set to ON, Trafodion SQL automatically commits
-any changes, or rolls back any changes, made to the database at the
-end of statement execution.</para>
-</section>
-<section id="i1027603">
-<title>Concurrency</title>
-<indexterm><primary>Concurrency</primary><secondary>description of</secondary>
-</indexterm>
-<para>Concurrency is defined by two or more processes accessing the
-same data at the same time. The degree of concurrency available—whether
-a process that requests access to data that is already being accessed
-is given access or placed in a wait queue—depends on the purpose of
-the access mode (read or update) and the isolation level. <phrase
->Currently, the only isolation level is READ COMMITTED.</phrase></para>
-<para>Trafodion SQL provides concurrent database access for most operations
-and controls database access through <phrase>concurrency control </phrase
-><phrase condition="hidden">the mechanism for locking </phrase>and
-the mechanism for opening and closing tables. For DML operations, <phrase
-condition="hidden">access and locking options affect</phrase><phrase
->the access option affects</phrase> the degree of concurrency. See <xref
-linkend="i1009133" role="select:quotedtitle page"/><phrase
-condition="hidden">, <xref linkend="i1016946"
-role="select:quotedtitle page"/>,</phrase><phrase condition="hidden"
-> and <xref linkend="i1010391" role="select:quotedtitle page"/></phrase
->.</para>
-<para condition="hidden">The following tables describe interactions
-between SQL operations.</para>
-<para condition="hidden"><xref linkend="i1028996" role="select:label"
-/> compares operations with access modes and lists DDL and Utility
-operations you can start while DML operations are in progress.</para>
-<table condition="hidden" id="i1028996">
-<title>Concurrent DDL/Utility Operation and File Access Modes</title>
-<tgroup cols="4" tgroupstyle="TF  formal table">
-<colspec/>
-<colspec colname="COLSPEC2"/>
-<colspec colname="COLSPEC0"/>
-<colspec colname="COLSPEC1"/>
-<thead>
-<row><entry></entry><entry align="center" colsep="1" nameend="COLSPEC1"
-namest="COLSPEC2">Access Mode</entry></row>
-<row><entry>DDL Operations You Can Start</entry><entry>READ UNCOMMITTED</entry>
-<entry>READ COMMITTED</entry><entry>SERIALIZABLE</entry></row>
-</thead>
-<tbody>
-<row><entry>ALTER TABLE attributes</entry><entry>Allowed<footnote
-id="access_mode">
-<para>DDL operation aborts the DML operation.</para>
-</footnote></entry><entry>Allowed<footnoteref linkend="access_mode"
-/></entry><entry>Waits</entry></row>
-</tbody>
-</tgroup>
-</table>
-<para condition="hidden"><xref linkend="i1026195" role="select:label"
-/> compares DDL and utility operations with DML operations and shows
-DDL operations you can start while DML operations are in progress:</para>
-<table condition="hidden" id="i1026195">
-<title>Concurrent DDL/Utility and DML Operations</title>
-<tgroup cols="5" tgroupstyle="TF  formal table">
-<colspec/>
-<colspec colname="COLSPEC4"/>
-<colspec colname="COLSPEC2"/>
-<colspec/>
-<colspec colname="COLSPEC3"/>
-<thead>
-<row><entry></entry><entry align="center" colsep="1" nameend="COLSPEC3"
-namest="COLSPEC4">DML Operation in Progress</entry></row>
-<row><entry>DDL Operations You Can Start</entry><entry>SELECT UNCOMMITTED</entry>
-<entry>SELECT SHARE</entry><entry>SELECT EXCLUSIVE</entry><entry>UPDATE/
-INSERT/ DELETE</entry></row>
-</thead>
-<tbody>
-<row><entry>ALTER TABLE attributes</entry><entry>Allowed<footnote
-id="ddl_abort">
-<para>DDL operation aborts the DML operation.</para>
-</footnote></entry><entry>Allowed</entry><entry>Allowed</entry><entry
->Allowed</entry></row>
-<row><entry>ALTER TABLE other</entry><entry>Allowed<footnoteref
-linkend="ddl_abort"/></entry><entry>Waits</entry><entry>Waits</entry>
-<entry>Waits</entry></row>
-<row><entry>CREATE INDEX<phrase condition="hidden"> with POPULATE</phrase
-></entry><entry>Allowed<footnoteref linkend="ddl_abort"/></entry><entry
->Allowed</entry><entry>Waits</entry><entry>Waits</entry></row>
-<row condition="hidden"><entry>CREATE INDEX NO POPULATE</entry><entry
->Allowed</entry><entry>Allowed</entry><entry>Allowed</entry><entry
->Allowed</entry></row>
-<row condition="hidden"><entry>CREATE TRIGGER subject table</entry>
-<entry>Allowed</entry><entry>Allowed</entry><entry>Waits</entry><entry
->Waits</entry></row>
-<row condition="hidden"><entry>CREATE TRIGGER referenced table</entry>
-<entry>Allowed</entry><entry>Allowed</entry><entry>Allowed</entry>
-<entry>Allowed</entry></row>
-<row><entry>CREATE VIEW</entry><entry>Allowed</entry><entry>Allowed</entry>
-<entry>Allowed</entry><entry>Allowed</entry></row>
-<row><entry>GRANT</entry><entry>Allowed<footnoteref linkend="ddl_abort"
-/></entry><entry>Waits</entry><entry>Waits</entry><entry>Waits</entry>
-</row>
-<row><entry>POPULATE INDEX</entry><entry>Allowed<footnoteref
-linkend="ddl_abort"/></entry><entry>Allowed<footnoteref linkend="allow"
-/></entry><entry>Allowed<footnoteref linkend="allow"/></entry><entry
->Waits</entry></row>
-<row><entry>REVOKE</entry><entry>Allowed<footnoteref linkend="ddl_abort"
-/></entry><entry>Allowed</entry><entry>Waits</entry><entry>Waits</entry>
-</row>
-<row><entry>UPDATE STATISTICS</entry><entry>Allowed</entry><entry
->Allowed</entry><entry>Allowed</entry><entry>Allowed<footnote id="allow">
-<para>Allowed except during commit phase.</para>
-</footnote></entry></row>
-</tbody>
-</tgroup>
-</table>
-<para condition="hidden"><xref linkend="i1026125" role="select:label"
-/> compares DML operations you can start when DDL operations are in
-progress:</para>
-<table condition="hidden" id="i1026125">
-<title>Concurrent DML and DDL Operations </title>
-<tgroup cols="5" tgroupstyle="TF  formal table">
-<colspec/>
-<colspec colname="COLSPEC6"/>
-<colspec colname="COLSPEC4"/>
-<colspec/>
-<colspec colname="COLSPEC5"/>
-<thead>
-<row><entry></entry><entry align="center" colsep="1" nameend="COLSPEC5"
-namest="COLSPEC6">DML Operations You Can Start</entry></row>
-<row><entry>DDL Operations in Progress</entry><entry align="center"
->SELECT UNCOMMITTED</entry><entry align="center">SELECT SHARE</entry>
-<entry align="center">SELECT EXCLUSIVE</entry><entry align="center"
->UPDATE/ INSERT DELETE</entry></row>
-</thead>
-<tbody>
-<row><entry>ALTER TABLE attributes</entry><entry>Allowed<footnote
-id="DDL2_abort">
-<para>DDL operation aborts the DML operation.</para>
-</footnote></entry><entry>Allowed</entry><entry>Allowed</entry><entry
->Allowed</entry></row>
-<row><entry>ALTER TABLE other</entry><entry>Allowed<footnoteref
-linkend="DDL2_abort"/></entry><entry>Waits</entry><entry>Waits</entry>
-<entry>Waits</entry></row>
-<row><entry>CREATE INDEX <phrase condition="hidden">with POPULATE</phrase
-></entry><entry>Allowed<footnoteref linkend="DDL2_abort"/></entry>
-<entry>Allowed</entry><entry>Waits</entry><entry>Waits</entry></row>
-<row condition="hidden"><entry>CREATE INDEX NO POPULATE</entry><entry
->Allowed</entry><entry>Allowed</entry><entry>Allowed</entry><entry
->Allowed</entry></row>
-<row condition="hidden"><entry>CREATE TRIGGER subject table</entry>
-<entry>Allowed</entry><entry>Allowed</entry><entry>Waits</entry><entry
->Waits</entry></row>
-<row condition="hidden"><entry>CREATE TRIGGER reference table</entry>
-<entry>Allowed</entry><entry>Allowed</entry><entry>Allowed</entry>
-<entry>Allowed</entry></row>
-<row><entry>CREATE VIEW</entry><entry>Allowed</entry><entry>Allowed</entry>
-<entry>Allowed</entry><entry>Allowed</entry></row>
-<row><entry>GRANT</entry><entry>Allowed<footnoteref linkend="DDL2_abort"
-/></entry><entry>Waits</entry><entry>Waits</entry><entry>Waits</entry>
-</row>
-<row><entry>POPULATE INDEX</entry><entry>Allowed<footnoteref
-linkend="DDL2_abort"/></entry><entry>Allowed<footnoteref
-linkend="allow2"/></entry><entry>Allowed<footnoteref linkend="allow2"
-/></entry><entry>Waits</entry></row>
-<row><entry>REVOKE</entry><entry>Allowed<footnoteref
-linkend="DDL2_abort"/></entry><entry>Allowed</entry><entry>Waits</entry>
-<entry>Waits</entry></row>
-<row><entry>UPDATE STATISTICS</entry><entry>Allowed</entry><entry
->Allowed</entry><entry>Allowed</entry><entry>Allowed<footnote
-id="allow2">
-<para>Allowed except during commit phase.</para>
-</footnote></entry></row>
-</tbody>
-</tgroup>
-</table>
-<para condition="hidden"><xref linkend="i1022778" role="select:label"
-/> describes the effect of various DDL and utility operations on table
-timestamps:</para>
-<table condition="hidden" id="i1022778">
-<title>Operations Effect on Table Timestamps </title>
-<tgroup cols="2" tgroupstyle="TF  formal table">
-<thead>
-<row><entry>Alter Operation</entry><entry>Timestamp Updated</entry>
-</row>
-</thead>
-<tbody>
-<row><entry>ALTER TABLE</entry><entry>Yes, if you add columns or add
-or drop constraints No, if you change attributes</entry></row>
-<row condition="hidden"><entry>ALTER TRIGGER</entry><entry>No</entry>
-</row>
-<row><entry>CREATE CATALOG</entry><entry>No</entry></row>
-<row><entry>CREATE INDEX</entry><entry>Yes, if populated</entry></row>
-<row><entry>CREATE SCHEMA</entry><entry>No</entry></row>
-<row><entry>CREATE TABLE</entry><entry>No</entry></row>
-<row condition="hidden"><entry>CREATE TRIGGER</entry><entry>Yes, of
-the table on which the trigger is defined</entry></row>
-<row><entry>CREATE VIEW</entry><entry>No</entry></row>
-<row><entry>GRANT</entry><entry>No</entry></row>
-<row><entry>POPULATE INDEX</entry><entry>Yes</entry></row>
-<row><entry>PURGEDATA</entry><entry>Yes</entry></row>
-<row><entry>REVOKE</entry><entry>No</entry></row>
-<row><entry>UPDATE STATISTICS</entry><entry>No</entry></row>
-</tbody>
-</tgroup>
-</table>
-</section>
-<section condition="hidden" id="i1026505">
-<title>Transaction Access Modes</title>
-<para>A transaction has an access mode that is READ ONLY or READ WRITE.
-You can set the access mode of a transaction by using a SET TRANSACTION
-statement. See <xref linkend="i1010391" role="select:quotedtitle page"
-/>.</para>
-<section>
-<title>READ ONLY</title>
-<para>If a transaction is executing with the READ ONLY access mode,
-statements within the transaction can read, but cannot insert, delete,
-or update, data in tables. This restriction means that among the DML
-statements, only the SELECT statement can execute within that transaction.
-DDL statements are not permitted in a READ ONLY transaction.</para>
-<para>If the transaction isolation level is READ UNCOMMITTED, the
-default access mode is READ ONLY. For READ COMMITTED, the default
-access mode is not READ ONLY, but you can specify READ ONLY by using
-the SET TRANSACTION statement.</para>
-<para>READ ONLY transactions:</para>
-<itemizedlist>
-<listitem><para>Will not write anything into the transaction log</para>
-</listitem>
-<listitem><para>Will not abort if they extend beyond the system configured
-auto abort interval</para></listitem>
-<listitem><para>Will not pin the transaction log</para></listitem>
-</itemizedlist>
-<para>When AUTOCOMMIT is ON, the <phrase>database engine</phrase> automatically
-uses READ ONLY transactions for select statements. This could reduce
-concurrency if the select statement is long-running and the isolation
-level is SERIALIZABLE. If you want to override this automatic choice,
-the access mode can be set to READ WRITE using a SET TRANSACTION statement.
-If AUTOCOMMIT is OFF, select statements will execute under a READ
-WRITE transaction by default. If you want to execute them under a
-READ ONLY transaction, a SET TRANSACTION must be issued.</para>
-</section>
-<section>
-<title>READ WRITE</title>
-<para>If a transaction is executing with the READ WRITE access mode,
-statements within the transaction can read, insert, delete, or update
-data in tables. Therefore, any DML statement can execute within that
-transaction.</para>
-<para>If the transaction isolation level is not READ UNCOMMITTED,
-the default access mode is READ WRITE. However, you can specify READ
-ONLY explicitly by using the SET TRANSACTION statement.</para>
-</section>
-</section>
-<section id="i1012239">
-<title>Transaction Isolation Levels</title>
-<para>A transaction has an isolation level that is <phrase
-condition="hidden"><xref linkend="i1009762" role="select:quotedtitle"
-/>, </phrase><xref linkend="i1009771" role="select:quotedtitle"/><phrase
-condition="hidden">, or <xref linkend="i1009779"
-role="select:quotedtitle"/></phrase>. <phrase condition="hidden">The
-Trafodion SQL implementation for REPEATABLE READ and SERIALIZABLE
-is equivalent. </phrase></para>
-<para condition="hidden">You can set the isolation level of a transaction
-explicitly by using a SET TRANSACTION statement. See the <xref
-linkend="i1010391" role="select:quotedtitle page"/>. The default isolation
-level is READ COMMITTED.</para>
-<section condition="hidden" id="i1009762">
-<title>READ UNCOMMITTED</title>
-<indexterm><primary>Transaction isolation levels</primary><secondary
->READ UNCOMMITTED</secondary></indexterm><indexterm><primary>Isolation
-levels</primary><secondary>READ UNCOMMITTED</secondary></indexterm>
-<para>This isolation level allows your transaction to access locked
-data. You cannot use READ UNCOMMITTED for transactions that modify
-the database.</para>
-<para>READ UNCOMMITTED provides the lowest level of data consistency.
-A transaction executing with this isolation level is allowed to:</para>
-<itemizedlist>
-<listitem><para>Read data modified by a concurrent transaction (sometimes
-called <replaceable>dirty reads</replaceable>).</para></listitem>
-<listitem><para>Read different committed values for the same item
-at different times or find that the item no longer exists (sometimes
-called <replaceable>nonrepeatable reads</replaceable>).</para>
-</listitem>
-<listitem><para>Read different sets of committed values satisfying
-the same predicate at different times (sometimes called <replaceable
->phantoms</replaceable>).</para></listitem>
-</itemizedlist>
-</section>
-<section id="i1009771">
-<title>READ COMMITTED</title>
-<indexterm><primary>Transaction isolation levels</primary><secondary
->READ COMMITTED</secondary></indexterm><indexterm><primary>Isolation
-levels</primary><secondary>READ COMMITTED</secondary></indexterm>
-<para>This option, which is ANSI compliant, allows your transaction
-to access only committed data.</para>
-<para>No row locks are acquired when READ COMMITTED is the specified
-isolation level.</para>
-<para>READ COMMITTED provides the next level of data consistency.
-A transaction executing with this isolation level does not allow dirty
-reads, but both nonrepeatable reads and phantoms are possible.</para>
-<para>READ COMMITTED provides sufficient consistency for any transaction
-that does not require a repeatable-read capability.</para>
-<para>The default isolation level is READ COMMITTED.</para>
-</section>
-<section condition="hidden" id="i1009779">
-<title>SERIALIZABLE or REPEATABLE READ </title>
-<indexterm><primary>Locking</primary><secondary>SERIALIZABLE access
-option</secondary></indexterm><indexterm><primary>Isolation levels</primary>
-<secondary>REPEATABLE READ</secondary></indexterm><indexterm><primary
->Access options</primary><secondary>SERIALIZABLE</secondary></indexterm>
-<indexterm><primary>Transaction isolation levels</primary><secondary
->SERIALIZABLE</secondary></indexterm><indexterm><primary>Isolation
-levels</primary><secondary>SERIALIZABLE</secondary></indexterm>
-<indexterm><primary>SERIALIZABLE</primary></indexterm><indexterm>
-<primary>REPEATABLE READ</primary><secondary>description of</secondary>
-</indexterm><indexterm><primary>Transaction isolation levels</primary>
-<secondary>REPEATABLE READ</secondary></indexterm>
-<para>This option locks all data accessed through the transaction
-and holds the locks on data until the end of the transaction. </para>
-<para>SERIALIZABLE provides the highest level of data consistency.
-A transaction executing with this isolation level does not allow dirty
-reads, nonrepeatable reads, or phantoms.</para>
-</section>
-</section>
-<section condition="hidden" id="transrollback">
-<title>Transaction Rollback Mode</title>
-<indexterm><primary>Transaction rollback mode</primary></indexterm>
-<para>The rollback mode for a transaction can be set to either ON
-or OFF. A setting of ON denotes that the system will rollback the
-effects of a transaction it aborts. A setting of OFF denotes that
-the system does not need to perform rollback on abort, rather you
-are responsible for continuing after the abort. The default is OFF.
-The SET TRANSACTION option for rollback mode is <replaceable>norollback-option</replaceable
->.</para>
-<para>When transactions that contain long running INSERT, UPDATE,
-and DELETE statements are aborted, rollback is very expensive in system
-resources and is time consuming. You may consider setting the rollback
-mode to OFF for these statements. In some situations, not rolling
-back aborted transactions can lead to an inconsistent database, with
-respect to dependent objects such as indexes. For these situations,
-Trafodion SQL raises an error during compilation. </para>
-<para>When rollback mode is set to OFF, Trafodion SQL sets the auto
-abort interval for the transaction to 0, indicating that this transaction
-should never abort for exceeding a predefined time interval. Locks
-on this table can be held for long durations, resulting in reduced
-concurrency. You can override the default setting of never abort for
-NO ROLLBACK type transactions by using the SET TRANSACTION AUTOABORT
-statement. In addition, Trafodion SQL does not abort such transactions
-for exceeding 45% of the audit trail. Such transactions need not be
-limited by the 45% rule because rollback will not be performed on
-them. Setting this option also prevents TMF from pinning the audit
-trail for this transaction.</para>
-</section>
-</section>
-<section id="i1004713">
-<title>ANSI Compliance and Trafodion SQL Extensions</title>
-<para><indexterm><primary>ANSI</primary><secondary>compliance, description
-of</secondary></indexterm>Trafodion SQL complies most closely with
-Core SQL 99. Trafodion SQL also includes some features from SQL 99
-and part of the SQL 2003 standard, and special Trafodion SQL extensions
-to the SQL language. </para>
-<para>Statements and SQL elements in this manual are ANSI compliant
-unless specified as Trafodion SQL extensions. <phrase condition="hidden"
->For details about Trafodion SQL conformance with SQL:1999 standards,
-see Appendix D, Standard SQL and Trafodion SQL.</phrase></para>
-<section>
-<title>ANSI-Compliant Statements</title>
-<indexterm><primary>SQL statements</primary><secondary>ANSI compliant</secondary>
-</indexterm><indexterm><primary>Statements, SQL</primary><secondary
->ANSI compliant</secondary></indexterm>
-<para>These statements are ANSI compliant, but some might contain
-Trafodion SQL extensions:</para>
-<itemizedlist>
-<listitem><para>ALTER TABLE statement</para></listitem>
-<listitem><para>CALL statement</para></listitem>
-<listitem><para>COMMIT WORK statement</para></listitem>
-<listitem><para>CREATE FUNCTION statement</para></listitem>
-<listitem><para>CREATE PROCEDURE statement</para></listitem>
-<listitem><para>CREATE ROLE statement</para></listitem>
-<listitem><para>CREATE SCHEMA statement</para></listitem>
-<listitem><para>CREATE TABLE statement</para></listitem>
-<listitem><para>CREATE VIEW statement</para></listitem>
-<listitem><para>DELETE statement</para></listitem>
-<listitem><para>DROP FUNCTION statement</para></listitem>
-<listitem><para>DROP PROCEDURE statement</para></listitem>
-<listitem><para>DROP ROLE statement</para></listitem>
-<listitem><para>DROP SCHEMA statement</para></listitem>
-<listitem><para>DROP TABLE statement</para></listitem>
-<listitem><para>DROP VIEW statement</para></listitem>
-<listitem><para>EXECUTE statement</para></listitem>
-<listitem><para>GRANT statement</para></listitem>
-<listitem><para>GRANT ROLE statement</para></listitem>
-<listitem><para>INSERT statement</para></listitem>
-<listitem><para>MERGE statement</para></listitem>
-<listitem><para>PREPARE statement</para></listitem>
-<listitem><para>REVOKE statement</para></listitem>
-<listitem><para>REVOKE ROLE statement</para></listitem>
-<listitem><para>ROLLBACK WORK statement</para></listitem>
-<listitem><para>SELECT statement</para></listitem>
-<listitem><para>SET SCHEMA statement</para></listitem>
-<listitem><para>SET TRANSACTION statement</para></listitem>
-<listitem><para>TABLE statement</para></listitem>
-<listitem><para>UPDATE statement</para></listitem>
-<listitem><para>VALUES statement</para></listitem>
-</itemizedlist>
-</section>
-<section>
-<title>Statements That Are Trafodion SQL Extensions</title>
-<indexterm><primary>SQL statements</primary><secondary>Trafodion SQL
-extensions</secondary></indexterm><indexterm><primary>Statements,
-SQL</primary><secondary>Trafodion SQL extensions</secondary></indexterm>
-<indexterm><primary>Extensions, statements</primary></indexterm>
-<para>These statements are Trafodion SQL extensions to the ANSI standard.</para>
-<itemizedlist>
-<listitem><para>ALTER LIBRARY statement</para></listitem>
-<listitem><para>ALTER USER statement</para></listitem>
-<listitem><para>BEGIN WORK statement</para></listitem>
-<listitem><para>CONTROL QUERY CANCEL statement</para></listitem>
-<listitem><para>CONTROL QUERY DEFAULT statement</para></listitem>
-<listitem><para>CREATE INDEX statement</para></listitem>
-<listitem><para>CREATE LIBRARY statement</para></listitem>
-<listitem><para>DROP INDEX statement</para></listitem>
-<listitem><para>DROP LIBRARY statement</para></listitem>
-<listitem><para>EXPLAIN statement</para></listitem>
-<listitem><para>GET statement</para></listitem>
-<listitem><para>GET HBASE OBJECTS statement</para></listitem>
-<listitem><para>GET VERSION OF METADATA statement</para></listitem>
-<listitem><para>GET VERSION OF SOFTWARE statement</para></listitem>
-<listitem><para>GRANT COMPONENT PRIVILEGE statement</para></listitem>
-<listitem><para>INVOKE statement</para></listitem>
-<listitem><para>LOAD statement</para></listitem>
-<listitem><para>REGISTER USER statement</para></listitem>
-<listitem><para>REVOKE COMPONENT PRIVILEGE statement</para></listitem>
-<listitem><para>SHOWCONTROL statement</para></listitem>
-<listitem><para>SHOWDDL statement</para></listitem>
-<listitem><para>SHOWDDL SCHEMA statement</para></listitem>
-<listitem><para>SHOWSTATS statement</para></listitem>
-<listitem><para>UNLOAD statement</para></listitem>
-<listitem><para>UNREGISTER USER statement</para></listitem>
-<listitem><para>UPDATE STATISTICS statement</para></listitem>
-<listitem><para>UPSERT statement</para></listitem>
-</itemizedlist>
-</section>
-<section>
-<title>ANSI-Compliant Functions</title>
-<para><indexterm><primary>Functions, ANSI compliant</primary>
-</indexterm>These functions are ANSI compliant, but some might contain
-Trafodion SQL extensions:</para>
-<itemizedlist>
-<listitem><para>AVG function</para></listitem>
-<listitem><para>CASE expression</para></listitem>
-<listitem><para>CAST expression</para></listitem>
-<listitem><para>CHAR_LENGTH</para></listitem>
-<listitem><para>COALESCE</para></listitem>
-<listitem><para>COUNT Function</para></listitem>
-<listitem><para>CURRENT</para></listitem>
-<listitem><para>CURRENT_DATE</para></listitem>
-<listitem><para>CURRENT_TIME</para></listitem>
-<listitem><para>CURRENT_TIMESTAMP</para></listitem>
-<listitem><para>CURRENT_USER</para></listitem>
-<listitem><para>EXTRACT</para></listitem>
-<listitem><para>LOWER</para></listitem>
-<listitem><para>MAX</para></listitem>
-<listitem><para>MIN</para></listitem>
-<listitem><para>NULLIF</para></listitem>
-<listitem><para>OCTET_LENGTH</para></listitem>
-<listitem><para>POSITION</para></listitem>
-<listitem><para>SESSION_USER</para></listitem>
-<listitem><para>SUBSTRING</para></listitem>
-<listitem><para>SUM</para></listitem>
-<listitem><para>TRIM</para></listitem>
-<listitem><para>UPPER</para></listitem>
-</itemizedlist>
-<para>All other functions are Trafodion SQL extensions.</para>
-</section>
-</section>
-<section id="i1011471">
-<title>Trafodion SQL Error Messages</title>
-<indexterm><primary>Error messages</primary></indexterm>
-<para>Trafodion SQL reports error messages and exception conditions.
-When an error condition occurs, Trafodion SQL returns a message number
-and a brief description of the condition. For example, Trafodion SQL
-might display this error message:</para>
-<programlisting>
-*** ERROR[1000]  A syntax error occurred.
-</programlisting>
-<para>The message number is the SQLCODE value (without the sign).
-In this example, the SQLCODE value is 1000.</para>
-<!--WRITER'S NOTE: Expose this paragraph when the Error Messages is available:-->
-<para condition="hidden">To view detailed cause, effect, and recovery
-information for Trafodion SQL and other errors, see the <citetitle
->Trafodion SQL Error Messages</citetitle>.</para>
-</section>
-</chapter>
-<chapter id="i1076008">
-<title>SQL Statements</title>
-<para>This section describes the syntax and semantics of Trafodion
-SQL statements.</para>
-<para>Trafodion SQL statements <phrase condition="hidden">and utilities </phrase
->are entered interactively or from script files using a client-based
-tool, such as the Trafodion Command Interface (TrafCI). To install
-and configure a client application that enables you to connect to
-and use a Trafodion database, see the <citetitle>Trafodion Client
-Installation Guide</citetitle>.</para>
-<section>
-<title>Categories</title>
-<para>The statements are categorized according to their functionality:</para>
-<itemizedlist>
-<listitem><para><xref linkend="i1004264" role="select:quotedtitle"
-/></para></listitem>
-<listitem><para><xref linkend="i1004466" role="select:quotedtitle"
-/></para></listitem>
-<listitem><para><xref linkend="i1004500" role="select:quotedtitle"
-/></para></listitem>
-<listitem><para><xref linkend="sec_stmts" role="select:quotedtitle"
-/></para></listitem>
-<listitem><para><xref linkend="i1065898" role="select:quotedtitle"
-/></para></listitem>
-<listitem><para><xref linkend="Prepared-Statements"
-role="select:quotedtitle"/></para></listitem>
-<listitem><para><xref linkend="i1004598" role="select:quotedtitle"
-/></para></listitem>
-<listitem><para><xref linkend="i1004630" role="select:quotedtitle"
-/></para></listitem>
-<listitem><para><xref linkend="SHOW-GET-Statements"
-role="select:quotedtitle"/></para></listitem>
-</itemizedlist>
-<section id="i1004264">
-<title>Data Definition Language (DDL) Statements</title>
-<indexterm><primary>DDL statements</primary><see>Data Definition Language
-(DDL) statements</see></indexterm><indexterm><primary>Data Definition
-Language (DDL) statements</primary><secondary
-sortas="[Data Definition
-Language (DDL) statements:000">summary of</secondary></indexterm>
-<para>Use these DDL statements to create, drop, or alter the definition
-of a Trafodion SQL schema or object<phrase condition="hidden">, or
-the authorization to use an object</phrase>.</para>
-<note>
-<para>DDL statements are not currently supported in transactions.
-That means that you cannot run DDL statements inside a user-defined
-transaction (BEGIN WORK...COMMIT WORK) or when AUTOCOMMIT is OFF.
-To run these statements, AUTOCOMMIT must be turned ON (the default)
-for the session.</para>
-</note>
-<informaltable colsep="0" frame="none" rowsep="0">
-<tgroup cols="2" tgroupstyle="DL  desc list">
-<tbody>
-<row><entry><xref linkend="ALTER-LIBRARY" role="select:quotedtitle page"
-/></entry><entry>Updates the physical filename for a library object
-in a Trafodion database.</entry></row>
-<row><entry><xref linkend="i1004893" role="select:quotedtitle page"
-/></entry><entry>Changes a table.</entry></row>
-<row><entry><xref linkend="AlterUser" role="select:quotedtitle page"
-/></entry><entry>Changes attributes for a user.</entry></row>
-<row><entry><xref linkend="CREATE-FUNCTION"
-role="select:quotedtitle page"/></entry><entry>Registers a user-defined
-function (UDF) written in C as a function within a Trafodion database.</entry>
-</row>
-<row><entry><xref linkend="i1075725" role="select:quotedtitle page"
-/></entry><entry>Creates an index on a table.</entry></row>
-<row><entry><xref linkend="CREATE-LIBRARY"
-role="select:quotedtitle page"/></entry><entry>Registers a library
-object in a Trafodion database.</entry></row>
-<row><entry><xref linkend="CREATE-PROCEDURE"
-role="select:quotedtitle page"/></entry><entry>Registers a Java method
-as a stored procedure in Java (SPJ) within a Trafodion database.</entry>
-</row>
-<row><entry><xref linkend="CreateRole" role="select:quotedtitle page"
-/></entry><entry>Creates a role.</entry></row>
-<row><entry><xref linkend="i1061008" role="select:quotedtitle page"
-/></entry><entry>Creates a schema in the database.</entry></row>
-<row><entry><xref linkend="i1063425" role="select:quotedtitle page"
-/></entry><entry>Creates a table.</entry></row>
-<row><entry><xref linkend="i1076221" role="select:quotedtitle page"
-/></entry><entry>Creates a view.</entry></row>
-<row><entry><xref linkend="DROP-FUNCTION" role="select:quotedtitle page"
-/></entry><entry>Removes a user-defined function (UDF) from the Trafodion
-database.</entry></row>
-<row><entry><xref linkend="i1007408" role="select:quotedtitle page"
-/></entry><entry>Drops an index.</entry></row>
-<row><entry><xref linkend="DROP-LIBRARY" role="select:quotedtitle page"
-/></entry><entry>Removes a library object from the Trafodion database
-and also removes the library file referenced by the library object.</entry>
-</row>
-<row><entry><xref linkend="DROP-PROCEDURE"
-role="select:quotedtitle page"/></entry><entry>Removes a stored procedure
-in Java (SPJ) from the Trafodion database.</entry></row>
-<row><entry><xref linkend="DropRole" role="select:quotedtitle page"
-/></entry><entry>Drops a role.</entry></row>
-<row><entry><xref linkend="i1061009" role="select:quotedtitle page"
-/></entry><entry>Drops a schema from the database.</entry></row>
-<row><entry><xref linkend="i1007625" role="select:quotedtitle page"
-/></entry><entry>Drops a table.</entry></row>
-<row><entry><xref linkend="i1007707" role="select:quotedtitle page"
-/></entry><entry>Drops a view.</entry></row>
-<row condition="hidden"><entry><xref linkend="i1068219"
-role="select:quotedtitle page"/></entry><entry>Grants access privileges
-for a table or view to specified users or roles.</entry></row>
-<row condition="hidden"><entry><xref linkend="GrantCompPriv_stmt"
-role="select:quotedtitle page"/></entry><entry>Grants component privileges
-to a specified user or role.</entry></row>
-<row condition="hidden"><entry><xref linkend="GrantRole"
-role="select:quotedtitle page"/></entry><entry>Grants one or more
-roles to a user.</entry></row>
-<row><entry><xref linkend="RegisterUser" role="select:quotedtitle page"
-/></entry><entry>Registers a user in the SQL database, associating
-the user's login name with a database username.</entry></row>
-<row condition="hidden"><entry><xref linkend="i1059131"
-role="select:quotedtitle page"/></entry><entry>Revokes access privileges
-on a table or view from specified users or roles.</entry></row>
-<row condition="hidden"><entry><xref linkend="RevokeCompPrivs_stmt"
-role="select:quotedtitle page"/></entry><entry>Revokes component privileges
-from a specified user or role.</entry></row>
-<row condition="hidden"><entry><xref linkend="RevokeRole"
-role="select:quotedtitle page"/></entry><entry>Removes one or more
-roles from a user.</entry></row>
-<row><entry><xref linkend="UnregisterUser"
-role="select:quotedtitle page"/></entry><entry>Removes a database
-username from the SQL database.</entry></row>
-</tbody>
-</tgroup>
-</informaltable>
-</section>
-<section id="i1004466">
-<title>Data Manipulation Language (DML) Statements</title>
-<indexterm><primary>DML statements</primary><see>Data Manipulation
-Language (DML) statements</see></indexterm><indexterm><primary>Data
-Manipulation Language (DML) statements</primary><secondary sortas="000"
->summary of</secondary></indexterm>
-<para>Use these DML statements to delete, insert, select, or update
-rows in one or more tables:</para>
-<informaltable colsep="0" frame="none" rowsep="0">
-<tgroup cols="2" tgroupstyle="DL  desc list">
-<colspec colname="col1"/>
-<colspec colname="col2"/>
-<tbody>
-<row><entry><xref linkend="i1007032" role="select:quotedtitle page"
-/></entry><entry>Deletes rows from a table or view.</entry></row>
-<row><entry><xref linkend="i1008135" role="select:quotedtitle page"
-/></entry><entry>Inserts data into tables and views.</entry></row>
-<row><entry><xref linkend="i1062270" role="select:quotedtitle page"
-/></entry><entry>Either performs an upsert operation (that is, updates
-a table if the row exists or inserts into a table if the row does
-not exist) or updates (merges) matching rows from one table to another.</entry>
-</row>
-<row><entry><xref linkend="i1008894" role="select:quotedtitle page"
-/></entry><entry>Retrieves data from tables and views.</entry></row>
-<row><entry><xref linkend="TABLEstmt" role="select:quotedtitle page"
-/></entry><entry>Equivalent to the query specification <computeroutput
->SELECT * FROM <replaceable>table</replaceable></computeroutput></entry>
-</row>
-<row><entry><xref linkend="i1073628" role="select:quotedtitle page"
-/></entry><entry>Updates values in columns of a table or view.</entry>
-</row>
-<row><entry><xref linkend="UPSERT-Statement"
-role="select:quotedtitle page"/></entry><entry>Updates a table if
-the row exists or inserts into a table if the row does not exist.</entry>
-</row>
-<row><entry><xref linkend="VALUESstmt" role="select:quotedtitle page"
-/></entry><entry>Displays the results of the evaluation of the expressions
-and the results of row subqueries within the row value constructors.</entry>
-</row>
-</tbody>
-</tgroup>
-</informaltable>
-</section>
-<section id="i1004500">
-<title>Transaction Control Statements</title>
-<para>Use these statements to specify user-defined transactions and
-to set attributes for the next transaction:</para>
-<informaltable colsep="0" frame="none" rowsep="0">
-<tgroup cols="2" tgroupstyle="DL  desc list">
-<colspec colname="col1"/>
-<colspec colname="col2"/>
-<tbody>
-<row><entry><xref linkend="i1066431" role="select:quotedtitle page"
-/></entry><entry>Starts a transaction.</entry></row>
-<row><entry><xref linkend="i1075726" role="select:quotedtitle page"
-/></entry><entry>Commits changes made during a transaction and ends
-the transaction.</entry></row>
-<row><entry><xref linkend="i1008837" role="select:quotedtitle page"
-/></entry><entry>Undoes changes made during a transaction and ends
-the transaction.</entry></row>
-<row><entry><xref linkend="i1010391" role="select:quotedtitle page"
-/></entry><entry>Sets attributes for the next SQL transaction — <phrase
-condition="hidden">the isolation level, access mode, size of the diagnostics
-area, and </phrase>whether to automatically commit database changes.</entry>
-</row>
-</tbody>
-</tgroup>
-</informaltable>
-</section>
-<section id="sec_stmts">
-<title>Data Control and Security Statements</title>
-<para>Use these statements to register users, creat

<TRUNCATED>

Mime
View raw message