Repository: incubator-trafodion Updated Branches: refs/heads/master e1ae98fb0 -> e9fb80424
add lob folder and 1st chapter Project: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/commit/4c54b742 Tree: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/tree/4c54b742 Diff: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/diff/4c54b742 Branch: refs/heads/master Commit: 4c54b742371206c67ac9bd564cc926f57f8ef01a Parents: b62e577 Author: liu.yu <[email protected]> Authored: Sun Sep 10 19:26:08 2017 +0800 Committer: liu.yu <[email protected]> Committed: Sun Sep 10 19:26:08 2017 +0800 ---------------------------------------------------------------------- docs/lob_guide/pom.xml | 301 +++++++++++++++++++ .../lob_guide/src/asciidoc/_chapters/about.adoc | 195 ++++++++++++ .../src/asciidoc/_chapters/introduction.adoc | 152 ++++++++++ docs/lob_guide/src/asciidoc/index.adoc | 53 ++++ 4 files changed, 701 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/4c54b742/docs/lob_guide/pom.xml ---------------------------------------------------------------------- diff --git a/docs/lob_guide/pom.xml b/docs/lob_guide/pom.xml new file mode 100644 index 0000000..c5ebf3c --- /dev/null +++ b/docs/lob_guide/pom.xml @@ -0,0 +1,301 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> + <!-- +* @@@ 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 @@@ +--> + <modelVersion>4.0.0</modelVersion> + <groupId>org.apache.trafodion</groupId> + <artifactId>sql-reference-manual</artifactId> + <version>${env.TRAFODION_VER}</version> + <packaging>pom</packaging> + <name>Trafodion SQL Reference Manual</name> + <description>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. + </description> + <url>http://trafodion.incubator.apache.org</url> + <inceptionYear>2015</inceptionYear> + <parent> + <groupId>org.apache.trafodion</groupId> + <artifactId>trafodion</artifactId> + <relativePath>../../pom.xml</relativePath> + <version>1.3.0</version> + </parent> + + + <licenses> + <license> + <name>The Apache Software License, Version 2.0</name> + <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url> + <distribution>repo</distribution> + <comments>A business-friendly OSS license</comments> + </license> + </licenses> + + <organization> + <name>Apache Software Foundation</name> + <url>http://www.apache.org</url> + </organization> + + <issueManagement> + <system>JIRA</system> + <url>http://issues.apache.org/jira/browse/TRAFODION</url> + </issueManagement> + + <scm> + <connection>scm:git:http://git-wip-us.apache.org/repos/asf/incubator-trafodion.git</connection> + <developerConnection>scm:git:https://git-wip-us.apache.org/repos/asf/incubator-trafodion.git</developerConnection> + <url>https://git-wip-us.apache.org/repos/asf?p=incubator-trafodion.git</url> + <tag>HEAD</tag> + </scm> + + <ciManagement> + <system>Jenkins</system> + <url>https://jenkins.esgyn.com</url> + </ciManagement> + + <properties> + <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> + <asciidoctor.maven.plugin.version>1.5.2.1</asciidoctor.maven.plugin.version> + <asciidoctorj.pdf.version>1.5.0-alpha.11</asciidoctorj.pdf.version> + <asciidoctorj.version>1.5.4</asciidoctorj.version> + <rubygems.prawn.version>2.0.2</rubygems.prawn.version> + <jruby.version>9.0.4.0</jruby.version> + <dependency.locations.enabled>false</dependency.locations.enabled> + </properties> + + <repositories> + <repository> + <id>rubygems-proxy-releases</id> + <name>RubyGems.org Proxy (Releases)</name> + <url>http://rubygems-proxy.torquebox.org/releases</url> + <releases> + <enabled>true</enabled> + </releases> + <snapshots> + <enabled>false</enabled> + </snapshots> + </repository> + </repositories> + + <dependencies> + <dependency> + <groupId>rubygems</groupId> + <artifactId>prawn</artifactId> + <version>${rubygems.prawn.version}</version> + <type>gem</type> + <scope>provided</scope> + </dependency> + <dependency> + <groupId>org.jruby</groupId> + <artifactId>jruby-complete</artifactId> + <version>${jruby.version}</version> + </dependency> + <dependency> + <groupId>org.asciidoctor</groupId> + <artifactId>asciidoctorj</artifactId> + <version>${asciidoctorj.version}</version> + </dependency> + </dependencies> + + <build> + <plugins> + <plugin> + <groupId>de.saumya.mojo</groupId> + <artifactId>gem-maven-plugin</artifactId> + <version>1.0.10</version> + <configuration> + <!-- align JRuby version with AsciidoctorJ to avoid redundant downloading --> + <jrubyVersion>${jruby.version}</jrubyVersion> + <gemHome>${project.build.directory}/gems</gemHome> + <gemPath>${project.build.directory}/gems</gemPath> + </configuration> + <executions> + <execution> + <goals> + <goal>initialize</goal> + </goals> + </execution> + </executions> + </plugin> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-resources-plugin</artifactId> + <version>2.7</version> + <configuration> + <encoding>UTF-8</encoding> + <attributes> + <generateReports>false</generateReports> + </attributes> + </configuration> + </plugin> + <plugin> + <groupId>org.asciidoctor</groupId> + <artifactId>asciidoctor-maven-plugin</artifactId> + <version>${asciidoctor.maven.plugin.version}</version> + <dependencies> + <dependency> + <groupId>org.asciidoctor</groupId> + <artifactId>asciidoctorj-pdf</artifactId> + <version>${asciidoctorj.pdf.version}</version> + </dependency> + <dependency> + <groupId>org.asciidoctor</groupId> + <artifactId>asciidoctorj</artifactId> + <version>${asciidoctorj.version}</version> + </dependency> + </dependencies> + <configuration> + <sourceDirectory>${basedir}/src</sourceDirectory> + <gemPath>${project.build.directory}/gems-provided</gemPath> + </configuration> + <executions> + <execution> + <id>generate-html-doc</id> + <goals> + <goal>process-asciidoc</goal> + </goals> + <phase>site</phase> + <configuration> + <doctype>book</doctype> + <backend>html5</backend> + <sourceHighlighter>coderay</sourceHighlighter> + <outputDirectory>${basedir}/target/site</outputDirectory> + <requires> + <require>${basedir}/../shared/google-analytics-postprocessor.rb</require> + </requires> + <attributes> + <!-- Location of centralized stylesheet --> + <stylesheet>${basedir}/../shared/trafodion-manuals.css</stylesheet> + <project-version>${env.TRAFODION_VER}</project-version> + <project-name>Trafodion</project-name> + <project-logo>${basedir}/../shared/trafodion-logo.jpg</project-logo> + <project-support>[email protected]</project-support> + <docs-url>http://trafodion.incubator.apache.org/docs</docs-url> + <build-date>${maven.build.timestamp}</build-date> + <google-analytics-account>UA-72491210-1</google-analytics-account> + </attributes> + </configuration> + </execution> + <execution> + <id>generate-pdf-doc</id> + <phase>site</phase> + <goals> + <goal>process-asciidoc</goal> + </goals> + <configuration> + <doctype>book</doctype> + <backend>pdf</backend> + <sourceHighlighter>coderay</sourceHighlighter> + <outputDirectory>${basedir}/target</outputDirectory> + <attributes> + <project-version>${env.TRAFODION_VER}</project-version> + <project-name>Trafodion</project-name> + <project-logo>${basedir}/../shared/trafodion-logo.jpg</project-logo> + <project-support>[email protected]</project-support> + <docs-url>http://trafodion.incubator.apache.org/docs</docs-url> + <build-date>${maven.build.timestamp}</build-date> + <pdf-stylesdir>${basedir}/../shared</pdf-stylesdir> + <pdf-style>trafodion</pdf-style> + <icons>font</icons> + <pagenums/> + <toc/> + <idprefix/> + <idseparator>-</idseparator> + </attributes> + </configuration> + </execution> + </executions> + </plugin> + <!-- Copy files to the web-site end destinations. --> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-antrun-plugin</artifactId> + <version>1.8</version> + <inherited>false</inherited> + <executions> + <execution> + <id>populate-release-directories</id> + <phase>post-site</phase> + <configuration> + <target name="Populate Release Directories"> + <!-- The website uses the following organization for the docs/target/docs directory: + - To ensure a known location, the base directory contains the LATEST version of the web book and the PDF files. + - The know location is docs/target/docs/<document> + - target/docs/<version>/<document> contains version-specific renderings of the documents. + - target/docs/<version>/<document> contains the PDF version and the web book. The web book is named index.html + --> + <!-- Copy the PDF file to its target directories --> + <copy file="${basedir}/target/index.pdf" tofile="${basedir}/../target/docs/sql_reference/Trafodion_SQL_Reference_Manual.pdf" /> + <copy file="${basedir}/target/index.pdf" tofile="${basedir}/../target/docs/${project.version}/sql_reference/Trafodion_SQL_Reference_Manual.pdf" /> + <!-- Copy the Web Book files to their target directories --> + <copy todir="${basedir}/../target/docs/sql_reference"> + <fileset dir="${basedir}/target/site"> + <include name="**/*.*"/> <!--All sub-directories, too--> + </fileset> + </copy> + <copy todir="${basedir}/../target/docs/${project.version}/sql_reference"> + <fileset dir="${basedir}/target/site"> + <include name="**/*.*"/> <!--All sub-directories, too--> + </fileset> + </copy> + </target> + </configuration> + <goals> + <goal>run</goal> + </goals> + </execution> + </executions> + </plugin> + </plugins> + </build> + + <!-- Included because this is required. No reports are generated. --> + <reporting> + <excludeDefaults>true</excludeDefaults> + <plugins> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-project-info-reports-plugin</artifactId> + <version>2.8</version> + <reportSets> + <reportSet> + <reports> + </reports> + </reportSet> + </reportSets> + </plugin> + </plugins> + </reporting> + + <distributionManagement> + <site> + <id>trafodion.incubator.apache.org</id> + <name>Trafodion Website at incubator.apache.org</name> + <!-- On why this is the tmp dir and not trafodion.incubator.apache.org, see + https://issues.apache.org/jira/browse/HBASE-7593?focusedCommentId=13555866&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-13555866 + --> + <url>file:///tmp</url> + </site> + </distributionManagement> +</project> http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/4c54b742/docs/lob_guide/src/asciidoc/_chapters/about.adoc ---------------------------------------------------------------------- diff --git a/docs/lob_guide/src/asciidoc/_chapters/about.adoc b/docs/lob_guide/src/asciidoc/_chapters/about.adoc new file mode 100644 index 0000000..8812a0b --- /dev/null +++ b/docs/lob_guide/src/asciidoc/_chapters/about.adoc @@ -0,0 +1,195 @@ +//// +/** +* @@@ 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 @@@ +*/ +//// + +[[About_This_Document]] += About This Document +This guide dwscribes how to use Large Object (LOB) datatypes. + +[[Intended_Audience]] +== Intended Audience +This manual is intended for programmers who use LOB datatypes. + +[[New_and_Changed_Information]] +== New and Changed Information +This is a new guide. + +[[Document_Organization]] +== Document Organization + +[cols="30%,70%",options="header"] +|=== +|Chapter | Description +| <<Introduction,Introduction>> | Introduces LOB and covers following topics: + +• 1.1 <<what is lob,What is LOB>> + +• 1.2 <<lob data types,LOB Data Types>> + +• 1.3 <<lob storage,LOB Storage>> + +• 1.4 <<lob handle,LOB Handle>> + +• 1.5 <<lob restrictions,LOB Restrictions>> + +• 1.6 <<lob related sql statements and functions,LOB Related SQL Statements and Functions>>. + +| <<Work with LOB,Work with LOB>> | Explains how to use LOB with SQL statement and covers following topics: + +• 2.1 <<create a sql table with lob columns,Create a SQL Table with LOB Columns>> + +• 2.2 <<insert into a sql table containing lob columns,Insert into a SQL Table Containing LOB Columns>> + +• 2.3 <<insert into a sql table containing lob columns using select clause,Insert into a SQL Table Containing LOB Columns Using Select Clause>> + +• 2.4 <<update a sql table containing lob columns,Update a SQL Table Containing LOB Columns>> + +• 2.5 <<select column from a sql table containing lob columns,Select Column from a SQL Table Containing LOB Columns>> + +• 2.6 <<extract lob data from a sql table containing lob columns,Extract LOB Data from a SQL Table Containing LOB Columns>> + +• 2.7 <<delete column from a sql table containing lob columns,Delete Column from a SQL Table Containing LOB columns>> + +• 2.8 <<drop a sql table containing lob columns,Drop a SQL Table Containing LOB Columns>> + +• 2.9 <<garbage collection,Garbage Collection>> + +• 2.10 <<cleanup of a sql table containing lob columns,Cleanup of a SQL Table Containing LOB Columns>> + +• 2.11 <<showddl for lob,SHOWDDL for LOB>> + +• 2.12 <<get command for lob tables,Get Command for LOB Tables>> +|=== + +== Notation Conventions +This list summarizes the notation conventions for syntax presentation in this manual. + +* UPPERCASE LETTERS ++ +Uppercase letters indicate keywords and reserved words. Type these items exactly as shown. Items not enclosed in brackets are required. ++ +``` +SELECT +``` + +* lowercase letters ++ +Lowercase letters, regardless of font, indicate variable items that you supply. Items not enclosed in brackets are required. ++ +``` +file-name +``` + +* [ ] Brackets ++ +Brackets enclose optional syntax items. ++ +``` +DATETIME [start-field TO] end-field +``` ++ +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: ++ +``` +DROP SCHEMA schema [CASCADE] +DROP SCHEMA schema [ CASCADE | RESTRICT ] +``` + +<<< +* { } Braces ++ +Braces enclose required syntax items. ++ +``` +FROM { grantee [, grantee ] ... } +``` ++ +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: ++ +``` +INTERVAL { start-field TO end-field } +{ single-field } +INTERVAL { start-field TO end-field | single-field } +``` +* | Vertical Line ++ +A vertical line separates alternatives in a horizontal list that is enclosed in brackets or braces. ++ +``` +{expression | NULL} +``` +* … Ellipsis ++ +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. ++ +``` +ATTRIBUTE[S] attribute [, attribute] ... +{, sql-expression } ... +``` ++ +An ellipsis immediately following a single syntax item indicates that you can repeat that syntax item any number of times. ++ +For example: ++ +``` +expression-n ... +``` + +* Punctuation ++ +Parentheses, commas, semicolons, and other symbols not previously described must be typed as shown. ++ +``` +DAY (datetime-expression) +@script-file +``` ++ +Quotation marks around a symbol such as a bracket or brace indicate the symbol is a required character that you must type as shown. ++ +For example: ++ +``` +"{" module-name [, module-name] ... "}" +``` + +* Item Spacing ++ +Spaces shown between items are required unless one of the items is a punctuation symbol such as a parenthesis or a comma. ++ +``` +DAY (datetime-expression) DAY(datetime-expression) +``` ++ +If there is no space between two items, spaces are not permitted. In this example, no spaces are permitted between the period and any other items: ++ +``` +myfile.sh +``` + +* Line Spacing ++ +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. ++ +``` +match-value [NOT] LIKE _pattern + [ESCAPE esc-char-expression] +``` + +== Comments Encouraged +We encourage 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 [email protected]. + +Include the document title and any comment, error found, or suggestion for improvement you have concerning this document. \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/4c54b742/docs/lob_guide/src/asciidoc/_chapters/introduction.adoc ---------------------------------------------------------------------- diff --git a/docs/lob_guide/src/asciidoc/_chapters/introduction.adoc b/docs/lob_guide/src/asciidoc/_chapters/introduction.adoc new file mode 100644 index 0000000..e3a9c08 --- /dev/null +++ b/docs/lob_guide/src/asciidoc/_chapters/introduction.adoc @@ -0,0 +1,152 @@ +//// +/** +* @@@ 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 @@@ +*/ +//// + +[#introduction] += Introduction + +[#what is lOB] +== What is LOB + +LOB (Large Object), a set of large object data types used to store large volumes of data, provides random and piece-wise access to the data. + +Database support for LOB is not universal. + +[#lob data types] +== LOB Data Types + +The following are the data types supported by Trafodion. + + + +[caption="Table 1-1 "] +.Descriptions for BLOB and CLOB +[cols="30%,70%",options="header"] +|=== +| *Data Type* | *Desciprtion* +| BLOB | Binary Large Object. + + +Holds large blocks of unstructured data in binary format. + + +BLOB is ideal for storing and handling unstructured data, such as images, audio, video and other multimedia objects. +| CLOB | Character Large Object. + + +Stores unusually large amounts of string data in character set format. + + +CLOB is ideal for storing and processing semi-structured data, such as large document or string. +|=== + +[#lob storage] +== LOB Storage + +The basic design idea is to allow a database row to have multiple LOB columns and a table to have multiple such rows. The design takes a combination approach of rows store and column store. + +When a SQL table with LOB column is created, there are several dependent objects that are created to hold metadata information on the LOB as well as the data. + +The LOB data itself is stored in HDFS while the Trafodion table contains a unique LOB handle for each row/column. The LOB handle provides the identifier that is used to query the LOB metadata tables to find the location of the LOB data files. + +The naming conventions for the LOB tables are as follows: +[caption="Table 1-2 "] +.Naming Conventions for LOB Tables +[cols="2*",options="header"] +|=== +2+|*Naming Conventions* +| SQL Table | TLOB +| LOB MD table + +(one per SQL table containing LOB columns) + | LOBMD_{object UID} +| LOB Descriptor Handle Table + +(one per LOB column) + | LOBDescHandle_{object UID}_{LOB number} +| LOB Descriptor Chunks Table + +(one per LOB column) + | LOBDescChunks_{object UID}_{LOB number} +| LOB Data Table + +(in HDFS one per LOB column) + | LOBP_{object UID}_{LOB number} +|=== + +[#lob handle] +== LOB Handle + +The LOB handle is used to describe a LOB value. A SQL table that contains a LOB column will contain this handle structure in each row for each LOB value inserted. + +The actual LOB data will be stored in unstructured HDFS files as column store whereas the LOB handleâthat describes the location, offset information, descriptor information and so on can be thought of as a unique identifier to the lob data, is stored in the database row of the table as a traditional row store. + +The handle can be thought of as a file locator as is more commonly referred to in LOB related terminology. + +[#external structure] +=== External Structure + +The following is an external structure that is stored in the row of a SQL table: + +LOBH00000002000100047335557604604880171074381106028370118212279894381354363017"TRAFODION"."SCH" + +[#lob restrictions] +== LOB Restrictions + +* LOB columns cannot appear in FROM clauses as join predicates. +* LOB columns cannot appear in STORE BY, ORDER BY or GROUP BY clauses. +* LOB columns cannot appear in WHERE clauses as predicates other than LIKE (meaning that no comparison is allowed). +* LOB columns cannot appear in SELECT clauses as aggregate function arguments. +* LOB columns cannot appear in SELECT DISTINCT clauses. +* LOB columns cannot be used as primary keys. +* LOB columns cannot be used in CREATE INDEX statements. +* LOB columns cannot be used in statistics update statements. +* The file that contains data to insert from or to extract to need to be on platform linux or HDFS files. + +[#lob related sql statements and functions] +== LOB Related SQL Statements and Functions + +[#supported sql statements] +=== Supported SQL Statements + +The following SQL statements are supported: + +* CREATE TABLE +* SELECT +* INSERT +* UPDATE +* UPDATE with APPEND option +* EXTRACT + +[#unsupported sql statements] +=== Unsupported SQL Statements + +The following SQL statements are not supported: + +* ALTER TABLE +* MERGE + +[#supported lob conversion sql functions] +=== Supported LOB Conversion SQL Functions + +The following LOB conversion SQL functions are supported: + +* LOBTOSTRING +* LOBTOFILE +* LOBTOBUFFER +* STRINGTOLOB +* FILETOLOB +* BUFFERTOLOB +* EXTERNALTOLOB \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/4c54b742/docs/lob_guide/src/asciidoc/index.adoc ---------------------------------------------------------------------- diff --git a/docs/lob_guide/src/asciidoc/index.adoc b/docs/lob_guide/src/asciidoc/index.adoc new file mode 100644 index 0000000..a6c776c --- /dev/null +++ b/docs/lob_guide/src/asciidoc/index.adoc @@ -0,0 +1,53 @@ +//// +* @@@ 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 @@@ +//// + += LOB Guide +:doctype: book +:numbered: +:toc: left +:toclevels: 3 +:toc-title: Table of Contents +:icons: font +:iconsdir: icons +:experimental: +:source-language: text +:revnumber: {project-version} +:title-logo-image: {project-logo} +:project-name: {project-name} + +:images: ../images +:leveloffset: 1 + +// The directory is called _chapters because asciidoctor skips direct +// processing of files found in directories starting with an _. This +// prevents each chapter being built as its own book. + +include::../../shared/license.txt[] +<<< +include::../../shared/acknowledgements.txt[] +<<< +include::../../shared/revisions.txt[] + +include::asciidoc/_chapters/about.adoc[] +include::asciidoc/_chapters/introduction.adoc[] +include::asciidoc/_chapters/work_with_lob.adoc[] \ No newline at end of file
