diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md new file mode 100644 index 0000000..3f84de5 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -0,0 +1,27 @@ +--- +name: SQL Parser Error +about: Create a report to help us improve +title: 'Parser Version : RDBMS : Failing feature description' +labels: 'Parser Error', 'Feature Request', 'Documentation', 'Java API', 'RDBMS support' +assignees: '' + +--- + +**Failing SQL Feature** +- Brief description of the failing SQL feature +- Example: `WITH ROLLUP` can't be parsed + +**SQL Example** +- Simplified Query Example, focusing on the failing feature +```sql +-- Replace with your ACTUAL example +select 1 +from dual +``` + +**Software Information** +- Parser version +- Database (e.g. Oracle, MS SQL Server, H2, PostgreSQL, IBM DB2 ) + +**Tips** +Please write in English and avoid Screenshots (as we can't copy and paste content from it). \ No newline at end of file diff --git a/.github/workflows/maven.yml b/.github/workflows/maven.yml new file mode 100644 index 0000000..a0f9ef7 --- /dev/null +++ b/.github/workflows/maven.yml @@ -0,0 +1,30 @@ +# This workflow will build a Java project with Maven, and cache/restore any dependencies to improve the workflow execution time +# For more information see: https://help.github.com/actions/language-and-framework-guides/building-and-testing-java-with-maven + +name: Java CI with Maven + +on: + push: + branches: [ main ] + pull_request: + branches: [ main ] + +jobs: + build: + + runs-on: ubuntu-latest + strategy: + matrix: + java: [8, 11] + name: Java ${{ matrix.java }} building ... + + steps: + - uses: actions/checkout@v3 + - name: Set up Java ${{ matrix.java }} + uses: actions/setup-java@v3 + with: + java-version: ${{ matrix.java }} + distribution: 'temurin' + cache: maven + - name: Build with Maven + run: mvn -B package --file pom.xml diff --git a/.github/workflows/sphinx.yml b/.github/workflows/sphinx.yml new file mode 100644 index 0000000..4906b2c --- /dev/null +++ b/.github/workflows/sphinx.yml @@ -0,0 +1,31 @@ +name: Sphinx Pages +on: [push, workflow_dispatch] +permissions: write-all +jobs: + docs: + runs-on: ubuntu-latest + steps: + - uses: actions/setup-python@v4 + - name: Install XSLT Processor + run: sudo apt-get install xsltproc sphinx-common + - name: Install dependencies + run: pip install sphinx_rtd_theme sphinx-book-theme myst_parser sphinx-prompt sphinx_substitution_extensions sphinx_issues sphinx_tabs pygments + - name: Checkout project sources + uses: actions/checkout@v2 + with: + ref: main + fetch-depth: 0 + - name: Setup Gradle + uses: gradle/gradle-build-action@v2 + - name: Run build with Gradle Wrapper + run: gradle sphinx + - name: Deploy + uses: actions/configure-pages@v2 + - name: Upload artifact + uses: actions/upload-pages-artifact@v1 + with: + # Upload entire repository + path: 'build/site/sphinx' + - name: Deploy to GitHub Pages + id: deployment + uses: actions/deploy-pages@v1 diff --git a/.gitignore b/.gitignore index f9b1a4b..cd19616 100644 --- a/.gitignore +++ b/.gitignore @@ -2,6 +2,7 @@ *.ipr *.iws target/ +build/ /var /*/var/ /presto-product-tests/**/var/ @@ -25,3 +26,8 @@ benchmark_outputs .mvn/timing.properties .editorconfig node_modules +nb-configuration.xml +gradle/ +.gradle/ +gradlew +gradlew.bat diff --git a/README.md b/README.md index 185566f..34b7d9d 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,53 @@ -# SQL Language Frontend +# Java SQL:2016 Language Frontend -A Modern SQL frontend based on SQL16 with extensions for streaming, graph, rich types, etc, including parser, resolver, rewriters, etc. +[Visit our Website.](https://manticore-projects.github.io/sql/index.html) + +![Build Status](https://github.com/manticore-projects/sql/actions/workflows/maven.yml/badge.svg) +[![Maven Central](https://maven-badges.herokuapp.com/maven-central/com.facebook.presto/presto-coresql/badge.svg)](http://maven-badges.herokuapp.com/maven-central/com.facebook.presto/presto-coresql) +[![Javadocs](https://www.javadoc.io/badge/com.facebook.presto/presto-coresql.svg)](https://www.javadoc.io/doc/com.facebook.presto/presto-coresql) + +A Modern SQL frontend based on the SQL16 Standard with extensions for streaming, graph, rich types. + + * Comprehensive support for statements: + + - QUERY: ``SELECT ...`` + - DML: ``INSERT ... INTO ...`` ``UPDATE ...`` ``MERGE ... INTO ...`` ``DELETE ... FROM ...`` + - DDL: ``CREATE ...`` ``ALTER ...`` ``DROP ...`` + + * Nested Expressions (e.g. Sub-Selects) + * ``WITH`` clauses + * De-Parser for a Statement AST Node, which writes a SQL from Java Objects + * Rewriter + * Linter + +## How to use it + +1) Maven Repository + + ```xml + + com.facebook.presto + presto-coresql + 0.1 + + ``` + +2) Parsing and Unparsing a SQL Statement + + ```java + import com.facebook.coresql.parser.AstNode; + import com.facebook.coresql.parser.ParserHelper; + import com.facebook.coresql.parser.Unparser; + + String sqlStr = "select 1 from dual where a=b"; + AstNode ast = ParserHelper.parseStatement(sqlStr); + String unparsedSqlStr = Unparser.unparse(ast); + ``` + +3) Compile latest version from source + + ```shell + git clone https://github.com/kaikalur/sql.git + cd sql + mvn install + ``` diff --git a/build.gradle b/build.gradle new file mode 100644 index 0000000..eeba4b2 --- /dev/null +++ b/build.gradle @@ -0,0 +1,214 @@ +import se.bjurr.gitchangelog.plugin.gradle.GitChangelogTask +import java.nio.charset.Charset + +plugins { + id 'java' + id "ca.coglinc2.javacc" version "latest.release" + id "com.github.spotbugs" version "latest.release" + id 'checkstyle' + + // download the RR tools which have no Maven Repository + id "de.undercouch.download" version "latest.release" + + id "se.bjurr.gitchangelog.git-changelog-gradle-plugin" version "latest.release" +} + +allprojects { + repositories { + mavenLocal() + mavenCentral() + maven { + url 'https://oss.sonatype.org/content/repositories/snapshots' + } + } +} + +def getVersion = { boolean considerSnapshot -> + def major = 0 + def minor = 0 + def patch = 0 + def commit = "" + def snapshot ="" + new ByteArrayOutputStream().withStream { os -> + exec { + workingDir "$projectDir" + args = [ + "--no-pager" + , "describe" + , "--tags" + , "--always" + , "--dirty=-SNAPSHOT" + ] + executable "git" + standardOutput = os + } + def matcher = os.toString() =~ /(\d*)\.(\d*)-(\d*)-([a-zA-Z\d]*)/ + matcher.find() + + major = matcher[0][1] + minor = matcher[0][2] + patch = matcher[0][3] + commit = matcher[0][4] + + if (considerSnapshot && os.toString().trim().endsWith("-SNAPSHOT")) { + minor++ + snapshot = "-SNAPSHOT" + } + } + return "${major}.${minor}${snapshot}" +} +group = 'com.facebook.presto' +version = getVersion(true) +description = 'Java SQL:2016 compliant Parser Suite' + +java { + withSourcesJar() + withJavadocJar() +} + +test { + useJUnitPlatform() + // set heap size for the test JVM(s) + minHeapSize = "128m" + maxHeapSize = "1G" + jvmArgs << [ + '-Djunit.jupiter.execution.parallel.enabled=true', + '-Djunit.jupiter.execution.parallel.config.strategy=dynamic', + '-Djunit.jupiter.execution.parallel.mode.default=concurrent' + ] + + finalizedBy check +} + +checkstyle { + sourceSets = [sourceSets.main, sourceSets.test] +} + +task renderRR() { + dependsOn ':presto-coresql-parser:compileJavacc' + doLast { + // these WAR files have been provided as a courtesy by Gunther Rademacher + // and belong to the RR - Railroad Diagram Generator Project + // https://github.com/GuntherRademacher/rr + // + // Hosting at manticore-projects.com is temporary until a better solution is found + // Please do not use these files without Gunther's permission + download.run { + src 'http://manticore-projects.com/download/convert.war' + dest "$buildDir/rr/convert.war" + overwrite false + } + + download.run { + src 'http://manticore-projects.com/download/rr.war' + dest "$buildDir/rr/rr.war" + overwrite false + } + + javaexec { + standardOutput = new FileOutputStream("$buildDir/rr/syntax.ebnf") + main = "-jar" + args = [ + "$buildDir/rr/convert.war", + "${project(':presto-coresql-parser').buildDir}/generated/jjtree/com/facebook/coresql/parser/parser.jj" + ] + } + + javaexec { + main = "-jar" + args = [ + "$buildDir/rr/rr.war", + "-noepsilon", + "-color:#4D88FF", + "-offset:0", + "-width:800", + //"-png", + //"-out:target/rr/PRESTO_SQL_PARSERCC.zip", + "-out:$buildDir/rr/syntax.xhtml", + "$buildDir/rr/syntax.ebnf" + ] + } + + //@todo: a Java based solution may be more appropriate here + exec { + commandLine "sh", "-c", "xsltproc sphinx/xhtml2rst.xsl $buildDir/rr/syntax.xhtml > sphinx/src/syntax.rst" + } + } +} + +task gitChangelogTask(type: GitChangelogTask) { + fromRepo = file("$projectDir") + file = new File("${projectDir}/sphinx/src/changelog.rst") + //fromRef = "4.0" + //toRef = "1.1"; + templateContent =""" +************************ +Changelog +************************ + + +{{#tags}} +{{#ifMatches name "^Unreleased.*"}} +Latest Changes since |PRESTO_SQL_PARSER_VERSION| +{{/ifMatches}} +{{#ifMatches name "^(?!Unreleased).*"}} +Version {{name}} +{{/ifMatches}} +============================================================= + + {{#issues}} + + {{#commits}} + {{#ifMatches messageTitle "^(?!Merge).*"}} + * **{{{messageTitle}}}** + + {{authorName}}, {{commitDate}} + {{/ifMatches}} + {{/commits}} + + {{/issues}} +{{/tags}} +""" +} + +task sphinx(type: Exec) { + dependsOn(gitChangelogTask, renderRR) + + String PROLOG = """ +.. |_| unicode:: U+00A0 + :trim: + +.. |PRESTO_SQL_PARSER_EMAIL| replace:: support@manticore-projects.com +.. |PRESTO_SQL_PARSER_VERSION| replace:: ${getVersion(false)} +.. |PRESTO_SQL_PARSER_SNAPSHOT_VERSION| replace:: ${getVersion(true)} +.. |PRESTO_SQL_PARSER_STABLE_VERSION_LINK| raw:: html + + ${project.name}-${getVersion(false)}.jar + +.. |PRESTO_SQL_PARSER_SNAPSHOT_VERSION_LINK| raw:: html + + ${project.name}-${getVersion(true)}.jar + +""" + + args = [ + "-Dproject=Presto SQL Parser" + , "-Dcopyright=Sreeni Viswanadha, 2022" + , "-Dauthor=Sreeni Viswanadha" + , "-Drelease=${getVersion(false)}" + , "-Drst_prolog=$PROLOG" + , "sphinx/src" + , "$buildDir/site/sphinx" + ] + + executable "sphinx-build" + + //store the output instead of printing to the console: + standardOutput = new ByteArrayOutputStream() + + //extension method stopTomcat.output() can be used to obtain the output: + ext.output = { + return standardOutput.toString() + } +} + diff --git a/config/checkstyle/checkstyle.xml b/config/checkstyle/checkstyle.xml new file mode 100644 index 0000000..e95b987 --- /dev/null +++ b/config/checkstyle/checkstyle.xml @@ -0,0 +1,275 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/config/checkstyle/suppressions.xml b/config/checkstyle/suppressions.xml new file mode 100644 index 0000000..e27e45a --- /dev/null +++ b/config/checkstyle/suppressions.xml @@ -0,0 +1,9 @@ + + + + + \ No newline at end of file diff --git a/config/eclipse-formatter/eclipse-airlift.importorder b/config/eclipse-formatter/eclipse-airlift.importorder new file mode 100644 index 0000000..5700764 --- /dev/null +++ b/config/eclipse-formatter/eclipse-airlift.importorder @@ -0,0 +1,6 @@ +#Organize Import Order +#Thu Jan 24 12:47:53 PST 2013 +3=\# +2=java +1=javax +0= diff --git a/config/eclipse-formatter/eclipse-airlift.xml b/config/eclipse-formatter/eclipse-airlift.xml new file mode 100644 index 0000000..fdea458 --- /dev/null +++ b/config/eclipse-formatter/eclipse-airlift.xml @@ -0,0 +1,399 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/gradle.properties b/gradle.properties new file mode 100644 index 0000000..7325d74 --- /dev/null +++ b/gradle.properties @@ -0,0 +1,5 @@ +org.gradle.jvmargs=-Xmx1G -XX:MaxPermSize=512m -Dfile.encoding=UTF-8 +org.gradle.caching=true +org.gradle.parallel=true +org.gradle.configureondemand=true + diff --git a/linter/pom.xml b/linter/pom.xml index 79385b5..b5d516c 100644 --- a/linter/pom.xml +++ b/linter/pom.xml @@ -19,15 +19,16 @@ - junit - junit - 4.12 + org.junit.jupiter + junit-jupiter + 5.8.1 test - org.testng - testng + org.junit.jupiter + junit-jupiter-api + 5.8.1 test diff --git a/linter/src/test/java/com/facebook/coresql/linter/lint/TestMixedAndOr.java b/linter/src/test/java/com/facebook/coresql/linter/lint/TestMixedAndOr.java index bf93ed9..2b638b7 100644 --- a/linter/src/test/java/com/facebook/coresql/linter/lint/TestMixedAndOr.java +++ b/linter/src/test/java/com/facebook/coresql/linter/lint/TestMixedAndOr.java @@ -16,23 +16,23 @@ import com.facebook.coresql.linter.warning.DefaultWarningCollector; import com.facebook.coresql.linter.warning.WarningCollectorConfig; import com.facebook.coresql.parser.AstNode; -import org.testng.annotations.Test; +import org.junit.jupiter.api.Test; import static com.facebook.coresql.linter.warning.StandardWarningCode.MIXING_AND_OR_WITHOUT_PARENTHESES; import static com.facebook.coresql.parser.ParserHelper.parseStatement; -import static org.testng.Assert.assertEquals; +import static org.junit.jupiter.api.Assertions.assertEquals; public class TestMixedAndOr { - private static final LintingVisitor LINTING_VISITOR = new MixedAndOr(new DefaultWarningCollector(new WarningCollectorConfig().setMaxWarnings(1))); + private static final LintingVisitor LINTING_VISITOR = new MixedAndOr( + new DefaultWarningCollector(new WarningCollectorConfig().setMaxWarnings(1))); private static final String[] NON_WARNING_SQL_STRINGS = new String[] { "SELECT (true or false) and false;", "SELECT true or false or true;", "SELECT true and false and false;", "SELECT a FROM T WHERE a.id = 2 or (a.id = 3 and a.age = 73);", "SELECT a FROM T WHERE (a.id = 2 or a.id = 3) and (a.age = 73 or a.age = 100);", - "SELECT * from Evaluation e JOIN Value v ON e.CaseNum = v.CaseNum\n" + - " AND e.FileNum = v.FileNum AND e.ActivityNum = v.ActivityNum;", + "SELECT * from Evaluation e JOIN Value v ON e.CaseNum = v.CaseNum\n" + " AND e.FileNum = v.FileNum AND e.ActivityNum = v.ActivityNum;", "use a.b;", " SELECT 1;", "SELECT a FROM T;", @@ -46,27 +46,22 @@ public class TestMixedAndOr "CREATE TABLE T AS SELECT TRANSFORM(ARRAY[x], x -> x + 2) AS arra FROM T;", "INSERT INTO T SELECT TRANSFORM(ARRAY[x], x -> x + 2) AS arra FROM T;", "SELECT ROW_NUMBER() OVER(PARTITION BY x) FROM T;", - "SELECT x, SUM(y) OVER (PARTITION BY y ORDER BY 1) AS min\n" + - "FROM (values ('b',10), ('a', 10)) AS T(x, y)\n;", - "SELECT\n" + - " CAST(MAP() AS map>) AS \"bool_tensor_features\";", + "SELECT x, SUM(y) OVER (PARTITION BY y ORDER BY 1) AS min\n" + "FROM (values ('b',10), ('a', 10)) AS T(x, y)\n;", + "SELECT\n" + " CAST(MAP() AS map>) AS \"bool_tensor_features\";", "SELECT f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f())))))))))))))))))))))))))))));", - "SELECT abs, 2 as abs;", - }; - + "SELECT abs, 2 as abs;"}; private static final String[] WARNING_SQL_STRINGS = new String[] { "SELECT true or false and false;", "SELECT a FROM T WHERE a.id = 2 or a.id = 3 and a.age = 73;", - "SELECT a FROM T WHERE (a.id = 2 or a.id = 3) and a.age = 73 or a.age = 100;" - }; + "SELECT a FROM T WHERE (a.id = 2 or a.id = 3) and a.age = 73 or a.age = 100;"}; private static void assertHasMixedAndOrWarnings(String statement, int expectedNumWarnings) { AstNode ast = parseStatement(statement); LINTING_VISITOR.lint(ast); - assertEquals(LINTING_VISITOR.getWarningCollector().getAllWarnings().size(), expectedNumWarnings); - LINTING_VISITOR.getWarningCollector().getAllWarnings().forEach(x -> - assertEquals(x.getWarningCode(), MIXING_AND_OR_WITHOUT_PARENTHESES.getWarningCode())); + assertEquals(LINTING_VISITOR.getWarningCollector().getAllWarnings().size(), expectedNumWarnings, statement); + LINTING_VISITOR.getWarningCollector().getAllWarnings() + .forEach(x -> assertEquals(x.getWarningCode(), MIXING_AND_OR_WITHOUT_PARENTHESES.getWarningCode())); } @Test diff --git a/linter/src/test/java/com/facebook/coresql/linter/warning/TestWarningCollector.java b/linter/src/test/java/com/facebook/coresql/linter/warning/TestWarningCollector.java index f729489..1fe3e3b 100644 --- a/linter/src/test/java/com/facebook/coresql/linter/warning/TestWarningCollector.java +++ b/linter/src/test/java/com/facebook/coresql/linter/warning/TestWarningCollector.java @@ -14,10 +14,10 @@ package com.facebook.coresql.linter.warning; import com.facebook.coresql.parser.AstNode; -import org.testng.annotations.Test; +import org.junit.jupiter.api.Test; import static com.facebook.coresql.parser.ParserHelper.parseStatement; -import static org.testng.Assert.assertEquals; +import static org.junit.jupiter.api.Assertions.assertEquals; public class TestWarningCollector { diff --git a/parser/build.gradle b/parser/build.gradle new file mode 100644 index 0000000..5fcde87 --- /dev/null +++ b/parser/build.gradle @@ -0,0 +1,89 @@ +plugins { + id 'java' + id "ca.coglinc2.javacc" version "latest.release" +} + +dependencies { + testImplementation 'org.junit.jupiter:junit-jupiter-api:5.9.+' + testImplementation 'org.junit.jupiter:junit-jupiter-engine:5.9.+' + testImplementation 'org.junit.jupiter:junit-jupiter-params:5.9.+' + + // for the ASCII Trees + testImplementation 'hu.webarticum:tree-printer:+' + + // https://mvnrepository.com/artifact/com.google.inject/guice + testImplementation 'com.google.inject:guice:5.1.0' + + // https://mvnrepository.com/artifact/jakarta.validation/jakarta.validation-api + testImplementation 'jakarta.validation:jakarta.validation-api:3.0.2' + + // https://mvnrepository.com/artifact/io.airlift/log + testImplementation 'io.airlift:log:206' + + // https://mvnrepository.com/artifact/io.airlift/configuration + testImplementation 'io.airlift:configuration:206' + + // https://mvnrepository.com/artifact/io.airlift/bootstrap + testImplementation 'io.airlift:bootstrap:206' + + // https://mvnrepository.com/artifact/com.google.guava/guava + testImplementation 'com.google.guava:guava:31.1-jre' + + // enforce latest version of JavaCC + javacc 'net.java.dev.javacc:javacc:+' +} + +java { + withSourcesJar() + withJavadocJar() +} + +test { + useJUnitPlatform() + failFast=true + minHeapSize = "128m" + maxHeapSize = "1G" + jvmArgs << [ + '-Djunit.jupiter.execution.parallel.enabled=true', + '-Djunit.jupiter.execution.parallel.config.strategy=dynamic', + '-Djunit.jupiter.execution.parallel.mode.default=concurrent', + //'-Xss=256k' + ] + filter { + excludeTestsMatching("IT*") + excludeTestsMatching("*IT") + excludeTestsMatching("*ITCase") + } + + finalizedBy check +} + +tasks.register('optionalTests', Test) { + useJUnitPlatform() + + description = 'Runs optional tests.' + group = 'verification' + + shouldRunAfter test + + minHeapSize = "128m" + maxHeapSize = "1G" + jvmArgs << [ + '-Djunit.jupiter.execution.parallel.enabled=true', + '-Djunit.jupiter.execution.parallel.config.strategy=dynamic', + '-Djunit.jupiter.execution.parallel.mode.default=concurrent' + ] + filter { + includeTestsMatching("IT*") + includeTestsMatching("*IT") + includeTestsMatching("*ITCase") + } + + testLogging { + events "passed" + } +} + +compileJavacc { + arguments = [grammar_encoding: 'UTF-8', static: 'false' /*, java_template_type: 'modern'*/ ] +} diff --git a/parser/grammar/javacc-options-java.txt b/parser/grammar/javacc-options-java.txt index d598cd2..1aa6deb 100644 --- a/parser/grammar/javacc-options-java.txt +++ b/parser/grammar/javacc-options-java.txt @@ -12,6 +12,9 @@ options { VISITOR = true; VISITOR_RETURN_TYPE = "void"; VISITOR_DATA_TYPE = "Void"; + DEBUG_PARSER = false; + DEBUG_LOOKAHEAD = false; + DEBUG_TOKEN_MANAGER = false; } PARSER_BEGIN(SqlParser) diff --git a/parser/grammar/prepare-javacc-grammar.sh b/parser/grammar/prepare-javacc-grammar.sh index 4340990..e3046b0 100755 --- a/parser/grammar/prepare-javacc-grammar.sh +++ b/parser/grammar/prepare-javacc-grammar.sh @@ -1,4 +1,4 @@ # Concatenate all the fragments into a .jj file. -gendir='../target/generated-sources/javacc' +gendir='../main/jjtree/com/facebook/coresql/parser/' mkdir -p $gendir -cat javacc-options-java.txt nonreservedwords.txt reservedwords.txt sql-spec.txt presto-extensions.txt lexical-elements.txt > $gendir/parser_tmp.jjt +cat javacc-options-java.txt nonreservedwords.txt reservedwords.txt sql-spec.txt presto-extensions.txt lexical-elements.txt > $gendir/parser.jjt diff --git a/parser/main/jjtree/com/facebook/coresql/parser/parser.jjt b/parser/main/jjtree/com/facebook/coresql/parser/parser.jjt new file mode 100644 index 0000000..0c5fbcc --- /dev/null +++ b/parser/main/jjtree/com/facebook/coresql/parser/parser.jjt @@ -0,0 +1,8321 @@ +options { + STATIC = false; + LOOKAHEAD=3; + IGNORE_CASE=true; + UNICODE_INPUT=true; + ERROR_REPORTING=false; + NODE_DEFAULT_VOID = true; + NODE_SCOPE_HOOK = true; + NODE_CLASS = "AstNode"; + NODE_PREFIX = ""; + MULTI = true; + VISITOR = true; + VISITOR_RETURN_TYPE = "void"; + VISITOR_DATA_TYPE = "Void"; + DEBUG_PARSER = false; + DEBUG_LOOKAHEAD = false; + DEBUG_TOKEN_MANAGER = false; +} + +PARSER_BEGIN(SqlParser) +package com.facebook.coresql.parser; + +public class SqlParser { + private boolean IsIdNonReservedWord() { + int kind = getToken(1).kind; + if (kind == regular_identifier || kind == delimited_identifier || kind == Unicode_delimited_identifier) return true; + + if (!(kind >= MIN_NON_RESERVED_WORD && kind <= MAX_NON_RESERVED_WORD)) return false; // Not a nonreserved word. + + // Some special cases. + switch (kind) { + // Some contextual keywords + case GROUP: + case ORDER: + case PARTITION: + return getToken(2).kind != BY; + + case LIMIT: + return getToken(2).kind != unsigned_integer; + + case ROWS: + return getToken(2).kind != BETWEEN; + + // Some builtin functions + case TRIM: + case POSITION: + case MOD: + case POWER: + case RANK: + case ROW_NUMBER: + case FLOOR: + case MIN: + case MAX: + case UPPER: + case LOWER: + case CARDINALITY: + case ABS: + return getToken(2).kind != lparen; + + default: + return true; + } + } + + private boolean SyncToSemicolon() { + while (getToken(1).kind != EOF && getToken(1).kind != SqlParserConstants.semicolon) getNextToken(); + + if (getToken(1).kind == semicolon) { + getNextToken(); + } + + return true; + } + + private boolean NotEof() { + return getToken(1).kind != EOF; + } + + public void PushNode(Node node) { jjtree.pushNode(node); } + public Node PopNode() { return jjtree.popNode(); } + + void jjtreeOpenNodeScope(Node node) { + ((AstNode)node).beginToken = getToken(1); + } + + void jjtreeCloseNodeScope(Node node) { + AstNode astNode = ((AstNode)node); + astNode.endToken = getToken(0); + Token t = astNode.beginToken; + + // For some nodes, the node is opened after some children are already created. Reset the begin for those to be + // the begin of the left-most child. + if (astNode.NumChildren() > 0) { + Token t0 = astNode.GetChild(0).beginToken; + if (t0.beginLine < t.beginLine || (t0.beginLine == t.beginLine && t0.beginColumn < t.beginColumn)) { + astNode.beginToken = t0; + } + } + + if (astNode.IsNegatableOperator()) { + Token t1 = astNode.GetChild(0).endToken; + + if (astNode.Kind() == JJTISNULL) { + // IsNull -- see if the penultimate token is NOT + while (t1 != null && t1.kind != IS) { + t1 = t1.next; + } + + if (t1.next.kind == NOT) { + astNode.SetNegated(true); + } + } + else if (astNode.NumChildren() > 1) { + Token t2 = astNode.GetChild(1).beginToken; + while (t1.next != null && t1.next != t2) { + if (t1.kind == NOT) { + astNode.SetNegated(true); + break; + } + t1 = t1.next; + } + } + } + else if (astNode.NumChildren() == 2 && astNode.IsOperator()) { + // Hack locate the token just before the first token of the second operator + Token t1 = astNode.GetChild(0).endToken; + Token t2 = astNode.GetChild(1).beginToken; + while (t1.next != null && t1.next != t2) { + t1 = t1.next; + } + astNode.SetOperator(t1.kind); + } + else if (astNode.NumChildren() == 1 && astNode.IsOperator()) { + astNode.SetOperator(astNode.beginToken.kind); + } + } + + public AstNode getResult() + { + return (AstNode) jjtree.popNode(); + } + } + +PARSER_END(SqlParser) + +TOKEN_MGR_DECLS: +{ + void setKindToIdentifier(Token t) { + t.kind = regular_identifier; + } + + void setUnicodeLiteralType(Token t) { + t.kind = unicode_literal; + } + + void StoreImage(Token matchedToken) { + matchedToken.image = image.toString(); + } +} + +// Temporary entry point +Node CompilationUnit() #CompilationUnit: +{} +{ + ( + LOOKAHEAD({ NotEof() }) + try { + direct_SQL_statement() + } catch(ParseException pe) { + System.err.println("Parse error: " + getToken(1).beginLine + ":" + getToken(1).beginColumn + " at token: " + getToken(1).image); + SyncToSemicolon(); + } + )* + + + + { return jjtThis; } +} +// non_reserved words + +SKIP: +{ + // Dummy token to get a value range. Will never be mached. And it should be here positionally - before the first non reserved word + +} + +// This production should be here and moved out. See notes for details on handling non-reserved words. +void non_reserved_word(): +{} +{ + + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | // Non-standard + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | // Non-standard + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | // Non-standard + | + | + | + | + | + | + | + | + | + | + | + | + | + | + + + // Non-standard + // Changed the following reserved words into non-reserved one as lot of users use them as identifiers. + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + + // Presto tokens + | + | + | + | + | "NUMERIC_HISTOGRAM" + | + | "HISTOGRAM" + | "APPROEX_PERCENTILE" + | "MAP_AGG" + | "SET_AGG" + | "MAP_UNION" + | +} + +SKIP: +{ + // Dummy token to get a value range. Will never be mached: + +} +SKIP: +{ + // Dummy token to get a value range. Will never be mached. And it should be here positionally - before the first non reserved word + +} + +// reserved words +TOKEN: +{ + + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | +} + +SKIP: +{ + // Dummy token to get a value range. Will never be mached: + +} + +//TODO(kaikalur): create a separate section for all special chars +TOKEN: +{ + + | + | + | +} +void left_bracket_or_trigraph(): +{} +{ + "[" + | "??(" +} + +void right_bracket_or_trigraph(): +{} +{ + "]" + | "??)" +} + +void literal(): +{} +{ + signed_numeric_literal() + | general_literal() +} + +void signed_numeric_literal(): +{} +{ + unsigned_numeric_literal() + | ( ( "+" | "-" ) unsigned_numeric_literal() ) #UnaryExpression(1) +} + +void unsigned_literal(): +{} +{ + unsigned_numeric_literal() + | general_literal() +} + +void unsigned_numeric_literal() #UnsignedNumericLiteral: +{} +{ + exact_numeric_literal() + | +} + +void exact_numeric_literal(): +{} +{ + + | +} + +void general_literal(): +{} +{ + character_string_literal() + | + | Unicode_character_string_literal() + | + | datetime_literal() + | interval_literal() + | boolean_literal() +} + + +void character_string_literal() #CharStringLiteral: +{} +{ +/* + ( "_" character_set_specification() )? "'" ( )* "'" + ( //TODO(kaikalur) - fixit + "'" ( )* "'" + )* +*/ + ( "_" character_set_specification() )? ( )+ +} + +void Unicode_character_string_literal() #CharStringLiteral: +{} +{ + ( "_" character_set_specification() )? +} + +void datetime_literal(): +{} +{ + date_literal() + | time_literal() + | timestamp_literal() +} + +void date_literal() #DateLiteral: +{} +{ + "DATE" character_string_literal() // TODO(kaikalur): fix it +} + +void time_literal() #TimeLiteral: +{} +{ + "TIME" character_string_literal() // TOD(sreeni): fixit +} + +void timestamp_literal() #TimestampLiteral: +{} +{ + "TIMESTAMP" character_string_literal() // TOD(sreeni): fixit +} + +void interval_literal() #IntervalLiteral: +{} +{ + "INTERVAL" [ "+" | "-" ] + character_string_literal() // TOD(sreeni): fixit interval_string() + interval_qualifier() +} + +void boolean_literal(): +{} +{ + ( + "TRUE" + | "FALSE" + ) #BooleanLiteral + | "UNKNOWN" #Unsupported +} + +void identifier() #Identifier: +{} +{ + ( + actual_identifier() + | weird_identifiers() // Presto allow _ and "" as an identifier names - yikes! + ) + + [ identifier_suffix_chain() ] +} + +void actual_identifier(): +{} +{ + + | + | + | LOOKAHEAD(1, { IsIdNonReservedWord() }) non_reserved_word() +} + +void table_name() #TableName: +{} +{ + //TODO(kaikalur): For parsing convenience: local_or_schema_qualified_name() + // To elminate complexlookahead, we make the identitifer chain to flow left to right + identifier_chain() +} + +void schema_name() #SchemaName: +{} +{ + //TODO(kaikalur): For parsing convenience: [ LOOKAHEAD(2) catalog_name() "." ] identifier() + // To elminate complexlookahead, we make the identitifer chain to flow left to right + identifier_chain() +} + +void catalog_name() #CatalogName: +{} +{ + identifier() +} + +void schema_qualified_name() #SchemaQualifiedName: +{} +{ + //TODO(kaikalur): For parsing convenience: [ LOOKAHEAD(2) schema_name() "." ] identifier() + // To elminate complexlookahead, we make the identitifer chain to flow left to right + identifier_chain() +} + +void local_or_schema_qualified_name(): +{} +{ + //TODO(kaikalur): For parsing convenience: [ LOOKAHEAD(2) local_or_schema_qualifier() "." ] identifier() + // To elminate complexlookahead, we make the identitifer chain to flow left to right + identifier_chain() +} + +void local_or_schema_qualifier(): +{} +{ + local_qualifier() + | schema_name() +} + +void cursor_name(): +{} +{ + // TODO(kaikalur): fixit --[ local_qualifier() "." ] identifier() + // To elminate complexlookahead, we make the identitifer chain to flow left to right + identifier_chain() +} + +void local_qualifier(): +{} +{ + "MODULE" +} + +void host_parameter_name(): +{} +{ + ":" identifier() +} + +void external_routine_name(): +{} +{ + identifier() + | ( character_string_literal() )#Unsupported +} + +void character_set_name() #Unsupported: +{} +{ + [ schema_name() "." ] +} + +void schema_resolved_user_defined_type_name(): +{} +{ + user_defined_type_name() +} + +void user_defined_type_name(): +{} +{ + // TODO(kaikalur): fixit -- [ schema_name() "." ] identifier() + // To elminate complexlookahead, we make the identitifer chain to flow left to right + identifier_chain() +} + +void SQL_identifier(): +{} +{ + identifier() + | extended_identifier() +} + +void extended_identifier(): +{} +{ + [ scope_option() ] simple_value_specification() +} + +void dynamic_cursor_name(): +{} +{ + cursor_name() + | extended_cursor_name() +} + +void extended_cursor_name(): +{} +{ + [ scope_option() ] simple_value_specification() +} + +void descriptor_name(): +{} +{ + identifier() + | extended_descriptor_name() +} + +void extended_descriptor_name(): +{} +{ + [ scope_option() ] simple_value_specification() +} + +void scope_option() #Unsupported: +{} +{ + "GLOBAL" + | "LOCAL" +} + +void data_type(): +{} +{ + ( + predefined_type() + | row_type() + | reference_type() + | presto_generic_type() + | path_resolved_user_defined_type_name() + ) + + [ collection_type() ] +} + +void predefined_type() #PredefinedType: +{} +{ + character_string_type() [ "CHARACTER" "SET" character_set_specification() ] + [ collate_clause() ] + | national_character_string_type() [ collate_clause() ] + | binary_string_type() + | numeric_type() + | boolean_type() + | datetime_type() + | interval_type() +} + +void character_string_type(): +{} +{ + "CHARACTER" [ "(" character_length() ")" ] + | "CHAR" [ "(" character_length() ")" ] + | "CHARACTER" "VARYING" "(" character_length() ")" + | "CHAR" "VARYING" "(" character_length() ")" + | "VARCHAR" [ "(" character_length() ")" ] // Non-standard length optional + | character_large_object_type() +} + +void character_large_object_type(): +{} +{ + "CHARACTER" "LARGE" "OBJECT" [ "(" character_large_object_length() ")" ] + | "CHAR" "LARGE" "OBJECT" [ "(" character_large_object_length() ")" ] + | "CLOB" [ "(" character_large_object_length() ")" ] +} + +void national_character_string_type(): +{} +{ + "NATIONAL" "CHARACTER" [ "(" character_length() ")" ] + | "NATIONAL" "CHAR" [ "(" character_length() ")" ] + | "NCHAR" [ "(" character_length() ")" ] + | "NATIONAL" "CHARACTER" "VARYING" "(" character_length() ")" + | "NATIONAL" "CHAR" "VARYING" "(" character_length() ")" + | "NCHAR" "VARYING" "(" character_length() ")" + | national_character_large_object_type() +} + +void national_character_large_object_type(): +{} +{ + "NATIONAL" "CHARACTER" "LARGE" "OBJECT" [ "(" character_large_object_length() ")" ] + | "NCHAR" "LARGE" "OBJECT" [ "(" character_large_object_length() ")" ] + | "NCLOB" [ "(" character_large_object_length() ")" ] +} + +void binary_string_type(): +{} +{ + "BINARY" [ "(" ")" ] + | "BINARY" "VARYING" "(" ")" + | "VARBINARY" "(" ")" + | varbinary() + | binary_large_object_string_type() +} + +void binary_large_object_string_type(): +{} +{ + "BINARY" "LARGE" "OBJECT" [ "(" large_object_length() ")" ] + | "BLOB" [ "(" large_object_length() ")" ] +} + +void numeric_type(): +{} +{ + exact_numeric_type() + | approximate_numeric_type() +} + +void exact_numeric_type(): +{} +{ + "NUMERIC" [ "(" [ "," ] ")" ] + | "DECIMAL" [ "(" [ "," ] ")" ] + | "DEC" [ "(" [ "," ] ")" ] + | "SMALLINT" + | "INTEGER" + | "INT" + | "BIGINT" +} + +void approximate_numeric_type(): +{} +{ + "FLOAT" [ "(" ")" ] + | "REAL" + | "DOUBLE" + [ "PRECISION" ] // Non-standard +} + +void character_length(): +{} +{ + [ char_length_units() ] +} + +void large_object_length(): +{} +{ + [ ] + | +} + +void character_large_object_length(): +{} +{ + large_object_length() [ char_length_units() ] +} + +void char_length_units(): +{} +{ + "CHARACTERS" + | "OCTETS" +} + +void boolean_type(): +{} +{ + "BOOLEAN" +} + +void datetime_type(): +{} +{ + "DATE" + | "TIME" [ "(" ")" ] [ with_or_without_time_zone() ] + | "TIMESTAMP" [ "(" ")" ] + [ with_or_without_time_zone() ] +} + +void with_or_without_time_zone(): +{} +{ + "WITH" "TIME" "ZONE" + | "WITHOUT" "TIME" "ZONE" +} + +void interval_type() #Unsupported: +{} +{ + "INTERVAL" interval_qualifier() +} + +void row_type() #RowType: +{} +{ + "ROW" row_type_body() +} + +void row_type_body(): +{} +{ + "(" field_definition() ( "," field_definition() )* ")" +} + +void reference_type() #Unsupported: +{} +{ + "REF" "(" referenced_type() ")" [ scope_clause() ] +} + +void scope_clause(): +{} +{ + "SCOPE" table_name() +} + +void referenced_type(): +{} +{ + path_resolved_user_defined_type_name() +} + +void path_resolved_user_defined_type_name(): +{} +{ + user_defined_type_name() +} + +void collection_type(): +{} +{ + array_type() + | multiset_type() +} + +void array_type() #ArrayType(): +{} +{ + { PushNode(PopNode()); } + "ARRAY" + [ left_bracket_or_trigraph() right_bracket_or_trigraph() ] +} + +void multiset_type() #Unsupported(): +{} +{ + { PushNode(PopNode()); } + "MULTISET" +} + +void field_definition() #FieldDefinition: +{} +{ + identifier() data_type() +} + +void value_expression_primary(): +{} +{ + parenthesized_value_expression() + | nonparenthesized_value_expression_primary() +} + +void parenthesized_value_expression(): +{} +{ + ( "(" value_expression() + ( "," value_expression() )* // for row_value + ")" + ) #ParenthesizedExpression() + + ( primary_suffix() )* +} + +void nonparenthesized_value_expression_primary(): +{} +{ + contextually_typed_value_specification() + | ( + set_function_specification() + | subquery() + | case_expression() + | cast_specification() + | subtype_treatment() + | new_specification() + | reference_resolution() + | collection_value_constructor() + | multiset_element_reference() + | next_value_expression() + // | routine_invocation() -- handled by method invocation below + | window_function_type() + | "(" column_name_list() ")" // Non-standard + | unsigned_value_specification() + | column_reference() + ) + + ( primary_suffix() )* +} + +void primary_suffix(): +{} +{ + { PushNode(PopNode()); } + ( + field_reference() + | attribute_or_method_reference() + | method_invocation() + | window_function() + | array_element_reference() + | static_method_invocation() + ) +} + +void collection_value_constructor(): +{} +{ + array_value_constructor() + | multiset_value_constructor() +} + +void value_specification(): +{} +{ + literal() + | general_value_specification() +} + +void unsigned_value_specification(): +{} +{ + unsigned_literal() + | general_value_specification() +} + +void general_value_specification(): +{} +{ + identifier_chain() + | + ( + "CURRENT_USER" + | "USER" + ) #BuiltinValue + + | + ( + "?" + | current_collation_specification() + | "SESSION_USER" + | "SYSTEM_USER" + | "CURRENT_CATALOG" + | "CURRENT_PATH" + | "CURRENT_ROLE" + | "CURRENT_SCHEMA" + | "VALUE" + | "CURRENT_DEFAULT_TRANSFORM_GROUP" + | "CURRENT_TRANSFORM_GROUP_FOR_TYPE" path_resolved_user_defined_type_name() + ) #Unsupported + + //TODO(kaikalur): fixit + //| embedded_variable_specification() + //| host_parameter_specification() +} + +void simple_value_specification(): +{} +{ + literal() + | identifier_chain() + + // TODO(kaikalur): fix the next two + //| host_parameter_name() + //| embedded_variable_name() +} + +void target_specification() #Unsupported: +{} +{ + ( + identifier_chain() + | column_reference() + ) + + [ + target_array_element_specification() + | "?" + ] + + // TODO(kaikalur): fix the next two lines + //| embedded_variable_specification() + //| host_parameter_specification() +} + +void simple_target_specification() #Unsupported: +{} +{ + identifier_chain() + | column_reference() + + //TODO(kaikalur): fix the next two + //| embedded_variable_name() + //| host_parameter_name() +} + +void target_array_element_specification() #Unsupported: +{} +{ + left_bracket_or_trigraph() simple_value_specification() right_bracket_or_trigraph() +} + +void current_collation_specification() #Unsupported: +{} +{ + "COLLATION" "FOR" "(" string_value_expression() ")" +} + +void contextually_typed_value_specification(): +{} +{ + implicitly_typed_value_specification() + | ( "DEFAULT" )#Unsupported +} + +void implicitly_typed_value_specification(): +{} +{ + ( "NULL" )#NullLiteral + | empty_specification() +} + +void empty_specification(): +{} +{ + ( "ARRAY" left_bracket_or_trigraph() right_bracket_or_trigraph() )#ArrayLiteral + | ( "MULTISET" left_bracket_or_trigraph() right_bracket_or_trigraph() )#Unsupported +} + +void identifier_chain() #QualifiedName(>1): +{} +{ + identifier() ( "." identifier() )* +} + +void column_reference(): +{} +{ + identifier_chain() + | ( "MODULE" "." identifier() "." identifier() )#Unsupported +} + +void set_function_specification(): +{} +{ + aggregate_function() + | grouping_operation() +} + +void grouping_operation() #GroupingOperation: +{} +{ + "GROUPING" "(" column_reference() ( "," column_reference() )* ")" +} + +void window_function() #WindowFunction(2): +{} +{ + // TODO(kaikalur): fixit -- window_function_type() "OVER" window_name_or_specification() + "OVER" window_name_or_specification() +} + +void window_function_type() : +{} +{ + rank_function_type() "(" ")" + | ( "ROW_NUMBER" "(" ")" )#RowNumber + | aggregate_function() + | ntile_function() + | lead_or_lag_function() + | first_or_last_value_function() + | nth_value_function() +} + +void rank_function_type() #RankFunction: +{} +{ + "RANK" + | "DENSE_RANK" + | "PERCENT_RANK" + | "CUME_DIST" +} + +void ntile_function() #NtileFunction: +{} +{ + "NTILE" "(" number_of_tiles() ")" +} + +void number_of_tiles(): +{} +{ + // TODO(kaikalur) - generalize simple_value_specification() + value_expression() + | ( "?" )#Unsupported() +} + +void lead_or_lag_function() #LeadOrLag: +{} +{ + lead_or_lag() + "(" value_expression() + // Generalized below [ "," exact_numeric_literal() [ "," value_expression() ] ] + [ "," value_expression() [ "," value_expression() ] ] // Non-standard + ")" + [ null_treatment() ] +} + +void lead_or_lag(): +{} +{ + "LEAD" | "LAG" +} + +void null_treatment() #NullTreatment: +{} +{ + "RESPECT" "NULLS" | "IGNORE" "NULLS" +} + +void first_or_last_value_function() #FirstOrLastValueFunction: +{} +{ + first_or_last_value() "(" value_expression() ")" [ null_treatment() ] +} + +void first_or_last_value(): +{} +{ + "FIRST_VALUE" | "LAST_VALUE" +} + +void nth_value_function() #Unsupported: +{} +{ + "NTH_VALUE" "(" value_expression() "," nth_row() ")" [ from_first_or_last() ] [ null_treatment() ] +} + +void nth_row(): +{} +{ + simple_value_specification() + | ( "?" )#Unsupported +} + +void from_first_or_last(): +{} +{ + "FROM" "FIRST" + | "FROM" "LAST" +} + +void window_name_or_specification(): +{} +{ + in_line_window_specification() + | identifier() +} + +void in_line_window_specification(): +{} +{ + window_specification() +} + +void case_expression(): +{} +{ + case_abbreviation() + | case_specification() +} + +void case_abbreviation(): +{} +{ + ( "NULLIF" "(" value_expression() "," value_expression() ")" )#NullIf + | ( "COALESCE" "(" value_expression() ( "," value_expression() )+ ")" )#Coalesce +} + +void case_specification(): +{} +{ + simple_case() + | searched_case() +} + +void simple_case() #CaseExpression: +{} +{ + "CASE" case_operand() ( simple_when_clause() )+ [ else_clause() ] "END" +} + +void searched_case() #CaseExpression: +{} +{ + "CASE" ( searched_when_clause() )+ [ else_clause() ] "END" +} + +void simple_when_clause() #WhenClause: +{} +{ + "WHEN" when_operand_list() "THEN" result() +} + +void searched_when_clause() #WhenClause: +{} +{ + "WHEN" search_condition() "THEN" result() +} + +void else_clause() #ElseClause: +{} +{ + "ELSE" result() +} + +void case_operand(): +{} +{ + row_value_predicand() + | overlaps_predicate_part_1() +} + +void when_operand_list(): +{} +{ + when_operand() ( "," when_operand() )* +} + +void when_operand() #WhenOperand: +{} +{ + // We push a dummy operand so the binary expressions are built properly + ( { } )#SearchedCaseOperand(true) + ( + row_value_predicand() + | comparison_predicate_part_2() + | between_predicate_part_2() + | in_predicate_part_2() + | character_like_predicate_part_2() + | octet_like_predicate_part_2() + | similar_predicate_part_2() + | regex_like_predicate_part_2() + | null_predicate_part_2() + | quantified_comparison_predicate_part_2() + | normalized_predicate_part_2() + | match_predicate_part_2() + | overlaps_predicate_part_2() + | distinct_predicate_part_2() + | member_predicate_part_2() + | submultiset_predicate_part_2() + | set_predicate_part_2() + | type_predicate_part_2() + ) +} + +void result(): +{} +{ + value_expression() + | ( "NULL" )#NullLiteral +} + +void cast_specification() #CastExpression: +{} +{ + "CAST" "(" cast_operand() "AS" cast_target() ")" + | try_cast() +} + +void cast_operand(): +{} +{ + value_expression() + | implicitly_typed_value_specification() +} + +void cast_target(): +{} +{ + data_type() + | schema_qualified_name() +} + +void next_value_expression() #Unsupported: +{} +{ + "NEXT" "VALUE" "FOR" schema_qualified_name() +} + +void field_reference() #FieldReference(2): +{} +{ + // TODO(kaikalur): fixit -- value_expression_primary() "." identifier() + "." identifier() +} + +void subtype_treatment() #Unsupported: +{} +{ + "TREAT" "(" value_expression() "AS" target_subtype() ")" +} + +void target_subtype(): +{} +{ + path_resolved_user_defined_type_name() + | reference_type() +} + +void method_invocation(): +{} +{ + ( ( direct_invocation() #FunctionCall(2) ) [ { PushNode(PopNode()); } udaf_filter() #AggregationFunction(2) ] ) + //| direct_invocation() #FunctionCall(2) + | generalized_invocation() +} + +void direct_invocation(): +{} +{ + // TODO(kaikalur): fixit -- value_expression_primary() "." identifier() [ SQL_argument_list() ] + SQL_argument_list() +} + +void generalized_invocation() #FunctionCall(2): +{} +{ + // "(" value_expression_primary() "AS" data_type() ")" + ( "." identifier() )#QualifiedName(2) [ SQL_argument_list() ] +} + + +void static_method_invocation() #Unsupported: +{} +{ + // TODO(kaikalur): fixit - path_resolved_user_defined_type_name() "::" identifier() + "::" identifier() + [ SQL_argument_list() ] +} + +void new_specification() #Unsupported: +{} +{ + "NEW" path_resolved_user_defined_type_name() SQL_argument_list() +} + +void new_invocation() #Unused: +{} +{ + method_invocation() + | routine_invocation() +} + +void attribute_or_method_reference(): +{} +{ + // TODO(kaikalur): fixit -- value_expression_primary() "->" identifier() + // We treat everything as lambda for now. + // ( "->" identifier() [ SQL_argument_list() ] )#Lambda(>1) + ( lambda_body() )#Lambda(2) +} + +void dereference_operation() #Unsupported: +{} +{ + reference_value_expression() "->" identifier() +} + +void reference_resolution() #Unsupported: +{} +{ + "DEREF" "(" reference_value_expression() ")" +} + +void array_element_reference() #ArrayElement(2): +{} +{ + // TODO(kaikalur): fixit -- array_value_expression() + left_bracket_or_trigraph() value_expression() right_bracket_or_trigraph() +} + +void multiset_element_reference() #Unsupported: +{} +{ + "ELEMENT" "(" multiset_value_expression() ")" +} + +void value_expression(): +{} +{ + boolean_value_expression() + | common_value_expression() + | row_value_expression() +} + +void common_value_expression(): +{} +{ + numeric_value_expression() + | string_value_expression() + | datetime_value_expression() + | interval_value_expression() + | user_defined_type_value_expression() + | reference_value_expression() + | collection_value_expression() +} + +void user_defined_type_value_expression(): +{} +{ + value_expression_primary() +} + +void reference_value_expression(): +{} +{ + value_expression_primary() +} + +void collection_value_expression(): +{} +{ + array_value_expression() + | multiset_value_expression() +} + +void numeric_value_expression(): +{} +{ + term() + ( + { PushNode(PopNode()); } term() #AdditiveExpression(2) + | { PushNode(PopNode()); } term() #AdditiveExpression(2) + )* +} + +void term(): +{} +{ + factor() + ( + { PushNode(PopNode()); } factor() #MultiplicativeExpression(2) + | { PushNode(PopNode()); } factor() #MultiplicativeExpression(2) + | { PushNode(PopNode()); } percent_operator() factor() #MultiplicativeExpression(2) + )* +} + +void factor(): +{} +{ + ( ( "+" | "-" ) numeric_primary() )#UnaryExpression(1) + | numeric_primary() +} + +void numeric_primary(): +{} +{ + numeric_value_function() + | character_value_expression() +} + +void numeric_value_function() #BuiltinFunctionCall: +{} +{ + // Builtin function calls are weird in that the name is a keyword and then a ( expressions ) so we open a new scope and just make an ArgumentList + // so that it will be just like a FunctionCall + ( + position_expression() + | regex_occurrences_function() + | regex_position_expression() + | extract_expression() + | length_expression() + | cardinality_expression() + | max_cardinality_expression() + | absolute_value_expression() + | modulus_expression() + | natural_logarithm() + | exponential_function() + | power_function() + | square_root() + | floor_function() + | ceiling_function() + | width_bucket_function() + ) #ArgumentList(>0) +} + +void position_expression(): +{} +{ + character_position_expression() + | binary_position_expression() +} + +void regex_occurrences_function() #Unsupported: +{} +{ + "OCCURRENCES_REGEX" "(" + character_value_expression() [ "FLAG" character_value_expression() ] + "IN" character_value_expression() + [ "FROM" numeric_value_expression() ] + [ "USING" char_length_units() ] + ")" +} + +void regex_position_expression() #Unsupported: +{} +{ + "POSITION_REGEX" "(" + [ regex_position_start_or_after() ] + character_value_expression() [ "FLAG" character_value_expression() ] + "IN" character_value_expression() + [ "FROM" numeric_value_expression() ] + [ "USING" char_length_units() ] + [ "OCCURRENCE" numeric_value_expression() ] + [ "GROUP" numeric_value_expression() ] + ")" +} + +void regex_position_start_or_after(): +{} +{ + "START" + | "AFTER" +} + +void character_position_expression(): +{} +{ + "POSITION" "(" character_value_expression() "IN" character_value_expression() + [ ( "USING" char_length_units() ) #Unsupported ] ")" +} + +void binary_position_expression(): +{} +{ + "POSITION" "(" binary_value_expression() "IN" binary_value_expression() ")" +} + +void length_expression(): +{} +{ + char_length_expression() + | octet_length_expression() +} + +void char_length_expression(): +{} +{ + ( "CHAR_LENGTH" | "CHARACTER_LENGTH" ) "(" character_value_expression() + [ ( "USING" char_length_units() ) #Unsupported ] ")" +} + +void octet_length_expression() #Unsupported: +{} +{ + "OCTET_LENGTH" "(" string_value_expression() ")" +} + +void extract_expression(): +{} +{ + "EXTRACT" "(" extract_field() "FROM" extract_source() ")" +} + +void extract_field(): +{} +{ + primary_datetime_field() + | time_zone_field() +} + +void time_zone_field() #TimeZoneField: +{} +{ + "TIMEZONE_HOUR" + | "TIMEZONE_MINUTE" +} + +void extract_source(): +{} +{ + datetime_value_expression() + | interval_value_expression() +} + +void cardinality_expression(): +{} +{ + "CARDINALITY" "(" collection_value_expression() ")" +} + +void max_cardinality_expression() #Unsupported: +{} +{ + "MAX_CARDINALITY" "(" array_value_expression() ")" +} + +void absolute_value_expression(): +{} +{ + "ABS" "(" numeric_value_expression() ")" +} + +void modulus_expression(): +{} +{ + "MOD" "(" numeric_value_expression() "," numeric_value_expression() ")" +} + +void natural_logarithm(): +{} +{ + "LN" "(" numeric_value_expression() ")" +} + +void exponential_function(): +{} +{ + "EXP" "(" numeric_value_expression() ")" +} + +void power_function(): +{} +{ + "POWER" "(" numeric_value_expression() "," numeric_value_expression() ")" +} + +void square_root(): +{} +{ + "SQRT" "(" numeric_value_expression() ")" +} + +void floor_function(): +{} +{ + "FLOOR" "(" numeric_value_expression() ")" +} + +void ceiling_function(): +{} +{ + ( "CEIL" | "CEILING" ) "(" numeric_value_expression() ")" +} + +void width_bucket_function(): +{} +{ + "WIDTH_BUCKET" "(" numeric_value_expression() "," numeric_value_expression() + [ "," numeric_value_expression() "," numeric_value_expression() ] // Non-standard optional + ")" +} + +void string_value_expression(): +{} +{ + character_value_expression() + | binary_value_expression() +} + +void character_value_expression() #Concatenation(>1): +{} +{ + character_factor() ( concatenation() )* +} + +void concatenation(): +{} +{ + // TODO(kaikalur): fixit -- character_value_expression() "||" character_factor() + "||" character_factor() +} + +void character_factor(): +{} +{ + character_primary() [ ( collate_clause() )#Unsupported ] +} + +void character_primary(): +{} +{ + string_value_function() + | binary_value_expression() +} + +void binary_value_expression() #Concatenation(>1): +{} +{ + binary_primary() ( binary_concatenation() )* +} + +void binary_primary(): +{} +{ + string_value_function() + | datetime_value_expression() +} + +void binary_concatenation(): +{} +{ + // TODO(kaikalur): fixit -- binary_value_expression() "||" binary_primary() + "||" binary_primary() +} + +void string_value_function(): +{} +{ + character_value_function() + | binary_value_function() +} + +void character_value_function() #BuiltinFunctionCall: +{} +{ + ( + character_substring_function() + | regular_expression_substring_function() + | regex_substring_function() + | fold() + | transcoding() + | character_transliteration() + | regex_transliteration() + | trim_function() + | character_overlay_function() + | normalize_function() + | specific_type_method() + ) #ArgumentList(>0) +} + +void character_substring_function(): +{} +{ + "SUBSTRING" "(" character_value_expression() "FROM" numeric_value_expression() + [ "FOR" numeric_value_expression() ] + [ ( "USING" char_length_units() )#Unsupported ] + ")" +} + +void regular_expression_substring_function() #Unsupported: +{} +{ + "SUBSTRING" "(" character_value_expression() "SIMILAR" character_value_expression() + "ESCAPE" character_value_expression() ")" +} + +void regex_substring_function() #Unsupported: +{} +{ + "SUBSTRING_REGEX" "(" + character_value_expression() [ "FLAG" character_value_expression() ] + "IN" character_value_expression() + [ "FROM" numeric_value_expression() ] + [ "USING" char_length_units() ] + [ "OCCURRENCE" numeric_value_expression() ] + [ "GROUP" numeric_value_expression() ] + ")" +} + +void fold(): +{} +{ + ( "UPPER" | "LOWER" ) "(" character_value_expression() ")" +} + +void transcoding() #Unsupported: +{} +{ + "CONVERT" "(" character_value_expression() "USING" schema_qualified_name() ")" +} + +void character_transliteration() #Unsupported: +{} +{ + "TRANSLATE" "(" character_value_expression() "USING" schema_qualified_name() ")" +} + +void regex_transliteration() #Unsupported: +{} +{ + "TRANSLATE_REGEX" "(" + character_value_expression() [ "FLAG" character_value_expression() ] + "IN" character_value_expression() + [ "WITH" character_value_expression() ] + [ "FROM" numeric_value_expression() ] + [ "USING" char_length_units() ] + [ "OCCURRENCE" regex_transliteration_occurrence() ] + ")" +} + +void regex_transliteration_occurrence(): +{} +{ + "ALL" + | numeric_value_expression() +} + +void trim_function(): +{} +{ + "TRIM" "(" trim_operands() ")" +} + +void trim_operands(): +{} +{ + [ trim_specification() ] + character_value_expression() + [ + ("," | ( "FROM" )#Unsupported ) // Non-standard + character_value_expression() + ] +} + +void trim_specification() #Unsupported: +{} +{ + "LEADING" + | "TRAILING" + | "BOTH" +} + +void character_overlay_function() #Unsupported: +{} +{ + "OVERLAY" "(" character_value_expression() "PLACING" character_value_expression() + "FROM" numeric_value_expression() [ "FOR" numeric_value_expression() ] + [ "USING" char_length_units() ] ")" +} + +void normalize_function() #Unsupported: +{} +{ + "NORMALIZE" "(" character_value_expression() + [ "," normal_form() [ "," normalize_function_result_length() ] ] ")" +} + +void normal_form(): +{} +{ + "NFC" + | "NFD" + | "NFKC" + | "NFKD" +} + +void normalize_function_result_length(): +{} +{ + character_length() + | character_large_object_length() +} + +void specific_type_method() #Unsupported: +{} +{ + //user_defined_type_value_expression() "." "SPECIFICTYPE" + "." "SPECIFICTYPE" [ "(" ")" ] +} + +void binary_value_function(): +{} +{ + binary_substring_function() + | binary_trim_function() + | binary_overlay_function() +} + +void binary_substring_function() #Unsupported: +{} +{ + "SUBSTRING" "(" binary_value_expression() "FROM" numeric_value_expression() + [ "FOR" numeric_value_expression() ] ")" +} + +void binary_trim_function(): +{} +{ + "TRIM" "(" binary_trim_operands() ")" +} + +void binary_trim_operands(): +{} +{ + [ trim_specification() ] + binary_value_expression() + [ + ("," | ( "FROM" )#Unsupported ) // Non-standard + binary_value_expression() + ] +} + +void binary_overlay_function() #Unsupported: +{} +{ + "OVERLAY" "(" binary_value_expression() "PLACING" binary_value_expression() + "FROM" numeric_value_expression() [ "FOR" numeric_value_expression() ] ")" +} + +void datetime_value_expression(): +{} +{ + ( datetime_term() ) // [ ( "+" | "-" ) interval_term() ] )#AdditiveExpression(>1) + | ( interval_value_expression() ) //[ "+" datetime_term() ] )#AdditiveExpression(>1) +} + +void datetime_term(): +{} +{ + datetime_factor() +} + +void datetime_factor() : +{} +{ + datetime_primary() [ time_zone() ] +} + +void datetime_primary(): +{} +{ + datetime_value_function() + | interval_value_expression() +} + +void time_zone() #Unsupported: +{} +{ + "AT" time_zone_specifier() +} + +void time_zone_specifier(): +{} +{ + "LOCAL" + | "TIME" "ZONE" interval_primary() +} + +void datetime_value_function() #BuiltinFunctionCall: +{} +{ + ( + current_date_value_function() + | current_time_value_function() + | current_timestamp_value_function() + | current_local_time_value_function() + | current_local_timestamp_value_function() + ) #ArgumentList(>0) +} + +void current_date_value_function(): +{} +{ + "CURRENT_DATE" +} + +void current_time_value_function(): +{} +{ + "CURRENT_TIME" [ ( "(" ")" )#Unsupported ] +} + +void current_local_time_value_function(): +{} +{ + "LOCALTIME" [ ( "(" ")" )#Unsupported ] +} + +void current_timestamp_value_function(): +{} +{ + "CURRENT_TIMESTAMP" [ ( "(" ")" )#Unsupported ] +} + +void current_local_timestamp_value_function() #Unsupported: +{} +{ + "LOCALTIMESTAMP" [ ( "(" ")" )#Unsupported ] +} + +void interval_value_expression(): +{} +{ + ( interval_term() ) //[ ( "+" | "-" ) interval_term() ] ) #AdditiveExpression(>1) + | LOOKAHEAD("(" datetime_value_expression() "-" datetime_term() ")" ) + ( "(" datetime_value_expression() "-" datetime_term() ")" )#AdditiveExpression + interval_qualifier() +} + +void interval_term() #MultiplicativeExpression(>1): +{} +{ + interval_factor() [ ( "*" | "/" ) factor() ] + //TODO(kaikalur) - fixit | term() [ "*" interval_factor() ] +} + +void interval_factor(): +{} +{ + ( ( "+" | "-" ) interval_primary() )#UnaryExpression(1) + | interval_primary() +} + +void interval_primary(): +{} +{ + interval_value_function() +|( + array_value_expression() +) [ ( interval_qualifier() )#Unsupported ] +} + + +void interval_value_function() #BuiltinFunctionCall: +{} +{ + ( interval_absolute_value_function() ) #ArgumentList(>0) +} + +void interval_absolute_value_function(): +{} +{ + "ABS" "(" interval_value_expression() ")" +} + +void boolean_value_expression() #OrExpression(>1): +{} +{ + boolean_term() ( "OR" boolean_term() )* +} + +void boolean_term() #AndExpression(>1): +{} +{ + boolean_factor() ( "AND" boolean_factor() )* +} + +void boolean_factor(): +{} +{ + ( "NOT" boolean_test() )#NotExpression + | boolean_test() +} + +void boolean_test() #IsExpression(>1): +{} +{ + boolean_primary() + [ "IS" [ "NOT" ] truth_value() ] +} + +void truth_value(): +{} +{ + "TRUE" + | "FALSE" + | ( "UNKNOWN" )#Unsupported +} + +void boolean_primary(): +{} +{ + predicate() + | boolean_predicand() +} + +void boolean_predicand(): +{} +{ + parenthesized_boolean_value_expression() + | numeric_value_expression() +} + +void parenthesized_boolean_value_expression() #ParenthesizedExpression: +{} +{ + "(" boolean_value_expression() ")" +} + +void array_value_expression() #Concatenation(>1): +{} +{ + array_primary() ( "||" array_primary() )* +} + +void array_value_expression_1(): +{} +{ + array_value_expression() +} + +void array_primary(): +{} +{ + array_value_function() + | multiset_value_expression() +} + +void array_value_function() #Unsupported: +{} +{ + trim_array_function() +} + +void trim_array_function(): +{} +{ + "TRIM_ARRAY" "(" array_value_expression() "," numeric_value_expression() ")" +} + +void array_value_constructor(): +{} +{ + array_value_constructor_by_enumeration() + | array_value_constructor_by_query() +} + +void array_value_constructor_by_enumeration() #ArrayLiteral: +{} +{ + "ARRAY" left_bracket_or_trigraph() + [ array_element_list() ] // For parsing ease. + right_bracket_or_trigraph() +} + +void array_element_list(): +{} +{ + array_element() ( "," array_element() )* +} + +void array_element(): +{} +{ + value_expression() +} + +void array_value_constructor_by_query() #Unsupported: +{} +{ + "ARRAY" subquery() +} + +void multiset_value_expression() : +{} +{ + multiset_term() [ ( "MULTISET" "UNION" [ "ALL" | "DISTINCT" ] | "MULTISET" "EXCEPT" [ "ALL" | "DISTINCT" ] ) multiset_term() #Unsupported(2) ] +} + +void multiset_term() : +{} +{ + multiset_primary() [ "MULTISET" "INTERSECT" [ "ALL" | "DISTINCT" ] multiset_primary() #Unsupported(2)] +} + +void multiset_primary(): +{} +{ + multiset_set_function() + | value_expression_primary() +} + +void multiset_set_function() #Unsupported: +{} +{ + "SET" "(" multiset_value_expression() ")" +} + +void multiset_value_constructor() #Unsupported: +{} +{ + multiset_value_constructor_by_enumeration() + | multiset_value_constructor_by_query() + | table_value_constructor_by_query() +} + +void multiset_value_constructor_by_enumeration(): +{} +{ + "MULTISET" left_bracket_or_trigraph() multiset_element_list() right_bracket_or_trigraph() +} + +void multiset_element_list(): +{} +{ + multiset_element() ( "," multiset_element() )* +} + +void multiset_element(): +{} +{ + value_expression() +} + +void multiset_value_constructor_by_query(): +{} +{ + "MULTISET" subquery() +} + +void table_value_constructor_by_query(): +{} +{ + "TABLE" subquery() +} + +void row_value_constructor(): +{} +{ + explicit_row_value_constructor() + | common_value_expression() + | boolean_value_expression() +} + +void explicit_row_value_constructor(): +{} +{ + ( "ROW" "(" row_value_constructor_element_list() ")" )#RowExpression + | subquery() + | ( "(" row_value_constructor_element() [ "," row_value_constructor_element_list() ] ")" )#RowExpression +} + +void row_value_constructor_element_list(): +{} +{ + row_value_constructor_element() ( "," row_value_constructor_element() )* +} + +void row_value_constructor_element(): +{} +{ + value_expression() +} + +void contextually_typed_row_value_constructor(): +{} +{ + common_value_expression() + | boolean_value_expression() + | contextually_typed_value_specification() + | ( "(" contextually_typed_value_specification() ")" )#ParenthesizedExpression + | ("(" contextually_typed_row_value_constructor_element() "," + contextually_typed_row_value_constructor_element_list() ")" )#ParenthesizedExpression + | ( "ROW" "(" contextually_typed_row_value_constructor_element_list() ")" )#RowExression +} + +void contextually_typed_row_value_constructor_element_list(): +{} +{ + contextually_typed_row_value_constructor_element() + ( "," contextually_typed_row_value_constructor_element() )* +} + +void contextually_typed_row_value_constructor_element(): +{} +{ + contextually_typed_value_specification() + //| value_expression() +} + +void row_value_constructor_predicand(): +{} +{ + common_value_expression() + | explicit_row_value_constructor() + //| boolean_predicand() +} + +void row_value_expression(): +{} +{ + explicit_row_value_constructor() + | row_value_special_case() +} + +void table_row_value_expression(): +{} +{ + row_value_constructor() + | row_value_special_case() +} + +void contextually_typed_row_value_expression(): +{} +{ + contextually_typed_row_value_constructor() + | row_value_special_case() +} + +void row_value_predicand(): +{} +{ + row_value_constructor_predicand() + | row_value_special_case() +} + +void row_value_special_case(): +{} +{ + common_value_expression() + | nonparenthesized_value_expression_primary() +} + +void table_value_constructor() #Values: +{} +{ + "VALUES" row_value_expression_list() +} + +void row_value_expression_list(): +{} +{ + table_row_value_expression() ( "," table_row_value_expression() )* +} + +void contextually_typed_table_value_constructor() #Values: +{} +{ + "VALUES" contextually_typed_row_value_expression_list() +} + +void contextually_typed_row_value_expression_list(): +{} +{ + contextually_typed_row_value_expression() + ( "," contextually_typed_row_value_expression() )* +} + +void table_expression() #TableExpression: +{} +{ + from_clause() + [ where_clause() ] + [ group_by_clause() ] + [ having_clause() ] + [ window_clause() ] +} + +void from_clause() #FromClause: +{} +{ + "FROM" table_reference_list() +} + +void table_reference_list() #CommaJoin(>1): +{} +{ + table_reference() ( "," table_reference() )* +} + +void table_reference() #Join(>1): +{} +{ + table_factor() ( joined_table() )* +} + +void table_factor() #TableSample(>1): +{} +{ + table_primary() [ sample_clause() ] + + [ ( partitioned_join_table() ) #Unsupported ] // For removing left recursion +} + +void sample_clause(): +{} +{ + "TABLESAMPLE" sample_method() "(" sample_percentage() ")" + [ repeatable_clause() ] +} + +void sample_method(): +{} +{ + "BERNOULLI" + | "SYSTEM" +} + +void repeatable_clause() #Unsupported: +{} +{ + "REPEATABLE" "(" repeat_argument() ")" +} + +void sample_percentage(): +{} +{ + numeric_value_expression() +} + +void repeat_argument(): +{} +{ + numeric_value_expression() +} + +void table_primary() #AliasedTable(>1): +{} +{ + ( + table_or_query_name() + | LOOKAHEAD("(" ("WITH"|"SELECT"|"VALUES"|"TABLE")) derived_table() + | parenthesized_joined_table() + | lateral_derived_table() + | collection_derived_table() + | table_function_derived_table() + | only_spec() + | data_change_delta_table() + ) + + [ alias() ] +} + +void alias() #Alias: +{} +{ + [ "AS" ] + identifier() + [ identifier_suffix_chain() ] + [ "(" column_name_list() ")" ] +} + +void system_version_specification() #Unsupported: +{} +{ + "AS" "OF" "SYSTEM" "TIME" datetime_value_expression() + | "VERSIONS" "BEFORE" "SYSTEM" "TIME" datetime_value_expression() + | "VERSIONS" "AFTER" "SYSTEM" "TIME" datetime_value_expression() + | "VERSIONS" "BETWEEN" [ "ASYMMETRIC" | "SYMMETRIC" ] + "SYSTEM" "TIME" datetime_value_expression() "AND" datetime_value_expression() +} + +void only_spec() #Unsupported: +{} +{ + "ONLY" "(" table_or_query_name() ")" +} + +// TODO(kaikalur) - check Presto and Spark for lateral +void lateral_derived_table() #Unsupported: +{} +{ + "LATERAL" subquery() +} + +void collection_derived_table() #Unnest: +{} +{ + "UNNEST" "(" collection_value_expression() + ( "," collection_value_expression() )* ")" + [ "WITH" "ORDINALITY" ] +} + +void table_function_derived_table() #Unsupported: +{} +{ + "TABLE" "(" collection_value_expression() ")" +} + +void derived_table(): +{} +{ + LOOKAHEAD("(" ("SELECT"|"VALUES"|"TABLE")) query_expression() + | subquery() +} + +void table_or_query_name(): +{} +{ + table_name() + | identifier() +} + +void column_name_list() #ColumnNames: +{} +{ + identifier() ( "," identifier() )* +} + +void data_change_delta_table() #Unsupported: +{} +{ + result_option() "TABLE" "(" data_change_statement() ")" +} + +void data_change_statement(): +{} +{ + delete_statement_searched() + | insert_statement() + | merge_statement() + | update_statement_searched() +} + +void result_option(): +{} +{ + "FINAL" + | "NEW" + | "OLD" +} + +void parenthesized_joined_table() #Join(>1): +{} +{ + // TODO(kaikalur) -- double check the following + //"(" parenthesized_joined_table() ")" + //| "(" joined_table() ")" + + "(" + ( + LOOKAHEAD("(" ("WITH"|"SELECT"|"VALUES"|"TABLE")) table_primary() + | table_reference() + ) + + ( joined_table() )* + ")" +} + +void joined_table(): +{} +{ + cross_join() + | qualified_join() + | natural_join() +} + +void cross_join(): +{} +{ + //TODO(kaikalur): fixit --table_reference() "CROSS" "JOIN" table_factor() + "CROSS" "JOIN" table_factor() +} + +void qualified_join(): +{} +{ + //TODO(kaikalur) -- check partitioned ( table_reference() | partitioned_join_table() ) + [ join_type() ] "JOIN" + ( table_reference() | partitioned_join_table() ) + join_specification() +} + +void partitioned_join_table() #Unsupported: +{} +{ + "PARTITION" "BY" partitioned_join_column_reference_list() +} + +void partitioned_join_column_reference_list(): +{} +{ + "(" partitioned_join_column_reference() + ( "," partitioned_join_column_reference() )* + ")" +} + +void partitioned_join_column_reference(): +{} +{ + column_reference() +} + +void natural_join() #Unsupported: +{} +{ + //TODO(kaikalur) -- check ( table_reference() | partitioned_join_table() ) + "NATURAL" [ join_type() ] "JOIN" + ( table_factor() | partitioned_join_table() ) +} + +void join_specification(): +{} +{ + join_condition() + | named_columns_join() +} + +void join_condition() #OnClause: +{} +{ + "ON" search_condition() +} + +void named_columns_join() #UsingClause: +{} +{ + "USING" "(" join_column_list() ")" +} + +void join_type(): +{} +{ + "INNER" + | outer_join_type() [ "OUTER" ] +} + +void outer_join_type(): +{} +{ + "LEFT" + | "RIGHT" + | "FULL" +} + +void join_column_list(): +{} +{ + column_name_list() +} + +void where_clause() #WhereClause: +{} +{ + "WHERE" search_condition() +} + +void group_by_clause() #GroupbyClause: +{} +{ + "GROUP" "BY" + [ ( set_quantifier() )#Unsupported ] + grouping_element_list() +} + +void grouping_element_list(): +{} +{ + grouping_element() ( "," grouping_element() )* +} + +void grouping_element(): +{} +{ + rollup_list() + | cube_list() + | grouping_sets_specification() + | empty_grouping_set() + | ordinary_grouping_set() +} + +void ordinary_grouping_set(): +{} +{ + grouping_column_reference() + | "(" grouping_column_reference_list() ")" +} + +void grouping_column_reference(): +{} +{ + ( + grouping_expression() + | column_reference() + ) + + [ ( collate_clause() )#Unsupported ] +} + +void grouping_column_reference_list(): +{} +{ + grouping_column_reference() ( "," grouping_column_reference() )* +} + +void rollup_list() #Rollup: +{} +{ + "ROLLUP" "(" ordinary_grouping_set_list() ")" +} + +void ordinary_grouping_set_list(): +{} +{ + ordinary_grouping_set() ( "," ordinary_grouping_set() )* +} + +void cube_list() #Cube: +{} +{ + "CUBE" "(" ordinary_grouping_set_list() ")" +} + +void grouping_sets_specification() #GroupingSets: +{} +{ + "GROUPING" "SETS" "(" grouping_set_list() ")" +} + +void grouping_set_list(): +{} +{ + grouping_set() ( "," grouping_set() )* +} + +void grouping_set(): +{} +{ + rollup_list() + | cube_list() + | grouping_sets_specification() + | empty_grouping_set() + | ordinary_grouping_set() +} + +void empty_grouping_set(): +{} +{ + "(" ")" +} + +void having_clause() #HavingClause: +{} +{ + "HAVING" search_condition() +} + +void window_clause() #Unsupported: +{} +{ + "WINDOW" window_definition_list() +} + +void window_definition_list(): +{} +{ + window_definition() ( "," window_definition() )* +} + +void window_definition(): +{} +{ + identifier() "AS" window_specification() +} + +void window_specification() #WindowSpecification: +{} +{ + "(" [ window_specification_details() ] ")" +} + +void window_specification_details(): +{} +{ + // TODO(kaikalur): checkout this rule + ( + window_partition_clause() + | window_order_clause() + | window_frame_clause() + | existing_identifier() + )+ +} + +void existing_identifier(): +{} +{ + identifier() +} + +void window_partition_clause() #PartitionByClause: +{} +{ + "PARTITION" "BY" window_partition_column_reference_list() +} + +void window_partition_column_reference_list(): +{} +{ + window_partition_column_reference() + ( "," window_partition_column_reference() )* +} + +void window_partition_column_reference(): +{} +{ + ( + value_expression() // Non-standard + | column_reference() + ) + [ collate_clause() ] +} + +void window_order_clause() #OrderByClause: +{} +{ + "ORDER" "BY" sort_specification_list() +} + +void window_frame_clause(): +{} +{ + window_frame_units() window_frame_extent() + [ window_frame_exclusion() ] +} + +void window_frame_units() #WindowFrameUnits: +{} +{ + "ROWS" + | "RANGE" +} + +void window_frame_extent() #WindowFrameExtent: +{} +{ + window_frame_start() + | window_frame_between() +} + +void window_frame_start(): +{} +{ + ( "UNBOUNDED" "PRECEDING" )#UnboundedPreceding + | ( "CURRENT" "ROW" )#CurrentRow + | window_frame_preceding() +} + +void window_frame_preceding() #WindowFramePreceding: +{} +{ + //TODO(kaikalur) - genralized unsigned_value_specification() "PRECEDING" + value_expression() "PRECEDING" +} + +void window_frame_between() #WindowFrameBetween: +{} +{ + "BETWEEN" window_frame_bound() "AND" window_frame_bound() +} + +void window_frame_bound(): +{} +{ + window_frame_start() + | ( "UNBOUNDED" "FOLLOWING" )#UnboundedFollowing + | window_frame_following() +} + +void window_frame_following() #WindowFrameFollowing: +{} +{ + //TODO(kaikalur) - genralized unsigned_value_specification() "FOLLOWING" + value_expression() "FOLLOWING" +} + +void window_frame_exclusion() #Unsupported: +{} +{ + "EXCLUDE" "CURRENT" "ROW" + | "EXCLUDE" "GROUP" + | "EXCLUDE" "TIES" + | "EXCLUDE" "NO" "OTHERS" +} + +void query_specification() #Select: +{} +{ + "SELECT" [ set_quantifier() ] select_list() + [ table_expression() ] // Non-standard +} + +void select_list() #SelectList: +{} +{ + star() + ( "," select_sublist() )* // Non-standard + | select_sublist() ( "," select_sublist() )* + [ "," star() ] // Non-standard + ( "," select_sublist() )* // Non-standard +} + +void star() #SelectItem: +{} +{ + ( "*" ) #Star +} + +void select_sublist() #SelectItem: +{} +{ + //derived_column() + //| qualified_asterisk() + + // For ease of parsing + derived_column() + [ + "." ( "*" )#Star() + [ ( "AS" "(" all_fields_column_name_list() ")" )#Unsupported ] + | as_clause() + ] +} + +void qualified_asterisk(): +{} +{ + ( asterisked_identifier_chain() "." "*" )#Star + | all_fields_reference() +} + +void asterisked_identifier_chain() #QualifiedName(>1): +{} +{ + identifier() ( "." identifier() )* +} + +void derived_column(): +{} +{ + value_expression() [ as_clause() ] +} + +void as_clause() #Alias: +{} +{ + [ "AS" ] identifier() +} + +void all_fields_reference(): +{} +{ + value_expression_primary() "." "*" + [ ( "AS" "(" all_fields_column_name_list() ")" )#Unsupported ] +} + +void all_fields_column_name_list(): +{} +{ + column_name_list() +} + +void query_expression() #QuerySpecification(>1): +{} +{ + [ with_clause() ] query_expression_body() + [ order_by_clause() ] + // TODO(kaikalur): validate + [ limit_clause() | result_offset_clause() [ fetch_first_clause() ] | fetch_first_clause() ] +} + +void with_clause() #WithClause: +{} +{ + "WITH" [ "RECURSIVE" ] with_list() +} + +void with_list(): +{} +{ + with_list_element() ( "," with_list_element() )* +} + +void with_list_element() #Cte: +{} +{ + identifier() [ "(" column_name_list() ")" ] + "AS" subquery() [ search_or_cycle_clause() ] +} + +void query_expression_body() #SetOperation(>1): +{} +{ + query_term() + ( "UNION" [ "ALL" | "DISTINCT" ] + [ corresponding_spec() ] query_term() + | "EXCEPT" [ "ALL" | "DISTINCT" ] + [ corresponding_spec() ] query_term() + )* +} + +void query_term() #SetOperation(>1): +{} +{ + query_primary() ( "INTERSECT" [ "ALL" | "DISTINCT" ] [ corresponding_spec() ] query_primary() )* +} + +void query_primary(): +{} +{ + ( "(" query_expression_body() + [ order_by_clause() ] + ( [ limit_clause() ] | [ result_offset_clause() ] [ fetch_first_clause() ] ) + ")" + )#Subquery + | simple_table() +} + +void simple_table(): +{} +{ + table_value_constructor() + | explicit_table() + | query_specification() +} + +void explicit_table(): +{} +{ + "TABLE" table_or_query_name() +} + +void corresponding_spec() #Unsupported: +{} +{ + "CORRESPONDING" [ "BY" "(" column_name_list() ")" ] +} + +void order_by_clause() #OrderByClause: +{} +{ + "ORDER" "BY" sort_specification_list() +} + +void result_offset_clause() #Unsupported: +{} +{ + "OFFSET" simple_value_specification() ( "ROW" | "ROWS" ) +} + +void fetch_first_clause() #Unsupported: +{} +{ + "FETCH" ( "FIRST" | "NEXT" ) [ simple_value_specification() ] ( "ROW" | "ROWS" ) "ONLY" +} + +void search_or_cycle_clause() #Unsupported: +{} +{ + search_clause() + | cycle_clause() + | search_clause() cycle_clause() +} + +void search_clause(): +{} +{ + "SEARCH" recursive_search_order() "SET" identifier() +} + +void recursive_search_order(): +{} +{ + "DEPTH" "FIRST" "BY" column_name_list() + | "BREADTH" "FIRST" "BY" column_name_list() +} + +void cycle_clause(): +{} +{ + "CYCLE" cycle_column_list() "SET" identifier() "TO" value_expression() + "DEFAULT" value_expression() "USING" identifier() +} + +void cycle_column_list(): +{} +{ + identifier() ( "," identifier() )* +} + +void subquery() #Subquery: +{} +{ + "(" query_expression() ")" +} + +void predicate(): +{} +{ + exists_predicate() + | unique_predicate() + | row_value_predicand() + + [ + { PushNode(PopNode()); } + ( + comparison_predicate() + | between_predicate() + | in_predicate() + | like_predicate() + | similar_predicate() + | regex_like_predicate() + | null_predicate() + | quantified_comparison_predicate() + | normalized_predicate() + | match_predicate() + | overlaps_predicate() + | distinct_predicate() + | member_predicate() + | submultiset_predicate() + | set_predicate() + | type_predicate() + ) + ] +} + +void comparison_predicate(): +{} +{ + comparison_predicate_part_2() +} + +void comparison_predicate_part_2() #Comparison(2): +{} +{ + comp_op() row_value_predicand() +} + +void comp_op(): +{} +{ + "> + | + | "> + | ="> + | +} + +void interval_leading_field_precision(): +{} +{ + +} + +void language_clause() #LanguageClause: +{} +{ + "LANGUAGE" language_name() +} + +void language_name(): +{} +{ + "ADA" + | "C" + | "COBOL" + | "FORTRAN" + | "M" | "MUMPS" + | "PASCAL" + | "PLI" + | "SQL" +} + +void path_specification(): +{} +{ + "PATH" schema_name_list() +} + +void schema_name_list(): +{} +{ + schema_name() ( "," schema_name() )* +} + +void routine_invocation(): +{} +{ + routine_name() SQL_argument_list() +} + +void routine_name(): +{} +{ + [ schema_name() "." ] identifier() +} + +void SQL_argument_list() #ArgumentList: +{} +{ + "(" [ SQL_argument() ( "," SQL_argument() )* ] ")" +} + +void SQL_argument(): +{} +{ + LOOKAHEAD(lambda_params() "->") lambda() + | value_expression() [ generalized_expression() ] + | named_argument_specification() + | contextually_typed_value_specification() + | target_specification() +} + +void generalized_expression() #Unsupported: +{} +{ + "AS" path_resolved_user_defined_type_name() +} + +void named_argument_specification() #NamedArgument: +{} +{ + identifier() "=>" + named_argument_SQL_argument() +} + +void named_argument_SQL_argument(): +{} +{ + value_expression() + | contextually_typed_value_specification() + | target_specification() +} + +void character_set_specification() #Unsupported: +{} +{ + standard_character_set_name() + | implementation_defined_character_set_name() + | user_defined_character_set_name() +} + +void standard_character_set_name(): +{} +{ + character_set_name() +} + +void implementation_defined_character_set_name(): +{} +{ + character_set_name() +} + +void user_defined_character_set_name(): +{} +{ + character_set_name() +} + +void specific_routine_designator() #Unsupported: +{} +{ + "SPECIFIC" routine_type() schema_qualified_name() + | routine_type() member_name() [ "FOR" schema_resolved_user_defined_type_name() ] +} + +void routine_type(): +{} +{ + "ROUTINE" + | "FUNCTION" + | "PROCEDURE" + | [ "INSTANCE" | "STATIC" | "CONSTRUCTOR" ] "METHOD" +} + +void member_name(): +{} +{ + member_name_alternatives() [ data_type_list() ] +} + +void member_name_alternatives(): +{} +{ + schema_qualified_name() + | identifier() +} + +void data_type_list(): +{} +{ + "(" [ data_type() ( "," data_type() )* ] ")" +} + +void collate_clause() #Unsupported: +{} +{ + "COLLATE" schema_qualified_name() +} + +void constraint_name_definition() #Unsupported: +{} +{ + "CONSTRAINT" schema_qualified_name() +} + +void constraint_characteristics(): +{} +{ + constraint_check_time() [ [ "NOT" ] "DEFERRABLE" ] [ constraint_enforcement() ] + | [ "NOT" ] "DEFERRABLE" [ constraint_check_time() ] [ constraint_enforcement() ] + | constraint_enforcement() +} + +void constraint_check_time(): +{} +{ + "INITIALLY" "DEFERRED" + | "INITIALLY" "IMMEDIATE" +} + +void constraint_enforcement(): +{} +{ + [ "NOT" ] "ENFORCED" +} + +void aggregate_function() #AggregationFunction: +{} +{ + ( + "COUNT" "(" "*" ")" + | count() + | general_set_function() + | binary_set_function() + | ordered_set_function() + | array_aggregate_function() + | presto_aggregations() + ) + + [ filter_clause() ] +} + +void general_set_function(): +{} +{ + set_function_type() "(" [ set_quantifier() ] value_expression() + [ extra_args_to_agg() ] + ")" +} + +void set_function_type(): +{} +{ + computational_operation() +} + +void computational_operation(): +{} +{ + "AVG" + | "MAX" + | "MIN" + | "SUM" + | "EVERY" + | "ANY" + | "SOME" + | "COUNT" + | "STDDEV_POP" + | "STDDEV_SAMP" + | "VAR_SAMP" + | "VAR_POP" + | "COLLECT" + | "FUSION" + | "INTERSECTION" +} + +void set_quantifier() #SetQuantifier: +{} +{ + "DISTINCT" + | "ALL" +} + +void filter_clause() #FilterClause: +{} +{ + "FILTER" "(" "WHERE" search_condition() ")" +} + +void binary_set_function(): +{} +{ + binary_set_function_type() "(" dependent_variable_expression() "," + independent_variable_expression() ")" +} + +void binary_set_function_type(): +{} +{ + "COVAR_POP" + | "COVAR_SAMP" + | "CORR" + | "REGR_SLOPE" + | "REGR_INTERCEPT" + | "REGR_COUNT" + | "REGR_R2" + | "REGR_AVGX" + | "REGR_AVGY" + | "REGR_SXX" + | "REGR_SYY" + | "REGR_SXY" +} + +void dependent_variable_expression(): +{} +{ + numeric_value_expression() +} + +void independent_variable_expression(): +{} +{ + numeric_value_expression() +} + +void ordered_set_function(): +{} +{ + hypothetical_set_function() + | inverse_distribution_function() +} + +void hypothetical_set_function(): +{} +{ + rank_function_type() "(" + hypothetical_set_function_value_expression_list() ")" + within_group_specification() +} + +void within_group_specification() #Unsupported: +{} +{ + "WITHIN" "GROUP" "(" "ORDER" "BY" sort_specification_list() ")" +} + +void hypothetical_set_function_value_expression_list(): +{} +{ + value_expression() ( "," value_expression() )* +} + +void inverse_distribution_function(): +{} +{ + inverse_distribution_function_type() "(" + inverse_distribution_function_argument() ")" + within_group_specification() +} + +void inverse_distribution_function_argument(): +{} +{ + numeric_value_expression() +} + +void inverse_distribution_function_type(): +{} +{ + "PERCENTILE_CONT" + | "PERCENTILE_DISC" +} + +void array_aggregate_function(): +{} +{ + "ARRAY_AGG" + "(" + [ distinct() ] // Non-standard + value_expression() [ "ORDER" "BY" sort_specification_list() ] + ")" +} + +void sort_specification_list() #SortSpecificationList: +{} +{ + sort_specification() ( "," sort_specification() )* +} + +void sort_specification() #SortSpecification: +{} +{ + sort_key() [ ordering_specification() ] [ null_ordering() ] +} + +void sort_key(): +{} +{ + value_expression() +} + +void ordering_specification() #OrderingDirection: +{} +{ + "ASC" + | "DESC" +} + +void null_ordering() #NullOrdering: +{} +{ + "NULLS" "FIRST" + | "NULLS" "LAST" +} + +void schema_definition() #CreateSchema: +{} +{ + "CREATE" "SCHEMA" + + [ if_not_exists() ] + + schema_name_clause() + [ schema_character_set_or_path() ] + ( schema_element() )* +} + +void schema_character_set_or_path() #Unsupported: +{} +{ + schema_character_set_specification() + | schema_path_specification() + | schema_character_set_specification() schema_path_specification() + | schema_path_specification() schema_character_set_specification() +} + +void schema_name_clause(): +{} +{ + schema_name() + | ( "AUTHORIZATION" identifier() )#Unsuppoerted + | ( schema_name() "AUTHORIZATION" identifier() )#Unsuppoerted +} + +void schema_character_set_specification(): +{} +{ + "DEFAULT" "CHARACTER" "SET" character_set_specification() +} + +void schema_path_specification(): +{} +{ + path_specification() +} + +void schema_element() #Unsupported: +{} +{ + table_definition() + | LOOKAHEAD(4) view_definition() + | domain_definition() + | character_set_definition() + | collation_definition() + | transliteration_definition() + | assertion_definition() + | trigger_definition() + | user_defined_type_definition() + | user_defined_cast_definition() + | user_defined_ordering_definition() + | transform_definition() + | schema_routine() + | sequence_generator_definition() + | grant_statement() + | role_definition() +} + +void drop_schema_statement(): +{} +{ + "DROP" "SCHEMA" schema_name() drop_behavior() +} + +void drop_behavior(): +{} +{ + "CASCADE" + | "RESTRICT" +} + +void table_definition() #TableDefinition: +{} +{ + "CREATE" [ table_scope() ] "TABLE" + + [ if_not_exists() ] + + table_name() + + [ table_description() ] + + ( // Non-standard + LOOKAHEAD ("WITH") + [ "WITH" + ( system_versioning_clause() + | table_attributes() // Non-standard + ) + ] + table_contents_source() + | + table_contents_source() + [ table_description() ] + [ "WITH" + ( system_versioning_clause() + | table_attributes() // Non-standard + ) + ] + ) + [ "ON" "COMMIT" table_commit_action() "ROWS" ] +} + +void table_contents_source(): +{} +{ + typed_table_clause() + | as_subquery_clause() + | table_element_list() +} + +void table_scope(): +{} +{ + global_or_local() "TEMPORARY" +} + +void global_or_local(): +{} +{ + "GLOBAL" + | "LOCAL" +} + +void system_versioning_clause(): +{} +{ + "SYSTEM" "VERSIONING" [ retention_period_specification() ] +} + +void retention_period_specification(): +{} +{ + "KEEP" "VERSIONS" "FOREVER" + | "KEEP" "VERSIONS" "FOR" length_of_time() time_unit() +} + +void length_of_time(): +{} +{ + +} + +void time_unit(): +{} +{ + "SECOND" |"SECONDS" |"MINUTE" |"MINUTES" |"HOUR" |"HOURS" |"DAY" |"DAYS" |"MONTH" |"MONTHS" |"YEAR" |"YEARS" +} + +void table_commit_action(): +{} +{ + "PRESERVE" + | "DELETE" +} + +void table_element_list(): +{} +{ + "(" table_element() ( "," table_element() )* ")" +} + +void table_element(): +{} +{ + column_definition() + | table_constraint_definition() + | like_clause() +} + +void typed_table_clause(): +{} +{ + "OF" path_resolved_user_defined_type_name() [ subtable_clause() ] + [ typed_table_element_list() ] +} + +void typed_table_element_list(): +{} +{ + "(" typed_table_element() + ( "," typed_table_element() )* ")" +} + +void typed_table_element(): +{} +{ + column_options() + | table_constraint_definition() + | self_referencing_column_specification() +} + +void self_referencing_column_specification(): +{} +{ + "REF" "IS" identifier() [ reference_generation() ] +} + +void reference_generation(): +{} +{ + "SYSTEM" "GENERATED" + | "USER" "GENERATED" + | "DERIVED" +} + +void column_options(): +{} +{ + identifier() "WITH" "OPTIONS" column_option_list() +} + +void column_option_list(): +{} +{ + [ scope_clause() ] [ default_clause() ] ( column_constraint_definition() )* +} + +void subtable_clause(): +{} +{ + "UNDER" supertable_clause() +} + +void supertable_clause(): +{} +{ + supertable_name() +} + +void supertable_name(): +{} +{ + table_name() +} + +void like_clause(): +{} +{ + "LIKE" table_name() [ like_options() ] +} + +void like_options(): +{} +{ + ( like_option() )+ +} + +void like_option(): +{} +{ + identity_option() + | column_default_option() + | generation_option() + | "INCLUDING" "PROPERTIES" // Non-standard +} + +void identity_option(): +{} +{ + "INCLUDING" "IDENTITY" + | "EXCLUDING" "IDENTITY" +} + +void column_default_option(): +{} +{ + "INCLUDING" "DEFAULTS" + | "EXCLUDING" "DEFAULTS" +} + +void generation_option(): +{} +{ + "INCLUDING" "GENERATED" + | "EXCLUDING" "GENERATED" +} + +void as_subquery_clause(): +{} +{ + [ "(" column_name_list() ")" ] + + [ "WITH" table_attributes() ] // Non-standard + + "AS" + + ( + subquery() + | query_expression() // Non-standard + ) + + [ with_or_without_data() ] +} + +void with_or_without_data(): +{} +{ + "WITH" "NO" "DATA" + | "WITH" "DATA" +} + +void column_definition(): +{} +{ + identifier() + [ data_type_or_schema_qualified_name() ] + [ default_clause() | identity_column_specification() | generation_clause() + | system_version_start_column_specification() | system_version_end_column_specification() + ] + ( column_constraint_definition() )* + [ collate_clause() ] + + [ column_description() ] +} + +void data_type_or_schema_qualified_name(): +{} +{ + data_type() + | schema_qualified_name() +} + +void system_version_start_column_specification(): +{} +{ + timestamp_generation_rule() "AS" "SYSTEM" "VERSION" "START" +} + +void system_version_end_column_specification(): +{} +{ + timestamp_generation_rule() "AS" "SYSTEM" "VERSION" "END" +} + +void timestamp_generation_rule(): +{} +{ + "GENERATED" "ALWAYS" +} + +void column_constraint_definition(): +{} +{ + [ constraint_name_definition() ] column_constraint() [ constraint_characteristics() ] +} + +void column_constraint(): +{} +{ + "NOT" "NULL" + | unique_specification() + | references_specification() + | check_constraint_definition() +} + +void identity_column_specification(): +{} +{ + "GENERATED" ( "ALWAYS" | "BY" "DEFAULT" ) "AS" "IDENTITY" + [ "(" common_sequence_generator_options() ")" ] +} + +void generation_clause(): +{} +{ + generation_rule() "AS" generation_expression() +} + +void generation_rule(): +{} +{ + "GENERATED" "ALWAYS" +} + +void generation_expression(): +{} +{ + "(" value_expression() ")" +} + +void default_clause(): +{} +{ + "DEFAULT" default_option() +} + +void default_option(): +{} +{ + literal() + | datetime_value_function() + | "USER" + | "CURRENT_USER" + | "CURRENT_ROLE" + | "SESSION_USER" + | "SYSTEM_USER" + | "CURRENT_CATALOG" + | "CURRENT_SCHEMA" + | "CURRENT_PATH" + | implicitly_typed_value_specification() +} + +void table_constraint_definition(): +{} +{ + [ constraint_name_definition() ] table_constraint() + [ constraint_characteristics() ] +} + +void table_constraint(): +{} +{ + unique_constraint_definition() + | referential_constraint_definition() + | check_constraint_definition() +} + +void unique_constraint_definition(): +{} +{ + unique_specification() "(" unique_column_list() ")" + | "UNIQUE" ( "VALUE" ) +} + +void unique_specification(): +{} +{ + "UNIQUE" + | "PRIMARY" "KEY" +} + +void unique_column_list(): +{} +{ + column_name_list() +} + +void referential_constraint_definition(): +{} +{ + "FOREIGN" "KEY" "(" referencing_columns() ")" + references_specification() +} + +void references_specification(): +{} +{ + "REFERENCES" referenced_table_and_columns() + [ "MATCH" match_type() ] [ referential_triggered_action() ] +} + +void match_type(): +{} +{ + "FULL" + | "PARTIAL" + | "SIMPLE" +} + +void referencing_columns(): +{} +{ + reference_column_list() +} + +void referenced_table_and_columns(): +{} +{ + table_name() [ "(" reference_column_list() ")" ] +} + +void reference_column_list(): +{} +{ + column_name_list() +} + +void referential_triggered_action(): +{} +{ + update_rule() [ delete_rule() ] + | delete_rule() [ update_rule() ] +} + +void update_rule(): +{} +{ + "ON" "UPDATE" referential_action() +} + +void delete_rule(): +{} +{ + "ON" "DELETE" referential_action() +} + +void referential_action(): +{} +{ + "CASCADE" + | "SET" "NULL" + | "SET" "DEFAULT" + | "RESTRICT" + | "NO" "ACTION" +} + +void check_constraint_definition(): +{} +{ + "CHECK" "(" search_condition() ")" +} + +void alter_table_statement(): +{} +{ + "ALTER" "TABLE" table_name() alter_table_action() +} + +void alter_table_action(): +{} +{ + add_column_definition() + | alter_column_definition() + | drop_column_definition() + | add_table_constraint_definition() + | alter_table_constraint_definition() + | drop_table_constraint_definition() + | add_system_versioning_clause() + | alter_system_versioning_clause() + | drop_system_versioning_clause() +} + +void add_column_definition(): +{} +{ + "ADD" [ "COLUMN" ] column_definition() +} + +void alter_column_definition(): +{} +{ + "ALTER" [ "COLUMN" ] identifier() alter_column_action() +} + +void alter_column_action(): +{} +{ + set_column_default_clause() + | drop_column_default_clause() + | set_column_not_null_clause() + | drop_column_not_null_clause() + | add_column_scope_clause() + | drop_column_scope_clause() + | alter_column_data_type_clause() + | alter_identity_column_specification() + | drop_identity_property_clause() + | drop_column_generation_expression_clause() +} + +void set_column_default_clause(): +{} +{ + "SET" default_clause() +} + +void drop_column_default_clause(): +{} +{ + "DROP" "DEFAULT" +} + +void set_column_not_null_clause(): +{} +{ + "SET" "NOT" "NULL" +} + +void drop_column_not_null_clause(): +{} +{ + "DROP" "NOT" "NULL" +} + +void add_column_scope_clause(): +{} +{ + "ADD" scope_clause() +} + +void drop_column_scope_clause(): +{} +{ + "DROP" "SCOPE" drop_behavior() +} + +void alter_column_data_type_clause(): +{} +{ + "SET" "DATA" "TYPE" data_type() +} + +void alter_identity_column_specification(): +{} +{ + set_identity_column_generation_clause() ( alter_identity_column_option() )* + | ( alter_identity_column_option() )+ +} + +void set_identity_column_generation_clause(): +{} +{ + "SET" "GENERATED" ( "ALWAYS" | "BY" "DEFAULT" ) +} + +void alter_identity_column_option(): +{} +{ + alter_sequence_generator_restart_option() + | "SET" basic_sequence_generator_option() +} + +void drop_identity_property_clause(): +{} +{ + "DROP" "IDENTITY" +} + +void drop_column_generation_expression_clause(): +{} +{ + "DROP" "EXPRESSION" +} + +void drop_column_definition(): +{} +{ + "DROP" [ "COLUMN" ] identifier() drop_behavior() +} + +void add_table_constraint_definition(): +{} +{ + "ADD" table_constraint_definition() +} + +void alter_table_constraint_definition(): +{} +{ + "ALTER" "CONSTRAINT" schema_qualified_name() constraint_enforcement() +} + +void drop_table_constraint_definition(): +{} +{ + "DROP" "CONSTRAINT" schema_qualified_name() drop_behavior() +} + +void add_system_versioning_clause(): +{} +{ + "ADD" system_versioning_clause() add_system_version_column_list() +} + +void add_system_version_column_list(): +{} +{ + "ADD" [ "COLUMN" ] column_definition_1() "ADD" [ "COLUMN" ] column_definition_2() +} + +void column_definition_1(): +{} +{ + column_definition() +} + +void column_definition_2(): +{} +{ + column_definition() +} + +void alter_system_versioning_clause(): +{} +{ + "ALTER" "SYSTEM" "VERSIONING" retention_period_specification() +} + +void drop_system_versioning_clause(): +{} +{ + "DROP" "SYSTEM" "VERSIONING" drop_behavior() +} + +void drop_table_statement(): +{} +{ + "DROP" "TABLE" + [ "IF" "EXISTS" ] // Non-standard + table_name() + [ drop_behavior() ] // Non-standard +} + +void view_definition(): +{} +{ + "CREATE" + [ or_replace() ] + [ "RECURSIVE" ] "VIEW" table_name() view_specification() + "AS" query_expression() [ "WITH" [ levels_clause() ] "CHECK" "OPTION" ] +} + +void view_specification(): +{} +{ + regular_view_specification() + | referenceable_view_specification() +} + +void regular_view_specification(): +{} +{ + [ "(" view_column_list() ")" ] +} + +void referenceable_view_specification(): +{} +{ + "OF" path_resolved_user_defined_type_name() [ subview_clause() ] + [ view_element_list() ] +} + +void subview_clause(): +{} +{ + "UNDER" table_name() +} + +void view_element_list(): +{} +{ + "(" view_element() ( "," view_element() )* ")" +} + +void view_element(): +{} +{ + self_referencing_column_specification() + | view_column_option() +} + +void view_column_option(): +{} +{ + identifier() "WITH" "OPTIONS" scope_clause() +} + +void levels_clause() #Unsupported: +{} +{ + "CASCADED" + | "LOCAL" +} + +void view_column_list(): +{} +{ + column_name_list() +} + +void drop_view_statement(): +{} +{ + "DROP" "VIEW" table_name() drop_behavior() +} + +void domain_definition(): +{} +{ + "CREATE" "DOMAIN" schema_qualified_name() [ "AS" ] predefined_type() + [ default_clause() ] + ( domain_constraint() )* + [ collate_clause() ] +} + +void domain_constraint(): +{} +{ + [ constraint_name_definition() ] check_constraint_definition() [ + constraint_characteristics() ] +} + +void alter_domain_statement(): +{} +{ + "ALTER" "DOMAIN" schema_qualified_name() alter_domain_action() +} + +void alter_domain_action(): +{} +{ + set_domain_default_clause() + | drop_domain_default_clause() + | add_domain_constraint_definition() + | drop_domain_constraint_definition() +} + +void set_domain_default_clause(): +{} +{ + "SET" default_clause() +} + +void drop_domain_default_clause(): +{} +{ + "DROP" "DEFAULT" +} + +void add_domain_constraint_definition(): +{} +{ + "ADD" domain_constraint() +} + +void drop_domain_constraint_definition(): +{} +{ + "DROP" "CONSTRAINT" schema_qualified_name() +} + +void drop_domain_statement(): +{} +{ + "DROP" "DOMAIN" schema_qualified_name() drop_behavior() +} + +void character_set_definition(): +{} +{ + "CREATE" "CHARACTER" "SET" character_set_name() [ "AS" ] + character_set_source() [ collate_clause() ] +} + +void character_set_source(): +{} +{ + "GET" character_set_specification() +} + +void drop_character_set_statement(): +{} +{ + "DROP" "CHARACTER" "SET" character_set_name() +} + +void collation_definition(): +{} +{ + "CREATE" "COLLATION" schema_qualified_name() "FOR" character_set_specification() + "FROM" schema_qualified_name() [ pad_characteristic() ] +} + +void pad_characteristic(): +{} +{ + "NO" "PAD" + | "PAD" "SPACE" +} + +void drop_collation_statement(): +{} +{ + "DROP" "COLLATION" schema_qualified_name() drop_behavior() +} + +void transliteration_definition(): +{} +{ + "CREATE" "TRANSLATION" schema_qualified_name() "FOR" source_character_set_specification() + "TO" target_character_set_specification() "FROM" transliteration_source() +} + +void source_character_set_specification(): +{} +{ + character_set_specification() +} + +void target_character_set_specification(): +{} +{ + character_set_specification() +} + +void transliteration_source(): +{} +{ + schema_qualified_name() + | transliteration_routine() +} + + +void transliteration_routine(): +{} +{ + specific_routine_designator() +} + +void drop_transliteration_statement(): +{} +{ + "DROP" "TRANSLATION" schema_qualified_name() +} + +void assertion_definition(): +{} +{ + "CREATE" "ASSERTION" schema_qualified_name() + "CHECK" "(" search_condition() ")" + [ constraint_characteristics() ] +} + +void drop_assertion_statement(): +{} +{ + "DROP" "ASSERTION" schema_qualified_name() [ drop_behavior() ] +} + +void trigger_definition(): +{} +{ + "CREATE" "TRIGGER" schema_qualified_name() trigger_action_time() trigger_event() + "ON" table_name() [ "REFERENCING" transition_table_or_variable_list() ] + triggered_action() +} + +void trigger_action_time(): +{} +{ + "BEFORE" + | "AFTER" + | "INSTEAD" "OF" +} + +void trigger_event(): +{} +{ + "INSERT" + | "DELETE" + | "UPDATE" [ "OF" trigger_column_list() ] +} + +void trigger_column_list(): +{} +{ + column_name_list() +} + +void triggered_action(): +{} +{ + [ "FOR" "EACH" ( "ROW" | "STATEMENT" ) ] + [ triggered_when_clause() ] + triggered_SQL_statement() +} + +void triggered_when_clause(): +{} +{ + "WHEN" "(" search_condition() ")" +} + +void triggered_SQL_statement(): +{} +{ + SQL_procedure_statement() + | "BEGIN" "ATOMIC" ( SQL_procedure_statement() ";" )+ "END" +} + +void transition_table_or_variable_list(): +{} +{ + ( transition_table_or_variable() )+ +} + +void transition_table_or_variable(): +{} +{ + "OLD" [ "ROW" ] [ "AS" ] identifier() + | "NEW" [ "ROW" ] [ "AS" ] identifier() + | "OLD" "TABLE" [ "AS" ] identifier() + | "NEW" "TABLE" [ "AS" ] identifier() +} + +void drop_trigger_statement(): +{} +{ + "DROP" "TRIGGER" schema_qualified_name() +} + +void user_defined_type_definition(): +{} +{ + "CREATE" "TYPE" user_defined_type_body() +} + +void user_defined_type_body(): +{} +{ + schema_resolved_user_defined_type_name() + [ subtype_clause() ] + [ "AS" representation() ] + [ user_defined_type_option_list() ] + [ method_specification_list() ] +} + +void user_defined_type_option_list(): +{} +{ + user_defined_type_option() ( user_defined_type_option() )* +} + +void user_defined_type_option(): +{} +{ + instantiable_clause() + | finality() + | reference_type_specification() + | cast_to_ref() + | cast_to_type() + | cast_to_distinct() + | cast_to_source() +} + +void subtype_clause(): +{} +{ + "UNDER" supertype_name() +} + +void supertype_name(): +{} +{ + path_resolved_user_defined_type_name() +} + +void representation(): +{} +{ + predefined_type() + | data_type() // TODO(kaikalur): fixit --collection_type() + | member_list() +} + +void member_list(): +{} +{ + "(" member() ( "," member() )* ")" +} + +void member(): +{} +{ + attribute_definition() +} + +void instantiable_clause(): +{} +{ + "INSTANTIABLE" + | "NOT" "INSTANTIABLE" +} + +void finality(): +{} +{ + "FINAL" + | "NOT" "FINAL" +} + +void reference_type_specification(): +{} +{ + user_defined_representation() + | derived_representation() + | system_generated_representation() +} + +void user_defined_representation(): +{} +{ + "REF" "USING" predefined_type() +} + +void derived_representation(): +{} +{ + "REF" "FROM" list_of_attributes() +} + +void system_generated_representation(): +{} +{ + "REF" "IS" "SYSTEM" "GENERATED" +} + +void cast_to_ref(): +{} +{ + "CAST" "(" "SOURCE" "AS" "REF" ")" "WITH" identifier() +} + +void cast_to_type(): +{} +{ + "CAST" "(" "REF" "AS" "SOURCE" ")" "WITH" identifier() +} + +void list_of_attributes(): +{} +{ + "(" identifier() ( "," identifier() )* ")" +} + +void cast_to_distinct(): +{} +{ + "CAST" "(" "SOURCE" "AS" "DISTINCT" ")" + "WITH" identifier() +} + +void cast_to_source(): +{} +{ + "CAST" "(" "DISTINCT" "AS" "SOURCE" ")" + "WITH" identifier() +} + +void method_specification_list(): +{} +{ + method_specification() ( "," method_specification() )* +} + +void method_specification(): +{} +{ + original_method_specification() + | overriding_method_specification() +} + +void original_method_specification(): +{} +{ + partial_method_specification() [ "SELF" "AS" "RESULT" ] [ "SELF" "AS" "LOCATOR" ] + [ method_characteristics() ] +} + +void overriding_method_specification(): +{} +{ + "OVERRIDING" partial_method_specification() +} + +void partial_method_specification(): +{} +{ + [ "INSTANCE" | "STATIC" | "CONSTRUCTOR" ] + "METHOD" identifier() SQL_parameter_declaration_list() + returns_clause() + [ "SPECIFIC" specific_identifier() ] +} + +void specific_identifier(): +{} +{ + [ schema_name() "." ]identifier() +} + +void method_characteristics(): +{} +{ + ( method_characteristic() )+ +} + +void method_characteristic(): +{} +{ + language_clause() + | parameter_style_clause() + | deterministic_characteristic() + | SQL_data_access_indication() + | null_call_clause() +} + +void attribute_definition(): +{} +{ + identifier() data_type() + [ attribute_default() ] + [ collate_clause() ] +} + +void attribute_default(): +{} +{ + default_clause() +} + +void alter_type_statement(): +{} +{ + "ALTER" "TYPE" schema_resolved_user_defined_type_name() alter_type_action() +} + +void alter_type_action(): +{} +{ + add_attribute_definition() + | drop_attribute_definition() + | add_original_method_specification() + | add_overriding_method_specification() + | drop_method_specification() +} + +void add_attribute_definition(): +{} +{ + "ADD" "ATTRIBUTE" attribute_definition() +} + +void drop_attribute_definition(): +{} +{ + "DROP" "ATTRIBUTE" identifier() "RESTRICT" +} + +void add_original_method_specification(): +{} +{ + "ADD" original_method_specification() +} + +void add_overriding_method_specification(): +{} +{ + "ADD" overriding_method_specification() +} + +void drop_method_specification(): +{} +{ + "DROP" specific_method_specification_designator() "RESTRICT" +} + +void specific_method_specification_designator(): +{} +{ + [ "INSTANCE" | "STATIC" | "CONSTRUCTOR" ] + "METHOD" identifier() data_type_list() +} + +void drop_data_type_statement(): +{} +{ + "DROP" "TYPE" schema_resolved_user_defined_type_name() drop_behavior() +} + +void SQL_invoked_routine(): +{} +{ + schema_routine() +} + +void schema_routine(): +{} +{ + schema_procedure() + | schema_function() +} + +void schema_procedure(): +{} +{ + "CREATE" SQL_invoked_procedure() +} + +void schema_function(): +{} +{ + "CREATE" + [ or_replace() ] + SQL_invoked_function() +} + +void SQL_invoked_procedure(): +{} +{ + "PROCEDURE" schema_qualified_name() SQL_parameter_declaration_list() + routine_characteristics() + routine_body() +} + +void SQL_invoked_function(): +{} +{ + ( function_specification() | method_specification_designator() ) routine_body() +} + +void SQL_parameter_declaration_list(): +{} +{ + "(" [ SQL_parameter_declaration() + ( "," SQL_parameter_declaration() )* ] ")" +} + +void SQL_parameter_declaration(): +{} +{ + [ parameter_mode() ] + [ identifier() ] + parameter_type() [ "RESULT" ] + [ "DEFAULT" parameter_default() ] +} + +void parameter_default(): +{} +{ + value_expression() + | contextually_typed_value_specification() +} + +void parameter_mode(): +{} +{ + "IN" + | "OUT" + | "INOUT" +} + +void parameter_type(): +{} +{ + data_type() [ locator_indication() ] +} + +void locator_indication(): +{} +{ + "AS" "LOCATOR" +} + +void function_specification(): +{} +{ + "FUNCTION" schema_qualified_name() SQL_parameter_declaration_list() + returns_clause() + [ routine_description() ] + routine_characteristics() + [ dispatch_clause() ] +} + +void method_specification_designator(): +{} +{ + "SPECIFIC" "METHOD" specific_identifier() + | [ "INSTANCE" | "STATIC" | "CONSTRUCTOR" ] + "METHOD" identifier() SQL_parameter_declaration_list() + [ returns_clause() ] + "FOR" schema_resolved_user_defined_type_name() +} + +void routine_characteristics(): +{} +{ + ( routine_characteristic() )* +} + +void routine_characteristic(): +{} +{ + language_clause() + | parameter_style_clause() + | "SPECIFIC" schema_qualified_name() + | deterministic_characteristic() + | SQL_data_access_indication() + | null_call_clause() + | returned_result_sets_characteristic() + | savepoint_level_indication() +} + +void savepoint_level_indication(): +{} +{ + "NEW" "SAVEPOINT" "LEVEL" + | "OLD" "SAVEPOINT" "LEVEL" +} + +void returned_result_sets_characteristic(): +{} +{ + "DYNAMIC" "RESULT" "SETS" maximum_returned_result_sets() +} + +void parameter_style_clause(): +{} +{ + "PARAMETER" "STYLE" parameter_style() +} + +void dispatch_clause(): +{} +{ + "STATIC" "DISPATCH" +} + +void returns_clause(): +{} +{ + "RETURNS" returns_type() +} + +void returns_type(): +{} +{ + returns_data_type() [ result_cast() ] + | returns_table_type() +} + +void returns_table_type(): +{} +{ + "TABLE" table_function_column_list() +} + +void table_function_column_list(): +{} +{ + "(" table_function_column_list_element() + ( "," table_function_column_list_element() )* ")" +} + +void table_function_column_list_element(): +{} +{ + identifier() data_type() +} + +void result_cast(): +{} +{ + "CAST" "FROM" result_cast_from_type() +} + +void result_cast_from_type(): +{} +{ + data_type() [ locator_indication() ] +} + +void returns_data_type(): +{} +{ + data_type() [ locator_indication() ] +} + +void routine_body(): +{} +{ + SQL_routine_spec() + | external_body_reference() +} + +void SQL_routine_spec(): +{} +{ + [ rights_clause() ] SQL_routine_body() +} + +void rights_clause(): +{} +{ + "SQL" "SECURITY" "INVOKER" + | "SQL" "SECURITY" "DEFINER" +} + +void SQL_routine_body(): +{} +{ + SQL_procedure_statement() +} + +void external_body_reference(): +{} +{ + "EXTERNAL" [ "NAME" external_routine_name() ] + [ parameter_style_clause() ] + [ transform_group_specification() ] + [ external_security_clause() ] +} + +void external_security_clause(): +{} +{ + "EXTERNAL" "SECURITY" "DEFINER" + | "EXTERNAL" "SECURITY" "INVOKER" + | "EXTERNAL" "SECURITY" "IMPLEMENTATION" "DEFINED" +} + +void parameter_style(): +{} +{ + "SQL" + | "GENERAL" +} + +void deterministic_characteristic(): +{} +{ + "DETERMINISTIC" + | "NOT" "DETERMINISTIC" +} + +void SQL_data_access_indication(): +{} +{ + "NO" "SQL" + | "CONTAINS" "SQL" + | "READS" "SQL" "DATA" + | "MODIFIES" "SQL" "DATA" +} + +void null_call_clause(): +{} +{ + "RETURNS" "NULL" "ON" "NULL" "INPUT" + | "CALLED" "ON" "NULL" "INPUT" +} + +void maximum_returned_result_sets(): +{} +{ + +} + +void transform_group_specification(): +{} +{ + "TRANSFORM" "GROUP" ( single_group_specification() | multiple_group_specification() ) +} + +void single_group_specification(): +{} +{ + identifier() +} + +void multiple_group_specification(): +{} +{ + group_specification() ( "," group_specification() )* +} + +void group_specification(): +{} +{ + identifier() "FOR" "TYPE" path_resolved_user_defined_type_name() +} + +void alter_routine_statement(): +{} +{ + "ALTER" specific_routine_designator() + alter_routine_characteristics() alter_routine_behavior() +} + +void alter_routine_characteristics(): +{} +{ + ( alter_routine_characteristic() )+ +} + +void alter_routine_characteristic(): +{} +{ + language_clause() + | parameter_style_clause() + | SQL_data_access_indication() + | null_call_clause() + | returned_result_sets_characteristic() + | "NAME" external_routine_name() +} + +void alter_routine_behavior(): +{} +{ + "RESTRICT" +} + +void drop_routine_statement(): +{} +{ + "DROP" specific_routine_designator() drop_behavior() +} + +void user_defined_cast_definition(): +{} +{ + "CREATE" "CAST" "(" source_data_type() "AS" target_data_type() ")" + "WITH" cast_function() + [ "AS" "ASSIGNMENT" ] +} + +void cast_function(): +{} +{ + specific_routine_designator() +} + +void source_data_type(): +{} +{ + data_type() +} + +void target_data_type(): +{} +{ + data_type() +} + +void drop_user_defined_cast_statement(): +{} +{ + "DROP" "CAST" "(" source_data_type() "AS" target_data_type() ")" + drop_behavior() +} + +void user_defined_ordering_definition(): +{} +{ + "CREATE" "ORDERING" "FOR" schema_resolved_user_defined_type_name() ordering_form() +} + +void ordering_form(): +{} +{ + equals_ordering_form() + | full_ordering_form() +} + +void equals_ordering_form(): +{} +{ + "EQUALS" "ONLY" "BY" ordering_category() +} + +void full_ordering_form(): +{} +{ + "ORDER" "FULL" "BY" ordering_category() +} + +void ordering_category(): +{} +{ + relative_category() + | map_category() + | state_category() +} + +void relative_category(): +{} +{ + "RELATIVE" "WITH" relative_function_specification() +} + +void map_category(): +{} +{ + "MAP" "WITH" map_function_specification() +} + +void state_category(): +{} +{ + "STATE" [ schema_qualified_name() ] +} + +void relative_function_specification(): +{} +{ + specific_routine_designator() +} + +void map_function_specification(): +{} +{ + specific_routine_designator() +} + +void drop_user_defined_ordering_statement(): +{} +{ + "DROP" "ORDERING" "FOR" schema_resolved_user_defined_type_name() drop_behavior() +} + +void transform_definition(): +{} +{ + "CREATE" ( "TRANSFORM" | "TRANSFORMS" ) "FOR" + schema_resolved_user_defined_type_name() ( transform_group() )+ +} + +void transform_group(): +{} +{ + identifier() "(" transform_element_list() ")" +} + +void transform_element_list(): +{} +{ + transform_element() [ "," transform_element() ] +} + +void transform_element(): +{} +{ + to_sql() + | from_sql() +} + +void to_sql(): +{} +{ + "TO" "SQL" "WITH" to_sql_function() +} + +void from_sql(): +{} +{ + "FROM" "SQL" "WITH" from_sql_function() +} + +void to_sql_function(): +{} +{ + specific_routine_designator() +} + +void from_sql_function(): +{} +{ + specific_routine_designator() +} + +void alter_transform_statement(): +{} +{ + "ALTER" ( "TRANSFORM" | "TRANSFORMS" ) + "FOR" schema_resolved_user_defined_type_name() ( alter_group() )+ +} + +void alter_group(): +{} +{ + identifier() "(" alter_transform_action_list() ")" +} + +void alter_transform_action_list(): +{} +{ + alter_transform_action() ( "," alter_transform_action() )* +} + +void alter_transform_action(): +{} +{ + add_transform_element_list() + | drop_transform_element_list() +} + +void add_transform_element_list(): +{} +{ + "ADD" "(" transform_element_list() ")" +} + +void drop_transform_element_list(): +{} +{ + "DROP" "(" transform_kind() + [ "," transform_kind() ] drop_behavior() ")" +} + +void transform_kind(): +{} +{ + "TO" "SQL" + | "FROM" "SQL" +} + +void drop_transform_statement(): +{} +{ + "DROP" ( "TRANSFORM" | "TRANSFORMS" ) transforms_to_be_dropped() + "FOR" schema_resolved_user_defined_type_name() drop_behavior() +} + +void transforms_to_be_dropped(): +{} +{ + "ALL" + | transform_group_element() +} + +void transform_group_element(): +{} +{ + identifier() +} + +void sequence_generator_definition(): +{} +{ + "CREATE" "SEQUENCE" schema_qualified_name() [ sequence_generator_options() ] +} + +void sequence_generator_options(): +{} +{ + ( sequence_generator_option() )+ +} + +void sequence_generator_option(): +{} +{ + sequence_generator_data_type_option() + | common_sequence_generator_options() +} + +void common_sequence_generator_options(): +{} +{ + ( common_sequence_generator_option() )+ +} + +void common_sequence_generator_option(): +{} +{ + sequence_generator_start_with_option() + | basic_sequence_generator_option() +} + +void basic_sequence_generator_option(): +{} +{ + sequence_generator_increment_by_option() + | sequence_generator_maxvalue_option() + | sequence_generator_minvalue_option() + | sequence_generator_cycle_option() +} + +void sequence_generator_data_type_option(): +{} +{ + "AS" data_type() +} + +void sequence_generator_start_with_option(): +{} +{ + "START" "WITH" sequence_generator_start_value() +} + +void sequence_generator_start_value(): +{} +{ + signed_numeric_literal() +} + +void sequence_generator_increment_by_option(): +{} +{ + "INCREMENT" "BY" sequence_generator_increment() +} + +void sequence_generator_increment(): +{} +{ + signed_numeric_literal() +} + +void sequence_generator_maxvalue_option(): +{} +{ + "MAXVALUE" sequence_generator_max_value() + | "NO" "MAXVALUE" +} + +void sequence_generator_max_value(): +{} +{ + signed_numeric_literal() +} + +void sequence_generator_minvalue_option(): +{} +{ + "MINVALUE" sequence_generator_min_value() + | "NO" "MINVALUE" +} + +void sequence_generator_min_value(): +{} +{ + signed_numeric_literal() +} + +void sequence_generator_cycle_option(): +{} +{ + "CYCLE" + | "NO" "CYCLE" +} + +void alter_sequence_generator_statement(): +{} +{ + "ALTER" "SEQUENCE" schema_qualified_name() alter_sequence_generator_options() +} + +void alter_sequence_generator_options(): +{} +{ + ( alter_sequence_generator_option() )+ +} + +void alter_sequence_generator_option(): +{} +{ + alter_sequence_generator_restart_option() + | basic_sequence_generator_option() +} + +void alter_sequence_generator_restart_option(): +{} +{ + "RESTART" [ "WITH" sequence_generator_restart_value() ] +} + +void sequence_generator_restart_value(): +{} +{ + signed_numeric_literal() +} + +void drop_sequence_generator_statement(): +{} +{ + "DROP" "SEQUENCE" schema_qualified_name() drop_behavior() +} + +void grant_statement(): +{} +{ + grant_privilege_statement() + | grant_role_statement() +} + +void grant_privilege_statement(): +{} +{ + "GRANT" privileges() "TO" grantee() ( "," grantee() )* + [ "WITH" "HIERARCHY" "OPTION" ] + [ "WITH" "GRANT" "OPTION" ] + [ "GRANTED" "BY" grantor() ] +} + +void privileges(): +{} +{ + object_privileges() "ON" object_name() +} + +void object_name(): +{} +{ + [ "TABLE" ] table_name() + | "DOMAIN" schema_qualified_name() + | "COLLATION" schema_qualified_name() + | "CHARACTER" "SET" character_set_name() + | "TRANSLATION" schema_qualified_name() + | "TYPE" schema_resolved_user_defined_type_name() + | "SEQUENCE" schema_qualified_name() + | specific_routine_designator() +} + +void object_privileges(): +{} +{ + "ALL" "PRIVILEGES" + | action() ( "," action() )* +} + +void action(): +{} +{ + "SELECT" + | "SELECT" "(" privilege_column_list() ")" + | "SELECT" "(" privilege_method_list() ")" + | "DELETE" + | "INSERT" [ "(" privilege_column_list() ")" ] + | "UPDATE" [ "(" privilege_column_list() ")" ] + | "REFERENCES" [ "(" privilege_column_list() ")" ] + | "USAGE" + | "TRIGGER" + | "UNDER" + | "EXECUTE" +} + +void privilege_method_list(): +{} +{ + specific_routine_designator() ( "," specific_routine_designator() )* +} + +void privilege_column_list(): +{} +{ + column_name_list() +} + +void grantee(): +{} +{ + "PUBLIC" + | identifier() +} + +void grantor(): +{} +{ + "CURRENT_USER" + | "CURRENT_ROLE" +} + +void role_definition(): +{} +{ + "CREATE" "ROLE" identifier() [ "WITH" "ADMIN" grantor() ] +} + +void grant_role_statement(): +{} +{ + "GRANT" identifier() ( "," identifier() )* + "TO" grantee() ( "," grantee() )* + [ "WITH" "ADMIN" "OPTION" ] + [ "GRANTED" "BY" grantor() ] +} + +void drop_role_statement(): +{} +{ + "DROP" "ROLE" identifier() +} + +void revoke_statement(): +{} +{ + revoke_privilege_statement() + | revoke_role_statement() +} + +void revoke_privilege_statement(): +{} +{ + "REVOKE" [ revoke_option_extension() ] privileges() + "FROM" grantee() ( "," grantee() )* + [ "GRANTED" "BY" grantor() ] + drop_behavior() +} + +void revoke_option_extension(): +{} +{ + "GRANT" "OPTION" "FOR" + | "HIERARCHY" "OPTION" "FOR" +} + +void revoke_role_statement(): +{} +{ + "REVOKE" [ "ADMIN" "OPTION" "FOR" ] identifier() ( "," identifier() )* + "FROM" grantee() ( "," grantee() )* + [ "GRANTED" "BY" grantor() ] + drop_behavior() +} + +void SQL_client_module_definition(): +{} +{ + module_name_clause() language_clause() module_authorization_clause() + [ module_path_specification() ] + [ module_transform_group_specification() ] + [ module_collations() ] + ( temporary_table_declaration() )* + ( module_contents() )+ +} + +void module_authorization_clause(): +{} +{ + "SCHEMA" schema_name() + | "AUTHORIZATION" identifier() + [ "FOR" "STATIC" ( "ONLY" | "AND" "DYNAMIC" ) ] + | "SCHEMA" schema_name() "AUTHORIZATION" identifier() + [ "FOR" "STATIC" ( "ONLY" | "AND" "DYNAMIC" ) ] +} + +void module_path_specification(): +{} +{ + path_specification() +} + +void module_transform_group_specification(): +{} +{ + transform_group_specification() +} + +void module_collations(): +{} +{ + ( module_collation_specification() )+ +} + +void module_collation_specification(): +{} +{ + "COLLATION" schema_qualified_name() [ "FOR" character_set_specification_list() ] +} + +void character_set_specification_list(): +{} +{ + character_set_specification() ( "," character_set_specification() )* +} + +void module_contents(): +{} +{ + declare_cursor() + | dynamic_declare_cursor() + | externally_invoked_procedure() +} + +void module_name_clause(): +{} +{ + "MODULE" [ identifier() ] [ module_character_set_specification() ] +} + +void module_character_set_specification(): +{} +{ + "NAMES" "ARE" character_set_specification() +} + +void externally_invoked_procedure(): +{} +{ + "PROCEDURE" identifier() host_parameter_declaration_list() ";" + SQL_procedure_statement() ";" +} + +void host_parameter_declaration_list(): +{} +{ + "(" host_parameter_declaration() + ( "," host_parameter_declaration() )* ")" +} + +void host_parameter_declaration(): +{} +{ + host_parameter_name() host_parameter_data_type() + | status_parameter() +} + +void host_parameter_data_type(): +{} +{ + data_type() [ locator_indication() ] +} + +void status_parameter(): +{} +{ + "SQLSTATE" +} + +void SQL_procedure_statement(): +{} +{ + SQL_executable_statement() +} + +void SQL_executable_statement(): +{} +{ + SQL_schema_statement() + | SQL_data_statement() + | SQL_control_statement() + | SQL_transaction_statement() + | SQL_connection_statement() + | SQL_session_statement() + | SQL_diagnostics_statement() + | SQL_dynamic_statement() +} + +void SQL_schema_statement(): +{} +{ + SQL_schema_definition_statement() + | SQL_schema_manipulation_statement() +} + +void SQL_schema_definition_statement(): +{} +{ + schema_definition() + | table_definition() + | LOOKAHEAD(4) view_definition() + | SQL_invoked_routine() + | grant_statement() + | role_definition() + | domain_definition() + | character_set_definition() + | collation_definition() + | transliteration_definition() + | assertion_definition() + | trigger_definition() + | user_defined_type_definition() + | user_defined_cast_definition() + | user_defined_ordering_definition() + | transform_definition() + | sequence_generator_definition() +} + +void SQL_schema_manipulation_statement(): +{} +{ + drop_schema_statement() + | alter_table_statement() + | drop_table_statement() + | drop_view_statement() + | alter_routine_statement() + | drop_routine_statement() + | drop_user_defined_cast_statement() + | revoke_statement() + | drop_role_statement() + | alter_domain_statement() + | drop_domain_statement() + | drop_character_set_statement() + | drop_collation_statement() + | drop_transliteration_statement() + | drop_assertion_statement() + | drop_trigger_statement() + | alter_type_statement() + | drop_data_type_statement() + | drop_user_defined_ordering_statement() + | alter_transform_statement() + | drop_transform_statement() + | alter_sequence_generator_statement() + | drop_sequence_generator_statement() +} + +void SQL_data_statement(): +{} +{ + open_statement() + | fetch_statement() + | close_statement() + | select_statement_single_row() + | SQL_data_change_statement() + + //TODO(kaikalur):fix the next two + //| free_locator_statement() + //| hold_locator_statement() +} + +void SQL_data_change_statement(): +{} +{ + delete_statement_positioned() + | delete_statement_searched() + | insert_statement() + | update_statement_positioned() + | update_statement_searched() + | truncate_table_statement() + | merge_statement() +} + +void SQL_control_statement(): +{} +{ + call_statement() + | return_statement() +} + +void SQL_transaction_statement(): +{} +{ + start_transaction_statement() + | set_transaction_statement() + | set_constraints_mode_statement() + | savepoint_statement() + | release_savepoint_statement() + | commit_statement() + | rollback_statement() +} + +void SQL_connection_statement(): +{} +{ + connect_statement() + | set_connection_statement() + | disconnect_statement() +} + +void SQL_session_statement(): +{} +{ + set_session_user_identifier_statement() + | set_role_statement() + | set_local_time_zone_statement() + | set_session_characteristics_statement() + | set_catalog_statement() + | set_schema_statement() + | set_names_statement() + | set_path_statement() + | set_transform_group_statement() + | set_session_collation_statement() +} + +void SQL_diagnostics_statement(): +{} +{ + get_diagnostics_statement() +} + +void SQL_dynamic_statement(): +{} +{ + SQL_descriptor_statement() + | prepare_statement() + | deallocate_prepared_statement() + | describe_statement() + | execute_statement() + | execute_immediate_statement() + | SQL_dynamic_data_statement() +} + +void SQL_dynamic_data_statement(): +{} +{ + allocate_cursor_statement() + | dynamic_open_statement() + | dynamic_fetch_statement() + | dynamic_close_statement() + | dynamic_delete_statement_positioned() + | dynamic_update_statement_positioned() +} + +void SQL_descriptor_statement(): +{} +{ + allocate_descriptor_statement() + | deallocate_descriptor_statement() + | set_descriptor_statement() + | get_descriptor_statement() +} + +void declare_cursor(): +{} +{ + "DECLARE" cursor_name() cursor_properties() + "FOR" cursor_specification() +} + +void cursor_properties(): +{} +{ + [ cursor_sensitivity() ] [ cursor_scrollability() ] "CURSOR" + [ cursor_holdability() ] + [ cursor_returnability() ] +} + +void cursor_sensitivity(): +{} +{ + "SENSITIVE" + | "INSENSITIVE" + | "ASENSITIVE" +} + +void cursor_scrollability(): +{} +{ + "SCROLL" + | "NO" "SCROLL" +} + +void cursor_holdability(): +{} +{ + "WITH" "HOLD" + | "WITHOUT" "HOLD" +} + +void cursor_returnability(): +{} +{ + "WITH" "RETURN" + | "WITHOUT" "RETURN" +} + +void cursor_specification(): +{} +{ + query_expression() [ updatability_clause() #Unsupported ] +} + +void updatability_clause(): +{} +{ + "FOR" ( "READ" "ONLY" | "UPDATE" [ "OF" column_name_list() ] ) +} + +void open_statement(): +{} +{ + "OPEN" cursor_name() +} + +void fetch_statement(): +{} +{ + "FETCH" [ [ fetch_orientation() ] "FROM" ] cursor_name() "INTO" fetch_target_list() +} + +void fetch_orientation(): +{} +{ + "NEXT" | "PRIOR" | "FIRST" | "LAST" | ( "ABSOLUTE" | "RELATIVE" ) simple_value_specification() +} + +void fetch_target_list(): +{} +{ + target_specification() ( "," target_specification() )* +} + +void close_statement(): +{} +{ + "CLOSE" cursor_name() +} + +void select_statement_single_row(): +{} +{ + "SELECT" [ set_quantifier() ] select_list() + [ "INTO" select_target_list() ] //TODO(kaikalur): check optional + [ table_expression() ] //TODO(kaikalur): check optional +} + +void select_target_list(): +{} +{ + target_specification() ( "," target_specification() )* +} + +void delete_statement_positioned(): +{} +{ + "DELETE" "FROM" target_table() [ [ "AS" ] identifier() ] + "WHERE" "CURRENT" "OF" cursor_name() +} + +void target_table(): +{} +{ + table_name() + | "ONLY" "(" table_name() ")" +} + +void delete_statement_searched(): +{} +{ + "DELETE" "FROM" target_table() [ [ "AS" ] identifier() ] + [ "WHERE" search_condition() ] +} + +void truncate_table_statement(): +{} +{ + "TRUNCATE" "TABLE" target_table() [ identity_column_restart_option() ] +} + +void identity_column_restart_option(): +{} +{ + "CONTINUE" "IDENTITY" + | "RESTART" "IDENTITY" +} + +void insert_statement() #Insert: +{} +{ + "INSERT" "INTO" insertion_target() insert_columns_and_source() +} + +void insertion_target(): +{} +{ + table_name() +} + +void insert_columns_and_source(): +{} +{ + from_subquery() + | from_constructor() + | from_default() +} + +void from_subquery(): +{} +{ + [ "(" insert_column_list() ")" ] + [ override_clause() ] + query_expression() +} + +void from_constructor(): +{} +{ + [ "(" insert_column_list() ")" ] + [ override_clause() ] + contextually_typed_table_value_constructor() +} + +void override_clause(): +{} +{ + "OVERRIDING" "USER" "VALUE" + | "OVERRIDING" "SYSTEM" "VALUE" +} + +void from_default(): +{} +{ + "DEFAULT" "VALUES" +} + +void insert_column_list(): +{} +{ + column_name_list() +} + +void merge_statement(): +{} +{ + "MERGE" "INTO" target_table() [ [ "AS" ] identifier() ] + "USING" table_reference() + "ON" search_condition() merge_operation_specification() +} + +void merge_operation_specification(): +{} +{ + ( merge_when_clause() )+ +} + +void merge_when_clause(): +{} +{ + merge_when_matched_clause() + | merge_when_not_matched_clause() +} + +void merge_when_matched_clause(): +{} +{ + "WHEN" "MATCHED" [ "AND" search_condition() ] + "THEN" merge_update_or_delete_specification() +} + +void merge_update_or_delete_specification(): +{} +{ + merge_update_specification() + | merge_delete_specification() +} + +void merge_when_not_matched_clause(): +{} +{ + "WHEN" "NOT" "MATCHED" [ "AND" search_condition() ] + "THEN" merge_insert_specification() +} + +void merge_update_specification(): +{} +{ + "UPDATE" "SET" set_clause_list() +} + +void merge_delete_specification(): +{} +{ + "DELETE" +} + +void merge_insert_specification(): +{} +{ + "INSERT" [ "(" insert_column_list() ")" ] + [ override_clause() ] + "VALUES" merge_insert_value_list() +} + +void merge_insert_value_list(): +{} +{ + "(" + merge_insert_value_element() ( "," merge_insert_value_element() )* + ")" +} + +void merge_insert_value_element(): +{} +{ + value_expression() + | contextually_typed_value_specification() +} + +void update_statement_positioned(): +{} +{ + "UPDATE" target_table() [ [ "AS" ] identifier() ] + "SET" set_clause_list() + "WHERE" "CURRENT" "OF" cursor_name() +} + +void update_statement_searched(): +{} +{ + "UPDATE" target_table() [ [ "AS" ] identifier() ] + "SET" set_clause_list() + [ "WHERE" search_condition() ] +} + +void set_clause_list(): +{} +{ + set_clause() ( "," set_clause() )* +} + +void set_clause(): +{} +{ + multiple_column_assignment() + | set_target() "=" update_source() +} + +void set_target(): +{} +{ + update_target() + | mutated_set_clause() +} + +void multiple_column_assignment(): +{} +{ + set_target_list() "=" assigned_row() +} + +void set_target_list(): +{} +{ + "(" set_target() ( "," set_target() )* ")" +} + +void assigned_row(): +{} +{ + contextually_typed_row_value_expression() +} + +void update_target(): +{} +{ + identifier() | identifier() left_bracket_or_trigraph() simple_value_specification() right_bracket_or_trigraph() +} + +void mutated_set_clause(): +{} +{ + // TODO(kaikalur): fixit mutated_target() "." identifier() + identifier() ( "." identifier() )+ +} + +void mutated_target(): +{} +{ + identifier() + | mutated_set_clause() +} + +void update_source(): +{} +{ + value_expression() + | contextually_typed_value_specification() +} + +void temporary_table_declaration(): +{} +{ + "DECLARE" "LOCAL" "TEMPORARY" "TABLE" table_name() table_element_list() + [ "ON" "COMMIT" table_commit_action() "ROWS" ] +} + +void call_statement(): +{} +{ + "CALL" routine_invocation() +} + +void return_statement(): +{} +{ + "RETURN" return_value() +} + +void return_value(): +{} +{ + value_expression() + | "NULL" +} + +void start_transaction_statement(): +{} +{ + "START" "TRANSACTION" [ transaction_characteristics() ] +} + +void set_transaction_statement(): +{} +{ + "SET" [ "LOCAL" ] "TRANSACTION" [ transaction_characteristics() ] +} + +void transaction_characteristics(): +{} +{ + transaction_mode() ( "," transaction_mode() )* +} + +void transaction_mode(): +{} +{ + isolation_level() + | transaction_access_mode() + | diagnostics_size() +} + +void transaction_access_mode(): +{} +{ + "READ" "ONLY" + | "READ" "WRITE" +} + +void isolation_level(): +{} +{ + "ISOLATION" "LEVEL" level_of_isolation() +} + +void level_of_isolation(): +{} +{ + "READ" "UNCOMMITTED" + | "READ" "COMMITTED" + | "REPEATABLE" "READ" + | "SERIALIZABLE" +} + +void diagnostics_size(): +{} +{ + "DIAGNOSTICS" "SIZE" simple_value_specification() +} + +void set_constraints_mode_statement(): +{} +{ + "SET" "CONSTRAINTS" constraint_name_list() ( "DEFERRED" | "IMMEDIATE" ) +} + +void constraint_name_list(): +{} +{ + "ALL" + | schema_qualified_name() ( "," schema_qualified_name() )* +} + +void savepoint_statement(): +{} +{ + "SAVEPOINT" savepoint_specifier() +} + +void savepoint_specifier(): +{} +{ + identifier() +} + +void release_savepoint_statement(): +{} +{ + "RELEASE" "SAVEPOINT" savepoint_specifier() +} + +void commit_statement(): +{} +{ + "COMMIT" [ "WORK" ] [ "AND" [ "NO" ] "CHAIN" ] +} + +void rollback_statement(): +{} +{ + "ROLLBACK" [ "WORK" ] [ "AND" [ "NO" ] "CHAIN" ] [ savepoint_clause() ] +} + +void savepoint_clause(): +{} +{ + "TO" "SAVEPOINT" savepoint_specifier() +} + +void connect_statement(): +{} +{ + "CONNECT" "TO" connection_target() +} + +void connection_target(): +{} +{ + simple_value_specification() [ "AS" simple_value_specification() ] [ "USER" simple_value_specification() ] + | "DEFAULT" +} + +void set_connection_statement(): +{} +{ + "SET" "CONNECTION" connection_object() +} + +void connection_object(): +{} +{ + "DEFAULT" + | simple_value_specification() +} + +void disconnect_statement(): +{} +{ + "DISCONNECT" disconnect_object() +} + +void disconnect_object(): +{} +{ + connection_object() + | "ALL" + | "CURRENT" +} + +void set_session_characteristics_statement(): +{} +{ + "SET" "SESSION" "CHARACTERISTICS" "AS" session_characteristic_list() +} + +void session_characteristic_list(): +{} +{ + session_characteristic() ( "," session_characteristic() )* +} + +void session_characteristic(): +{} +{ + session_transaction_characteristics() +} + +void session_transaction_characteristics(): +{} +{ + "TRANSACTION" transaction_mode() ( "," transaction_mode() )* +} + +void set_session_user_identifier_statement(): +{} +{ + "SET" "SESSION" "AUTHORIZATION" value_specification() +} + +void set_role_statement(): +{} +{ + "SET" "ROLE" role_specification() +} + +void role_specification(): +{} +{ + value_specification() + | "NONE" +} + +void set_local_time_zone_statement(): +{} +{ + "SET" "TIME" "ZONE" set_time_zone_value() +} + +void set_time_zone_value(): +{} +{ + interval_value_expression() + | "LOCAL" +} + +void set_catalog_statement(): +{} +{ + "SET" catalog_name_characteristic() +} + +void catalog_name_characteristic(): +{} +{ + "CATALOG" value_specification() +} + +void set_schema_statement(): +{} +{ + "SET" schema_name_characteristic() +} + +void schema_name_characteristic(): +{} +{ + "SCHEMA" value_specification() +} + +void set_names_statement(): +{} +{ + "SET" character_set_name_characteristic() +} + +void character_set_name_characteristic(): +{} +{ + "NAMES" value_specification() +} + +void set_path_statement(): +{} +{ + "SET" SQL_path_characteristic() +} + +void SQL_path_characteristic(): +{} +{ + "PATH" value_specification() +} + +void set_transform_group_statement(): +{} +{ + "SET" transform_group_characteristic() +} + +void transform_group_characteristic(): +{} +{ + "DEFAULT" "TRANSFORM" "GROUP" value_specification() + | "TRANSFORM" "GROUP" "FOR" "TYPE" path_resolved_user_defined_type_name() value_specification() +} + +void set_session_collation_statement(): +{} +{ + "SET" "COLLATION" collation_specification() [ "FOR" character_set_specification_list() ] + | "SET" "NO" "COLLATION" [ "FOR" character_set_specification_list() ] +} + +void collation_specification(): +{} +{ + value_specification() +} + +void allocate_descriptor_statement(): +{} +{ + "ALLOCATE" [ "SQL" ] "DESCRIPTOR" descriptor_name() [ "WITH" "MAX" simple_value_specification() ] +} + +void deallocate_descriptor_statement(): +{} +{ + "DEALLOCATE" [ "SQL" ] "DESCRIPTOR" descriptor_name() +} + +void get_descriptor_statement(): +{} +{ + "GET" [ "SQL" ] "DESCRIPTOR" descriptor_name() get_descriptor_information() +} + +void get_descriptor_information(): +{} +{ + get_header_information() ( "," get_header_information() )* + | "VALUE" simple_value_specification() get_item_information() + ( "," get_item_information() )* +} + +void get_header_information(): +{} +{ + simple_target_specification_1() "=" header_item_name() +} + +void header_item_name(): +{} +{ + "COUNT" + | "KEY_TYPE" + | "DYNAMIC_FUNCTION" + | "DYNAMIC_FUNCTION_CODE" + | "TOP_LEVEL_COUNT" +} + +void get_item_information(): +{} +{ + simple_target_specification_2() "=" descriptor_item_name() +} + +void simple_target_specification_1(): +{} +{ + simple_target_specification() +} + +void simple_target_specification_2(): +{} +{ + simple_target_specification() +} + +void descriptor_item_name(): +{} +{ + "CARDINALITY" + | "CHARACTER_SET_CATALOG" + | "CHARACTER_SET_NAME" + | "CHARACTER_SET_SCHEMA" + | "COLLATION_CATALOG" + | "COLLATION_NAME" + | "COLLATION_SCHEMA" + | "DATA" + | "DATETIME_INTERVAL_CODE" + | "DATETIME_INTERVAL_PRECISION" + | "DEGREE" + | "INDICATOR" + | "KEY_MEMBER" + | "LENGTH" + | "LEVEL" + | "NAME" + | "NULLABLE" + | "OCTET_LENGTH" + | "PARAMETER_MODE" + | "PARAMETER_ORDINAL_POSITION" + | "PARAMETER_SPECIFIC_CATALOG" + | "PARAMETER_SPECIFIC_NAME" + | "PARAMETER_SPECIFIC_SCHEMA" + | "PRECISION" + | "RETURNED_CARDINALITY" + | "RETURNED_LENGTH" + | "RETURNED_OCTET_LENGTH" + | "SCALE" + | "SCOPE_CATALOG" + | "SCOPE_NAME" + | "SCOPE_SCHEMA" + | "TYPE" + | "UNNAMED" + | "USER_DEFINED_TYPE_CATALOG" + | "USER_DEFINED_TYPE_NAME" + | "USER_DEFINED_TYPE_SCHEMA" + | "USER_DEFINED_TYPE_CODE" +} + +void set_descriptor_statement(): +{} +{ + "SET" [ "SQL" ] "DESCRIPTOR" descriptor_name() set_descriptor_information() +} + +void set_descriptor_information(): +{} +{ + set_header_information() ( "," set_header_information() )* + | "VALUE" simple_value_specification() set_item_information() + ( "," set_item_information() )* +} + +void set_header_information(): +{} +{ + header_item_name() "=" simple_value_specification() +} + +void set_item_information(): +{} +{ + descriptor_item_name() "=" simple_value_specification() +} + +void prepare_statement(): +{} +{ + "PREPARE" SQL_identifier() [ attributes_specification() ] + "FROM" simple_value_specification() +} + +void attributes_specification(): +{} +{ + "ATTRIBUTES" simple_value_specification() +} + +void preparable_statement(): +{} +{ + preparable_SQL_data_statement() + | preparable_SQL_schema_statement() + | preparable_SQL_transaction_statement() + | preparable_SQL_control_statement() + | preparable_SQL_session_statement() + | preparable_implementation_defined_statement() +} + +void preparable_SQL_data_statement(): +{} +{ + delete_statement_searched() + | dynamic_single_row_select_statement() + | insert_statement() + | dynamic_select_statement() + | update_statement_searched() + | truncate_table_statement() + | merge_statement() + | preparable_dynamic_delete_statement_positioned() + | preparable_dynamic_update_statement_positioned() + //TODO(kaikalur):fix the next two + //| hold_locator_statement() + //| free_locator_statement() +} + +void preparable_SQL_schema_statement(): +{} +{ + SQL_schema_statement() +} + +void preparable_SQL_transaction_statement(): +{} +{ + SQL_transaction_statement() +} + +void preparable_SQL_control_statement(): +{} +{ + SQL_control_statement() +} + +void preparable_SQL_session_statement(): +{} +{ + SQL_session_statement() +} + +void dynamic_select_statement(): +{} +{ + cursor_specification() +} + +void preparable_implementation_defined_statement(): +{} +{ + //!! See the Syntax Rules. + character_string_literal() // temp +} + +void cursor_attributes(): +{} +{ + ( cursor_attribute() )+ +} + +void cursor_attribute(): +{} +{ + cursor_sensitivity() + | cursor_scrollability() + | cursor_holdability() + | cursor_returnability() +} + +void deallocate_prepared_statement(): +{} +{ + "DEALLOCATE" "PREPARE" SQL_identifier() +} + +void describe_statement(): +{} +{ + describe_input_statement() + | describe_output_statement() +} + +void describe_input_statement(): +{} +{ + "DESCRIBE" "INPUT" SQL_identifier() using_descriptor() [ nesting_option() ] +} + +void describe_output_statement(): +{} +{ + "DESCRIBE" [ "OUTPUT" ] described_object() using_descriptor() [ nesting_option() ] +} + +void nesting_option(): +{} +{ + "WITH" "NESTING" + | "WITHOUT" "NESTING" +} + +void using_descriptor(): +{} +{ + "USING" [ "SQL" ] "DESCRIPTOR" descriptor_name() +} + +void described_object(): +{} +{ + SQL_identifier() + | "CURSOR" extended_cursor_name() "STRUCTURE" +} + +void input_using_clause(): +{} +{ + using_arguments() + | using_input_descriptor() +} + +void using_arguments(): +{} +{ + "USING" using_argument() ( "," using_argument() )* +} + +void using_argument(): +{} +{ + general_value_specification() +} + +void using_input_descriptor(): +{} +{ + using_descriptor() +} + +void output_using_clause(): +{} +{ + into_arguments() + | into_descriptor() +} + +void into_arguments(): +{} +{ + "INTO" into_argument() ( "," into_argument() )* +} + +void into_argument(): +{} +{ + target_specification() +} + +void into_descriptor(): +{} +{ + "INTO" [ "SQL" ] "DESCRIPTOR" descriptor_name() +} + +void execute_statement(): +{} +{ + "EXECUTE" SQL_identifier() [ result_using_clause() ] [ parameter_using_clause() ] +} + +void result_using_clause(): +{} +{ + output_using_clause() +} + +void parameter_using_clause(): +{} +{ + input_using_clause() +} + +void execute_immediate_statement(): +{} +{ + "EXECUTE" "IMMEDIATE" simple_value_specification() +} + +void dynamic_declare_cursor(): +{} +{ + "DECLARE" cursor_name() + cursor_properties() + "FOR" identifier() +} + +void allocate_cursor_statement(): +{} +{ + "ALLOCATE" extended_cursor_name() cursor_intent() +} + +void cursor_intent(): +{} +{ + statement_cursor() + | result_set_cursor() +} + +void statement_cursor(): +{} +{ + cursor_properties() + "FOR" extended_identifier() +} + +void result_set_cursor(): +{} +{ + [ "CURSOR" ] "FOR" "PROCEDURE" specific_routine_designator() +} + +void dynamic_open_statement(): +{} +{ + "OPEN" dynamic_cursor_name() [ input_using_clause() ] +} + +void dynamic_fetch_statement(): +{} +{ + "FETCH" [ [ fetch_orientation() ] "FROM" ] dynamic_cursor_name() output_using_clause() +} + +void dynamic_single_row_select_statement(): +{} +{ + query_specification() +} + +void dynamic_close_statement(): +{} +{ + "CLOSE" dynamic_cursor_name() +} + +void dynamic_delete_statement_positioned(): +{} +{ + "DELETE" "FROM" target_table() "WHERE" "CURRENT" "OF" dynamic_cursor_name() +} + +void dynamic_update_statement_positioned(): +{} +{ + "UPDATE" target_table() "SET" set_clause_list() + "WHERE" "CURRENT" "OF" dynamic_cursor_name() +} + +void preparable_dynamic_delete_statement_positioned(): +{} +{ + "DELETE" [ "FROM" target_table() ] + "WHERE" "CURRENT" "OF" preparable_dynamic_cursor_name() +} + +void preparable_dynamic_cursor_name(): +{} +{ + [ scope_option() ] cursor_name() +} + +void preparable_dynamic_update_statement_positioned(): +{} +{ + "UPDATE" [ target_table() ] "SET" set_clause_list() + "WHERE" "CURRENT" "OF" preparable_dynamic_cursor_name() +} + +void direct_SQL_statement() #DirectSqlStatement(true): +{} +{ + directly_executable_statement() ";" +} + +void directly_executable_statement(): +{} +{ + direct_SQL_data_statement() + | SQL_schema_statement() + | SQL_transaction_statement() + | SQL_connection_statement() + | SQL_session_statement() + | direct_implementation_defined_statement() + | use_statement() // Non-standard +} + +void direct_SQL_data_statement(): +{} +{ + delete_statement_searched() + | direct_select_statement_multiple_rows() + | insert_statement() + | update_statement_searched() + | truncate_table_statement() + | merge_statement() + | temporary_table_declaration() +} + +void direct_implementation_defined_statement(): +{} +{ + //!! See the Syntax Rules. + character_string_literal() // temp +} + +void direct_select_statement_multiple_rows(): +{} +{ + cursor_specification() +} + +void get_diagnostics_statement(): +{} +{ + "GET" "DIAGNOSTICS" SQL_diagnostics_information() +} + +void SQL_diagnostics_information(): +{} +{ + LOOKAHEAD(3) statement_information() + | condition_information() + | all_information() +} + +void statement_information(): +{} +{ + statement_information_item() ( "," statement_information_item() )* +} + +void statement_information_item(): +{} +{ + simple_target_specification() "=" statement_information_item_name() +} + +void statement_information_item_name(): +{} +{ + "NUMBER" + | "MORE" + | "COMMAND_FUNCTION" + | "COMMAND_FUNCTION_CODE" + | "DYNAMIC_FUNCTION" + | "DYNAMIC_FUNCTION_CODE" + | "ROW_COUNT" + | "TRANSACTIONS_COMMITTED" + | "TRANSACTIONS_ROLLED_BACK" + | "TRANSACTION_ACTIVE" +} + +void condition_information(): +{} +{ + "CONDITION" simple_value_specification() condition_information_item() + ( "," condition_information_item() )* +} + +void condition_information_item(): +{} +{ + simple_target_specification() "=" condition_information_item_name() +} + +void condition_information_item_name(): +{} +{ + "CATALOG_NAME" + | "CLASS_ORIGIN" + | "COLUMN_NAME" + | "CONDITION_NUMBER" + | "CONNECTION_NAME" + | "CONSTRAINT_CATALOG" + | "CONSTRAINT_NAME" + | "CONSTRAINT_SCHEMA" + | "CURSOR_NAME" + | "MESSAGE_LENGTH" + | "MESSAGE_OCTET_LENGTH" + | "MESSAGE_TEXT" + | "PARAMETER_MODE" + | "PARAMETER_NAME" + | "PARAMETER_ORDINAL_POSITION" + | "RETURNED_SQLSTATE" + | "ROUTINE_CATALOG" + | "ROUTINE_NAME" + | "ROUTINE_SCHEMA" + | "SCHEMA_NAME" + | "SERVER_NAME" + | "SPECIFIC_NAME" + | "SUBCLASS_ORIGIN" + | "TABLE_NAME" + | "TRIGGER_CATALOG" + | "TRIGGER_NAME" + | "TRIGGER_SCHEMA" +} + +void all_information(): +{} +{ + all_info_target() "=" "ALL" [ all_qualifier() ] +} + +void all_info_target(): +{} +{ + simple_target_specification() +} + +void all_qualifier(): +{} +{ + "STATEMENT" + | "CONDITION" [ simple_value_specification() ] +} +void use_statement() #UseStatement: +{} +{ + "USE" identifier_chain() +} + +void lambda() #Lambda(2): +{} +{ + lambda_params() lambda_body() +} + +void lambda_body() #LambdaBody: +{} +{ + "->" value_expression() +} + +void lambda_params() #LambdaParams: +{} +{ + ( actual_identifier() )#LambdaParam(0) + | "(" [ ( actual_identifier() )#LambdaParam(0) ( "," ( actual_identifier() #LambdaParam(0) ) )* ] ")" +} + +void if_not_exists(): +{} +{ + "IF" "NOT" "EXISTS" +} + +void identifier_suffix_chain(): +{} +{ + ( ( "@" | ":" ) [ actual_identifier() ] )+ +} + +void limit_clause() #LimitClause: +{} +{ + "LIMIT" ( | "ALL" ) +} + +void presto_generic_type(): +{} +{ + presto_array_type() + | presto_map_type() + | ( "(" data_type() ( "," data_type() )* ")" )#ParameterizedType +} + +void presto_array_type() #ArrayType(): +{} +{ + "ARRAY" "<" data_type() ">" // Non-standard + | "ARRAY" "(" data_type() ")" // Non-standard +} + +void presto_map_type() #MapType(): +{} +{ + "MAP" "<" data_type() "," data_type() ">" // Non-standard + | "MAP" "(" data_type() "," data_type() ")" // Non-standard +} + +void percent_operator(): +{} +{ + +} + +void distinct(): +{} +{ + "DISTINCT" +} + +void grouping_expression(): +{} +{ + value_expression() +} + +void count(): +{} +{ + "COUNT" "(" ")" + | "\"COUNT\"" "(" [ set_quantifier() ] [ value_expression() | "*" ] ")" // Just weird +} + +void table_description(): +{} +{ + "COMMENT" character_string_literal() +} + +void routine_description(): +{} +{ + "COMMENT" character_string_literal() +} + +void column_description(): +{} +{ + "COMMENT" character_string_literal() +} + +void presto_aggregation_function(): +{} +{ + "NUMERIC_HISTOGRAM" + | "HISTOGRAM" + | "APPROEX_PERCENTILE" + | "MAP_AGG" + | "SET_AGG" + | "MAP_UNION" +} + +void presto_aggregations(): +{} +{ + presto_aggregation_function() + "(" [ [ set_quantifier() ] value_expression() ( "," value_expression() )* ] ")" +} + +void try_cast() #TryExpression: +{} +{ + "TRY_CAST" ( "(" cast_operand() "AS" cast_target() ")" )#CastExpression +} + +void varbinary(): +{} +{ + "VARBINARY" +} + +void table_attributes(): +{} +{ + "(" actual_identifier() "=" value_expression() ( "," actual_identifier() "=" value_expression() )* ")" // Non-standard +} + +void or_replace(): +{} +{ + "OR" "REPLACE" +} + +void udaf_filter(): +{} +{ + filter_clause() +} + +void extra_args_to_agg(): +{} +{ + ( "," value_expression() )+ +} + +void weird_identifiers(): +{} +{ + "_" +} + +TOKEN: +{ + )? > { setKindToIdentifier(matchedToken); } + | { setUnicodeLiteralType(matchedToken); } +} +TOKEN: +{ +/* + <#SQL_terminal_character() ::= +SQL_language_character() +; + +| <#SQL_language_character() ::= +simple_Latin_letter() +| digit() +| SQL_special_character() +; + +| <#simple_Latin_letter() ::= +simple_Latin_upper_case_letter() +| simple_Latin_lower_case_letter() +; + +| <#simple_Latin_upper_case_letter() ::= +["A"-"Z"] +; + +| <#simple_Latin_lower_case_letter() ::= +["a"-"z"] +; + +| <#SQL_special_character() ::= +space() +| "\"" +| "%" +| "&" +| "'" +| left_paren() +| right_paren() +| asterisk() +| plus_sign() +| comma() +| minus_sign() +| period() +| solidus() +| colon() +| semicolon() +| less_than_operator() +| equals_operator() +| greater_than_operator() +| question_mark() +| "[" +| "]" +| "^" +| "_" +| "|" +| "{" +| "}" +; +; + +token() ::= +nondelimiter_token() +| delimiter_token() +; + +nondelimiter_token() ::= +regular_identifier() +| key_word() +| unsigned_numeric_literal() +| national_character_string_literal() +| binary_string_literal() +| large_object_length_token() +| Unicode_delimited_identifier() +| Unicode_character_string_literal() +| SQL_language_identifier() +; + +*/ + + + > + +| <#identifier_body: ( )* > + +| <#identifier_part: | > + +| <#identifier_start: ["a"-"z"] // temp +/*!! See the Syntax Rules.*/ +> + +| <#identifier_extend: ["\u00B7", "0"-"9", "_"] // temp +//!! See the Syntax Rules. +> + +| )+ > + +| + +| )? "\"" > // Presto allows empty string as an id - yikes! + +| <#delimited_identifier_body: ( )+ > + +| <#delimited_identifier_part: | > + +| "\"" ( )? > + +| <#Unicode_escape_specifier: "UESCAPE" "'" "'" > + +| <#Unicode_delimiter_body: ( )+ > + +| <#Unicode_identifier_part: | > + +| <#Unicode_escape_value: | | > + +| <#Unicode_4_digit_escape_value: > + +| <#Unicode_6_digit_escape_value: "+" > + +| <#Unicode_character_escape_value: > + +| <#Unicode_escape_character: ~["a"-"z", "0"-"9", "+", "'", "\"", "\n", "\t", " "] // temp +//17) If the source language character set contains , then let D +//!! See the Syntax Rules.*/ +> + +| <#nondoublequote_character: ~["\""] +//!! See the Syntax Rules. +> + +| <#doublequote_symbol: "\"\"" > + +/* +delimiter_token: + +| +| +| +| +| +| +| <"> " +| ">=" +| "<=" +| "||" +| "->" +| "??(" +| "??)" +| "::" +| ".." +| "=>" +> +*/ +} + +SPECIAL_TOKEN: +{ + | [ " ", "\t" ] // temp +//!! See the Syntax Rules. +> + +| <#newline: (["\n", "\r"])+ +//!! See the Syntax Rules. +> + +//| | > +| > +| <#simple_comment: ( )* ()? > + +| <#simple_comment_introducer: "--" > + +//| <#bracketed_comment: > + + +//| <#bracketed_comment_terminator: "*/" > + +//| <#bracketed_comment_contents: ( | )* +////!! See the Syntax Rules. +//> + +//| <#comment_character: | "'" > +| <#comment_character: (~["\n", "\r"]) | "'" > + +| )+ > + +//| <#key_word: | > > +} + + +MORE: +{ + : comment_contents +} + +MORE: +{ + "*/" : match_comment + | <~[]> +} + +SPECIAL_TOKEN: +{ + { StoreImage(matchedToken); } : DEFAULT +} + +TOKEN: +{ + <#separator: ( + //TODO(kaikalur): fixit -- | )+ > + )+ > +| + <#digit: ["0"-"9"] > +| <#character_representation: | > + +| <#nonquote_character: ~["'"] +//!! See the Syntax Rules. +> + +| <#quote_symbol: "''" > + +| )* "'" > +| )* "'" ( "'" ( )* "'" )* > + +| )* "'" ( "'" ( )* "'" )* > // TODO(kaikalur) - fixit + +| <#Unicode_representation: | > + +//TODO(kaikalur): fixit +| <#space: " "> // temp +| )* ( ( )* ( )* )* "'" ( "'" ( )* ( ( )* ( )* )* "'" )* > + +| <#hexit: ["a"-"f", "0"-"9"] > + + +//| ( "." ( )? )? | "." > + +//| + +| )+ > +| ( "." ( )? ) | "." > + +| "E" > + +| <#mantissa: | > + +| <#exponent: > + +| <#signed_integer: ( [ "+", "-" ] )? > + + +| ( )* > + +// TODO(srenei): fixit +| <#simple_Latin_letter: ["a"-"z"]> +| <#SQL_language_identifier_start: > + +| <#SQL_language_identifier_part: | | "_" > +} + +TOKEN: +{ + : DEFAULT +} diff --git a/parser/pom.xml b/parser/pom.xml index 3fead4f..4542050 100644 --- a/parser/pom.xml +++ b/parser/pom.xml @@ -19,46 +19,68 @@ - junit - junit - 4.12 + org.junit.jupiter + junit-jupiter + 5.8.1 test - + + + org.junit.jupiter + junit-jupiter-api + 5.8.1 + test + + - org.testng - testng + org.junit.jupiter + junit-jupiter-params + 5.8.1 test javax.validation validation-api + test - com.facebook.airlift + io.airlift configuration + test - com.facebook.airlift + io.airlift log + test - com.facebook.airlift + io.airlift bootstrap + test com.google.inject guice + test com.google.guava guava + test + + + + + hu.webarticum + tree-printer + 3.0.0 + test @@ -87,7 +109,7 @@ org.javacc.plugin javacc-maven-plugin - 3.0.2 + 3.0.3 jcc7jcc @@ -96,7 +118,6 @@ jjtree-javacc - target/generated-sources/javacc java @@ -146,29 +167,6 @@ 1.8 - - io.airlift.maven.plugins - sphinx-maven-plugin - 2.1 - - - - org.apache.maven.plugins - maven-enforcer-plugin - - - - - - org.alluxio:alluxio-shaded-client - org.codehaus.plexus:plexus-utils - com.google.guava:guava - - - - - - org.apache.maven.plugins maven-release-plugin @@ -189,10 +187,35 @@ + + maven-failsafe-plugin + 3.0.0-M7 + + + + junit.jupiter.conditions.deactivate = * + junit.jupiter.extensions.autodetection.enabled = true + junit.jupiter.testinstance.lifecycle.default = per_class + junit.jupiter.execution.parallel.enabled = true + + + + + + integration-test + + integration-test + + + + + org.apache.maven.plugins maven-surefire-plugin + 3.0.0-M7 + true **/*.java target/**/*.java @@ -201,6 +224,8 @@ **/*jmhTest*.java **/*jmhType*.java + + **/*TestIT.java @@ -222,6 +247,14 @@ + + + pl.project13.maven + git-commit-id-plugin + + true + + @@ -233,7 +266,7 @@ net.java.dev.javacc javacc - 7.0.10 + 7.0.12 runtime @@ -251,4 +284,65 @@ + + + + + + org.javacc.plugin + javacc-maven-plugin + 3.0.3 + + + true + + + true + + + false + + + + + ${project.reporting.outputDirectory} + + + + diff --git a/parser/src/main/jjtree/com/facebook/coresql/parser/parser.jjt b/parser/src/main/jjtree/com/facebook/coresql/parser/parser.jjt new file mode 100644 index 0000000..25e9db0 --- /dev/null +++ b/parser/src/main/jjtree/com/facebook/coresql/parser/parser.jjt @@ -0,0 +1,8322 @@ +options { + STATIC = false; + LOOKAHEAD=3; + IGNORE_CASE=true; + UNICODE_INPUT=true; + ERROR_REPORTING=false; + NODE_DEFAULT_VOID = true; + NODE_SCOPE_HOOK = true; + NODE_CLASS = "AstNode"; + NODE_PREFIX = ""; + MULTI = true; + VISITOR = true; + VISITOR_RETURN_TYPE = "void"; + VISITOR_DATA_TYPE = "Void"; + DEBUG_PARSER = false; + DEBUG_LOOKAHEAD = false; + DEBUG_TOKEN_MANAGER = false; +} + +PARSER_BEGIN(SqlParser) +package com.facebook.coresql.parser; + +public class SqlParser { + private boolean IsIdNonReservedWord() { + int kind = getToken(1).kind; + if (kind == regular_identifier || kind == delimited_identifier || kind == Unicode_delimited_identifier) return true; + + if (!(kind >= MIN_NON_RESERVED_WORD && kind <= MAX_NON_RESERVED_WORD)) return false; // Not a nonreserved word. + + // Some special cases. + switch (kind) { + // Some contextual keywords + case GROUP: + case ORDER: + case PARTITION: + return getToken(2).kind != BY; + + case LIMIT: + return getToken(2).kind != unsigned_integer; + + case ROWS: + return getToken(2).kind != BETWEEN; + + // Some builtin functions + case TRIM: + case POSITION: + case MOD: + case POWER: + case RANK: + case ROW_NUMBER: + case FLOOR: + case MIN: + case MAX: + case UPPER: + case LOWER: + case CARDINALITY: + case ABS: + return getToken(2).kind != lparen; + + default: + return true; + } + } + + private boolean SyncToSemicolon() { + while (getToken(1).kind != EOF && getToken(1).kind != SqlParserConstants.semicolon) getNextToken(); + + if (getToken(1).kind == semicolon) { + getNextToken(); + } + + return true; + } + + private boolean NotEof() { + return getToken(1).kind != EOF; + } + + public void PushNode(Node node) { jjtree.pushNode(node); } + public Node PopNode() { return jjtree.popNode(); } + + void jjtreeOpenNodeScope(Node node) { + ((AstNode)node).beginToken = getToken(1); + } + + void jjtreeCloseNodeScope(Node node) { + AstNode astNode = ((AstNode)node); + astNode.endToken = getToken(0); + Token t = astNode.beginToken; + + // For some nodes, the node is opened after some children are already created. Reset the begin for those to be + // the begin of the left-most child. + if (astNode.NumChildren() > 0) { + Token t0 = astNode.GetChild(0).beginToken; + if (t0.beginLine < t.beginLine || (t0.beginLine == t.beginLine && t0.beginColumn < t.beginColumn)) { + astNode.beginToken = t0; + } + } + + if (astNode.IsNegatableOperator()) { + Token t1 = astNode.GetChild(0).endToken; + + if (astNode.Kind() == JJTISNULL) { + // IsNull -- see if the penultimate token is NOT + while (t1 != null && t1.kind != IS) { + t1 = t1.next; + } + + if (t1.next.kind == NOT) { + astNode.SetNegated(true); + } + } + else if (astNode.NumChildren() > 1) { + Token t2 = astNode.GetChild(1).beginToken; + while (t1.next != null && t1.next != t2) { + if (t1.kind == NOT) { + astNode.SetNegated(true); + break; + } + t1 = t1.next; + } + } + } + else if (astNode.NumChildren() == 2 && astNode.IsOperator()) { + // Hack locate the token just before the first token of the second operator + Token t1 = astNode.GetChild(0).endToken; + Token t2 = astNode.GetChild(1).beginToken; + while (t1.next != null && t1.next != t2) { + t1 = t1.next; + } + astNode.SetOperator(t1.kind); + } + else if (astNode.NumChildren() == 1 && astNode.IsOperator()) { + astNode.SetOperator(astNode.beginToken.kind); + } + } + + public AstNode getResult() + { + return (AstNode) jjtree.popNode(); + } + } + +PARSER_END(SqlParser) + +TOKEN_MGR_DECLS: +{ + void setKindToIdentifier(Token t) { + t.kind = regular_identifier; + } + + void setUnicodeLiteralType(Token t) { + t.kind = unicode_literal; + } + + void StoreImage(Token matchedToken) { + matchedToken.image = image.toString(); + } +} + +// Temporary entry point +Node CompilationUnit() #CompilationUnit: +{} +{ + ( + LOOKAHEAD({ NotEof() }) + try { + direct_SQL_statement() + } catch(ParseException pe) { + System.err.println("Parse error: " + getToken(1).beginLine + ":" + getToken(1).beginColumn + " at token: " + getToken(1).image); + SyncToSemicolon(); + } + )* + + + + { return jjtThis; } +} +// non_reserved words + +SKIP: +{ + // Dummy token to get a value range. Will never be mached. And it should be here positionally - before the first non reserved word + +} + +// This production should be here and moved out. See notes for details on handling non-reserved words. +void non_reserved_word(): +{} +{ + + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | // Non-standard + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | // Non-standard + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | // Non-standard + | + | + | + | + | + | + | + | + | + | + | + | + | + | + + + // Non-standard + // Changed the following reserved words into non-reserved one as lot of users use them as identifiers. + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + + // Presto tokens + | + | + | + | + | "NUMERIC_HISTOGRAM" + | + | "HISTOGRAM" + | "APPROEX_PERCENTILE" + | "MAP_AGG" + | "SET_AGG" + | "MAP_UNION" + | +} + +SKIP: +{ + // Dummy token to get a value range. Will never be mached: + +} +SKIP: +{ + // Dummy token to get a value range. Will never be mached. And it should be here positionally - before the first non reserved word + +} + +// reserved words +TOKEN: +{ + + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | +} + +SKIP: +{ + // Dummy token to get a value range. Will never be mached: + +} + +//TODO(kaikalur): create a separate section for all special chars +TOKEN: +{ + + | + | + | +} +void left_bracket_or_trigraph(): +{} +{ + "[" + | "??(" +} + +void right_bracket_or_trigraph(): +{} +{ + "]" + | "??)" +} + +void literal(): +{} +{ + signed_numeric_literal() + | general_literal() +} + +void signed_numeric_literal(): +{} +{ + unsigned_numeric_literal() + | ( ( "+" | "-" ) unsigned_numeric_literal() ) #UnaryExpression(1) +} + +void unsigned_literal(): +{} +{ + unsigned_numeric_literal() + | general_literal() +} + +void unsigned_numeric_literal() #UnsignedNumericLiteral: +{} +{ + exact_numeric_literal() + | +} + +void exact_numeric_literal(): +{} +{ + + | +} + +void general_literal(): +{} +{ + character_string_literal() + | + | Unicode_character_string_literal() + | + | datetime_literal() + | interval_literal() + | boolean_literal() +} + + +void character_string_literal() #CharStringLiteral: +{} +{ +/* + ( "_" character_set_specification() )? "'" ( )* "'" + ( //TODO(kaikalur) - fixit + "'" ( )* "'" + )* +*/ + ( "_" character_set_specification() )? ( )+ +} + +void Unicode_character_string_literal() #CharStringLiteral: +{} +{ + ( "_" character_set_specification() )? +} + +void datetime_literal(): +{} +{ + date_literal() + | time_literal() + | timestamp_literal() +} + +void date_literal() #DateLiteral: +{} +{ + "DATE" character_string_literal() // TODO(kaikalur): fix it +} + +void time_literal() #TimeLiteral: +{} +{ + "TIME" character_string_literal() // TOD(sreeni): fixit +} + +void timestamp_literal() #TimestampLiteral: +{} +{ + "TIMESTAMP" character_string_literal() // TOD(sreeni): fixit +} + +void interval_literal() #IntervalLiteral: +{} +{ + "INTERVAL" [ "+" | "-" ] + character_string_literal() // TOD(sreeni): fixit interval_string() + interval_qualifier() +} + +void boolean_literal(): +{} +{ + ( + "TRUE" + | "FALSE" + ) #BooleanLiteral + | "UNKNOWN" #Unsupported +} + +void identifier() #Identifier: +{} +{ + ( + actual_identifier() + | weird_identifiers() // Presto allow _ and "" as an identifier names - yikes! + ) + + [ identifier_suffix_chain() ] +} + +void actual_identifier(): +{} +{ + + | + | + | LOOKAHEAD(1, { IsIdNonReservedWord() }) non_reserved_word() +} + +void table_name() #TableName: +{} +{ + //TODO(kaikalur): For parsing convenience: local_or_schema_qualified_name() + // To elminate complexlookahead, we make the identitifer chain to flow left to right + identifier_chain() +} + +void schema_name() #SchemaName: +{} +{ + //TODO(kaikalur): For parsing convenience: [ LOOKAHEAD(2) catalog_name() "." ] identifier() + // To elminate complexlookahead, we make the identitifer chain to flow left to right + identifier_chain() +} + +void catalog_name() #CatalogName: +{} +{ + identifier() +} + +void schema_qualified_name() #SchemaQualifiedName: +{} +{ + //TODO(kaikalur): For parsing convenience: [ LOOKAHEAD(2) schema_name() "." ] identifier() + // To elminate complexlookahead, we make the identitifer chain to flow left to right + identifier_chain() +} + +void local_or_schema_qualified_name(): +{} +{ + //TODO(kaikalur): For parsing convenience: [ LOOKAHEAD(2) local_or_schema_qualifier() "." ] identifier() + // To elminate complexlookahead, we make the identitifer chain to flow left to right + identifier_chain() +} + +void local_or_schema_qualifier(): +{} +{ + local_qualifier() + | schema_name() +} + +void cursor_name(): +{} +{ + // TODO(kaikalur): fixit --[ local_qualifier() "." ] identifier() + // To elminate complexlookahead, we make the identitifer chain to flow left to right + identifier_chain() +} + +void local_qualifier(): +{} +{ + "MODULE" +} + +void host_parameter_name(): +{} +{ + ":" identifier() +} + +void external_routine_name(): +{} +{ + identifier() + | ( character_string_literal() )#Unsupported +} + +void character_set_name() #Unsupported: +{} +{ + [ schema_name() "." ] +} + +void schema_resolved_user_defined_type_name(): +{} +{ + user_defined_type_name() +} + +void user_defined_type_name(): +{} +{ + // TODO(kaikalur): fixit -- [ schema_name() "." ] identifier() + // To elminate complexlookahead, we make the identitifer chain to flow left to right + identifier_chain() +} + +void SQL_identifier(): +{} +{ + identifier() + | extended_identifier() +} + +void extended_identifier(): +{} +{ + [ scope_option() ] simple_value_specification() +} + +void dynamic_cursor_name(): +{} +{ + cursor_name() + | extended_cursor_name() +} + +void extended_cursor_name(): +{} +{ + [ scope_option() ] simple_value_specification() +} + +void descriptor_name(): +{} +{ + identifier() + | extended_descriptor_name() +} + +void extended_descriptor_name(): +{} +{ + [ scope_option() ] simple_value_specification() +} + +void scope_option() #Unsupported: +{} +{ + "GLOBAL" + | "LOCAL" +} + +void data_type(): +{} +{ + ( + predefined_type() + | row_type() + | reference_type() + | presto_generic_type() + | path_resolved_user_defined_type_name() + ) + + [ collection_type() ] +} + +void predefined_type() #PredefinedType: +{} +{ + character_string_type() [ "CHARACTER" "SET" character_set_specification() ] + [ collate_clause() ] + | national_character_string_type() [ collate_clause() ] + | binary_string_type() + | numeric_type() + | boolean_type() + | datetime_type() + | interval_type() +} + +void character_string_type(): +{} +{ + "CHARACTER" [ "(" character_length() ")" ] + | "CHAR" [ "(" character_length() ")" ] + | "CHARACTER" "VARYING" "(" character_length() ")" + | "CHAR" "VARYING" "(" character_length() ")" + | "VARCHAR" [ "(" character_length() ")" ] // Non-standard length optional + | character_large_object_type() +} + +void character_large_object_type(): +{} +{ + "CHARACTER" "LARGE" "OBJECT" [ "(" character_large_object_length() ")" ] + | "CHAR" "LARGE" "OBJECT" [ "(" character_large_object_length() ")" ] + | "CLOB" [ "(" character_large_object_length() ")" ] +} + +void national_character_string_type(): +{} +{ + "NATIONAL" "CHARACTER" [ "(" character_length() ")" ] + | "NATIONAL" "CHAR" [ "(" character_length() ")" ] + | "NCHAR" [ "(" character_length() ")" ] + | "NATIONAL" "CHARACTER" "VARYING" "(" character_length() ")" + | "NATIONAL" "CHAR" "VARYING" "(" character_length() ")" + | "NCHAR" "VARYING" "(" character_length() ")" + | national_character_large_object_type() +} + +void national_character_large_object_type(): +{} +{ + "NATIONAL" "CHARACTER" "LARGE" "OBJECT" [ "(" character_large_object_length() ")" ] + | "NCHAR" "LARGE" "OBJECT" [ "(" character_large_object_length() ")" ] + | "NCLOB" [ "(" character_large_object_length() ")" ] +} + +void binary_string_type(): +{} +{ + "BINARY" [ "(" ")" ] + | "BINARY" "VARYING" "(" ")" + | "VARBINARY" "(" ")" + | varbinary() + | binary_large_object_string_type() +} + +void binary_large_object_string_type(): +{} +{ + "BINARY" "LARGE" "OBJECT" [ "(" large_object_length() ")" ] + | "BLOB" [ "(" large_object_length() ")" ] +} + +void numeric_type(): +{} +{ + exact_numeric_type() + | approximate_numeric_type() +} + +void exact_numeric_type(): +{} +{ + "NUMERIC" [ "(" [ "," ] ")" ] + | "DECIMAL" [ "(" [ "," ] ")" ] + | "DEC" [ "(" [ "," ] ")" ] + | "SMALLINT" + | "INTEGER" + | "INT" + | "BIGINT" +} + +void approximate_numeric_type(): +{} +{ + "FLOAT" [ "(" ")" ] + | "REAL" + | "DOUBLE" + [ "PRECISION" ] // Non-standard +} + +void character_length(): +{} +{ + [ char_length_units() ] +} + +void large_object_length(): +{} +{ + [ ] + | +} + +void character_large_object_length(): +{} +{ + large_object_length() [ char_length_units() ] +} + +void char_length_units(): +{} +{ + "CHARACTERS" + | "OCTETS" +} + +void boolean_type(): +{} +{ + "BOOLEAN" +} + +void datetime_type(): +{} +{ + "DATE" + | "TIME" [ "(" ")" ] [ with_or_without_time_zone() ] + | "TIMESTAMP" [ "(" ")" ] + [ with_or_without_time_zone() ] +} + +void with_or_without_time_zone(): +{} +{ + "WITH" "TIME" "ZONE" + | "WITHOUT" "TIME" "ZONE" +} + +void interval_type() #Unsupported: +{} +{ + "INTERVAL" interval_qualifier() +} + +void row_type() #RowType: +{} +{ + "ROW" row_type_body() +} + +void row_type_body(): +{} +{ + "(" field_definition() ( "," field_definition() )* ")" +} + +void reference_type() #Unsupported: +{} +{ + "REF" "(" referenced_type() ")" [ scope_clause() ] +} + +void scope_clause(): +{} +{ + "SCOPE" table_name() +} + +void referenced_type(): +{} +{ + path_resolved_user_defined_type_name() +} + +void path_resolved_user_defined_type_name(): +{} +{ + user_defined_type_name() +} + +void collection_type(): +{} +{ + array_type() + | multiset_type() +} + +void array_type() #ArrayType(): +{} +{ + { PushNode(PopNode()); } + "ARRAY" + [ left_bracket_or_trigraph() right_bracket_or_trigraph() ] +} + +void multiset_type() #Unsupported(): +{} +{ + { PushNode(PopNode()); } + "MULTISET" +} + +void field_definition() #FieldDefinition: +{} +{ + identifier() data_type() +} + +void value_expression_primary(): +{} +{ + parenthesized_value_expression() + | nonparenthesized_value_expression_primary() +} + +void parenthesized_value_expression(): +{} +{ + ( "(" value_expression() + ( "," value_expression() )* // for row_value + ")" + ) #ParenthesizedExpression() + + ( primary_suffix() )* +} + +void nonparenthesized_value_expression_primary(): +{} +{ + contextually_typed_value_specification() + | ( + set_function_specification() + | subquery() + | case_expression() + | cast_specification() + | subtype_treatment() + | new_specification() + | reference_resolution() + | collection_value_constructor() + | multiset_element_reference() + | next_value_expression() + // | routine_invocation() -- handled by method invocation below + | window_function_type() + | "(" column_name_list() ")" // Non-standard + | unsigned_value_specification() + | column_reference() + ) + + ( primary_suffix() )* +} + +void primary_suffix(): +{} +{ + { PushNode(PopNode()); } + ( + field_reference() + | attribute_or_method_reference() + | method_invocation() + | window_function() + | array_element_reference() + | static_method_invocation() + ) +} + +void collection_value_constructor(): +{} +{ + array_value_constructor() + | multiset_value_constructor() +} + +void value_specification(): +{} +{ + literal() + | general_value_specification() +} + +void unsigned_value_specification(): +{} +{ + unsigned_literal() + | general_value_specification() +} + +void general_value_specification(): +{} +{ + identifier_chain() + | + ( + "CURRENT_USER" + | "USER" + ) #BuiltinValue + + | + ( + "?" + | host_parameter_name() + | current_collation_specification() + | "SESSION_USER" + | "SYSTEM_USER" + | "CURRENT_CATALOG" + | "CURRENT_PATH" + | "CURRENT_ROLE" + | "CURRENT_SCHEMA" + | "VALUE" + | "CURRENT_DEFAULT_TRANSFORM_GROUP" + | "CURRENT_TRANSFORM_GROUP_FOR_TYPE" path_resolved_user_defined_type_name() + ) #Unsupported + + //TODO(kaikalur): fixit + //| embedded_variable_specification() + // +} + +void simple_value_specification(): +{} +{ + literal() + | identifier_chain() + + // TODO(kaikalur): fix the next two + | host_parameter_name() + //| embedded_variable_name() +} + +void target_specification() #Unsupported: +{} +{ + ( + identifier_chain() + | column_reference() + ) + + [ + target_array_element_specification() + | "?" + ] + + // TODO(kaikalur): fix the next two lines + //| embedded_variable_specification() + //| host_parameter_specification() +} + +void simple_target_specification() #Unsupported: +{} +{ + identifier_chain() + | column_reference() + + //TODO(kaikalur): fix the next two + //| embedded_variable_name() + //| host_parameter_name() +} + +void target_array_element_specification() #Unsupported: +{} +{ + left_bracket_or_trigraph() simple_value_specification() right_bracket_or_trigraph() +} + +void current_collation_specification() #Unsupported: +{} +{ + "COLLATION" "FOR" "(" string_value_expression() ")" +} + +void contextually_typed_value_specification(): +{} +{ + implicitly_typed_value_specification() + | ( "DEFAULT" )#Unsupported +} + +void implicitly_typed_value_specification(): +{} +{ + ( "NULL" )#NullLiteral + | empty_specification() +} + +void empty_specification(): +{} +{ + ( "ARRAY" left_bracket_or_trigraph() right_bracket_or_trigraph() )#ArrayLiteral + | ( "MULTISET" left_bracket_or_trigraph() right_bracket_or_trigraph() )#Unsupported +} + +void identifier_chain() #QualifiedName(>1): +{} +{ + identifier() ( "." identifier() )* +} + +void column_reference(): +{} +{ + identifier_chain() + | ( "MODULE" "." identifier() "." identifier() )#Unsupported +} + +void set_function_specification(): +{} +{ + aggregate_function() + | grouping_operation() +} + +void grouping_operation() #GroupingOperation: +{} +{ + "GROUPING" "(" column_reference() ( "," column_reference() )* ")" +} + +void window_function() #WindowFunction(2): +{} +{ + // TODO(kaikalur): fixit -- window_function_type() "OVER" window_name_or_specification() + "OVER" window_name_or_specification() +} + +void window_function_type() : +{} +{ + rank_function_type() "(" ")" + | ( "ROW_NUMBER" "(" ")" )#RowNumber + | aggregate_function() + | ntile_function() + | lead_or_lag_function() + | first_or_last_value_function() + | nth_value_function() +} + +void rank_function_type() #RankFunction: +{} +{ + "RANK" + | "DENSE_RANK" + | "PERCENT_RANK" + | "CUME_DIST" +} + +void ntile_function() #NtileFunction: +{} +{ + "NTILE" "(" number_of_tiles() ")" +} + +void number_of_tiles(): +{} +{ + // TODO(kaikalur) - generalize simple_value_specification() + value_expression() + | ( "?" )#Unsupported() +} + +void lead_or_lag_function() #LeadOrLag: +{} +{ + lead_or_lag() + "(" value_expression() + // Generalized below [ "," exact_numeric_literal() [ "," value_expression() ] ] + [ "," value_expression() [ "," value_expression() ] ] // Non-standard + ")" + [ null_treatment() ] +} + +void lead_or_lag(): +{} +{ + "LEAD" | "LAG" +} + +void null_treatment() #NullTreatment: +{} +{ + "RESPECT" "NULLS" | "IGNORE" "NULLS" +} + +void first_or_last_value_function() #FirstOrLastValueFunction: +{} +{ + first_or_last_value() "(" value_expression() ")" [ null_treatment() ] +} + +void first_or_last_value(): +{} +{ + "FIRST_VALUE" | "LAST_VALUE" +} + +void nth_value_function() #Unsupported: +{} +{ + "NTH_VALUE" "(" value_expression() "," nth_row() ")" [ from_first_or_last() ] [ null_treatment() ] +} + +void nth_row(): +{} +{ + simple_value_specification() + | ( "?" )#Unsupported +} + +void from_first_or_last(): +{} +{ + "FROM" "FIRST" + | "FROM" "LAST" +} + +void window_name_or_specification(): +{} +{ + in_line_window_specification() + | identifier() +} + +void in_line_window_specification(): +{} +{ + window_specification() +} + +void case_expression(): +{} +{ + case_abbreviation() + | case_specification() +} + +void case_abbreviation(): +{} +{ + ( "NULLIF" "(" value_expression() "," value_expression() ")" )#NullIf + | ( "COALESCE" "(" value_expression() ( "," value_expression() )+ ")" )#Coalesce +} + +void case_specification(): +{} +{ + simple_case() + | searched_case() +} + +void simple_case() #CaseExpression: +{} +{ + "CASE" case_operand() ( simple_when_clause() )+ [ else_clause() ] "END" +} + +void searched_case() #CaseExpression: +{} +{ + "CASE" ( searched_when_clause() )+ [ else_clause() ] "END" +} + +void simple_when_clause() #WhenClause: +{} +{ + "WHEN" when_operand_list() "THEN" result() +} + +void searched_when_clause() #WhenClause: +{} +{ + "WHEN" search_condition() "THEN" result() +} + +void else_clause() #ElseClause: +{} +{ + "ELSE" result() +} + +void case_operand(): +{} +{ + row_value_predicand() + | overlaps_predicate_part_1() +} + +void when_operand_list(): +{} +{ + when_operand() ( "," when_operand() )* +} + +void when_operand() #WhenOperand: +{} +{ + // We push a dummy operand so the binary expressions are built properly + ( { } )#SearchedCaseOperand(true) + ( + row_value_predicand() + | comparison_predicate_part_2() + | between_predicate_part_2() + | in_predicate_part_2() + | character_like_predicate_part_2() + | octet_like_predicate_part_2() + | similar_predicate_part_2() + | regex_like_predicate_part_2() + | null_predicate_part_2() + | quantified_comparison_predicate_part_2() + | normalized_predicate_part_2() + | match_predicate_part_2() + | overlaps_predicate_part_2() + | distinct_predicate_part_2() + | member_predicate_part_2() + | submultiset_predicate_part_2() + | set_predicate_part_2() + | type_predicate_part_2() + ) +} + +void result(): +{} +{ + value_expression() + | ( "NULL" )#NullLiteral +} + +void cast_specification() #CastExpression: +{} +{ + "CAST" "(" cast_operand() "AS" cast_target() ")" + | try_cast() +} + +void cast_operand(): +{} +{ + value_expression() + | implicitly_typed_value_specification() +} + +void cast_target(): +{} +{ + data_type() + | schema_qualified_name() +} + +void next_value_expression() #NextValueFor: +{} +{ + "NEXT" "VALUE" "FOR" schema_qualified_name() +} + +void field_reference() #FieldReference(2): +{} +{ + // TODO(kaikalur): fixit -- value_expression_primary() "." identifier() + "." identifier() +} + +void subtype_treatment() #Unsupported: +{} +{ + "TREAT" "(" value_expression() "AS" target_subtype() ")" +} + +void target_subtype(): +{} +{ + path_resolved_user_defined_type_name() + | reference_type() +} + +void method_invocation(): +{} +{ + ( ( direct_invocation() #FunctionCall(2) ) [ { PushNode(PopNode()); } udaf_filter() #AggregationFunction(2) ] ) + //| direct_invocation() #FunctionCall(2) + | generalized_invocation() +} + +void direct_invocation(): +{} +{ + // TODO(kaikalur): fixit -- value_expression_primary() "." identifier() [ SQL_argument_list() ] + SQL_argument_list() +} + +void generalized_invocation() #FunctionCall(2): +{} +{ + // "(" value_expression_primary() "AS" data_type() ")" + ( "." identifier() )#QualifiedName(2) [ SQL_argument_list() ] +} + + +void static_method_invocation() #Unsupported: +{} +{ + // TODO(kaikalur): fixit - path_resolved_user_defined_type_name() "::" identifier() + "::" identifier() + [ SQL_argument_list() ] +} + +void new_specification() #Unsupported: +{} +{ + "NEW" path_resolved_user_defined_type_name() SQL_argument_list() +} + +void new_invocation() #Unused: +{} +{ + method_invocation() + | routine_invocation() +} + +void attribute_or_method_reference(): +{} +{ + // TODO(kaikalur): fixit -- value_expression_primary() "->" identifier() + // We treat everything as lambda for now. + // ( "->" identifier() [ SQL_argument_list() ] )#Lambda(>1) + ( lambda_body() )#Lambda(2) +} + +void dereference_operation() #Unsupported: +{} +{ + reference_value_expression() "->" identifier() +} + +void reference_resolution() #Unsupported: +{} +{ + "DEREF" "(" reference_value_expression() ")" +} + +void array_element_reference() #ArrayElement(2): +{} +{ + // TODO(kaikalur): fixit -- array_value_expression() + left_bracket_or_trigraph() value_expression() right_bracket_or_trigraph() +} + +void multiset_element_reference() #Unsupported: +{} +{ + "ELEMENT" "(" multiset_value_expression() ")" +} + +void value_expression(): +{} +{ + boolean_value_expression() + | common_value_expression() + | row_value_expression() +} + +void common_value_expression(): +{} +{ + numeric_value_expression() + | string_value_expression() + | datetime_value_expression() + | interval_value_expression() + | user_defined_type_value_expression() + | reference_value_expression() + | collection_value_expression() +} + +void user_defined_type_value_expression(): +{} +{ + value_expression_primary() +} + +void reference_value_expression(): +{} +{ + value_expression_primary() +} + +void collection_value_expression(): +{} +{ + array_value_expression() + | multiset_value_expression() +} + +void numeric_value_expression(): +{} +{ + term() + ( + { PushNode(PopNode()); } term() #AdditiveExpression(2) + | { PushNode(PopNode()); } term() #AdditiveExpression(2) + )* +} + +void term(): +{} +{ + factor() + ( + { PushNode(PopNode()); } factor() #MultiplicativeExpression(2) + | { PushNode(PopNode()); } factor() #MultiplicativeExpression(2) + | { PushNode(PopNode()); } percent_operator() factor() #MultiplicativeExpression(2) + )* +} + +void factor(): +{} +{ + ( ( "+" | "-" ) numeric_primary() )#UnaryExpression(1) + | numeric_primary() +} + +void numeric_primary(): +{} +{ + numeric_value_function() + | character_value_expression() +} + +void numeric_value_function() #BuiltinFunctionCall: +{} +{ + // Builtin function calls are weird in that the name is a keyword and then a ( expressions ) so we open a new scope and just make an ArgumentList + // so that it will be just like a FunctionCall + ( + position_expression() + | regex_occurrences_function() + | regex_position_expression() + | extract_expression() + | length_expression() + | cardinality_expression() + | max_cardinality_expression() + | absolute_value_expression() + | modulus_expression() + | natural_logarithm() + | exponential_function() + | power_function() + | square_root() + | floor_function() + | ceiling_function() + | width_bucket_function() + ) #ArgumentList(>0) +} + +void position_expression(): +{} +{ + character_position_expression() + | binary_position_expression() +} + +void regex_occurrences_function() #Unsupported: +{} +{ + "OCCURRENCES_REGEX" "(" + character_value_expression() [ "FLAG" character_value_expression() ] + "IN" character_value_expression() + [ "FROM" numeric_value_expression() ] + [ "USING" char_length_units() ] + ")" +} + +void regex_position_expression() #Unsupported: +{} +{ + "POSITION_REGEX" "(" + [ regex_position_start_or_after() ] + character_value_expression() [ "FLAG" character_value_expression() ] + "IN" character_value_expression() + [ "FROM" numeric_value_expression() ] + [ "USING" char_length_units() ] + [ "OCCURRENCE" numeric_value_expression() ] + [ "GROUP" numeric_value_expression() ] + ")" +} + +void regex_position_start_or_after(): +{} +{ + "START" + | "AFTER" +} + +void character_position_expression(): +{} +{ + "POSITION" "(" character_value_expression() "IN" character_value_expression() + [ ( "USING" char_length_units() ) #Unsupported ] ")" +} + +void binary_position_expression(): +{} +{ + "POSITION" "(" binary_value_expression() "IN" binary_value_expression() ")" +} + +void length_expression(): +{} +{ + char_length_expression() + | octet_length_expression() +} + +void char_length_expression(): +{} +{ + ( "CHAR_LENGTH" | "CHARACTER_LENGTH" ) "(" character_value_expression() + [ ( "USING" char_length_units() ) #Unsupported ] ")" +} + +void octet_length_expression() #Unsupported: +{} +{ + "OCTET_LENGTH" "(" string_value_expression() ")" +} + +void extract_expression(): +{} +{ + "EXTRACT" "(" extract_field() "FROM" extract_source() ")" +} + +void extract_field(): +{} +{ + primary_datetime_field() + | time_zone_field() +} + +void time_zone_field() #TimeZoneField: +{} +{ + "TIMEZONE_HOUR" + | "TIMEZONE_MINUTE" +} + +void extract_source(): +{} +{ + datetime_value_expression() + | interval_value_expression() +} + +void cardinality_expression(): +{} +{ + "CARDINALITY" "(" collection_value_expression() ")" +} + +void max_cardinality_expression() #Unsupported: +{} +{ + "MAX_CARDINALITY" "(" array_value_expression() ")" +} + +void absolute_value_expression(): +{} +{ + "ABS" "(" numeric_value_expression() ")" +} + +void modulus_expression(): +{} +{ + "MOD" "(" numeric_value_expression() "," numeric_value_expression() ")" +} + +void natural_logarithm(): +{} +{ + "LN" "(" numeric_value_expression() ")" +} + +void exponential_function(): +{} +{ + "EXP" "(" numeric_value_expression() ")" +} + +void power_function(): +{} +{ + "POWER" "(" numeric_value_expression() "," numeric_value_expression() ")" +} + +void square_root(): +{} +{ + "SQRT" "(" numeric_value_expression() ")" +} + +void floor_function(): +{} +{ + "FLOOR" "(" numeric_value_expression() ")" +} + +void ceiling_function(): +{} +{ + ( "CEIL" | "CEILING" ) "(" numeric_value_expression() ")" +} + +void width_bucket_function(): +{} +{ + "WIDTH_BUCKET" "(" numeric_value_expression() "," numeric_value_expression() + [ "," numeric_value_expression() "," numeric_value_expression() ] // Non-standard optional + ")" +} + +void string_value_expression(): +{} +{ + character_value_expression() + | binary_value_expression() +} + +void character_value_expression() #Concatenation(>1): +{} +{ + character_factor() ( concatenation() )* +} + +void concatenation(): +{} +{ + // TODO(kaikalur): fixit -- character_value_expression() "||" character_factor() + "||" character_factor() +} + +void character_factor(): +{} +{ + character_primary() [ ( collate_clause() )#Unsupported ] +} + +void character_primary(): +{} +{ + string_value_function() + | binary_value_expression() +} + +void binary_value_expression() #Concatenation(>1): +{} +{ + binary_primary() ( binary_concatenation() )* +} + +void binary_primary(): +{} +{ + string_value_function() + | datetime_value_expression() +} + +void binary_concatenation(): +{} +{ + // TODO(kaikalur): fixit -- binary_value_expression() "||" binary_primary() + "||" binary_primary() +} + +void string_value_function(): +{} +{ + character_value_function() + | binary_value_function() +} + +void character_value_function() #BuiltinFunctionCall: +{} +{ + ( + character_substring_function() + | regular_expression_substring_function() + | regex_substring_function() + | fold() + | transcoding() + | character_transliteration() + | regex_transliteration() + | trim_function() + | character_overlay_function() + | normalize_function() + | specific_type_method() + ) #ArgumentList(>0) +} + +void character_substring_function(): +{} +{ + "SUBSTRING" "(" character_value_expression() "FROM" numeric_value_expression() + [ "FOR" numeric_value_expression() ] + [ ( "USING" char_length_units() )#Unsupported ] + ")" +} + +void regular_expression_substring_function() #Unsupported: +{} +{ + "SUBSTRING" "(" character_value_expression() "SIMILAR" character_value_expression() + "ESCAPE" character_value_expression() ")" +} + +void regex_substring_function() #Unsupported: +{} +{ + "SUBSTRING_REGEX" "(" + character_value_expression() [ "FLAG" character_value_expression() ] + "IN" character_value_expression() + [ "FROM" numeric_value_expression() ] + [ "USING" char_length_units() ] + [ "OCCURRENCE" numeric_value_expression() ] + [ "GROUP" numeric_value_expression() ] + ")" +} + +void fold(): +{} +{ + ( "UPPER" | "LOWER" ) "(" character_value_expression() ")" +} + +void transcoding() #Unsupported: +{} +{ + "CONVERT" "(" character_value_expression() "USING" schema_qualified_name() ")" +} + +void character_transliteration() #Unsupported: +{} +{ + "TRANSLATE" "(" character_value_expression() "USING" schema_qualified_name() ")" +} + +void regex_transliteration() #Unsupported: +{} +{ + "TRANSLATE_REGEX" "(" + character_value_expression() [ "FLAG" character_value_expression() ] + "IN" character_value_expression() + [ "WITH" character_value_expression() ] + [ "FROM" numeric_value_expression() ] + [ "USING" char_length_units() ] + [ "OCCURRENCE" regex_transliteration_occurrence() ] + ")" +} + +void regex_transliteration_occurrence(): +{} +{ + "ALL" + | numeric_value_expression() +} + +void trim_function(): +{} +{ + "TRIM" "(" trim_operands() ")" +} + +void trim_operands(): +{} +{ + [ trim_specification() ] + character_value_expression() + [ + ("," | ( "FROM" )#Unsupported ) // Non-standard + character_value_expression() + ] +} + +void trim_specification() #Unsupported: +{} +{ + "LEADING" + | "TRAILING" + | "BOTH" +} + +void character_overlay_function() #Unsupported: +{} +{ + "OVERLAY" "(" character_value_expression() "PLACING" character_value_expression() + "FROM" numeric_value_expression() [ "FOR" numeric_value_expression() ] + [ "USING" char_length_units() ] ")" +} + +void normalize_function() #Unsupported: +{} +{ + "NORMALIZE" "(" character_value_expression() + [ "," normal_form() [ "," normalize_function_result_length() ] ] ")" +} + +void normal_form(): +{} +{ + "NFC" + | "NFD" + | "NFKC" + | "NFKD" +} + +void normalize_function_result_length(): +{} +{ + character_length() + | character_large_object_length() +} + +void specific_type_method() #Unsupported: +{} +{ + //user_defined_type_value_expression() "." "SPECIFICTYPE" + "." "SPECIFICTYPE" [ "(" ")" ] +} + +void binary_value_function(): +{} +{ + binary_substring_function() + | binary_trim_function() + | binary_overlay_function() +} + +void binary_substring_function() #Unsupported: +{} +{ + "SUBSTRING" "(" binary_value_expression() "FROM" numeric_value_expression() + [ "FOR" numeric_value_expression() ] ")" +} + +void binary_trim_function(): +{} +{ + "TRIM" "(" binary_trim_operands() ")" +} + +void binary_trim_operands(): +{} +{ + [ trim_specification() ] + binary_value_expression() + [ + ("," | ( "FROM" )#Unsupported ) // Non-standard + binary_value_expression() + ] +} + +void binary_overlay_function() #Unsupported: +{} +{ + "OVERLAY" "(" binary_value_expression() "PLACING" binary_value_expression() + "FROM" numeric_value_expression() [ "FOR" numeric_value_expression() ] ")" +} + +void datetime_value_expression(): +{} +{ + ( datetime_term() ) // [ ( "+" | "-" ) interval_term() ] )#AdditiveExpression(>1) + | ( interval_value_expression() ) //[ "+" datetime_term() ] )#AdditiveExpression(>1) +} + +void datetime_term(): +{} +{ + datetime_factor() +} + +void datetime_factor() : +{} +{ + datetime_primary() [ time_zone() ] +} + +void datetime_primary(): +{} +{ + datetime_value_function() + | interval_value_expression() +} + +void time_zone() #Unsupported: +{} +{ + "AT" time_zone_specifier() +} + +void time_zone_specifier(): +{} +{ + "LOCAL" + | "TIME" "ZONE" interval_primary() +} + +void datetime_value_function() #BuiltinFunctionCall: +{} +{ + ( + current_date_value_function() + | current_time_value_function() + | current_timestamp_value_function() + | current_local_time_value_function() + | current_local_timestamp_value_function() + ) #ArgumentList(>0) +} + +void current_date_value_function(): +{} +{ + "CURRENT_DATE" +} + +void current_time_value_function(): +{} +{ + "CURRENT_TIME" [ ( "(" ")" )#Unsupported ] +} + +void current_local_time_value_function(): +{} +{ + "LOCALTIME" [ ( "(" ")" )#Unsupported ] +} + +void current_timestamp_value_function(): +{} +{ + "CURRENT_TIMESTAMP" [ ( "(" ")" )#Unsupported ] +} + +void current_local_timestamp_value_function() #Unsupported: +{} +{ + "LOCALTIMESTAMP" [ ( "(" ")" )#Unsupported ] +} + +void interval_value_expression(): +{} +{ + ( interval_term() ) //[ ( "+" | "-" ) interval_term() ] ) #AdditiveExpression(>1) + | LOOKAHEAD("(" datetime_value_expression() "-" datetime_term() ")" ) + ( "(" datetime_value_expression() "-" datetime_term() ")" )#AdditiveExpression + interval_qualifier() +} + +void interval_term() #MultiplicativeExpression(>1): +{} +{ + interval_factor() [ ( "*" | "/" ) factor() ] + //TODO(kaikalur) - fixit | term() [ "*" interval_factor() ] +} + +void interval_factor(): +{} +{ + ( ( "+" | "-" ) interval_primary() )#UnaryExpression(1) + | interval_primary() +} + +void interval_primary(): +{} +{ + interval_value_function() +|( + array_value_expression() +) [ ( interval_qualifier() )#Unsupported ] +} + + +void interval_value_function() #BuiltinFunctionCall: +{} +{ + ( interval_absolute_value_function() ) #ArgumentList(>0) +} + +void interval_absolute_value_function(): +{} +{ + "ABS" "(" interval_value_expression() ")" +} + +void boolean_value_expression() #OrExpression(>1): +{} +{ + boolean_term() ( "OR" boolean_term() )* +} + +void boolean_term() #AndExpression(>1): +{} +{ + boolean_factor() ( "AND" boolean_factor() )* +} + +void boolean_factor(): +{} +{ + ( "NOT" boolean_test() )#NotExpression + | boolean_test() +} + +void boolean_test() #IsExpression(>1): +{} +{ + boolean_primary() + [ "IS" [ "NOT" ] truth_value() ] +} + +void truth_value(): +{} +{ + "TRUE" + | "FALSE" + | ( "UNKNOWN" )#Unsupported +} + +void boolean_primary(): +{} +{ + predicate() + | boolean_predicand() +} + +void boolean_predicand(): +{} +{ + parenthesized_boolean_value_expression() + | numeric_value_expression() +} + +void parenthesized_boolean_value_expression() #ParenthesizedExpression: +{} +{ + "(" boolean_value_expression() ")" +} + +void array_value_expression() #Concatenation(>1): +{} +{ + array_primary() ( "||" array_primary() )* +} + +void array_value_expression_1(): +{} +{ + array_value_expression() +} + +void array_primary(): +{} +{ + array_value_function() + | multiset_value_expression() +} + +void array_value_function() #Unsupported: +{} +{ + trim_array_function() +} + +void trim_array_function(): +{} +{ + "TRIM_ARRAY" "(" array_value_expression() "," numeric_value_expression() ")" +} + +void array_value_constructor(): +{} +{ + array_value_constructor_by_enumeration() + | array_value_constructor_by_query() +} + +void array_value_constructor_by_enumeration() #ArrayLiteral: +{} +{ + "ARRAY" left_bracket_or_trigraph() + [ array_element_list() ] // For parsing ease. + right_bracket_or_trigraph() +} + +void array_element_list(): +{} +{ + array_element() ( "," array_element() )* +} + +void array_element(): +{} +{ + value_expression() +} + +void array_value_constructor_by_query() #Unsupported: +{} +{ + "ARRAY" subquery() +} + +void multiset_value_expression() : +{} +{ + multiset_term() [ ( "MULTISET" "UNION" [ "ALL" | "DISTINCT" ] | "MULTISET" "EXCEPT" [ "ALL" | "DISTINCT" ] ) multiset_term() #Unsupported(2) ] +} + +void multiset_term() : +{} +{ + multiset_primary() [ "MULTISET" "INTERSECT" [ "ALL" | "DISTINCT" ] multiset_primary() #Unsupported(2)] +} + +void multiset_primary(): +{} +{ + multiset_set_function() + | value_expression_primary() +} + +void multiset_set_function() #Unsupported: +{} +{ + "SET" "(" multiset_value_expression() ")" +} + +void multiset_value_constructor() #Unsupported: +{} +{ + multiset_value_constructor_by_enumeration() + | multiset_value_constructor_by_query() + | table_value_constructor_by_query() +} + +void multiset_value_constructor_by_enumeration(): +{} +{ + "MULTISET" left_bracket_or_trigraph() multiset_element_list() right_bracket_or_trigraph() +} + +void multiset_element_list(): +{} +{ + multiset_element() ( "," multiset_element() )* +} + +void multiset_element(): +{} +{ + value_expression() +} + +void multiset_value_constructor_by_query(): +{} +{ + "MULTISET" subquery() +} + +void table_value_constructor_by_query(): +{} +{ + "TABLE" subquery() +} + +void row_value_constructor(): +{} +{ + explicit_row_value_constructor() + | common_value_expression() + | boolean_value_expression() +} + +void explicit_row_value_constructor(): +{} +{ + ( "ROW" "(" row_value_constructor_element_list() ")" )#RowExpression + | subquery() + | ( "(" row_value_constructor_element() [ "," row_value_constructor_element_list() ] ")" )#RowExpression +} + +void row_value_constructor_element_list(): +{} +{ + row_value_constructor_element() ( "," row_value_constructor_element() )* +} + +void row_value_constructor_element(): +{} +{ + value_expression() +} + +void contextually_typed_row_value_constructor(): +{} +{ + common_value_expression() + | boolean_value_expression() + | contextually_typed_value_specification() + | ( "(" contextually_typed_value_specification() ")" )#ParenthesizedExpression + | ("(" contextually_typed_row_value_constructor_element() "," + contextually_typed_row_value_constructor_element_list() ")" )#ParenthesizedExpression + | ( "ROW" "(" contextually_typed_row_value_constructor_element_list() ")" )#RowExression +} + +void contextually_typed_row_value_constructor_element_list(): +{} +{ + contextually_typed_row_value_constructor_element() + ( "," contextually_typed_row_value_constructor_element() )* +} + +void contextually_typed_row_value_constructor_element(): +{} +{ + contextually_typed_value_specification() + //| value_expression() +} + +void row_value_constructor_predicand(): +{} +{ + common_value_expression() + | explicit_row_value_constructor() + //| boolean_predicand() +} + +void row_value_expression(): +{} +{ + explicit_row_value_constructor() + | row_value_special_case() +} + +void table_row_value_expression(): +{} +{ + row_value_constructor() + | row_value_special_case() +} + +void contextually_typed_row_value_expression(): +{} +{ + contextually_typed_row_value_constructor() + | row_value_special_case() +} + +void row_value_predicand(): +{} +{ + row_value_constructor_predicand() + | row_value_special_case() +} + +void row_value_special_case(): +{} +{ + common_value_expression() + | nonparenthesized_value_expression_primary() +} + +void table_value_constructor() #Values: +{} +{ + "VALUES" row_value_expression_list() +} + +void row_value_expression_list(): +{} +{ + table_row_value_expression() ( "," table_row_value_expression() )* +} + +void contextually_typed_table_value_constructor() #Values: +{} +{ + "VALUES" contextually_typed_row_value_expression_list() +} + +void contextually_typed_row_value_expression_list(): +{} +{ + contextually_typed_row_value_expression() + ( "," contextually_typed_row_value_expression() )* +} + +void table_expression() #TableExpression: +{} +{ + from_clause() + [ where_clause() ] + [ group_by_clause() ] + [ having_clause() ] + [ window_clause() ] +} + +void from_clause() #FromClause: +{} +{ + "FROM" table_reference_list() +} + +void table_reference_list() #CommaJoin(>1): +{} +{ + table_reference() ( "," table_reference() )* +} + +void table_reference() #Join(>1): +{} +{ + table_factor() ( joined_table() )* +} + +void table_factor() #TableSample(>1): +{} +{ + table_primary() [ sample_clause() ] + + [ ( partitioned_join_table() ) #Unsupported ] // For removing left recursion +} + +void sample_clause(): +{} +{ + "TABLESAMPLE" sample_method() "(" sample_percentage() ")" + [ repeatable_clause() ] +} + +void sample_method(): +{} +{ + "BERNOULLI" + | "SYSTEM" +} + +void repeatable_clause() #Unsupported: +{} +{ + "REPEATABLE" "(" repeat_argument() ")" +} + +void sample_percentage(): +{} +{ + numeric_value_expression() +} + +void repeat_argument(): +{} +{ + numeric_value_expression() +} + +void table_primary() #AliasedTable(>1): +{} +{ + ( + table_or_query_name() + | LOOKAHEAD("(" ("WITH"|"SELECT"|"VALUES"|"TABLE")) derived_table() + | parenthesized_joined_table() + | lateral_derived_table() + | collection_derived_table() + | table_function_derived_table() + | only_spec() + | data_change_delta_table() + ) + + [ alias() ] +} + +void alias() #Alias: +{} +{ + [ "AS" ] + identifier() + [ identifier_suffix_chain() ] + [ "(" column_name_list() ")" ] +} + +void system_version_specification() #Unsupported: +{} +{ + "AS" "OF" "SYSTEM" "TIME" datetime_value_expression() + | "VERSIONS" "BEFORE" "SYSTEM" "TIME" datetime_value_expression() + | "VERSIONS" "AFTER" "SYSTEM" "TIME" datetime_value_expression() + | "VERSIONS" "BETWEEN" [ "ASYMMETRIC" | "SYMMETRIC" ] + "SYSTEM" "TIME" datetime_value_expression() "AND" datetime_value_expression() +} + +void only_spec() #Unsupported: +{} +{ + "ONLY" "(" table_or_query_name() ")" +} + +// TODO(kaikalur) - check Presto and Spark for lateral +void lateral_derived_table() #Unsupported: +{} +{ + "LATERAL" subquery() +} + +void collection_derived_table() #Unnest: +{} +{ + "UNNEST" "(" collection_value_expression() + ( "," collection_value_expression() )* ")" + [ "WITH" "ORDINALITY" ] +} + +void table_function_derived_table() #Unsupported: +{} +{ + "TABLE" "(" collection_value_expression() ")" +} + +void derived_table(): +{} +{ + LOOKAHEAD("(" ("SELECT"|"VALUES"|"TABLE")) query_expression() + | subquery() +} + +void table_or_query_name(): +{} +{ + table_name() + | identifier() +} + +void column_name_list() #ColumnNames: +{} +{ + identifier() ( "," identifier() )* +} + +void data_change_delta_table() #Unsupported: +{} +{ + result_option() "TABLE" "(" data_change_statement() ")" +} + +void data_change_statement(): +{} +{ + delete_statement_searched() + | insert_statement() + | merge_statement() + | update_statement_searched() +} + +void result_option(): +{} +{ + "FINAL" + | "NEW" + | "OLD" +} + +void parenthesized_joined_table() #Join(>1): +{} +{ + // TODO(kaikalur) -- double check the following + //"(" parenthesized_joined_table() ")" + //| "(" joined_table() ")" + + "(" + ( + LOOKAHEAD("(" ("WITH"|"SELECT"|"VALUES"|"TABLE")) table_primary() + | table_reference() + ) + + ( joined_table() )* + ")" +} + +void joined_table(): +{} +{ + cross_join() + | qualified_join() + | natural_join() +} + +void cross_join(): +{} +{ + //TODO(kaikalur): fixit --table_reference() "CROSS" "JOIN" table_factor() + "CROSS" "JOIN" table_factor() +} + +void qualified_join(): +{} +{ + //TODO(kaikalur) -- check partitioned ( table_reference() | partitioned_join_table() ) + [ join_type() ] "JOIN" + ( table_reference() | partitioned_join_table() ) + join_specification() +} + +void partitioned_join_table() #Unsupported: +{} +{ + "PARTITION" "BY" partitioned_join_column_reference_list() +} + +void partitioned_join_column_reference_list(): +{} +{ + "(" partitioned_join_column_reference() + ( "," partitioned_join_column_reference() )* + ")" +} + +void partitioned_join_column_reference(): +{} +{ + column_reference() +} + +void natural_join() #Unsupported: +{} +{ + //TODO(kaikalur) -- check ( table_reference() | partitioned_join_table() ) + "NATURAL" [ join_type() ] "JOIN" + ( table_factor() | partitioned_join_table() ) +} + +void join_specification(): +{} +{ + join_condition() + | named_columns_join() +} + +void join_condition() #OnClause: +{} +{ + "ON" search_condition() +} + +void named_columns_join() #UsingClause: +{} +{ + "USING" "(" join_column_list() ")" +} + +void join_type(): +{} +{ + "INNER" + | outer_join_type() [ "OUTER" ] +} + +void outer_join_type(): +{} +{ + "LEFT" + | "RIGHT" + | "FULL" +} + +void join_column_list(): +{} +{ + column_name_list() +} + +void where_clause() #WhereClause: +{} +{ + "WHERE" search_condition() +} + +void group_by_clause() #GroupbyClause: +{} +{ + "GROUP" "BY" + [ ( set_quantifier() )#Unsupported ] + grouping_element_list() +} + +void grouping_element_list(): +{} +{ + grouping_element() ( "," grouping_element() )* +} + +void grouping_element(): +{} +{ + rollup_list() + | cube_list() + | grouping_sets_specification() + | empty_grouping_set() + | ordinary_grouping_set() +} + +void ordinary_grouping_set(): +{} +{ + grouping_column_reference() + | "(" grouping_column_reference_list() ")" +} + +void grouping_column_reference(): +{} +{ + ( + grouping_expression() + | column_reference() + ) + + [ ( collate_clause() )#Unsupported ] +} + +void grouping_column_reference_list(): +{} +{ + grouping_column_reference() ( "," grouping_column_reference() )* +} + +void rollup_list() #Rollup: +{} +{ + "ROLLUP" "(" ordinary_grouping_set_list() ")" +} + +void ordinary_grouping_set_list(): +{} +{ + ordinary_grouping_set() ( "," ordinary_grouping_set() )* +} + +void cube_list() #Cube: +{} +{ + "CUBE" "(" ordinary_grouping_set_list() ")" +} + +void grouping_sets_specification() #GroupingSets: +{} +{ + "GROUPING" "SETS" "(" grouping_set_list() ")" +} + +void grouping_set_list(): +{} +{ + grouping_set() ( "," grouping_set() )* +} + +void grouping_set(): +{} +{ + rollup_list() + | cube_list() + | grouping_sets_specification() + | empty_grouping_set() + | ordinary_grouping_set() +} + +void empty_grouping_set(): +{} +{ + "(" ")" +} + +void having_clause() #HavingClause: +{} +{ + "HAVING" search_condition() +} + +void window_clause() #Unsupported: +{} +{ + "WINDOW" window_definition_list() +} + +void window_definition_list(): +{} +{ + window_definition() ( "," window_definition() )* +} + +void window_definition(): +{} +{ + identifier() "AS" window_specification() +} + +void window_specification() #WindowSpecification: +{} +{ + "(" [ window_specification_details() ] ")" +} + +void window_specification_details(): +{} +{ + // TODO(kaikalur): checkout this rule + ( + window_partition_clause() + | window_order_clause() + | window_frame_clause() + | existing_identifier() + )+ +} + +void existing_identifier(): +{} +{ + identifier() +} + +void window_partition_clause() #PartitionByClause: +{} +{ + "PARTITION" "BY" window_partition_column_reference_list() +} + +void window_partition_column_reference_list(): +{} +{ + window_partition_column_reference() + ( "," window_partition_column_reference() )* +} + +void window_partition_column_reference(): +{} +{ + ( + value_expression() // Non-standard + | column_reference() + ) + [ collate_clause() ] +} + +void window_order_clause() #OrderByClause: +{} +{ + "ORDER" "BY" sort_specification_list() +} + +void window_frame_clause(): +{} +{ + window_frame_units() window_frame_extent() + [ window_frame_exclusion() ] +} + +void window_frame_units() #WindowFrameUnits: +{} +{ + "ROWS" + | "RANGE" +} + +void window_frame_extent() #WindowFrameExtent: +{} +{ + window_frame_start() + | window_frame_between() +} + +void window_frame_start(): +{} +{ + ( "UNBOUNDED" "PRECEDING" )#UnboundedPreceding + | ( "CURRENT" "ROW" )#CurrentRow + | window_frame_preceding() +} + +void window_frame_preceding() #WindowFramePreceding: +{} +{ + //TODO(kaikalur) - genralized unsigned_value_specification() "PRECEDING" + value_expression() "PRECEDING" +} + +void window_frame_between() #WindowFrameBetween: +{} +{ + "BETWEEN" window_frame_bound() "AND" window_frame_bound() +} + +void window_frame_bound(): +{} +{ + window_frame_start() + | ( "UNBOUNDED" "FOLLOWING" )#UnboundedFollowing + | window_frame_following() +} + +void window_frame_following() #WindowFrameFollowing: +{} +{ + //TODO(kaikalur) - genralized unsigned_value_specification() "FOLLOWING" + value_expression() "FOLLOWING" +} + +void window_frame_exclusion() #Unsupported: +{} +{ + "EXCLUDE" "CURRENT" "ROW" + | "EXCLUDE" "GROUP" + | "EXCLUDE" "TIES" + | "EXCLUDE" "NO" "OTHERS" +} + +void query_specification() #Select: +{} +{ + "SELECT" [ set_quantifier() ] select_list() + [ table_expression() ] // Non-standard +} + +void select_list() #SelectList: +{} +{ + star() + ( "," select_sublist() )* // Non-standard + | select_sublist() ( "," select_sublist() )* + [ "," star() ] // Non-standard + ( "," select_sublist() )* // Non-standard +} + +void star() #SelectItem: +{} +{ + ( "*" ) #Star +} + +void select_sublist() #SelectItem: +{} +{ + //derived_column() + //| qualified_asterisk() + + // For ease of parsing + derived_column() + [ + "." ( "*" )#Star() + [ ( "AS" "(" all_fields_column_name_list() ")" )#Unsupported ] + | as_clause() + ] +} + +void qualified_asterisk(): +{} +{ + ( asterisked_identifier_chain() "." "*" )#Star + | all_fields_reference() +} + +void asterisked_identifier_chain() #QualifiedName(>1): +{} +{ + identifier() ( "." identifier() )* +} + +void derived_column(): +{} +{ + value_expression() [ as_clause() ] +} + +void as_clause() #Alias: +{} +{ + [ "AS" ] identifier() +} + +void all_fields_reference(): +{} +{ + value_expression_primary() "." "*" + [ ( "AS" "(" all_fields_column_name_list() ")" )#Unsupported ] +} + +void all_fields_column_name_list(): +{} +{ + column_name_list() +} + +void query_expression() #QuerySpecification(>1): +{} +{ + [ with_clause() ] query_expression_body() + [ order_by_clause() ] + // TODO(kaikalur): validate + [ limit_clause() | result_offset_clause() [ fetch_first_clause() ] | fetch_first_clause() ] +} + +void with_clause() #WithClause: +{} +{ + "WITH" [ "RECURSIVE" ] with_list() +} + +void with_list(): +{} +{ + with_list_element() ( "," with_list_element() )* +} + +void with_list_element() #Cte: +{} +{ + identifier() [ "(" column_name_list() ")" ] + "AS" subquery() [ search_or_cycle_clause() ] +} + +void query_expression_body() #SetOperation(>1): +{} +{ + query_term() + ( "UNION" [ "ALL" | "DISTINCT" ] + [ corresponding_spec() ] query_term() + | "EXCEPT" [ "ALL" | "DISTINCT" ] + [ corresponding_spec() ] query_term() + )* +} + +void query_term() #SetOperation(>1): +{} +{ + query_primary() ( "INTERSECT" [ "ALL" | "DISTINCT" ] [ corresponding_spec() ] query_primary() )* +} + +void query_primary(): +{} +{ + ( "(" query_expression_body() + [ order_by_clause() ] + ( [ limit_clause() ] | [ result_offset_clause() ] [ fetch_first_clause() ] ) + ")" + )#Subquery + | simple_table() +} + +void simple_table(): +{} +{ + table_value_constructor() + | explicit_table() + | query_specification() +} + +void explicit_table(): +{} +{ + "TABLE" table_or_query_name() +} + +void corresponding_spec() #Unsupported: +{} +{ + "CORRESPONDING" [ "BY" "(" column_name_list() ")" ] +} + +void order_by_clause() #OrderByClause: +{} +{ + "ORDER" "BY" sort_specification_list() +} + +void result_offset_clause() #Unsupported: +{} +{ + "OFFSET" simple_value_specification() ( "ROW" | "ROWS" ) +} + +void fetch_first_clause() #Unsupported: +{} +{ + "FETCH" ( "FIRST" | "NEXT" ) [ simple_value_specification() ] ( "ROW" | "ROWS" ) "ONLY" +} + +void search_or_cycle_clause() #Unsupported: +{} +{ + search_clause() + | cycle_clause() + | search_clause() cycle_clause() +} + +void search_clause(): +{} +{ + "SEARCH" recursive_search_order() "SET" identifier() +} + +void recursive_search_order(): +{} +{ + "DEPTH" "FIRST" "BY" column_name_list() + | "BREADTH" "FIRST" "BY" column_name_list() +} + +void cycle_clause(): +{} +{ + "CYCLE" cycle_column_list() "SET" identifier() "TO" value_expression() + "DEFAULT" value_expression() "USING" identifier() +} + +void cycle_column_list(): +{} +{ + identifier() ( "," identifier() )* +} + +void subquery() #Subquery: +{} +{ + "(" query_expression() ")" +} + +void predicate(): +{} +{ + exists_predicate() + | unique_predicate() + | row_value_predicand() + + [ + { PushNode(PopNode()); } + ( + comparison_predicate() + | between_predicate() + | in_predicate() + | like_predicate() + | similar_predicate() + | regex_like_predicate() + | null_predicate() + | quantified_comparison_predicate() + | normalized_predicate() + | match_predicate() + | overlaps_predicate() + | distinct_predicate() + | member_predicate() + | submultiset_predicate() + | set_predicate() + | type_predicate() + ) + ] +} + +void comparison_predicate(): +{} +{ + comparison_predicate_part_2() +} + +void comparison_predicate_part_2() #Comparison(2): +{} +{ + comp_op() row_value_predicand() +} + +void comp_op(): +{} +{ + "> + | + | "> + | ="> + | +} + +void interval_leading_field_precision(): +{} +{ + +} + +void language_clause() #LanguageClause: +{} +{ + "LANGUAGE" language_name() +} + +void language_name(): +{} +{ + "ADA" + | "C" + | "COBOL" + | "FORTRAN" + | "M" | "MUMPS" + | "PASCAL" + | "PLI" + | "SQL" +} + +void path_specification(): +{} +{ + "PATH" schema_name_list() +} + +void schema_name_list(): +{} +{ + schema_name() ( "," schema_name() )* +} + +void routine_invocation(): +{} +{ + routine_name() SQL_argument_list() +} + +void routine_name(): +{} +{ + [ schema_name() "." ] identifier() +} + +void SQL_argument_list() #ArgumentList: +{} +{ + "(" [ SQL_argument() ( "," SQL_argument() )* ] ")" +} + +void SQL_argument(): +{} +{ + LOOKAHEAD(lambda_params() "->") lambda() + | value_expression() [ generalized_expression() ] + | named_argument_specification() + | contextually_typed_value_specification() + | target_specification() +} + +void generalized_expression() #Unsupported: +{} +{ + "AS" path_resolved_user_defined_type_name() +} + +void named_argument_specification() #NamedArgument: +{} +{ + identifier() "=>" + named_argument_SQL_argument() +} + +void named_argument_SQL_argument(): +{} +{ + value_expression() + | contextually_typed_value_specification() + | target_specification() +} + +void character_set_specification() #Unsupported: +{} +{ + standard_character_set_name() + | implementation_defined_character_set_name() + | user_defined_character_set_name() +} + +void standard_character_set_name(): +{} +{ + character_set_name() +} + +void implementation_defined_character_set_name(): +{} +{ + character_set_name() +} + +void user_defined_character_set_name(): +{} +{ + character_set_name() +} + +void specific_routine_designator() #Unsupported: +{} +{ + "SPECIFIC" routine_type() schema_qualified_name() + | routine_type() member_name() [ "FOR" schema_resolved_user_defined_type_name() ] +} + +void routine_type(): +{} +{ + "ROUTINE" + | "FUNCTION" + | "PROCEDURE" + | [ "INSTANCE" | "STATIC" | "CONSTRUCTOR" ] "METHOD" +} + +void member_name(): +{} +{ + member_name_alternatives() [ data_type_list() ] +} + +void member_name_alternatives(): +{} +{ + schema_qualified_name() + | identifier() +} + +void data_type_list(): +{} +{ + "(" [ data_type() ( "," data_type() )* ] ")" +} + +void collate_clause() #Unsupported: +{} +{ + "COLLATE" schema_qualified_name() +} + +void constraint_name_definition() #Unsupported: +{} +{ + "CONSTRAINT" schema_qualified_name() +} + +void constraint_characteristics(): +{} +{ + constraint_check_time() [ [ "NOT" ] "DEFERRABLE" ] [ constraint_enforcement() ] + | [ "NOT" ] "DEFERRABLE" [ constraint_check_time() ] [ constraint_enforcement() ] + | constraint_enforcement() +} + +void constraint_check_time(): +{} +{ + "INITIALLY" "DEFERRED" + | "INITIALLY" "IMMEDIATE" +} + +void constraint_enforcement(): +{} +{ + [ "NOT" ] "ENFORCED" +} + +void aggregate_function() #AggregationFunction: +{} +{ + ( + "COUNT" "(" "*" ")" + | count() + | general_set_function() + | binary_set_function() + | ordered_set_function() + | array_aggregate_function() + | presto_aggregations() + ) + + [ filter_clause() ] +} + +void general_set_function(): +{} +{ + set_function_type() "(" [ set_quantifier() ] value_expression() + [ extra_args_to_agg() ] + ")" +} + +void set_function_type(): +{} +{ + computational_operation() +} + +void computational_operation(): +{} +{ + "AVG" + | "MAX" + | "MIN" + | "SUM" + | "EVERY" + | "ANY" + | "SOME" + | "COUNT" + | "STDDEV_POP" + | "STDDEV_SAMP" + | "VAR_SAMP" + | "VAR_POP" + | "COLLECT" + | "FUSION" + | "INTERSECTION" +} + +void set_quantifier() #SetQuantifier: +{} +{ + "DISTINCT" + | "ALL" +} + +void filter_clause() #FilterClause: +{} +{ + "FILTER" "(" "WHERE" search_condition() ")" +} + +void binary_set_function(): +{} +{ + binary_set_function_type() "(" dependent_variable_expression() "," + independent_variable_expression() ")" +} + +void binary_set_function_type(): +{} +{ + "COVAR_POP" + | "COVAR_SAMP" + | "CORR" + | "REGR_SLOPE" + | "REGR_INTERCEPT" + | "REGR_COUNT" + | "REGR_R2" + | "REGR_AVGX" + | "REGR_AVGY" + | "REGR_SXX" + | "REGR_SYY" + | "REGR_SXY" +} + +void dependent_variable_expression(): +{} +{ + numeric_value_expression() +} + +void independent_variable_expression(): +{} +{ + numeric_value_expression() +} + +void ordered_set_function(): +{} +{ + hypothetical_set_function() + | inverse_distribution_function() +} + +void hypothetical_set_function(): +{} +{ + rank_function_type() "(" + hypothetical_set_function_value_expression_list() ")" + within_group_specification() +} + +void within_group_specification() #Unsupported: +{} +{ + "WITHIN" "GROUP" "(" "ORDER" "BY" sort_specification_list() ")" +} + +void hypothetical_set_function_value_expression_list(): +{} +{ + value_expression() ( "," value_expression() )* +} + +void inverse_distribution_function(): +{} +{ + inverse_distribution_function_type() "(" + inverse_distribution_function_argument() ")" + within_group_specification() +} + +void inverse_distribution_function_argument(): +{} +{ + numeric_value_expression() +} + +void inverse_distribution_function_type(): +{} +{ + "PERCENTILE_CONT" + | "PERCENTILE_DISC" +} + +void array_aggregate_function(): +{} +{ + "ARRAY_AGG" + "(" + [ distinct() ] // Non-standard + value_expression() [ "ORDER" "BY" sort_specification_list() ] + ")" +} + +void sort_specification_list() #SortSpecificationList: +{} +{ + sort_specification() ( "," sort_specification() )* +} + +void sort_specification() #SortSpecification: +{} +{ + sort_key() [ ordering_specification() ] [ null_ordering() ] +} + +void sort_key(): +{} +{ + value_expression() +} + +void ordering_specification() #OrderingDirection: +{} +{ + "ASC" + | "DESC" +} + +void null_ordering() #NullOrdering: +{} +{ + "NULLS" "FIRST" + | "NULLS" "LAST" +} + +void schema_definition() #CreateSchema: +{} +{ + "CREATE" "SCHEMA" + + [ if_not_exists() ] + + schema_name_clause() + [ schema_character_set_or_path() ] + ( schema_element() )* +} + +void schema_character_set_or_path() #Unsupported: +{} +{ + schema_character_set_specification() + | schema_path_specification() + | schema_character_set_specification() schema_path_specification() + | schema_path_specification() schema_character_set_specification() +} + +void schema_name_clause(): +{} +{ + schema_name() + | ( "AUTHORIZATION" identifier() )#Unsuppoerted + | ( schema_name() "AUTHORIZATION" identifier() )#Unsuppoerted +} + +void schema_character_set_specification(): +{} +{ + "DEFAULT" "CHARACTER" "SET" character_set_specification() +} + +void schema_path_specification(): +{} +{ + path_specification() +} + +void schema_element() #Unsupported: +{} +{ + table_definition() + | LOOKAHEAD(4) view_definition() + | domain_definition() + | character_set_definition() + | collation_definition() + | transliteration_definition() + | assertion_definition() + | trigger_definition() + | user_defined_type_definition() + | user_defined_cast_definition() + | user_defined_ordering_definition() + | transform_definition() + | schema_routine() + | sequence_generator_definition() + | grant_statement() + | role_definition() +} + +void drop_schema_statement(): +{} +{ + "DROP" "SCHEMA" schema_name() drop_behavior() +} + +void drop_behavior(): +{} +{ + "CASCADE" + | "RESTRICT" +} + +void table_definition() #TableDefinition: +{} +{ + "CREATE" [ table_scope() ] "TABLE" + + [ if_not_exists() ] + + table_name() + + [ table_description() ] + + ( // Non-standard + LOOKAHEAD ("WITH") + [ "WITH" + ( system_versioning_clause() + | table_attributes() // Non-standard + ) + ] + table_contents_source() + | + table_contents_source() + [ table_description() ] + [ "WITH" + ( system_versioning_clause() + | table_attributes() // Non-standard + ) + ] + ) + [ "ON" "COMMIT" table_commit_action() "ROWS" ] +} + +void table_contents_source(): +{} +{ + typed_table_clause() + | as_subquery_clause() + | table_element_list() +} + +void table_scope(): +{} +{ + global_or_local() "TEMPORARY" +} + +void global_or_local(): +{} +{ + "GLOBAL" + | "LOCAL" +} + +void system_versioning_clause(): +{} +{ + "SYSTEM" "VERSIONING" [ retention_period_specification() ] +} + +void retention_period_specification(): +{} +{ + "KEEP" "VERSIONS" "FOREVER" + | "KEEP" "VERSIONS" "FOR" length_of_time() time_unit() +} + +void length_of_time(): +{} +{ + +} + +void time_unit(): +{} +{ + "SECOND" |"SECONDS" |"MINUTE" |"MINUTES" |"HOUR" |"HOURS" |"DAY" |"DAYS" |"MONTH" |"MONTHS" |"YEAR" |"YEARS" +} + +void table_commit_action(): +{} +{ + "PRESERVE" + | "DELETE" +} + +void table_element_list(): +{} +{ + "(" table_element() ( "," table_element() )* ")" +} + +void table_element(): +{} +{ + column_definition() + | table_constraint_definition() + | like_clause() +} + +void typed_table_clause(): +{} +{ + "OF" path_resolved_user_defined_type_name() [ subtable_clause() ] + [ typed_table_element_list() ] +} + +void typed_table_element_list(): +{} +{ + "(" typed_table_element() + ( "," typed_table_element() )* ")" +} + +void typed_table_element(): +{} +{ + column_options() + | table_constraint_definition() + | self_referencing_column_specification() +} + +void self_referencing_column_specification(): +{} +{ + "REF" "IS" identifier() [ reference_generation() ] +} + +void reference_generation(): +{} +{ + "SYSTEM" "GENERATED" + | "USER" "GENERATED" + | "DERIVED" +} + +void column_options(): +{} +{ + identifier() "WITH" "OPTIONS" column_option_list() +} + +void column_option_list(): +{} +{ + [ scope_clause() ] [ default_clause() ] ( column_constraint_definition() )* +} + +void subtable_clause(): +{} +{ + "UNDER" supertable_clause() +} + +void supertable_clause(): +{} +{ + supertable_name() +} + +void supertable_name(): +{} +{ + table_name() +} + +void like_clause(): +{} +{ + "LIKE" table_name() [ like_options() ] +} + +void like_options(): +{} +{ + ( like_option() )+ +} + +void like_option(): +{} +{ + identity_option() + | column_default_option() + | generation_option() + | "INCLUDING" "PROPERTIES" // Non-standard +} + +void identity_option(): +{} +{ + "INCLUDING" "IDENTITY" + | "EXCLUDING" "IDENTITY" +} + +void column_default_option(): +{} +{ + "INCLUDING" "DEFAULTS" + | "EXCLUDING" "DEFAULTS" +} + +void generation_option(): +{} +{ + "INCLUDING" "GENERATED" + | "EXCLUDING" "GENERATED" +} + +void as_subquery_clause(): +{} +{ + [ "(" column_name_list() ")" ] + + [ "WITH" table_attributes() ] // Non-standard + + "AS" + + ( + subquery() + | query_expression() // Non-standard + ) + + [ with_or_without_data() ] +} + +void with_or_without_data(): +{} +{ + "WITH" "NO" "DATA" + | "WITH" "DATA" +} + +void column_definition(): +{} +{ + identifier() + [ data_type_or_schema_qualified_name() ] + [ default_clause() | identity_column_specification() | generation_clause() + | system_version_start_column_specification() | system_version_end_column_specification() + ] + ( column_constraint_definition() )* + [ collate_clause() ] + + [ column_description() ] +} + +void data_type_or_schema_qualified_name(): +{} +{ + data_type() + | schema_qualified_name() +} + +void system_version_start_column_specification(): +{} +{ + timestamp_generation_rule() "AS" "SYSTEM" "VERSION" "START" +} + +void system_version_end_column_specification(): +{} +{ + timestamp_generation_rule() "AS" "SYSTEM" "VERSION" "END" +} + +void timestamp_generation_rule(): +{} +{ + "GENERATED" "ALWAYS" +} + +void column_constraint_definition(): +{} +{ + [ constraint_name_definition() ] column_constraint() [ constraint_characteristics() ] +} + +void column_constraint(): +{} +{ + "NOT" "NULL" + | unique_specification() + | references_specification() + | check_constraint_definition() +} + +void identity_column_specification(): +{} +{ + "GENERATED" ( "ALWAYS" | "BY" "DEFAULT" ) "AS" "IDENTITY" + [ "(" common_sequence_generator_options() ")" ] +} + +void generation_clause(): +{} +{ + generation_rule() "AS" generation_expression() +} + +void generation_rule(): +{} +{ + "GENERATED" "ALWAYS" +} + +void generation_expression(): +{} +{ + "(" value_expression() ")" +} + +void default_clause(): +{} +{ + "DEFAULT" default_option() +} + +void default_option(): +{} +{ + literal() + | datetime_value_function() + | "USER" + | "CURRENT_USER" + | "CURRENT_ROLE" + | "SESSION_USER" + | "SYSTEM_USER" + | "CURRENT_CATALOG" + | "CURRENT_SCHEMA" + | "CURRENT_PATH" + | implicitly_typed_value_specification() +} + +void table_constraint_definition(): +{} +{ + [ constraint_name_definition() ] table_constraint() + [ constraint_characteristics() ] +} + +void table_constraint(): +{} +{ + unique_constraint_definition() + | referential_constraint_definition() + | check_constraint_definition() +} + +void unique_constraint_definition(): +{} +{ + unique_specification() "(" unique_column_list() ")" + | "UNIQUE" ( "VALUE" ) +} + +void unique_specification(): +{} +{ + "UNIQUE" + | "PRIMARY" "KEY" +} + +void unique_column_list(): +{} +{ + column_name_list() +} + +void referential_constraint_definition(): +{} +{ + "FOREIGN" "KEY" "(" referencing_columns() ")" + references_specification() +} + +void references_specification(): +{} +{ + "REFERENCES" referenced_table_and_columns() + [ "MATCH" match_type() ] [ referential_triggered_action() ] +} + +void match_type(): +{} +{ + "FULL" + | "PARTIAL" + | "SIMPLE" +} + +void referencing_columns(): +{} +{ + reference_column_list() +} + +void referenced_table_and_columns(): +{} +{ + table_name() [ "(" reference_column_list() ")" ] +} + +void reference_column_list(): +{} +{ + column_name_list() +} + +void referential_triggered_action(): +{} +{ + update_rule() [ delete_rule() ] + | delete_rule() [ update_rule() ] +} + +void update_rule(): +{} +{ + "ON" "UPDATE" referential_action() +} + +void delete_rule(): +{} +{ + "ON" "DELETE" referential_action() +} + +void referential_action(): +{} +{ + "CASCADE" + | "SET" "NULL" + | "SET" "DEFAULT" + | "RESTRICT" + | "NO" "ACTION" +} + +void check_constraint_definition(): +{} +{ + "CHECK" "(" search_condition() ")" +} + +void alter_table_statement(): +{} +{ + "ALTER" "TABLE" table_name() alter_table_action() +} + +void alter_table_action(): +{} +{ + add_column_definition() + | alter_column_definition() + | drop_column_definition() + | add_table_constraint_definition() + | alter_table_constraint_definition() + | drop_table_constraint_definition() + | add_system_versioning_clause() + | alter_system_versioning_clause() + | drop_system_versioning_clause() +} + +void add_column_definition(): +{} +{ + "ADD" [ "COLUMN" ] column_definition() +} + +void alter_column_definition(): +{} +{ + "ALTER" [ "COLUMN" ] identifier() alter_column_action() +} + +void alter_column_action(): +{} +{ + set_column_default_clause() + | drop_column_default_clause() + | set_column_not_null_clause() + | drop_column_not_null_clause() + | add_column_scope_clause() + | drop_column_scope_clause() + | alter_column_data_type_clause() + | alter_identity_column_specification() + | drop_identity_property_clause() + | drop_column_generation_expression_clause() +} + +void set_column_default_clause(): +{} +{ + "SET" default_clause() +} + +void drop_column_default_clause(): +{} +{ + "DROP" "DEFAULT" +} + +void set_column_not_null_clause(): +{} +{ + "SET" "NOT" "NULL" +} + +void drop_column_not_null_clause(): +{} +{ + "DROP" "NOT" "NULL" +} + +void add_column_scope_clause(): +{} +{ + "ADD" scope_clause() +} + +void drop_column_scope_clause(): +{} +{ + "DROP" "SCOPE" drop_behavior() +} + +void alter_column_data_type_clause(): +{} +{ + "SET" "DATA" "TYPE" data_type() +} + +void alter_identity_column_specification(): +{} +{ + set_identity_column_generation_clause() ( alter_identity_column_option() )* + | ( alter_identity_column_option() )+ +} + +void set_identity_column_generation_clause(): +{} +{ + "SET" "GENERATED" ( "ALWAYS" | "BY" "DEFAULT" ) +} + +void alter_identity_column_option(): +{} +{ + alter_sequence_generator_restart_option() + | "SET" basic_sequence_generator_option() +} + +void drop_identity_property_clause(): +{} +{ + "DROP" "IDENTITY" +} + +void drop_column_generation_expression_clause(): +{} +{ + "DROP" "EXPRESSION" +} + +void drop_column_definition(): +{} +{ + "DROP" [ "COLUMN" ] identifier() drop_behavior() +} + +void add_table_constraint_definition(): +{} +{ + "ADD" table_constraint_definition() +} + +void alter_table_constraint_definition(): +{} +{ + "ALTER" "CONSTRAINT" schema_qualified_name() constraint_enforcement() +} + +void drop_table_constraint_definition(): +{} +{ + "DROP" "CONSTRAINT" schema_qualified_name() drop_behavior() +} + +void add_system_versioning_clause(): +{} +{ + "ADD" system_versioning_clause() add_system_version_column_list() +} + +void add_system_version_column_list(): +{} +{ + "ADD" [ "COLUMN" ] column_definition_1() "ADD" [ "COLUMN" ] column_definition_2() +} + +void column_definition_1(): +{} +{ + column_definition() +} + +void column_definition_2(): +{} +{ + column_definition() +} + +void alter_system_versioning_clause(): +{} +{ + "ALTER" "SYSTEM" "VERSIONING" retention_period_specification() +} + +void drop_system_versioning_clause(): +{} +{ + "DROP" "SYSTEM" "VERSIONING" drop_behavior() +} + +void drop_table_statement(): +{} +{ + "DROP" "TABLE" + [ "IF" "EXISTS" ] // Non-standard + table_name() + [ drop_behavior() ] // Non-standard +} + +void view_definition(): +{} +{ + "CREATE" + [ or_replace() ] + [ "RECURSIVE" ] "VIEW" table_name() view_specification() + "AS" query_expression() [ "WITH" [ levels_clause() ] "CHECK" "OPTION" ] +} + +void view_specification(): +{} +{ + regular_view_specification() + | referenceable_view_specification() +} + +void regular_view_specification(): +{} +{ + [ "(" view_column_list() ")" ] +} + +void referenceable_view_specification(): +{} +{ + "OF" path_resolved_user_defined_type_name() [ subview_clause() ] + [ view_element_list() ] +} + +void subview_clause(): +{} +{ + "UNDER" table_name() +} + +void view_element_list(): +{} +{ + "(" view_element() ( "," view_element() )* ")" +} + +void view_element(): +{} +{ + self_referencing_column_specification() + | view_column_option() +} + +void view_column_option(): +{} +{ + identifier() "WITH" "OPTIONS" scope_clause() +} + +void levels_clause() #Unsupported: +{} +{ + "CASCADED" + | "LOCAL" +} + +void view_column_list(): +{} +{ + column_name_list() +} + +void drop_view_statement(): +{} +{ + "DROP" "VIEW" table_name() drop_behavior() +} + +void domain_definition(): +{} +{ + "CREATE" "DOMAIN" schema_qualified_name() [ "AS" ] predefined_type() + [ default_clause() ] + ( domain_constraint() )* + [ collate_clause() ] +} + +void domain_constraint(): +{} +{ + [ constraint_name_definition() ] check_constraint_definition() [ + constraint_characteristics() ] +} + +void alter_domain_statement(): +{} +{ + "ALTER" "DOMAIN" schema_qualified_name() alter_domain_action() +} + +void alter_domain_action(): +{} +{ + set_domain_default_clause() + | drop_domain_default_clause() + | add_domain_constraint_definition() + | drop_domain_constraint_definition() +} + +void set_domain_default_clause(): +{} +{ + "SET" default_clause() +} + +void drop_domain_default_clause(): +{} +{ + "DROP" "DEFAULT" +} + +void add_domain_constraint_definition(): +{} +{ + "ADD" domain_constraint() +} + +void drop_domain_constraint_definition(): +{} +{ + "DROP" "CONSTRAINT" schema_qualified_name() +} + +void drop_domain_statement(): +{} +{ + "DROP" "DOMAIN" schema_qualified_name() drop_behavior() +} + +void character_set_definition(): +{} +{ + "CREATE" "CHARACTER" "SET" character_set_name() [ "AS" ] + character_set_source() [ collate_clause() ] +} + +void character_set_source(): +{} +{ + "GET" character_set_specification() +} + +void drop_character_set_statement(): +{} +{ + "DROP" "CHARACTER" "SET" character_set_name() +} + +void collation_definition(): +{} +{ + "CREATE" "COLLATION" schema_qualified_name() "FOR" character_set_specification() + "FROM" schema_qualified_name() [ pad_characteristic() ] +} + +void pad_characteristic(): +{} +{ + "NO" "PAD" + | "PAD" "SPACE" +} + +void drop_collation_statement(): +{} +{ + "DROP" "COLLATION" schema_qualified_name() drop_behavior() +} + +void transliteration_definition(): +{} +{ + "CREATE" "TRANSLATION" schema_qualified_name() "FOR" source_character_set_specification() + "TO" target_character_set_specification() "FROM" transliteration_source() +} + +void source_character_set_specification(): +{} +{ + character_set_specification() +} + +void target_character_set_specification(): +{} +{ + character_set_specification() +} + +void transliteration_source(): +{} +{ + schema_qualified_name() + | transliteration_routine() +} + + +void transliteration_routine(): +{} +{ + specific_routine_designator() +} + +void drop_transliteration_statement(): +{} +{ + "DROP" "TRANSLATION" schema_qualified_name() +} + +void assertion_definition(): +{} +{ + "CREATE" "ASSERTION" schema_qualified_name() + "CHECK" "(" search_condition() ")" + [ constraint_characteristics() ] +} + +void drop_assertion_statement(): +{} +{ + "DROP" "ASSERTION" schema_qualified_name() [ drop_behavior() ] +} + +void trigger_definition(): +{} +{ + "CREATE" "TRIGGER" schema_qualified_name() trigger_action_time() trigger_event() + "ON" table_name() [ "REFERENCING" transition_table_or_variable_list() ] + triggered_action() +} + +void trigger_action_time(): +{} +{ + "BEFORE" + | "AFTER" + | "INSTEAD" "OF" +} + +void trigger_event(): +{} +{ + "INSERT" + | "DELETE" + | "UPDATE" [ "OF" trigger_column_list() ] +} + +void trigger_column_list(): +{} +{ + column_name_list() +} + +void triggered_action(): +{} +{ + [ "FOR" "EACH" ( "ROW" | "STATEMENT" ) ] + [ triggered_when_clause() ] + triggered_SQL_statement() +} + +void triggered_when_clause(): +{} +{ + "WHEN" "(" search_condition() ")" +} + +void triggered_SQL_statement(): +{} +{ + SQL_procedure_statement() + | "BEGIN" "ATOMIC" ( SQL_procedure_statement() ";" )+ "END" +} + +void transition_table_or_variable_list(): +{} +{ + ( transition_table_or_variable() )+ +} + +void transition_table_or_variable(): +{} +{ + "OLD" [ "ROW" ] [ "AS" ] identifier() + | "NEW" [ "ROW" ] [ "AS" ] identifier() + | "OLD" "TABLE" [ "AS" ] identifier() + | "NEW" "TABLE" [ "AS" ] identifier() +} + +void drop_trigger_statement(): +{} +{ + "DROP" "TRIGGER" schema_qualified_name() +} + +void user_defined_type_definition(): +{} +{ + "CREATE" "TYPE" user_defined_type_body() +} + +void user_defined_type_body(): +{} +{ + schema_resolved_user_defined_type_name() + [ subtype_clause() ] + [ "AS" representation() ] + [ user_defined_type_option_list() ] + [ method_specification_list() ] +} + +void user_defined_type_option_list(): +{} +{ + user_defined_type_option() ( user_defined_type_option() )* +} + +void user_defined_type_option(): +{} +{ + instantiable_clause() + | finality() + | reference_type_specification() + | cast_to_ref() + | cast_to_type() + | cast_to_distinct() + | cast_to_source() +} + +void subtype_clause(): +{} +{ + "UNDER" supertype_name() +} + +void supertype_name(): +{} +{ + path_resolved_user_defined_type_name() +} + +void representation(): +{} +{ + predefined_type() + | data_type() // TODO(kaikalur): fixit --collection_type() + | member_list() +} + +void member_list(): +{} +{ + "(" member() ( "," member() )* ")" +} + +void member(): +{} +{ + attribute_definition() +} + +void instantiable_clause(): +{} +{ + "INSTANTIABLE" + | "NOT" "INSTANTIABLE" +} + +void finality(): +{} +{ + "FINAL" + | "NOT" "FINAL" +} + +void reference_type_specification(): +{} +{ + user_defined_representation() + | derived_representation() + | system_generated_representation() +} + +void user_defined_representation(): +{} +{ + "REF" "USING" predefined_type() +} + +void derived_representation(): +{} +{ + "REF" "FROM" list_of_attributes() +} + +void system_generated_representation(): +{} +{ + "REF" "IS" "SYSTEM" "GENERATED" +} + +void cast_to_ref(): +{} +{ + "CAST" "(" "SOURCE" "AS" "REF" ")" "WITH" identifier() +} + +void cast_to_type(): +{} +{ + "CAST" "(" "REF" "AS" "SOURCE" ")" "WITH" identifier() +} + +void list_of_attributes(): +{} +{ + "(" identifier() ( "," identifier() )* ")" +} + +void cast_to_distinct(): +{} +{ + "CAST" "(" "SOURCE" "AS" "DISTINCT" ")" + "WITH" identifier() +} + +void cast_to_source(): +{} +{ + "CAST" "(" "DISTINCT" "AS" "SOURCE" ")" + "WITH" identifier() +} + +void method_specification_list(): +{} +{ + method_specification() ( "," method_specification() )* +} + +void method_specification(): +{} +{ + original_method_specification() + | overriding_method_specification() +} + +void original_method_specification(): +{} +{ + partial_method_specification() [ "SELF" "AS" "RESULT" ] [ "SELF" "AS" "LOCATOR" ] + [ method_characteristics() ] +} + +void overriding_method_specification(): +{} +{ + "OVERRIDING" partial_method_specification() +} + +void partial_method_specification(): +{} +{ + [ "INSTANCE" | "STATIC" | "CONSTRUCTOR" ] + "METHOD" identifier() SQL_parameter_declaration_list() + returns_clause() + [ "SPECIFIC" specific_identifier() ] +} + +void specific_identifier(): +{} +{ + [ schema_name() "." ]identifier() +} + +void method_characteristics(): +{} +{ + ( method_characteristic() )+ +} + +void method_characteristic(): +{} +{ + language_clause() + | parameter_style_clause() + | deterministic_characteristic() + | SQL_data_access_indication() + | null_call_clause() +} + +void attribute_definition(): +{} +{ + identifier() data_type() + [ attribute_default() ] + [ collate_clause() ] +} + +void attribute_default(): +{} +{ + default_clause() +} + +void alter_type_statement(): +{} +{ + "ALTER" "TYPE" schema_resolved_user_defined_type_name() alter_type_action() +} + +void alter_type_action(): +{} +{ + add_attribute_definition() + | drop_attribute_definition() + | add_original_method_specification() + | add_overriding_method_specification() + | drop_method_specification() +} + +void add_attribute_definition(): +{} +{ + "ADD" "ATTRIBUTE" attribute_definition() +} + +void drop_attribute_definition(): +{} +{ + "DROP" "ATTRIBUTE" identifier() "RESTRICT" +} + +void add_original_method_specification(): +{} +{ + "ADD" original_method_specification() +} + +void add_overriding_method_specification(): +{} +{ + "ADD" overriding_method_specification() +} + +void drop_method_specification(): +{} +{ + "DROP" specific_method_specification_designator() "RESTRICT" +} + +void specific_method_specification_designator(): +{} +{ + [ "INSTANCE" | "STATIC" | "CONSTRUCTOR" ] + "METHOD" identifier() data_type_list() +} + +void drop_data_type_statement(): +{} +{ + "DROP" "TYPE" schema_resolved_user_defined_type_name() drop_behavior() +} + +void SQL_invoked_routine(): +{} +{ + schema_routine() +} + +void schema_routine(): +{} +{ + schema_procedure() + | schema_function() +} + +void schema_procedure(): +{} +{ + "CREATE" SQL_invoked_procedure() +} + +void schema_function(): +{} +{ + "CREATE" + [ or_replace() ] + SQL_invoked_function() +} + +void SQL_invoked_procedure(): +{} +{ + "PROCEDURE" schema_qualified_name() SQL_parameter_declaration_list() + routine_characteristics() + routine_body() +} + +void SQL_invoked_function(): +{} +{ + ( function_specification() | method_specification_designator() ) routine_body() +} + +void SQL_parameter_declaration_list(): +{} +{ + "(" [ SQL_parameter_declaration() + ( "," SQL_parameter_declaration() )* ] ")" +} + +void SQL_parameter_declaration(): +{} +{ + [ parameter_mode() ] + [ identifier() ] + parameter_type() [ "RESULT" ] + [ "DEFAULT" parameter_default() ] +} + +void parameter_default(): +{} +{ + value_expression() + | contextually_typed_value_specification() +} + +void parameter_mode(): +{} +{ + "IN" + | "OUT" + | "INOUT" +} + +void parameter_type(): +{} +{ + data_type() [ locator_indication() ] +} + +void locator_indication(): +{} +{ + "AS" "LOCATOR" +} + +void function_specification(): +{} +{ + "FUNCTION" schema_qualified_name() SQL_parameter_declaration_list() + returns_clause() + [ routine_description() ] + routine_characteristics() + [ dispatch_clause() ] +} + +void method_specification_designator(): +{} +{ + "SPECIFIC" "METHOD" specific_identifier() + | [ "INSTANCE" | "STATIC" | "CONSTRUCTOR" ] + "METHOD" identifier() SQL_parameter_declaration_list() + [ returns_clause() ] + "FOR" schema_resolved_user_defined_type_name() +} + +void routine_characteristics(): +{} +{ + ( routine_characteristic() )* +} + +void routine_characteristic(): +{} +{ + language_clause() + | parameter_style_clause() + | "SPECIFIC" schema_qualified_name() + | deterministic_characteristic() + | SQL_data_access_indication() + | null_call_clause() + | returned_result_sets_characteristic() + | savepoint_level_indication() +} + +void savepoint_level_indication(): +{} +{ + "NEW" "SAVEPOINT" "LEVEL" + | "OLD" "SAVEPOINT" "LEVEL" +} + +void returned_result_sets_characteristic(): +{} +{ + "DYNAMIC" "RESULT" "SETS" maximum_returned_result_sets() +} + +void parameter_style_clause(): +{} +{ + "PARAMETER" "STYLE" parameter_style() +} + +void dispatch_clause(): +{} +{ + "STATIC" "DISPATCH" +} + +void returns_clause(): +{} +{ + "RETURNS" returns_type() +} + +void returns_type(): +{} +{ + returns_data_type() [ result_cast() ] + | returns_table_type() +} + +void returns_table_type(): +{} +{ + "TABLE" table_function_column_list() +} + +void table_function_column_list(): +{} +{ + "(" table_function_column_list_element() + ( "," table_function_column_list_element() )* ")" +} + +void table_function_column_list_element(): +{} +{ + identifier() data_type() +} + +void result_cast(): +{} +{ + "CAST" "FROM" result_cast_from_type() +} + +void result_cast_from_type(): +{} +{ + data_type() [ locator_indication() ] +} + +void returns_data_type(): +{} +{ + data_type() [ locator_indication() ] +} + +void routine_body(): +{} +{ + SQL_routine_spec() + | external_body_reference() +} + +void SQL_routine_spec(): +{} +{ + [ rights_clause() ] SQL_routine_body() +} + +void rights_clause(): +{} +{ + "SQL" "SECURITY" "INVOKER" + | "SQL" "SECURITY" "DEFINER" +} + +void SQL_routine_body(): +{} +{ + SQL_procedure_statement() +} + +void external_body_reference(): +{} +{ + "EXTERNAL" [ "NAME" external_routine_name() ] + [ parameter_style_clause() ] + [ transform_group_specification() ] + [ external_security_clause() ] +} + +void external_security_clause(): +{} +{ + "EXTERNAL" "SECURITY" "DEFINER" + | "EXTERNAL" "SECURITY" "INVOKER" + | "EXTERNAL" "SECURITY" "IMPLEMENTATION" "DEFINED" +} + +void parameter_style(): +{} +{ + "SQL" + | "GENERAL" +} + +void deterministic_characteristic(): +{} +{ + "DETERMINISTIC" + | "NOT" "DETERMINISTIC" +} + +void SQL_data_access_indication(): +{} +{ + "NO" "SQL" + | "CONTAINS" "SQL" + | "READS" "SQL" "DATA" + | "MODIFIES" "SQL" "DATA" +} + +void null_call_clause(): +{} +{ + "RETURNS" "NULL" "ON" "NULL" "INPUT" + | "CALLED" "ON" "NULL" "INPUT" +} + +void maximum_returned_result_sets(): +{} +{ + +} + +void transform_group_specification(): +{} +{ + "TRANSFORM" "GROUP" ( single_group_specification() | multiple_group_specification() ) +} + +void single_group_specification(): +{} +{ + identifier() +} + +void multiple_group_specification(): +{} +{ + group_specification() ( "," group_specification() )* +} + +void group_specification(): +{} +{ + identifier() "FOR" "TYPE" path_resolved_user_defined_type_name() +} + +void alter_routine_statement(): +{} +{ + "ALTER" specific_routine_designator() + alter_routine_characteristics() alter_routine_behavior() +} + +void alter_routine_characteristics(): +{} +{ + ( alter_routine_characteristic() )+ +} + +void alter_routine_characteristic(): +{} +{ + language_clause() + | parameter_style_clause() + | SQL_data_access_indication() + | null_call_clause() + | returned_result_sets_characteristic() + | "NAME" external_routine_name() +} + +void alter_routine_behavior(): +{} +{ + "RESTRICT" +} + +void drop_routine_statement(): +{} +{ + "DROP" specific_routine_designator() drop_behavior() +} + +void user_defined_cast_definition(): +{} +{ + "CREATE" "CAST" "(" source_data_type() "AS" target_data_type() ")" + "WITH" cast_function() + [ "AS" "ASSIGNMENT" ] +} + +void cast_function(): +{} +{ + specific_routine_designator() +} + +void source_data_type(): +{} +{ + data_type() +} + +void target_data_type(): +{} +{ + data_type() +} + +void drop_user_defined_cast_statement(): +{} +{ + "DROP" "CAST" "(" source_data_type() "AS" target_data_type() ")" + drop_behavior() +} + +void user_defined_ordering_definition(): +{} +{ + "CREATE" "ORDERING" "FOR" schema_resolved_user_defined_type_name() ordering_form() +} + +void ordering_form(): +{} +{ + equals_ordering_form() + | full_ordering_form() +} + +void equals_ordering_form(): +{} +{ + "EQUALS" "ONLY" "BY" ordering_category() +} + +void full_ordering_form(): +{} +{ + "ORDER" "FULL" "BY" ordering_category() +} + +void ordering_category(): +{} +{ + relative_category() + | map_category() + | state_category() +} + +void relative_category(): +{} +{ + "RELATIVE" "WITH" relative_function_specification() +} + +void map_category(): +{} +{ + "MAP" "WITH" map_function_specification() +} + +void state_category(): +{} +{ + "STATE" [ schema_qualified_name() ] +} + +void relative_function_specification(): +{} +{ + specific_routine_designator() +} + +void map_function_specification(): +{} +{ + specific_routine_designator() +} + +void drop_user_defined_ordering_statement(): +{} +{ + "DROP" "ORDERING" "FOR" schema_resolved_user_defined_type_name() drop_behavior() +} + +void transform_definition(): +{} +{ + "CREATE" ( "TRANSFORM" | "TRANSFORMS" ) "FOR" + schema_resolved_user_defined_type_name() ( transform_group() )+ +} + +void transform_group(): +{} +{ + identifier() "(" transform_element_list() ")" +} + +void transform_element_list(): +{} +{ + transform_element() [ "," transform_element() ] +} + +void transform_element(): +{} +{ + to_sql() + | from_sql() +} + +void to_sql(): +{} +{ + "TO" "SQL" "WITH" to_sql_function() +} + +void from_sql(): +{} +{ + "FROM" "SQL" "WITH" from_sql_function() +} + +void to_sql_function(): +{} +{ + specific_routine_designator() +} + +void from_sql_function(): +{} +{ + specific_routine_designator() +} + +void alter_transform_statement(): +{} +{ + "ALTER" ( "TRANSFORM" | "TRANSFORMS" ) + "FOR" schema_resolved_user_defined_type_name() ( alter_group() )+ +} + +void alter_group(): +{} +{ + identifier() "(" alter_transform_action_list() ")" +} + +void alter_transform_action_list(): +{} +{ + alter_transform_action() ( "," alter_transform_action() )* +} + +void alter_transform_action(): +{} +{ + add_transform_element_list() + | drop_transform_element_list() +} + +void add_transform_element_list(): +{} +{ + "ADD" "(" transform_element_list() ")" +} + +void drop_transform_element_list(): +{} +{ + "DROP" "(" transform_kind() + [ "," transform_kind() ] drop_behavior() ")" +} + +void transform_kind(): +{} +{ + "TO" "SQL" + | "FROM" "SQL" +} + +void drop_transform_statement(): +{} +{ + "DROP" ( "TRANSFORM" | "TRANSFORMS" ) transforms_to_be_dropped() + "FOR" schema_resolved_user_defined_type_name() drop_behavior() +} + +void transforms_to_be_dropped(): +{} +{ + "ALL" + | transform_group_element() +} + +void transform_group_element(): +{} +{ + identifier() +} + +void sequence_generator_definition(): +{} +{ + "CREATE" "SEQUENCE" schema_qualified_name() [ sequence_generator_options() ] +} + +void sequence_generator_options(): +{} +{ + ( sequence_generator_option() )+ +} + +void sequence_generator_option(): +{} +{ + sequence_generator_data_type_option() + | common_sequence_generator_options() +} + +void common_sequence_generator_options(): +{} +{ + ( common_sequence_generator_option() )+ +} + +void common_sequence_generator_option(): +{} +{ + sequence_generator_start_with_option() + | basic_sequence_generator_option() +} + +void basic_sequence_generator_option(): +{} +{ + sequence_generator_increment_by_option() + | sequence_generator_maxvalue_option() + | sequence_generator_minvalue_option() + | sequence_generator_cycle_option() +} + +void sequence_generator_data_type_option(): +{} +{ + "AS" data_type() +} + +void sequence_generator_start_with_option(): +{} +{ + "START" "WITH" sequence_generator_start_value() +} + +void sequence_generator_start_value(): +{} +{ + signed_numeric_literal() +} + +void sequence_generator_increment_by_option(): +{} +{ + "INCREMENT" "BY" sequence_generator_increment() +} + +void sequence_generator_increment(): +{} +{ + signed_numeric_literal() +} + +void sequence_generator_maxvalue_option(): +{} +{ + "MAXVALUE" sequence_generator_max_value() + | "NO" "MAXVALUE" +} + +void sequence_generator_max_value(): +{} +{ + signed_numeric_literal() +} + +void sequence_generator_minvalue_option(): +{} +{ + "MINVALUE" sequence_generator_min_value() + | "NO" "MINVALUE" +} + +void sequence_generator_min_value(): +{} +{ + signed_numeric_literal() +} + +void sequence_generator_cycle_option(): +{} +{ + "CYCLE" + | "NO" "CYCLE" +} + +void alter_sequence_generator_statement(): +{} +{ + "ALTER" "SEQUENCE" schema_qualified_name() alter_sequence_generator_options() +} + +void alter_sequence_generator_options(): +{} +{ + ( alter_sequence_generator_option() )+ +} + +void alter_sequence_generator_option(): +{} +{ + alter_sequence_generator_restart_option() + | basic_sequence_generator_option() +} + +void alter_sequence_generator_restart_option(): +{} +{ + "RESTART" [ "WITH" sequence_generator_restart_value() ] +} + +void sequence_generator_restart_value(): +{} +{ + signed_numeric_literal() +} + +void drop_sequence_generator_statement(): +{} +{ + "DROP" "SEQUENCE" schema_qualified_name() drop_behavior() +} + +void grant_statement(): +{} +{ + grant_privilege_statement() + | grant_role_statement() +} + +void grant_privilege_statement(): +{} +{ + "GRANT" privileges() "TO" grantee() ( "," grantee() )* + [ "WITH" "HIERARCHY" "OPTION" ] + [ "WITH" "GRANT" "OPTION" ] + [ "GRANTED" "BY" grantor() ] +} + +void privileges(): +{} +{ + object_privileges() "ON" object_name() +} + +void object_name(): +{} +{ + [ "TABLE" ] table_name() + | "DOMAIN" schema_qualified_name() + | "COLLATION" schema_qualified_name() + | "CHARACTER" "SET" character_set_name() + | "TRANSLATION" schema_qualified_name() + | "TYPE" schema_resolved_user_defined_type_name() + | "SEQUENCE" schema_qualified_name() + | specific_routine_designator() +} + +void object_privileges(): +{} +{ + "ALL" "PRIVILEGES" + | action() ( "," action() )* +} + +void action(): +{} +{ + "SELECT" + | "SELECT" "(" privilege_column_list() ")" + | "SELECT" "(" privilege_method_list() ")" + | "DELETE" + | "INSERT" [ "(" privilege_column_list() ")" ] + | "UPDATE" [ "(" privilege_column_list() ")" ] + | "REFERENCES" [ "(" privilege_column_list() ")" ] + | "USAGE" + | "TRIGGER" + | "UNDER" + | "EXECUTE" +} + +void privilege_method_list(): +{} +{ + specific_routine_designator() ( "," specific_routine_designator() )* +} + +void privilege_column_list(): +{} +{ + column_name_list() +} + +void grantee(): +{} +{ + "PUBLIC" + | identifier() +} + +void grantor(): +{} +{ + "CURRENT_USER" + | "CURRENT_ROLE" +} + +void role_definition(): +{} +{ + "CREATE" "ROLE" identifier() [ "WITH" "ADMIN" grantor() ] +} + +void grant_role_statement(): +{} +{ + "GRANT" identifier() ( "," identifier() )* + "TO" grantee() ( "," grantee() )* + [ "WITH" "ADMIN" "OPTION" ] + [ "GRANTED" "BY" grantor() ] +} + +void drop_role_statement(): +{} +{ + "DROP" "ROLE" identifier() +} + +void revoke_statement(): +{} +{ + revoke_privilege_statement() + | revoke_role_statement() +} + +void revoke_privilege_statement(): +{} +{ + "REVOKE" [ revoke_option_extension() ] privileges() + "FROM" grantee() ( "," grantee() )* + [ "GRANTED" "BY" grantor() ] + drop_behavior() +} + +void revoke_option_extension(): +{} +{ + "GRANT" "OPTION" "FOR" + | "HIERARCHY" "OPTION" "FOR" +} + +void revoke_role_statement(): +{} +{ + "REVOKE" [ "ADMIN" "OPTION" "FOR" ] identifier() ( "," identifier() )* + "FROM" grantee() ( "," grantee() )* + [ "GRANTED" "BY" grantor() ] + drop_behavior() +} + +void SQL_client_module_definition(): +{} +{ + module_name_clause() language_clause() module_authorization_clause() + [ module_path_specification() ] + [ module_transform_group_specification() ] + [ module_collations() ] + ( temporary_table_declaration() )* + ( module_contents() )+ +} + +void module_authorization_clause(): +{} +{ + "SCHEMA" schema_name() + | "AUTHORIZATION" identifier() + [ "FOR" "STATIC" ( "ONLY" | "AND" "DYNAMIC" ) ] + | "SCHEMA" schema_name() "AUTHORIZATION" identifier() + [ "FOR" "STATIC" ( "ONLY" | "AND" "DYNAMIC" ) ] +} + +void module_path_specification(): +{} +{ + path_specification() +} + +void module_transform_group_specification(): +{} +{ + transform_group_specification() +} + +void module_collations(): +{} +{ + ( module_collation_specification() )+ +} + +void module_collation_specification(): +{} +{ + "COLLATION" schema_qualified_name() [ "FOR" character_set_specification_list() ] +} + +void character_set_specification_list(): +{} +{ + character_set_specification() ( "," character_set_specification() )* +} + +void module_contents(): +{} +{ + declare_cursor() + | dynamic_declare_cursor() + | externally_invoked_procedure() +} + +void module_name_clause(): +{} +{ + "MODULE" [ identifier() ] [ module_character_set_specification() ] +} + +void module_character_set_specification(): +{} +{ + "NAMES" "ARE" character_set_specification() +} + +void externally_invoked_procedure(): +{} +{ + "PROCEDURE" identifier() host_parameter_declaration_list() ";" + SQL_procedure_statement() ";" +} + +void host_parameter_declaration_list(): +{} +{ + "(" host_parameter_declaration() + ( "," host_parameter_declaration() )* ")" +} + +void host_parameter_declaration(): +{} +{ + host_parameter_name() host_parameter_data_type() + | status_parameter() +} + +void host_parameter_data_type(): +{} +{ + data_type() [ locator_indication() ] +} + +void status_parameter(): +{} +{ + "SQLSTATE" +} + +void SQL_procedure_statement(): +{} +{ + SQL_executable_statement() +} + +void SQL_executable_statement(): +{} +{ + SQL_schema_statement() + | SQL_data_statement() + | SQL_control_statement() + | SQL_transaction_statement() + | SQL_connection_statement() + | SQL_session_statement() + | SQL_diagnostics_statement() + | SQL_dynamic_statement() +} + +void SQL_schema_statement(): +{} +{ + SQL_schema_definition_statement() + | SQL_schema_manipulation_statement() +} + +void SQL_schema_definition_statement(): +{} +{ + schema_definition() + | table_definition() + | LOOKAHEAD(4) view_definition() + | SQL_invoked_routine() + | grant_statement() + | role_definition() + | domain_definition() + | character_set_definition() + | collation_definition() + | transliteration_definition() + | assertion_definition() + | trigger_definition() + | user_defined_type_definition() + | user_defined_cast_definition() + | user_defined_ordering_definition() + | transform_definition() + | sequence_generator_definition() +} + +void SQL_schema_manipulation_statement(): +{} +{ + drop_schema_statement() + | alter_table_statement() + | drop_table_statement() + | drop_view_statement() + | alter_routine_statement() + | drop_routine_statement() + | drop_user_defined_cast_statement() + | revoke_statement() + | drop_role_statement() + | alter_domain_statement() + | drop_domain_statement() + | drop_character_set_statement() + | drop_collation_statement() + | drop_transliteration_statement() + | drop_assertion_statement() + | drop_trigger_statement() + | alter_type_statement() + | drop_data_type_statement() + | drop_user_defined_ordering_statement() + | alter_transform_statement() + | drop_transform_statement() + | alter_sequence_generator_statement() + | drop_sequence_generator_statement() +} + +void SQL_data_statement(): +{} +{ + open_statement() + | fetch_statement() + | close_statement() + | select_statement_single_row() + | SQL_data_change_statement() + + //TODO(kaikalur):fix the next two + //| free_locator_statement() + //| hold_locator_statement() +} + +void SQL_data_change_statement(): +{} +{ + delete_statement_positioned() + | delete_statement_searched() + | insert_statement() + | update_statement_positioned() + | update_statement_searched() + | truncate_table_statement() + | merge_statement() +} + +void SQL_control_statement(): +{} +{ + call_statement() + | return_statement() +} + +void SQL_transaction_statement(): +{} +{ + start_transaction_statement() + | set_transaction_statement() + | set_constraints_mode_statement() + | savepoint_statement() + | release_savepoint_statement() + | commit_statement() + | rollback_statement() +} + +void SQL_connection_statement(): +{} +{ + connect_statement() + | set_connection_statement() + | disconnect_statement() +} + +void SQL_session_statement(): +{} +{ + set_session_user_identifier_statement() + | set_role_statement() + | set_local_time_zone_statement() + | set_session_characteristics_statement() + | set_catalog_statement() + | set_schema_statement() + | set_names_statement() + | set_path_statement() + | set_transform_group_statement() + | set_session_collation_statement() +} + +void SQL_diagnostics_statement(): +{} +{ + get_diagnostics_statement() +} + +void SQL_dynamic_statement(): +{} +{ + SQL_descriptor_statement() + | prepare_statement() + | deallocate_prepared_statement() + | describe_statement() + | execute_statement() + | execute_immediate_statement() + | SQL_dynamic_data_statement() +} + +void SQL_dynamic_data_statement(): +{} +{ + allocate_cursor_statement() + | dynamic_open_statement() + | dynamic_fetch_statement() + | dynamic_close_statement() + | dynamic_delete_statement_positioned() + | dynamic_update_statement_positioned() +} + +void SQL_descriptor_statement(): +{} +{ + allocate_descriptor_statement() + | deallocate_descriptor_statement() + | set_descriptor_statement() + | get_descriptor_statement() +} + +void declare_cursor(): +{} +{ + "DECLARE" cursor_name() cursor_properties() + "FOR" cursor_specification() +} + +void cursor_properties(): +{} +{ + [ cursor_sensitivity() ] [ cursor_scrollability() ] "CURSOR" + [ cursor_holdability() ] + [ cursor_returnability() ] +} + +void cursor_sensitivity(): +{} +{ + "SENSITIVE" + | "INSENSITIVE" + | "ASENSITIVE" +} + +void cursor_scrollability(): +{} +{ + "SCROLL" + | "NO" "SCROLL" +} + +void cursor_holdability(): +{} +{ + "WITH" "HOLD" + | "WITHOUT" "HOLD" +} + +void cursor_returnability(): +{} +{ + "WITH" "RETURN" + | "WITHOUT" "RETURN" +} + +void cursor_specification(): +{} +{ + query_expression() [ updatability_clause() #Unsupported ] +} + +void updatability_clause(): +{} +{ + "FOR" ( "READ" "ONLY" | "UPDATE" [ "OF" column_name_list() ] ) +} + +void open_statement(): +{} +{ + "OPEN" cursor_name() +} + +void fetch_statement(): +{} +{ + "FETCH" [ [ fetch_orientation() ] "FROM" ] cursor_name() "INTO" fetch_target_list() +} + +void fetch_orientation(): +{} +{ + "NEXT" | "PRIOR" | "FIRST" | "LAST" | ( "ABSOLUTE" | "RELATIVE" ) simple_value_specification() +} + +void fetch_target_list(): +{} +{ + target_specification() ( "," target_specification() )* +} + +void close_statement(): +{} +{ + "CLOSE" cursor_name() +} + +void select_statement_single_row(): +{} +{ + "SELECT" [ set_quantifier() ] select_list() + [ "INTO" select_target_list() ] //TODO(kaikalur): check optional + [ table_expression() ] //TODO(kaikalur): check optional +} + +void select_target_list(): +{} +{ + target_specification() ( "," target_specification() )* +} + +void delete_statement_positioned(): +{} +{ + "DELETE" "FROM" target_table() [ [ "AS" ] identifier() ] + "WHERE" "CURRENT" "OF" cursor_name() +} + +void target_table(): +{} +{ + table_name() + | "ONLY" "(" table_name() ")" +} + +void delete_statement_searched(): +{} +{ + "DELETE" "FROM" target_table() [ [ "AS" ] identifier() ] + [ "WHERE" search_condition() ] +} + +void truncate_table_statement(): +{} +{ + "TRUNCATE" "TABLE" target_table() [ identity_column_restart_option() ] +} + +void identity_column_restart_option(): +{} +{ + "CONTINUE" "IDENTITY" + | "RESTART" "IDENTITY" +} + +void insert_statement() #Insert: +{} +{ + "INSERT" "INTO" insertion_target() insert_columns_and_source() +} + +void insertion_target(): +{} +{ + table_name() +} + +void insert_columns_and_source(): +{} +{ + from_subquery() + | from_constructor() + | from_default() +} + +void from_subquery(): +{} +{ + [ "(" insert_column_list() ")" ] + [ override_clause() ] + query_expression() +} + +void from_constructor(): +{} +{ + [ "(" insert_column_list() ")" ] + [ override_clause() ] + contextually_typed_table_value_constructor() +} + +void override_clause(): +{} +{ + "OVERRIDING" "USER" "VALUE" + | "OVERRIDING" "SYSTEM" "VALUE" +} + +void from_default(): +{} +{ + "DEFAULT" "VALUES" +} + +void insert_column_list(): +{} +{ + column_name_list() +} + +void merge_statement(): +{} +{ + "MERGE" "INTO" target_table() [ [ "AS" ] identifier() ] + "USING" table_reference() + "ON" search_condition() merge_operation_specification() +} + +void merge_operation_specification(): +{} +{ + ( merge_when_clause() )+ +} + +void merge_when_clause(): +{} +{ + merge_when_matched_clause() + | merge_when_not_matched_clause() +} + +void merge_when_matched_clause(): +{} +{ + "WHEN" "MATCHED" [ "AND" search_condition() ] + "THEN" merge_update_or_delete_specification() +} + +void merge_update_or_delete_specification(): +{} +{ + merge_update_specification() + | merge_delete_specification() +} + +void merge_when_not_matched_clause(): +{} +{ + "WHEN" "NOT" "MATCHED" [ "AND" search_condition() ] + "THEN" merge_insert_specification() +} + +void merge_update_specification(): +{} +{ + "UPDATE" "SET" set_clause_list() +} + +void merge_delete_specification(): +{} +{ + "DELETE" +} + +void merge_insert_specification(): +{} +{ + "INSERT" [ "(" insert_column_list() ")" ] + [ override_clause() ] + "VALUES" merge_insert_value_list() +} + +void merge_insert_value_list(): +{} +{ + "(" + merge_insert_value_element() ( "," merge_insert_value_element() )* + ")" +} + +void merge_insert_value_element(): +{} +{ + value_expression() + | contextually_typed_value_specification() +} + +void update_statement_positioned(): +{} +{ + "UPDATE" target_table() [ [ "AS" ] identifier() ] + "SET" set_clause_list() + "WHERE" "CURRENT" "OF" cursor_name() +} + +void update_statement_searched(): +{} +{ + "UPDATE" target_table() [ [ "AS" ] identifier() ] + "SET" set_clause_list() + [ "WHERE" search_condition() ] +} + +void set_clause_list(): +{} +{ + set_clause() ( "," set_clause() )* +} + +void set_clause(): +{} +{ + multiple_column_assignment() + | set_target() "=" update_source() +} + +void set_target(): +{} +{ + update_target() + | mutated_set_clause() +} + +void multiple_column_assignment(): +{} +{ + set_target_list() "=" assigned_row() +} + +void set_target_list(): +{} +{ + "(" set_target() ( "," set_target() )* ")" +} + +void assigned_row(): +{} +{ + contextually_typed_row_value_expression() +} + +void update_target(): +{} +{ + identifier() | identifier() left_bracket_or_trigraph() simple_value_specification() right_bracket_or_trigraph() +} + +void mutated_set_clause(): +{} +{ + // TODO(kaikalur): fixit mutated_target() "." identifier() + identifier() ( "." identifier() )+ +} + +void mutated_target(): +{} +{ + identifier() + | mutated_set_clause() +} + +void update_source(): +{} +{ + value_expression() + | contextually_typed_value_specification() +} + +void temporary_table_declaration(): +{} +{ + "DECLARE" "LOCAL" "TEMPORARY" "TABLE" table_name() table_element_list() + [ "ON" "COMMIT" table_commit_action() "ROWS" ] +} + +void call_statement(): +{} +{ + "CALL" routine_invocation() +} + +void return_statement(): +{} +{ + "RETURN" return_value() +} + +void return_value(): +{} +{ + value_expression() + | "NULL" +} + +void start_transaction_statement(): +{} +{ + "START" "TRANSACTION" [ transaction_characteristics() ] +} + +void set_transaction_statement(): +{} +{ + "SET" [ "LOCAL" ] "TRANSACTION" [ transaction_characteristics() ] +} + +void transaction_characteristics(): +{} +{ + transaction_mode() ( "," transaction_mode() )* +} + +void transaction_mode(): +{} +{ + isolation_level() + | transaction_access_mode() + | diagnostics_size() +} + +void transaction_access_mode(): +{} +{ + "READ" "ONLY" + | "READ" "WRITE" +} + +void isolation_level(): +{} +{ + "ISOLATION" "LEVEL" level_of_isolation() +} + +void level_of_isolation(): +{} +{ + "READ" "UNCOMMITTED" + | "READ" "COMMITTED" + | "REPEATABLE" "READ" + | "SERIALIZABLE" +} + +void diagnostics_size(): +{} +{ + "DIAGNOSTICS" "SIZE" simple_value_specification() +} + +void set_constraints_mode_statement(): +{} +{ + "SET" "CONSTRAINTS" constraint_name_list() ( "DEFERRED" | "IMMEDIATE" ) +} + +void constraint_name_list(): +{} +{ + "ALL" + | schema_qualified_name() ( "," schema_qualified_name() )* +} + +void savepoint_statement(): +{} +{ + "SAVEPOINT" savepoint_specifier() +} + +void savepoint_specifier(): +{} +{ + identifier() +} + +void release_savepoint_statement(): +{} +{ + "RELEASE" "SAVEPOINT" savepoint_specifier() +} + +void commit_statement(): +{} +{ + "COMMIT" [ "WORK" ] [ "AND" [ "NO" ] "CHAIN" ] +} + +void rollback_statement(): +{} +{ + "ROLLBACK" [ "WORK" ] [ "AND" [ "NO" ] "CHAIN" ] [ savepoint_clause() ] +} + +void savepoint_clause(): +{} +{ + "TO" "SAVEPOINT" savepoint_specifier() +} + +void connect_statement(): +{} +{ + "CONNECT" "TO" connection_target() +} + +void connection_target(): +{} +{ + simple_value_specification() [ "AS" simple_value_specification() ] [ "USER" simple_value_specification() ] + | "DEFAULT" +} + +void set_connection_statement(): +{} +{ + "SET" "CONNECTION" connection_object() +} + +void connection_object(): +{} +{ + "DEFAULT" + | simple_value_specification() +} + +void disconnect_statement(): +{} +{ + "DISCONNECT" disconnect_object() +} + +void disconnect_object(): +{} +{ + connection_object() + | "ALL" + | "CURRENT" +} + +void set_session_characteristics_statement(): +{} +{ + "SET" "SESSION" "CHARACTERISTICS" "AS" session_characteristic_list() +} + +void session_characteristic_list(): +{} +{ + session_characteristic() ( "," session_characteristic() )* +} + +void session_characteristic(): +{} +{ + session_transaction_characteristics() +} + +void session_transaction_characteristics(): +{} +{ + "TRANSACTION" transaction_mode() ( "," transaction_mode() )* +} + +void set_session_user_identifier_statement(): +{} +{ + "SET" "SESSION" "AUTHORIZATION" value_specification() +} + +void set_role_statement(): +{} +{ + "SET" "ROLE" role_specification() +} + +void role_specification(): +{} +{ + value_specification() + | "NONE" +} + +void set_local_time_zone_statement(): +{} +{ + "SET" "TIME" "ZONE" set_time_zone_value() +} + +void set_time_zone_value(): +{} +{ + interval_value_expression() + | "LOCAL" +} + +void set_catalog_statement(): +{} +{ + "SET" catalog_name_characteristic() +} + +void catalog_name_characteristic(): +{} +{ + "CATALOG" value_specification() +} + +void set_schema_statement(): +{} +{ + "SET" schema_name_characteristic() +} + +void schema_name_characteristic(): +{} +{ + "SCHEMA" value_specification() +} + +void set_names_statement(): +{} +{ + "SET" character_set_name_characteristic() +} + +void character_set_name_characteristic(): +{} +{ + "NAMES" value_specification() +} + +void set_path_statement(): +{} +{ + "SET" SQL_path_characteristic() +} + +void SQL_path_characteristic(): +{} +{ + "PATH" value_specification() +} + +void set_transform_group_statement(): +{} +{ + "SET" transform_group_characteristic() +} + +void transform_group_characteristic(): +{} +{ + "DEFAULT" "TRANSFORM" "GROUP" value_specification() + | "TRANSFORM" "GROUP" "FOR" "TYPE" path_resolved_user_defined_type_name() value_specification() +} + +void set_session_collation_statement(): +{} +{ + "SET" "COLLATION" collation_specification() [ "FOR" character_set_specification_list() ] + | "SET" "NO" "COLLATION" [ "FOR" character_set_specification_list() ] +} + +void collation_specification(): +{} +{ + value_specification() +} + +void allocate_descriptor_statement(): +{} +{ + "ALLOCATE" [ "SQL" ] "DESCRIPTOR" descriptor_name() [ "WITH" "MAX" simple_value_specification() ] +} + +void deallocate_descriptor_statement(): +{} +{ + "DEALLOCATE" [ "SQL" ] "DESCRIPTOR" descriptor_name() +} + +void get_descriptor_statement(): +{} +{ + "GET" [ "SQL" ] "DESCRIPTOR" descriptor_name() get_descriptor_information() +} + +void get_descriptor_information(): +{} +{ + get_header_information() ( "," get_header_information() )* + | "VALUE" simple_value_specification() get_item_information() + ( "," get_item_information() )* +} + +void get_header_information(): +{} +{ + simple_target_specification_1() "=" header_item_name() +} + +void header_item_name(): +{} +{ + "COUNT" + | "KEY_TYPE" + | "DYNAMIC_FUNCTION" + | "DYNAMIC_FUNCTION_CODE" + | "TOP_LEVEL_COUNT" +} + +void get_item_information(): +{} +{ + simple_target_specification_2() "=" descriptor_item_name() +} + +void simple_target_specification_1(): +{} +{ + simple_target_specification() +} + +void simple_target_specification_2(): +{} +{ + simple_target_specification() +} + +void descriptor_item_name(): +{} +{ + "CARDINALITY" + | "CHARACTER_SET_CATALOG" + | "CHARACTER_SET_NAME" + | "CHARACTER_SET_SCHEMA" + | "COLLATION_CATALOG" + | "COLLATION_NAME" + | "COLLATION_SCHEMA" + | "DATA" + | "DATETIME_INTERVAL_CODE" + | "DATETIME_INTERVAL_PRECISION" + | "DEGREE" + | "INDICATOR" + | "KEY_MEMBER" + | "LENGTH" + | "LEVEL" + | "NAME" + | "NULLABLE" + | "OCTET_LENGTH" + | "PARAMETER_MODE" + | "PARAMETER_ORDINAL_POSITION" + | "PARAMETER_SPECIFIC_CATALOG" + | "PARAMETER_SPECIFIC_NAME" + | "PARAMETER_SPECIFIC_SCHEMA" + | "PRECISION" + | "RETURNED_CARDINALITY" + | "RETURNED_LENGTH" + | "RETURNED_OCTET_LENGTH" + | "SCALE" + | "SCOPE_CATALOG" + | "SCOPE_NAME" + | "SCOPE_SCHEMA" + | "TYPE" + | "UNNAMED" + | "USER_DEFINED_TYPE_CATALOG" + | "USER_DEFINED_TYPE_NAME" + | "USER_DEFINED_TYPE_SCHEMA" + | "USER_DEFINED_TYPE_CODE" +} + +void set_descriptor_statement(): +{} +{ + "SET" [ "SQL" ] "DESCRIPTOR" descriptor_name() set_descriptor_information() +} + +void set_descriptor_information(): +{} +{ + set_header_information() ( "," set_header_information() )* + | "VALUE" simple_value_specification() set_item_information() + ( "," set_item_information() )* +} + +void set_header_information(): +{} +{ + header_item_name() "=" simple_value_specification() +} + +void set_item_information(): +{} +{ + descriptor_item_name() "=" simple_value_specification() +} + +void prepare_statement(): +{} +{ + "PREPARE" SQL_identifier() [ attributes_specification() ] + "FROM" simple_value_specification() +} + +void attributes_specification(): +{} +{ + "ATTRIBUTES" simple_value_specification() +} + +void preparable_statement(): +{} +{ + preparable_SQL_data_statement() + | preparable_SQL_schema_statement() + | preparable_SQL_transaction_statement() + | preparable_SQL_control_statement() + | preparable_SQL_session_statement() + | preparable_implementation_defined_statement() +} + +void preparable_SQL_data_statement(): +{} +{ + delete_statement_searched() + | dynamic_single_row_select_statement() + | insert_statement() + | dynamic_select_statement() + | update_statement_searched() + | truncate_table_statement() + | merge_statement() + | preparable_dynamic_delete_statement_positioned() + | preparable_dynamic_update_statement_positioned() + //TODO(kaikalur):fix the next two + //| hold_locator_statement() + //| free_locator_statement() +} + +void preparable_SQL_schema_statement(): +{} +{ + SQL_schema_statement() +} + +void preparable_SQL_transaction_statement(): +{} +{ + SQL_transaction_statement() +} + +void preparable_SQL_control_statement(): +{} +{ + SQL_control_statement() +} + +void preparable_SQL_session_statement(): +{} +{ + SQL_session_statement() +} + +void dynamic_select_statement(): +{} +{ + cursor_specification() +} + +void preparable_implementation_defined_statement(): +{} +{ + //!! See the Syntax Rules. + character_string_literal() // temp +} + +void cursor_attributes(): +{} +{ + ( cursor_attribute() )+ +} + +void cursor_attribute(): +{} +{ + cursor_sensitivity() + | cursor_scrollability() + | cursor_holdability() + | cursor_returnability() +} + +void deallocate_prepared_statement(): +{} +{ + "DEALLOCATE" "PREPARE" SQL_identifier() +} + +void describe_statement(): +{} +{ + describe_input_statement() + | describe_output_statement() +} + +void describe_input_statement(): +{} +{ + "DESCRIBE" "INPUT" SQL_identifier() using_descriptor() [ nesting_option() ] +} + +void describe_output_statement(): +{} +{ + "DESCRIBE" [ "OUTPUT" ] described_object() using_descriptor() [ nesting_option() ] +} + +void nesting_option(): +{} +{ + "WITH" "NESTING" + | "WITHOUT" "NESTING" +} + +void using_descriptor(): +{} +{ + "USING" [ "SQL" ] "DESCRIPTOR" descriptor_name() +} + +void described_object(): +{} +{ + SQL_identifier() + | "CURSOR" extended_cursor_name() "STRUCTURE" +} + +void input_using_clause(): +{} +{ + using_arguments() + | using_input_descriptor() +} + +void using_arguments(): +{} +{ + "USING" using_argument() ( "," using_argument() )* +} + +void using_argument(): +{} +{ + general_value_specification() +} + +void using_input_descriptor(): +{} +{ + using_descriptor() +} + +void output_using_clause(): +{} +{ + into_arguments() + | into_descriptor() +} + +void into_arguments(): +{} +{ + "INTO" into_argument() ( "," into_argument() )* +} + +void into_argument(): +{} +{ + target_specification() +} + +void into_descriptor(): +{} +{ + "INTO" [ "SQL" ] "DESCRIPTOR" descriptor_name() +} + +void execute_statement(): +{} +{ + "EXECUTE" SQL_identifier() [ result_using_clause() ] [ parameter_using_clause() ] +} + +void result_using_clause(): +{} +{ + output_using_clause() +} + +void parameter_using_clause(): +{} +{ + input_using_clause() +} + +void execute_immediate_statement(): +{} +{ + "EXECUTE" "IMMEDIATE" simple_value_specification() +} + +void dynamic_declare_cursor(): +{} +{ + "DECLARE" cursor_name() + cursor_properties() + "FOR" identifier() +} + +void allocate_cursor_statement(): +{} +{ + "ALLOCATE" extended_cursor_name() cursor_intent() +} + +void cursor_intent(): +{} +{ + statement_cursor() + | result_set_cursor() +} + +void statement_cursor(): +{} +{ + cursor_properties() + "FOR" extended_identifier() +} + +void result_set_cursor(): +{} +{ + [ "CURSOR" ] "FOR" "PROCEDURE" specific_routine_designator() +} + +void dynamic_open_statement(): +{} +{ + "OPEN" dynamic_cursor_name() [ input_using_clause() ] +} + +void dynamic_fetch_statement(): +{} +{ + "FETCH" [ [ fetch_orientation() ] "FROM" ] dynamic_cursor_name() output_using_clause() +} + +void dynamic_single_row_select_statement(): +{} +{ + query_specification() +} + +void dynamic_close_statement(): +{} +{ + "CLOSE" dynamic_cursor_name() +} + +void dynamic_delete_statement_positioned(): +{} +{ + "DELETE" "FROM" target_table() "WHERE" "CURRENT" "OF" dynamic_cursor_name() +} + +void dynamic_update_statement_positioned(): +{} +{ + "UPDATE" target_table() "SET" set_clause_list() + "WHERE" "CURRENT" "OF" dynamic_cursor_name() +} + +void preparable_dynamic_delete_statement_positioned(): +{} +{ + "DELETE" [ "FROM" target_table() ] + "WHERE" "CURRENT" "OF" preparable_dynamic_cursor_name() +} + +void preparable_dynamic_cursor_name(): +{} +{ + [ scope_option() ] cursor_name() +} + +void preparable_dynamic_update_statement_positioned(): +{} +{ + "UPDATE" [ target_table() ] "SET" set_clause_list() + "WHERE" "CURRENT" "OF" preparable_dynamic_cursor_name() +} + +void direct_SQL_statement() #DirectSqlStatement(true): +{} +{ + directly_executable_statement() ";" +} + +void directly_executable_statement(): +{} +{ + direct_SQL_data_statement() + | SQL_schema_statement() + | SQL_transaction_statement() + | SQL_connection_statement() + | SQL_session_statement() + | direct_implementation_defined_statement() + | use_statement() // Non-standard +} + +void direct_SQL_data_statement(): +{} +{ + delete_statement_searched() + | direct_select_statement_multiple_rows() + | insert_statement() + | update_statement_searched() + | truncate_table_statement() + | merge_statement() + | temporary_table_declaration() +} + +void direct_implementation_defined_statement(): +{} +{ + //!! See the Syntax Rules. + character_string_literal() // temp +} + +void direct_select_statement_multiple_rows(): +{} +{ + cursor_specification() +} + +void get_diagnostics_statement(): +{} +{ + "GET" "DIAGNOSTICS" SQL_diagnostics_information() +} + +void SQL_diagnostics_information(): +{} +{ + LOOKAHEAD(3) statement_information() + | condition_information() + | all_information() +} + +void statement_information(): +{} +{ + statement_information_item() ( "," statement_information_item() )* +} + +void statement_information_item(): +{} +{ + simple_target_specification() "=" statement_information_item_name() +} + +void statement_information_item_name(): +{} +{ + "NUMBER" + | "MORE" + | "COMMAND_FUNCTION" + | "COMMAND_FUNCTION_CODE" + | "DYNAMIC_FUNCTION" + | "DYNAMIC_FUNCTION_CODE" + | "ROW_COUNT" + | "TRANSACTIONS_COMMITTED" + | "TRANSACTIONS_ROLLED_BACK" + | "TRANSACTION_ACTIVE" +} + +void condition_information(): +{} +{ + "CONDITION" simple_value_specification() condition_information_item() + ( "," condition_information_item() )* +} + +void condition_information_item(): +{} +{ + simple_target_specification() "=" condition_information_item_name() +} + +void condition_information_item_name(): +{} +{ + "CATALOG_NAME" + | "CLASS_ORIGIN" + | "COLUMN_NAME" + | "CONDITION_NUMBER" + | "CONNECTION_NAME" + | "CONSTRAINT_CATALOG" + | "CONSTRAINT_NAME" + | "CONSTRAINT_SCHEMA" + | "CURSOR_NAME" + | "MESSAGE_LENGTH" + | "MESSAGE_OCTET_LENGTH" + | "MESSAGE_TEXT" + | "PARAMETER_MODE" + | "PARAMETER_NAME" + | "PARAMETER_ORDINAL_POSITION" + | "RETURNED_SQLSTATE" + | "ROUTINE_CATALOG" + | "ROUTINE_NAME" + | "ROUTINE_SCHEMA" + | "SCHEMA_NAME" + | "SERVER_NAME" + | "SPECIFIC_NAME" + | "SUBCLASS_ORIGIN" + | "TABLE_NAME" + | "TRIGGER_CATALOG" + | "TRIGGER_NAME" + | "TRIGGER_SCHEMA" +} + +void all_information(): +{} +{ + all_info_target() "=" "ALL" [ all_qualifier() ] +} + +void all_info_target(): +{} +{ + simple_target_specification() +} + +void all_qualifier(): +{} +{ + "STATEMENT" + | "CONDITION" [ simple_value_specification() ] +} +void use_statement() #UseStatement: +{} +{ + "USE" identifier_chain() +} + +void lambda() #Lambda(2): +{} +{ + lambda_params() lambda_body() +} + +void lambda_body() #LambdaBody: +{} +{ + "->" value_expression() +} + +void lambda_params() #LambdaParams: +{} +{ + ( actual_identifier() )#LambdaParam(0) + | "(" [ ( actual_identifier() )#LambdaParam(0) ( "," ( actual_identifier() #LambdaParam(0) ) )* ] ")" +} + +void if_not_exists(): +{} +{ + "IF" "NOT" "EXISTS" +} + +void identifier_suffix_chain(): +{} +{ + ( ( "@" | ":" ) [ actual_identifier() ] )+ +} + +void limit_clause() #LimitClause: +{} +{ + "LIMIT" ( | "ALL" ) +} + +void presto_generic_type(): +{} +{ + presto_array_type() + | presto_map_type() + | ( "(" data_type() ( "," data_type() )* ")" )#ParameterizedType +} + +void presto_array_type() #ArrayType(): +{} +{ + "ARRAY" "<" data_type() ">" // Non-standard + | "ARRAY" "(" data_type() ")" // Non-standard +} + +void presto_map_type() #MapType(): +{} +{ + "MAP" "<" data_type() "," data_type() ">" // Non-standard + | "MAP" "(" data_type() "," data_type() ")" // Non-standard +} + +void percent_operator(): +{} +{ + +} + +void distinct(): +{} +{ + "DISTINCT" +} + +void grouping_expression(): +{} +{ + value_expression() +} + +void count(): +{} +{ + "COUNT" "(" ")" + | "\"COUNT\"" "(" [ set_quantifier() ] [ value_expression() | "*" ] ")" // Just weird +} + +void table_description(): +{} +{ + "COMMENT" character_string_literal() +} + +void routine_description(): +{} +{ + "COMMENT" character_string_literal() +} + +void column_description(): +{} +{ + "COMMENT" character_string_literal() +} + +void presto_aggregation_function(): +{} +{ + "NUMERIC_HISTOGRAM" + | "HISTOGRAM" + | "APPROEX_PERCENTILE" + | "MAP_AGG" + | "SET_AGG" + | "MAP_UNION" +} + +void presto_aggregations(): +{} +{ + presto_aggregation_function() + "(" [ [ set_quantifier() ] value_expression() ( "," value_expression() )* ] ")" +} + +void try_cast() #TryExpression: +{} +{ + "TRY_CAST" ( "(" cast_operand() "AS" cast_target() ")" )#CastExpression +} + +void varbinary(): +{} +{ + "VARBINARY" +} + +void table_attributes(): +{} +{ + "(" actual_identifier() "=" value_expression() ( "," actual_identifier() "=" value_expression() )* ")" // Non-standard +} + +void or_replace(): +{} +{ + "OR" "REPLACE" +} + +void udaf_filter(): +{} +{ + filter_clause() +} + +void extra_args_to_agg(): +{} +{ + ( "," value_expression() )+ +} + +void weird_identifiers(): +{} +{ + "_" +} + +TOKEN: +{ + )? > { setKindToIdentifier(matchedToken); } + | { setUnicodeLiteralType(matchedToken); } +} +TOKEN: +{ +/* + <#SQL_terminal_character() ::= +SQL_language_character() +; + +| <#SQL_language_character() ::= +simple_Latin_letter() +| digit() +| SQL_special_character() +; + +| <#simple_Latin_letter() ::= +simple_Latin_upper_case_letter() +| simple_Latin_lower_case_letter() +; + +| <#simple_Latin_upper_case_letter() ::= +["A"-"Z"] +; + +| <#simple_Latin_lower_case_letter() ::= +["a"-"z"] +; + +| <#SQL_special_character() ::= +space() +| "\"" +| "%" +| "&" +| "'" +| left_paren() +| right_paren() +| asterisk() +| plus_sign() +| comma() +| minus_sign() +| period() +| solidus() +| colon() +| semicolon() +| less_than_operator() +| equals_operator() +| greater_than_operator() +| question_mark() +| "[" +| "]" +| "^" +| "_" +| "|" +| "{" +| "}" +; +; + +token() ::= +nondelimiter_token() +| delimiter_token() +; + +nondelimiter_token() ::= +regular_identifier() +| key_word() +| unsigned_numeric_literal() +| national_character_string_literal() +| binary_string_literal() +| large_object_length_token() +| Unicode_delimited_identifier() +| Unicode_character_string_literal() +| SQL_language_identifier() +; + +*/ + + + > + +| <#identifier_body: ( )* > + +| <#identifier_part: | > + +| <#identifier_start: ["a"-"z"] // temp +/*!! See the Syntax Rules.*/ +> + +| <#identifier_extend: ["\u00B7", "0"-"9", "_"] // temp +//!! See the Syntax Rules. +> + +| )+ > + +| + +| )? "\"" > // Presto allows empty string as an id - yikes! + +| <#delimited_identifier_body: ( )+ > + +| <#delimited_identifier_part: | > + +| "\"" ( )? > + +| <#Unicode_escape_specifier: "UESCAPE" "'" "'" > + +| <#Unicode_delimiter_body: ( )+ > + +| <#Unicode_identifier_part: | > + +| <#Unicode_escape_value: | | > + +| <#Unicode_4_digit_escape_value: > + +| <#Unicode_6_digit_escape_value: "+" > + +| <#Unicode_character_escape_value: > + +| <#Unicode_escape_character: ~["a"-"z", "0"-"9", "+", "'", "\"", "\n", "\t", " "] // temp +//17) If the source language character set contains , then let D +//!! See the Syntax Rules.*/ +> + +| <#nondoublequote_character: ~["\""] +//!! See the Syntax Rules. +> + +| <#doublequote_symbol: "\"\"" > + +/* +delimiter_token: + +| +| +| +| +| +| +| <"> " +| ">=" +| "<=" +| "||" +| "->" +| "??(" +| "??)" +| "::" +| ".." +| "=>" +> +*/ +} + +SPECIAL_TOKEN: +{ + | [ " ", "\t" ] // temp +//!! See the Syntax Rules. +> + +| <#newline: (["\n", "\r"])+ +//!! See the Syntax Rules. +> + +//| | > +| > +| <#simple_comment: ( )* ()? > + +| <#simple_comment_introducer: "--" > + +//| <#bracketed_comment: > + + +//| <#bracketed_comment_terminator: "*/" > + +//| <#bracketed_comment_contents: ( | )* +////!! See the Syntax Rules. +//> + +//| <#comment_character: | "'" > +| <#comment_character: (~["\n", "\r"]) | "'" > + +| )+ > + +//| <#key_word: | > > +} + + +MORE: +{ + : comment_contents +} + +MORE: +{ + "*/" : match_comment + | <~[]> +} + +SPECIAL_TOKEN: +{ + { StoreImage(matchedToken); } : DEFAULT +} + +TOKEN: +{ + <#separator: ( + //TODO(kaikalur): fixit -- | )+ > + )+ > +| + <#digit: ["0"-"9"] > +| <#character_representation: | > + +| <#nonquote_character: ~["'"] +//!! See the Syntax Rules. +> + +| <#quote_symbol: "''" > + +| )* "'" > +| )* "'" ( "'" ( )* "'" )* > + +| )* "'" ( "'" ( )* "'" )* > // TODO(kaikalur) - fixit + +| <#Unicode_representation: | > + +//TODO(kaikalur): fixit +| <#space: " "> // temp +| )* ( ( )* ( )* )* "'" ( "'" ( )* ( ( )* ( )* )* "'" )* > + +| <#hexit: ["a"-"f", "0"-"9"] > + + +//| ( "." ( )? )? | "." > + +//| + +| )+ > +| ( "." ( )? ) | "." > + +| "E" > + +| <#mantissa: | > + +| <#exponent: > + +| <#signed_integer: ( [ "+", "-" ] )? > + + +| ( )* > + +// TODO(srenei): fixit +| <#simple_Latin_letter: ["a"-"z"]> +| <#SQL_language_identifier_start: > + +| <#SQL_language_identifier_part: | | "_" > +} + +TOKEN: +{ + : DEFAULT +} diff --git a/parser/src/test/java/com/facebook/coresql/parser/Comment.java b/parser/src/test/java/com/facebook/coresql/parser/Comment.java new file mode 100644 index 0000000..758e895 --- /dev/null +++ b/parser/src/test/java/com/facebook/coresql/parser/Comment.java @@ -0,0 +1,42 @@ +/* + * Licensed 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. + */ +package com.facebook.coresql.parser; + +public class Comment + implements Comparable +{ + protected boolean newLine; + protected boolean extraNewLine; + protected int absolutePosition; + protected int relativePosition; + protected String text; + + public Comment(int absolutePosition, String text) + { + this.absolutePosition = absolutePosition; + this.text = text; + } + + @Override + public int compareTo(Comment o) + { + return Integer.compare(absolutePosition, o.absolutePosition); + } + + @Override + public String toString() + { + return text; + } +} diff --git a/parser/src/test/java/com/facebook/coresql/parser/CommentMap.java b/parser/src/test/java/com/facebook/coresql/parser/CommentMap.java new file mode 100644 index 0000000..a4b80b3 --- /dev/null +++ b/parser/src/test/java/com/facebook/coresql/parser/CommentMap.java @@ -0,0 +1,188 @@ +/* + * Licensed 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. + */ +package com.facebook.coresql.parser; + +import java.util.ArrayList; +import java.util.Iterator; +import java.util.LinkedHashMap; +import java.util.logging.Level; +import java.util.logging.Logger; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +public class CommentMap + extends LinkedHashMap +{ + private static final Logger LOGGER = Logger.getLogger(CommentMap.class.getName()); + public static final Pattern COMMENT_PATTERN = Pattern.compile( + "'[^']*+'|\"[^\"]*+\"|(^/\\*[^*]*\\*+(?:[^/*][^*]*\\*+)*/\\s?\\n?|/\\*[^*]*\\*+(?:[^/*][^*]*\\*+)*/|--.*?\\r?[\\n])", + Pattern.DOTALL | Pattern.MULTILINE | Pattern.UNIX_LINES); + public static final Pattern LINE_END_COMMENT_PATTERN = Pattern.compile("(/\\*.*\\\\*/\\s?[,)]?\\n)"); + private static final Pattern STRING_PATTERN = Pattern + .compile("'[^']*+'|\"[^\"]*+\"", Pattern.DOTALL | Pattern.MULTILINE | Pattern.UNIX_LINES); + + private static StringBuilder appendComment(StringBuilder builder, String keyword, String after) + { + builder.append("").append(keyword).append(after); + return builder; + } + + public CommentMap(String sqlStr) + { + Matcher matcher = COMMENT_PATTERN.matcher(sqlStr); + while (matcher.find()) { + String group = matcher.group(0); + int start = matcher.start(0); + int end = matcher.end(0); + if (!STRING_PATTERN.matcher(group).matches()) { +// if (OracleHint.isHintMatch(group)) +// LOGGER.log(Level.FINE, "Oracle hint {0}", group); +// else { + Comment comment = new Comment(start, group); + if (start == 0 || (sqlStr.charAt(start - 1) == '\n' && sqlStr.charAt(end - 1) == '\n')) { + comment.newLine = true; + comment.extraNewLine = start > 1 && sqlStr.charAt(start - 2) == '\n'; + } + put(comment.absolutePosition, comment); +// } + } + } + int absolutePosition = 0; + int relativePosition = 0; + int totalCommentsLength = 0; + for (Comment comment : values()) { + while (absolutePosition < comment.absolutePosition) { + char c = sqlStr.charAt(absolutePosition); + if (!Character.isWhitespace(c)) { + relativePosition++; + } + absolutePosition++; + } + comment.relativePosition = relativePosition - totalCommentsLength; + totalCommentsLength += comment.text.replaceAll("\\s", "").length(); + LOGGER.log( + Level.FINE, + "Found comment {0} at Position {1} (absolute) {2} (relative).", + new Object[] {comment.text, comment.absolutePosition, comment.relativePosition}); + } + } + + public StringBuilder insertComments(StringBuilder sqlStrWithoutComments) + { + StringBuilder builder = new StringBuilder(); + Iterator commentIteraror = values().iterator(); + if (commentIteraror.hasNext()) { + Comment next = commentIteraror.next(); + int relativePosition = 0; + int ansiStarted = -1; + boolean wasLastComment = false; + for (int position = 0; position < sqlStrWithoutComments.length(); position++) { + String c = sqlStrWithoutComments.substring(position, position + 1); + if (ansiStarted < 0) { + while (next.relativePosition <= relativePosition) { + if (next.extraNewLine) { + builder.append("\n"); + } + else if (next.newLine && builder.length() > 1 && builder.charAt(builder.length() - 1) != '\n') { + builder.append("\n"); + } + else if (!c.matches("\\w")) { + builder.append(" "); + } + if (!next.newLine && next.text.startsWith("--")) { + appendComment(builder, next.text.trim().replaceFirst("--\\s?", "/* "), " */"); + } + else { + appendComment(builder, next.text, ""); + } + if (commentIteraror.hasNext()) { + next = commentIteraror.next(); + } + else { + wasLastComment = true; + break; + } + } + } + if (wasLastComment) { + String remaining = sqlStrWithoutComments.substring(position); + if (next.newLine) { + int nextBreak = remaining.indexOf('\n'); + if (nextBreak >= 0 && remaining.substring(0, nextBreak).trim().length() == 0) { + builder.append(remaining.substring(nextBreak + 1)); + } + else { + builder.append(remaining); + } + } + else { + builder.append(remaining); + } + break; + } + if (ansiStarted < 0 && position + 2 <= sqlStrWithoutComments.length() && sqlStrWithoutComments + .substring(position, position + 2).matches("\u001B\\[")) { + ansiStarted = position; + } + if (ansiStarted >= 0 && sqlStrWithoutComments.substring(ansiStarted, position + 1) + .matches("\u001B\\[[;\\d]*[ -/]*[@-~]")) { + ansiStarted = -1; + } + if (position > 0 && c.equals("\n")) { + int lastBreak = builder.lastIndexOf("\n"); + if (lastBreak < 0 || builder.substring(lastBreak).trim().length() > 0) { + builder.append(c); + } + } + else { + builder.append(c); + } + if (ansiStarted < 0) { + relativePosition = sqlStrWithoutComments.substring(0, position + 1) + .replaceAll("\u001B\\[[;\\d]*[ -/]*[@-~]|\\s", "").length(); + } + } + } + Matcher matcher = LINE_END_COMMENT_PATTERN.matcher(builder); + ArrayList matches = new ArrayList<>(); + int maxPosition = 0; + while (matcher.find()) { + int start = matcher.start(0); + int lastLineBreak = builder.lastIndexOf("\n", start); + int pos = start - lastLineBreak; + maxPosition = Integer.max(maxPosition, pos); + matches.add(new Object[] {start, pos}); + } + int subIndent = maxPosition / 4 + (maxPosition % 4 > 0 ? 1 : 0); + int totalInsertedChars = 0; + for (Object[] match : matches) { + int start = (int) match[0]; + int pos = (int) match[1]; + for (int j = pos; j < subIndent * 4; j++) { + builder.insert(start + totalInsertedChars, " "); + totalInsertedChars++; + } + } + return builder; + } + + public int getLength() + { + int length = 0; + for (Comment c : values()) { + length += c.text.length(); + } + return length; + } +} diff --git a/parser/src/test/java/com/facebook/coresql/parser/SQLKeyEntry.java b/parser/src/test/java/com/facebook/coresql/parser/SQLKeyEntry.java new file mode 100644 index 0000000..d9014e6 --- /dev/null +++ b/parser/src/test/java/com/facebook/coresql/parser/SQLKeyEntry.java @@ -0,0 +1,55 @@ +/* + * Licensed 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. + */ +package com.facebook.coresql.parser; + +import java.io.File; +import java.util.Map; + +public class SQLKeyEntry + implements Map.Entry +{ + File key; + String value; + + public SQLKeyEntry(File key, String value) + { + this.key = key; + this.value = value; + } + + @Override + public File getKey() + { + return key; + } + + @Override + public String getValue() + { + return value; + } + + @Override + public String setValue(String value) + { + this.value = value; + return this.value; + } + + @Override + public String toString() + { + return value + " @ " + key.getName(); + } +} diff --git a/parser/src/test/java/com/facebook/coresql/parser/SimpleFileTest.java b/parser/src/test/java/com/facebook/coresql/parser/SimpleFileTest.java new file mode 100644 index 0000000..75a4a10 --- /dev/null +++ b/parser/src/test/java/com/facebook/coresql/parser/SimpleFileTest.java @@ -0,0 +1,75 @@ +/* + * Licensed 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. + */ +package com.facebook.coresql.parser; + +import java.io.BufferedReader; +import java.io.File; +import java.io.FileReader; +import java.io.IOException; +import java.util.LinkedHashMap; +import java.util.Map.Entry; +import java.util.logging.Level; +import java.util.stream.Stream; + +public class SimpleFileTest + extends StandardFileTest +{ + public static final String TEST_FOLDER_STR = "src/test/resources/com/facebook/coresql/parser/simple"; + + public static Stream> getSqlMap() + { + LinkedHashMap sqlMap = new LinkedHashMap<>(); + for (File file : new File(TEST_FOLDER_STR).listFiles(FILENAME_FILTER)) { + extractIntoMap(sqlMap, file); + } + return sqlMap.entrySet().stream(); + } + + protected static void extractIntoMap(LinkedHashMap sqlMap, File file) + { + try (FileReader fileReader = new FileReader(file); BufferedReader bufferedReader = new BufferedReader( + fileReader)) { + boolean start = false; + boolean end; + StringBuilder stringBuilder = new StringBuilder(); + String line; + String k = ""; + boolean afterHeader = false; + while ((line = bufferedReader.readLine()) != null) { + if (!afterHeader && line.startsWith("--")) { + continue; + } + else { + afterHeader = true; + } + if (!start && line.startsWith("--") && !line.startsWith("-- @")) { + k = line.substring(3).trim().toUpperCase(); + } + start = start || (!line.startsWith("--") || line.startsWith("-- @")) && line.trim().length() > 0; + end = start && line.trim().endsWith(";"); + if (start) { + stringBuilder.append(line).append("\n"); + } + if (end) { + sqlMap.put(new SQLKeyEntry(file, k), stringBuilder.toString().trim()); + stringBuilder.setLength(0); + start = false; + } + } + } + catch (IOException ex) { + LOGGER.log(Level.SEVERE, "Failed to read " + file.getAbsolutePath(), ex); + } + } +} diff --git a/parser/src/test/java/com/facebook/coresql/parser/SimpleFileTestIT.java b/parser/src/test/java/com/facebook/coresql/parser/SimpleFileTestIT.java new file mode 100644 index 0000000..2f8e4a7 --- /dev/null +++ b/parser/src/test/java/com/facebook/coresql/parser/SimpleFileTestIT.java @@ -0,0 +1,38 @@ +/* + * Licensed 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. + */ +package com.facebook.coresql.parser; + +import java.io.File; +import java.util.LinkedHashMap; +import java.util.Map; +import java.util.stream.Stream; + +/** + * This Class is used for Fail Safe Integration Tests only + * It will test Real Life SQLs not supported by the Parser yet + */ +public class SimpleFileTestIT + extends SimpleFileTest +{ + public static final String TEST_FOLDER_STR = "src/test/resources/com/facebook/coresql/parser/simpleIT"; + + public static Stream> getSqlMap() + { + LinkedHashMap sqlMap = new LinkedHashMap<>(); + for (File file : new File(TEST_FOLDER_STR).listFiles(FILENAME_FILTER)) { + extractIntoMap(sqlMap, file); + } + return sqlMap.entrySet().stream(); + } +} diff --git a/parser/src/test/java/com/facebook/coresql/parser/StandardFileTest.java b/parser/src/test/java/com/facebook/coresql/parser/StandardFileTest.java new file mode 100644 index 0000000..5cddc7a --- /dev/null +++ b/parser/src/test/java/com/facebook/coresql/parser/StandardFileTest.java @@ -0,0 +1,114 @@ +/* + * Licensed 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. + */ +package com.facebook.coresql.parser; + +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.MethodSource; + +import java.io.BufferedReader; +import java.io.File; +import java.io.FileReader; +import java.io.FilenameFilter; +import java.io.IOException; +import java.util.LinkedHashMap; +import java.util.Map.Entry; +import java.util.logging.Level; +import java.util.logging.Logger; +import java.util.regex.Pattern; +import java.util.stream.Stream; + +/** + * @author Andreas Reichel + */ +public class StandardFileTest +{ + public static final Pattern COMMENT_PATTERN = Pattern.compile( + "'[^']*+'|\"[^\"]*+\"|(^/\\*[^*]*\\*+(?:[^/*][^*]*\\*+)*/\\s?\\n?|/\\*[^*]*\\*+(?:[^/*][^*]*\\*+)*/|--.*?\\r?[\\n])", + Pattern.DOTALL | Pattern.MULTILINE | Pattern.UNIX_LINES); + public static final String TEST_FOLDER_STR = "src/test/resources/com/facebook/coresql/parser/standard"; + public static final FilenameFilter FILENAME_FILTER = new FilenameFilter() + { + @Override + public boolean accept(File dir, String name) + { + return name.toLowerCase().endsWith(".sql"); + } + }; + public static final Logger LOGGER = Logger.getLogger(StandardFileTest.class.getName()); + + public static Stream> getSqlMap() + { + LinkedHashMap sqlMap = new LinkedHashMap<>(); + for (File file : new File(TEST_FOLDER_STR).listFiles(FILENAME_FILTER)) { + try (FileReader fileReader = new FileReader(file); BufferedReader bufferedReader = new BufferedReader( + fileReader)) { + extractIntoMap(sqlMap, file, bufferedReader); + } + catch (IOException ex) { + LOGGER.log(Level.SEVERE, "Failed to read " + file.getAbsolutePath(), ex); + } + } + return sqlMap.entrySet().stream(); + } + + protected static void extractIntoMap( + LinkedHashMap sqlMap, File file, BufferedReader bufferedReader) throws IOException + { + boolean start = false; + boolean end; + StringBuilder stringBuilder = new StringBuilder(); + String line; + String k = ""; + boolean afterHeader = false; + while ((line = bufferedReader.readLine()) != null) { + if (!afterHeader && line.startsWith("--")) { + continue; + } + else { + afterHeader = true; + } + if (!start && line.startsWith("--") && !line.startsWith("-- @")) { + k = line.substring(3).trim().toUpperCase(); + } + start = start || (!line.startsWith("--") || line.startsWith("-- @")) && line.trim().length() > 0; + end = start && line.trim().endsWith(";"); + if (start) { + stringBuilder.append(line).append("\n"); + } + if (end) { + sqlMap.put(new SQLKeyEntry(file, k), stringBuilder.toString().trim()); + stringBuilder.setLength(0); + start = false; + } + } + } + + /** + * Test parsing the provided examples + */ + @DisplayName("Standard SQL File Test") + @ParameterizedTest(name = "{index} {0}: {1}") + @MethodSource("getSqlMap") + public void testParser(Entry entry) throws ParseException + { + String expected = entry.getValue(); + if (expected.length() <= new CommentMap(expected).getLength()) { + LOGGER.log(Level.WARNING, "Skip empty statement, when found only comments: {0}", expected); + } + else { + TestUtils.assertParseAndUnparse(expected); + } + } +} diff --git a/parser/src/test/java/com/facebook/coresql/parser/StandardFileTestIT.java b/parser/src/test/java/com/facebook/coresql/parser/StandardFileTestIT.java new file mode 100644 index 0000000..50afc0f --- /dev/null +++ b/parser/src/test/java/com/facebook/coresql/parser/StandardFileTestIT.java @@ -0,0 +1,48 @@ +/* + * Licensed 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. + */ +package com.facebook.coresql.parser; + +import java.io.BufferedReader; +import java.io.File; +import java.io.FileReader; +import java.io.IOException; +import java.util.LinkedHashMap; +import java.util.Map; +import java.util.logging.Level; +import java.util.stream.Stream; + +/** + * This Class is used for Fail Safe Integration Tests only + * It will test Real Life SQLs not supported by the Parser yet + */ +public class StandardFileTestIT + extends StandardFileTest +{ + public static final String TEST_FOLDER_STR = "src/test/resources/com/facebook/coresql/parser/standardIT"; + + public static Stream> getSqlMap() + { + LinkedHashMap sqlMap = new LinkedHashMap<>(); + for (File file : new File(TEST_FOLDER_STR).listFiles(FILENAME_FILTER)) { + try (FileReader fileReader = new FileReader(file); BufferedReader bufferedReader = new BufferedReader( + fileReader)) { + extractIntoMap(sqlMap, file, bufferedReader); + } + catch (IOException ex) { + LOGGER.log(Level.SEVERE, "Failed to read " + file.getAbsolutePath(), ex); + } + } + return sqlMap.entrySet().stream(); + } +} diff --git a/parser/src/test/java/com/facebook/coresql/parser/TestKeywords.java b/parser/src/test/java/com/facebook/coresql/parser/TestKeywords.java index 2133054..b418f69 100644 --- a/parser/src/test/java/com/facebook/coresql/parser/TestKeywords.java +++ b/parser/src/test/java/com/facebook/coresql/parser/TestKeywords.java @@ -13,7 +13,8 @@ */ package com.facebook.coresql.parser; -import org.testng.annotations.Test; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; import static com.facebook.coresql.parser.ParserHelper.parseStatement; import static com.facebook.coresql.parser.SqlParserConstants.MAX_NON_RESERVED_WORD; @@ -21,9 +22,6 @@ import static com.facebook.coresql.parser.SqlParserConstants.MIN_NON_RESERVED_WORD; import static com.facebook.coresql.parser.SqlParserConstants.MIN_RESERVED_WORD; import static com.facebook.coresql.parser.SqlParserConstants.tokenImage; -import static org.testng.Assert.assertFalse; -import static org.testng.Assert.assertNotNull; -import static org.testng.Assert.assertNull; public class TestKeywords { @@ -36,7 +34,8 @@ private static String getTokenImageWithoutQuotes(int kind) public void testReservedWords() { for (int i = MIN_RESERVED_WORD + 1; i < MAX_RESERVED_WORD; i++) { - assertNull(parseStatement("select 1 as " + getTokenImageWithoutQuotes(i) + ";"), + Assertions.assertNull( + parseStatement("select 1 as " + getTokenImageWithoutQuotes(i) + ";"), getTokenImageWithoutQuotes(i) + " should be a reserved word."); } } @@ -46,7 +45,8 @@ public void testNonReservedWords() { // The last one is a weird one - "COUNT" so we ignore it for now. for (int i = MIN_NON_RESERVED_WORD + 1; i < MAX_NON_RESERVED_WORD - 1; i++) { - assertNotNull(parseStatement("select 1 as " + getTokenImageWithoutQuotes(i) + ";"), + Assertions.assertNotNull( + parseStatement("select 1 as " + getTokenImageWithoutQuotes(i) + ";"), getTokenImageWithoutQuotes(i) + " should NOT be a reserved word."); } } @@ -55,8 +55,9 @@ public void testNonReservedWords() public void testNoExtraneousKeywords() { for (int i = MAX_RESERVED_WORD + 1; i < tokenImage.length; i++) { - // All string literal tokens start with quote and if it's a keyword first char is a letter (somewhat loosely). - assertFalse( + // All string literal tokens start with quote and if it's a keyword first char is a letter (somewhat + // loosely). + Assertions.assertFalse( tokenImage[i].charAt(0) == '"' && Character.isLetter(tokenImage[i].charAt(1)), tokenImage[i] + " should be in one of the reserved word or non-reserved word group of tokens."); } diff --git a/parser/src/test/java/com/facebook/coresql/parser/TestSqlParser.java b/parser/src/test/java/com/facebook/coresql/parser/TestSqlParser.java index 08886f2..4d39bd1 100644 --- a/parser/src/test/java/com/facebook/coresql/parser/TestSqlParser.java +++ b/parser/src/test/java/com/facebook/coresql/parser/TestSqlParser.java @@ -14,9 +14,15 @@ package com.facebook.coresql.parser; import com.facebook.coresql.parser.sqllogictest.java.SqlLogicTest; -import org.testng.annotations.Test; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.MethodSource; import java.io.IOException; +import java.util.Arrays; +import java.util.List; +import java.util.stream.Stream; import static com.facebook.coresql.parser.ParserHelper.parseExpression; import static com.facebook.coresql.parser.ParserHelper.parseStatement; @@ -26,61 +32,57 @@ import static com.facebook.coresql.parser.SqlParserConstants.SQRT; import static com.facebook.coresql.parser.SqlParserConstants.tokenImage; import static com.facebook.coresql.parser.Unparser.unparse; -import static org.testng.Assert.assertEquals; -import static org.testng.Assert.assertNotNull; public class TestSqlParser { - private static final String[] TEST_SQL_TESTSTRINGS = new String[] { - "use a.b;", - " SELECT 1;", - "SELECT a FROM T;", - "SELECT a FROM T WHERE p1 > p2;", - "SELECT a, b, c FROM T WHERE c1 < c2 and c3 < c4;", - "SELECT CASE a WHEN IN ( 1 ) THEN b ELSE c END AS x, b, c FROM T WHERE c1 < c2 and c3 < c4;", - "SELECT T.* FROM T JOIN W ON T.x = W.x;", - "SELECT NULL;", - "SELECT ARRAY[x] FROM T;", - "SELECT TRANSFORM(ARRAY[x], x -> x + 2) AS arra FROM T;", - "CREATE TABLE T AS SELECT TRANSFORM(ARRAY[x], x -> x + 2) AS arra FROM T;", - "INSERT INTO T SELECT TRANSFORM(ARRAY[x], x -> x + 2) AS arra FROM T;", - "SELECT ROW_NUMBER() OVER(PARTITION BY x) FROM T;", - "SELECT x, SUM(y) OVER (PARTITION BY y ORDER BY 1) AS min\n" + - "FROM (values ('b',10), ('a', 10)) AS T(x, y)\n;", - "SELECT\n" + - " CAST(MAP() AS map>) AS \"bool_tensor_features\";", - "SELECT f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f())))))))))))))))))))))))))))));", - "SELECT abs, 2 as abs;", - "SELECT sqrt(x), power(y, 5), myFunction('a') FROM T;", - }; + public static Stream sqlStrings() + { + List sqlStrings = Arrays.asList( + "use a.b;", + " SELECT 1;", + "SELECT a FROM T;", + "SELECT a FROM T WHERE p1 > p2;", + "SELECT a, b, c FROM T WHERE c1 < c2 and c3 < c4;", + "SELECT CASE a WHEN IN ( 1 ) THEN b ELSE c END AS x, b, c FROM T WHERE c1 < c2 and c3 < c4;", + "SELECT T.* FROM T JOIN W ON T.x = W.x;", + "SELECT NULL;", + "SELECT ARRAY[x] FROM T;", + "SELECT TRANSFORM(ARRAY[x], x -> x + 2) AS arra FROM T;", + "CREATE TABLE T AS SELECT TRANSFORM(ARRAY[x], x -> x + 2) AS arra FROM T;", + "INSERT INTO T SELECT TRANSFORM(ARRAY[x], x -> x + 2) AS arra FROM T;", + "SELECT ROW_NUMBER() OVER(PARTITION BY x) FROM T;", + "SELECT x, SUM(y) OVER (PARTITION BY y ORDER BY 1) AS min\n" + "FROM (values ('b',10), ('a', 10)) AS T(x, y)\n;", + "SELECT\n" + " CAST(MAP() AS map>) AS \"bool_tensor_features\";", + "SELECT f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f())))))))))))))))))))))))))))));", + "SELECT abs, 2 as abs;", + "SELECT sqrt(x), power(y, 5), myFunction('a') FROM T;", + "SELECT concat(concat(concat(concat(concat(concat(concat(concat(concat(concat(concat(concat(concat(concat(concat(concat(concat(concat(concat(concat('1','2'),'3'),'4'),'5'),'6'),'7'),'8'),'9'),'10'),'11'),'12'),'13'),'14'),'15'),'16'),'17'),'18'),'19'),'20'),'21'),col1 FROM tbl t1;"); + return sqlStrings.stream(); + } private AstNode parse(String sql) { return parseStatement(sql); } - @Test - public void smokeTest() + @ParameterizedTest(name = "SQL {0}") + @MethodSource("sqlStrings") + public void smokeTest(String sqlStr) { - for (String sql : TEST_SQL_TESTSTRINGS) { - assertNotNull(parse(sql)); - } + Assertions.assertNotNull(parse(sqlStr), "Failed SQL:\n" + sqlStr); } - @Test - public void parseUnparseTest() + @ParameterizedTest(name = "SQL {0}") + @MethodSource("sqlStrings") + public void parseUnparseTest(String sqlStr) { - for (String sql : TEST_SQL_TESTSTRINGS) { - System.out.println(sql); - AstNode ast = parse(sql); - assertNotNull(ast); - assertEquals(sql.trim(), unparse(ast).trim()); - } + AstNode ast = parse(sqlStr); + Assertions.assertNotNull(ast); + Assertions.assertEquals(sqlStr.trim(), unparse(ast).trim(), "Failed SQL:\n" + sqlStr); } @Test - public void sqlLogicTest() - throws IOException + public void sqlLogicTest() throws IOException { SqlLogicTest.execute(); } @@ -88,26 +90,28 @@ public void sqlLogicTest() @Test public void testGetOperator() { - assertEquals(parseExpression("x + 10").GetOperator(), PLUS); - assertEquals(parseExpression("x < /*comment*/ 10").GetOperator(), LESS_THAN); - assertEquals(parseExpression("NOT x").GetOperator(), NOT); + Assertions.assertEquals(PLUS, parseExpression("x + 10").GetOperator()); + Assertions.assertEquals(LESS_THAN, parseExpression("x < /*comment*/ 10").GetOperator()); + Assertions.assertEquals(NOT, parseExpression("NOT x").GetOperator()); } @Test public void testGetFunctionName() { - assertEquals(parseExpression("SQRT(10)").GetFunctionName(), tokenImage[SQRT].substring(1, tokenImage[SQRT].length() - 1)); - assertEquals(parseExpression("POW(x, 2)").GetFunctionName(), "POW"); - assertEquals(parseExpression("PoW(x, 2)").GetFunctionName(), "PoW"); - assertEquals(parseExpression("MyFunction('a')").GetFunctionName(), "MyFunction"); + Assertions.assertEquals( + parseExpression("SQRT(10)").GetFunctionName(), + tokenImage[SQRT].substring(1, tokenImage[SQRT].length() - 1)); + Assertions.assertEquals("POW", parseExpression("POW(x, 2)").GetFunctionName()); + Assertions.assertEquals("PoW", parseExpression("PoW(x, 2)").GetFunctionName()); + Assertions.assertEquals("MyFunction", parseExpression("MyFunction('a')").GetFunctionName()); } @Test public void testIsNegated() { - assertEquals(parseExpression("a LIKE B").IsNegated(), false); - assertEquals(parseExpression("a NOT LIKE B").IsNegated(), true); - assertEquals(parseExpression("a IS NULL").IsNegated(), false); - assertEquals(parseExpression("a IS NOT NULL").IsNegated(), true); + Assertions.assertFalse(parseExpression("a LIKE B").IsNegated()); + Assertions.assertTrue(parseExpression("a NOT LIKE B").IsNegated()); + Assertions.assertFalse(parseExpression("a IS NULL").IsNegated()); + Assertions.assertTrue(parseExpression("a IS NOT NULL").IsNegated()); } } diff --git a/parser/src/test/java/com/facebook/coresql/parser/TestUtils.java b/parser/src/test/java/com/facebook/coresql/parser/TestUtils.java new file mode 100644 index 0000000..80d905e --- /dev/null +++ b/parser/src/test/java/com/facebook/coresql/parser/TestUtils.java @@ -0,0 +1,102 @@ +/* + * Licensed 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. + */ +package com.facebook.coresql.parser; + +import hu.webarticum.treeprinter.SimpleTreeNode; +import hu.webarticum.treeprinter.TreeNode; +import hu.webarticum.treeprinter.printer.listing.ListingTreePrinter; +import org.junit.jupiter.api.Assertions; + +import java.io.StringReader; +import java.util.regex.Pattern; + +public final class TestUtils +{ + private static final Pattern SQL_COMMENT_PATTERN = Pattern.compile("(--.*$)|(/\\*.*?\\*/)", Pattern.MULTILINE); + private static final Pattern SQL_SANITATION_PATTERN = Pattern.compile("(\\s+)", Pattern.MULTILINE); + // Assure SPACE around Syntax Characters + private static final Pattern SQL_SANITATION_PATTERN2 = Pattern + .compile("\\s*([!/,()=+\\-*|\\]<>:])\\s*", Pattern.MULTILINE); + + private TestUtils() + {} + + public static String buildSqlString(final String originalSql, boolean relaxed) + { + if (relaxed) { + // remove comments + String sanitizedSqlStr = SQL_COMMENT_PATTERN.matcher(originalSql).replaceAll(""); + // redundant white space + sanitizedSqlStr = SQL_SANITATION_PATTERN.matcher(sanitizedSqlStr).replaceAll(" "); + // assure spacing around Syntax Characters + sanitizedSqlStr = SQL_SANITATION_PATTERN2.matcher(sanitizedSqlStr).replaceAll("$1"); + return sanitizedSqlStr.trim().toLowerCase(); + } + else { + // remove comments only + return SQL_COMMENT_PATTERN.matcher(originalSql).replaceAll(""); + } + } + + // re-implement this method since we want to catch the Error + public static AstNode parseStatement(String sql) throws ParseException + { + SqlParserTokenManager tokenManager = new SqlParserTokenManager( + new SimpleCharStream(new StringReader(sql), 1, 1)); + SqlParser parser = new SqlParser(tokenManager); + parser.direct_SQL_statement(); + return parser.getResult(); + } + + public static AstNode assertParseAndUnparse(String sqlStr, boolean relaxed) + { + String expectedSqlStr = buildSqlString(sqlStr, relaxed); + AstNode ast = null; + try { + ast = parseStatement(sqlStr); + String actualSqlStr = buildSqlString(Unparser.unparse(ast), relaxed); + Assertions.assertEquals(expectedSqlStr, actualSqlStr, "Failed SQL:\n" + sqlStr); + } + catch (ParseException ex) { + Assertions.fail(ex.getLocalizedMessage() + "\n" + sqlStr); + } + return ast; + } + + public static AstNode assertParseAndUnparse(String sqlStr) + { + return assertParseAndUnparse(sqlStr, true); + } + + public static SimpleTreeNode translateNode(AstNode astNode) + { + String image = astNode.GetImage() == null || astNode.GetImage().isEmpty() + ? astNode.toString() + " [" + astNode.getLocation() + "]" + : astNode.toString() + ": " + astNode.GetImage() + " [" + astNode.getLocation() + "]"; + SimpleTreeNode simpleTreeNode = new SimpleTreeNode(image); + AstNode[] astNodeChildren = new AstNode[astNode.NumChildren()]; + for (int i = 0; i < astNode.NumChildren(); i++) { + simpleTreeNode.addChild(translateNode(astNode.GetChild(i))); + } + return simpleTreeNode; + } + + public static String formatToTree(AstNode astNode) throws Exception + { + TreeNode rootTreeNode = null; + SimpleTreeNode rootNode = new SimpleTreeNode("SQL Text"); + rootNode.addChild(translateNode(astNode)); + return new ListingTreePrinter().stringify(rootNode); + } +} diff --git a/parser/src/test/java/com/facebook/coresql/parser/expression/ParameterTest.java b/parser/src/test/java/com/facebook/coresql/parser/expression/ParameterTest.java new file mode 100644 index 0000000..e042eff --- /dev/null +++ b/parser/src/test/java/com/facebook/coresql/parser/expression/ParameterTest.java @@ -0,0 +1,87 @@ +/* + * Licensed 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. + */ +package com.facebook.coresql.parser.expression; + +import com.facebook.coresql.parser.AstNode; +import com.facebook.coresql.parser.ParseException; +import com.facebook.coresql.parser.TestUtils; +import com.facebook.coresql.parser.Unparser; +import org.junit.jupiter.api.Test; + +public class ParameterTest +{ + @Test + public void testParameter() throws ParseException + { + // String sqlStr = "SELECT Overlaps( overlaps ) AS overlaps\n" + "FROM overlaps.overlaps overlaps\n" + "WHERE + // overlaps = 'overlaps'\n" + " AND (CURRENT_TIME, INTERVAL '1' HOUR) OVERLAPS (CURRENT_TIME, INTERVAL -'1' + // HOUR)\n" + ";"; + String sqlStr = "SELECT /*+parallel*/ sqrt(40);"; + AstNode astNode = TestUtils.assertParseAndUnparse(sqlStr); + System.out.println(Unparser.unparse(astNode)); + try { + System.out.println(TestUtils.formatToTree(astNode)); + } + catch (Exception e) { + throw new RuntimeException(e); + } + } + + @Test + void testComplexExpression() throws ParseException { + String sqlStr = "SELECT ((3.0 >= 4.0 AND 5.0 <= 6.0) OR \n" + + "(7.0 < 8.0 AND 9.0 > 10.0) OR \n" + + "(11.0 = 11.0 AND 19.0 > 20.0) OR \n" + + "(17.0 = 14.0 AND 19.0 > 17.0) OR \n" + + "(17.0 = 18.0 AND 20.0 > 20.0) OR \n" + + "(17.0 = 16.0 AND 19.0 > 20.0) OR \n" + + "(17.0 = 18.0 AND 19.0 > 20.0) OR \n" + + "(17.0 = 18.0 AND 19.0 > 20.0) OR \n" + + "(17.0 = 22.0 AND 19.0 > 20.0) OR \n" + + "(18.0 = 18.0 AND 22.0 > 20.0) OR \n" + + "(17.0 = 18.0 AND 19.0 > 20.0) OR \n" + + "(18.0 = 18.0 AND 22.0 > 20.0) OR \n" + + "(18.0 = 19.0 AND 22.0 > 20.0) OR \n" + + "(117.0 = 22.0 AND 19.0 > 20.0) OR \n" + + "(118.0 = 18.0 AND 22.0 > 20.0) OR \n" + + "(117.0 = 18.0 AND 19.0 > 20.0) OR \n" + + "(17.0 = 18.0 AND 19.0 > 20.0));"; + AstNode astNode = TestUtils.assertParseAndUnparse(sqlStr); + } + + @Test + void testComplexExpression1() throws ParseException { + String sqlStr = "SELECT ((3.0 >= 4.0 AND 5.0 <= 6.0) OR " + + "(7.0 < 8.0 AND 9.0 > 10.0) OR " + + "(11.0 = 11.0 AND 19.0 > 20.0) OR " + + "(17.0 = 14.0 AND 19.0 > 17.0) OR " + + "(17.0 = 18.0 AND 20.0 > 20.0) OR " + + "(17.0 = 16.0 AND 19.0 > 20.0));"; + AstNode astNode = TestUtils.assertParseAndUnparse(sqlStr); + } + + @Test + void testJoin() throws Exception { + String sqlStr = "select * from a,b where a.a=b.b;"; + AstNode astNode = TestUtils.assertParseAndUnparse(sqlStr); + System.out.println(TestUtils.formatToTree(astNode)); + } + + @Test + void testUnicode() throws Exception { + String sqlStr = "select * from U&\\मकान\\;"; + AstNode astNode = TestUtils.assertParseAndUnparse(sqlStr); + System.out.println(TestUtils.formatToTree(astNode)); + } +} diff --git a/parser/src/test/java/com/facebook/coresql/parser/sqllogictest/java/SqlLogicTest.java b/parser/src/test/java/com/facebook/coresql/parser/sqllogictest/java/SqlLogicTest.java index c8cdfe9..434bebd 100644 --- a/parser/src/test/java/com/facebook/coresql/parser/sqllogictest/java/SqlLogicTest.java +++ b/parser/src/test/java/com/facebook/coresql/parser/sqllogictest/java/SqlLogicTest.java @@ -14,11 +14,11 @@ package com.facebook.coresql.parser.sqllogictest.java; -import com.facebook.airlift.bootstrap.Bootstrap; -import com.facebook.airlift.log.Logger; import com.facebook.coresql.parser.AstNode; import com.google.inject.Inject; import com.google.inject.Injector; +import io.airlift.bootstrap.Bootstrap; +import io.airlift.log.Logger; import java.io.FileNotFoundException; import java.io.IOException; diff --git a/parser/src/test/java/com/facebook/coresql/parser/sqllogictest/java/SqlLogicTestConfig.java b/parser/src/test/java/com/facebook/coresql/parser/sqllogictest/java/SqlLogicTestConfig.java index a3b74ef..4fd323c 100644 --- a/parser/src/test/java/com/facebook/coresql/parser/sqllogictest/java/SqlLogicTestConfig.java +++ b/parser/src/test/java/com/facebook/coresql/parser/sqllogictest/java/SqlLogicTestConfig.java @@ -14,9 +14,9 @@ package com.facebook.coresql.parser.sqllogictest.java; -import com.facebook.airlift.configuration.Config; -import com.facebook.airlift.configuration.ConfigDescription; import com.facebook.coresql.parser.sqllogictest.java.SqlLogicTest.DatabaseDialect; +import io.airlift.configuration.Config; +import io.airlift.configuration.ConfigDescription; import javax.validation.constraints.Min; import javax.validation.constraints.NotNull; diff --git a/parser/src/test/java/com/facebook/coresql/parser/sqllogictest/java/SqlLogicTestModule.java b/parser/src/test/java/com/facebook/coresql/parser/sqllogictest/java/SqlLogicTestModule.java index 682a896..0313240 100644 --- a/parser/src/test/java/com/facebook/coresql/parser/sqllogictest/java/SqlLogicTestModule.java +++ b/parser/src/test/java/com/facebook/coresql/parser/sqllogictest/java/SqlLogicTestModule.java @@ -17,8 +17,8 @@ import com.google.inject.Binder; import com.google.inject.Module; -import static com.facebook.airlift.configuration.ConfigBinder.configBinder; import static com.google.inject.Scopes.SINGLETON; +import static io.airlift.configuration.ConfigBinder.configBinder; public class SqlLogicTestModule implements Module diff --git a/parser/src/test/java/com/facebook/coresql/parser/sqllogictest/resources/sqllogictest_result.txt b/parser/src/test/java/com/facebook/coresql/parser/sqllogictest/resources/sqllogictest_result.txt new file mode 100644 index 0000000..5aa7770 --- /dev/null +++ b/parser/src/test/java/com/facebook/coresql/parser/sqllogictest/resources/sqllogictest_result.txt @@ -0,0 +1,8 @@ +SELECT abs(b-c), CASE WHEN c>(SELECT avg(c) FROM t1) THEN a*2 ELSE b*10 END, b, a FROM t1 WHERE b>c AND d>e NON EXISTANT CLAUSE 4,1,3,2; ----> PARSING_ERROR + +=============================================== +RESULT +=============================================== +Database dialect tested against: ALL +183 statements found, 182 statements successfully parsed. +99.45% of sqllogictest statements were successfully parsed. \ No newline at end of file diff --git a/parser/src/test/resources/com/facebook/coresql/parser/ignore/BracketQuotationTest.sql b/parser/src/test/resources/com/facebook/coresql/parser/ignore/BracketQuotationTest.sql new file mode 100644 index 0000000..5027d37 --- /dev/null +++ b/parser/src/test/resources/com/facebook/coresql/parser/ignore/BracketQuotationTest.sql @@ -0,0 +1,57 @@ +-- +-- Licensed 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. +-- + +-- BRACKETS 1 +SELECT columnname +FROM [server-name\\server-instance]..schemaname.tablename +; + +-- BRACKETS 2 +SELECT columnname +FROM [server-name\\server-instance]..[schemaName].[table Name] +; + +-- BRACKETS 3 +SELECT columnname +FROM [server-name\\server-instance]..[schemaName].[table-Name] +; + +-- BRACKETS 4 +SELECT columnname +FROM [schemaName].[tableName] +; + +-- BRACKETS 5 +SELECT columnname +FROM schemaname.[tableName] +; + +-- BRACKETS 6 +SELECT columnname +FROM [schemaName].tablename +; + +-- READ INSTRUMENT TRANSACTIONS WITH COLLATERAL ONLY +SELECT a.* +FROM [cfe].[TRANSACTION] a + INNER JOIN cfe.instrument b + ON a.id_instrument = b.id_instrument +WHERE a.id_instrument >= ? + AND a.id_instrument <= ? + AND EXISTS ( SELECT 1 + FROM cfe.instrument_ref b + INNER JOIN cfe.instrument_collateral_hst c + ON b.id_instrument_ref = c.id_instrument_ref + WHERE b.id_instrument = a.id_instrument ) +; diff --git a/parser/src/test/resources/com/facebook/coresql/parser/ignore/H2OrderedAggregateTest.sql b/parser/src/test/resources/com/facebook/coresql/parser/ignore/H2OrderedAggregateTest.sql new file mode 100644 index 0000000..9ef7f4e --- /dev/null +++ b/parser/src/test/resources/com/facebook/coresql/parser/ignore/H2OrderedAggregateTest.sql @@ -0,0 +1,45 @@ +-- +-- Licensed 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. +-- + +-- LISTAGG 1 +SELECT LISTAGG(NAME, ', ') WITHIN GROUP (ORDER BY ID) +; + + +-- LISTAGG 2 +SELECT LISTAGG(COALESCE(NAME, 'null'), ', ') WITHIN GROUP (ORDER BY ID) +; + + +-- LISTAGG 3 +/* Unsupported: SELECT LISTAGG(ID, ', ') WITHIN GROUP (ORDER BY ID) OVER (ORDER BY ID); */ +SELECT 1 +FROM dual +; + +-- ARRAY_AGG 1 +SELECT Array_Agg( name ) +; + + +-- ARRAY_AGG 2 +SELECT ARRAY_AGG(NAME ORDER BY ID) FILTER (WHERE NAME IS NOT NULL) +; + + +-- ARRAY_AGG 3 +/* SELECT ARRAY_AGG(ID ORDER BY ID) OVER (ORDER BY ID); */ +SELECT 1 +FROM dual +; \ No newline at end of file diff --git a/parser/src/test/resources/com/facebook/coresql/parser/ignore/MeanChallenges.sql b/parser/src/test/resources/com/facebook/coresql/parser/ignore/MeanChallenges.sql new file mode 100644 index 0000000..9a3b369 --- /dev/null +++ b/parser/src/test/resources/com/facebook/coresql/parser/ignore/MeanChallenges.sql @@ -0,0 +1,74 @@ +-- +-- Licensed 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. +-- + + +-- SELECT Date Ranges of available data +WITH p + AS (SELECT DISTINCT value_date + FROM risk.migration_data_v + WHERE (:1 IS NULL OR :2 ='' OR id_portfolio = Decode (:3 , '001', 'IFRS1', + '002', 'IFRS2', + '003', 'IFRS3', + '004', 'IFRS4', + '005', 'IFRS5', + '006', 'IFRS6', + :4 )) + AND value_date >= :5 + AND value_date <= :6 ), + ri + AS (SELECT a.id_risk_indicator + , Greatest((SELECT Min(value_date) + FROM p + WHERE value_date >= :7 ), (SELECT Max(value_date) + FROM risk.risk_indicator_value + WHERE id_risk_indicator_ref = a.id_risk_indicator_ref + AND value_date <= :8 )) min_ri_date + , Greatest((SELECT Min(value_date) + FROM p + WHERE value_date >= :9 ), (SELECT Min(value_date) + FROM risk.risk_indicator_value + WHERE id_risk_indicator_ref = a.id_risk_indicator_ref + AND value_date >= :10 )) min_ri_date_1 + , Least((SELECT Max(value_date) + FROM p + WHERE value_date <= :11 ), (SELECT Min(value_date) + FROM risk.risk_indicator_value + WHERE id_risk_indicator_ref = a.id_risk_indicator_ref + AND value_date >= :12 )) max_ri_date + , Least((SELECT Max(value_date) + FROM p + WHERE value_date <= :13 ), (SELECT Max(value_date) + FROM risk.risk_indicator_value + WHERE id_risk_indicator_ref = a.id_risk_indicator_ref + AND value_date <= :14 )) max_ri_date_1 + FROM risk.risk_indicator a + WHERE a.id_status = 'C' + AND a.id_risk_indicator_ref = (SELECT Max(id_risk_indicator_ref) + FROM risk.risk_indicator + WHERE id_status = 'C' + AND id_risk_indicator = a.id_risk_indicator) + AND ( ( :15 IS NULL + OR id_risk_indicator = :16 ) + )) +SELECT /*+parallel*/ ri.id_risk_indicator + , Min(p.value_date) "Min. Observation Date" + , Max(p.value_date) "Max. Observation Date" +FROM ri + , p +WHERE p.value_date >= Nvl(ri.min_ri_date, ri.min_ri_date_1) + AND p.value_date <= Nvl(ri.max_ri_date, ri.max_ri_date_1) +GROUP BY ri.id_risk_indicator +order by 1 +; + diff --git a/parser/src/test/resources/com/facebook/coresql/parser/ignore/MsSqlServerTest.sql b/parser/src/test/resources/com/facebook/coresql/parser/ignore/MsSqlServerTest.sql new file mode 100644 index 0000000..088eb89 --- /dev/null +++ b/parser/src/test/resources/com/facebook/coresql/parser/ignore/MsSqlServerTest.sql @@ -0,0 +1,44 @@ +-- +-- Licensed 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. +-- + +-- DELETE INSTRUMENT ATTRIBUTE HST AFTER VALUE_DATE_P +DELETE a FROM cfe.instrument_attribute_hst2 a + INNER JOIN ( SELECT value_date + , posting_date + FROM cfe.execution + WHERE posting_date > ( SELECT Max( posting_date ) + FROM cfe.execution + WHERE id_status = 'R' + AND value_date <= :value_date_p ) + OR ( SELECT Max( posting_date ) + FROM cfe.execution + WHERE id_status = 'R' + AND value_date <= :value_date_p ) IS NULL ) b + ON a.value_date = b.value_date + AND b.posting_date = b.posting_date +; + +-- READ INSTRUMENT TRANSACTIONS WITH COLLATERAL ONLY1 +SELECT a.* +FROM [cfe].[TRANSACTION] a + INNER JOIN cfe.instrument b + ON a.id_instrument = b.id_instrument +WHERE a.id_instrument >= ? + AND a.id_instrument <= ? + AND EXISTS ( SELECT 1 + FROM cfe.instrument_ref b + INNER JOIN cfe.instrument_collateral_hst c + ON b.id_instrument_ref = c.id_instrument_ref + WHERE b.id_instrument = a.id_instrument ) +; diff --git a/parser/src/test/resources/com/facebook/coresql/parser/ignore/MySQLTest.sql b/parser/src/test/resources/com/facebook/coresql/parser/ignore/MySQLTest.sql new file mode 100644 index 0000000..147e25b --- /dev/null +++ b/parser/src/test/resources/com/facebook/coresql/parser/ignore/MySQLTest.sql @@ -0,0 +1,45 @@ +-- +-- Licensed 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. +-- + +-- GROUP_CONCAT +SELECT Group_Concat( DISTINCT Trim( Concat( m.title, ' ', m.firstname + , ' ', m.lastname ) ) + ORDER BY p2m.manufacturer_type_id ASC + SEPARATOR ' ' ) AS manufacturer_name +FROM product_to_manufacturer p2m + LEFT JOIN manufacturer m + ON m.manufacturer_id = p2m.manufacturer_id +WHERE p2m.product_id = 574768 +; + +-- WITHOUT A FROM ITEM +-- @JSQLFormatter(indentWidth=2, keywordSpelling=LOWER, functionSpelling=CAMEL, objectSpelling=LOWER, separation=BEFORE) +select case + when ( select ccp.campaign_id + from campaign_constraint_product ccp + inner join campaign_free_shipping_products_visibility cfspv + on cfspv.campaign_id = ccp.campaign_id + where ccp.product_id = 530729 + and cfspv.status = 1 + union + select cap.campaign_id + from campaign_action_product cap + inner join campaign_free_shipping_products_visibility cfspv + on cfspv.campaign_id = cap.campaign_id + where cap.product_id = 530729 + and cfspv.status = 1 ) is not null + then 1 + else 0 + end as is_free_shipping +; \ No newline at end of file diff --git a/parser/src/test/resources/com/facebook/coresql/parser/simple/SQLFileTest_1.sql b/parser/src/test/resources/com/facebook/coresql/parser/simple/SQLFileTest_1.sql new file mode 100644 index 0000000..8bd2b21 --- /dev/null +++ b/parser/src/test/resources/com/facebook/coresql/parser/simple/SQLFileTest_1.sql @@ -0,0 +1,29 @@ +-- +-- Licensed 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. +-- + + +SELECT * +FROM schedule_info info +WHERE ( info.employee_id, info.schedule_date ) IN ( ( 1, '2019-10-01' ), ( 1, '2019-10-02' ) ) +; + + +SELECT * +FROM table_a +WHERE other_id IN ( ( SELECT id + FROM table_b + WHERE name LIKE '%aa%' ), ( SELECT id + FROM table_b + WHERE name LIKE '%bb%' ) ) +; \ No newline at end of file diff --git a/parser/src/test/resources/com/facebook/coresql/parser/simple/SQLFileTest_short.sql b/parser/src/test/resources/com/facebook/coresql/parser/simple/SQLFileTest_short.sql new file mode 100644 index 0000000..aeb36d9 --- /dev/null +++ b/parser/src/test/resources/com/facebook/coresql/parser/simple/SQLFileTest_short.sql @@ -0,0 +1,17 @@ +-- +-- Licensed 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. +-- + +DELETE FROM cfe.ledger_branch_balance +WHERE a=b and c=d +; diff --git a/parser/src/test/resources/com/facebook/coresql/parser/simpleIT/EmptyStatementTest.sql b/parser/src/test/resources/com/facebook/coresql/parser/simpleIT/EmptyStatementTest.sql new file mode 100644 index 0000000..d702ba8 --- /dev/null +++ b/parser/src/test/resources/com/facebook/coresql/parser/simpleIT/EmptyStatementTest.sql @@ -0,0 +1,13 @@ +-- +-- Licensed 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. +-- diff --git a/parser/src/test/resources/com/facebook/coresql/parser/simpleIT/SQLFileTest.sql b/parser/src/test/resources/com/facebook/coresql/parser/simpleIT/SQLFileTest.sql new file mode 100644 index 0000000..94e3061 --- /dev/null +++ b/parser/src/test/resources/com/facebook/coresql/parser/simpleIT/SQLFileTest.sql @@ -0,0 +1,96 @@ +-- +-- Licensed 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. +-- + +SELECT osuser + , sl.sql_id + , sl.sql_hash_value + , opname + , target + , elapsed_seconds + , time_remaining +FROM v$session_longops sl + INNER JOIN v$session s + ON sl.sid = s.sid + AND sl.serial# = s.serial# +WHERE time_remaining > 0 +; + +CREATE VIEW sys.running_sql + AS SELECT s.username + , sl.sid + , sq.executions + , sl.last_update_time + , sl.sql_id + , sl.sql_hash_value + , opname + , target + , elapsed_seconds + , time_remaining + , sq.sql_fulltext + FROM v$session_longops sl + INNER JOIN v$sql sq + ON sq.sql_id = sl.sql_id + INNER JOIN v$session s + ON sl.sid = s.sid + AND sl.serial# = s.serial# + WHERE time_remaining > 0 +; + + +SET pagesize 55 +; + + +SET linesize 170 +; + + +/* +something crazy; +something crazy; +something crazy; +something crazy; +*/ + + +-- something crazy; +SELECT Substr( v$session.username, 1, 8 ) username + , v$session.osuser osuser + , Decode( v$session.server + , 'DEDICATED', 'D' + , 'SHARED', 'S' + , 'O' ) server + , v$sqlarea.disk_reads disk_reads + , v$sqlarea.buffer_gets buffer_gets + , Substr( v$session.lockwait, 1, 10 ) lockwait + , v$session.process pid + , v$session_wait.event event + , v$sqlarea.sql_text sql +FROM v$session_wait + , v$sqlarea + , v$session +WHERE v$session.sql_address = v$sqlarea.address + AND v$session.sql_hash_value = v$sqlarea.hash_value + AND v$session.sid = v$session_wait.sid + AND v$session.status = 'ACTIVE' + AND v$session_wait.event != 'client message' +ORDER BY v$session.lockwait ASC + , v$session.username +; + + +SELECT 'exec DBMS_SHARED_POOL.PURGE (''' || address || ',' || hash_value || ''', ''C'');' +FROM v$sqlarea +WHERE sql_id LIKE '9z1ufprvt2pk2' +; diff --git a/parser/src/test/resources/com/facebook/coresql/parser/simpleIT/SQLFileTest_1.sql b/parser/src/test/resources/com/facebook/coresql/parser/simpleIT/SQLFileTest_1.sql new file mode 100644 index 0000000..7e97c32 --- /dev/null +++ b/parser/src/test/resources/com/facebook/coresql/parser/simpleIT/SQLFileTest_1.sql @@ -0,0 +1,419 @@ +-- +-- Licensed 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. +-- + +-- GET OBSERVATION PERIOD FOR ID_PORTFOLIO AND ID_RISK_INDICATOR +WITH p AS ( + SELECT DISTINCT + value_date + FROM risk.migration_data_v + WHERE ( :ID_PORTFOLIO IS NULL + OR :ID_PORTFOLIO = '' + OR id_portfolio = Decode( :ID_PORTFOLIO + , '001', 'IFRS1' + , '002', 'IFRS2' + , '003', 'IFRS3' + , '004', 'IFRS4' + , '005', 'IFRS5' + , '006', 'IFRS6' + , :ID_PORTFOLIO ) ) + AND value_date >= :FROM + AND value_date <= :TO ) + , ri AS ( + SELECT a.id_risk_indicator + , Greatest( ( SELECT Min( value_date ) + FROM p + WHERE value_date >= :FROM ), ( SELECT Max( value_date ) + FROM risk.risk_indicator_value + WHERE id_risk_indicator_ref = a.id_risk_indicator_ref + AND value_date <= :FROM ) ) min_ri_date + , Greatest( ( SELECT Min( value_date ) + FROM p + WHERE value_date >= :FROM ), ( SELECT Min( value_date ) + FROM risk.risk_indicator_value + WHERE id_risk_indicator_ref = a.id_risk_indicator_ref + AND value_date >= :FROM ) ) min_ri_date_1 + , Least( ( SELECT Max( value_date ) + FROM p + WHERE value_date <= :TO ), ( SELECT Min( value_date ) + FROM risk.risk_indicator_value + WHERE id_risk_indicator_ref = a.id_risk_indicator_ref + AND value_date >= :TO ) ) max_ri_date + , Least( ( SELECT Max( value_date ) + FROM p + WHERE value_date <= :TO ), ( SELECT Max( value_date ) + FROM risk.risk_indicator_value + WHERE id_risk_indicator_ref = a.id_risk_indicator_ref + AND value_date <= :TO ) ) max_ri_date_1 + FROM risk.risk_indicator a + WHERE a.id_status = 'C' + AND a.id_risk_indicator_ref = ( SELECT Max( id_risk_indicator_ref ) + FROM risk.risk_indicator + WHERE id_status = 'C' + AND id_risk_indicator = a.id_risk_indicator ) + AND ( ( :id_risk_indicator IS NULL + OR id_risk_indicator = :id_risk_indicator ) ) ) +SELECT /*+ PARALLEL */ + ri.id_risk_indicator + , Min( p.value_date ) "Min. Observation Date" + , Max( p.value_date ) "Max. Observation Date" +FROM ri + , p +WHERE p.value_date >= Nvl( ri.min_ri_date, ri.min_ri_date_1 ) + AND p.value_date <= Nvl( ri.max_ri_date, ri.max_ri_date_1 ) +GROUP BY ri.id_risk_indicator +ORDER BY 1 +; + +INSERT INTO cfe.ext_eab +SELECT /*+ PARALLEL DRIVING_SITE(A) */ a.* +FROM tbaadm.eod_acct_bal_table@finnacle a +WHERE end_eod_date >= Add_Months( To_Date( :VALUE_DATE, 'mm/dd/yy' ), - 4 ) +; + +WITH ex AS ( + SELECT value_date + , posting_date + FROM cfe.execution x + WHERE id_status = 'R' + AND value_date = ( SELECT Max( value_date ) + FROM cfe.execution + WHERE id_status = 'R' ) + AND posting_date = ( SELECT Max( posting_date ) + FROM cfe.execution + WHERE id_status = 'R' + AND value_date = x.value_date ) ) + , fxr AS ( + SELECT id_currency_from + , fxrate + FROM common.fxrate_hst f + WHERE f.value_date <= ( SELECT value_date + FROM ex ) + AND f.value_date = ( SELECT Max( value_date ) + FROM common.fxrate_hst + WHERE id_currency_from = f.id_currency_from + AND id_currency_into = f.id_currency_into ) + AND id_currency_into = 'NGN' + UNION ALL + SELECT 'NGN' + , 1 + FROM dual ) + , p AS ( + SELECT t.* + FROM cfe.portfolio_coll_impairment_hst t + INNER JOIN ex + ON Trunc( valid_date ) <= ex.value_date + WHERE valid_date = ( SELECT Max( valid_date ) + FROM cfe.portfolio_coll_impairment_hst + WHERE id_portfolio = t.id_portfolio + AND Trunc( valid_date ) <= ex.value_date ) ) + , coll AS ( + SELECT id_instrument_ref + , 'group_concat(description SEPARATOR CHR(10))' description + FROM ( SELECT Concat( Rpad( c.id_collateral, 20 ), ' ', Rpad( Trim( d.description ), 40 ) + , ' ', Rpad( Substr( Trim( c.description ), 0, 24 ), 24 ), ' ' + , To_Char( a1.amount, '9,999,999,999' ), ' ', a1.id_currency + , ' ', To_Char( d.hair_cut * 100, '9,99' ), '%' ) description + , a1.id_instrument_ref + FROM cfe.instr_coll_recovery_hst a1 + INNER JOIN ex + ON a1.valid_date = ex.value_date + INNER JOIN cfe.collateral_ref b + ON a1.id_collateral_ref = b.id_collateral_ref + INNER JOIN cfe.collateral c + ON b.id_collateral = c.id_collateral + INNER JOIN common.collateral_type d + ON c.id_collateral_type = d.id_collateral_type + AND d.id_status = 'C' + AND d.id_collateral_type_ref = ( SELECT Max( id_collateral_type_ref ) + FROM common.collateral_type + WHERE id_collateral_type = d.id_collateral_type + AND id_status = 'C' ) ) t + GROUP BY id_instrument_ref ) + , cp AS ( + SELECT b.foracid id_instrument + , b.cif_id id_counterparty + , Convert( a.description, varchar ) description + FROM risk.counterparty a + INNER JOIN cfe.ext_gam b + ON a.id_counterparty = b.cif_id + AND a.id_status = 'C' ) +SELECT Coalesce( cp.id_counterparty, g2.attribute_value ) id_counterparty + , Coalesce( Convert( cp1.description, varchar ), cp.description, h2.attribute_value ) description + , b.id_instrument + , a.id_instrument_type + , f2.attribute_value product + , a.start_date + , a.end_date + , k2.attribute_value gl_code + , c.yield + , a.id_currency + , c.amortised_cost_dirty + , c.amortised_cost_dirty_bc + , c.nominal_balance + + c.receivable_principal nominal_balance + , c.nominal_balance_bc + + c.receivable_principal_bc nominal_balance_bc + , c.open_commitment + , c.open_commitment_bc + , coll.description collaterals + , p1.rate_pd pd_1y + , CASE + WHEN c.amortised_cost_dirty_bc < 0 + OR ( c.amortised_cost_dirty_bc = 0 + AND c.open_commitment_bc < 0 ) + THEN Greatest( 1 + Round( Nvl( ( SELECT Sum( a1.amount * fxr.fxrate * Exp( - Nvl( c.yield, 0 ) * d.workout_period / 365 ) ) recovery_amount + FROM cfe.instr_coll_recovery_hst a1 + INNER JOIN ex + ON a1.valid_date = ex.value_date + INNER JOIN fxr + ON a1.id_currency = fxr.id_currency_from + INNER JOIN cfe.collateral_ref b + ON a1.id_collateral_ref = b.id_collateral_ref + INNER JOIN cfe.collateral c + ON b.id_collateral = c.id_collateral + INNER JOIN common.collateral_type d + ON c.id_collateral_type = d.id_collateral_type + AND d.id_status = 'C' + AND d.id_collateral_type_ref = ( SELECT Max( id_collateral_type_ref ) + FROM common.collateral_type + WHERE id_collateral_type = d.id_collateral_type + AND id_status = 'C' ) + WHERE a1.id_instrument_ref = a.id_instrument_ref ), 0 ), 2 ) / ( Nvl( c.amortised_cost_dirty_bc, 0 ) + Nvl( c.open_commitment_bc, 0 ) * Nvl( e.ccf, 0.25 ) ), 0 ) + ELSE 0 + END lgd_1y + , p2.rate_pd pd_2y + , p2.rate_lgd lgd_2y + , p3.rate_pd pd_3y + , p3.rate_lgd lgd_3y + , p10.rate_pd pd_10y + , p10.rate_lgd lgd_10y + , CASE + WHEN e.impairment_stage = 3 + AND d.impairment_is_specific = '0' + THEN 'D' + ELSE Decode( d.impairment_is_specific + , '1', 'S' + , '0', 'C' ) + END impairment_is_specific + , d.impairment + + d.impairment_spec impairment + , d.impairment_bc + + d.impairment_spec_bc impairment_bc + , d.impairment_contingent impairment_contingent + , d.impairment_contingent_bc impairment_contingent_bc + , d.unwinding unwinding + , d.unwinding_bc unwinding_bc + , d.impairment_spec_d + + d.unwinding_d impairment_spec_d + , d.impairment_spec_d_bc + + d.unwinding_d_bc impairment_spec_d_bc + , d.impairment_d + + d.impairment_contingent_d impairment_d + , d.impairment_d_bc + + d.impairment_contingent_d_bc impairment_d_bc + , d.unwinding_d unwinding_d + , d.unwinding_d_bc unwinding_d_bc + , e.id_portfolio + , e.master_rating + , Nvl( e.impairment_stage, 1 ) impairment_stage + , e.overdue_days + , e.risk_classification +FROM ex + INNER JOIN cfe.instrument_hst a + ON ex.value_date = a.value_date + AND ex.posting_date = a.posting_date + INNER JOIN cfe.instrument_ref b + ON a.id_instrument_ref = b.id_instrument_ref + LEFT JOIN coll + ON a.id_instrument_ref = coll.id_instrument_ref + LEFT JOIN cp + ON b.id_instrument = cp.id_instrument + INNER JOIN cfe.instrument_measure_balance c + ON ex.value_date = c.value_date + AND ex.posting_date = c.posting_date + AND b.id_instrument_ref = c.id_instrument_ref + AND c.asset_liability_flag = 'A' + LEFT JOIN cfe.instrument_measure_impairment d + ON ex.value_date = d.value_date + AND ex.posting_date = d.posting_date + AND b.id_instrument_ref = d.id_instrument_ref + AND d.asset_liability_flag = '9' + LEFT JOIN cfe.impairment e + ON b.id_instrument = e.id_instrument + LEFT JOIN ( cfe.instrument_attribute_hst2 f + INNER JOIN cfe.attribute_ref f1 + ON f1.id_attribute_ref = f.id_attribute_ref + AND f1.id_attribute = 'product' + INNER JOIN cfe.attribute_value_ref f2 + ON f2.id_attribute_value_ref = f.id_attribute_value_ref ) + ON f.value_date = ex.value_date + AND f.posting_date = ex.posting_date + AND f.id_instrument_ref = d.id_instrument_ref + LEFT JOIN ( cfe.instrument_attribute_hst2 g + INNER JOIN cfe.attribute_ref g1 + ON g1.id_attribute_ref = g.id_attribute_ref + AND g1.id_attribute = 'cust_id' + INNER JOIN cfe.attribute_value_ref g2 + ON g2.id_attribute_value_ref = g.id_attribute_value_ref ) + ON g.value_date = ex.value_date + AND g.posting_date = ex.posting_date + AND g.id_instrument_ref = a.id_instrument_ref + LEFT JOIN ( cfe.instrument_attribute_hst2 h + INNER JOIN cfe.attribute_ref h1 + ON h1.id_attribute_ref = h.id_attribute_ref + AND h1.id_attribute = 'cust_name' + INNER JOIN cfe.attribute_value_ref h2 + ON h2.id_attribute_value_ref = h.id_attribute_value_ref ) + ON h.value_date = ex.value_date + AND h.posting_date = ex.posting_date + AND h.id_instrument_ref = a.id_instrument_ref + LEFT JOIN ( cfe.instrument_attribute_hst2 k + INNER JOIN cfe.attribute_ref k1 + ON k1.id_attribute_ref = k.id_attribute_ref + AND k1.id_attribute = 'gl_code' + INNER JOIN cfe.attribute_value_ref k2 + ON k2.id_attribute_value_ref = k.id_attribute_value_ref ) + ON k.value_date = ex.value_date + AND k.posting_date = ex.posting_date + AND k.id_instrument_ref = a.id_instrument_ref + LEFT JOIN risk.counterparty cp1 + ON cp1.id_counterparty = Coalesce( cp.id_counterparty, g2.attribute_value ) + AND cp1.id_status = 'C' + LEFT JOIN p p1 + ON e.id_portfolio || '_ifrs9' = p1.id_portfolio + AND ( ( p1.period_scalar = 1 + AND p1.id_period_type = 'Y' ) + OR ( p1.period_scalar = 12 + AND p1.id_period_type = 'M' ) ) + LEFT JOIN p p2 + ON e.id_portfolio || '_ifrs9' = p2.id_portfolio + AND ( ( p2.period_scalar = 2 + AND p2.id_period_type = 'Y' ) + OR ( p2.period_scalar = 24 + AND p2.id_period_type = 'M' ) ) + LEFT JOIN p p3 + ON e.id_portfolio || '_ifrs9' = p3.id_portfolio + AND ( ( p3.period_scalar = 3 + AND p3.id_period_type = 'Y' ) + OR ( p3.period_scalar = 36 + AND p3.id_period_type = 'M' ) ) + LEFT JOIN p p10 + ON e.id_portfolio || '_ifrs9' = p10.id_portfolio + AND ( ( p10.period_scalar = 10 + AND p10.id_period_type = 'Y' ) + OR ( p10.period_scalar = 360 + AND p10.id_period_type = 'M' ) ) +WHERE ( amortised_cost_dirty < 0 + OR ( amortised_cost_dirty = 0 + AND open_commitment <= 0 ) + OR impairment != 0 + OR impairment_d != 0 + OR impairment_spec != 0 + OR impairment_spec_d != 0 + OR impairment_contingent != 0 + OR impairment_contingent_d != 0 ) + AND NOT ( id_instrument_type IN ( 'own_acc', 'sec_hft', 'sec_hft_set' ) + OR ( f2.attribute_value IS NOT NULL + AND f2.attribute_value IN ( 'GOVBONDS', 'TBILL' /*CBN Issues*/ ) ) + OR ( g2.attribute_value IS NOT NULL + AND g2.attribute_value IN ( '271', '7614' ) ) /*CBN*/ ) +; + + +SELECT * +FROM schedule_info info +WHERE ( info.employee_id, info.schedule_date ) IN ( ( 1, '2019-10-01' ), ( 1, '2019-10-02' ) ) +; + + +SELECT * +FROM table_a +WHERE other_id IN ( ( SELECT id + FROM table_b + WHERE name LIKE '%aa%' ), ( SELECT id + FROM table_b + WHERE name LIKE '%bb%' ) ) +; + + +SELECT * +FROM table1 +UNION +SELECT * +FROM table2 +ORDER BY col +LIMIT 4 +OFFSET 5 +; + + +-- ORACLE LONGOPS +SELECT l.inst_id + , l.sid + , l.serial# + , l.sql_id + , l.opname + , l.username + , l.target + , l.sofar + , l.totalwork + , l.start_time + , l.last_update_time + , Round( l.time_remaining / 60, 2 ) "REMAIN MINS" + , Round( l.elapsed_seconds / 60, 2 ) "ELAPSED MINS" + , Round( ( l.time_remaining + l.elapsed_seconds ) / 60, 2 ) "TOTAL MINS" + , Round( l.sofar / l.totalwork * 100, 2 ) "%_COMPLETE" + , l.message + , s.sql_text +FROM gv$session_longops l + LEFT OUTER JOIN v$sql s + ON s.hash_value = l.sql_hash_value + AND s.address = l.sql_address + AND s.child_number = 0 +WHERE l.opname NOT LIKE 'RMAN%' + AND l.opname NOT LIKE '%aggregate%' + AND l.totalwork != 0 + AND l.sofar <> l.totalwork + AND l.time_remaining > 0 +; + + +-- Old Oracle Outer Joins (+) +SELECT * +FROM foo + , bar +WHERE foo.id = bar.id(+) +; + + +SELECT * +FROM foo + , bar +WHERE foo.id(+) = bar.id +; + + +SELECT v.lname + , v.function + , d.name +FROM ( SELECT e.dept_id + , e.lname + , j.function + FROM employee e + , job j + WHERE e.job_id(+) = j.job_id ) v + , department d +WHERE v.dept_id(+) = d.dept_id +; + diff --git a/parser/src/test/resources/com/facebook/coresql/parser/simpleIT/SQLFileTest_short.sql b/parser/src/test/resources/com/facebook/coresql/parser/simpleIT/SQLFileTest_short.sql new file mode 100644 index 0000000..87ac206 --- /dev/null +++ b/parser/src/test/resources/com/facebook/coresql/parser/simpleIT/SQLFileTest_short.sql @@ -0,0 +1,26 @@ +-- +-- Licensed 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. +-- + +DELETE FROM cfe.ledger_branch_balance +WHERE ( value_date, posting_date, something_else + , value_date, posting_date, something_else ) = ( SELECT value_date + , posting_date + , something_else + , value_date + , posting_date + , something_else + FROM cfe.execution + WHERE id_status = 'R' + AND value_date = :VALUE_DATE ) +; diff --git a/parser/src/test/resources/com/facebook/coresql/parser/standard/StandardDeleteTest.sql b/parser/src/test/resources/com/facebook/coresql/parser/standard/StandardDeleteTest.sql new file mode 100644 index 0000000..969a7e3 --- /dev/null +++ b/parser/src/test/resources/com/facebook/coresql/parser/standard/StandardDeleteTest.sql @@ -0,0 +1,22 @@ +-- +-- Licensed 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. +-- + +-- DELETE LEDGER BRANCH BALANCE +DELETE FROM cfe.ledger_branch_balance +WHERE ( value_date, posting_date ) = ( SELECT value_date + , posting_date + FROM cfe.execution + WHERE id_status = 'R' ) +; + diff --git a/parser/src/test/resources/com/facebook/coresql/parser/standard/StandardInsertTest.sql b/parser/src/test/resources/com/facebook/coresql/parser/standard/StandardInsertTest.sql new file mode 100644 index 0000000..f38ecc4 --- /dev/null +++ b/parser/src/test/resources/com/facebook/coresql/parser/standard/StandardInsertTest.sql @@ -0,0 +1,30 @@ +-- +-- Licensed 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. +-- + +-- INSERT RATIO COLLECTION RATIOS +INSERT INTO risk.counterparty_ratio +VALUES ( ?, ?, ? ) +; + +-- APPEND ATTRIBUTE VALUE REF +INSERT INTO cfe.attribute_value_ref +SELECT cfe.id_attribute_value_ref.nextval + , attribute_value +FROM ( SELECT DISTINCT + a.attribute_value + FROM cfe.instrument_attribute a + LEFT JOIN cfe.attribute_value_ref b + ON a.attribute_value = b.attribute_value + WHERE b.attribute_value IS NULL ) a +; diff --git a/parser/src/test/resources/com/facebook/coresql/parser/standard/StandardSelectTest.sql b/parser/src/test/resources/com/facebook/coresql/parser/standard/StandardSelectTest.sql new file mode 100644 index 0000000..4b5812b --- /dev/null +++ b/parser/src/test/resources/com/facebook/coresql/parser/standard/StandardSelectTest.sql @@ -0,0 +1,228 @@ +-- +-- Licensed 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. +-- + +-- SIMPLE +SELECT * FROM dual +; + +-- APPEND COLLATERAL REF +SELECT /*+ PARALLEL */ + cfe.id_collateral_ref.nextval + , id_collateral +FROM ( SELECT DISTINCT + a.id_collateral + FROM cfe.collateral a + LEFT JOIN cfe.collateral_ref b + ON a.id_collateral = b.id_collateral + WHERE b.id_collateral_ref IS NULL ) +; + +-- APPEND COUNTER PARTY REF +SELECT /*+ PARALLEL */ + cfe.id_counter_party_ref.nextval + , id_counter_party +FROM ( SELECT DISTINCT + a.id_counter_party + FROM cfe.collateral a + LEFT JOIN cfe.counter_party_ref b + ON a.id_counter_party = b.id_counter_party + WHERE a.id_counter_party IS NOT NULL + AND b.id_counter_party_ref IS NULL ) +; + +-- SELECT WITH COMPLEX ORDER +WITH ex AS ( + SELECT value_date + , posting_date + FROM cfe.execution x + WHERE id_status IN ( 'R', 'H' ) + AND value_date = ( SELECT Max( value_date ) + FROM cfe.execution + WHERE id_status IN ( 'R', 'H' ) ) + AND posting_date = ( SELECT Max( posting_date ) + FROM cfe.execution + WHERE id_status IN ( 'R', 'H' ) + AND value_date = x.value_date ) ) + , fxr AS ( + SELECT id_currency_from + , fxrate + FROM common.fxrate_hst f + WHERE f.value_date <= ( SELECT value_date + FROM ex ) + AND f.value_date = ( SELECT Max( value_date ) + FROM common.fxrate_hst + WHERE id_currency_from = f.id_currency_from + AND id_currency_into = f.id_currency_into ) + AND id_currency_into = 'NGN' + UNION ALL + SELECT 'NGN' + , 1 + FROM dual ) + , scope AS ( + SELECT * + FROM cfe.accounting_scope + WHERE id_status = 'C' + AND id_accounting_scope_code = 'INTERN' ) + , scope1 AS ( + SELECT * + FROM cfe.accounting_scope + WHERE id_status = 'C' + AND id_accounting_scope_code = 'NGAAP' ) + , c AS ( + SELECT b.code + , Round( d.amount * fxr.fxrate, 2 ) balance_bc + FROM scope + INNER JOIN cfe.ledger_branch_branch b + ON b.id_accounting_scope = scope.id_accounting_scope + INNER JOIN cfe.ledger_account c + ON b.code_inferior = c.code + AND c.id_accounting_scope_code = scope.id_accounting_scope_code + INNER JOIN ( SELECT id_account_credit id_account + , amount + FROM cfe.ledger_account_entry + INNER JOIN ex + ON ledger_account_entry.posting_date <= ex.posting_date + UNION ALL + SELECT id_account_debit + , - amount + FROM cfe.ledger_account_entry + INNER JOIN ex + ON ledger_account_entry.posting_date <= ex.posting_date ) d + ON c.id_account = d.id_account + INNER JOIN fxr + ON c.id_currency = fxr.id_currency_from + GROUP BY b.code ) + , c1 AS ( + SELECT b.code + , Round( d.amount * fxr.fxrate, 2 ) balance_bc + FROM scope1 + INNER JOIN cfe.ledger_branch_branch b + ON b.id_accounting_scope = scope1.id_accounting_scope + INNER JOIN cfe.ledger_account c + ON b.code_inferior = c.code + AND c.id_accounting_scope_code = scope1.id_accounting_scope_code + INNER JOIN ( SELECT id_account_credit id_account + , amount + FROM cfe.ledger_account_entry + INNER JOIN ex + ON ledger_account_entry.posting_date <= ex.posting_date + UNION ALL + SELECT id_account_debit + , - amount + FROM cfe.ledger_account_entry + INNER JOIN ex + ON ledger_account_entry.posting_date <= ex.posting_date ) d + ON c.id_account = d.id_account + INNER JOIN fxr + ON c.id_currency = fxr.id_currency_from + GROUP BY b.code ) +SELECT /*+ PARALLEL */ + a.code code + , Lpad( ' ', 4 * ( a.gl_level - 1 ), ' ' ) + || a.code format_code + , b.description + , c.balance_bc + , c1.balance_bc +FROM scope + INNER JOIN cfe.ledger_branch_branch a + ON a.code = a.code_inferior + AND a.id_accounting_scope = scope.id_accounting_scope + INNER JOIN cfe.ledger_branch b + ON a.id_accounting_scope = b.id_accounting_scope + AND a.code = b.code + LEFT JOIN c + ON a.code = c.code + LEFT OUTER JOIN c1 + ON a.code = c1.code +WHERE gl_level <= 3 + AND NOT ( c.balance_bc IS NULL + AND c1.balance_bc IS NULL ) +ORDER BY ( SELECT code + FROM cfe.ledger_branch_branch + WHERE id_accounting_scope = a.id_accounting_scope + AND code_inferior = a.code + AND gl_level = 1 ) NULLS FIRST + , ( SELECT code + FROM cfe.ledger_branch_branch + WHERE id_accounting_scope = a.id_accounting_scope + AND code_inferior = a.code + AND gl_level = 2 ) ASC NULLS FIRST + , ( SELECT code + FROM cfe.ledger_branch_branch + WHERE id_accounting_scope = a.id_accounting_scope + AND code_inferior = a.code + AND gl_level = 3 ) DESC NULLS FIRST + , ( SELECT code + FROM cfe.ledger_branch_branch + WHERE id_accounting_scope = a.id_accounting_scope + AND code_inferior = a.code + AND gl_level = 4 ) DESC + , ( SELECT code + FROM cfe.ledger_branch_branch + WHERE id_accounting_scope = a.id_accounting_scope + AND code_inferior = a.code + AND gl_level = 5 ) ASC + , ( SELECT code + FROM cfe.ledger_branch_branch + WHERE id_accounting_scope = a.id_accounting_scope + AND code_inferior = a.code + AND gl_level = 6 ) NULLS FIRST + , ( SELECT code + FROM cfe.ledger_branch_branch + WHERE id_accounting_scope = a.id_accounting_scope + AND code_inferior = a.code + AND gl_level = 7 ) NULLS FIRST + , code +; + +-- ALL COLUMNS FROM TABLE +SELECT a.* +FROM cfe.instrument a +; + +-- NESTED WITH +WITH teststmt1 AS ( + WITH teststmt2 AS ( + SELECT * + FROM my_table2 ) + SELECT col1 + , col2 + FROM teststmt2 ) +SELECT * +FROM teststmt +; + +( + SELECT __time + FROM traffic_protocol_stat_log + LIMIT 1 ) +UNION ALL ( + SELECT __time + FROM traffic_protocol_stat_log + ORDER BY __time + LIMIT 1 ) +; + +-- GROUP BY +SELECT a + , b + , c + , Sum( d ) +FROM t +GROUP BY a + , b + , c +HAVING Sum( d ) > 0 + AND Count( * ) > 1 +; diff --git a/parser/src/test/resources/com/facebook/coresql/parser/standard/StandardUpdateTest.sql b/parser/src/test/resources/com/facebook/coresql/parser/standard/StandardUpdateTest.sql new file mode 100644 index 0000000..47c6629 --- /dev/null +++ b/parser/src/test/resources/com/facebook/coresql/parser/standard/StandardUpdateTest.sql @@ -0,0 +1,76 @@ +-- +-- Licensed 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. +-- + +-- UPDATE COLLATERAL_TYPE +UPDATE common.collateral_type +SET hair_cut = least +WHERE id_collateral_type_ref IN ( SELECT id_collateral_type_ref + FROM common.collateral_type a + WHERE id_status IN ( 'C', 'H', 'C' + , 'H', 'C', 'H' + , 'C', 'H' ) + AND id_collateral_type_ref = ( SELECT Max( id_collateral_type_ref ) + FROM common.collateral_type + WHERE id_status IN ( 'C', 'H' ) + AND id_collateral_type = a.id_collateral_type ) ) +; + +-- UPDATE COUNTERPARTY_INSTRUMENT +UPDATE risk.counterparty_instrument a1 +SET ( priority + , type + , description + , limit_amout + , id_currency + , end_date ) = ( SELECT a.priority + , a.type + , a.description + , a.limit_amout + , a.id_currency + , a.end_date + FROM risk.imp_counterparty_instrument a + INNER JOIN risk.counterparty b + ON a.id_counterparty = b.id_counterparty + AND b.id_status = 'C' + INNER JOIN risk.instrument c + ON a.id_instrument_beneficiary = c.id_instrument + AND c.id_status = 'C' + INNER JOIN risk.counterparty_instrument e + ON b.id_counterparty_ref = e.id_counterparty_ref + AND e.id_instrument_beneficiary = a.id_instrument_beneficiary + AND e.id_instrument_guarantee = a.id_instrument_guarantee + WHERE e.id_counterparty_ref = a1.id_counterparty_ref + AND e.id_instrument_beneficiary = a1.id_instrument_beneficiary + AND e.id_instrument_guarantee = a1.id_instrument_guarantee ) +WHERE EXISTS ( SELECT a.priority + , a.type + , a.description + , a.limit_amout + , a.id_currency + , a.end_date + FROM risk.imp_counterparty_instrument a + INNER JOIN risk.counterparty b + ON a.id_counterparty = b.id_counterparty + AND b.id_status = 'C' + INNER JOIN risk.instrument c + ON a.id_instrument_beneficiary = c.id_instrument + AND c.id_status = 'C' + INNER JOIN risk.counterparty_instrument e + ON b.id_counterparty_ref = e.id_counterparty_ref + AND e.id_instrument_beneficiary = a.id_instrument_beneficiary + AND e.id_instrument_guarantee = a.id_instrument_guarantee + WHERE e.id_counterparty_ref = a1.id_counterparty_ref + AND e.id_instrument_beneficiary = a1.id_instrument_beneficiary + AND e.id_instrument_guarantee = a1.id_instrument_guarantee ) +; diff --git a/parser/src/test/resources/com/facebook/coresql/parser/standardIT/H2OrderedAggregateTest.sql b/parser/src/test/resources/com/facebook/coresql/parser/standardIT/H2OrderedAggregateTest.sql new file mode 100644 index 0000000..9ef7f4e --- /dev/null +++ b/parser/src/test/resources/com/facebook/coresql/parser/standardIT/H2OrderedAggregateTest.sql @@ -0,0 +1,45 @@ +-- +-- Licensed 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. +-- + +-- LISTAGG 1 +SELECT LISTAGG(NAME, ', ') WITHIN GROUP (ORDER BY ID) +; + + +-- LISTAGG 2 +SELECT LISTAGG(COALESCE(NAME, 'null'), ', ') WITHIN GROUP (ORDER BY ID) +; + + +-- LISTAGG 3 +/* Unsupported: SELECT LISTAGG(ID, ', ') WITHIN GROUP (ORDER BY ID) OVER (ORDER BY ID); */ +SELECT 1 +FROM dual +; + +-- ARRAY_AGG 1 +SELECT Array_Agg( name ) +; + + +-- ARRAY_AGG 2 +SELECT ARRAY_AGG(NAME ORDER BY ID) FILTER (WHERE NAME IS NOT NULL) +; + + +-- ARRAY_AGG 3 +/* SELECT ARRAY_AGG(ID ORDER BY ID) OVER (ORDER BY ID); */ +SELECT 1 +FROM dual +; \ No newline at end of file diff --git a/parser/src/test/resources/com/facebook/coresql/parser/standardIT/MeanChallenges.sql b/parser/src/test/resources/com/facebook/coresql/parser/standardIT/MeanChallenges.sql new file mode 100644 index 0000000..9a3b369 --- /dev/null +++ b/parser/src/test/resources/com/facebook/coresql/parser/standardIT/MeanChallenges.sql @@ -0,0 +1,74 @@ +-- +-- Licensed 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. +-- + + +-- SELECT Date Ranges of available data +WITH p + AS (SELECT DISTINCT value_date + FROM risk.migration_data_v + WHERE (:1 IS NULL OR :2 ='' OR id_portfolio = Decode (:3 , '001', 'IFRS1', + '002', 'IFRS2', + '003', 'IFRS3', + '004', 'IFRS4', + '005', 'IFRS5', + '006', 'IFRS6', + :4 )) + AND value_date >= :5 + AND value_date <= :6 ), + ri + AS (SELECT a.id_risk_indicator + , Greatest((SELECT Min(value_date) + FROM p + WHERE value_date >= :7 ), (SELECT Max(value_date) + FROM risk.risk_indicator_value + WHERE id_risk_indicator_ref = a.id_risk_indicator_ref + AND value_date <= :8 )) min_ri_date + , Greatest((SELECT Min(value_date) + FROM p + WHERE value_date >= :9 ), (SELECT Min(value_date) + FROM risk.risk_indicator_value + WHERE id_risk_indicator_ref = a.id_risk_indicator_ref + AND value_date >= :10 )) min_ri_date_1 + , Least((SELECT Max(value_date) + FROM p + WHERE value_date <= :11 ), (SELECT Min(value_date) + FROM risk.risk_indicator_value + WHERE id_risk_indicator_ref = a.id_risk_indicator_ref + AND value_date >= :12 )) max_ri_date + , Least((SELECT Max(value_date) + FROM p + WHERE value_date <= :13 ), (SELECT Max(value_date) + FROM risk.risk_indicator_value + WHERE id_risk_indicator_ref = a.id_risk_indicator_ref + AND value_date <= :14 )) max_ri_date_1 + FROM risk.risk_indicator a + WHERE a.id_status = 'C' + AND a.id_risk_indicator_ref = (SELECT Max(id_risk_indicator_ref) + FROM risk.risk_indicator + WHERE id_status = 'C' + AND id_risk_indicator = a.id_risk_indicator) + AND ( ( :15 IS NULL + OR id_risk_indicator = :16 ) + )) +SELECT /*+parallel*/ ri.id_risk_indicator + , Min(p.value_date) "Min. Observation Date" + , Max(p.value_date) "Max. Observation Date" +FROM ri + , p +WHERE p.value_date >= Nvl(ri.min_ri_date, ri.min_ri_date_1) + AND p.value_date <= Nvl(ri.max_ri_date, ri.max_ri_date_1) +GROUP BY ri.id_risk_indicator +order by 1 +; + diff --git a/parser/src/test/resources/com/facebook/coresql/parser/standardIT/StandardAlterTest.sql b/parser/src/test/resources/com/facebook/coresql/parser/standardIT/StandardAlterTest.sql new file mode 100644 index 0000000..7677431 --- /dev/null +++ b/parser/src/test/resources/com/facebook/coresql/parser/standardIT/StandardAlterTest.sql @@ -0,0 +1,74 @@ +-- +-- Licensed 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. +-- + +-- ALTER TABLE ADD FOREIGN KEY +ALTER TABLE cfe.ledger_acc_entry_manual + ADD FOREIGN KEY (id_manual_posting_batch) + REFERENCES manual_posting_batch (id_manual_posting_batch) +; + +-- ALTER TABLE DROP COLUMN +ALTER TABLE risk.collateral + DROP COLUMN id_status +; + +-- ORACLE DROP MULTIPLE COLUMNS +ALTER TABLE risk.collateral + DROP (id_status, city ) +; + +-- ORACLE DROP MANY MULTIPLE COLUMNS +ALTER TABLE risk.collateral + DROP ( id_status + , city + , column3 + , column4 ) +; + +-- ALTER TABLE ADD COLUMN +ALTER TABLE risk.collateral + ADD COLUMN id_status VARCHAR (1) NULL +; + +-- ALTER TABLE ALTER COLUMN +ALTER TABLE risk.collateral + ALTER COLUMN id_status VARCHAR (1) NOT NULL +; + +-- ORACLE ALTER TABLE ADD COLUMN +ALTER TABLE risk.collateral + ADD id_status VARCHAR (1) NULL +; + +-- ORACLE ALTER TABLE MODIFY +ALTER TABLE risk.collateral + MODIFY id_status VARCHAR (1) NOT NULL +; + +-- ORACLE ADD MULTIPLE COLUMNS +ALTER TABLE customers + ADD ( customer_name VARCHAR2 (45) + , city VARCHAR2 (40) DEFAULT 'SEATTLE') +; + +-- ORACLE MODIFY MULTIPLE COLUMNS +ALTER TABLE customers + MODIFY ( customer_name VARCHAR2 (100) NOT NULL + , city VARCHAR2 (75) DEFAULT 'SEATTLE' NOT NULL) +; + +-- RENAME +ALTER TABLE departments + RENAME COLUMN department_name TO dept_name +; diff --git a/parser/src/test/resources/com/facebook/coresql/parser/standardIT/StandardCommentTest.sql b/parser/src/test/resources/com/facebook/coresql/parser/standardIT/StandardCommentTest.sql new file mode 100644 index 0000000..02ca57e --- /dev/null +++ b/parser/src/test/resources/com/facebook/coresql/parser/standardIT/StandardCommentTest.sql @@ -0,0 +1,41 @@ +-- +-- Licensed 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. +-- + +-- UPDATE CALENDAR +UPDATE cfe.calendar +SET year_offset = ? /* year offset */ + , settlement_shift = ? /* settlement shift */ + , friday_is_holiday = ? /* friday is a holiday */ + , saturday_is_holiday = ? /* saturday is a holiday */ + , sunday_is_holiday = ? /* sunday is a holiday */ +WHERE id_calendar = ? +; + + +-- BOTH CLAUSES PRESENT 'with a string' AND "a field" +MERGE /*+ PARALLEL */ INTO test1 /*the target table*/ a + USING all_objects /*the source table*/ + ON ( /*joins in()!*/ a.object_id = b.object_id ) +-- INSERT CLAUSE +WHEN /*comments between keywords!*/ NOT MATCHED THEN + INSERT ( object_id /*ID Column*/ + , status /*Status Column*/ ) + VALUES ( b.object_id + , b.status ) +/* UPDATE CLAUSE +WITH A WHERE CONDITION */ +WHEN MATCHED THEN /* Lets rock */ + UPDATE SET a.status = '/*this is no comment!*/ and -- this ain''t either' + WHERE b."--status" != 'VALID' +; diff --git a/parser/src/test/resources/com/facebook/coresql/parser/standardIT/StandardCreateIndexTest.sql b/parser/src/test/resources/com/facebook/coresql/parser/standardIT/StandardCreateIndexTest.sql new file mode 100644 index 0000000..67dcba0 --- /dev/null +++ b/parser/src/test/resources/com/facebook/coresql/parser/standardIT/StandardCreateIndexTest.sql @@ -0,0 +1,57 @@ +-- +-- Licensed 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. +-- + +-- SIMPLE +CREATE INDEX cfe.version_info_idx1 + ON cfe.version_info( major_version + , minor_version + , patch_level ) +; + +-- UNIQUE +CREATE UNIQUE INDEX cfe.interest_period_idx1 + ON cfe.interest_period( id_instrument, change_date ) +; + +-- MANY COLUMNS +CREATE UNIQUE INDEX cfe.version_info_idx2 + ON cfe.version_info( major_version + , minor_version + , patch_level + , major_version + , minor_version + , patch_level ) +; + +-- MANY COLUMNS WITH TAIL OPTIONS +CREATE UNIQUE INDEX cfe.version_info_idx2 + ON cfe.version_info( major_version + , minor_version + , patch_level + , major_version + , minor_version + , patch_level ) PARALLEL COMPRESS NOLOGGING +; + + +-- Z MANY COLUMNS WITH TAIL OPTIONS +-- @JSQLFormatter(indentWidth=2, keywordSpelling=LOWER, functionSpelling=KEEP, objectSpelling=UPPER, separation=AFTER) +create unique index CFE.VERSION_INFO_IDX2 + on CFE.VERSION_INFO( MAJOR_VERSION, + MINOR_VERSION, + PATCH_LEVEL, + MAJOR_VERSION, + MINOR_VERSION, + PATCH_LEVEL ) parallel compress nologging +; diff --git a/parser/src/test/resources/com/facebook/coresql/parser/standardIT/StandardCreateTableTest.sql b/parser/src/test/resources/com/facebook/coresql/parser/standardIT/StandardCreateTableTest.sql new file mode 100644 index 0000000..b08a6d5 --- /dev/null +++ b/parser/src/test/resources/com/facebook/coresql/parser/standardIT/StandardCreateTableTest.sql @@ -0,0 +1,117 @@ +-- +-- Licensed 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. +-- + +-- CREATE TABLE CFE.INTEREST_PERIOD +CREATE TABLE cfe.interest_period ( + id_instrument VARCHAR (40) NOT NULL + , id_fixingmode NUMBER (5) DEFAULT 0 NOT NULL + , fixing_date DATE + , change_date DATE + , base_rate VARCHAR (12) + , base_margin_rate DECIMAL (12,9) + , par_rate VARCHAR (12) + , par_margin_rate DECIMAL (12,9) + , id_payment_convention VARCHAR (12) + , id_day_count_convention VARCHAR (12) + , id_day_incl_convention VARCHAR (12) + , fix_amount DECIMAL (23,5) + , id_currency_fix_amount VARCHAR (3) + , id_script VARCHAR (12) +) +; + +-- SIMPLE +CREATE TABLE employees ( + employee_number INT NOT NULL + , employee_name CHAR (50) NOT NULL + , department_id INT + , salary INT + , PRIMARY KEY ( employee_number ) + , UNIQUE ( employee_name ) + , FOREIGN KEY ( department_id ) + REFERENCES departments ( department_id ) +) PARALLEL COMPRESS NOLOGGING +; + +-- COMPLEX +CREATE TABLE employees ( + employee_number INT NOT NULL + , employee_name CHAR (50) NOT NULL + , department_id INT + , salary INT + , CONSTRAINT employees_pk + PRIMARY KEY ( employee_number ) + , CONSTRAINT fk_departments + FOREIGN KEY ( department_id ) + REFERENCES departments ( department_id ) +) PARALLEL COMPRESS NOLOGGING +; + +-- COMPLEX WITH MANY REFERENCES +CREATE TABLE employees ( + employee_number INT NOT NULL + , employee_name CHAR (50) NOT NULL + , department_id INT + , salary INT + , CONSTRAINT employees_pk + PRIMARY KEY ( employee_number + , employee_name + , department_id ) + , CONSTRAINT fk_departments + FOREIGN KEY ( employee_number + , employee_name + , department_id ) + REFERENCES departments ( employee_number + , employee_name + , department_id ) +) PARALLEL COMPRESS NOLOGGING +; + +-- CREATE TABLE CFE.RECONCILIATION_NOMINAL_HST 2 +CREATE TABLE cfe.reconciliation_nominal_hst PARALLEL COMPRESS NOLOGGING + AS ( SELECT /*+ PARALLEL */ + ( SELECT id_execution_ref + FROM cfe.execution_ref c + INNER JOIN cfe.execution_v d + ON c.value_date = d.value_date + AND c.posting_date = d.posting_date + AND d.flag = 'L' ) id_execution_ref + , b.id_instrument_ref + , a.value_date + , a.nominal_balance + FROM cfe.reconciliation_nominal a + INNER JOIN cfe.instrument_ref b + ON a.id_instrument = b.id_instrument ) +; + +-- Z COMPLEX WITH MANY REFERENCES +-- @JSQLFormatter(indentWidth=2, keywordSpelling=LOWER, functionSpelling=KEEP, objectSpelling=UPPER, separation=AFTER) +create table EMPLOYEES ( + EMPLOYEE_NUMBER int not null, + EMPLOYEE_NAME char (50) not null, + DEPARTMENT_ID int, + SALARY int, + constraint EMPLOYEES_PK + primary key ( EMPLOYEE_NUMBER, + EMPLOYEE_NAME, + DEPARTMENT_ID ), + constraint FK_DEPARTMENTS + foreign key ( EMPLOYEE_NUMBER, + EMPLOYEE_NAME, + DEPARTMENT_ID ) + references DEPARTMENTS ( EMPLOYEE_NUMBER, + EMPLOYEE_NAME, + DEPARTMENT_ID ) +) parallel compress nologging +; diff --git a/parser/src/test/resources/com/facebook/coresql/parser/standardIT/StandardCreateViewTest.sql b/parser/src/test/resources/com/facebook/coresql/parser/standardIT/StandardCreateViewTest.sql new file mode 100644 index 0000000..bc69d2b --- /dev/null +++ b/parser/src/test/resources/com/facebook/coresql/parser/standardIT/StandardCreateViewTest.sql @@ -0,0 +1,100 @@ +-- +-- Licensed 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. +-- + +-- VIEW 1 +CREATE OR REPLACE VIEW cfe.interest_period_on_value_day + AS SELECT /*+ PARALLEL */ + a.value_date + , d.id_instrument + , d.id_fixingmode + , d.fixing_date + , Coalesce( d.change_date, b.end_date ) change_date + , d.base_rate + , d.base_margin_rate + , d.par_rate + , d.par_margin_rate + , d.id_payment_convention + , d.id_day_count_convention + , d.id_day_incl_convention + , d.fix_amount + , d.id_currency_fix_amount + , d.id_script + FROM ( SELECT value_date + , posting_date + FROM cfe.execution e + WHERE id_status = 'R' + AND value_date = ( SELECT Max( value_date ) + FROM cfe.execution + WHERE id_status = 'R' ) + AND posting_date = ( SELECT Max( posting_date ) + FROM cfe.execution + WHERE id_status = 'R' + AND value_date = e.value_date ) ) a + INNER JOIN cfe.instrument_hst b + ON a.value_date = b.value_date + AND a.posting_date = b.posting_date + INNER JOIN cfe.instrument_ref c + ON b.id_instrument_ref = c.id_instrument_ref + INNER JOIN cfe.interest_period d + ON d.id_instrument = c.id_instrument + AND a.value_date <= Coalesce( d.change_date, b.end_date ) + WHERE Coalesce( d.change_date, b.end_date ) = ( SELECT Min( Coalesce( change_date, b.end_date ) ) + FROM cfe.interest_period + WHERE id_instrument = d.id_instrument + AND a.value_date <= Coalesce( change_date, b.end_date ) ) + ORDER BY 2 + , 1 + , 4 +; + +-- VIEW 2 +CREATE OR REPLACE VIEW cfe.execution_v + AS SELECT /*+ PARALLEL */ + e.start_timestamp + , e.end_timestamp + , EXTRACT( hour FROM + e.end_timestamp + - e.start_timestamp ) || ':' + || Lpad( EXTRACT( minute FROM e.end_timestamp - e.start_timestamp ), 2, '0' ) duration + , e.value_date + , e.posting_date + , CASE + WHEN EXTRACT( year FROM e1.value_date ) > EXTRACT( year FROM e.value_date ) + THEN 'Y' + WHEN To_Char( e1.value_date, 'Q' ) > To_Char( e.value_date, 'Q' ) + THEN 'Q' + WHEN EXTRACT( month FROM e1.value_date ) > EXTRACT( month FROM e.value_date ) + THEN 'M' + WHEN To_Char( e1.value_date, 'IW' ) > To_Char( e.value_date, 'IW' ) + THEN 'W' + WHEN e1.value_date IS NULL + AND e.id_status = 'R' + THEN 'L' + END flag + , e.value_date_p + , e.value_date_pp + , e.id_status + FROM cfe.execution e + LEFT JOIN cfe.execution e1 + ON e.value_date < e1.value_date + AND e.id_status IN ( 'R', 'H' ) + AND e1.id_status IN ( 'R', 'H' ) + WHERE ( e1.value_date = ( SELECT Min( value_date ) + FROM cfe.execution + WHERE id_status IN ( 'R', 'H' ) + AND value_date > e.value_date ) + OR e1.value_date IS NULL ) + ORDER BY e.posting_date DESC + , e.value_date DESC +; diff --git a/parser/src/test/resources/com/facebook/coresql/parser/standardIT/StandardDeleteTest.sql b/parser/src/test/resources/com/facebook/coresql/parser/standardIT/StandardDeleteTest.sql new file mode 100644 index 0000000..db36eb7 --- /dev/null +++ b/parser/src/test/resources/com/facebook/coresql/parser/standardIT/StandardDeleteTest.sql @@ -0,0 +1,103 @@ +-- +-- Licensed 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. +-- + +-- DELETE LEDGER BRANCH BALANCE +DELETE FROM cfe.ledger_branch_balance +WHERE ( value_date, posting_date ) = ( SELECT value_date + , posting_date + FROM cfe.execution + WHERE id_status = 'R' + AND value_date = :VALUE_DATE ) +; + +-- DELETE WITH MANY ITEMS +DELETE FROM cfe.ledger_branch_balance +WHERE ( value_date, posting_date, something_else ) = ( SELECT value_date + , posting_date + , something_else + FROM cfe.execution + WHERE id_status = 'R' + AND value_date = :VALUE_DATE ) +; + +-- DELETE WITH MORE ITEMS +DELETE FROM cfe.ledger_branch_balance +WHERE ( value_date + , posting_date + , something_else + , value_date ) = ( SELECT value_date + , posting_date + , something_else + , value_date + FROM cfe.execution + WHERE id_status = 'R' + AND value_date = :VALUE_DATE ) +; + +-- DELETE WITH EVEN MORE ITEMS +DELETE FROM cfe.ledger_branch_balance +WHERE ( value_date, posting_date, something_else + , value_date, posting_date, something_else ) = ( SELECT value_date + , posting_date + , something_else + , value_date + , posting_date + , something_else + FROM cfe.execution + WHERE id_status = 'R' + AND value_date = :VALUE_DATE ) +; + +-- DELETE INSTRUMENT HST AFTER VALUE_DATE_P +DELETE /*+ PARALLEL INDEX_FFS(A, INSTRUMENT_HST_IDX1) */ FROM cfe.instrument_hst a +WHERE ( value_date, posting_date ) IN ( SELECT value_date + , posting_date + FROM cfe.execution + WHERE posting_date > ( SELECT Max( posting_date ) + FROM cfe.execution + WHERE id_status = 'R' + AND value_date <= :value_date_p ) + OR ( SELECT Max( posting_date ) + FROM cfe.execution + WHERE id_status = 'R' + AND value_date <= :value_date_p ) IS NULL ) +; + +-- DELETE REDUNDANT INSTRUMENT COLLATERAL HST 2 +DELETE FROM cfe.instrument_collateral_hst t1 +WHERE EXISTS ( SELECT 1 + FROM cfe.instrument_collateral a + INNER JOIN cfe.collateral_ref b + ON a.id_collateral = b.id_collateral + INNER JOIN cfe.instrument_ref c + ON a.id_instrument = c.id_instrument + WHERE b.id_collateral_ref = t1.id_collateral_ref + AND c.id_instrument_ref = t1.id_instrument_ref + AND a.valid_date = t1.valid_date ) +; + +-- DELETE ACCOUNT ENTRIES AFTER VALUE_DATE_P +DELETE FROM cfe.ledger_account_entry a +WHERE posting_date IN ( SELECT posting_date + FROM cfe.execution + WHERE posting_date > ( SELECT Max( posting_date ) + FROM cfe.execution + WHERE id_status = 'R' + AND value_date <= :value_date_p ) + OR ( SELECT Max( posting_date ) + FROM cfe.execution + WHERE id_status = 'R' + AND value_date <= :value_date_p ) IS NULL ) + AND reversed = '0' +; diff --git a/parser/src/test/resources/com/facebook/coresql/parser/standardIT/StandardInsertTest.sql b/parser/src/test/resources/com/facebook/coresql/parser/standardIT/StandardInsertTest.sql new file mode 100644 index 0000000..51f8a19 --- /dev/null +++ b/parser/src/test/resources/com/facebook/coresql/parser/standardIT/StandardInsertTest.sql @@ -0,0 +1,58 @@ +-- +-- Licensed 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. +-- + +-- INSERT COUNTERPARTY COUNTERPARTY RELATIONSHIP +INSERT INTO risk.counterparty_counterparty +VALUES ( :id_counterparty_ref, :id_counterparty_beneficiary, :id_instrument_guarantee + , :priority, :type, :description + , :limit_amout, :id_currency, :end_date ) +; + +-- INSERT RATIO COLLECTION RATIOS +INSERT INTO risk.counterparty_ratio +VALUES ( ?, ?, ? ) +; + +-- INSERT TMP_CCF +INSERT INTO risk.tmp_ccf ( + "ID_INSTRUMENT" + , "TENOR" + , "STATUS" + , "OBSERVATION_DATE" + , "BALANCE" + , "LIMIT" + , "DR_BALANCE" + , "OPEN_LIMIT" ) +SELECT '1000042339' /* ID_INSTRUMENT */ + , 0 /* TENOR */ + , 'DEFAULT' /* STATUS */ + , {d '2020-02-27'} /* OBSERVATION_DATE */ + , - 142574953.65 /* BALANCE */ + , 300000000 /* LIMIT */ + , - 142574953.65 /* DR_BALANCE */ + , 157425046.35 /* OPEN_LIMIT */ +FROM dual +; + +-- APPEND ATTRIBUTE VALUE REF +INSERT INTO cfe.attribute_value_ref +SELECT cfe.id_attribute_value_ref.nextval + , attribute_value +FROM ( SELECT DISTINCT + a.attribute_value + FROM cfe.instrument_attribute a + LEFT JOIN cfe.attribute_value_ref b + ON a.attribute_value = b.attribute_value + WHERE b.attribute_value IS NULL ) a +; diff --git a/parser/src/test/resources/com/facebook/coresql/parser/standardIT/StandardMergeTest.sql b/parser/src/test/resources/com/facebook/coresql/parser/standardIT/StandardMergeTest.sql new file mode 100644 index 0000000..eecb71f --- /dev/null +++ b/parser/src/test/resources/com/facebook/coresql/parser/standardIT/StandardMergeTest.sql @@ -0,0 +1,229 @@ +-- +-- Licensed 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. +-- + +-- MERGE 1 +MERGE INTO cfe.impairment imp + USING ( WITH x AS ( + SELECT a.id_instrument + , a.id_currency + , a.id_instrument_type + , b.id_portfolio + , c.attribute_value product_code + , t.valid_date + , t.ccf + FROM cfe.instrument a + INNER JOIN cfe.impairment b + ON a.id_instrument = b.id_instrument + LEFT JOIN cfe.instrument_attribute c + ON a.id_instrument = c.id_instrument + AND c.id_attribute = 'product' + INNER JOIN cfe.ext_ccf t + ON ( a.id_currency LIKE t.id_currency ) + AND ( a.id_instrument_type LIKE t.id_instrument_type ) + AND ( b.id_portfolio LIKE t.id_portfolio + OR ( b.id_portfolio IS NULL + AND t.id_portfolio = '%' ) ) + AND ( c.attribute_value LIKE t.product_code + OR ( c.attribute_value IS NULL + AND t.product_code = '%' ) ) ) +SELECT /*+ PARALLEL */ * + FROM x x1 + WHERE x1.valid_date = ( SELECT max + FROM x + WHERE id_instrument = x1.id_instrument ) ) s + ON ( imp.id_instrument = s.id_instrument ) +WHEN MATCHED THEN + UPDATE SET imp.ccf = s.ccf +; + +-- MERGE 2 +MERGE INTO cfe.instrument_import_measure imp + USING ( WITH x AS ( + SELECT a.id_instrument + , a.id_currency + , a.id_instrument_type + , b.id_portfolio + , c.attribute_value product_code + , t.valid_date + , t.yield + FROM cfe.instrument a + INNER JOIN cfe.impairment b + ON a.id_instrument = b.id_instrument + LEFT JOIN cfe.instrument_attribute c + ON a.id_instrument = c.id_instrument + AND c.id_attribute = 'product' + INNER JOIN cfe.ext_yield t + ON ( a.id_currency = t.id_currency ) + AND ( a.id_instrument_type LIKE t.id_instrument_type ) + AND ( b.id_portfolio LIKE t.id_portfolio + OR ( b.id_portfolio IS NULL + AND t.id_portfolio = '%' ) ) + AND ( c.attribute_value LIKE t.product_code + OR ( c.attribute_value IS NULL + AND t.product_code = '%' ) ) ) +SELECT /*+ PARALLEL */ * + FROM x x1 + WHERE x1.valid_date = ( SELECT max + FROM x + WHERE id_instrument = x1.id_instrument + AND valid_date <= to_date ) ) s + ON ( imp.id_instrument = s.id_instrument + AND imp.measure = 'YIELD' ) +WHEN MATCHED THEN + UPDATE SET imp.value = s.yield +; + +-- MERGE 3 +MERGE INTO cfe.instrument_import_measure imp + USING s + ON ( imp.id_instrument = s.id_instrument + AND imp.measure = 'YIELD_P' + AND imp.id_instrument = s.id_instrument + AND imp.measure = 'YIELD_P' ) +WHEN MATCHED THEN + UPDATE SET imp.value = s.yield +; + +-- MERGE 4 +MERGE INTO cfe.instrument_import_measure imp + USING ( WITH x AS ( + SELECT a.id_instrument + , a.id_currency + , a.id_instrument_type + , b.id_portfolio + , c.attribute_value product_code + , t.valid_date + , t.yield + FROM cfe.instrument a + INNER JOIN cfe.impairment b + ON a.id_instrument = b.id_instrument + LEFT JOIN cfe.instrument_attribute c + ON a.id_instrument = c.id_instrument + AND c.id_attribute = 'product' + INNER JOIN cfe.ext_yield t + ON ( a.id_currency = t.id_currency ) + AND ( a.id_instrument_type LIKE t.id_instrument_type ) + AND ( b.id_portfolio LIKE t.id_portfolio + OR ( b.id_portfolio IS NULL + AND t.id_portfolio = '%' ) ) + AND ( c.attribute_value LIKE t.product_code + OR ( c.attribute_value IS NULL + AND t.product_code = '%' ) ) ) +SELECT /*+ PARALLEL */ * + FROM x x1 + WHERE x1.valid_date = ( SELECT max + FROM x + WHERE id_instrument = x1.id_instrument + AND valid_date <= to_date ) ) s + ON ( imp.id_instrument = s.id_instrument + AND imp.measure = 'YIELD_PP' ) +WHEN MATCHED THEN + UPDATE SET imp.value = s.yield +; + +-- MERGE DELETE WHERE +MERGE INTO empl_current tar + USING ( SELECT empno + , ename + , CASE + WHEN leavedate <= sysdate + THEN 'Y' + ELSE 'N' + END AS delete_flag + FROM empl ) src + ON ( tar.empno = src.empno ) +WHEN NOT MATCHED THEN + INSERT ( empno + , ename ) + VALUES ( src.empno + , src.ename ) +WHEN MATCHED THEN + UPDATE SET tar.ename = src.ename + WHERE delete_flag = 'N' + DELETE WHERE delete_flag = 'Y' +; + +-- BOTH CLAUSES PRESENT +MERGE INTO test1 a + USING all_objects + ON ( a.object_id = b.object_id ) +WHEN NOT MATCHED THEN + INSERT ( object_id + , status ) + VALUES ( b.object_id + , b.status ) +WHEN MATCHED THEN + UPDATE SET a.status = b.status + WHERE b.status != 'VALID' +; + +-- BOTH CLAUSES PRESENT 2 +MERGE INTO test1 a + USING all_objects + ON ( a.object_id = b.object_id ) +WHEN NOT MATCHED THEN + INSERT ( object_id + , status ) + VALUES ( b.object_id + , b.status ) + WHERE b.status != 'VALID' +WHEN MATCHED THEN + UPDATE SET a.status = b.status + WHERE b.status != 'VALID' +; + +-- INSERT WITHOUT COLUMNS +MERGE /*+ PARALLEL */ INTO cfe.tmp_eab a + USING ( SELECT /*+ PARALLEL DRIVING_SITE(C) */ c.* + FROM tbaadm.eab@finnacle c + INNER JOIN ( SELECT acid + , eod_date + FROM cfe.tmp_eab e + WHERE end_eod_date = ( SELECT Max( eod_date ) + FROM cfe.tmp_eab + WHERE acid = e.acid ) + AND end_eod_date < '31-Dec-2099' ) d + ON c.acid = d.acid + AND c.eod_date >= d.eod_date ) b + ON ( a.acid = b.acid + AND a.eod_date = b.eod_date ) +WHEN MATCHED THEN + UPDATE SET a.tran_date_bal = b.tran_date_bal + , a.tran_date_tot_tran = b.tran_date_tot_tran + , a.value_date_bal = b.value_date_bal + , a.value_date_tot_tran = b.value_date_tot_tran + , a.end_eod_date = b.end_eod_date + , a.lchg_user_id = b.lchg_user_id + , a.lchg_time = b.lchg_time + , a.rcre_user_id = b.rcre_user_id + , a.rcre_time = b.rcre_time + , a.ts_cnt = b.ts_cnt + , a.eab_crncy_code = b.eab_crncy_code + , a.bank_id = b.bank_id +WHEN NOT MATCHED THEN + INSERT VALUES ( b.acid + , b.eod_date + , b.tran_date_bal + , b.tran_date_tot_tran + , b.value_date_bal + , b.value_date_tot_tran + , b.end_eod_date + , b.lchg_user_id + , b.lchg_time + , b.rcre_user_id + , b.rcre_time + , b.ts_cnt + , b.eab_crncy_code + , b.bank_id ) +; diff --git a/parser/src/test/resources/com/facebook/coresql/parser/standardIT/StandardOffsetLimitTest.sql b/parser/src/test/resources/com/facebook/coresql/parser/standardIT/StandardOffsetLimitTest.sql new file mode 100644 index 0000000..41284e2 --- /dev/null +++ b/parser/src/test/resources/com/facebook/coresql/parser/standardIT/StandardOffsetLimitTest.sql @@ -0,0 +1,44 @@ +-- +-- Licensed 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. +-- + +-- SIMPLE LIMIT +SELECT p.* +FROM product p + LEFT JOIN product_description pd + ON ( p.product_id = pd.product_id ) + LEFT JOIN product_type_google_category ptgc + ON ( p.product_type_id = ptgc.product_type_id ) + LEFT JOIN product_google_custom_label pgcl + ON ( p.product_id = pgcl.product_id ) +WHERE p.status = 1 + AND pd.language_id = 2 + AND p.product_id IN ( SELECT product_id + FROM cj_googleshopping_products ) +ORDER BY date_available DESC + , p.purchased DESC +LIMIT 200000 +; + +-- LIMIT OFFSET EXPRESSIONS +SELECT p.* +FROM product p +LIMIT '200000' +OFFSET '5' +; + +-- MYSQL LIMIT OFFSET EXPRESSIONS +SELECT p.* +FROM product p +LIMIT 5, 2000 +; \ No newline at end of file diff --git a/parser/src/test/resources/com/facebook/coresql/parser/standardIT/StandardSelectTest.sql b/parser/src/test/resources/com/facebook/coresql/parser/standardIT/StandardSelectTest.sql new file mode 100644 index 0000000..e6056a5 --- /dev/null +++ b/parser/src/test/resources/com/facebook/coresql/parser/standardIT/StandardSelectTest.sql @@ -0,0 +1,476 @@ +-- +-- Licensed 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. +-- + +-- INSERT NEW LEDGER ACCOUNTS +SELECT /*+ PARALLEL */ + cfe.id_account_seq.nextval + , "a"."code" + , a."id_currency" + , a.id_fee_type + , current_date + , NULL + , id_accounting_scope_code +FROM ( SELECT * + FROM ( SELECT DISTINCT + c.code code + , d.id_currency + , NULL id_fee_type + , c1.id_accounting_scope_code + FROM cfe.ledger_branch c + INNER JOIN cfe.accounting_scope c1 + ON c1.id_accounting_scope = c.id_accounting_scope + AND c1.id_status = 'C' + , common.ledger_currency d + MINUS + SELECT DISTINCT + c.code + , d.id_currency + , NULL id_fee_type + , c.id_accounting_scope_code + FROM cfe.ledger_account c + INNER JOIN common.ledger_currency d + ON c.id_currency = d.id_currency ) + UNION + SELECT * + FROM ( SELECT DISTINCT + c.code + , d.id_currency + , NULL id_fee_type + , c1.id_accounting_scope_code + FROM cfe.ledger_branch c + INNER JOIN cfe.accounting_scope c1 + ON c1.id_accounting_scope = c.id_accounting_scope + AND c1.id_status = 'C' + , common.ledger_currency d + MINUS + SELECT DISTINCT + c.code + , d.id_currency + , NULL id_fee_type + , c.id_accounting_scope_code + FROM cfe.ledger_account c + INNER JOIN common.ledger_currency d + ON c.id_currency = d.id_currency ) + UNION + SELECT * + FROM ( SELECT DISTINCT + c.code code + , d.id_currency + , e.id_fee_type + , c1.id_accounting_scope_code + FROM cfe.ledger_branch c + INNER JOIN cfe.accounting_scope c1 + ON c1.id_accounting_scope = c.id_accounting_scope + AND c1.id_status = 'C' + , common.ledger_currency d + , cfe.fee_type e + MINUS + SELECT DISTINCT + c.code + , d.id_currency + , e.id_fee_type + , c.id_accounting_scope_code + FROM cfe.ledger_account c + INNER JOIN common.ledger_currency d + ON c.id_currency = d.id_currency + INNER JOIN cfe.fee_type e + ON c.id_fee_type = e.id_fee_type ) ) a +; + +-- INSERT INTO LEDGER BRANCH BALANCE +WITH scope AS ( + SELECT * + FROM cfe.accounting_scope + WHERE id_status = 'C' + AND id_accounting_scope_code = :SCOPE ) + , ex AS ( + SELECT * + FROM cfe.execution + WHERE id_status = 'R' + AND value_date = ( SELECT Max( value_date ) + FROM cfe.execution + WHERE id_status = 'R' + AND ( :VALUE_DATE IS NULL + OR value_date <= :VALUE_DATE ) ) ) + , fxr AS ( + SELECT id_currency_from + , fxrate + FROM common.fxrate_hst f + INNER JOIN ex + ON f.value_date <= ex.value_date + WHERE f.value_date = ( SELECT Max( value_date ) + FROM common.fxrate_hst + WHERE id_currency_from = f.id_currency_from + AND id_currency_into = f.id_currency_into + AND value_date <= ex.value_date ) + AND id_currency_into = :BOOK_CURRENCY + UNION ALL + SELECT :BOOK_CURRENCY + , 1 + FROM dual ) +SELECT /*+ PARALLEL */ + scope.id_accounting_scope + , ex.value_date + , ex.posting_date + , a.gl_level + , a.code + , b.description + , c.balance_bc +FROM ex + , scope + INNER JOIN cfe.ledger_branch_branch a + ON a.id_accounting_scope = scope.id_accounting_scope + AND a.code = a.code_inferior + INNER JOIN cfe.ledger_branch b + ON b.id_accounting_scope = scope.id_accounting_scope + AND b.code = a.code + INNER JOIN ( SELECT b.code + , Round( d.amount * fxr.fxrate, 2 ) balance_bc + FROM scope + INNER JOIN cfe.ledger_branch_branch b + ON b.id_accounting_scope = scope.id_accounting_scope + INNER JOIN cfe.ledger_account c + ON b.code_inferior = c.code + AND c.id_accounting_scope_code = scope.id_accounting_scope_code + INNER JOIN ( SELECT id_account + , Sum( amount ) balance + FROM ( SELECT id_account_credit id_account + , amount + FROM cfe.ledger_account_entry + INNER JOIN ex + ON ledger_account_entry.posting_date <= ex.posting_date + UNION ALL + SELECT id_account_debit + , - amount + FROM cfe.ledger_account_entry + INNER JOIN ex + ON ledger_account_entry.posting_date <= ex.posting_date ) + GROUP BY id_account ) d + ON c.id_account = d.id_account + INNER JOIN fxr + ON c.id_currency = fxr.id_currency_from + GROUP BY b.code ) c + ON c.code = a.code +; + +-- INSERT INTO LEDGER BRANCH BALANCE NEW +WITH scope AS ( + SELECT * + FROM cfe.accounting_scope + WHERE id_status = 'C' + AND id_accounting_scope_code = :SCOPE ) + , ex AS ( + SELECT * + FROM cfe.execution + WHERE id_status = 'R' + AND value_date = ( SELECT Max( value_date ) + FROM cfe.execution + WHERE id_status = 'R' + AND ( :VALUE_DATE IS NULL + OR value_date <= :VALUE_DATE ) ) ) + , fxr AS ( + SELECT id_currency_from + , fxrate + FROM common.fxrate_hst f + INNER JOIN ex + ON f.value_date <= ex.value_date + WHERE f.value_date = ( SELECT Max( value_date ) + FROM common.fxrate_hst + WHERE id_currency_from = f.id_currency_from + AND id_currency_into = f.id_currency_into + AND value_date <= ex.value_date ) + AND id_currency_into = :BOOK_CURRENCY + UNION ALL + SELECT :BOOK_CURRENCY + , 1 + FROM dual ) +SELECT /*+ PARALLEL */ + scope.id_accounting_scope + , ex.value_date + , ex.posting_date + , a.gl_level + , a.code + , b.description + , c.balance_bc +FROM ex + , scope + INNER JOIN cfe.ledger_branch_branch a + ON a.id_accounting_scope = scope.id_accounting_scope + AND a.code = a.code_inferior + INNER JOIN cfe.ledger_branch b + ON b.id_accounting_scope = scope.id_accounting_scope + AND b.code = a.code + INNER JOIN ( SELECT b.code + , Round( d.amount * fxr.fxrate, 2 ) + FROM scope + INNER JOIN cfe.ledger_branch_branch b + ON b.id_accounting_scope = scope.id_accounting_scope + INNER JOIN cfe.ledger_account c + ON b.code_inferior = c.code + AND c.id_accounting_scope_code = scope.id_accounting_scope_code + INNER JOIN ( SELECT id_account + , Sum( amount ) + FROM ( SELECT id_account_credit + , amount + FROM cfe.ledger_account_entry + INNER JOIN ex + ON ledger_account_entry.posting_date <= ex.posting_date + UNION ALL + SELECT id_account_debit + , - amount + FROM cfe.ledger_account_entry + INNER JOIN ex + ON ledger_account_entry.posting_date <= ex.posting_date ) ) d + ON c.id_account = d.id_account + INNER JOIN fxr + ON c.id_currency = fxr.id_currency_from ) c + ON c.code = a.code +; + +-- APPEND COLLATERAL REF +SELECT /*+ PARALLEL */ + cfe.id_collateral_ref.nextval + , id_collateral +FROM ( SELECT DISTINCT + a.id_collateral + FROM cfe.collateral a + LEFT JOIN cfe.collateral_ref b + ON a.id_collateral = b.id_collateral + WHERE b.id_collateral_ref IS NULL ) +; + +-- APPEND COUNTER PARTY REF +SELECT /*+ PARALLEL */ + cfe.id_counter_party_ref.nextval + , id_counter_party +FROM ( SELECT DISTINCT + a.id_counter_party + FROM cfe.collateral a + LEFT JOIN cfe.counter_party_ref b + ON a.id_counter_party = b.id_counter_party + WHERE a.id_counter_party IS NOT NULL + AND b.id_counter_party_ref IS NULL ) +; + +-- APPEND COLLATERAL HST +SELECT /*+ PARALLEL */ + b.id_collateral_ref + , c.id_counter_party_ref + , coalesce valid_date + , a.description + , d.id_collateral_type_ref + , a.fair_value + , a.forced_sale_value + , a.id_currency + , a.appraisal_date +FROM cfe.collateral a + INNER JOIN cfe.collateral_ref b + ON a.id_collateral = b.id_collateral + LEFT JOIN cfe.counter_party_ref c + ON a.id_counter_party = c.id_counter_party + INNER JOIN ( SELECT * + FROM common.collateral_type d1 + WHERE id_status IN ( 'C', 'H' ) + AND id_collateral_type_ref = ( SELECT Max( id_collateral_type_ref ) + FROM common.collateral_type + WHERE id_status IN ( 'C', 'H' ) + AND id_collateral_type = d1.id_collateral_type ) ) d + ON a.id_collateral_type = d.id_collateral_type +; + +-- SELECT WITH COMPLEX ORDER +WITH ex AS ( + SELECT value_date + , posting_date + FROM cfe.execution x + WHERE id_status IN ( 'R', 'H' ) + AND value_date = ( SELECT Max( value_date ) + FROM cfe.execution + WHERE id_status IN ( 'R', 'H' ) ) + AND posting_date = ( SELECT Max( posting_date ) + FROM cfe.execution + WHERE id_status IN ( 'R', 'H' ) + AND value_date = x.value_date ) ) + , fxr AS ( + SELECT id_currency_from + , fxrate + FROM common.fxrate_hst f + WHERE f.value_date <= ( SELECT value_date + FROM ex ) + AND f.value_date = ( SELECT Max( value_date ) + FROM common.fxrate_hst + WHERE id_currency_from = f.id_currency_from + AND id_currency_into = f.id_currency_into ) + AND id_currency_into = 'NGN' + UNION ALL + SELECT 'NGN' + , 1 + FROM dual ) + , scope AS ( + SELECT * + FROM cfe.accounting_scope + WHERE id_status = 'C' + AND id_accounting_scope_code = 'INTERN' ) + , scope1 AS ( + SELECT * + FROM cfe.accounting_scope + WHERE id_status = 'C' + AND id_accounting_scope_code = 'NGAAP' ) + , c AS ( + SELECT b.code + , Round( d.amount * fxr.fxrate, 2 ) balance_bc + FROM scope + INNER JOIN cfe.ledger_branch_branch b + ON b.id_accounting_scope = scope.id_accounting_scope + INNER JOIN cfe.ledger_account c + ON b.code_inferior = c.code + AND c.id_accounting_scope_code = scope.id_accounting_scope_code + INNER JOIN ( SELECT id_account_credit id_account + , amount + FROM cfe.ledger_account_entry + INNER JOIN ex + ON ledger_account_entry.posting_date <= ex.posting_date + UNION ALL + SELECT id_account_debit + , - amount + FROM cfe.ledger_account_entry + INNER JOIN ex + ON ledger_account_entry.posting_date <= ex.posting_date ) d + ON c.id_account = d.id_account + INNER JOIN fxr + ON c.id_currency = fxr.id_currency_from + GROUP BY b.code ) + , c1 AS ( + SELECT b.code + , Round( d.amount * fxr.fxrate, 2 ) balance_bc + FROM scope1 + INNER JOIN cfe.ledger_branch_branch b + ON b.id_accounting_scope = scope1.id_accounting_scope + INNER JOIN cfe.ledger_account c + ON b.code_inferior = c.code + AND c.id_accounting_scope_code = scope1.id_accounting_scope_code + INNER JOIN ( SELECT id_account_credit id_account + , amount + FROM cfe.ledger_account_entry + INNER JOIN ex + ON ledger_account_entry.posting_date <= ex.posting_date + UNION ALL + SELECT id_account_debit + , - amount + FROM cfe.ledger_account_entry + INNER JOIN ex + ON ledger_account_entry.posting_date <= ex.posting_date ) d + ON c.id_account = d.id_account + INNER JOIN fxr + ON c.id_currency = fxr.id_currency_from + GROUP BY b.code ) +SELECT /*+ PARALLEL */ + a.code code + , Lpad( ' ', 4 * ( a.gl_level - 1 ), ' ' ) + || a.code format_code + , b.description + , c.balance_bc + , c1.balance_bc +FROM scope + INNER JOIN cfe.ledger_branch_branch a + ON a.code = a.code_inferior + AND a.id_accounting_scope = scope.id_accounting_scope + INNER JOIN cfe.ledger_branch b + ON a.id_accounting_scope = b.id_accounting_scope + AND a.code = b.code + LEFT JOIN c + ON a.code = c.code + LEFT OUTER JOIN c1 + ON a.code = c1.code +WHERE gl_level <= 3 + AND NOT ( c.balance_bc IS NULL + AND c1.balance_bc IS NULL ) +ORDER BY ( SELECT code + FROM cfe.ledger_branch_branch + WHERE id_accounting_scope = a.id_accounting_scope + AND code_inferior = a.code + AND gl_level = 1 ) NULLS FIRST + , ( SELECT code + FROM cfe.ledger_branch_branch + WHERE id_accounting_scope = a.id_accounting_scope + AND code_inferior = a.code + AND gl_level = 2 ) ASC NULLS FIRST + , ( SELECT code + FROM cfe.ledger_branch_branch + WHERE id_accounting_scope = a.id_accounting_scope + AND code_inferior = a.code + AND gl_level = 3 ) DESC NULLS FIRST + , ( SELECT code + FROM cfe.ledger_branch_branch + WHERE id_accounting_scope = a.id_accounting_scope + AND code_inferior = a.code + AND gl_level = 4 ) DESC + , ( SELECT code + FROM cfe.ledger_branch_branch + WHERE id_accounting_scope = a.id_accounting_scope + AND code_inferior = a.code + AND gl_level = 5 ) ASC + , ( SELECT code + FROM cfe.ledger_branch_branch + WHERE id_accounting_scope = a.id_accounting_scope + AND code_inferior = a.code + AND gl_level = 6 ) NULLS FIRST + , ( SELECT code + FROM cfe.ledger_branch_branch + WHERE id_accounting_scope = a.id_accounting_scope + AND code_inferior = a.code + AND gl_level = 7 ) NULLS FIRST + , code +; + +-- ALL COLUMNS FROM TABLE +SELECT a.* +FROM cfe.instrument a +; + +-- NESTED WITH +WITH teststmt1 AS ( + WITH teststmt2 AS ( + SELECT * + FROM my_table2 ) + SELECT col1 + , col2 + FROM teststmt2 ) +SELECT * +FROM teststmt +; + +( + SELECT __time + FROM traffic_protocol_stat_log + LIMIT 1 ) +UNION ALL ( + SELECT __time + FROM traffic_protocol_stat_log + ORDER BY __time + LIMIT 1 ) +; + +-- GROUP BY +SELECT a + , b + , c + , Sum( d ) +FROM t +GROUP BY a + , b + , c +HAVING Sum( d ) > 0 + AND Count( * ) > 1 +; diff --git a/parser/src/test/resources/com/facebook/coresql/parser/standardIT/StandardTruncateTest.sql b/parser/src/test/resources/com/facebook/coresql/parser/standardIT/StandardTruncateTest.sql new file mode 100644 index 0000000..f82a7aa --- /dev/null +++ b/parser/src/test/resources/com/facebook/coresql/parser/standardIT/StandardTruncateTest.sql @@ -0,0 +1,21 @@ +-- +-- Licensed 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. +-- + +-- TRUNCATE 1 +TRUNCATE TABLE cfe.execution +; + +-- TRUNCATE 2 +TRUNCATE TABLE cfe.execution CASCADE +; \ No newline at end of file diff --git a/parser/src/test/resources/com/facebook/coresql/parser/standardIT/StandardUpdateTest.sql b/parser/src/test/resources/com/facebook/coresql/parser/standardIT/StandardUpdateTest.sql new file mode 100644 index 0000000..c9c65d2 --- /dev/null +++ b/parser/src/test/resources/com/facebook/coresql/parser/standardIT/StandardUpdateTest.sql @@ -0,0 +1,130 @@ +-- +-- Licensed 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. +-- + +-- UPDATE COUNTERPARTY +UPDATE risk.counterparty +SET id_counterparty = :id_counterparty + , label = :label + , description = :description + , id_counterparty_group_type = :id_counterparty_group_type + , id_counterparty_type = :id_counterparty_type + , id_counterparty_sub_type = :id_counterparty_sub_type + , id_country_group = :id_country_group + , id_country = :id_country + , id_country_state = :id_country_state + , id_district = :id_district + , id_city = :id_city + , id_industrial_sector = :id_industrial_sector + , id_industrial_sub_sector = :id_industrial_sub_sector + , block_auto_update_flag = :block_auto_update_flag + , id_user_editor = :id_user_editor + , id_organization_unit = :id_organization_unit + , id_status = :id_status + , update_timestamp = current_timestamp +WHERE id_counterparty_ref = :id_counterparty_ref +; + +-- UPDATE COLLATERAL_TYPE +UPDATE common.collateral_type +SET hair_cut = least +WHERE id_collateral_type_ref IN ( SELECT id_collateral_type_ref + FROM common.collateral_type a + WHERE id_status IN ( 'C', 'H', 'C' + , 'H', 'C', 'H' + , 'C', 'H' ) + AND id_collateral_type_ref = ( SELECT Max( id_collateral_type_ref ) + FROM common.collateral_type + WHERE id_status IN ( 'C', 'H' ) + AND id_collateral_type = a.id_collateral_type ) ) +; + +-- UPDATE COUNTERPARTY_INSTRUMENT +UPDATE risk.counterparty_instrument a1 +SET ( priority + , type + , description + , limit_amout + , id_currency + , end_date ) = ( SELECT a.priority + , a.type + , a.description + , a.limit_amout + , a.id_currency + , a.end_date + FROM risk.imp_counterparty_instrument a + INNER JOIN risk.counterparty b + ON a.id_counterparty = b.id_counterparty + AND b.id_status = 'C' + INNER JOIN risk.instrument c + ON a.id_instrument_beneficiary = c.id_instrument + AND c.id_status = 'C' + INNER JOIN risk.counterparty_instrument e + ON b.id_counterparty_ref = e.id_counterparty_ref + AND e.id_instrument_beneficiary = a.id_instrument_beneficiary + AND e.id_instrument_guarantee = a.id_instrument_guarantee + WHERE e.id_counterparty_ref = a1.id_counterparty_ref + AND e.id_instrument_beneficiary = a1.id_instrument_beneficiary + AND e.id_instrument_guarantee = a1.id_instrument_guarantee ) +WHERE EXISTS ( SELECT a.priority + , a.type + , a.description + , a.limit_amout + , a.id_currency + , a.end_date + FROM risk.imp_counterparty_instrument a + INNER JOIN risk.counterparty b + ON a.id_counterparty = b.id_counterparty + AND b.id_status = 'C' + INNER JOIN risk.instrument c + ON a.id_instrument_beneficiary = c.id_instrument + AND c.id_status = 'C' + INNER JOIN risk.counterparty_instrument e + ON b.id_counterparty_ref = e.id_counterparty_ref + AND e.id_instrument_beneficiary = a.id_instrument_beneficiary + AND e.id_instrument_guarantee = a.id_instrument_guarantee + WHERE e.id_counterparty_ref = a1.id_counterparty_ref + AND e.id_instrument_beneficiary = a1.id_instrument_beneficiary + AND e.id_instrument_guarantee = a1.id_instrument_guarantee ) +; + +-- UPDATE SETS ISSUE 1316 +UPDATE prpjpaymentbill b +SET ( b.packagecode + , b.packageremark + , b.agentcode ) = ( SELECT p.payrefreason + , p.classcode + , p.riskcode + FROM prpjcommbill p + WHERE p.policertiid = 'SDDH200937010330006366' ) /* this is supposed to be UpdateSet 1 */ + , b.payrefnotype = '05' /* this is supposed to be UpdateSet 2 */ + , b.packageunit = '4101170402' /* this is supposed to be UpdateSet 3 */ +WHERE b.payrefno = 'B370202091026000005' +; + +-- UPDATE START JOINS +UPDATE sc_borrower b + INNER JOIN sc_credit_apply a + ON a.borrower_id = b.id +SET b.name = '0.7505105896846266' + , a.credit_line = a.credit_line + 1 +WHERE b.id = 3 +; + +-- UPDATE JOINS +UPDATE table1 +SET columna = 5 +FROM table1 + LEFT JOIN table2 + ON col1 = col2 +; diff --git a/parser/src/test/resources/com/facebook/coresql/parser/standardIT/StandardValueStatementTest.sql b/parser/src/test/resources/com/facebook/coresql/parser/standardIT/StandardValueStatementTest.sql new file mode 100644 index 0000000..0f54004 --- /dev/null +++ b/parser/src/test/resources/com/facebook/coresql/parser/standardIT/StandardValueStatementTest.sql @@ -0,0 +1,72 @@ +-- +-- Licensed 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. +-- + +-- PREPARE TABLE +CREATE TABLE sample_data ( + "DAY" INT + , "VALUE" INT +) +; + +-- SIMPLE EXPRESSION LIST WITH BRACKETS +WITH sample_data ( "DAY" ) + AS ( VALUES ( 0, 1, 2 ) ) +SELECT "DAY" +FROM sample_data +; + +-- MULTIPLE EXPRESSION LIST WITH BRACKETS +WITH sample_data ( "DAY", "VALUE" ) + AS ( VALUES ( ( 0, 13 ), ( 1, 12 ), ( 2, 15 ) + , ( 3, 4 ), ( 4, 8 ), ( 5, 16 ) ) ) +SELECT "DAY" + , "VALUE" +FROM sample_data +; + +-- SIMPLE EXPRESSION LIST WITHOUT BRACKETS +WITH sample_data ( "DAY" ) + AS ( VALUES 0, 1, 2 ) +SELECT "DAY" +FROM sample_data +; + +-- MULTIPLE EXPRESSION LIST WITHOUT BRACKETS +WITH sample_data ( "DAY", "VALUE" ) + AS ( VALUES ( 0, 13 ), ( 1, 12 ), ( 2, 15 ) + , ( 3, 4 ), ( 4, 8 ), ( 5, 16 ) ) +SELECT "DAY" + , "VALUE" +FROM sample_data +; + +-- VALUE LIST UNION SELECT +WITH split ( word + , str + , hascomma ) AS ( + VALUES ( '', 'Auto,A,1234444', 1 ) + UNION ALL + SELECT Substr( str, 0, CASE + WHEN Instr( str, ',' ) + THEN Instr( str, ',' ) + ELSE Length( str ) + 1 + END ) + , Ltrim( Substr( str, Instr( str, ',' ) ), ',' ) + , Instr( str, ',' ) + FROM split + WHERE hascomma ) +SELECT Trim( word ) +FROM split +WHERE word != '' +; \ No newline at end of file diff --git a/parser/src/test/resources/com/manticore/jsqlformatter/ignore/BracketQuotationTest.sql b/parser/src/test/resources/com/manticore/jsqlformatter/ignore/BracketQuotationTest.sql new file mode 100644 index 0000000..5027d37 --- /dev/null +++ b/parser/src/test/resources/com/manticore/jsqlformatter/ignore/BracketQuotationTest.sql @@ -0,0 +1,57 @@ +-- +-- Licensed 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. +-- + +-- BRACKETS 1 +SELECT columnname +FROM [server-name\\server-instance]..schemaname.tablename +; + +-- BRACKETS 2 +SELECT columnname +FROM [server-name\\server-instance]..[schemaName].[table Name] +; + +-- BRACKETS 3 +SELECT columnname +FROM [server-name\\server-instance]..[schemaName].[table-Name] +; + +-- BRACKETS 4 +SELECT columnname +FROM [schemaName].[tableName] +; + +-- BRACKETS 5 +SELECT columnname +FROM schemaname.[tableName] +; + +-- BRACKETS 6 +SELECT columnname +FROM [schemaName].tablename +; + +-- READ INSTRUMENT TRANSACTIONS WITH COLLATERAL ONLY +SELECT a.* +FROM [cfe].[TRANSACTION] a + INNER JOIN cfe.instrument b + ON a.id_instrument = b.id_instrument +WHERE a.id_instrument >= ? + AND a.id_instrument <= ? + AND EXISTS ( SELECT 1 + FROM cfe.instrument_ref b + INNER JOIN cfe.instrument_collateral_hst c + ON b.id_instrument_ref = c.id_instrument_ref + WHERE b.id_instrument = a.id_instrument ) +; diff --git a/parser/src/test/resources/com/manticore/jsqlformatter/ignore/H2OrderedAggregateTest.sql b/parser/src/test/resources/com/manticore/jsqlformatter/ignore/H2OrderedAggregateTest.sql new file mode 100644 index 0000000..9ef7f4e --- /dev/null +++ b/parser/src/test/resources/com/manticore/jsqlformatter/ignore/H2OrderedAggregateTest.sql @@ -0,0 +1,45 @@ +-- +-- Licensed 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. +-- + +-- LISTAGG 1 +SELECT LISTAGG(NAME, ', ') WITHIN GROUP (ORDER BY ID) +; + + +-- LISTAGG 2 +SELECT LISTAGG(COALESCE(NAME, 'null'), ', ') WITHIN GROUP (ORDER BY ID) +; + + +-- LISTAGG 3 +/* Unsupported: SELECT LISTAGG(ID, ', ') WITHIN GROUP (ORDER BY ID) OVER (ORDER BY ID); */ +SELECT 1 +FROM dual +; + +-- ARRAY_AGG 1 +SELECT Array_Agg( name ) +; + + +-- ARRAY_AGG 2 +SELECT ARRAY_AGG(NAME ORDER BY ID) FILTER (WHERE NAME IS NOT NULL) +; + + +-- ARRAY_AGG 3 +/* SELECT ARRAY_AGG(ID ORDER BY ID) OVER (ORDER BY ID); */ +SELECT 1 +FROM dual +; \ No newline at end of file diff --git a/parser/src/test/resources/com/manticore/jsqlformatter/ignore/MeanChallenges.sql b/parser/src/test/resources/com/manticore/jsqlformatter/ignore/MeanChallenges.sql new file mode 100644 index 0000000..9a3b369 --- /dev/null +++ b/parser/src/test/resources/com/manticore/jsqlformatter/ignore/MeanChallenges.sql @@ -0,0 +1,74 @@ +-- +-- Licensed 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. +-- + + +-- SELECT Date Ranges of available data +WITH p + AS (SELECT DISTINCT value_date + FROM risk.migration_data_v + WHERE (:1 IS NULL OR :2 ='' OR id_portfolio = Decode (:3 , '001', 'IFRS1', + '002', 'IFRS2', + '003', 'IFRS3', + '004', 'IFRS4', + '005', 'IFRS5', + '006', 'IFRS6', + :4 )) + AND value_date >= :5 + AND value_date <= :6 ), + ri + AS (SELECT a.id_risk_indicator + , Greatest((SELECT Min(value_date) + FROM p + WHERE value_date >= :7 ), (SELECT Max(value_date) + FROM risk.risk_indicator_value + WHERE id_risk_indicator_ref = a.id_risk_indicator_ref + AND value_date <= :8 )) min_ri_date + , Greatest((SELECT Min(value_date) + FROM p + WHERE value_date >= :9 ), (SELECT Min(value_date) + FROM risk.risk_indicator_value + WHERE id_risk_indicator_ref = a.id_risk_indicator_ref + AND value_date >= :10 )) min_ri_date_1 + , Least((SELECT Max(value_date) + FROM p + WHERE value_date <= :11 ), (SELECT Min(value_date) + FROM risk.risk_indicator_value + WHERE id_risk_indicator_ref = a.id_risk_indicator_ref + AND value_date >= :12 )) max_ri_date + , Least((SELECT Max(value_date) + FROM p + WHERE value_date <= :13 ), (SELECT Max(value_date) + FROM risk.risk_indicator_value + WHERE id_risk_indicator_ref = a.id_risk_indicator_ref + AND value_date <= :14 )) max_ri_date_1 + FROM risk.risk_indicator a + WHERE a.id_status = 'C' + AND a.id_risk_indicator_ref = (SELECT Max(id_risk_indicator_ref) + FROM risk.risk_indicator + WHERE id_status = 'C' + AND id_risk_indicator = a.id_risk_indicator) + AND ( ( :15 IS NULL + OR id_risk_indicator = :16 ) + )) +SELECT /*+parallel*/ ri.id_risk_indicator + , Min(p.value_date) "Min. Observation Date" + , Max(p.value_date) "Max. Observation Date" +FROM ri + , p +WHERE p.value_date >= Nvl(ri.min_ri_date, ri.min_ri_date_1) + AND p.value_date <= Nvl(ri.max_ri_date, ri.max_ri_date_1) +GROUP BY ri.id_risk_indicator +order by 1 +; + diff --git a/parser/src/test/resources/com/manticore/jsqlformatter/ignore/MsSqlServerTest.sql b/parser/src/test/resources/com/manticore/jsqlformatter/ignore/MsSqlServerTest.sql new file mode 100644 index 0000000..088eb89 --- /dev/null +++ b/parser/src/test/resources/com/manticore/jsqlformatter/ignore/MsSqlServerTest.sql @@ -0,0 +1,44 @@ +-- +-- Licensed 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. +-- + +-- DELETE INSTRUMENT ATTRIBUTE HST AFTER VALUE_DATE_P +DELETE a FROM cfe.instrument_attribute_hst2 a + INNER JOIN ( SELECT value_date + , posting_date + FROM cfe.execution + WHERE posting_date > ( SELECT Max( posting_date ) + FROM cfe.execution + WHERE id_status = 'R' + AND value_date <= :value_date_p ) + OR ( SELECT Max( posting_date ) + FROM cfe.execution + WHERE id_status = 'R' + AND value_date <= :value_date_p ) IS NULL ) b + ON a.value_date = b.value_date + AND b.posting_date = b.posting_date +; + +-- READ INSTRUMENT TRANSACTIONS WITH COLLATERAL ONLY1 +SELECT a.* +FROM [cfe].[TRANSACTION] a + INNER JOIN cfe.instrument b + ON a.id_instrument = b.id_instrument +WHERE a.id_instrument >= ? + AND a.id_instrument <= ? + AND EXISTS ( SELECT 1 + FROM cfe.instrument_ref b + INNER JOIN cfe.instrument_collateral_hst c + ON b.id_instrument_ref = c.id_instrument_ref + WHERE b.id_instrument = a.id_instrument ) +; diff --git a/parser/src/test/resources/com/manticore/jsqlformatter/ignore/MySQLTest.sql b/parser/src/test/resources/com/manticore/jsqlformatter/ignore/MySQLTest.sql new file mode 100644 index 0000000..147e25b --- /dev/null +++ b/parser/src/test/resources/com/manticore/jsqlformatter/ignore/MySQLTest.sql @@ -0,0 +1,45 @@ +-- +-- Licensed 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. +-- + +-- GROUP_CONCAT +SELECT Group_Concat( DISTINCT Trim( Concat( m.title, ' ', m.firstname + , ' ', m.lastname ) ) + ORDER BY p2m.manufacturer_type_id ASC + SEPARATOR ' ' ) AS manufacturer_name +FROM product_to_manufacturer p2m + LEFT JOIN manufacturer m + ON m.manufacturer_id = p2m.manufacturer_id +WHERE p2m.product_id = 574768 +; + +-- WITHOUT A FROM ITEM +-- @JSQLFormatter(indentWidth=2, keywordSpelling=LOWER, functionSpelling=CAMEL, objectSpelling=LOWER, separation=BEFORE) +select case + when ( select ccp.campaign_id + from campaign_constraint_product ccp + inner join campaign_free_shipping_products_visibility cfspv + on cfspv.campaign_id = ccp.campaign_id + where ccp.product_id = 530729 + and cfspv.status = 1 + union + select cap.campaign_id + from campaign_action_product cap + inner join campaign_free_shipping_products_visibility cfspv + on cfspv.campaign_id = cap.campaign_id + where cap.product_id = 530729 + and cfspv.status = 1 ) is not null + then 1 + else 0 + end as is_free_shipping +; \ No newline at end of file diff --git a/parser/src/test/resources/com/manticore/jsqlformatter/simple/SQLFileTest_1.sql b/parser/src/test/resources/com/manticore/jsqlformatter/simple/SQLFileTest_1.sql new file mode 100644 index 0000000..8bd2b21 --- /dev/null +++ b/parser/src/test/resources/com/manticore/jsqlformatter/simple/SQLFileTest_1.sql @@ -0,0 +1,29 @@ +-- +-- Licensed 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. +-- + + +SELECT * +FROM schedule_info info +WHERE ( info.employee_id, info.schedule_date ) IN ( ( 1, '2019-10-01' ), ( 1, '2019-10-02' ) ) +; + + +SELECT * +FROM table_a +WHERE other_id IN ( ( SELECT id + FROM table_b + WHERE name LIKE '%aa%' ), ( SELECT id + FROM table_b + WHERE name LIKE '%bb%' ) ) +; \ No newline at end of file diff --git a/parser/src/test/resources/com/manticore/jsqlformatter/simple/SQLFileTest_short.sql b/parser/src/test/resources/com/manticore/jsqlformatter/simple/SQLFileTest_short.sql new file mode 100644 index 0000000..aeb36d9 --- /dev/null +++ b/parser/src/test/resources/com/manticore/jsqlformatter/simple/SQLFileTest_short.sql @@ -0,0 +1,17 @@ +-- +-- Licensed 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. +-- + +DELETE FROM cfe.ledger_branch_balance +WHERE a=b and c=d +; diff --git a/parser/src/test/resources/com/manticore/jsqlformatter/simpleIT/EmptyStatementTest.sql b/parser/src/test/resources/com/manticore/jsqlformatter/simpleIT/EmptyStatementTest.sql new file mode 100644 index 0000000..d702ba8 --- /dev/null +++ b/parser/src/test/resources/com/manticore/jsqlformatter/simpleIT/EmptyStatementTest.sql @@ -0,0 +1,13 @@ +-- +-- Licensed 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. +-- diff --git a/parser/src/test/resources/com/manticore/jsqlformatter/simpleIT/SQLFileTest.sql b/parser/src/test/resources/com/manticore/jsqlformatter/simpleIT/SQLFileTest.sql new file mode 100644 index 0000000..94e3061 --- /dev/null +++ b/parser/src/test/resources/com/manticore/jsqlformatter/simpleIT/SQLFileTest.sql @@ -0,0 +1,96 @@ +-- +-- Licensed 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. +-- + +SELECT osuser + , sl.sql_id + , sl.sql_hash_value + , opname + , target + , elapsed_seconds + , time_remaining +FROM v$session_longops sl + INNER JOIN v$session s + ON sl.sid = s.sid + AND sl.serial# = s.serial# +WHERE time_remaining > 0 +; + +CREATE VIEW sys.running_sql + AS SELECT s.username + , sl.sid + , sq.executions + , sl.last_update_time + , sl.sql_id + , sl.sql_hash_value + , opname + , target + , elapsed_seconds + , time_remaining + , sq.sql_fulltext + FROM v$session_longops sl + INNER JOIN v$sql sq + ON sq.sql_id = sl.sql_id + INNER JOIN v$session s + ON sl.sid = s.sid + AND sl.serial# = s.serial# + WHERE time_remaining > 0 +; + + +SET pagesize 55 +; + + +SET linesize 170 +; + + +/* +something crazy; +something crazy; +something crazy; +something crazy; +*/ + + +-- something crazy; +SELECT Substr( v$session.username, 1, 8 ) username + , v$session.osuser osuser + , Decode( v$session.server + , 'DEDICATED', 'D' + , 'SHARED', 'S' + , 'O' ) server + , v$sqlarea.disk_reads disk_reads + , v$sqlarea.buffer_gets buffer_gets + , Substr( v$session.lockwait, 1, 10 ) lockwait + , v$session.process pid + , v$session_wait.event event + , v$sqlarea.sql_text sql +FROM v$session_wait + , v$sqlarea + , v$session +WHERE v$session.sql_address = v$sqlarea.address + AND v$session.sql_hash_value = v$sqlarea.hash_value + AND v$session.sid = v$session_wait.sid + AND v$session.status = 'ACTIVE' + AND v$session_wait.event != 'client message' +ORDER BY v$session.lockwait ASC + , v$session.username +; + + +SELECT 'exec DBMS_SHARED_POOL.PURGE (''' || address || ',' || hash_value || ''', ''C'');' +FROM v$sqlarea +WHERE sql_id LIKE '9z1ufprvt2pk2' +; diff --git a/parser/src/test/resources/com/manticore/jsqlformatter/simpleIT/SQLFileTest_1.sql b/parser/src/test/resources/com/manticore/jsqlformatter/simpleIT/SQLFileTest_1.sql new file mode 100644 index 0000000..7e97c32 --- /dev/null +++ b/parser/src/test/resources/com/manticore/jsqlformatter/simpleIT/SQLFileTest_1.sql @@ -0,0 +1,419 @@ +-- +-- Licensed 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. +-- + +-- GET OBSERVATION PERIOD FOR ID_PORTFOLIO AND ID_RISK_INDICATOR +WITH p AS ( + SELECT DISTINCT + value_date + FROM risk.migration_data_v + WHERE ( :ID_PORTFOLIO IS NULL + OR :ID_PORTFOLIO = '' + OR id_portfolio = Decode( :ID_PORTFOLIO + , '001', 'IFRS1' + , '002', 'IFRS2' + , '003', 'IFRS3' + , '004', 'IFRS4' + , '005', 'IFRS5' + , '006', 'IFRS6' + , :ID_PORTFOLIO ) ) + AND value_date >= :FROM + AND value_date <= :TO ) + , ri AS ( + SELECT a.id_risk_indicator + , Greatest( ( SELECT Min( value_date ) + FROM p + WHERE value_date >= :FROM ), ( SELECT Max( value_date ) + FROM risk.risk_indicator_value + WHERE id_risk_indicator_ref = a.id_risk_indicator_ref + AND value_date <= :FROM ) ) min_ri_date + , Greatest( ( SELECT Min( value_date ) + FROM p + WHERE value_date >= :FROM ), ( SELECT Min( value_date ) + FROM risk.risk_indicator_value + WHERE id_risk_indicator_ref = a.id_risk_indicator_ref + AND value_date >= :FROM ) ) min_ri_date_1 + , Least( ( SELECT Max( value_date ) + FROM p + WHERE value_date <= :TO ), ( SELECT Min( value_date ) + FROM risk.risk_indicator_value + WHERE id_risk_indicator_ref = a.id_risk_indicator_ref + AND value_date >= :TO ) ) max_ri_date + , Least( ( SELECT Max( value_date ) + FROM p + WHERE value_date <= :TO ), ( SELECT Max( value_date ) + FROM risk.risk_indicator_value + WHERE id_risk_indicator_ref = a.id_risk_indicator_ref + AND value_date <= :TO ) ) max_ri_date_1 + FROM risk.risk_indicator a + WHERE a.id_status = 'C' + AND a.id_risk_indicator_ref = ( SELECT Max( id_risk_indicator_ref ) + FROM risk.risk_indicator + WHERE id_status = 'C' + AND id_risk_indicator = a.id_risk_indicator ) + AND ( ( :id_risk_indicator IS NULL + OR id_risk_indicator = :id_risk_indicator ) ) ) +SELECT /*+ PARALLEL */ + ri.id_risk_indicator + , Min( p.value_date ) "Min. Observation Date" + , Max( p.value_date ) "Max. Observation Date" +FROM ri + , p +WHERE p.value_date >= Nvl( ri.min_ri_date, ri.min_ri_date_1 ) + AND p.value_date <= Nvl( ri.max_ri_date, ri.max_ri_date_1 ) +GROUP BY ri.id_risk_indicator +ORDER BY 1 +; + +INSERT INTO cfe.ext_eab +SELECT /*+ PARALLEL DRIVING_SITE(A) */ a.* +FROM tbaadm.eod_acct_bal_table@finnacle a +WHERE end_eod_date >= Add_Months( To_Date( :VALUE_DATE, 'mm/dd/yy' ), - 4 ) +; + +WITH ex AS ( + SELECT value_date + , posting_date + FROM cfe.execution x + WHERE id_status = 'R' + AND value_date = ( SELECT Max( value_date ) + FROM cfe.execution + WHERE id_status = 'R' ) + AND posting_date = ( SELECT Max( posting_date ) + FROM cfe.execution + WHERE id_status = 'R' + AND value_date = x.value_date ) ) + , fxr AS ( + SELECT id_currency_from + , fxrate + FROM common.fxrate_hst f + WHERE f.value_date <= ( SELECT value_date + FROM ex ) + AND f.value_date = ( SELECT Max( value_date ) + FROM common.fxrate_hst + WHERE id_currency_from = f.id_currency_from + AND id_currency_into = f.id_currency_into ) + AND id_currency_into = 'NGN' + UNION ALL + SELECT 'NGN' + , 1 + FROM dual ) + , p AS ( + SELECT t.* + FROM cfe.portfolio_coll_impairment_hst t + INNER JOIN ex + ON Trunc( valid_date ) <= ex.value_date + WHERE valid_date = ( SELECT Max( valid_date ) + FROM cfe.portfolio_coll_impairment_hst + WHERE id_portfolio = t.id_portfolio + AND Trunc( valid_date ) <= ex.value_date ) ) + , coll AS ( + SELECT id_instrument_ref + , 'group_concat(description SEPARATOR CHR(10))' description + FROM ( SELECT Concat( Rpad( c.id_collateral, 20 ), ' ', Rpad( Trim( d.description ), 40 ) + , ' ', Rpad( Substr( Trim( c.description ), 0, 24 ), 24 ), ' ' + , To_Char( a1.amount, '9,999,999,999' ), ' ', a1.id_currency + , ' ', To_Char( d.hair_cut * 100, '9,99' ), '%' ) description + , a1.id_instrument_ref + FROM cfe.instr_coll_recovery_hst a1 + INNER JOIN ex + ON a1.valid_date = ex.value_date + INNER JOIN cfe.collateral_ref b + ON a1.id_collateral_ref = b.id_collateral_ref + INNER JOIN cfe.collateral c + ON b.id_collateral = c.id_collateral + INNER JOIN common.collateral_type d + ON c.id_collateral_type = d.id_collateral_type + AND d.id_status = 'C' + AND d.id_collateral_type_ref = ( SELECT Max( id_collateral_type_ref ) + FROM common.collateral_type + WHERE id_collateral_type = d.id_collateral_type + AND id_status = 'C' ) ) t + GROUP BY id_instrument_ref ) + , cp AS ( + SELECT b.foracid id_instrument + , b.cif_id id_counterparty + , Convert( a.description, varchar ) description + FROM risk.counterparty a + INNER JOIN cfe.ext_gam b + ON a.id_counterparty = b.cif_id + AND a.id_status = 'C' ) +SELECT Coalesce( cp.id_counterparty, g2.attribute_value ) id_counterparty + , Coalesce( Convert( cp1.description, varchar ), cp.description, h2.attribute_value ) description + , b.id_instrument + , a.id_instrument_type + , f2.attribute_value product + , a.start_date + , a.end_date + , k2.attribute_value gl_code + , c.yield + , a.id_currency + , c.amortised_cost_dirty + , c.amortised_cost_dirty_bc + , c.nominal_balance + + c.receivable_principal nominal_balance + , c.nominal_balance_bc + + c.receivable_principal_bc nominal_balance_bc + , c.open_commitment + , c.open_commitment_bc + , coll.description collaterals + , p1.rate_pd pd_1y + , CASE + WHEN c.amortised_cost_dirty_bc < 0 + OR ( c.amortised_cost_dirty_bc = 0 + AND c.open_commitment_bc < 0 ) + THEN Greatest( 1 + Round( Nvl( ( SELECT Sum( a1.amount * fxr.fxrate * Exp( - Nvl( c.yield, 0 ) * d.workout_period / 365 ) ) recovery_amount + FROM cfe.instr_coll_recovery_hst a1 + INNER JOIN ex + ON a1.valid_date = ex.value_date + INNER JOIN fxr + ON a1.id_currency = fxr.id_currency_from + INNER JOIN cfe.collateral_ref b + ON a1.id_collateral_ref = b.id_collateral_ref + INNER JOIN cfe.collateral c + ON b.id_collateral = c.id_collateral + INNER JOIN common.collateral_type d + ON c.id_collateral_type = d.id_collateral_type + AND d.id_status = 'C' + AND d.id_collateral_type_ref = ( SELECT Max( id_collateral_type_ref ) + FROM common.collateral_type + WHERE id_collateral_type = d.id_collateral_type + AND id_status = 'C' ) + WHERE a1.id_instrument_ref = a.id_instrument_ref ), 0 ), 2 ) / ( Nvl( c.amortised_cost_dirty_bc, 0 ) + Nvl( c.open_commitment_bc, 0 ) * Nvl( e.ccf, 0.25 ) ), 0 ) + ELSE 0 + END lgd_1y + , p2.rate_pd pd_2y + , p2.rate_lgd lgd_2y + , p3.rate_pd pd_3y + , p3.rate_lgd lgd_3y + , p10.rate_pd pd_10y + , p10.rate_lgd lgd_10y + , CASE + WHEN e.impairment_stage = 3 + AND d.impairment_is_specific = '0' + THEN 'D' + ELSE Decode( d.impairment_is_specific + , '1', 'S' + , '0', 'C' ) + END impairment_is_specific + , d.impairment + + d.impairment_spec impairment + , d.impairment_bc + + d.impairment_spec_bc impairment_bc + , d.impairment_contingent impairment_contingent + , d.impairment_contingent_bc impairment_contingent_bc + , d.unwinding unwinding + , d.unwinding_bc unwinding_bc + , d.impairment_spec_d + + d.unwinding_d impairment_spec_d + , d.impairment_spec_d_bc + + d.unwinding_d_bc impairment_spec_d_bc + , d.impairment_d + + d.impairment_contingent_d impairment_d + , d.impairment_d_bc + + d.impairment_contingent_d_bc impairment_d_bc + , d.unwinding_d unwinding_d + , d.unwinding_d_bc unwinding_d_bc + , e.id_portfolio + , e.master_rating + , Nvl( e.impairment_stage, 1 ) impairment_stage + , e.overdue_days + , e.risk_classification +FROM ex + INNER JOIN cfe.instrument_hst a + ON ex.value_date = a.value_date + AND ex.posting_date = a.posting_date + INNER JOIN cfe.instrument_ref b + ON a.id_instrument_ref = b.id_instrument_ref + LEFT JOIN coll + ON a.id_instrument_ref = coll.id_instrument_ref + LEFT JOIN cp + ON b.id_instrument = cp.id_instrument + INNER JOIN cfe.instrument_measure_balance c + ON ex.value_date = c.value_date + AND ex.posting_date = c.posting_date + AND b.id_instrument_ref = c.id_instrument_ref + AND c.asset_liability_flag = 'A' + LEFT JOIN cfe.instrument_measure_impairment d + ON ex.value_date = d.value_date + AND ex.posting_date = d.posting_date + AND b.id_instrument_ref = d.id_instrument_ref + AND d.asset_liability_flag = '9' + LEFT JOIN cfe.impairment e + ON b.id_instrument = e.id_instrument + LEFT JOIN ( cfe.instrument_attribute_hst2 f + INNER JOIN cfe.attribute_ref f1 + ON f1.id_attribute_ref = f.id_attribute_ref + AND f1.id_attribute = 'product' + INNER JOIN cfe.attribute_value_ref f2 + ON f2.id_attribute_value_ref = f.id_attribute_value_ref ) + ON f.value_date = ex.value_date + AND f.posting_date = ex.posting_date + AND f.id_instrument_ref = d.id_instrument_ref + LEFT JOIN ( cfe.instrument_attribute_hst2 g + INNER JOIN cfe.attribute_ref g1 + ON g1.id_attribute_ref = g.id_attribute_ref + AND g1.id_attribute = 'cust_id' + INNER JOIN cfe.attribute_value_ref g2 + ON g2.id_attribute_value_ref = g.id_attribute_value_ref ) + ON g.value_date = ex.value_date + AND g.posting_date = ex.posting_date + AND g.id_instrument_ref = a.id_instrument_ref + LEFT JOIN ( cfe.instrument_attribute_hst2 h + INNER JOIN cfe.attribute_ref h1 + ON h1.id_attribute_ref = h.id_attribute_ref + AND h1.id_attribute = 'cust_name' + INNER JOIN cfe.attribute_value_ref h2 + ON h2.id_attribute_value_ref = h.id_attribute_value_ref ) + ON h.value_date = ex.value_date + AND h.posting_date = ex.posting_date + AND h.id_instrument_ref = a.id_instrument_ref + LEFT JOIN ( cfe.instrument_attribute_hst2 k + INNER JOIN cfe.attribute_ref k1 + ON k1.id_attribute_ref = k.id_attribute_ref + AND k1.id_attribute = 'gl_code' + INNER JOIN cfe.attribute_value_ref k2 + ON k2.id_attribute_value_ref = k.id_attribute_value_ref ) + ON k.value_date = ex.value_date + AND k.posting_date = ex.posting_date + AND k.id_instrument_ref = a.id_instrument_ref + LEFT JOIN risk.counterparty cp1 + ON cp1.id_counterparty = Coalesce( cp.id_counterparty, g2.attribute_value ) + AND cp1.id_status = 'C' + LEFT JOIN p p1 + ON e.id_portfolio || '_ifrs9' = p1.id_portfolio + AND ( ( p1.period_scalar = 1 + AND p1.id_period_type = 'Y' ) + OR ( p1.period_scalar = 12 + AND p1.id_period_type = 'M' ) ) + LEFT JOIN p p2 + ON e.id_portfolio || '_ifrs9' = p2.id_portfolio + AND ( ( p2.period_scalar = 2 + AND p2.id_period_type = 'Y' ) + OR ( p2.period_scalar = 24 + AND p2.id_period_type = 'M' ) ) + LEFT JOIN p p3 + ON e.id_portfolio || '_ifrs9' = p3.id_portfolio + AND ( ( p3.period_scalar = 3 + AND p3.id_period_type = 'Y' ) + OR ( p3.period_scalar = 36 + AND p3.id_period_type = 'M' ) ) + LEFT JOIN p p10 + ON e.id_portfolio || '_ifrs9' = p10.id_portfolio + AND ( ( p10.period_scalar = 10 + AND p10.id_period_type = 'Y' ) + OR ( p10.period_scalar = 360 + AND p10.id_period_type = 'M' ) ) +WHERE ( amortised_cost_dirty < 0 + OR ( amortised_cost_dirty = 0 + AND open_commitment <= 0 ) + OR impairment != 0 + OR impairment_d != 0 + OR impairment_spec != 0 + OR impairment_spec_d != 0 + OR impairment_contingent != 0 + OR impairment_contingent_d != 0 ) + AND NOT ( id_instrument_type IN ( 'own_acc', 'sec_hft', 'sec_hft_set' ) + OR ( f2.attribute_value IS NOT NULL + AND f2.attribute_value IN ( 'GOVBONDS', 'TBILL' /*CBN Issues*/ ) ) + OR ( g2.attribute_value IS NOT NULL + AND g2.attribute_value IN ( '271', '7614' ) ) /*CBN*/ ) +; + + +SELECT * +FROM schedule_info info +WHERE ( info.employee_id, info.schedule_date ) IN ( ( 1, '2019-10-01' ), ( 1, '2019-10-02' ) ) +; + + +SELECT * +FROM table_a +WHERE other_id IN ( ( SELECT id + FROM table_b + WHERE name LIKE '%aa%' ), ( SELECT id + FROM table_b + WHERE name LIKE '%bb%' ) ) +; + + +SELECT * +FROM table1 +UNION +SELECT * +FROM table2 +ORDER BY col +LIMIT 4 +OFFSET 5 +; + + +-- ORACLE LONGOPS +SELECT l.inst_id + , l.sid + , l.serial# + , l.sql_id + , l.opname + , l.username + , l.target + , l.sofar + , l.totalwork + , l.start_time + , l.last_update_time + , Round( l.time_remaining / 60, 2 ) "REMAIN MINS" + , Round( l.elapsed_seconds / 60, 2 ) "ELAPSED MINS" + , Round( ( l.time_remaining + l.elapsed_seconds ) / 60, 2 ) "TOTAL MINS" + , Round( l.sofar / l.totalwork * 100, 2 ) "%_COMPLETE" + , l.message + , s.sql_text +FROM gv$session_longops l + LEFT OUTER JOIN v$sql s + ON s.hash_value = l.sql_hash_value + AND s.address = l.sql_address + AND s.child_number = 0 +WHERE l.opname NOT LIKE 'RMAN%' + AND l.opname NOT LIKE '%aggregate%' + AND l.totalwork != 0 + AND l.sofar <> l.totalwork + AND l.time_remaining > 0 +; + + +-- Old Oracle Outer Joins (+) +SELECT * +FROM foo + , bar +WHERE foo.id = bar.id(+) +; + + +SELECT * +FROM foo + , bar +WHERE foo.id(+) = bar.id +; + + +SELECT v.lname + , v.function + , d.name +FROM ( SELECT e.dept_id + , e.lname + , j.function + FROM employee e + , job j + WHERE e.job_id(+) = j.job_id ) v + , department d +WHERE v.dept_id(+) = d.dept_id +; + diff --git a/parser/src/test/resources/com/manticore/jsqlformatter/simpleIT/SQLFileTest_short.sql b/parser/src/test/resources/com/manticore/jsqlformatter/simpleIT/SQLFileTest_short.sql new file mode 100644 index 0000000..87ac206 --- /dev/null +++ b/parser/src/test/resources/com/manticore/jsqlformatter/simpleIT/SQLFileTest_short.sql @@ -0,0 +1,26 @@ +-- +-- Licensed 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. +-- + +DELETE FROM cfe.ledger_branch_balance +WHERE ( value_date, posting_date, something_else + , value_date, posting_date, something_else ) = ( SELECT value_date + , posting_date + , something_else + , value_date + , posting_date + , something_else + FROM cfe.execution + WHERE id_status = 'R' + AND value_date = :VALUE_DATE ) +; diff --git a/parser/src/test/resources/com/manticore/jsqlformatter/standard/StandardDeleteTest.sql b/parser/src/test/resources/com/manticore/jsqlformatter/standard/StandardDeleteTest.sql new file mode 100644 index 0000000..969a7e3 --- /dev/null +++ b/parser/src/test/resources/com/manticore/jsqlformatter/standard/StandardDeleteTest.sql @@ -0,0 +1,22 @@ +-- +-- Licensed 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. +-- + +-- DELETE LEDGER BRANCH BALANCE +DELETE FROM cfe.ledger_branch_balance +WHERE ( value_date, posting_date ) = ( SELECT value_date + , posting_date + FROM cfe.execution + WHERE id_status = 'R' ) +; + diff --git a/parser/src/test/resources/com/manticore/jsqlformatter/standard/StandardInsertTest.sql b/parser/src/test/resources/com/manticore/jsqlformatter/standard/StandardInsertTest.sql new file mode 100644 index 0000000..f38ecc4 --- /dev/null +++ b/parser/src/test/resources/com/manticore/jsqlformatter/standard/StandardInsertTest.sql @@ -0,0 +1,30 @@ +-- +-- Licensed 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. +-- + +-- INSERT RATIO COLLECTION RATIOS +INSERT INTO risk.counterparty_ratio +VALUES ( ?, ?, ? ) +; + +-- APPEND ATTRIBUTE VALUE REF +INSERT INTO cfe.attribute_value_ref +SELECT cfe.id_attribute_value_ref.nextval + , attribute_value +FROM ( SELECT DISTINCT + a.attribute_value + FROM cfe.instrument_attribute a + LEFT JOIN cfe.attribute_value_ref b + ON a.attribute_value = b.attribute_value + WHERE b.attribute_value IS NULL ) a +; diff --git a/parser/src/test/resources/com/manticore/jsqlformatter/standard/StandardUpdateTest.sql b/parser/src/test/resources/com/manticore/jsqlformatter/standard/StandardUpdateTest.sql new file mode 100644 index 0000000..47c6629 --- /dev/null +++ b/parser/src/test/resources/com/manticore/jsqlformatter/standard/StandardUpdateTest.sql @@ -0,0 +1,76 @@ +-- +-- Licensed 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. +-- + +-- UPDATE COLLATERAL_TYPE +UPDATE common.collateral_type +SET hair_cut = least +WHERE id_collateral_type_ref IN ( SELECT id_collateral_type_ref + FROM common.collateral_type a + WHERE id_status IN ( 'C', 'H', 'C' + , 'H', 'C', 'H' + , 'C', 'H' ) + AND id_collateral_type_ref = ( SELECT Max( id_collateral_type_ref ) + FROM common.collateral_type + WHERE id_status IN ( 'C', 'H' ) + AND id_collateral_type = a.id_collateral_type ) ) +; + +-- UPDATE COUNTERPARTY_INSTRUMENT +UPDATE risk.counterparty_instrument a1 +SET ( priority + , type + , description + , limit_amout + , id_currency + , end_date ) = ( SELECT a.priority + , a.type + , a.description + , a.limit_amout + , a.id_currency + , a.end_date + FROM risk.imp_counterparty_instrument a + INNER JOIN risk.counterparty b + ON a.id_counterparty = b.id_counterparty + AND b.id_status = 'C' + INNER JOIN risk.instrument c + ON a.id_instrument_beneficiary = c.id_instrument + AND c.id_status = 'C' + INNER JOIN risk.counterparty_instrument e + ON b.id_counterparty_ref = e.id_counterparty_ref + AND e.id_instrument_beneficiary = a.id_instrument_beneficiary + AND e.id_instrument_guarantee = a.id_instrument_guarantee + WHERE e.id_counterparty_ref = a1.id_counterparty_ref + AND e.id_instrument_beneficiary = a1.id_instrument_beneficiary + AND e.id_instrument_guarantee = a1.id_instrument_guarantee ) +WHERE EXISTS ( SELECT a.priority + , a.type + , a.description + , a.limit_amout + , a.id_currency + , a.end_date + FROM risk.imp_counterparty_instrument a + INNER JOIN risk.counterparty b + ON a.id_counterparty = b.id_counterparty + AND b.id_status = 'C' + INNER JOIN risk.instrument c + ON a.id_instrument_beneficiary = c.id_instrument + AND c.id_status = 'C' + INNER JOIN risk.counterparty_instrument e + ON b.id_counterparty_ref = e.id_counterparty_ref + AND e.id_instrument_beneficiary = a.id_instrument_beneficiary + AND e.id_instrument_guarantee = a.id_instrument_guarantee + WHERE e.id_counterparty_ref = a1.id_counterparty_ref + AND e.id_instrument_beneficiary = a1.id_instrument_beneficiary + AND e.id_instrument_guarantee = a1.id_instrument_guarantee ) +; diff --git a/parser/src/test/resources/com/manticore/jsqlformatter/standardIT/H2OrderedAggregateTest.sql b/parser/src/test/resources/com/manticore/jsqlformatter/standardIT/H2OrderedAggregateTest.sql new file mode 100644 index 0000000..9ef7f4e --- /dev/null +++ b/parser/src/test/resources/com/manticore/jsqlformatter/standardIT/H2OrderedAggregateTest.sql @@ -0,0 +1,45 @@ +-- +-- Licensed 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. +-- + +-- LISTAGG 1 +SELECT LISTAGG(NAME, ', ') WITHIN GROUP (ORDER BY ID) +; + + +-- LISTAGG 2 +SELECT LISTAGG(COALESCE(NAME, 'null'), ', ') WITHIN GROUP (ORDER BY ID) +; + + +-- LISTAGG 3 +/* Unsupported: SELECT LISTAGG(ID, ', ') WITHIN GROUP (ORDER BY ID) OVER (ORDER BY ID); */ +SELECT 1 +FROM dual +; + +-- ARRAY_AGG 1 +SELECT Array_Agg( name ) +; + + +-- ARRAY_AGG 2 +SELECT ARRAY_AGG(NAME ORDER BY ID) FILTER (WHERE NAME IS NOT NULL) +; + + +-- ARRAY_AGG 3 +/* SELECT ARRAY_AGG(ID ORDER BY ID) OVER (ORDER BY ID); */ +SELECT 1 +FROM dual +; \ No newline at end of file diff --git a/parser/src/test/resources/com/manticore/jsqlformatter/standardIT/MeanChallenges.sql b/parser/src/test/resources/com/manticore/jsqlformatter/standardIT/MeanChallenges.sql new file mode 100644 index 0000000..9a3b369 --- /dev/null +++ b/parser/src/test/resources/com/manticore/jsqlformatter/standardIT/MeanChallenges.sql @@ -0,0 +1,74 @@ +-- +-- Licensed 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. +-- + + +-- SELECT Date Ranges of available data +WITH p + AS (SELECT DISTINCT value_date + FROM risk.migration_data_v + WHERE (:1 IS NULL OR :2 ='' OR id_portfolio = Decode (:3 , '001', 'IFRS1', + '002', 'IFRS2', + '003', 'IFRS3', + '004', 'IFRS4', + '005', 'IFRS5', + '006', 'IFRS6', + :4 )) + AND value_date >= :5 + AND value_date <= :6 ), + ri + AS (SELECT a.id_risk_indicator + , Greatest((SELECT Min(value_date) + FROM p + WHERE value_date >= :7 ), (SELECT Max(value_date) + FROM risk.risk_indicator_value + WHERE id_risk_indicator_ref = a.id_risk_indicator_ref + AND value_date <= :8 )) min_ri_date + , Greatest((SELECT Min(value_date) + FROM p + WHERE value_date >= :9 ), (SELECT Min(value_date) + FROM risk.risk_indicator_value + WHERE id_risk_indicator_ref = a.id_risk_indicator_ref + AND value_date >= :10 )) min_ri_date_1 + , Least((SELECT Max(value_date) + FROM p + WHERE value_date <= :11 ), (SELECT Min(value_date) + FROM risk.risk_indicator_value + WHERE id_risk_indicator_ref = a.id_risk_indicator_ref + AND value_date >= :12 )) max_ri_date + , Least((SELECT Max(value_date) + FROM p + WHERE value_date <= :13 ), (SELECT Max(value_date) + FROM risk.risk_indicator_value + WHERE id_risk_indicator_ref = a.id_risk_indicator_ref + AND value_date <= :14 )) max_ri_date_1 + FROM risk.risk_indicator a + WHERE a.id_status = 'C' + AND a.id_risk_indicator_ref = (SELECT Max(id_risk_indicator_ref) + FROM risk.risk_indicator + WHERE id_status = 'C' + AND id_risk_indicator = a.id_risk_indicator) + AND ( ( :15 IS NULL + OR id_risk_indicator = :16 ) + )) +SELECT /*+parallel*/ ri.id_risk_indicator + , Min(p.value_date) "Min. Observation Date" + , Max(p.value_date) "Max. Observation Date" +FROM ri + , p +WHERE p.value_date >= Nvl(ri.min_ri_date, ri.min_ri_date_1) + AND p.value_date <= Nvl(ri.max_ri_date, ri.max_ri_date_1) +GROUP BY ri.id_risk_indicator +order by 1 +; + diff --git a/parser/src/test/resources/com/manticore/jsqlformatter/standardIT/StandardAlterTest.sql b/parser/src/test/resources/com/manticore/jsqlformatter/standardIT/StandardAlterTest.sql new file mode 100644 index 0000000..7677431 --- /dev/null +++ b/parser/src/test/resources/com/manticore/jsqlformatter/standardIT/StandardAlterTest.sql @@ -0,0 +1,74 @@ +-- +-- Licensed 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. +-- + +-- ALTER TABLE ADD FOREIGN KEY +ALTER TABLE cfe.ledger_acc_entry_manual + ADD FOREIGN KEY (id_manual_posting_batch) + REFERENCES manual_posting_batch (id_manual_posting_batch) +; + +-- ALTER TABLE DROP COLUMN +ALTER TABLE risk.collateral + DROP COLUMN id_status +; + +-- ORACLE DROP MULTIPLE COLUMNS +ALTER TABLE risk.collateral + DROP (id_status, city ) +; + +-- ORACLE DROP MANY MULTIPLE COLUMNS +ALTER TABLE risk.collateral + DROP ( id_status + , city + , column3 + , column4 ) +; + +-- ALTER TABLE ADD COLUMN +ALTER TABLE risk.collateral + ADD COLUMN id_status VARCHAR (1) NULL +; + +-- ALTER TABLE ALTER COLUMN +ALTER TABLE risk.collateral + ALTER COLUMN id_status VARCHAR (1) NOT NULL +; + +-- ORACLE ALTER TABLE ADD COLUMN +ALTER TABLE risk.collateral + ADD id_status VARCHAR (1) NULL +; + +-- ORACLE ALTER TABLE MODIFY +ALTER TABLE risk.collateral + MODIFY id_status VARCHAR (1) NOT NULL +; + +-- ORACLE ADD MULTIPLE COLUMNS +ALTER TABLE customers + ADD ( customer_name VARCHAR2 (45) + , city VARCHAR2 (40) DEFAULT 'SEATTLE') +; + +-- ORACLE MODIFY MULTIPLE COLUMNS +ALTER TABLE customers + MODIFY ( customer_name VARCHAR2 (100) NOT NULL + , city VARCHAR2 (75) DEFAULT 'SEATTLE' NOT NULL) +; + +-- RENAME +ALTER TABLE departments + RENAME COLUMN department_name TO dept_name +; diff --git a/parser/src/test/resources/com/manticore/jsqlformatter/standardIT/StandardCommentTest.sql b/parser/src/test/resources/com/manticore/jsqlformatter/standardIT/StandardCommentTest.sql new file mode 100644 index 0000000..02ca57e --- /dev/null +++ b/parser/src/test/resources/com/manticore/jsqlformatter/standardIT/StandardCommentTest.sql @@ -0,0 +1,41 @@ +-- +-- Licensed 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. +-- + +-- UPDATE CALENDAR +UPDATE cfe.calendar +SET year_offset = ? /* year offset */ + , settlement_shift = ? /* settlement shift */ + , friday_is_holiday = ? /* friday is a holiday */ + , saturday_is_holiday = ? /* saturday is a holiday */ + , sunday_is_holiday = ? /* sunday is a holiday */ +WHERE id_calendar = ? +; + + +-- BOTH CLAUSES PRESENT 'with a string' AND "a field" +MERGE /*+ PARALLEL */ INTO test1 /*the target table*/ a + USING all_objects /*the source table*/ + ON ( /*joins in()!*/ a.object_id = b.object_id ) +-- INSERT CLAUSE +WHEN /*comments between keywords!*/ NOT MATCHED THEN + INSERT ( object_id /*ID Column*/ + , status /*Status Column*/ ) + VALUES ( b.object_id + , b.status ) +/* UPDATE CLAUSE +WITH A WHERE CONDITION */ +WHEN MATCHED THEN /* Lets rock */ + UPDATE SET a.status = '/*this is no comment!*/ and -- this ain''t either' + WHERE b."--status" != 'VALID' +; diff --git a/parser/src/test/resources/com/manticore/jsqlformatter/standardIT/StandardCreateIndexTest.sql b/parser/src/test/resources/com/manticore/jsqlformatter/standardIT/StandardCreateIndexTest.sql new file mode 100644 index 0000000..67dcba0 --- /dev/null +++ b/parser/src/test/resources/com/manticore/jsqlformatter/standardIT/StandardCreateIndexTest.sql @@ -0,0 +1,57 @@ +-- +-- Licensed 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. +-- + +-- SIMPLE +CREATE INDEX cfe.version_info_idx1 + ON cfe.version_info( major_version + , minor_version + , patch_level ) +; + +-- UNIQUE +CREATE UNIQUE INDEX cfe.interest_period_idx1 + ON cfe.interest_period( id_instrument, change_date ) +; + +-- MANY COLUMNS +CREATE UNIQUE INDEX cfe.version_info_idx2 + ON cfe.version_info( major_version + , minor_version + , patch_level + , major_version + , minor_version + , patch_level ) +; + +-- MANY COLUMNS WITH TAIL OPTIONS +CREATE UNIQUE INDEX cfe.version_info_idx2 + ON cfe.version_info( major_version + , minor_version + , patch_level + , major_version + , minor_version + , patch_level ) PARALLEL COMPRESS NOLOGGING +; + + +-- Z MANY COLUMNS WITH TAIL OPTIONS +-- @JSQLFormatter(indentWidth=2, keywordSpelling=LOWER, functionSpelling=KEEP, objectSpelling=UPPER, separation=AFTER) +create unique index CFE.VERSION_INFO_IDX2 + on CFE.VERSION_INFO( MAJOR_VERSION, + MINOR_VERSION, + PATCH_LEVEL, + MAJOR_VERSION, + MINOR_VERSION, + PATCH_LEVEL ) parallel compress nologging +; diff --git a/parser/src/test/resources/com/manticore/jsqlformatter/standardIT/StandardCreateTableTest.sql b/parser/src/test/resources/com/manticore/jsqlformatter/standardIT/StandardCreateTableTest.sql new file mode 100644 index 0000000..b08a6d5 --- /dev/null +++ b/parser/src/test/resources/com/manticore/jsqlformatter/standardIT/StandardCreateTableTest.sql @@ -0,0 +1,117 @@ +-- +-- Licensed 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. +-- + +-- CREATE TABLE CFE.INTEREST_PERIOD +CREATE TABLE cfe.interest_period ( + id_instrument VARCHAR (40) NOT NULL + , id_fixingmode NUMBER (5) DEFAULT 0 NOT NULL + , fixing_date DATE + , change_date DATE + , base_rate VARCHAR (12) + , base_margin_rate DECIMAL (12,9) + , par_rate VARCHAR (12) + , par_margin_rate DECIMAL (12,9) + , id_payment_convention VARCHAR (12) + , id_day_count_convention VARCHAR (12) + , id_day_incl_convention VARCHAR (12) + , fix_amount DECIMAL (23,5) + , id_currency_fix_amount VARCHAR (3) + , id_script VARCHAR (12) +) +; + +-- SIMPLE +CREATE TABLE employees ( + employee_number INT NOT NULL + , employee_name CHAR (50) NOT NULL + , department_id INT + , salary INT + , PRIMARY KEY ( employee_number ) + , UNIQUE ( employee_name ) + , FOREIGN KEY ( department_id ) + REFERENCES departments ( department_id ) +) PARALLEL COMPRESS NOLOGGING +; + +-- COMPLEX +CREATE TABLE employees ( + employee_number INT NOT NULL + , employee_name CHAR (50) NOT NULL + , department_id INT + , salary INT + , CONSTRAINT employees_pk + PRIMARY KEY ( employee_number ) + , CONSTRAINT fk_departments + FOREIGN KEY ( department_id ) + REFERENCES departments ( department_id ) +) PARALLEL COMPRESS NOLOGGING +; + +-- COMPLEX WITH MANY REFERENCES +CREATE TABLE employees ( + employee_number INT NOT NULL + , employee_name CHAR (50) NOT NULL + , department_id INT + , salary INT + , CONSTRAINT employees_pk + PRIMARY KEY ( employee_number + , employee_name + , department_id ) + , CONSTRAINT fk_departments + FOREIGN KEY ( employee_number + , employee_name + , department_id ) + REFERENCES departments ( employee_number + , employee_name + , department_id ) +) PARALLEL COMPRESS NOLOGGING +; + +-- CREATE TABLE CFE.RECONCILIATION_NOMINAL_HST 2 +CREATE TABLE cfe.reconciliation_nominal_hst PARALLEL COMPRESS NOLOGGING + AS ( SELECT /*+ PARALLEL */ + ( SELECT id_execution_ref + FROM cfe.execution_ref c + INNER JOIN cfe.execution_v d + ON c.value_date = d.value_date + AND c.posting_date = d.posting_date + AND d.flag = 'L' ) id_execution_ref + , b.id_instrument_ref + , a.value_date + , a.nominal_balance + FROM cfe.reconciliation_nominal a + INNER JOIN cfe.instrument_ref b + ON a.id_instrument = b.id_instrument ) +; + +-- Z COMPLEX WITH MANY REFERENCES +-- @JSQLFormatter(indentWidth=2, keywordSpelling=LOWER, functionSpelling=KEEP, objectSpelling=UPPER, separation=AFTER) +create table EMPLOYEES ( + EMPLOYEE_NUMBER int not null, + EMPLOYEE_NAME char (50) not null, + DEPARTMENT_ID int, + SALARY int, + constraint EMPLOYEES_PK + primary key ( EMPLOYEE_NUMBER, + EMPLOYEE_NAME, + DEPARTMENT_ID ), + constraint FK_DEPARTMENTS + foreign key ( EMPLOYEE_NUMBER, + EMPLOYEE_NAME, + DEPARTMENT_ID ) + references DEPARTMENTS ( EMPLOYEE_NUMBER, + EMPLOYEE_NAME, + DEPARTMENT_ID ) +) parallel compress nologging +; diff --git a/parser/src/test/resources/com/manticore/jsqlformatter/standardIT/StandardCreateViewTest.sql b/parser/src/test/resources/com/manticore/jsqlformatter/standardIT/StandardCreateViewTest.sql new file mode 100644 index 0000000..bc69d2b --- /dev/null +++ b/parser/src/test/resources/com/manticore/jsqlformatter/standardIT/StandardCreateViewTest.sql @@ -0,0 +1,100 @@ +-- +-- Licensed 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. +-- + +-- VIEW 1 +CREATE OR REPLACE VIEW cfe.interest_period_on_value_day + AS SELECT /*+ PARALLEL */ + a.value_date + , d.id_instrument + , d.id_fixingmode + , d.fixing_date + , Coalesce( d.change_date, b.end_date ) change_date + , d.base_rate + , d.base_margin_rate + , d.par_rate + , d.par_margin_rate + , d.id_payment_convention + , d.id_day_count_convention + , d.id_day_incl_convention + , d.fix_amount + , d.id_currency_fix_amount + , d.id_script + FROM ( SELECT value_date + , posting_date + FROM cfe.execution e + WHERE id_status = 'R' + AND value_date = ( SELECT Max( value_date ) + FROM cfe.execution + WHERE id_status = 'R' ) + AND posting_date = ( SELECT Max( posting_date ) + FROM cfe.execution + WHERE id_status = 'R' + AND value_date = e.value_date ) ) a + INNER JOIN cfe.instrument_hst b + ON a.value_date = b.value_date + AND a.posting_date = b.posting_date + INNER JOIN cfe.instrument_ref c + ON b.id_instrument_ref = c.id_instrument_ref + INNER JOIN cfe.interest_period d + ON d.id_instrument = c.id_instrument + AND a.value_date <= Coalesce( d.change_date, b.end_date ) + WHERE Coalesce( d.change_date, b.end_date ) = ( SELECT Min( Coalesce( change_date, b.end_date ) ) + FROM cfe.interest_period + WHERE id_instrument = d.id_instrument + AND a.value_date <= Coalesce( change_date, b.end_date ) ) + ORDER BY 2 + , 1 + , 4 +; + +-- VIEW 2 +CREATE OR REPLACE VIEW cfe.execution_v + AS SELECT /*+ PARALLEL */ + e.start_timestamp + , e.end_timestamp + , EXTRACT( hour FROM + e.end_timestamp + - e.start_timestamp ) || ':' + || Lpad( EXTRACT( minute FROM e.end_timestamp - e.start_timestamp ), 2, '0' ) duration + , e.value_date + , e.posting_date + , CASE + WHEN EXTRACT( year FROM e1.value_date ) > EXTRACT( year FROM e.value_date ) + THEN 'Y' + WHEN To_Char( e1.value_date, 'Q' ) > To_Char( e.value_date, 'Q' ) + THEN 'Q' + WHEN EXTRACT( month FROM e1.value_date ) > EXTRACT( month FROM e.value_date ) + THEN 'M' + WHEN To_Char( e1.value_date, 'IW' ) > To_Char( e.value_date, 'IW' ) + THEN 'W' + WHEN e1.value_date IS NULL + AND e.id_status = 'R' + THEN 'L' + END flag + , e.value_date_p + , e.value_date_pp + , e.id_status + FROM cfe.execution e + LEFT JOIN cfe.execution e1 + ON e.value_date < e1.value_date + AND e.id_status IN ( 'R', 'H' ) + AND e1.id_status IN ( 'R', 'H' ) + WHERE ( e1.value_date = ( SELECT Min( value_date ) + FROM cfe.execution + WHERE id_status IN ( 'R', 'H' ) + AND value_date > e.value_date ) + OR e1.value_date IS NULL ) + ORDER BY e.posting_date DESC + , e.value_date DESC +; diff --git a/parser/src/test/resources/com/manticore/jsqlformatter/standardIT/StandardDeleteTest.sql b/parser/src/test/resources/com/manticore/jsqlformatter/standardIT/StandardDeleteTest.sql new file mode 100644 index 0000000..db36eb7 --- /dev/null +++ b/parser/src/test/resources/com/manticore/jsqlformatter/standardIT/StandardDeleteTest.sql @@ -0,0 +1,103 @@ +-- +-- Licensed 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. +-- + +-- DELETE LEDGER BRANCH BALANCE +DELETE FROM cfe.ledger_branch_balance +WHERE ( value_date, posting_date ) = ( SELECT value_date + , posting_date + FROM cfe.execution + WHERE id_status = 'R' + AND value_date = :VALUE_DATE ) +; + +-- DELETE WITH MANY ITEMS +DELETE FROM cfe.ledger_branch_balance +WHERE ( value_date, posting_date, something_else ) = ( SELECT value_date + , posting_date + , something_else + FROM cfe.execution + WHERE id_status = 'R' + AND value_date = :VALUE_DATE ) +; + +-- DELETE WITH MORE ITEMS +DELETE FROM cfe.ledger_branch_balance +WHERE ( value_date + , posting_date + , something_else + , value_date ) = ( SELECT value_date + , posting_date + , something_else + , value_date + FROM cfe.execution + WHERE id_status = 'R' + AND value_date = :VALUE_DATE ) +; + +-- DELETE WITH EVEN MORE ITEMS +DELETE FROM cfe.ledger_branch_balance +WHERE ( value_date, posting_date, something_else + , value_date, posting_date, something_else ) = ( SELECT value_date + , posting_date + , something_else + , value_date + , posting_date + , something_else + FROM cfe.execution + WHERE id_status = 'R' + AND value_date = :VALUE_DATE ) +; + +-- DELETE INSTRUMENT HST AFTER VALUE_DATE_P +DELETE /*+ PARALLEL INDEX_FFS(A, INSTRUMENT_HST_IDX1) */ FROM cfe.instrument_hst a +WHERE ( value_date, posting_date ) IN ( SELECT value_date + , posting_date + FROM cfe.execution + WHERE posting_date > ( SELECT Max( posting_date ) + FROM cfe.execution + WHERE id_status = 'R' + AND value_date <= :value_date_p ) + OR ( SELECT Max( posting_date ) + FROM cfe.execution + WHERE id_status = 'R' + AND value_date <= :value_date_p ) IS NULL ) +; + +-- DELETE REDUNDANT INSTRUMENT COLLATERAL HST 2 +DELETE FROM cfe.instrument_collateral_hst t1 +WHERE EXISTS ( SELECT 1 + FROM cfe.instrument_collateral a + INNER JOIN cfe.collateral_ref b + ON a.id_collateral = b.id_collateral + INNER JOIN cfe.instrument_ref c + ON a.id_instrument = c.id_instrument + WHERE b.id_collateral_ref = t1.id_collateral_ref + AND c.id_instrument_ref = t1.id_instrument_ref + AND a.valid_date = t1.valid_date ) +; + +-- DELETE ACCOUNT ENTRIES AFTER VALUE_DATE_P +DELETE FROM cfe.ledger_account_entry a +WHERE posting_date IN ( SELECT posting_date + FROM cfe.execution + WHERE posting_date > ( SELECT Max( posting_date ) + FROM cfe.execution + WHERE id_status = 'R' + AND value_date <= :value_date_p ) + OR ( SELECT Max( posting_date ) + FROM cfe.execution + WHERE id_status = 'R' + AND value_date <= :value_date_p ) IS NULL ) + AND reversed = '0' +; diff --git a/parser/src/test/resources/com/manticore/jsqlformatter/standardIT/StandardInsertTest.sql b/parser/src/test/resources/com/manticore/jsqlformatter/standardIT/StandardInsertTest.sql new file mode 100644 index 0000000..51f8a19 --- /dev/null +++ b/parser/src/test/resources/com/manticore/jsqlformatter/standardIT/StandardInsertTest.sql @@ -0,0 +1,58 @@ +-- +-- Licensed 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. +-- + +-- INSERT COUNTERPARTY COUNTERPARTY RELATIONSHIP +INSERT INTO risk.counterparty_counterparty +VALUES ( :id_counterparty_ref, :id_counterparty_beneficiary, :id_instrument_guarantee + , :priority, :type, :description + , :limit_amout, :id_currency, :end_date ) +; + +-- INSERT RATIO COLLECTION RATIOS +INSERT INTO risk.counterparty_ratio +VALUES ( ?, ?, ? ) +; + +-- INSERT TMP_CCF +INSERT INTO risk.tmp_ccf ( + "ID_INSTRUMENT" + , "TENOR" + , "STATUS" + , "OBSERVATION_DATE" + , "BALANCE" + , "LIMIT" + , "DR_BALANCE" + , "OPEN_LIMIT" ) +SELECT '1000042339' /* ID_INSTRUMENT */ + , 0 /* TENOR */ + , 'DEFAULT' /* STATUS */ + , {d '2020-02-27'} /* OBSERVATION_DATE */ + , - 142574953.65 /* BALANCE */ + , 300000000 /* LIMIT */ + , - 142574953.65 /* DR_BALANCE */ + , 157425046.35 /* OPEN_LIMIT */ +FROM dual +; + +-- APPEND ATTRIBUTE VALUE REF +INSERT INTO cfe.attribute_value_ref +SELECT cfe.id_attribute_value_ref.nextval + , attribute_value +FROM ( SELECT DISTINCT + a.attribute_value + FROM cfe.instrument_attribute a + LEFT JOIN cfe.attribute_value_ref b + ON a.attribute_value = b.attribute_value + WHERE b.attribute_value IS NULL ) a +; diff --git a/parser/src/test/resources/com/manticore/jsqlformatter/standardIT/StandardMergeTest.sql b/parser/src/test/resources/com/manticore/jsqlformatter/standardIT/StandardMergeTest.sql new file mode 100644 index 0000000..eecb71f --- /dev/null +++ b/parser/src/test/resources/com/manticore/jsqlformatter/standardIT/StandardMergeTest.sql @@ -0,0 +1,229 @@ +-- +-- Licensed 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. +-- + +-- MERGE 1 +MERGE INTO cfe.impairment imp + USING ( WITH x AS ( + SELECT a.id_instrument + , a.id_currency + , a.id_instrument_type + , b.id_portfolio + , c.attribute_value product_code + , t.valid_date + , t.ccf + FROM cfe.instrument a + INNER JOIN cfe.impairment b + ON a.id_instrument = b.id_instrument + LEFT JOIN cfe.instrument_attribute c + ON a.id_instrument = c.id_instrument + AND c.id_attribute = 'product' + INNER JOIN cfe.ext_ccf t + ON ( a.id_currency LIKE t.id_currency ) + AND ( a.id_instrument_type LIKE t.id_instrument_type ) + AND ( b.id_portfolio LIKE t.id_portfolio + OR ( b.id_portfolio IS NULL + AND t.id_portfolio = '%' ) ) + AND ( c.attribute_value LIKE t.product_code + OR ( c.attribute_value IS NULL + AND t.product_code = '%' ) ) ) +SELECT /*+ PARALLEL */ * + FROM x x1 + WHERE x1.valid_date = ( SELECT max + FROM x + WHERE id_instrument = x1.id_instrument ) ) s + ON ( imp.id_instrument = s.id_instrument ) +WHEN MATCHED THEN + UPDATE SET imp.ccf = s.ccf +; + +-- MERGE 2 +MERGE INTO cfe.instrument_import_measure imp + USING ( WITH x AS ( + SELECT a.id_instrument + , a.id_currency + , a.id_instrument_type + , b.id_portfolio + , c.attribute_value product_code + , t.valid_date + , t.yield + FROM cfe.instrument a + INNER JOIN cfe.impairment b + ON a.id_instrument = b.id_instrument + LEFT JOIN cfe.instrument_attribute c + ON a.id_instrument = c.id_instrument + AND c.id_attribute = 'product' + INNER JOIN cfe.ext_yield t + ON ( a.id_currency = t.id_currency ) + AND ( a.id_instrument_type LIKE t.id_instrument_type ) + AND ( b.id_portfolio LIKE t.id_portfolio + OR ( b.id_portfolio IS NULL + AND t.id_portfolio = '%' ) ) + AND ( c.attribute_value LIKE t.product_code + OR ( c.attribute_value IS NULL + AND t.product_code = '%' ) ) ) +SELECT /*+ PARALLEL */ * + FROM x x1 + WHERE x1.valid_date = ( SELECT max + FROM x + WHERE id_instrument = x1.id_instrument + AND valid_date <= to_date ) ) s + ON ( imp.id_instrument = s.id_instrument + AND imp.measure = 'YIELD' ) +WHEN MATCHED THEN + UPDATE SET imp.value = s.yield +; + +-- MERGE 3 +MERGE INTO cfe.instrument_import_measure imp + USING s + ON ( imp.id_instrument = s.id_instrument + AND imp.measure = 'YIELD_P' + AND imp.id_instrument = s.id_instrument + AND imp.measure = 'YIELD_P' ) +WHEN MATCHED THEN + UPDATE SET imp.value = s.yield +; + +-- MERGE 4 +MERGE INTO cfe.instrument_import_measure imp + USING ( WITH x AS ( + SELECT a.id_instrument + , a.id_currency + , a.id_instrument_type + , b.id_portfolio + , c.attribute_value product_code + , t.valid_date + , t.yield + FROM cfe.instrument a + INNER JOIN cfe.impairment b + ON a.id_instrument = b.id_instrument + LEFT JOIN cfe.instrument_attribute c + ON a.id_instrument = c.id_instrument + AND c.id_attribute = 'product' + INNER JOIN cfe.ext_yield t + ON ( a.id_currency = t.id_currency ) + AND ( a.id_instrument_type LIKE t.id_instrument_type ) + AND ( b.id_portfolio LIKE t.id_portfolio + OR ( b.id_portfolio IS NULL + AND t.id_portfolio = '%' ) ) + AND ( c.attribute_value LIKE t.product_code + OR ( c.attribute_value IS NULL + AND t.product_code = '%' ) ) ) +SELECT /*+ PARALLEL */ * + FROM x x1 + WHERE x1.valid_date = ( SELECT max + FROM x + WHERE id_instrument = x1.id_instrument + AND valid_date <= to_date ) ) s + ON ( imp.id_instrument = s.id_instrument + AND imp.measure = 'YIELD_PP' ) +WHEN MATCHED THEN + UPDATE SET imp.value = s.yield +; + +-- MERGE DELETE WHERE +MERGE INTO empl_current tar + USING ( SELECT empno + , ename + , CASE + WHEN leavedate <= sysdate + THEN 'Y' + ELSE 'N' + END AS delete_flag + FROM empl ) src + ON ( tar.empno = src.empno ) +WHEN NOT MATCHED THEN + INSERT ( empno + , ename ) + VALUES ( src.empno + , src.ename ) +WHEN MATCHED THEN + UPDATE SET tar.ename = src.ename + WHERE delete_flag = 'N' + DELETE WHERE delete_flag = 'Y' +; + +-- BOTH CLAUSES PRESENT +MERGE INTO test1 a + USING all_objects + ON ( a.object_id = b.object_id ) +WHEN NOT MATCHED THEN + INSERT ( object_id + , status ) + VALUES ( b.object_id + , b.status ) +WHEN MATCHED THEN + UPDATE SET a.status = b.status + WHERE b.status != 'VALID' +; + +-- BOTH CLAUSES PRESENT 2 +MERGE INTO test1 a + USING all_objects + ON ( a.object_id = b.object_id ) +WHEN NOT MATCHED THEN + INSERT ( object_id + , status ) + VALUES ( b.object_id + , b.status ) + WHERE b.status != 'VALID' +WHEN MATCHED THEN + UPDATE SET a.status = b.status + WHERE b.status != 'VALID' +; + +-- INSERT WITHOUT COLUMNS +MERGE /*+ PARALLEL */ INTO cfe.tmp_eab a + USING ( SELECT /*+ PARALLEL DRIVING_SITE(C) */ c.* + FROM tbaadm.eab@finnacle c + INNER JOIN ( SELECT acid + , eod_date + FROM cfe.tmp_eab e + WHERE end_eod_date = ( SELECT Max( eod_date ) + FROM cfe.tmp_eab + WHERE acid = e.acid ) + AND end_eod_date < '31-Dec-2099' ) d + ON c.acid = d.acid + AND c.eod_date >= d.eod_date ) b + ON ( a.acid = b.acid + AND a.eod_date = b.eod_date ) +WHEN MATCHED THEN + UPDATE SET a.tran_date_bal = b.tran_date_bal + , a.tran_date_tot_tran = b.tran_date_tot_tran + , a.value_date_bal = b.value_date_bal + , a.value_date_tot_tran = b.value_date_tot_tran + , a.end_eod_date = b.end_eod_date + , a.lchg_user_id = b.lchg_user_id + , a.lchg_time = b.lchg_time + , a.rcre_user_id = b.rcre_user_id + , a.rcre_time = b.rcre_time + , a.ts_cnt = b.ts_cnt + , a.eab_crncy_code = b.eab_crncy_code + , a.bank_id = b.bank_id +WHEN NOT MATCHED THEN + INSERT VALUES ( b.acid + , b.eod_date + , b.tran_date_bal + , b.tran_date_tot_tran + , b.value_date_bal + , b.value_date_tot_tran + , b.end_eod_date + , b.lchg_user_id + , b.lchg_time + , b.rcre_user_id + , b.rcre_time + , b.ts_cnt + , b.eab_crncy_code + , b.bank_id ) +; diff --git a/parser/src/test/resources/com/manticore/jsqlformatter/standardIT/StandardOffsetLimitTest.sql b/parser/src/test/resources/com/manticore/jsqlformatter/standardIT/StandardOffsetLimitTest.sql new file mode 100644 index 0000000..41284e2 --- /dev/null +++ b/parser/src/test/resources/com/manticore/jsqlformatter/standardIT/StandardOffsetLimitTest.sql @@ -0,0 +1,44 @@ +-- +-- Licensed 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. +-- + +-- SIMPLE LIMIT +SELECT p.* +FROM product p + LEFT JOIN product_description pd + ON ( p.product_id = pd.product_id ) + LEFT JOIN product_type_google_category ptgc + ON ( p.product_type_id = ptgc.product_type_id ) + LEFT JOIN product_google_custom_label pgcl + ON ( p.product_id = pgcl.product_id ) +WHERE p.status = 1 + AND pd.language_id = 2 + AND p.product_id IN ( SELECT product_id + FROM cj_googleshopping_products ) +ORDER BY date_available DESC + , p.purchased DESC +LIMIT 200000 +; + +-- LIMIT OFFSET EXPRESSIONS +SELECT p.* +FROM product p +LIMIT '200000' +OFFSET '5' +; + +-- MYSQL LIMIT OFFSET EXPRESSIONS +SELECT p.* +FROM product p +LIMIT 5, 2000 +; \ No newline at end of file diff --git a/parser/src/test/resources/com/manticore/jsqlformatter/standardIT/StandardSelectTest.sql b/parser/src/test/resources/com/manticore/jsqlformatter/standardIT/StandardSelectTest.sql new file mode 100644 index 0000000..e6056a5 --- /dev/null +++ b/parser/src/test/resources/com/manticore/jsqlformatter/standardIT/StandardSelectTest.sql @@ -0,0 +1,476 @@ +-- +-- Licensed 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. +-- + +-- INSERT NEW LEDGER ACCOUNTS +SELECT /*+ PARALLEL */ + cfe.id_account_seq.nextval + , "a"."code" + , a."id_currency" + , a.id_fee_type + , current_date + , NULL + , id_accounting_scope_code +FROM ( SELECT * + FROM ( SELECT DISTINCT + c.code code + , d.id_currency + , NULL id_fee_type + , c1.id_accounting_scope_code + FROM cfe.ledger_branch c + INNER JOIN cfe.accounting_scope c1 + ON c1.id_accounting_scope = c.id_accounting_scope + AND c1.id_status = 'C' + , common.ledger_currency d + MINUS + SELECT DISTINCT + c.code + , d.id_currency + , NULL id_fee_type + , c.id_accounting_scope_code + FROM cfe.ledger_account c + INNER JOIN common.ledger_currency d + ON c.id_currency = d.id_currency ) + UNION + SELECT * + FROM ( SELECT DISTINCT + c.code + , d.id_currency + , NULL id_fee_type + , c1.id_accounting_scope_code + FROM cfe.ledger_branch c + INNER JOIN cfe.accounting_scope c1 + ON c1.id_accounting_scope = c.id_accounting_scope + AND c1.id_status = 'C' + , common.ledger_currency d + MINUS + SELECT DISTINCT + c.code + , d.id_currency + , NULL id_fee_type + , c.id_accounting_scope_code + FROM cfe.ledger_account c + INNER JOIN common.ledger_currency d + ON c.id_currency = d.id_currency ) + UNION + SELECT * + FROM ( SELECT DISTINCT + c.code code + , d.id_currency + , e.id_fee_type + , c1.id_accounting_scope_code + FROM cfe.ledger_branch c + INNER JOIN cfe.accounting_scope c1 + ON c1.id_accounting_scope = c.id_accounting_scope + AND c1.id_status = 'C' + , common.ledger_currency d + , cfe.fee_type e + MINUS + SELECT DISTINCT + c.code + , d.id_currency + , e.id_fee_type + , c.id_accounting_scope_code + FROM cfe.ledger_account c + INNER JOIN common.ledger_currency d + ON c.id_currency = d.id_currency + INNER JOIN cfe.fee_type e + ON c.id_fee_type = e.id_fee_type ) ) a +; + +-- INSERT INTO LEDGER BRANCH BALANCE +WITH scope AS ( + SELECT * + FROM cfe.accounting_scope + WHERE id_status = 'C' + AND id_accounting_scope_code = :SCOPE ) + , ex AS ( + SELECT * + FROM cfe.execution + WHERE id_status = 'R' + AND value_date = ( SELECT Max( value_date ) + FROM cfe.execution + WHERE id_status = 'R' + AND ( :VALUE_DATE IS NULL + OR value_date <= :VALUE_DATE ) ) ) + , fxr AS ( + SELECT id_currency_from + , fxrate + FROM common.fxrate_hst f + INNER JOIN ex + ON f.value_date <= ex.value_date + WHERE f.value_date = ( SELECT Max( value_date ) + FROM common.fxrate_hst + WHERE id_currency_from = f.id_currency_from + AND id_currency_into = f.id_currency_into + AND value_date <= ex.value_date ) + AND id_currency_into = :BOOK_CURRENCY + UNION ALL + SELECT :BOOK_CURRENCY + , 1 + FROM dual ) +SELECT /*+ PARALLEL */ + scope.id_accounting_scope + , ex.value_date + , ex.posting_date + , a.gl_level + , a.code + , b.description + , c.balance_bc +FROM ex + , scope + INNER JOIN cfe.ledger_branch_branch a + ON a.id_accounting_scope = scope.id_accounting_scope + AND a.code = a.code_inferior + INNER JOIN cfe.ledger_branch b + ON b.id_accounting_scope = scope.id_accounting_scope + AND b.code = a.code + INNER JOIN ( SELECT b.code + , Round( d.amount * fxr.fxrate, 2 ) balance_bc + FROM scope + INNER JOIN cfe.ledger_branch_branch b + ON b.id_accounting_scope = scope.id_accounting_scope + INNER JOIN cfe.ledger_account c + ON b.code_inferior = c.code + AND c.id_accounting_scope_code = scope.id_accounting_scope_code + INNER JOIN ( SELECT id_account + , Sum( amount ) balance + FROM ( SELECT id_account_credit id_account + , amount + FROM cfe.ledger_account_entry + INNER JOIN ex + ON ledger_account_entry.posting_date <= ex.posting_date + UNION ALL + SELECT id_account_debit + , - amount + FROM cfe.ledger_account_entry + INNER JOIN ex + ON ledger_account_entry.posting_date <= ex.posting_date ) + GROUP BY id_account ) d + ON c.id_account = d.id_account + INNER JOIN fxr + ON c.id_currency = fxr.id_currency_from + GROUP BY b.code ) c + ON c.code = a.code +; + +-- INSERT INTO LEDGER BRANCH BALANCE NEW +WITH scope AS ( + SELECT * + FROM cfe.accounting_scope + WHERE id_status = 'C' + AND id_accounting_scope_code = :SCOPE ) + , ex AS ( + SELECT * + FROM cfe.execution + WHERE id_status = 'R' + AND value_date = ( SELECT Max( value_date ) + FROM cfe.execution + WHERE id_status = 'R' + AND ( :VALUE_DATE IS NULL + OR value_date <= :VALUE_DATE ) ) ) + , fxr AS ( + SELECT id_currency_from + , fxrate + FROM common.fxrate_hst f + INNER JOIN ex + ON f.value_date <= ex.value_date + WHERE f.value_date = ( SELECT Max( value_date ) + FROM common.fxrate_hst + WHERE id_currency_from = f.id_currency_from + AND id_currency_into = f.id_currency_into + AND value_date <= ex.value_date ) + AND id_currency_into = :BOOK_CURRENCY + UNION ALL + SELECT :BOOK_CURRENCY + , 1 + FROM dual ) +SELECT /*+ PARALLEL */ + scope.id_accounting_scope + , ex.value_date + , ex.posting_date + , a.gl_level + , a.code + , b.description + , c.balance_bc +FROM ex + , scope + INNER JOIN cfe.ledger_branch_branch a + ON a.id_accounting_scope = scope.id_accounting_scope + AND a.code = a.code_inferior + INNER JOIN cfe.ledger_branch b + ON b.id_accounting_scope = scope.id_accounting_scope + AND b.code = a.code + INNER JOIN ( SELECT b.code + , Round( d.amount * fxr.fxrate, 2 ) + FROM scope + INNER JOIN cfe.ledger_branch_branch b + ON b.id_accounting_scope = scope.id_accounting_scope + INNER JOIN cfe.ledger_account c + ON b.code_inferior = c.code + AND c.id_accounting_scope_code = scope.id_accounting_scope_code + INNER JOIN ( SELECT id_account + , Sum( amount ) + FROM ( SELECT id_account_credit + , amount + FROM cfe.ledger_account_entry + INNER JOIN ex + ON ledger_account_entry.posting_date <= ex.posting_date + UNION ALL + SELECT id_account_debit + , - amount + FROM cfe.ledger_account_entry + INNER JOIN ex + ON ledger_account_entry.posting_date <= ex.posting_date ) ) d + ON c.id_account = d.id_account + INNER JOIN fxr + ON c.id_currency = fxr.id_currency_from ) c + ON c.code = a.code +; + +-- APPEND COLLATERAL REF +SELECT /*+ PARALLEL */ + cfe.id_collateral_ref.nextval + , id_collateral +FROM ( SELECT DISTINCT + a.id_collateral + FROM cfe.collateral a + LEFT JOIN cfe.collateral_ref b + ON a.id_collateral = b.id_collateral + WHERE b.id_collateral_ref IS NULL ) +; + +-- APPEND COUNTER PARTY REF +SELECT /*+ PARALLEL */ + cfe.id_counter_party_ref.nextval + , id_counter_party +FROM ( SELECT DISTINCT + a.id_counter_party + FROM cfe.collateral a + LEFT JOIN cfe.counter_party_ref b + ON a.id_counter_party = b.id_counter_party + WHERE a.id_counter_party IS NOT NULL + AND b.id_counter_party_ref IS NULL ) +; + +-- APPEND COLLATERAL HST +SELECT /*+ PARALLEL */ + b.id_collateral_ref + , c.id_counter_party_ref + , coalesce valid_date + , a.description + , d.id_collateral_type_ref + , a.fair_value + , a.forced_sale_value + , a.id_currency + , a.appraisal_date +FROM cfe.collateral a + INNER JOIN cfe.collateral_ref b + ON a.id_collateral = b.id_collateral + LEFT JOIN cfe.counter_party_ref c + ON a.id_counter_party = c.id_counter_party + INNER JOIN ( SELECT * + FROM common.collateral_type d1 + WHERE id_status IN ( 'C', 'H' ) + AND id_collateral_type_ref = ( SELECT Max( id_collateral_type_ref ) + FROM common.collateral_type + WHERE id_status IN ( 'C', 'H' ) + AND id_collateral_type = d1.id_collateral_type ) ) d + ON a.id_collateral_type = d.id_collateral_type +; + +-- SELECT WITH COMPLEX ORDER +WITH ex AS ( + SELECT value_date + , posting_date + FROM cfe.execution x + WHERE id_status IN ( 'R', 'H' ) + AND value_date = ( SELECT Max( value_date ) + FROM cfe.execution + WHERE id_status IN ( 'R', 'H' ) ) + AND posting_date = ( SELECT Max( posting_date ) + FROM cfe.execution + WHERE id_status IN ( 'R', 'H' ) + AND value_date = x.value_date ) ) + , fxr AS ( + SELECT id_currency_from + , fxrate + FROM common.fxrate_hst f + WHERE f.value_date <= ( SELECT value_date + FROM ex ) + AND f.value_date = ( SELECT Max( value_date ) + FROM common.fxrate_hst + WHERE id_currency_from = f.id_currency_from + AND id_currency_into = f.id_currency_into ) + AND id_currency_into = 'NGN' + UNION ALL + SELECT 'NGN' + , 1 + FROM dual ) + , scope AS ( + SELECT * + FROM cfe.accounting_scope + WHERE id_status = 'C' + AND id_accounting_scope_code = 'INTERN' ) + , scope1 AS ( + SELECT * + FROM cfe.accounting_scope + WHERE id_status = 'C' + AND id_accounting_scope_code = 'NGAAP' ) + , c AS ( + SELECT b.code + , Round( d.amount * fxr.fxrate, 2 ) balance_bc + FROM scope + INNER JOIN cfe.ledger_branch_branch b + ON b.id_accounting_scope = scope.id_accounting_scope + INNER JOIN cfe.ledger_account c + ON b.code_inferior = c.code + AND c.id_accounting_scope_code = scope.id_accounting_scope_code + INNER JOIN ( SELECT id_account_credit id_account + , amount + FROM cfe.ledger_account_entry + INNER JOIN ex + ON ledger_account_entry.posting_date <= ex.posting_date + UNION ALL + SELECT id_account_debit + , - amount + FROM cfe.ledger_account_entry + INNER JOIN ex + ON ledger_account_entry.posting_date <= ex.posting_date ) d + ON c.id_account = d.id_account + INNER JOIN fxr + ON c.id_currency = fxr.id_currency_from + GROUP BY b.code ) + , c1 AS ( + SELECT b.code + , Round( d.amount * fxr.fxrate, 2 ) balance_bc + FROM scope1 + INNER JOIN cfe.ledger_branch_branch b + ON b.id_accounting_scope = scope1.id_accounting_scope + INNER JOIN cfe.ledger_account c + ON b.code_inferior = c.code + AND c.id_accounting_scope_code = scope1.id_accounting_scope_code + INNER JOIN ( SELECT id_account_credit id_account + , amount + FROM cfe.ledger_account_entry + INNER JOIN ex + ON ledger_account_entry.posting_date <= ex.posting_date + UNION ALL + SELECT id_account_debit + , - amount + FROM cfe.ledger_account_entry + INNER JOIN ex + ON ledger_account_entry.posting_date <= ex.posting_date ) d + ON c.id_account = d.id_account + INNER JOIN fxr + ON c.id_currency = fxr.id_currency_from + GROUP BY b.code ) +SELECT /*+ PARALLEL */ + a.code code + , Lpad( ' ', 4 * ( a.gl_level - 1 ), ' ' ) + || a.code format_code + , b.description + , c.balance_bc + , c1.balance_bc +FROM scope + INNER JOIN cfe.ledger_branch_branch a + ON a.code = a.code_inferior + AND a.id_accounting_scope = scope.id_accounting_scope + INNER JOIN cfe.ledger_branch b + ON a.id_accounting_scope = b.id_accounting_scope + AND a.code = b.code + LEFT JOIN c + ON a.code = c.code + LEFT OUTER JOIN c1 + ON a.code = c1.code +WHERE gl_level <= 3 + AND NOT ( c.balance_bc IS NULL + AND c1.balance_bc IS NULL ) +ORDER BY ( SELECT code + FROM cfe.ledger_branch_branch + WHERE id_accounting_scope = a.id_accounting_scope + AND code_inferior = a.code + AND gl_level = 1 ) NULLS FIRST + , ( SELECT code + FROM cfe.ledger_branch_branch + WHERE id_accounting_scope = a.id_accounting_scope + AND code_inferior = a.code + AND gl_level = 2 ) ASC NULLS FIRST + , ( SELECT code + FROM cfe.ledger_branch_branch + WHERE id_accounting_scope = a.id_accounting_scope + AND code_inferior = a.code + AND gl_level = 3 ) DESC NULLS FIRST + , ( SELECT code + FROM cfe.ledger_branch_branch + WHERE id_accounting_scope = a.id_accounting_scope + AND code_inferior = a.code + AND gl_level = 4 ) DESC + , ( SELECT code + FROM cfe.ledger_branch_branch + WHERE id_accounting_scope = a.id_accounting_scope + AND code_inferior = a.code + AND gl_level = 5 ) ASC + , ( SELECT code + FROM cfe.ledger_branch_branch + WHERE id_accounting_scope = a.id_accounting_scope + AND code_inferior = a.code + AND gl_level = 6 ) NULLS FIRST + , ( SELECT code + FROM cfe.ledger_branch_branch + WHERE id_accounting_scope = a.id_accounting_scope + AND code_inferior = a.code + AND gl_level = 7 ) NULLS FIRST + , code +; + +-- ALL COLUMNS FROM TABLE +SELECT a.* +FROM cfe.instrument a +; + +-- NESTED WITH +WITH teststmt1 AS ( + WITH teststmt2 AS ( + SELECT * + FROM my_table2 ) + SELECT col1 + , col2 + FROM teststmt2 ) +SELECT * +FROM teststmt +; + +( + SELECT __time + FROM traffic_protocol_stat_log + LIMIT 1 ) +UNION ALL ( + SELECT __time + FROM traffic_protocol_stat_log + ORDER BY __time + LIMIT 1 ) +; + +-- GROUP BY +SELECT a + , b + , c + , Sum( d ) +FROM t +GROUP BY a + , b + , c +HAVING Sum( d ) > 0 + AND Count( * ) > 1 +; diff --git a/parser/src/test/resources/com/manticore/jsqlformatter/standardIT/StandardTruncateTest.sql b/parser/src/test/resources/com/manticore/jsqlformatter/standardIT/StandardTruncateTest.sql new file mode 100644 index 0000000..f82a7aa --- /dev/null +++ b/parser/src/test/resources/com/manticore/jsqlformatter/standardIT/StandardTruncateTest.sql @@ -0,0 +1,21 @@ +-- +-- Licensed 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. +-- + +-- TRUNCATE 1 +TRUNCATE TABLE cfe.execution +; + +-- TRUNCATE 2 +TRUNCATE TABLE cfe.execution CASCADE +; \ No newline at end of file diff --git a/parser/src/test/resources/com/manticore/jsqlformatter/standardIT/StandardUpdateTest.sql b/parser/src/test/resources/com/manticore/jsqlformatter/standardIT/StandardUpdateTest.sql new file mode 100644 index 0000000..c9c65d2 --- /dev/null +++ b/parser/src/test/resources/com/manticore/jsqlformatter/standardIT/StandardUpdateTest.sql @@ -0,0 +1,130 @@ +-- +-- Licensed 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. +-- + +-- UPDATE COUNTERPARTY +UPDATE risk.counterparty +SET id_counterparty = :id_counterparty + , label = :label + , description = :description + , id_counterparty_group_type = :id_counterparty_group_type + , id_counterparty_type = :id_counterparty_type + , id_counterparty_sub_type = :id_counterparty_sub_type + , id_country_group = :id_country_group + , id_country = :id_country + , id_country_state = :id_country_state + , id_district = :id_district + , id_city = :id_city + , id_industrial_sector = :id_industrial_sector + , id_industrial_sub_sector = :id_industrial_sub_sector + , block_auto_update_flag = :block_auto_update_flag + , id_user_editor = :id_user_editor + , id_organization_unit = :id_organization_unit + , id_status = :id_status + , update_timestamp = current_timestamp +WHERE id_counterparty_ref = :id_counterparty_ref +; + +-- UPDATE COLLATERAL_TYPE +UPDATE common.collateral_type +SET hair_cut = least +WHERE id_collateral_type_ref IN ( SELECT id_collateral_type_ref + FROM common.collateral_type a + WHERE id_status IN ( 'C', 'H', 'C' + , 'H', 'C', 'H' + , 'C', 'H' ) + AND id_collateral_type_ref = ( SELECT Max( id_collateral_type_ref ) + FROM common.collateral_type + WHERE id_status IN ( 'C', 'H' ) + AND id_collateral_type = a.id_collateral_type ) ) +; + +-- UPDATE COUNTERPARTY_INSTRUMENT +UPDATE risk.counterparty_instrument a1 +SET ( priority + , type + , description + , limit_amout + , id_currency + , end_date ) = ( SELECT a.priority + , a.type + , a.description + , a.limit_amout + , a.id_currency + , a.end_date + FROM risk.imp_counterparty_instrument a + INNER JOIN risk.counterparty b + ON a.id_counterparty = b.id_counterparty + AND b.id_status = 'C' + INNER JOIN risk.instrument c + ON a.id_instrument_beneficiary = c.id_instrument + AND c.id_status = 'C' + INNER JOIN risk.counterparty_instrument e + ON b.id_counterparty_ref = e.id_counterparty_ref + AND e.id_instrument_beneficiary = a.id_instrument_beneficiary + AND e.id_instrument_guarantee = a.id_instrument_guarantee + WHERE e.id_counterparty_ref = a1.id_counterparty_ref + AND e.id_instrument_beneficiary = a1.id_instrument_beneficiary + AND e.id_instrument_guarantee = a1.id_instrument_guarantee ) +WHERE EXISTS ( SELECT a.priority + , a.type + , a.description + , a.limit_amout + , a.id_currency + , a.end_date + FROM risk.imp_counterparty_instrument a + INNER JOIN risk.counterparty b + ON a.id_counterparty = b.id_counterparty + AND b.id_status = 'C' + INNER JOIN risk.instrument c + ON a.id_instrument_beneficiary = c.id_instrument + AND c.id_status = 'C' + INNER JOIN risk.counterparty_instrument e + ON b.id_counterparty_ref = e.id_counterparty_ref + AND e.id_instrument_beneficiary = a.id_instrument_beneficiary + AND e.id_instrument_guarantee = a.id_instrument_guarantee + WHERE e.id_counterparty_ref = a1.id_counterparty_ref + AND e.id_instrument_beneficiary = a1.id_instrument_beneficiary + AND e.id_instrument_guarantee = a1.id_instrument_guarantee ) +; + +-- UPDATE SETS ISSUE 1316 +UPDATE prpjpaymentbill b +SET ( b.packagecode + , b.packageremark + , b.agentcode ) = ( SELECT p.payrefreason + , p.classcode + , p.riskcode + FROM prpjcommbill p + WHERE p.policertiid = 'SDDH200937010330006366' ) /* this is supposed to be UpdateSet 1 */ + , b.payrefnotype = '05' /* this is supposed to be UpdateSet 2 */ + , b.packageunit = '4101170402' /* this is supposed to be UpdateSet 3 */ +WHERE b.payrefno = 'B370202091026000005' +; + +-- UPDATE START JOINS +UPDATE sc_borrower b + INNER JOIN sc_credit_apply a + ON a.borrower_id = b.id +SET b.name = '0.7505105896846266' + , a.credit_line = a.credit_line + 1 +WHERE b.id = 3 +; + +-- UPDATE JOINS +UPDATE table1 +SET columna = 5 +FROM table1 + LEFT JOIN table2 + ON col1 = col2 +; diff --git a/parser/src/test/resources/com/manticore/jsqlformatter/standardIT/StandardValueStatementTest.sql b/parser/src/test/resources/com/manticore/jsqlformatter/standardIT/StandardValueStatementTest.sql new file mode 100644 index 0000000..0f54004 --- /dev/null +++ b/parser/src/test/resources/com/manticore/jsqlformatter/standardIT/StandardValueStatementTest.sql @@ -0,0 +1,72 @@ +-- +-- Licensed 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. +-- + +-- PREPARE TABLE +CREATE TABLE sample_data ( + "DAY" INT + , "VALUE" INT +) +; + +-- SIMPLE EXPRESSION LIST WITH BRACKETS +WITH sample_data ( "DAY" ) + AS ( VALUES ( 0, 1, 2 ) ) +SELECT "DAY" +FROM sample_data +; + +-- MULTIPLE EXPRESSION LIST WITH BRACKETS +WITH sample_data ( "DAY", "VALUE" ) + AS ( VALUES ( ( 0, 13 ), ( 1, 12 ), ( 2, 15 ) + , ( 3, 4 ), ( 4, 8 ), ( 5, 16 ) ) ) +SELECT "DAY" + , "VALUE" +FROM sample_data +; + +-- SIMPLE EXPRESSION LIST WITHOUT BRACKETS +WITH sample_data ( "DAY" ) + AS ( VALUES 0, 1, 2 ) +SELECT "DAY" +FROM sample_data +; + +-- MULTIPLE EXPRESSION LIST WITHOUT BRACKETS +WITH sample_data ( "DAY", "VALUE" ) + AS ( VALUES ( 0, 13 ), ( 1, 12 ), ( 2, 15 ) + , ( 3, 4 ), ( 4, 8 ), ( 5, 16 ) ) +SELECT "DAY" + , "VALUE" +FROM sample_data +; + +-- VALUE LIST UNION SELECT +WITH split ( word + , str + , hascomma ) AS ( + VALUES ( '', 'Auto,A,1234444', 1 ) + UNION ALL + SELECT Substr( str, 0, CASE + WHEN Instr( str, ',' ) + THEN Instr( str, ',' ) + ELSE Length( str ) + 1 + END ) + , Ltrim( Substr( str, Instr( str, ',' ) ), ',' ) + , Instr( str, ',' ) + FROM split + WHERE hascomma ) +SELECT Trim( word ) +FROM split +WHERE word != '' +; \ No newline at end of file diff --git a/pom.xml b/pom.xml index 3a6732b..7e8e1e3 100644 --- a/pom.xml +++ b/pom.xml @@ -3,9 +3,10 @@ 4.0.0 - com.facebook.airlift + io.airlift airbase - 99 + + 100 com.facebook.presto @@ -18,8 +19,13 @@ https://github.com/prestodb/sql - ${project.parent.basedir} - 0.198 + + 206 + false + true + false + false + false @@ -31,19 +37,19 @@ - com.facebook.airlift + io.airlift configuration ${dep.airlift.version} - com.facebook.airlift + io.airlift log ${dep.airlift.version} - com.facebook.airlift + io.airlift bootstrap ${dep.airlift.version} @@ -73,22 +79,6 @@ - - org.apache.maven.plugins - maven-compiler-plugin - - false - - - - - org.apache.maven.plugins - maven-checkstyle-plugin - - **/generated-sources/**/* - - - maven-pmd-plugin @@ -101,7 +91,7 @@ com.github.spotbugs spotbugs-maven-plugin - ${project.basedir}/../src/spotbugs/spotbugs-exclude.xml + config/spotbugs/spotbugs-exclude.xml @@ -110,21 +100,13 @@ - - org.apache.maven.plugins - maven-checkstyle-plugin - - **/generated-sources/**/* - - - org.apache.maven.plugins maven-jar-plugin + e.g. a pom project --> true @@ -135,6 +117,90 @@ + + + org.apache.maven.plugins + maven-checkstyle-plugin + + config/checkstyle/checkstyle.xml + config/checkstyle/suppressions.xml + + + + + com.diffplug.spotless + spotless-maven-plugin + 2.28.0 + + + origin/main + + + + + + *.md + .gitignore + + + + + + true + 4 + + + + + + + + src/main/java/**/*.java + src/test/java/**/*.java + + + + + config/eclipse-formatter/eclipse-airlift.importorder + + + + + + 4.13.0 + config/eclipse-formatter/eclipse-airlift.xml + + + + + + + + org.apache.maven.plugins + maven-enforcer-plugin + + + + [1.8,) + + + + + + + + + pl.project13.maven + git-commit-id-plugin + + true + true + false + true + + + + diff --git a/rewriter/pom.xml b/rewriter/pom.xml index c04330c..eb8e91f 100644 --- a/rewriter/pom.xml +++ b/rewriter/pom.xml @@ -19,15 +19,16 @@ - junit - junit - 4.12 + org.junit.jupiter + junit-jupiter + 5.8.1 test - + - org.testng - testng + org.junit.jupiter + junit-jupiter-api + 5.8.1 test diff --git a/rewriter/src/test/java/com/facebook/coresql/rewriter/TestOrderByRewriter.java b/rewriter/src/test/java/com/facebook/coresql/rewriter/TestOrderByRewriter.java index 774037c..943d9f2 100644 --- a/rewriter/src/test/java/com/facebook/coresql/rewriter/TestOrderByRewriter.java +++ b/rewriter/src/test/java/com/facebook/coresql/rewriter/TestOrderByRewriter.java @@ -11,21 +11,17 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - package com.facebook.coresql.rewriter; import com.facebook.coresql.parser.AstNode; import com.google.common.collect.ImmutableMap; -import org.testng.annotations.Test; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; import java.util.Map; import java.util.Optional; import static com.facebook.coresql.parser.ParserHelper.parseStatement; -import static org.testng.Assert.assertEquals; -import static org.testng.Assert.assertFalse; -import static org.testng.Assert.assertNotNull; -import static org.testng.Assert.assertTrue; public class TestOrderByRewriter { @@ -51,58 +47,59 @@ public class TestOrderByRewriter "CREATE TABLE T AS SELECT TRANSFORM(ARRAY[x], x -> x + 2) AS arra FROM T;", "INSERT INTO T SELECT TRANSFORM(ARRAY[x], x -> x + 2) AS arra FROM T;", "SELECT ROW_NUMBER() OVER(PARTITION BY x) FROM T;", - "SELECT x, SUM(y) OVER (PARTITION BY y ORDER BY 1) AS min\n" + - "FROM (values ('b',10), ('a', 10)) AS T(x, y)\n;", - "SELECT\n" + - " CAST(MAP() AS map>) AS \"bool_tensor_features\";", + "SELECT x, SUM(y) OVER (PARTITION BY y ORDER BY 1) AS min\n" + "FROM (values ('b',10), ('a', 10)) AS T(x, y)\n;", + "SELECT\n" + " CAST(MAP() AS map>) AS \"bool_tensor_features\";", "SELECT f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f())))))))))))))))))))))))))))));", - "SELECT abs, 2 as abs;", - }; - - private static final ImmutableMap STATEMENT_TO_REWRITTEN_STATEMENT = - new ImmutableMap.Builder() - .put("CREATE TABLE blah AS SELECT * FROM T ORDER BY y;", - "CREATE TABLE blah AS SELECT * FROM T;") - .put("INSERT INTO blah SELECT * FROM T ORDER BY y;", - "INSERT INTO blah SELECT * FROM T;") - .put("CREATE TABLE blah AS SELECT * FROM T ORDER BY SUM(payment);", - "CREATE TABLE blah AS SELECT * FROM T;") - .put("INSERT INTO blah SELECT * FROM (SELECT t.date, t.code, t.qty FROM sales AS t ORDER BY t.date) LIMIT 10;", - "INSERT INTO blah SELECT * FROM (SELECT t.date, t.code, t.qty FROM sales AS t) LIMIT 10;") - .put("CREATE TABLE blah AS SELECT * FROM (SELECT * FROM T) ORDER BY z;", - "CREATE TABLE blah AS SELECT * FROM (SELECT * FROM T);") - .put("CREATE TABLE blah AS SELECT * FROM (SELECT * FROM (SELECT foo FROM T ORDER BY x));", - "CREATE TABLE blah AS SELECT * FROM (SELECT * FROM (SELECT foo FROM T));") - .put("CREATE TABLE blah AS SELECT * FROM (SELECT * FROM (SELECT foo FROM T ORDER BY x LIMIT 10) ORDER BY y) ORDER BY z;", - "CREATE TABLE blah AS SELECT * FROM (SELECT * FROM (SELECT foo FROM T ORDER BY x LIMIT 10));") - .put("CREATE TABLE blah AS SELECT * FROM (SELECT * FROM (SELECT foo FROM T ORDER BY x) ORDER BY y LIMIT 10) ORDER BY z;", - "CREATE TABLE blah AS SELECT * FROM (SELECT * FROM (SELECT foo FROM T) ORDER BY y LIMIT 10);") - .put("CREATE TABLE blah AS SELECT * FROM (SELECT * FROM (SELECT foo FROM T ORDER BY x) ORDER BY y) ORDER BY z LIMIT 10;", - "CREATE TABLE blah AS SELECT * FROM (SELECT * FROM (SELECT foo FROM T)) ORDER BY z LIMIT 10;") - .put("CREATE TABLE blah AS SELECT * FROM (SELECT * FROM (SELECT foo FROM T ORDER BY x) ORDER BY y LIMIT 10) ORDER BY z LIMIT 10;", - "CREATE TABLE blah AS SELECT * FROM (SELECT * FROM (SELECT foo FROM T) ORDER BY y LIMIT 10) ORDER BY z LIMIT 10;") - .put("CREATE TABLE blah AS SELECT * FROM (SELECT * FROM (SELECT foo FROM T ORDER BY x LIMIT 10) ORDER BY y) ORDER BY z LIMIT 10;", - "CREATE TABLE blah AS SELECT * FROM (SELECT * FROM (SELECT foo FROM T ORDER BY x LIMIT 10)) ORDER BY z LIMIT 10;") - .put("CREATE TABLE blah AS SELECT * FROM (SELECT * FROM (SELECT foo FROM T ORDER BY x LIMIT 10) ORDER BY y LIMIT 10) ORDER BY z;", - "CREATE TABLE blah AS SELECT * FROM (SELECT * FROM (SELECT foo FROM T ORDER BY x LIMIT 10) ORDER BY y LIMIT 10);") - .build(); + "SELECT abs, 2 as abs;"}; + private static final ImmutableMap STATEMENT_TO_REWRITTEN_STATEMENT = new ImmutableMap.Builder() + .put("CREATE TABLE blah AS SELECT * FROM T ORDER BY y;", "CREATE TABLE blah AS SELECT * FROM T;") + .put("INSERT INTO blah SELECT * FROM T ORDER BY y;", "INSERT INTO blah SELECT * FROM T;") + .put("CREATE TABLE blah AS SELECT * FROM T ORDER BY SUM(payment);", "CREATE TABLE blah AS SELECT * FROM T;") + .put( + "INSERT INTO blah SELECT * FROM (SELECT t.date, t.code, t.qty FROM sales AS t ORDER BY t.date) LIMIT 10;", + "INSERT INTO blah SELECT * FROM (SELECT t.date, t.code, t.qty FROM sales AS t) LIMIT 10;") + .put( + "CREATE TABLE blah AS SELECT * FROM (SELECT * FROM T) ORDER BY z;", + "CREATE TABLE blah AS SELECT * FROM (SELECT * FROM T);") + .put( + "CREATE TABLE blah AS SELECT * FROM (SELECT * FROM (SELECT foo FROM T ORDER BY x));", + "CREATE TABLE blah AS SELECT * FROM (SELECT * FROM (SELECT foo FROM T));") + .put( + "CREATE TABLE blah AS SELECT * FROM (SELECT * FROM (SELECT foo FROM T ORDER BY x LIMIT 10) ORDER BY y) ORDER BY z;", + "CREATE TABLE blah AS SELECT * FROM (SELECT * FROM (SELECT foo FROM T ORDER BY x LIMIT 10));") + .put( + "CREATE TABLE blah AS SELECT * FROM (SELECT * FROM (SELECT foo FROM T ORDER BY x) ORDER BY y LIMIT 10) ORDER BY z;", + "CREATE TABLE blah AS SELECT * FROM (SELECT * FROM (SELECT foo FROM T) ORDER BY y LIMIT 10);") + .put( + "CREATE TABLE blah AS SELECT * FROM (SELECT * FROM (SELECT foo FROM T ORDER BY x) ORDER BY y) ORDER BY z LIMIT 10;", + "CREATE TABLE blah AS SELECT * FROM (SELECT * FROM (SELECT foo FROM T)) ORDER BY z LIMIT 10;") + .put( + "CREATE TABLE blah AS SELECT * FROM (SELECT * FROM (SELECT foo FROM T ORDER BY x) ORDER BY y LIMIT 10) ORDER BY z LIMIT 10;", + "CREATE TABLE blah AS SELECT * FROM (SELECT * FROM (SELECT foo FROM T) ORDER BY y LIMIT 10) ORDER BY z LIMIT 10;") + .put( + "CREATE TABLE blah AS SELECT * FROM (SELECT * FROM (SELECT foo FROM T ORDER BY x LIMIT 10) ORDER BY y) ORDER BY z LIMIT 10;", + "CREATE TABLE blah AS SELECT * FROM (SELECT * FROM (SELECT foo FROM T ORDER BY x LIMIT 10)) ORDER BY z LIMIT 10;") + .put( + "CREATE TABLE blah AS SELECT * FROM (SELECT * FROM (SELECT foo FROM T ORDER BY x LIMIT 10) ORDER BY y LIMIT 10) ORDER BY z;", + "CREATE TABLE blah AS SELECT * FROM (SELECT * FROM (SELECT foo FROM T ORDER BY x LIMIT 10) ORDER BY y LIMIT 10);") + .build(); private void assertStatementUnchanged(String originalStatement) { - assertFalse(getRewriteResult(originalStatement).isPresent()); + Assertions.assertFalse(getRewriteResult(originalStatement).isPresent()); } private void assertStatementRewritten(String originalStatement, String expectedStatement) { Optional result = getRewriteResult(originalStatement); - assertTrue(result.isPresent()); - assertEquals(result.get().getRewrittenSql(), expectedStatement); + Assertions.assertTrue(result.isPresent(), originalStatement); + Assertions.assertEquals(result.get().getRewrittenSql(), expectedStatement, originalStatement); } private Optional getRewriteResult(String originalStatement) { AstNode ast = parseStatement(originalStatement); - assertNotNull(ast); + Assertions.assertNotNull(ast); return new OrderByRewriter(ast).rewrite(); } @@ -112,7 +109,6 @@ public void rewriteTest() for (Map.Entry entry : STATEMENT_TO_REWRITTEN_STATEMENT.entrySet()) { assertStatementRewritten(entry.getKey(), entry.getValue()); } - for (String sql : STATEMENTS_THAT_DONT_NEED_REWRITE) { assertStatementUnchanged(sql); } diff --git a/settings.gradle b/settings.gradle new file mode 100644 index 0000000..b4b132d --- /dev/null +++ b/settings.gradle @@ -0,0 +1,11 @@ +/* + * This file was generated by the Gradle 'init' task. + */ + +rootProject.name = 'presto-coresql' +include(':presto-coresql-linter') +include(':presto-coresql-rewriter') +include(':presto-coresql-parser') +project(":presto-coresql-linter").projectDir = file('linter') +project(":presto-coresql-rewriter").projectDir = file('rewriter') +project(":presto-coresql-parser").projectDir = file('parser') diff --git a/sphinx/Makefile b/sphinx/Makefile new file mode 100644 index 0000000..2b9b071 --- /dev/null +++ b/sphinx/Makefile @@ -0,0 +1,20 @@ +# Minimal makefile for Sphinx documentation +# + +# You can set these variables from the command line, and also +# from the environment for the first two. +SPHINXOPTS ?= +SPHINXBUILD ?= sphinx-build +SOURCEDIR = src +BUILDDIR = ../target/site/sphinx + +# Put it first so that "make" without argument is like "make help". +help: + @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) + +.PHONY: help Makefile + +# Catch-all target: route all unknown targets to Sphinx using the new +# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). +%: Makefile + @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) diff --git a/sphinx/make.bat b/sphinx/make.bat new file mode 100644 index 0000000..dc1312a --- /dev/null +++ b/sphinx/make.bat @@ -0,0 +1,35 @@ +@ECHO OFF + +pushd %~dp0 + +REM Command file for Sphinx documentation + +if "%SPHINXBUILD%" == "" ( + set SPHINXBUILD=sphinx-build +) +set SOURCEDIR=source +set BUILDDIR=build + +%SPHINXBUILD% >NUL 2>NUL +if errorlevel 9009 ( + echo. + echo.The 'sphinx-build' command was not found. Make sure you have Sphinx + echo.installed, then set the SPHINXBUILD environment variable to point + echo.to the full path of the 'sphinx-build' executable. Alternatively you + echo.may add the Sphinx directory to PATH. + echo. + echo.If you don't have Sphinx installed, grab it from + echo.https://www.sphinx-doc.org/ + exit /b 1 +) + +if "%1" == "" goto help + +%SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O% +goto end + +:help +%SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O% + +:end +popd diff --git a/sphinx/src/_static/logo-presto-color.svg b/sphinx/src/_static/logo-presto-color.svg new file mode 100644 index 0000000..e4a0937 --- /dev/null +++ b/sphinx/src/_static/logo-presto-color.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/sphinx/src/_static/pygments.css b/sphinx/src/_static/pygments.css new file mode 100644 index 0000000..8a76dc5 --- /dev/null +++ b/sphinx/src/_static/pygments.css @@ -0,0 +1,74 @@ +pre { line-height: 125%; } +td.linenos .normal { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; } +span.linenos { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; } +td.linenos .special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } +span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } +.highlight .hll { background-color: #ffffcc } +.highlight { background: #fff; } +.highlight .c { color: #408090; font-style: italic } /* Comment */ +.highlight .err { border: 1px solid #FF0000 } /* Error */ +.highlight .k { color: #007020; font-weight: bold } /* Keyword */ +.highlight .o { color: #666666 } /* Operator */ +.highlight .ch { color: #408090; font-style: italic } /* Comment.Hashbang */ +.highlight .cm { color: #408090; font-style: italic } /* Comment.Multiline */ +.highlight .cp { color: #007020 } /* Comment.Preproc */ +.highlight .cpf { color: #408090; font-style: italic } /* Comment.PreprocFile */ +.highlight .c1 { color: #408090; font-style: italic } /* Comment.Single */ +.highlight .cs { color: #408090; background-color: #fff0f0 } /* Comment.Special */ +.highlight .gd { color: #A00000 } /* Generic.Deleted */ +.highlight .ge { font-style: italic } /* Generic.Emph */ +.highlight .gr { color: #FF0000 } /* Generic.Error */ +.highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */ +.highlight .gi { color: #00A000 } /* Generic.Inserted */ +.highlight .go { color: #333333 } /* Generic.Output */ +.highlight .gp { color: #c65d09; font-weight: bold } /* Generic.Prompt */ +.highlight .gs { font-weight: bold } /* Generic.Strong */ +.highlight .gu { color: #800080; font-weight: bold } /* Generic.Subheading */ +.highlight .gt { color: #0044DD } /* Generic.Traceback */ +.highlight .kc { color: #007020; font-weight: bold } /* Keyword.Constant */ +.highlight .kd { color: #007020; font-weight: bold } /* Keyword.Declaration */ +.highlight .kn { color: #007020; font-weight: bold } /* Keyword.Namespace */ +.highlight .kp { color: #007020 } /* Keyword.Pseudo */ +.highlight .kr { color: #007020; font-weight: bold } /* Keyword.Reserved */ +.highlight .kt { color: #902000 } /* Keyword.Type */ +.highlight .m { color: #208050 } /* Literal.Number */ +.highlight .s { color: #4070a0 } /* Literal.String */ +.highlight .na { color: #4070a0 } /* Name.Attribute */ +.highlight .nb { color: #007020 } /* Name.Builtin */ +.highlight .nc { color: #0e84b5; font-weight: bold } /* Name.Class */ +.highlight .no { color: #60add5 } /* Name.Constant */ +.highlight .nd { color: #555555; font-weight: bold } /* Name.Decorator */ +.highlight .ni { color: #d55537; font-weight: bold } /* Name.Entity */ +.highlight .ne { color: #007020 } /* Name.Exception */ +.highlight .nf { color: #06287e } /* Name.Function */ +.highlight .nl { color: #002070; font-weight: bold } /* Name.Label */ +.highlight .nn { color: #0e84b5; font-weight: bold } /* Name.Namespace */ +.highlight .nt { color: #062873; font-weight: bold } /* Name.Tag */ +.highlight .nv { color: #bb60d5 } /* Name.Variable */ +.highlight .ow { color: #007020; font-weight: bold } /* Operator.Word */ +.highlight .w { color: #bbbbbb } /* Text.Whitespace */ +.highlight .mb { color: #208050 } /* Literal.Number.Bin */ +.highlight .mf { color: #208050 } /* Literal.Number.Float */ +.highlight .mh { color: #208050 } /* Literal.Number.Hex */ +.highlight .mi { color: #208050 } /* Literal.Number.Integer */ +.highlight .mo { color: #208050 } /* Literal.Number.Oct */ +.highlight .sa { color: #4070a0 } /* Literal.String.Affix */ +.highlight .sb { color: #4070a0 } /* Literal.String.Backtick */ +.highlight .sc { color: #4070a0 } /* Literal.String.Char */ +.highlight .dl { color: #4070a0 } /* Literal.String.Delimiter */ +.highlight .sd { color: #4070a0; font-style: italic } /* Literal.String.Doc */ +.highlight .s2 { color: #4070a0 } /* Literal.String.Double */ +.highlight .se { color: #4070a0; font-weight: bold } /* Literal.String.Escape */ +.highlight .sh { color: #4070a0 } /* Literal.String.Heredoc */ +.highlight .si { color: #70a0d0; font-style: italic } /* Literal.String.Interpol */ +.highlight .sx { color: #c65d09 } /* Literal.String.Other */ +.highlight .sr { color: #235388 } /* Literal.String.Regex */ +.highlight .s1 { color: #4070a0 } /* Literal.String.Single */ +.highlight .ss { color: #517918 } /* Literal.String.Symbol */ +.highlight .bp { color: #007020 } /* Name.Builtin.Pseudo */ +.highlight .fm { color: #06287e } /* Name.Function.Magic */ +.highlight .vc { color: #bb60d5 } /* Name.Variable.Class */ +.highlight .vg { color: #bb60d5 } /* Name.Variable.Global */ +.highlight .vi { color: #bb60d5 } /* Name.Variable.Instance */ +.highlight .vm { color: #bb60d5 } /* Name.Variable.Magic */ +.highlight .il { color: #208050 } /* Literal.Number.Integer.Long */ \ No newline at end of file diff --git a/sphinx/src/_static/svg.css b/sphinx/src/_static/svg.css new file mode 100644 index 0000000..919a09e --- /dev/null +++ b/sphinx/src/_static/svg.css @@ -0,0 +1,34 @@ +div .ebnf +{ + display: block; + padding: 2pt; + margin-bottom: 22pt; + font:10px 'Roboto-Mono',monospace; +} + +@namespace "http://www.w3.org/2000/svg"; + .line {fill: none; stroke: #001133; stroke-width: 1;} + .bold-line {stroke: #000714; shape-rendering: crispEdges; stroke-width: 2;} + .thin-line {stroke: #000A1F; shape-rendering: crispEdges;} + .filled {fill: #001133; stroke: none;} + text.terminal {font-family: Roboto, Sans-serif; + font-size: 10px; + fill: #000714; + font-weight: bold; + } + text.nonterminal {font-family: Roboto, Sans-serif; + font-size: 10px; + fill: #00091A; + font-weight: normal; + } + text.regexp {font-family: Roboto, Sans-serif; + font-size: 10px; + fill: #000A1F; + font-weight: normal; + } + rect, circle, polygon {fill: #001133; stroke: #001133;} + rect.terminal {fill: #4D88FF; stroke: #001133; stroke-width: 1;} + rect.nonterminal {fill: #9EBFFF; stroke: #001133; stroke-width: 1;} + rect.text {fill: none; stroke: none;} + polygon.regexp {fill: #C7DAFF; stroke: #001133; stroke-width: 1;} + diff --git a/sphinx/src/_static/tabs.css b/sphinx/src/_static/tabs.css new file mode 100644 index 0000000..3710248 --- /dev/null +++ b/sphinx/src/_static/tabs.css @@ -0,0 +1,89 @@ +.sphinx-tabs { + margin-bottom: 1rem; +} + +[role="tablist"] { + border-bottom: 1px solid rgb(3, 1, 70); +} + +.sphinx-tabs-tab { + position: relative; + font-family: Roboto,sans-serif; + color: rgb(3, 1, 70); + line-height: 24px; + margin: 0; + font-size: 16px; + font-weight: 400; + background-color: rgba(255, 255, 255, 0); + border-radius: 5px 5px 0 0; + border: 0; + padding: 1rem 1.5rem; + margin-bottom: 0; +} + +.sphinx-tabs-tab[aria-selected="true"] { + font-weight: 700; + border: 1px solid rgb(3, 1, 70); + border-bottom: 1px solid white; + margin: -1px; + background-color: white; +} + +.sphinx-tabs-tab:focus { + z-index: 1; + outline-offset: 1px; +} + +.sphinx-tabs-panel { + position: relative; + padding: 1rem; + border: 1px solid rgb(3, 1, 70); + margin: 0px -1px -1px -1px; + border-radius: 0 0 5px 5px; + border-top: 0; + background: white; +} + +.sphinx-tabs-panel.code-tab { + padding: 0.4rem; +} + +.sphinx-tab img { + margin-bottom: 24 px; +} + +/* Dark theme preference styling */ + +@media (prefers-color-scheme: dark) { + body[data-theme="auto"] .sphinx-tabs-panel { + color: white; + background-color: rgb(3, 1, 70); + } + + body[data-theme="auto"] .sphinx-tabs-tab { + color: white; + background-color: rgba(255, 255, 255, 0.05); + } + + body[data-theme="auto"] .sphinx-tabs-tab[aria-selected="true"] { + border-bottom: 1px solid rgb(3, 1, 70); + background-color: rgb(3, 1, 70); + } +} + +/* Explicit dark theme styling */ + +body[data-theme="dark"] .sphinx-tabs-panel { + color: white; + background-color: rgb(3, 1, 70); +} + +body[data-theme="dark"] .sphinx-tabs-tab { + color: white; + background-color: rgba(255, 255, 255, 0.05); +} + +body[data-theme="dark"] .sphinx-tabs-tab[aria-selected="true"] { + border-bottom: 2px solid rgb(3, 1, 70); + background-color: rgb(3, 1, 70); +} diff --git a/sphinx/src/changelog.rst b/sphinx/src/changelog.rst new file mode 100644 index 0000000..342228c --- /dev/null +++ b/sphinx/src/changelog.rst @@ -0,0 +1,115 @@ + +************************ +Changelog +************************ + + +Latest Changes since |PRESTO_SQL_PARSER_VERSION| +============================================================= + + + * **doc: better RR Diagram integration** + + Andreas Reichel, 2023-01-07 + * **doc: US compliant wording** + + Andreas Reichel, 2023-01-04 + * **doc: fix 2 more name references** + + Andreas Reichel, 2023-01-04 + * **refactor: fix links and names** + + Andreas Reichel, 2023-01-04 + * **doc: changelog.rst** + + Andreas Reichel, 2023-01-03 + * **build: Gradle Build and Rail Road Diagrams** + + Andreas Reichel, 2023-01-03 + * **test: Add many more Real Life SQL statements** + + Andreas Reichel, 2022-12-27 + * **style: Tune the Eclipse Formatter Configuration** + + Andreas Reichel, 2022-12-27 + * **doc: Update the readme** + + Andreas Reichel, 2022-12-26 + * **fix: Try using native GIT** + + Andreas Reichel, 2022-12-26 + * **fix: Git Branch is MAIN** + + Andreas Reichel, 2022-12-26 + * **doc: Add basic HTML documentation based on Sphinx** + + Andreas Reichel, 2022-12-26 + * **build: Add Spotless Plugin** + + Andreas Reichel, 2022-12-26 + * **build: Add better SQL Test Infrastructure** + + Andreas Reichel, 2022-12-26 + * **More cleanup** + + Sreeni Viswanadha, 2022-10-13 + * **Really fix BuiltinFunctionCall** + + Sreeni Viswanadha, 2022-10-12 + * **Fix up builtin function calls** + + Sreeni Viswanadha, 2022-10-12 + * **Make RewriteResult fields final** + + Nathan Mugerwa, 2021-04-26 + * **Add sqllogictest** + + Nathan Mugerwa, 2021-04-09 + * **Refactor Rewriter API** + + Nathan Mugerwa, 2021-03-26 + * **Add base rewriter classes with specific implementation for rewriting ORDER BY anti-pattern** + + Nathan Mugerwa, 2021-03-17 + * **Add Java 8 flag to travis config** + + Nathan Mugerwa, 2021-03-15 + * **Move linter code into top-level package** + + Nathan Mugerwa, 2021-03-10 + * **[maven-release-plugin] prepare for next development iteration** + + Leiqing Cai, 2021-02-12 + +Version 0.1 +============================================================= + + + * **[maven-release-plugin] prepare release 0.1** + + Leiqing Cai, 2021-02-12 + * **Add parser linting support** + + Nathan Mugerwa, 2021-02-05 + * **Streamlined reserverd/non-reserved word handling.** + + Sreeni Viswanadha, 2020-12-30 + * **Travis CI configuration.** + + Sreeni Viswanadha, 2020-12-29 + * **SQL 16 + Presto extensions JavaCC grammar.** + + Sreeni Viswanadha, 2020-12-29 + * **JavaCC C++ code generator configuration.** + + Sreeni Viswanadha, 2020-12-29 + * **JavaCC Java code generator configuration.** + + Sreeni Viswanadha, 2020-12-29 + * **Update README.md** + + Rongrong Zhong, 2020-10-22 + * **Initial commit** + + Rongrong Zhong, 2020-10-22 + diff --git a/sphinx/src/conf.py b/sphinx/src/conf.py new file mode 100644 index 0000000..3c37daf --- /dev/null +++ b/sphinx/src/conf.py @@ -0,0 +1,36 @@ +# Configuration file for the Sphinx documentation builder. +# +# For the full list of built-in configuration values, see the documentation: +# https://www.sphinx-doc.org/en/master/usage/configuration.html + +# -- Project information ----------------------------------------------------- +# https://www.sphinx-doc.org/en/master/usage/configuration.html#project-information + +project = 'Presto SQL Parser' +copyright = '2022, Andreas Reichel' +author = 'Andreas Reichel' +release = '0.2' + +# -- General configuration --------------------------------------------------- +# https://www.sphinx-doc.org/en/master/usage/configuration.html#general-configuration + +extensions = ['myst_parser', 'sphinx.ext.autodoc', 'sphinx.ext.autosectionlabel', 'sphinx.ext.extlinks', 'sphinx-prompt', 'sphinx_substitution_extensions', 'sphinx_issues', 'sphinx_tabs.tabs', 'pygments.sphinxext', ] + +templates_path = ['_templates'] +exclude_patterns = [] +source_encoding = 'utf-8-sig' +pygments_style = 'friendly' +show_sphinx = False +master_doc = 'index' +source_suffix = ['.rst', '.md'] + + +# -- Options for HTML output ------------------------------------------------- +# https://www.sphinx-doc.org/en/master/usage/configuration.html#options-for-html-output + +html_theme = 'sphinx_book_theme' +html_theme_path = ["_themes"] +html_static_path = ['_static'] +html_logo = '_static/logo-presto-color.svg' +html_css_files = ["svg.css"] + diff --git a/sphinx/src/contribution.rst b/sphinx/src/contribution.rst new file mode 100644 index 0000000..2be3d63 --- /dev/null +++ b/sphinx/src/contribution.rst @@ -0,0 +1,139 @@ +****************************** +How to contribute +****************************** + +Error Reports +============================== + +Please report any issue to the `GitHub Issue Tracker `_: + + 1) Provide the **Sample SQL** (shortened and simplified, properly formatted) + 2) State the exact **Version of the Presto SQL:2016 Parser** + 3) State the **RDBMS** in use and point on the applicable Grammar specification + 4) Please write in **English** and post **Plain Text only** (avoiding screen shots or bitmap pictures). + +Feature Requests +============================== + +**Presto SQL:2016 Parser** is a demand-driven software library, where many contributors have shared solutions for their own needs. Requests for new features have a good chance to get implemented when + + 1) the request is about a commonly used feature for one of the major RDBMS + 2) or the request is backed by a sponsor or a bounty, which may attract developers to spend their time on it. + +Implementing new Features +============================== + +The team around **Presto SQL:2016 Parser** warmly welcomes Code Contributions and Pull Requests. Please follow the guidance below and do not hesitate to ask us for assistance. + +Create a new Git Branch +------------------------------ + +When starting afresh, clone the **Presto SQL:2016 Parser** from the `GitHub` repository: + +.. code-block:: Bash + + git clone https://github.com/prestodb/sql.git + cd sql + git branch + +When having a local repository already, then pull/merge from the `GitHub` repository: + +.. code-block:: Bash + + cd sql + git pull origin master + git branch + +Amend the Code +------------------------------ + +The **Presto SQL:2016 Parser** is generated by ``JavaCC`` based on the provided Grammar. The Grammar defines how a SQL Text is read and translated into Java Objects. Thus any contribution will depend on the following steps: + + 1) Edit the ``JavaCC`` Grammar at ``sql/parser/grammar`` + 2) Add or edit the Java Classes at ``sql/parser/src/main/java/com/facebook/coresql/parser/`` to facilitate this Grammar. + 3) Provide Java Unit Tests at ``sql/parser/src/test/java/com/facebook/coresql/parser/`` to test the new feature + + * The test should call the method ``TestUtils.assertParseAndUnparse()`` at least one time + * The test should ensure complete coverage of the new Java Classes. + * The complete test suite must succeed. + + 4) Add the description of the new feature to the ``README.md`` file, section `Extensions`. + 5) Build the package with ``Maven`` and ensure, all checks do pass (PMD and CheckStyle and Code Formatting). + +Manage Reserved Keywords +------------------------------ + +Since **Presto SQL:2016 Parser** is built by JavaCC from a Token based Grammar, ``Reserved Keywords`` need a special treatment. All Tokens of the Grammar would become ``Reserved Keywords`` -- unless explicitly allowed. + +.. code-block:: sql + :caption: Allow Keyword example + + -- is a Token, recently defined in the Grammar + -- Although it is not restricted by the SQL Standard and could be used for Column, Table and Alias names + -- Explicitly allowing OVERLAPS by adding it to the NonReservedKeywords() Production will allow for parsing the following statement + + SELECT Overlaps( overlaps ) AS overlaps + FROM overlaps.overlaps overlaps + WHERE overlaps = 'overlaps' + AND (CURRENT_TIME, INTERVAL '1' HOUR) OVERLAPS (CURRENT_TIME, INTERVAL -'1' HOUR) + ; + +So we will need to define and allow any Keywords which may be allowed for Object Names (such as `Schema`, `Table`, `Column`, `Function`, `Alias`). This White-List must be updated whenever the Tokens of the Grammar change (e. |_| g. when adding a new Token or Production). +Otherwise any new Token or Production will become a ``Reserved Keyword`` automatically and can't be used for Object Names without quoting. + + +Commit a Pull Request +--------------------------------- + +.. code-block:: Bash + + cd sql + git add -A + git commit -m -m <description> + git push –set-upstream origin <new-branch> + +Follow the advice on `Meaningful Commit Messages <https://www.freecodecamp.org/news/how-to-write-better-git-commit-messages/>`_ and consider using `Commitizen <https://commitizen-tools.github.io/commitizen/>`_ when describing your commits. + +Please consider using `Conventional Commits` and structure your commit message as follows: + +.. code-block:: text + :caption: Conventional Commit Message Structure + + <type>[optional scope]: <description> + + [optional body] + + [BREAKING CHANGE: <change_description>] + + [optional footer(s)] + +.. list-table:: Commit Message Types + :widths: 15 85 + :header-rows: 1 + + * - Type + - Description + * - **feat** + - introduce a new feature + * - **fix** + - patches a bug in your codebase (bugfix or hotfix) + * - **build** + - changes that affect the build system or external dependencies + * - **chore** + - updates dependencies and does not relate to fix or feat and does not modify src or test files. + * - **ci** + - changes that affect the continuous integration process + * - **docs** + - updates the documentation or introduce documentation + * - **style** + - updates the formatting of code; remove white spaces, add missing spaces, remove unnecessary newlines + * - **refactor** + - reactors code segments to optimize readability without changing behavior + * - **perf** + - improve performance + * - **test** + - add/remove/update tests + * - **revert** + - reverts one or many previous commits + +Please visit `Better Programming <https://betterprogramming.pub/write-better-git-commit-messages-to-increase-your-productivity-89fa773e8375>`_ for more information and guidance. diff --git a/sphinx/src/index.rst b/sphinx/src/index.rst new file mode 100644 index 0000000..08caa30 --- /dev/null +++ b/sphinx/src/index.rst @@ -0,0 +1,62 @@ +############################## +Presto SQL:2016 Parser Library +############################## + +.. toctree:: + :maxdepth: 2 + :hidden: + + usage + contribution + syntax + keywords + changelog + +.. image:: https://maven-badges.herokuapp.com/maven-central/com.facebook.presto/presto-coresql/badge.svg + :alt: Maven Repo + +.. image:: https://github.com/prestodb/sql/actions/workflows/maven.yml/badge.svg + :alt: Maven Build Status + +.. image:: https://www.javadoc.io/badge/com.facebook.presto/presto-coresql.svg + :alt: Java Docs + +**Presto SQL:2016 Parser** is a SQL statement parser built from JavaCC. It translates SQLs in a traversable hierarchy of Java classes. + +Latest stable release: |PRESTO_SQL_PARSER_STABLE_VERSION_LINK| + +Development version: |PRESTO_SQL_PARSER_SNAPSHOT_VERSION_LINK| + +****************************** +SQL Dialects +****************************** + +**Presto SQL:2016 Parser** is SQL:2016 compliant and provides support various RDBMS such as: + + * Oracle Database + * MS SqlServer + * MySQL and MariaDB + * PostgreSQL + * H2 + +Although support for specific dialects is work in progress and has not been implemented yet. + +******************************* +Features +******************************* + + * Comprehensive support for statements: + - QUERY: ``SELECT ...`` + - DML: ``INSERT ... INTO ...`` ``UPDATE ...`` ``MERGE ... INTO ...`` ``DELETE ... FROM ...`` + - DDL: ``CREATE ...`` ``ALTER ...`` ``DROP ...`` + + * Nested Expressions (e.g. Sub-Selects) + * ``WITH`` clauses + * Un-Parser for a Statement AST Node + * Can generate both Java and C++ Parser/Unparser + + + + + + diff --git a/sphinx/src/keywords.rst b/sphinx/src/keywords.rst new file mode 100644 index 0000000..15d3913 --- /dev/null +++ b/sphinx/src/keywords.rst @@ -0,0 +1,231 @@ +*********************** +Restricted Keywords +*********************** + +The following Keywords are **restricted** in Version |PRESTO_SQL_PARSER_VERSION| and must not be used for **Naming Objects**: + ++----------------------+-------------+-----------+ +| **Keyword** | Parser | SQL:2016 | ++----------------------+-------------+-----------+ +| ABSENT | Yes | Yes | ++----------------------+-------------+-----------+ +| ALL | Yes | Yes | ++----------------------+-------------+-----------+ +| AND | Yes | Yes | ++----------------------+-------------+-----------+ +| ANY | Yes | Yes | ++----------------------+-------------+-----------+ +| AS | Yes | Yes | ++----------------------+-------------+-----------+ +| BETWEEN | Yes | Yes | ++----------------------+-------------+-----------+ +| BOTH | Yes | Yes | ++----------------------+-------------+-----------+ +| CASEWHEN | Yes | | ++----------------------+-------------+-----------+ +| CHECK | Yes | Yes | ++----------------------+-------------+-----------+ +| CONNECT | Yes | | ++----------------------+-------------+-----------+ +| CONNECT_BY_ROOT | Yes | Yes | ++----------------------+-------------+-----------+ +| CONSTRAINT | Yes | Yes | ++----------------------+-------------+-----------+ +| CREATE | Yes | | ++----------------------+-------------+-----------+ +| CROSS | Yes | Yes | ++----------------------+-------------+-----------+ +| CURRENT | Yes | Yes | ++----------------------+-------------+-----------+ +| DISTINCT | Yes | Yes | ++----------------------+-------------+-----------+ +| DOUBLE | Yes | | ++----------------------+-------------+-----------+ +| ELSE | Yes | Yes | ++----------------------+-------------+-----------+ +| EXCEPT | Yes | Yes | ++----------------------+-------------+-----------+ +| EXISTS | Yes | Yes | ++----------------------+-------------+-----------+ +| FETCH | Yes | Yes | ++----------------------+-------------+-----------+ +| FOR | Yes | Yes | ++----------------------+-------------+-----------+ +| FORCE | Yes | Yes | ++----------------------+-------------+-----------+ +| FOREIGN | Yes | Yes | ++----------------------+-------------+-----------+ +| FROM | Yes | Yes | ++----------------------+-------------+-----------+ +| FULL | Yes | Yes | ++----------------------+-------------+-----------+ +| GROUP | Yes | Yes | ++----------------------+-------------+-----------+ +| GROUPING | Yes | | ++----------------------+-------------+-----------+ +| HAVING | Yes | Yes | ++----------------------+-------------+-----------+ +| IF | Yes | Yes | ++----------------------+-------------+-----------+ +| IIF | Yes | | ++----------------------+-------------+-----------+ +| IGNORE | Yes | | ++----------------------+-------------+-----------+ +| ILIKE | Yes | Yes | ++----------------------+-------------+-----------+ +| IN | Yes | Yes | ++----------------------+-------------+-----------+ +| INNER | Yes | Yes | ++----------------------+-------------+-----------+ +| INTERSECT | Yes | Yes | ++----------------------+-------------+-----------+ +| INTERVAL | Yes | Yes | ++----------------------+-------------+-----------+ +| INTO | Yes | Yes | ++----------------------+-------------+-----------+ +| IS | Yes | Yes | ++----------------------+-------------+-----------+ +| JOIN | Yes | Yes | ++----------------------+-------------+-----------+ +| LATERAL | Yes | Yes | ++----------------------+-------------+-----------+ +| LEFT | Yes | Yes | ++----------------------+-------------+-----------+ +| LIKE | Yes | Yes | ++----------------------+-------------+-----------+ +| LIMIT | Yes | Yes | ++----------------------+-------------+-----------+ +| MINUS | Yes | Yes | ++----------------------+-------------+-----------+ +| NATURAL | Yes | Yes | ++----------------------+-------------+-----------+ +| NOCYCLE | Yes | Yes | ++----------------------+-------------+-----------+ +| NOT | Yes | Yes | ++----------------------+-------------+-----------+ +| NULL | Yes | Yes | ++----------------------+-------------+-----------+ +| OFFSET | Yes | Yes | ++----------------------+-------------+-----------+ +| ON | Yes | Yes | ++----------------------+-------------+-----------+ +| ONLY | Yes | Yes | ++----------------------+-------------+-----------+ +| OPTIMIZE | Yes | | ++----------------------+-------------+-----------+ +| OR | Yes | Yes | ++----------------------+-------------+-----------+ +| ORDER | Yes | Yes | ++----------------------+-------------+-----------+ +| OUTER | Yes | Yes | ++----------------------+-------------+-----------+ +| OUTPUT | Yes | Yes | ++----------------------+-------------+-----------+ +| OPTIMIZE | Yes | Yes | ++----------------------+-------------+-----------+ +| PIVOT | Yes | Yes | ++----------------------+-------------+-----------+ +| PROCEDURE | Yes | | ++----------------------+-------------+-----------+ +| PUBLIC | Yes | | ++----------------------+-------------+-----------+ +| RECURSIVE | Yes | Yes | ++----------------------+-------------+-----------+ +| REGEXP | Yes | Yes | ++----------------------+-------------+-----------+ +| RETURNING | Yes | Yes | ++----------------------+-------------+-----------+ +| RIGHT | Yes | Yes | ++----------------------+-------------+-----------+ +| SEL | Yes | | ++----------------------+-------------+-----------+ +| SELECT | Yes | | ++----------------------+-------------+-----------+ +| SEMI | Yes | Yes | ++----------------------+-------------+-----------+ +| SET | Yes | Yes | ++----------------------+-------------+-----------+ +| SOME | Yes | Yes | ++----------------------+-------------+-----------+ +| START | Yes | Yes | ++----------------------+-------------+-----------+ +| TABLES | Yes | | ++----------------------+-------------+-----------+ +| TOP | Yes | Yes | ++----------------------+-------------+-----------+ +| TRAILING | Yes | Yes | ++----------------------+-------------+-----------+ +| UNBOUNDED | Yes | Yes | ++----------------------+-------------+-----------+ +| UNION | Yes | Yes | ++----------------------+-------------+-----------+ +| UNIQUE | Yes | Yes | ++----------------------+-------------+-----------+ +| UNPIVOT | Yes | Yes | ++----------------------+-------------+-----------+ +| USE | Yes | Yes | ++----------------------+-------------+-----------+ +| USING | Yes | Yes | ++----------------------+-------------+-----------+ +| SQL_CACHE | Yes | Yes | ++----------------------+-------------+-----------+ +| SQL_CALC_FOUND_ROWS | Yes | Yes | ++----------------------+-------------+-----------+ +| SQL_NO_CACHE | Yes | Yes | ++----------------------+-------------+-----------+ +| STRAIGHT_JOIN | Yes | Yes | ++----------------------+-------------+-----------+ +| VALUE | Yes | Yes | ++----------------------+-------------+-----------+ +| VALUES | Yes | Yes | ++----------------------+-------------+-----------+ +| VARYING | Yes | Yes | ++----------------------+-------------+-----------+ +| WHEN | Yes | Yes | ++----------------------+-------------+-----------+ +| WHERE | Yes | Yes | ++----------------------+-------------+-----------+ +| WINDOW | Yes | Yes | ++----------------------+-------------+-----------+ +| WITH | Yes | Yes | ++----------------------+-------------+-----------+ +| XOR | Yes | Yes | ++----------------------+-------------+-----------+ +| XMLSERIALIZE | Yes | Yes | ++----------------------+-------------+-----------+ +| SEL | Yes | Yes | ++----------------------+-------------+-----------+ +| SELECT | Yes | Yes | ++----------------------+-------------+-----------+ +| DATE | Yes | Yes | ++----------------------+-------------+-----------+ +| TIME | Yes | Yes | ++----------------------+-------------+-----------+ +| TIMESTAMP | Yes | Yes | ++----------------------+-------------+-----------+ +| YEAR | Yes | Yes | ++----------------------+-------------+-----------+ +| MONTH | Yes | Yes | ++----------------------+-------------+-----------+ +| DAY | Yes | Yes | ++----------------------+-------------+-----------+ +| HOUR | Yes | Yes | ++----------------------+-------------+-----------+ +| MINUTE | Yes | Yes | ++----------------------+-------------+-----------+ +| SECOND | Yes | Yes | ++----------------------+-------------+-----------+ +| SUBSTR | Yes | Yes | ++----------------------+-------------+-----------+ +| SUBSTRING | Yes | Yes | ++----------------------+-------------+-----------+ +| TRIM | Yes | Yes | ++----------------------+-------------+-----------+ +| POSITION | Yes | Yes | ++----------------------+-------------+-----------+ +| OVERLAY | Yes | Yes | ++----------------------+-------------+-----------+ +| NEXTVAL | Yes | Yes | ++----------------------+-------------+-----------+ +| 0x | Yes | Yes | ++----------------------+-------------+-----------+ diff --git a/sphinx/src/syntax.rst b/sphinx/src/syntax.rst new file mode 100644 index 0000000..514aef1 --- /dev/null +++ b/sphinx/src/syntax.rst @@ -0,0 +1,30087 @@ + +******************** +Supported SQL Syntax +******************** + +The EBNF and Railroad Diagrams for the supported SQL Syntax. + + +====================================================================================================================== + CompilationUnit +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="235" height="42"> + <polygon points="9 31 1 27 1 35"/> + <polygon points="17 31 9 27 9 35"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#direct-sql-statement" xlink:title="direct_SQL_statement" shape="rect"> + <rect x="43" y="1" width="112" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">direct_SQL_statement</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#eof" xlink:title="EOF" shape="rect"> + <rect x="183" y="22" width="28" height="18" class="nonterminal"/> + <text class="nonterminal" x="187" y="34">EOF</text></a><path class="line" d="m17 31 h2 m20 0 h10 m0 0 h110 m-140 0 l20 0 m-1 0 q-9 0 -9 -10 l0 -1 q0 -10 10 -10 m120 21 l20 0 m-20 0 q10 0 10 -10 l0 -1 q0 -10 -10 -10 m-120 0 h4 m112 0 h4 m20 21 h4 m28 0 h4 m3 0 h-3"/> + <polygon points="225 31 233 27 233 35"/> + <polygon points="225 31 217 27 217 35"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#compilationunit" title="CompilationUnit" shape="rect">CompilationUnit</a></div> + <div>         ::= <a href="#direct-sql-statement" title="direct_SQL_statement" shape="rect">direct_SQL_statement</a>* <a href="#eof" title="EOF" shape="rect">EOF</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Not referenced by any. + </div></td></tr></tbody></table> + + +====================================================================================================================== + non_reserved_word +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="295" height="9625"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="43" y="1" width="14" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="13">A</text> + <rect x="43" y="29" width="56" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="41">ABSOLUTE</text> + <rect x="43" y="57" width="44" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="69">ACTION</text> + <rect x="43" y="85" width="28" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="97">ADA</text> + <rect x="43" y="113" width="28" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="125">ADD</text> + <rect x="43" y="141" width="40" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="153">ADMIN</text> + <rect x="43" y="169" width="36" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="181">AFTER</text> + <rect x="43" y="197" width="48" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="209">ALWAYS</text> + <rect x="43" y="225" width="26" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="237">ASC</text> + <rect x="43" y="253" width="62" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="265">ASSERTION</text> + <rect x="43" y="281" width="70" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="293">ASSIGNMENT</text> + <rect x="43" y="309" width="58" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="321">ATTRIBUTE</text> + <rect x="43" y="337" width="64" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="349">ATTRIBUTES</text> + <rect x="43" y="365" width="44" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="377">BEFORE</text> + <rect x="43" y="393" width="60" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="405">BERNOULLI</text> + <rect x="43" y="421" width="50" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="433">BREADTH</text> + <rect x="43" y="449" width="14" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="461">C</text> + <rect x="43" y="477" width="50" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="489">CASCADE</text> + <rect x="43" y="505" width="52" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="517">CATALOG</text> + <rect x="43" y="533" width="84" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="545">CATALOG_NAME</text> + <rect x="43" y="561" width="38" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="573">CHAIN</text> + <rect x="43" y="589" width="134" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="601">CHARACTER_SET_CATALOG</text> + <rect x="43" y="617" width="118" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="629">CHARACTER_SET_NAME</text> + <rect x="43" y="645" width="130" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="657">CHARACTER_SET_SCHEMA</text> + <rect x="43" y="673" width="92" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="685">CHARACTERISTICS</text> + <rect x="43" y="701" width="68" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="713">CHARACTERS</text> + <rect x="43" y="729" width="78" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="741">CLASS_ORIGIN</text> + <rect x="43" y="757" width="40" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="769">COBOL</text> + <rect x="43" y="785" width="62" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="797">COLLATION</text> + <rect x="43" y="813" width="112" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="825">COLLATION_CATALOG</text> + <rect x="43" y="841" width="94" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="853">COLLATION_NAME</text> + <rect x="43" y="869" width="106" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="881">COLLATION_SCHEMA</text> + <rect x="43" y="897" width="82" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="909">COLUMN_NAME</text> + <rect x="43" y="925" width="114" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="937">COMMAND_FUNCTION</text> + <rect x="43" y="953" width="146" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="965">COMMAND_FUNCTION_CODE</text> + <rect x="43" y="981" width="64" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="993">COMMITTED</text> + <rect x="43" y="1009" width="108" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="1021">CONDITION_NUMBER</text> + <rect x="43" y="1037" width="70" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="1049">CONNECTION</text> + <rect x="43" y="1065" width="104" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="1077">CONNECTION_NAME</text> + <rect x="43" y="1093" width="118" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="1105">CONSTRAINT_CATALOG</text> + <rect x="43" y="1121" width="102" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="1133">CONSTRAINT_NAME</text> + <rect x="43" y="1149" width="114" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="1161">CONSTRAINT_SCHEMA</text> + <rect x="43" y="1177" width="74" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="1189">CONSTRAINTS</text> + <rect x="43" y="1205" width="78" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="1217">CONSTRUCTOR</text> + <rect x="43" y="1233" width="56" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="1245">CONTAINS</text> + <rect x="43" y="1261" width="56" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="1273">CONTINUE</text> + <rect x="43" y="1289" width="80" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="1301">CURSOR_NAME</text> + <rect x="43" y="1317" width="32" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="1329">DATA</text> + <rect x="43" y="1345" width="136" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="1357">DATETIME_INTERVAL_CODE</text> + <rect x="43" y="1373" width="162" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="1385">DATETIME_INTERVAL_PRECISION</text> + <rect x="43" y="1401" width="54" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="1413">DEFAULTS</text> + <rect x="43" y="1429" width="66" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="1441">DEFERRABLE</text> + <rect x="43" y="1457" width="54" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="1469">DEFERRED</text> + <rect x="43" y="1485" width="48" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="1497">DEFINED</text> + <rect x="43" y="1513" width="46" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="1525">DEFINER</text> + <rect x="43" y="1541" width="44" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="1553">DEGREE</text> + <rect x="43" y="1569" width="38" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="1581">DEPTH</text> + <rect x="43" y="1597" width="48" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="1609">DERIVED</text> + <rect x="43" y="1625" width="32" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="1637">DESC</text> + <rect x="43" y="1653" width="68" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="1665">DESCRIPTOR</text> + <rect x="43" y="1681" width="72" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="1693">DIAGNOSTICS</text> + <rect x="43" y="1709" width="54" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="1721">DISPATCH</text> + <rect x="43" y="1737" width="48" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="1749">DOMAIN</text> + <rect x="43" y="1765" width="106" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="1777">DYNAMIC_FUNCTION</text> + <rect x="43" y="1793" width="138" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="1805">DYNAMIC_FUNCTION_CODE</text> + <rect x="43" y="1821" width="58" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="1833">ENFORCED</text> + <rect x="43" y="1849" width="44" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="1861">EQUALS</text> + <rect x="43" y="1877" width="48" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="1889">EXCLUDE</text> + <rect x="43" y="1905" width="60" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="1917">EXCLUDING</text> + <rect x="43" y="1933" width="68" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="1945">EXPRESSION</text> + <rect x="43" y="1961" width="34" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="1973">FINAL</text> + <rect x="43" y="1989" width="34" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="2001">FIRST</text> + <rect x="43" y="2017" width="30" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="2029">FLAG</text> + <rect x="43" y="2045" width="66" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="2057">FOLLOWING</text> + <rect x="43" y="2073" width="52" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="2085">FORTRAN</text> + <rect x="43" y="2101" width="42" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="2113">FOUND</text> + <rect x="43" y="2129" width="14" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="2141">G</text> + <rect x="43" y="2157" width="50" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="2169">GENERAL</text> + <rect x="43" y="2185" width="62" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="2197">GENERATED</text> + <rect x="43" y="2213" width="22" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="2225">GO</text> + <rect x="43" y="2241" width="36" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="2253">GOTO</text> + <rect x="43" y="2269" width="52" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="2281">GRANTED</text> + <rect x="43" y="2297" width="62" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="2309">HIERARCHY</text> + <rect x="43" y="2325" width="16" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="2337">IF</text> + <rect x="43" y="2353" width="44" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="2365">IGNORE</text> + <rect x="43" y="2381" width="60" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="2393">IMMEDIATE</text> + <rect x="43" y="2409" width="92" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="2421">IMPLEMENTATION</text> + <rect x="43" y="2437" width="60" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="2449">INCLUDING</text> + <rect x="43" y="2465" width="62" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="2477">INCREMENT</text> + <rect x="43" y="2493" width="52" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="2505">INITIALLY</text> + <rect x="43" y="2521" width="36" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="2533">INPUT</text> + <rect x="43" y="2549" width="54" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="2561">INSTANCE</text> + <rect x="43" y="2577" width="74" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="2589">INSTANTIABLE</text> + <rect x="43" y="2605" width="48" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="2617">INSTEAD</text> + <rect x="43" y="2633" width="50" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="2645">INVOKER</text> + <rect x="43" y="2661" width="60" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="2673">ISOLATION</text> + <rect x="43" y="2689" width="14" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="2701">K</text> + <rect x="43" y="2717" width="24" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="2729">KEY</text> + <rect x="43" y="2745" width="70" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="2757">KEY_MEMBER</text> + <rect x="43" y="2773" width="52" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="2785">KEY_TYPE</text> + <rect x="43" y="2801" width="30" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="2813">LAST</text> + <rect x="43" y="2829" width="44" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="2841">LENGTH</text> + <rect x="43" y="2857" width="34" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="2869">LEVEL</text> + <rect x="43" y="2885" width="52" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="2897">LOCATOR</text> + <rect x="43" y="2913" width="16" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="2925">M</text> + <rect x="43" y="2941" width="28" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="2953">MAP</text> + <rect x="43" y="2969" width="52" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="2981">MATCHED</text> + <rect x="43" y="2997" width="58" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="3009">MAXVALUE</text> + <rect x="43" y="3025" width="94" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="3037">MESSAGE_LENGTH</text> + <rect x="43" y="3053" width="130" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="3065">MESSAGE_OCTET_LENGTH</text> + <rect x="43" y="3081" width="80" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="3093">MESSAGE_TEXT</text> + <rect x="43" y="3109" width="56" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="3121">MINVALUE</text> + <rect x="43" y="3137" width="36" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="3149">MORE</text> + <rect x="43" y="3165" width="44" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="3177">MUMPS</text> + <rect x="43" y="3193" width="40" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="3205">NAMES</text> + <rect x="43" y="3221" width="48" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="3233">NESTING</text> + <rect x="43" y="3249" width="32" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="3261">NEXT</text> + <rect x="43" y="3277" width="26" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="3289">NFC</text> + <rect x="43" y="3305" width="26" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="3317">NFD</text> + <rect x="43" y="3333" width="32" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="3345">NFKC</text> + <rect x="43" y="3361" width="32" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="3373">NFKD</text> + <rect x="43" y="3389" width="70" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="3401">NORMALIZED</text> + <rect x="43" y="3417" width="54" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="3429">NULLABLE</text> + <rect x="43" y="3445" width="38" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="3457">NULLS</text> + <rect x="43" y="3473" width="48" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="3485">NUMBER</text> + <rect x="43" y="3501" width="42" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="3513">OBJECT</text> + <rect x="43" y="3529" width="44" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="3541">OCTETS</text> + <rect x="43" y="3557" width="46" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="3569">OPTION</text> + <rect x="43" y="3585" width="52" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="3597">OPTIONS</text> + <rect x="43" y="3613" width="58" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="3625">ORDERING</text> + <rect x="43" y="3641" width="66" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="3653">ORDINALITY</text> + <rect x="43" y="3669" width="46" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="3681">OTHERS</text> + <rect x="43" y="3697" width="46" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="3709">OUTPUT</text> + <rect x="43" y="3725" width="68" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="3737">OVERRIDING</text> + <rect x="43" y="3753" width="14" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="3765">P</text> + <rect x="43" y="3781" width="26" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="3793">PAD</text> + <rect x="43" y="3809" width="98" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="3821">PARAMETER_MODE</text> + <rect x="43" y="3837" width="96" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="3849">PARAMETER_NAME</text> + <rect x="43" y="3865" width="166" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="3877">PARAMETER_ORDINAL_POSITION</text> + <rect x="43" y="3893" width="160" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="3905">PARAMETER_SPECIFIC_CATALOG</text> + <rect x="43" y="3921" width="144" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="3933">PARAMETER_SPECIFIC_NAME</text> + <rect x="43" y="3949" width="156" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="3961">PARAMETER_SPECIFIC_SCHEMA</text> + <rect x="43" y="3977" width="46" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="3989">PARTIAL</text> + <rect x="43" y="4005" width="44" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="4017">PASCAL</text> + <rect x="43" y="4033" width="32" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="4045">PATH</text> + <rect x="43" y="4061" width="48" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="4073">PLACING</text> + <rect x="43" y="4089" width="22" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="4101">PLI</text> + <rect x="43" y="4117" width="60" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="4129">PRECEDING</text> + <rect x="43" y="4145" width="54" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="4157">PRESERVE</text> + <rect x="43" y="4173" width="38" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="4185">PRIOR</text> + <rect x="43" y="4201" width="62" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="4213">PRIVILEGES</text> + <rect x="43" y="4229" width="66" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="4241">PROPERTIES</text> + <rect x="43" y="4257" width="40" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="4269">PUBLIC</text> + <rect x="43" y="4285" width="32" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="4297">READ</text> + <rect x="43" y="4313" width="50" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="4325">RELATIVE</text> + <rect x="43" y="4341" width="64" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="4353">REPEATABLE</text> + <rect x="43" y="4369" width="48" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="4381">RESPECT</text> + <rect x="43" y="4397" width="48" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="4409">RESTART</text> + <rect x="43" y="4425" width="52" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="4437">RESTRICT</text> + <rect x="43" y="4453" width="124" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="4465">RETURNED_CARDINALITY</text> + <rect x="43" y="4481" width="98" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="4493">RETURNED_LENGTH</text> + <rect x="43" y="4509" width="134" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="4521">RETURNED_OCTET_LENGTH</text> + <rect x="43" y="4537" width="110" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="4549">RETURNED_SQLSTATE</text> + <rect x="43" y="4565" width="32" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="4577">ROLE</text> + <rect x="43" y="4593" width="50" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="4605">ROUTINE</text> + <rect x="43" y="4621" width="100" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="4633">ROUTINE_CATALOG</text> + <rect x="43" y="4649" width="82" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="4661">ROUTINE_NAME</text> + <rect x="43" y="4677" width="94" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="4689">ROUTINE_SCHEMA</text> + <rect x="43" y="4705" width="72" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="4717">ROW_COUNT</text> + <rect x="43" y="4733" width="36" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="4745">SCALE</text> + <rect x="43" y="4761" width="46" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="4773">SCHEMA</text> + <rect x="43" y="4789" width="80" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="4801">SCHEMA_NAME</text> + <rect x="43" y="4817" width="88" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="4829">SCOPE_CATALOG</text> + <rect x="43" y="4845" width="72" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="4857">SCOPE_NAME</text> + <rect x="43" y="4873" width="84" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="4885">SCOPE_SCHEMA</text> + <rect x="43" y="4901" width="48" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="4913">SECTION</text> + <rect x="43" y="4929" width="52" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="4941">SECURITY</text> + <rect x="43" y="4957" width="28" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="4969">SELF</text> + <rect x="43" y="4985" width="56" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="4997">SEQUENCE</text> + <rect x="43" y="5013" width="72" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="5025">SERIALIZABLE</text> + <rect x="43" y="5041" width="76" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="5053">SERVER_NAME</text> + <rect x="43" y="5069" width="50" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="5081">SESSION</text> + <rect x="43" y="5097" width="30" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="5109">SETS</text> + <rect x="43" y="5125" width="42" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="5137">SIMPLE</text> + <rect x="43" y="5153" width="28" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="5165">SIZE</text> + <rect x="43" y="5181" width="46" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="5193">SOURCE</text> + <rect x="43" y="5209" width="38" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="5221">SPACE</text> + <rect x="43" y="5237" width="82" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="5249">SPECIFIC_NAME</text> + <rect x="43" y="5265" width="36" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="5277">STATE</text> + <rect x="43" y="5293" width="62" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="5305">STATEMENT</text> + <rect x="43" y="5321" width="62" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="5333">STRUCTURE</text> + <rect x="43" y="5349" width="34" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="5361">STYLE</text> + <rect x="43" y="5377" width="96" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="5389">SUBCLASS_ORIGIN</text> + <rect x="43" y="5405" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="5417">T</text> + <rect x="43" y="5433" width="68" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="5445">TABLE_NAME</text> + <rect x="43" y="5461" width="66" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="5473">TEMPORARY</text> + <rect x="43" y="5489" width="28" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="5501">TIES</text> + <rect x="43" y="5517" width="98" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="5529">TOP_LEVEL_COUNT</text> + <rect x="43" y="5545" width="74" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="5557">TRANSACTION</text> + <rect x="43" y="5573" width="112" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="5585">TRANSACTION_ACTIVE</text> + <rect x="43" y="5601" width="144" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="5613">TRANSACTIONS_COMMITTED</text> + <rect x="43" y="5629" width="154" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="5641">TRANSACTIONS_ROLLED_BACK</text> + <rect x="43" y="5657" width="66" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="5669">TRANSFORM</text> + <rect x="43" y="5685" width="72" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="5697">TRANSFORMS</text> + <rect x="43" y="5713" width="98" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="5725">TRIGGER_CATALOG</text> + <rect x="43" y="5741" width="80" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="5753">TRIGGER_NAME</text> + <rect x="43" y="5769" width="92" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="5781">TRIGGER_SCHEMA</text> + <rect x="43" y="5797" width="54" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="5809">TRY_CAST</text> + <rect x="43" y="5825" width="30" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="5837">TYPE</text> + <rect x="43" y="5853" width="68" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="5865">UNBOUNDED</text> + <rect x="43" y="5881" width="78" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="5893">UNCOMMITTED</text> + <rect x="43" y="5909" width="40" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="5921">UNDER</text> + <rect x="43" y="5937" width="56" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="5949">UNNAMED</text> + <rect x="43" y="5965" width="38" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="5977">USAGE</text> + <rect x="43" y="5993" width="156" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="6005">USER_DEFINED_TYPE_CATALOG</text> + <rect x="43" y="6021" width="138" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="6033">USER_DEFINED_TYPE_CODE</text> + <rect x="43" y="6049" width="138" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="6061">USER_DEFINED_TYPE_NAME</text> + <rect x="43" y="6077" width="150" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="6089">USER_DEFINED_TYPE_SCHEMA</text> + <rect x="43" y="6105" width="34" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="6117">VIEW</text> + <rect x="43" y="6133" width="40" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="6145">WORK</text> + <rect x="43" y="6161" width="38" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="6173">WRITE</text> + <rect x="43" y="6189" width="34" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="6201">ZONE</text> + <rect x="43" y="6217" width="26" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="6229">ABS</text> + <rect x="43" y="6245" width="24" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="6257">ALL</text> + <rect x="43" y="6273" width="64" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="6285">ARRAY_AGG</text> + <rect x="43" y="6301" width="20" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="6313">AT</text> + <rect x="43" y="6329" width="26" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="6341">AVG</text> + <rect x="43" y="6357" width="32" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="6369">BLOB</text> + <rect x="43" y="6385" width="34" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="6397">BOTH</text> + <rect x="43" y="6413" width="70" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="6425">CARDINALITY</text> + <rect x="43" y="6441" width="38" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="6453">CLOSE</text> + <rect x="43" y="6469" width="48" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="6481">COLUMN</text> + <rect x="43" y="6497" width="62" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="6509">CONDITION</text> + <rect x="43" y="6525" width="40" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="6537">COUNT</text> + <rect x="43" y="6553" width="32" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="6565">CUBE</text> + <rect x="43" y="6581" width="50" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="6593">CURRENT</text> + <rect x="43" y="6609" width="100" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="6621">CURRENT_CATALOG</text> + <rect x="43" y="6637" width="80" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="6649">CURRENT_DATE</text> + <rect x="43" y="6665" width="202" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="6677">CURRENT_DEFAULT_TRANSFORM_GROUP</text> + <rect x="43" y="6693" width="82" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="6705">CURRENT_PATH</text> + <rect x="43" y="6721" width="82" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="6733">CURRENT_ROLE</text> + <rect x="43" y="6749" width="96" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="6761">CURRENT_SCHEMA</text> + <rect x="43" y="6777" width="78" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="6789">CURRENT_TIME</text> + <rect x="43" y="6805" width="110" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="6817">CURRENT_TIMESTAMP</text> + <rect x="43" y="6833" width="208" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="6845">CURRENT_TRANSFORM_GROUP_FOR_TYPE</text> + <rect x="43" y="6861" width="80" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="6873">CURRENT_USER</text> + <rect x="43" y="6889" width="48" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="6901">CURSOR</text> + <rect x="43" y="6917" width="36" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="6929">CYCLE</text> + <rect x="43" y="6945" width="32" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="6957">DATE</text> + <rect x="43" y="6973" width="26" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="6985">DAY</text> + <rect x="43" y="7001" width="32" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="7013">DAYS</text> + <rect x="43" y="7029" width="26" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="7041">DEC</text> + <rect x="43" y="7057" width="52" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="7069">DYNAMIC</text> + <rect x="43" y="7085" width="24" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="7097">EXP</text> + <rect x="43" y="7113" width="54" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="7125">EXTERNAL</text> + <rect x="43" y="7141" width="38" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="7153">FILTER</text> + <rect x="43" y="7169" width="40" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="7181">FLOOR</text> + <rect x="43" y="7197" width="30" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="7209">FREE</text> + <rect x="43" y="7225" width="56" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="7237">FUNCTION</text> + <rect x="43" y="7253" width="44" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="7265">GLOBAL</text> + <rect x="43" y="7281" width="34" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="7293">HOLD</text> + <rect x="43" y="7309" width="36" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="7321">HOUR</text> + <rect x="43" y="7337" width="42" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="7349">HOURS</text> + <rect x="43" y="7365" width="50" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="7377">IDENTITY</text> + <rect x="43" y="7393" width="60" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="7405">INDICATOR</text> + <rect x="43" y="7421" width="76" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="7433">INTERSECTION</text> + <rect x="43" y="7449" width="52" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="7461">INTERVAL</text> + <rect x="43" y="7477" width="58" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="7489">LANGUAGE</text> + <rect x="43" y="7505" width="30" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="7517">LEAD</text> + <rect x="43" y="7533" width="38" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="7545">LOCAL</text> + <rect x="43" y="7561" width="44" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="7573">LOWER</text> + <rect x="43" y="7589" width="28" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="7601">MAX</text> + <rect x="43" y="7617" width="40" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="7629">MERGE</text> + <rect x="43" y="7645" width="48" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="7657">METHOD</text> + <rect x="43" y="7673" width="26" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="7685">MIN</text> + <rect x="43" y="7701" width="44" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="7713">MINUTE</text> + <rect x="43" y="7729" width="50" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="7741">MINUTES</text> + <rect x="43" y="7757" width="30" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="7769">MOD</text> + <rect x="43" y="7785" width="48" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="7797">MODULE</text> + <rect x="43" y="7813" width="44" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="7825">MONTH</text> + <rect x="43" y="7841" width="50" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="7853">MONTHS</text> + <rect x="43" y="7869" width="34" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="7881">NAME</text> + <rect x="43" y="7897" width="30" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="7909">NEW</text> + <rect x="43" y="7925" width="34" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="7937">NONE</text> + <rect x="43" y="7953" width="70" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="7965">OCCURRENCE</text> + <rect x="43" y="7981" width="42" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="7993">OFFSET</text> + <rect x="43" y="8009" width="28" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="8021">OLD</text> + <rect x="43" y="8037" width="34" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="8049">OPEN</text> + <rect x="43" y="8065" width="58" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="8077">PARTITION</text> + <rect x="43" y="8093" width="54" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="8105">POSITION</text> + <rect x="43" y="8121" width="44" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="8133">POWER</text> + <rect x="43" y="8149" width="60" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="8161">PRECISION</text> + <rect x="43" y="8177" width="40" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="8189">RANGE</text> + <rect x="43" y="8205" width="34" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="8217">RANK</text> + <rect x="43" y="8233" width="38" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="8245">READS</text> + <rect x="43" y="8261" width="24" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="8273">REF</text> + <rect x="43" y="8289" width="66" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="8301">REFERENCES</text> + <rect x="43" y="8317" width="46" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="8329">RELEASE</text> + <rect x="43" y="8345" width="42" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="8357">RESULT</text> + <rect x="43" y="8373" width="50" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="8385">RETURNS</text> + <rect x="43" y="8401" width="44" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="8413">ROLLUP</text> + <rect x="43" y="8429" width="32" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="8441">ROW</text> + <rect x="43" y="8457" width="78" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="8469">ROW_NUMBER</text> + <rect x="43" y="8485" width="38" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="8497">ROWS</text> + <rect x="43" y="8513" width="60" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="8525">SAVEPOINT</text> + <rect x="43" y="8541" width="38" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="8553">SCOPE</text> + <rect x="43" y="8569" width="44" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="8581">SEARCH</text> + <rect x="43" y="8597" width="46" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="8609">SECOND</text> + <rect x="43" y="8625" width="52" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="8637">SECONDS</text> + <rect x="43" y="8653" width="80" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="8665">SESSION_USER</text> + <rect x="43" y="8681" width="26" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="8693">SQL</text> + <rect x="43" y="8709" width="36" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="8721">START</text> + <rect x="43" y="8737" width="40" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="8749">STATIC</text> + <rect x="43" y="8765" width="28" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="8777">SUM</text> + <rect x="43" y="8793" width="44" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="8805">SYSTEM</text> + <rect x="43" y="8821" width="30" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="8833">TIME</text> + <rect x="43" y="8849" width="62" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="8861">TIMESTAMP</text> + <rect x="43" y="8877" width="90" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="8889">TIMEZONE_HOUR</text> + <rect x="43" y="8905" width="98" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="8917">TIMEZONE_MINUTE</text> + <rect x="43" y="8933" width="48" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="8945">TRIGGER</text> + <rect x="43" y="8961" width="56" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="8973">TRUNCATE</text> + <rect x="43" y="8989" width="60" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="9001">UNKNOWN</text> + <rect x="43" y="9017" width="44" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="9029">UPDATE</text> + <rect x="43" y="9045" width="38" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="9057">UPPER</text> + <rect x="43" y="9073" width="32" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="9085">USER</text> + <rect x="43" y="9101" width="36" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="9113">VALUE</text> + <rect x="43" y="9129" width="42" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="9141">VALUES</text> + <rect x="43" y="9157" width="50" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="9169">VERSION</text> + <rect x="43" y="9185" width="56" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="9197">VERSIONS</text> + <rect x="43" y="9213" width="56" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="9225">WINDOW</text> + <rect x="43" y="9241" width="32" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="9253">YEAR</text> + <rect x="43" y="9269" width="38" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="9281">YEARS</text> + <rect x="43" y="9297" width="56" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="9309">COMMENT</text> + <rect x="43" y="9325" width="48" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="9337">DEFAULT</text> + <rect x="43" y="9353" width="26" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="9365">USE</text> + <rect x="43" y="9381" width="34" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="9393">LIMIT</text> + <rect x="43" y="9409" width="114" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="9421">NUMERIC_HISTOGRAM</text> + <rect x="43" y="9437" width="48" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="9449">REPLACE</text> + <rect x="43" y="9465" width="66" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="9477">HISTOGRAM</text> + <rect x="43" y="9493" width="112" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="9505">APPROEX_PERCENTILE</text> + <rect x="43" y="9521" width="54" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="9533">MAP_AGG</text> + <rect x="43" y="9549" width="50" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="9561">SET_AGG</text> + <rect x="43" y="9577" width="66" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="9589">MAP_UNION</text> + <rect x="43" y="9605" width="48" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="9617">"COUNT"</text> + <path class="line" d="m17 10 h2 m20 0 h4 m14 0 h4 m0 0 h194 m-236 0 h20 m216 0 h20 m-256 0 q10 0 10 10 m236 0 q0 -10 10 -10 m-246 10 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m56 0 h4 m0 0 h152 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m44 0 h4 m0 0 h164 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m28 0 h4 m0 0 h180 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m28 0 h4 m0 0 h180 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m40 0 h4 m0 0 h168 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m36 0 h4 m0 0 h172 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m48 0 h4 m0 0 h160 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m26 0 h4 m0 0 h182 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m62 0 h4 m0 0 h146 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m70 0 h4 m0 0 h138 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m58 0 h4 m0 0 h150 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m64 0 h4 m0 0 h144 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m44 0 h4 m0 0 h164 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m60 0 h4 m0 0 h148 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m50 0 h4 m0 0 h158 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m14 0 h4 m0 0 h194 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m50 0 h4 m0 0 h158 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m52 0 h4 m0 0 h156 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m84 0 h4 m0 0 h124 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m38 0 h4 m0 0 h170 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m134 0 h4 m0 0 h74 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m118 0 h4 m0 0 h90 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m130 0 h4 m0 0 h78 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m92 0 h4 m0 0 h116 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m68 0 h4 m0 0 h140 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m78 0 h4 m0 0 h130 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m40 0 h4 m0 0 h168 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m62 0 h4 m0 0 h146 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m112 0 h4 m0 0 h96 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m94 0 h4 m0 0 h114 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m106 0 h4 m0 0 h102 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m82 0 h4 m0 0 h126 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m114 0 h4 m0 0 h94 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m146 0 h4 m0 0 h62 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m64 0 h4 m0 0 h144 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m108 0 h4 m0 0 h100 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m70 0 h4 m0 0 h138 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m104 0 h4 m0 0 h104 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m118 0 h4 m0 0 h90 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m102 0 h4 m0 0 h106 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m114 0 h4 m0 0 h94 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m74 0 h4 m0 0 h134 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m78 0 h4 m0 0 h130 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m56 0 h4 m0 0 h152 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m56 0 h4 m0 0 h152 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m80 0 h4 m0 0 h128 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m32 0 h4 m0 0 h176 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m136 0 h4 m0 0 h72 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m162 0 h4 m0 0 h46 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m54 0 h4 m0 0 h154 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m66 0 h4 m0 0 h142 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m54 0 h4 m0 0 h154 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m48 0 h4 m0 0 h160 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m46 0 h4 m0 0 h162 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m44 0 h4 m0 0 h164 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m38 0 h4 m0 0 h170 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m48 0 h4 m0 0 h160 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m32 0 h4 m0 0 h176 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m68 0 h4 m0 0 h140 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m72 0 h4 m0 0 h136 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m54 0 h4 m0 0 h154 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m48 0 h4 m0 0 h160 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m106 0 h4 m0 0 h102 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m138 0 h4 m0 0 h70 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m58 0 h4 m0 0 h150 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m44 0 h4 m0 0 h164 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m48 0 h4 m0 0 h160 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m60 0 h4 m0 0 h148 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m68 0 h4 m0 0 h140 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m34 0 h4 m0 0 h174 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m34 0 h4 m0 0 h174 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m30 0 h4 m0 0 h178 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m66 0 h4 m0 0 h142 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m52 0 h4 m0 0 h156 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m42 0 h4 m0 0 h166 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m14 0 h4 m0 0 h194 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m50 0 h4 m0 0 h158 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m62 0 h4 m0 0 h146 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m22 0 h4 m0 0 h186 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m36 0 h4 m0 0 h172 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m52 0 h4 m0 0 h156 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m62 0 h4 m0 0 h146 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m16 0 h4 m0 0 h192 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m44 0 h4 m0 0 h164 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m60 0 h4 m0 0 h148 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m92 0 h4 m0 0 h116 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m60 0 h4 m0 0 h148 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m62 0 h4 m0 0 h146 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m52 0 h4 m0 0 h156 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m36 0 h4 m0 0 h172 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m54 0 h4 m0 0 h154 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m74 0 h4 m0 0 h134 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m48 0 h4 m0 0 h160 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m50 0 h4 m0 0 h158 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m60 0 h4 m0 0 h148 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m14 0 h4 m0 0 h194 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m24 0 h4 m0 0 h184 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m70 0 h4 m0 0 h138 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m52 0 h4 m0 0 h156 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m30 0 h4 m0 0 h178 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m44 0 h4 m0 0 h164 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m34 0 h4 m0 0 h174 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m52 0 h4 m0 0 h156 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m16 0 h4 m0 0 h192 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m28 0 h4 m0 0 h180 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m52 0 h4 m0 0 h156 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m58 0 h4 m0 0 h150 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m94 0 h4 m0 0 h114 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m130 0 h4 m0 0 h78 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m80 0 h4 m0 0 h128 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m56 0 h4 m0 0 h152 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m36 0 h4 m0 0 h172 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m44 0 h4 m0 0 h164 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m40 0 h4 m0 0 h168 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m48 0 h4 m0 0 h160 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m32 0 h4 m0 0 h176 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m26 0 h4 m0 0 h182 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m26 0 h4 m0 0 h182 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m32 0 h4 m0 0 h176 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m32 0 h4 m0 0 h176 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m70 0 h4 m0 0 h138 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m54 0 h4 m0 0 h154 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m38 0 h4 m0 0 h170 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m48 0 h4 m0 0 h160 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m42 0 h4 m0 0 h166 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m44 0 h4 m0 0 h164 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m46 0 h4 m0 0 h162 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m52 0 h4 m0 0 h156 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m58 0 h4 m0 0 h150 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m66 0 h4 m0 0 h142 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m46 0 h4 m0 0 h162 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m46 0 h4 m0 0 h162 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m68 0 h4 m0 0 h140 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m14 0 h4 m0 0 h194 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m26 0 h4 m0 0 h182 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m98 0 h4 m0 0 h110 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m96 0 h4 m0 0 h112 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m166 0 h4 m0 0 h42 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m160 0 h4 m0 0 h48 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m144 0 h4 m0 0 h64 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m156 0 h4 m0 0 h52 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m46 0 h4 m0 0 h162 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m44 0 h4 m0 0 h164 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m32 0 h4 m0 0 h176 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m48 0 h4 m0 0 h160 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m22 0 h4 m0 0 h186 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m60 0 h4 m0 0 h148 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m54 0 h4 m0 0 h154 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m38 0 h4 m0 0 h170 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m62 0 h4 m0 0 h146 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m66 0 h4 m0 0 h142 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m40 0 h4 m0 0 h168 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m32 0 h4 m0 0 h176 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m50 0 h4 m0 0 h158 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m64 0 h4 m0 0 h144 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m48 0 h4 m0 0 h160 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m48 0 h4 m0 0 h160 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m52 0 h4 m0 0 h156 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m124 0 h4 m0 0 h84 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m98 0 h4 m0 0 h110 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m134 0 h4 m0 0 h74 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m110 0 h4 m0 0 h98 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m32 0 h4 m0 0 h176 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m50 0 h4 m0 0 h158 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m100 0 h4 m0 0 h108 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m82 0 h4 m0 0 h126 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m94 0 h4 m0 0 h114 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m72 0 h4 m0 0 h136 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m36 0 h4 m0 0 h172 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m46 0 h4 m0 0 h162 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m80 0 h4 m0 0 h128 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m88 0 h4 m0 0 h120 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m72 0 h4 m0 0 h136 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m84 0 h4 m0 0 h124 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m48 0 h4 m0 0 h160 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m52 0 h4 m0 0 h156 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m28 0 h4 m0 0 h180 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m56 0 h4 m0 0 h152 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m72 0 h4 m0 0 h136 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m76 0 h4 m0 0 h132 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m50 0 h4 m0 0 h158 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m30 0 h4 m0 0 h178 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m42 0 h4 m0 0 h166 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m28 0 h4 m0 0 h180 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m46 0 h4 m0 0 h162 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m38 0 h4 m0 0 h170 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m82 0 h4 m0 0 h126 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m36 0 h4 m0 0 h172 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m62 0 h4 m0 0 h146 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m62 0 h4 m0 0 h146 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m34 0 h4 m0 0 h174 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m96 0 h4 m0 0 h112 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m12 0 h4 m0 0 h196 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m68 0 h4 m0 0 h140 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m66 0 h4 m0 0 h142 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m28 0 h4 m0 0 h180 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m98 0 h4 m0 0 h110 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m74 0 h4 m0 0 h134 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m112 0 h4 m0 0 h96 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m144 0 h4 m0 0 h64 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m154 0 h4 m0 0 h54 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m66 0 h4 m0 0 h142 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m72 0 h4 m0 0 h136 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m98 0 h4 m0 0 h110 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m80 0 h4 m0 0 h128 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m92 0 h4 m0 0 h116 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m54 0 h4 m0 0 h154 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m30 0 h4 m0 0 h178 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m68 0 h4 m0 0 h140 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m78 0 h4 m0 0 h130 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m40 0 h4 m0 0 h168 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m56 0 h4 m0 0 h152 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m38 0 h4 m0 0 h170 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m156 0 h4 m0 0 h52 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m138 0 h4 m0 0 h70 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m138 0 h4 m0 0 h70 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m150 0 h4 m0 0 h58 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m34 0 h4 m0 0 h174 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m40 0 h4 m0 0 h168 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m38 0 h4 m0 0 h170 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m34 0 h4 m0 0 h174 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m26 0 h4 m0 0 h182 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m24 0 h4 m0 0 h184 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m64 0 h4 m0 0 h144 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m20 0 h4 m0 0 h188 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m26 0 h4 m0 0 h182 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m32 0 h4 m0 0 h176 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m34 0 h4 m0 0 h174 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m70 0 h4 m0 0 h138 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m38 0 h4 m0 0 h170 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m48 0 h4 m0 0 h160 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m62 0 h4 m0 0 h146 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m40 0 h4 m0 0 h168 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m32 0 h4 m0 0 h176 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m50 0 h4 m0 0 h158 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m100 0 h4 m0 0 h108 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m80 0 h4 m0 0 h128 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m202 0 h4 m0 0 h6 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m82 0 h4 m0 0 h126 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m82 0 h4 m0 0 h126 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m96 0 h4 m0 0 h112 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m78 0 h4 m0 0 h130 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m110 0 h4 m0 0 h98 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m208 0 h4 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m80 0 h4 m0 0 h128 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m48 0 h4 m0 0 h160 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m36 0 h4 m0 0 h172 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m32 0 h4 m0 0 h176 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m26 0 h4 m0 0 h182 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m32 0 h4 m0 0 h176 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m26 0 h4 m0 0 h182 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m52 0 h4 m0 0 h156 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m24 0 h4 m0 0 h184 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m54 0 h4 m0 0 h154 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m38 0 h4 m0 0 h170 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m40 0 h4 m0 0 h168 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m30 0 h4 m0 0 h178 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m56 0 h4 m0 0 h152 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m44 0 h4 m0 0 h164 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m34 0 h4 m0 0 h174 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m36 0 h4 m0 0 h172 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m42 0 h4 m0 0 h166 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m50 0 h4 m0 0 h158 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m60 0 h4 m0 0 h148 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m76 0 h4 m0 0 h132 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m52 0 h4 m0 0 h156 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m58 0 h4 m0 0 h150 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m30 0 h4 m0 0 h178 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m38 0 h4 m0 0 h170 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m44 0 h4 m0 0 h164 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m28 0 h4 m0 0 h180 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m40 0 h4 m0 0 h168 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m48 0 h4 m0 0 h160 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m26 0 h4 m0 0 h182 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m44 0 h4 m0 0 h164 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m50 0 h4 m0 0 h158 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m30 0 h4 m0 0 h178 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m48 0 h4 m0 0 h160 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m44 0 h4 m0 0 h164 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m50 0 h4 m0 0 h158 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m34 0 h4 m0 0 h174 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m30 0 h4 m0 0 h178 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m34 0 h4 m0 0 h174 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m70 0 h4 m0 0 h138 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m42 0 h4 m0 0 h166 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m28 0 h4 m0 0 h180 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m34 0 h4 m0 0 h174 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m58 0 h4 m0 0 h150 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m54 0 h4 m0 0 h154 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m44 0 h4 m0 0 h164 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m60 0 h4 m0 0 h148 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m40 0 h4 m0 0 h168 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m34 0 h4 m0 0 h174 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m38 0 h4 m0 0 h170 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m24 0 h4 m0 0 h184 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m66 0 h4 m0 0 h142 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m46 0 h4 m0 0 h162 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m42 0 h4 m0 0 h166 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m50 0 h4 m0 0 h158 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m44 0 h4 m0 0 h164 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m32 0 h4 m0 0 h176 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m78 0 h4 m0 0 h130 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m38 0 h4 m0 0 h170 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m60 0 h4 m0 0 h148 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m38 0 h4 m0 0 h170 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m44 0 h4 m0 0 h164 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m46 0 h4 m0 0 h162 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m52 0 h4 m0 0 h156 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m80 0 h4 m0 0 h128 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m26 0 h4 m0 0 h182 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m36 0 h4 m0 0 h172 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m40 0 h4 m0 0 h168 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m28 0 h4 m0 0 h180 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m44 0 h4 m0 0 h164 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m30 0 h4 m0 0 h178 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m62 0 h4 m0 0 h146 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m90 0 h4 m0 0 h118 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m98 0 h4 m0 0 h110 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m48 0 h4 m0 0 h160 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m56 0 h4 m0 0 h152 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m60 0 h4 m0 0 h148 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m44 0 h4 m0 0 h164 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m38 0 h4 m0 0 h170 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m32 0 h4 m0 0 h176 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m36 0 h4 m0 0 h172 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m42 0 h4 m0 0 h166 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m50 0 h4 m0 0 h158 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m56 0 h4 m0 0 h152 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m56 0 h4 m0 0 h152 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m32 0 h4 m0 0 h176 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m38 0 h4 m0 0 h170 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m56 0 h4 m0 0 h152 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m48 0 h4 m0 0 h160 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m26 0 h4 m0 0 h182 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m34 0 h4 m0 0 h174 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m114 0 h4 m0 0 h94 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m48 0 h4 m0 0 h160 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m66 0 h4 m0 0 h142 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m112 0 h4 m0 0 h96 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m54 0 h4 m0 0 h154 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m50 0 h4 m0 0 h158 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m66 0 h4 m0 0 h142 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m48 0 h4 m0 0 h160 m23 -9604 h-3"/> + <polygon points="285 10 293 6 293 14"/> + <polygon points="285 10 277 6 277 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#non-reserved-word" title="non_reserved_word" shape="rect">non_reserved_word</a></div> + <div>         ::= 'A'</div> + <div>           | 'ABSOLUTE'</div> + <div>           | 'ACTION'</div> + <div>           | 'ADA'</div> + <div>           | 'ADD'</div> + <div>           | 'ADMIN'</div> + <div>           | 'AFTER'</div> + <div>           | 'ALWAYS'</div> + <div>           | 'ASC'</div> + <div>           | 'ASSERTION'</div> + <div>           | 'ASSIGNMENT'</div> + <div>           | 'ATTRIBUTE'</div> + <div>           | 'ATTRIBUTES'</div> + <div>           | 'BEFORE'</div> + <div>           | 'BERNOULLI'</div> + <div>           | 'BREADTH'</div> + <div>           | 'C'</div> + <div>           | 'CASCADE'</div> + <div>           | 'CATALOG'</div> + <div>           | 'CATALOG_NAME'</div> + <div>           | 'CHAIN'</div> + <div>           | 'CHARACTER_SET_CATALOG'</div> + <div>           | 'CHARACTER_SET_NAME'</div> + <div>           | 'CHARACTER_SET_SCHEMA'</div> + <div>           | 'CHARACTERISTICS'</div> + <div>           | 'CHARACTERS'</div> + <div>           | 'CLASS_ORIGIN'</div> + <div>           | 'COBOL'</div> + <div>           | 'COLLATION'</div> + <div>           | 'COLLATION_CATALOG'</div> + <div>           | 'COLLATION_NAME'</div> + <div>           | 'COLLATION_SCHEMA'</div> + <div>           | 'COLUMN_NAME'</div> + <div>           | 'COMMAND_FUNCTION'</div> + <div>           | 'COMMAND_FUNCTION_CODE'</div> + <div>           | 'COMMITTED'</div> + <div>           | 'CONDITION_NUMBER'</div> + <div>           | 'CONNECTION'</div> + <div>           | 'CONNECTION_NAME'</div> + <div>           | 'CONSTRAINT_CATALOG'</div> + <div>           | 'CONSTRAINT_NAME'</div> + <div>           | 'CONSTRAINT_SCHEMA'</div> + <div>           | 'CONSTRAINTS'</div> + <div>           | 'CONSTRUCTOR'</div> + <div>           | 'CONTAINS'</div> + <div>           | 'CONTINUE'</div> + <div>           | 'CURSOR_NAME'</div> + <div>           | 'DATA'</div> + <div>           | 'DATETIME_INTERVAL_CODE'</div> + <div>           | 'DATETIME_INTERVAL_PRECISION'</div> + <div>           | 'DEFAULTS'</div> + <div>           | 'DEFERRABLE'</div> + <div>           | 'DEFERRED'</div> + <div>           | 'DEFINED'</div> + <div>           | 'DEFINER'</div> + <div>           | 'DEGREE'</div> + <div>           | 'DEPTH'</div> + <div>           | 'DERIVED'</div> + <div>           | 'DESC'</div> + <div>           | 'DESCRIPTOR'</div> + <div>           | 'DIAGNOSTICS'</div> + <div>           | 'DISPATCH'</div> + <div>           | 'DOMAIN'</div> + <div>           | 'DYNAMIC_FUNCTION'</div> + <div>           | 'DYNAMIC_FUNCTION_CODE'</div> + <div>           | 'ENFORCED'</div> + <div>           | 'EQUALS'</div> + <div>           | 'EXCLUDE'</div> + <div>           | 'EXCLUDING'</div> + <div>           | 'EXPRESSION'</div> + <div>           | 'FINAL'</div> + <div>           | 'FIRST'</div> + <div>           | 'FLAG'</div> + <div>           | 'FOLLOWING'</div> + <div>           | 'FORTRAN'</div> + <div>           | 'FOUND'</div> + <div>           | 'G'</div> + <div>           | 'GENERAL'</div> + <div>           | 'GENERATED'</div> + <div>           | 'GO'</div> + <div>           | 'GOTO'</div> + <div>           | 'GRANTED'</div> + <div>           | 'HIERARCHY'</div> + <div>           | 'IF'</div> + <div>           | 'IGNORE'</div> + <div>           | 'IMMEDIATE'</div> + <div>           | 'IMPLEMENTATION'</div> + <div>           | 'INCLUDING'</div> + <div>           | 'INCREMENT'</div> + <div>           | 'INITIALLY'</div> + <div>           | 'INPUT'</div> + <div>           | 'INSTANCE'</div> + <div>           | 'INSTANTIABLE'</div> + <div>           | 'INSTEAD'</div> + <div>           | 'INVOKER'</div> + <div>           | 'ISOLATION'</div> + <div>           | 'K'</div> + <div>           | 'KEY'</div> + <div>           | 'KEY_MEMBER'</div> + <div>           | 'KEY_TYPE'</div> + <div>           | 'LAST'</div> + <div>           | 'LENGTH'</div> + <div>           | 'LEVEL'</div> + <div>           | 'LOCATOR'</div> + <div>           | 'M'</div> + <div>           | 'MAP'</div> + <div>           | 'MATCHED'</div> + <div>           | 'MAXVALUE'</div> + <div>           | 'MESSAGE_LENGTH'</div> + <div>           | 'MESSAGE_OCTET_LENGTH'</div> + <div>           | 'MESSAGE_TEXT'</div> + <div>           | 'MINVALUE'</div> + <div>           | 'MORE'</div> + <div>           | 'MUMPS'</div> + <div>           | 'NAMES'</div> + <div>           | 'NESTING'</div> + <div>           | 'NEXT'</div> + <div>           | 'NFC'</div> + <div>           | 'NFD'</div> + <div>           | 'NFKC'</div> + <div>           | 'NFKD'</div> + <div>           | 'NORMALIZED'</div> + <div>           | 'NULLABLE'</div> + <div>           | 'NULLS'</div> + <div>           | 'NUMBER'</div> + <div>           | 'OBJECT'</div> + <div>           | 'OCTETS'</div> + <div>           | 'OPTION'</div> + <div>           | 'OPTIONS'</div> + <div>           | 'ORDERING'</div> + <div>           | 'ORDINALITY'</div> + <div>           | 'OTHERS'</div> + <div>           | 'OUTPUT'</div> + <div>           | 'OVERRIDING'</div> + <div>           | 'P'</div> + <div>           | 'PAD'</div> + <div>           | 'PARAMETER_MODE'</div> + <div>           | 'PARAMETER_NAME'</div> + <div>           | 'PARAMETER_ORDINAL_POSITION'</div> + <div>           | 'PARAMETER_SPECIFIC_CATALOG'</div> + <div>           | 'PARAMETER_SPECIFIC_NAME'</div> + <div>           | 'PARAMETER_SPECIFIC_SCHEMA'</div> + <div>           | 'PARTIAL'</div> + <div>           | 'PASCAL'</div> + <div>           | 'PATH'</div> + <div>           | 'PLACING'</div> + <div>           | 'PLI'</div> + <div>           | 'PRECEDING'</div> + <div>           | 'PRESERVE'</div> + <div>           | 'PRIOR'</div> + <div>           | 'PRIVILEGES'</div> + <div>           | 'PROPERTIES'</div> + <div>           | 'PUBLIC'</div> + <div>           | 'READ'</div> + <div>           | 'RELATIVE'</div> + <div>           | 'REPEATABLE'</div> + <div>           | 'RESPECT'</div> + <div>           | 'RESTART'</div> + <div>           | 'RESTRICT'</div> + <div>           | 'RETURNED_CARDINALITY'</div> + <div>           | 'RETURNED_LENGTH'</div> + <div>           | 'RETURNED_OCTET_LENGTH'</div> + <div>           | 'RETURNED_SQLSTATE'</div> + <div>           | 'ROLE'</div> + <div>           | 'ROUTINE'</div> + <div>           | 'ROUTINE_CATALOG'</div> + <div>           | 'ROUTINE_NAME'</div> + <div>           | 'ROUTINE_SCHEMA'</div> + <div>           | 'ROW_COUNT'</div> + <div>           | 'SCALE'</div> + <div>           | 'SCHEMA'</div> + <div>           | 'SCHEMA_NAME'</div> + <div>           | 'SCOPE_CATALOG'</div> + <div>           | 'SCOPE_NAME'</div> + <div>           | 'SCOPE_SCHEMA'</div> + <div>           | 'SECTION'</div> + <div>           | 'SECURITY'</div> + <div>           | 'SELF'</div> + <div>           | 'SEQUENCE'</div> + <div>           | 'SERIALIZABLE'</div> + <div>           | 'SERVER_NAME'</div> + <div>           | 'SESSION'</div> + <div>           | 'SETS'</div> + <div>           | 'SIMPLE'</div> + <div>           | 'SIZE'</div> + <div>           | 'SOURCE'</div> + <div>           | 'SPACE'</div> + <div>           | 'SPECIFIC_NAME'</div> + <div>           | 'STATE'</div> + <div>           | 'STATEMENT'</div> + <div>           | 'STRUCTURE'</div> + <div>           | 'STYLE'</div> + <div>           | 'SUBCLASS_ORIGIN'</div> + <div>           | 'T'</div> + <div>           | 'TABLE_NAME'</div> + <div>           | 'TEMPORARY'</div> + <div>           | 'TIES'</div> + <div>           | 'TOP_LEVEL_COUNT'</div> + <div>           | 'TRANSACTION'</div> + <div>           | 'TRANSACTION_ACTIVE'</div> + <div>           | 'TRANSACTIONS_COMMITTED'</div> + <div>           | 'TRANSACTIONS_ROLLED_BACK'</div> + <div>           | 'TRANSFORM'</div> + <div>           | 'TRANSFORMS'</div> + <div>           | 'TRIGGER_CATALOG'</div> + <div>           | 'TRIGGER_NAME'</div> + <div>           | 'TRIGGER_SCHEMA'</div> + <div>           | 'TRY_CAST'</div> + <div>           | 'TYPE'</div> + <div>           | 'UNBOUNDED'</div> + <div>           | 'UNCOMMITTED'</div> + <div>           | 'UNDER'</div> + <div>           | 'UNNAMED'</div> + <div>           | 'USAGE'</div> + <div>           | 'USER_DEFINED_TYPE_CATALOG'</div> + <div>           | 'USER_DEFINED_TYPE_CODE'</div> + <div>           | 'USER_DEFINED_TYPE_NAME'</div> + <div>           | 'USER_DEFINED_TYPE_SCHEMA'</div> + <div>           | 'VIEW'</div> + <div>           | 'WORK'</div> + <div>           | 'WRITE'</div> + <div>           | 'ZONE'</div> + <div>           | 'ABS'</div> + <div>           | 'ALL'</div> + <div>           | 'ARRAY_AGG'</div> + <div>           | 'AT'</div> + <div>           | 'AVG'</div> + <div>           | 'BLOB'</div> + <div>           | 'BOTH'</div> + <div>           | 'CARDINALITY'</div> + <div>           | 'CLOSE'</div> + <div>           | 'COLUMN'</div> + <div>           | 'CONDITION'</div> + <div>           | 'COUNT'</div> + <div>           | 'CUBE'</div> + <div>           | 'CURRENT'</div> + <div>           | 'CURRENT_CATALOG'</div> + <div>           | 'CURRENT_DATE'</div> + <div>           | 'CURRENT_DEFAULT_TRANSFORM_GROUP'</div> + <div>           | 'CURRENT_PATH'</div> + <div>           | 'CURRENT_ROLE'</div> + <div>           | 'CURRENT_SCHEMA'</div> + <div>           | 'CURRENT_TIME'</div> + <div>           | 'CURRENT_TIMESTAMP'</div> + <div>           | 'CURRENT_TRANSFORM_GROUP_FOR_TYPE'</div> + <div>           | 'CURRENT_USER'</div> + <div>           | 'CURSOR'</div> + <div>           | 'CYCLE'</div> + <div>           | 'DATE'</div> + <div>           | 'DAY'</div> + <div>           | 'DAYS'</div> + <div>           | 'DEC'</div> + <div>           | 'DYNAMIC'</div> + <div>           | 'EXP'</div> + <div>           | 'EXTERNAL'</div> + <div>           | 'FILTER'</div> + <div>           | 'FLOOR'</div> + <div>           | 'FREE'</div> + <div>           | 'FUNCTION'</div> + <div>           | 'GLOBAL'</div> + <div>           | 'HOLD'</div> + <div>           | 'HOUR'</div> + <div>           | 'HOURS'</div> + <div>           | 'IDENTITY'</div> + <div>           | 'INDICATOR'</div> + <div>           | 'INTERSECTION'</div> + <div>           | 'INTERVAL'</div> + <div>           | 'LANGUAGE'</div> + <div>           | 'LEAD'</div> + <div>           | 'LOCAL'</div> + <div>           | 'LOWER'</div> + <div>           | 'MAX'</div> + <div>           | 'MERGE'</div> + <div>           | 'METHOD'</div> + <div>           | 'MIN'</div> + <div>           | 'MINUTE'</div> + <div>           | 'MINUTES'</div> + <div>           | 'MOD'</div> + <div>           | 'MODULE'</div> + <div>           | 'MONTH'</div> + <div>           | 'MONTHS'</div> + <div>           | 'NAME'</div> + <div>           | 'NEW'</div> + <div>           | 'NONE'</div> + <div>           | 'OCCURRENCE'</div> + <div>           | 'OFFSET'</div> + <div>           | 'OLD'</div> + <div>           | 'OPEN'</div> + <div>           | 'PARTITION'</div> + <div>           | 'POSITION'</div> + <div>           | 'POWER'</div> + <div>           | 'PRECISION'</div> + <div>           | 'RANGE'</div> + <div>           | 'RANK'</div> + <div>           | 'READS'</div> + <div>           | 'REF'</div> + <div>           | 'REFERENCES'</div> + <div>           | 'RELEASE'</div> + <div>           | 'RESULT'</div> + <div>           | 'RETURNS'</div> + <div>           | 'ROLLUP'</div> + <div>           | 'ROW'</div> + <div>           | 'ROW_NUMBER'</div> + <div>           | 'ROWS'</div> + <div>           | 'SAVEPOINT'</div> + <div>           | 'SCOPE'</div> + <div>           | 'SEARCH'</div> + <div>           | 'SECOND'</div> + <div>           | 'SECONDS'</div> + <div>           | 'SESSION_USER'</div> + <div>           | 'SQL'</div> + <div>           | 'START'</div> + <div>           | 'STATIC'</div> + <div>           | 'SUM'</div> + <div>           | 'SYSTEM'</div> + <div>           | 'TIME'</div> + <div>           | 'TIMESTAMP'</div> + <div>           | 'TIMEZONE_HOUR'</div> + <div>           | 'TIMEZONE_MINUTE'</div> + <div>           | 'TRIGGER'</div> + <div>           | 'TRUNCATE'</div> + <div>           | 'UNKNOWN'</div> + <div>           | 'UPDATE'</div> + <div>           | 'UPPER'</div> + <div>           | 'USER'</div> + <div>           | 'VALUE'</div> + <div>           | 'VALUES'</div> + <div>           | 'VERSION'</div> + <div>           | 'VERSIONS'</div> + <div>           | 'WINDOW'</div> + <div>           | 'YEAR'</div> + <div>           | 'YEARS'</div> + <div>           | 'COMMENT'</div> + <div>           | 'DEFAULT'</div> + <div>           | 'USE'</div> + <div>           | 'LIMIT'</div> + <div>           | 'NUMERIC_HISTOGRAM'</div> + <div>           | 'REPLACE'</div> + <div>           | 'HISTOGRAM'</div> + <div>           | 'APPROEX_PERCENTILE'</div> + <div>           | 'MAP_AGG'</div> + <div>           | 'SET_AGG'</div> + <div>           | 'MAP_UNION'</div> + <div>           | '"COUNT"'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#actual-identifier" title="actual-identifier">actual-identifier</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + left_bracket_or_trigraph +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="107" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="43" y="1" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="13">[</text> + <rect x="43" y="29" width="20" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="41">??(</text> + <path class="line" d="m17 10 h2 m20 0 h4 m12 0 h4 m0 0 h8 m-48 0 h20 m28 0 h20 m-68 0 q10 0 10 10 m48 0 q0 -10 10 -10 m-58 10 v8 m48 0 v-8 m-48 8 q0 10 10 10 m28 0 q10 0 10 -10 m-38 10 h4 m20 0 h4 m23 -28 h-3"/> + <polygon points="97 10 105 6 105 14"/> + <polygon points="97 10 89 6 89 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#left-bracket-or-trigraph" title="left_bracket_or_trigraph" shape="rect">left_bracket_or_trigraph</a></div> + <div>         ::= '['</div> + <div>           | '??('</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#array-element-reference" title="array-element-reference">array-element-reference</a></li><li><a href="#array-type" title="array-type">array-type</a></li><li><a href="#array-value-constructor-by-enumeration" title="array-value-constructor-by-enumeration">array-value-constructor-by-enumeration</a></li><li><a href="#empty-specification" title="empty-specification">empty-specification</a></li><li><a href="#multiset-value-constructor-by-enumeration" title="multiset-value-constructor-by-enumeration">multiset-value-constructor-by-enumeration</a></li><li><a href="#target-array-element-specification" title="target-array-element-specification">target-array-element-specification</a></li><li><a href="#update-target" title="update-target">update-target</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + right_bracket_or_trigraph +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="107" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="43" y="1" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="13">]</text> + <rect x="43" y="29" width="20" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="41">??)</text> + <path class="line" d="m17 10 h2 m20 0 h4 m12 0 h4 m0 0 h8 m-48 0 h20 m28 0 h20 m-68 0 q10 0 10 10 m48 0 q0 -10 10 -10 m-58 10 v8 m48 0 v-8 m-48 8 q0 10 10 10 m28 0 q10 0 10 -10 m-38 10 h4 m20 0 h4 m23 -28 h-3"/> + <polygon points="97 10 105 6 105 14"/> + <polygon points="97 10 89 6 89 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#right-bracket-or-trigraph" title="right_bracket_or_trigraph" shape="rect">right_bracket_or_trigraph</a></div> + <div>         ::= ']'</div> + <div>           | '??)'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#array-element-reference" title="array-element-reference">array-element-reference</a></li><li><a href="#array-type" title="array-type">array-type</a></li><li><a href="#array-value-constructor-by-enumeration" title="array-value-constructor-by-enumeration">array-value-constructor-by-enumeration</a></li><li><a href="#empty-specification" title="empty-specification">empty-specification</a></li><li><a href="#multiset-value-constructor-by-enumeration" title="multiset-value-constructor-by-enumeration">multiset-value-constructor-by-enumeration</a></li><li><a href="#target-array-element-specification" title="target-array-element-specification">target-array-element-specification</a></li><li><a href="#update-target" title="update-target">update-target</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + literal +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="197" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#signed-numeric-literal" xlink:title="signed_numeric_literal" shape="rect"> + <rect x="43" y="1" width="110" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">signed_numeric_literal</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#general-literal" xlink:title="general_literal" shape="rect"> + <rect x="43" y="29" width="72" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">general_literal</text></a><path class="line" d="m17 10 h2 m20 0 h4 m110 0 h4 m-138 0 h20 m118 0 h20 m-158 0 q10 0 10 10 m138 0 q0 -10 10 -10 m-148 10 v8 m138 0 v-8 m-138 8 q0 10 10 10 m118 0 q10 0 10 -10 m-128 10 h4 m72 0 h4 m0 0 h38 m23 -28 h-3"/> + <polygon points="187 10 195 6 195 14"/> + <polygon points="187 10 179 6 179 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#literal" title="literal" shape="rect">literal</a>  ::= <a href="#signed-numeric-literal" title="signed_numeric_literal" shape="rect">signed_numeric_literal</a></div> + <div>           | <a href="#general-literal" title="general_literal" shape="rect">general_literal</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#default-option" title="default-option">default-option</a></li><li><a href="#simple-value-specification" title="simple-value-specification">simple-value-specification</a></li><li><a href="#value-specification" title="value-specification">value-specification</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + signed_numeric_literal +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="231" height="70"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="43" y="22" width="14" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="34">+</text> + <rect x="43" y="50" width="10" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="62">-</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#unsigned-numeric-literal" xlink:title="unsigned_numeric_literal" shape="rect"> + <rect x="85" y="1" width="122" height="18" class="nonterminal"/> + <text class="nonterminal" x="89" y="13">unsigned_numeric_literal</text></a><path class="line" d="m17 10 h2 m20 0 h10 m0 0 h12 m-42 0 h20 m22 0 h20 m-62 0 q10 0 10 10 m42 0 q0 -10 10 -10 m-52 10 v1 m42 0 v-1 m-42 1 q0 10 10 10 m22 0 q10 0 10 -10 m-32 10 h4 m14 0 h4 m-32 -10 v20 m42 0 v-20 m-42 20 v8 m42 0 v-8 m-42 8 q0 10 10 10 m22 0 q10 0 10 -10 m-32 10 h4 m10 0 h4 m0 0 h4 m20 -49 h4 m122 0 h4 m3 0 h-3"/> + <polygon points="221 10 229 6 229 14"/> + <polygon points="221 10 213 6 213 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#signed-numeric-literal" title="signed_numeric_literal" shape="rect">signed_numeric_literal</a></div> + <div>         ::= ( '+' | '-' )? <a href="#unsigned-numeric-literal" title="unsigned_numeric_literal" shape="rect">unsigned_numeric_literal</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#literal" title="literal">literal</a></li><li><a href="#sequence-generator-increment" title="sequence-generator-increment">sequence-generator-increment</a></li><li><a href="#sequence-generator-max-value" title="sequence-generator-max-value">sequence-generator-max-value</a></li><li><a href="#sequence-generator-min-value" title="sequence-generator-min-value">sequence-generator-min-value</a></li><li><a href="#sequence-generator-restart-value" title="sequence-generator-restart-value">sequence-generator-restart-value</a></li><li><a href="#sequence-generator-start-value" title="sequence-generator-start-value">sequence-generator-start-value</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + unsigned_literal +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="209" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#unsigned-numeric-literal" xlink:title="unsigned_numeric_literal" shape="rect"> + <rect x="43" y="1" width="122" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">unsigned_numeric_literal</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#general-literal" xlink:title="general_literal" shape="rect"> + <rect x="43" y="29" width="72" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">general_literal</text></a><path class="line" d="m17 10 h2 m20 0 h4 m122 0 h4 m-150 0 h20 m130 0 h20 m-170 0 q10 0 10 10 m150 0 q0 -10 10 -10 m-160 10 v8 m150 0 v-8 m-150 8 q0 10 10 10 m130 0 q10 0 10 -10 m-140 10 h4 m72 0 h4 m0 0 h50 m23 -28 h-3"/> + <polygon points="199 10 207 6 207 14"/> + <polygon points="199 10 191 6 191 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#unsigned-literal" title="unsigned_literal" shape="rect">unsigned_literal</a></div> + <div>         ::= <a href="#unsigned-numeric-literal" title="unsigned_numeric_literal" shape="rect">unsigned_numeric_literal</a></div> + <div>           | <a href="#general-literal" title="general_literal" shape="rect">general_literal</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#unsigned-value-specification" title="unsigned-value-specification">unsigned-value-specification</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + unsigned_numeric_literal +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="225" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#exact-numeric-literal" xlink:title="exact_numeric_literal" shape="rect"> + <rect x="43" y="1" width="104" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">exact_numeric_literal</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#approximate-numeric-literal" xlink:title="approximate_numeric_literal" shape="rect"> + <rect x="43" y="29" width="138" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">approximate_numeric_literal</text></a><path class="line" d="m17 10 h2 m20 0 h4 m104 0 h4 m0 0 h34 m-166 0 h20 m146 0 h20 m-186 0 q10 0 10 10 m166 0 q0 -10 10 -10 m-176 10 v8 m166 0 v-8 m-166 8 q0 10 10 10 m146 0 q10 0 10 -10 m-156 10 h4 m138 0 h4 m23 -28 h-3"/> + <polygon points="215 10 223 6 223 14"/> + <polygon points="215 10 207 6 207 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#unsigned-numeric-literal" title="unsigned_numeric_literal" shape="rect">unsigned_numeric_literal</a></div> + <div>         ::= <a href="#exact-numeric-literal" title="exact_numeric_literal" shape="rect">exact_numeric_literal</a></div> + <div>           | <a href="#approximate-numeric-literal" title="approximate_numeric_literal" shape="rect">approximate_numeric_literal</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#signed-numeric-literal" title="signed-numeric-literal">signed-numeric-literal</a></li><li><a href="#unsigned-literal" title="unsigned-literal">unsigned-literal</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + exact_numeric_literal +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="177" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#unsigned-integer" xlink:title="unsigned_integer" shape="rect"> + <rect x="43" y="1" width="90" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">unsigned_integer</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#float-literal" xlink:title="float_literal" shape="rect"> + <rect x="43" y="29" width="56" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">float_literal</text></a><path class="line" d="m17 10 h2 m20 0 h4 m90 0 h4 m-118 0 h20 m98 0 h20 m-138 0 q10 0 10 10 m118 0 q0 -10 10 -10 m-128 10 v8 m118 0 v-8 m-118 8 q0 10 10 10 m98 0 q10 0 10 -10 m-108 10 h4 m56 0 h4 m0 0 h34 m23 -28 h-3"/> + <polygon points="167 10 175 6 175 14"/> + <polygon points="167 10 159 6 159 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#exact-numeric-literal" title="exact_numeric_literal" shape="rect">exact_numeric_literal</a></div> + <div>         ::= <a href="#unsigned-integer" title="unsigned_integer" shape="rect">unsigned_integer</a></div> + <div>           | <a href="#float-literal" title="float_literal" shape="rect">float_literal</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#unsigned-numeric-literal" title="unsigned-numeric-literal">unsigned-numeric-literal</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + general_literal +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="239" height="189"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#character-string-literal" xlink:title="character_string_literal" shape="rect"> + <rect x="43" y="1" width="110" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">character_string_literal</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#national-character-string-literal" xlink:title="national_character_string_literal" shape="rect"> + <rect x="43" y="29" width="152" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">national_character_string_literal</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#unicode-character-string-literal" xlink:title="Unicode_character_string_literal" shape="rect"> + <rect x="43" y="57" width="152" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="69">Unicode_character_string_literal</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#binary-string-literal" xlink:title="binary_string_literal" shape="rect"> + <rect x="43" y="85" width="96" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="97">binary_string_literal</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#datetime-literal" xlink:title="datetime_literal" shape="rect"> + <rect x="43" y="113" width="78" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="125">datetime_literal</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#interval-literal" xlink:title="interval_literal" shape="rect"> + <rect x="43" y="141" width="70" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="153">interval_literal</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#boolean-literal" xlink:title="boolean_literal" shape="rect"> + <rect x="43" y="169" width="74" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="181">boolean_literal</text></a><path class="line" d="m17 10 h2 m20 0 h4 m110 0 h4 m0 0 h42 m-180 0 h20 m160 0 h20 m-200 0 q10 0 10 10 m180 0 q0 -10 10 -10 m-190 10 v8 m180 0 v-8 m-180 8 q0 10 10 10 m160 0 q10 0 10 -10 m-170 10 h4 m152 0 h4 m-170 -10 v20 m180 0 v-20 m-180 20 v8 m180 0 v-8 m-180 8 q0 10 10 10 m160 0 q10 0 10 -10 m-170 10 h4 m152 0 h4 m-170 -10 v20 m180 0 v-20 m-180 20 v8 m180 0 v-8 m-180 8 q0 10 10 10 m160 0 q10 0 10 -10 m-170 10 h4 m96 0 h4 m0 0 h56 m-170 -10 v20 m180 0 v-20 m-180 20 v8 m180 0 v-8 m-180 8 q0 10 10 10 m160 0 q10 0 10 -10 m-170 10 h4 m78 0 h4 m0 0 h74 m-170 -10 v20 m180 0 v-20 m-180 20 v8 m180 0 v-8 m-180 8 q0 10 10 10 m160 0 q10 0 10 -10 m-170 10 h4 m70 0 h4 m0 0 h82 m-170 -10 v20 m180 0 v-20 m-180 20 v8 m180 0 v-8 m-180 8 q0 10 10 10 m160 0 q10 0 10 -10 m-170 10 h4 m74 0 h4 m0 0 h78 m23 -168 h-3"/> + <polygon points="229 10 237 6 237 14"/> + <polygon points="229 10 221 6 221 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#general-literal" title="general_literal" shape="rect">general_literal</a></div> + <div>         ::= <a href="#character-string-literal" title="character_string_literal" shape="rect">character_string_literal</a></div> + <div>           | <a href="#national-character-string-literal" title="national_character_string_literal" shape="rect">national_character_string_literal</a></div> + <div>           | <a href="#unicode-character-string-literal" title="Unicode_character_string_literal" shape="rect">Unicode_character_string_literal</a></div> + <div>           | <a href="#binary-string-literal" title="binary_string_literal" shape="rect">binary_string_literal</a></div> + <div>           | <a href="#datetime-literal" title="datetime_literal" shape="rect">datetime_literal</a></div> + <div>           | <a href="#interval-literal" title="interval_literal" shape="rect">interval_literal</a></div> + <div>           | <a href="#boolean-literal" title="boolean_literal" shape="rect">boolean_literal</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#literal" title="literal">literal</a></li><li><a href="#unsigned-literal" title="unsigned-literal">unsigned-literal</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + character_string_literal +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="359" height="54"> + <polygon points="9 22 1 18 1 26"/> + <polygon points="17 22 9 18 9 26"/> + <rect x="43" y="34" width="14" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="46">_</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#character-set-specification" xlink:title="character_set_specification" shape="rect"> + <rect x="65" y="34" width="130" height="18" class="nonterminal"/> + <text class="nonterminal" x="69" y="46">character_set_specification</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#quoted-string" xlink:title="quoted_string" shape="rect"> + <rect x="243" y="13" width="72" height="18" class="nonterminal"/> + <text class="nonterminal" x="247" y="25">quoted_string</text></a><path class="line" d="m17 22 h2 m20 0 h10 m0 0 h150 m-180 0 h20 m160 0 h20 m-200 0 q10 0 10 10 m180 0 q0 -10 10 -10 m-190 10 v1 m180 0 v-1 m-180 1 q0 10 10 10 m160 0 q10 0 10 -10 m-170 10 h4 m14 0 h4 m0 0 h4 m130 0 h4 m40 -21 h4 m72 0 h4 m-100 0 l20 0 m-1 0 q-9 0 -9 -10 l0 -1 q0 -10 10 -10 m80 21 l20 0 m-20 0 q10 0 10 -10 l0 -1 q0 -10 -10 -10 m-80 0 h10 m0 0 h70 m23 21 h-3"/> + <polygon points="349 22 357 18 357 26"/> + <polygon points="349 22 341 18 341 26"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#character-string-literal" title="character_string_literal" shape="rect">character_string_literal</a></div> + <div>         ::= ( '_' <a href="#character-set-specification" title="character_set_specification" shape="rect">character_set_specification</a> )? <a href="#quoted-string" title="quoted_string" shape="rect">quoted_string</a>+</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#column-description" title="column-description">column-description</a></li><li><a href="#date-literal" title="date-literal">date-literal</a></li><li><a href="#direct-implementation-defined-statement" title="direct-implementation-defined-statement">direct-implementation-defined-statement</a></li><li><a href="#external-routine-name" title="external-routine-name">external-routine-name</a></li><li><a href="#general-literal" title="general-literal">general-literal</a></li><li><a href="#interval-literal" title="interval-literal">interval-literal</a></li><li><a href="#preparable-implementation-defined-statement" title="preparable-implementation-defined-statement">preparable-implementation-defined-statement</a></li><li><a href="#routine-description" title="routine-description">routine-description</a></li><li><a href="#table-description" title="table-description">table-description</a></li><li><a href="#time-literal" title="time-literal">time-literal</a></li><li><a href="#timestamp-literal" title="timestamp-literal">timestamp-literal</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + Unicode_character_string_literal +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="321" height="42"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="43" y="22" width="14" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="34">_</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#character-set-specification" xlink:title="character_set_specification" shape="rect"> + <rect x="65" y="22" width="130" height="18" class="nonterminal"/> + <text class="nonterminal" x="69" y="34">character_set_specification</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#unicode-literal" xlink:title="unicode_literal" shape="rect"> + <rect x="223" y="1" width="74" height="18" class="nonterminal"/> + <text class="nonterminal" x="227" y="13">unicode_literal</text></a><path class="line" d="m17 10 h2 m20 0 h10 m0 0 h150 m-180 0 h20 m160 0 h20 m-200 0 q10 0 10 10 m180 0 q0 -10 10 -10 m-190 10 v1 m180 0 v-1 m-180 1 q0 10 10 10 m160 0 q10 0 10 -10 m-170 10 h4 m14 0 h4 m0 0 h4 m130 0 h4 m20 -21 h4 m74 0 h4 m3 0 h-3"/> + <polygon points="311 10 319 6 319 14"/> + <polygon points="311 10 303 6 303 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#unicode-character-string-literal" title="Unicode_character_string_literal" shape="rect">Unicode_character_string_literal</a></div> + <div>         ::= ( '_' <a href="#character-set-specification" title="character_set_specification" shape="rect">character_set_specification</a> )? <a href="#unicode-literal" title="unicode_literal" shape="rect">unicode_literal</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#general-literal" title="general-literal">general-literal</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + datetime_literal +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="175" height="77"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#date-literal" xlink:title="date_literal" shape="rect"> + <rect x="43" y="1" width="58" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">date_literal</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#time-literal" xlink:title="time_literal" shape="rect"> + <rect x="43" y="29" width="58" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">time_literal</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#timestamp-literal" xlink:title="timestamp_literal" shape="rect"> + <rect x="43" y="57" width="88" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="69">timestamp_literal</text></a><path class="line" d="m17 10 h2 m20 0 h4 m58 0 h4 m0 0 h30 m-116 0 h20 m96 0 h20 m-136 0 q10 0 10 10 m116 0 q0 -10 10 -10 m-126 10 v8 m116 0 v-8 m-116 8 q0 10 10 10 m96 0 q10 0 10 -10 m-106 10 h4 m58 0 h4 m0 0 h30 m-106 -10 v20 m116 0 v-20 m-116 20 v8 m116 0 v-8 m-116 8 q0 10 10 10 m96 0 q10 0 10 -10 m-106 10 h4 m88 0 h4 m23 -56 h-3"/> + <polygon points="165 10 173 6 173 14"/> + <polygon points="165 10 157 6 157 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#datetime-literal" title="datetime_literal" shape="rect">datetime_literal</a></div> + <div>         ::= <a href="#date-literal" title="date_literal" shape="rect">date_literal</a></div> + <div>           | <a href="#time-literal" title="time_literal" shape="rect">time_literal</a></div> + <div>           | <a href="#timestamp-literal" title="timestamp_literal" shape="rect">timestamp_literal</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#general-literal" title="general-literal">general-literal</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + date_literal +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="197" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="32" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">DATE</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#character-string-literal" xlink:title="character_string_literal" shape="rect"> + <rect x="63" y="1" width="110" height="18" class="nonterminal"/> + <text class="nonterminal" x="67" y="13">character_string_literal</text></a><path class="line" d="m17 10 h2 m0 0 h4 m32 0 h4 m0 0 h4 m110 0 h4 m3 0 h-3"/> + <polygon points="187 10 195 6 195 14"/> + <polygon points="187 10 179 6 179 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#date-literal" title="date_literal" shape="rect">date_literal</a></div> + <div>         ::= 'DATE' <a href="#character-string-literal" title="character_string_literal" shape="rect">character_string_literal</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#datetime-literal" title="datetime-literal">datetime-literal</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + time_literal +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="195" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="30" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">TIME</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#character-string-literal" xlink:title="character_string_literal" shape="rect"> + <rect x="61" y="1" width="110" height="18" class="nonterminal"/> + <text class="nonterminal" x="65" y="13">character_string_literal</text></a><path class="line" d="m17 10 h2 m0 0 h4 m30 0 h4 m0 0 h4 m110 0 h4 m3 0 h-3"/> + <polygon points="185 10 193 6 193 14"/> + <polygon points="185 10 177 6 177 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#time-literal" title="time_literal" shape="rect">time_literal</a></div> + <div>         ::= 'TIME' <a href="#character-string-literal" title="character_string_literal" shape="rect">character_string_literal</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#datetime-literal" title="datetime-literal">datetime-literal</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + timestamp_literal +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="227" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="62" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">TIMESTAMP</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#character-string-literal" xlink:title="character_string_literal" shape="rect"> + <rect x="93" y="1" width="110" height="18" class="nonterminal"/> + <text class="nonterminal" x="97" y="13">character_string_literal</text></a><path class="line" d="m17 10 h2 m0 0 h4 m62 0 h4 m0 0 h4 m110 0 h4 m3 0 h-3"/> + <polygon points="217 10 225 6 225 14"/> + <polygon points="217 10 209 6 209 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#timestamp-literal" title="timestamp_literal" shape="rect">timestamp_literal</a></div> + <div>         ::= 'TIMESTAMP' <a href="#character-string-literal" title="character_string_literal" shape="rect">character_string_literal</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#datetime-literal" title="datetime-literal">datetime-literal</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + interval_literal +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="367" height="70"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="52" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">INTERVAL</text> + <rect x="103" y="22" width="14" height="18" class="terminal" rx="4"/> + <text class="terminal" x="107" y="34">+</text> + <rect x="103" y="50" width="10" height="18" class="terminal" rx="4"/> + <text class="terminal" x="107" y="62">-</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#character-string-literal" xlink:title="character_string_literal" shape="rect"> + <rect x="145" y="1" width="110" height="18" class="nonterminal"/> + <text class="nonterminal" x="149" y="13">character_string_literal</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#interval-qualifier" xlink:title="interval_qualifier" shape="rect"> + <rect x="263" y="1" width="80" height="18" class="nonterminal"/> + <text class="nonterminal" x="267" y="13">interval_qualifier</text></a><path class="line" d="m17 10 h2 m0 0 h4 m52 0 h4 m20 0 h10 m0 0 h12 m-42 0 h20 m22 0 h20 m-62 0 q10 0 10 10 m42 0 q0 -10 10 -10 m-52 10 v1 m42 0 v-1 m-42 1 q0 10 10 10 m22 0 q10 0 10 -10 m-32 10 h4 m14 0 h4 m-32 -10 v20 m42 0 v-20 m-42 20 v8 m42 0 v-8 m-42 8 q0 10 10 10 m22 0 q10 0 10 -10 m-32 10 h4 m10 0 h4 m0 0 h4 m20 -49 h4 m110 0 h4 m0 0 h4 m80 0 h4 m3 0 h-3"/> + <polygon points="357 10 365 6 365 14"/> + <polygon points="357 10 349 6 349 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#interval-literal" title="interval_literal" shape="rect">interval_literal</a></div> + <div>         ::= 'INTERVAL' ( '+' | '-' )? <a href="#character-string-literal" title="character_string_literal" shape="rect">character_string_literal</a> <a href="#interval-qualifier" title="interval_qualifier" shape="rect">interval_qualifier</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#general-literal" title="general-literal">general-literal</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + boolean_literal +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="147" height="77"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="43" y="1" width="32" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="13">TRUE</text> + <rect x="43" y="29" width="36" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="41">FALSE</text> + <rect x="43" y="57" width="60" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="69">UNKNOWN</text> + <path class="line" d="m17 10 h2 m20 0 h4 m32 0 h4 m0 0 h28 m-88 0 h20 m68 0 h20 m-108 0 q10 0 10 10 m88 0 q0 -10 10 -10 m-98 10 v8 m88 0 v-8 m-88 8 q0 10 10 10 m68 0 q10 0 10 -10 m-78 10 h4 m36 0 h4 m0 0 h24 m-78 -10 v20 m88 0 v-20 m-88 20 v8 m88 0 v-8 m-88 8 q0 10 10 10 m68 0 q10 0 10 -10 m-78 10 h4 m60 0 h4 m23 -56 h-3"/> + <polygon points="137 10 145 6 145 14"/> + <polygon points="137 10 129 6 129 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#boolean-literal" title="boolean_literal" shape="rect">boolean_literal</a></div> + <div>         ::= 'TRUE'</div> + <div>           | 'FALSE'</div> + <div>           | 'UNKNOWN'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#general-literal" title="general-literal">general-literal</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + identifier +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="317" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#actual-identifier" xlink:title="actual_identifier" shape="rect"> + <rect x="43" y="1" width="78" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">actual_identifier</text></a><rect x="43" y="29" width="14" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="41">_</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#identifier-suffix-chain" xlink:title="identifier_suffix_chain" shape="rect"> + <rect x="169" y="22" width="104" height="18" class="nonterminal"/> + <text class="nonterminal" x="173" y="34">identifier_suffix_chain</text></a><path class="line" d="m17 10 h2 m20 0 h4 m78 0 h4 m-106 0 h20 m86 0 h20 m-126 0 q10 0 10 10 m106 0 q0 -10 10 -10 m-116 10 v8 m106 0 v-8 m-106 8 q0 10 10 10 m86 0 q10 0 10 -10 m-96 10 h4 m14 0 h4 m0 0 h64 m40 -28 h10 m0 0 h102 m-132 0 h20 m112 0 h20 m-152 0 q10 0 10 10 m132 0 q0 -10 10 -10 m-142 10 v1 m132 0 v-1 m-132 1 q0 10 10 10 m112 0 q10 0 10 -10 m-122 10 h4 m104 0 h4 m23 -21 h-3"/> + <polygon points="307 10 315 6 315 14"/> + <polygon points="307 10 299 6 299 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#identifier" title="identifier" shape="rect">identifier</a></div> + <div>         ::= ( <a href="#actual-identifier" title="actual_identifier" shape="rect">actual_identifier</a> | '_' ) <a href="#identifier-suffix-chain" title="identifier_suffix_chain" shape="rect">identifier_suffix_chain</a>?</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#sql-identifier" title="sql-identifier">sql-identifier</a></li><li><a href="#sql-parameter-declaration" title="sql-parameter-declaration">sql-parameter-declaration</a></li><li><a href="#alias" title="alias">alias</a></li><li><a href="#alter-column-definition" title="alter-column-definition">alter-column-definition</a></li><li><a href="#alter-group" title="alter-group">alter-group</a></li><li><a href="#as-clause" title="as-clause">as-clause</a></li><li><a href="#asterisked-identifier-chain" title="asterisked-identifier-chain">asterisked-identifier-chain</a></li><li><a href="#attribute-definition" title="attribute-definition">attribute-definition</a></li><li><a href="#cast-to-distinct" title="cast-to-distinct">cast-to-distinct</a></li><li><a href="#cast-to-ref" title="cast-to-ref">cast-to-ref</a></li><li><a href="#cast-to-source" title="cast-to-source">cast-to-source</a></li><li><a href="#cast-to-type" title="cast-to-type">cast-to-type</a></li><li><a href="#catalog-name" title="catalog-name">catalog-name</a></li><li><a href="#column-definition" title="column-definition">column-definition</a></li><li><a href="#column-name-list" title="column-name-list">column-name-list</a></li><li><a href="#column-options" title="column-options">column-options</a></li><li><a href="#column-reference" title="column-reference">column-reference</a></li><li><a href="#cycle-clause" title="cycle-clause">cycle-clause</a></li><li><a href="#cycle-column-list" title="cycle-column-list">cycle-column-list</a></li><li><a href="#delete-statement-positioned" title="delete-statement-positioned">delete-statement-positioned</a></li><li><a href="#delete-statement-searched" title="delete-statement-searched">delete-statement-searched</a></li><li><a href="#dereference-operation" title="dereference-operation">dereference-operation</a></li><li><a href="#descriptor-name" title="descriptor-name">descriptor-name</a></li><li><a href="#drop-attribute-definition" title="drop-attribute-definition">drop-attribute-definition</a></li><li><a href="#drop-column-definition" title="drop-column-definition">drop-column-definition</a></li><li><a href="#drop-role-statement" title="drop-role-statement">drop-role-statement</a></li><li><a href="#dynamic-declare-cursor" title="dynamic-declare-cursor">dynamic-declare-cursor</a></li><li><a href="#existing-identifier" title="existing-identifier">existing-identifier</a></li><li><a href="#external-routine-name" title="external-routine-name">external-routine-name</a></li><li><a href="#externally-invoked-procedure" title="externally-invoked-procedure">externally-invoked-procedure</a></li><li><a href="#field-definition" title="field-definition">field-definition</a></li><li><a href="#field-reference" title="field-reference">field-reference</a></li><li><a href="#generalized-invocation" title="generalized-invocation">generalized-invocation</a></li><li><a href="#grant-role-statement" title="grant-role-statement">grant-role-statement</a></li><li><a href="#grantee" title="grantee">grantee</a></li><li><a href="#group-specification" title="group-specification">group-specification</a></li><li><a href="#host-parameter-name" title="host-parameter-name">host-parameter-name</a></li><li><a href="#identifier-chain" title="identifier-chain">identifier-chain</a></li><li><a href="#list-of-attributes" title="list-of-attributes">list-of-attributes</a></li><li><a href="#member-name-alternatives" title="member-name-alternatives">member-name-alternatives</a></li><li><a href="#merge-statement" title="merge-statement">merge-statement</a></li><li><a href="#method-specification-designator" title="method-specification-designator">method-specification-designator</a></li><li><a href="#module-authorization-clause" title="module-authorization-clause">module-authorization-clause</a></li><li><a href="#module-name-clause" title="module-name-clause">module-name-clause</a></li><li><a href="#mutated-set-clause" title="mutated-set-clause">mutated-set-clause</a></li><li><a href="#mutated-target" title="mutated-target">mutated-target</a></li><li><a href="#named-argument-specification" title="named-argument-specification">named-argument-specification</a></li><li><a href="#partial-method-specification" title="partial-method-specification">partial-method-specification</a></li><li><a href="#revoke-role-statement" title="revoke-role-statement">revoke-role-statement</a></li><li><a href="#role-definition" title="role-definition">role-definition</a></li><li><a href="#routine-name" title="routine-name">routine-name</a></li><li><a href="#savepoint-specifier" title="savepoint-specifier">savepoint-specifier</a></li><li><a href="#schema-name-clause" title="schema-name-clause">schema-name-clause</a></li><li><a href="#search-clause" title="search-clause">search-clause</a></li><li><a href="#self-referencing-column-specification" title="self-referencing-column-specification">self-referencing-column-specification</a></li><li><a href="#single-group-specification" title="single-group-specification">single-group-specification</a></li><li><a href="#specific-identifier" title="specific-identifier">specific-identifier</a></li><li><a href="#specific-method-specification-designator" title="specific-method-specification-designator">specific-method-specification-designator</a></li><li><a href="#static-method-invocation" title="static-method-invocation">static-method-invocation</a></li><li><a href="#table-function-column-list-element" title="table-function-column-list-element">table-function-column-list-element</a></li><li><a href="#table-or-query-name" title="table-or-query-name">table-or-query-name</a></li><li><a href="#transform-group" title="transform-group">transform-group</a></li><li><a href="#transform-group-element" title="transform-group-element">transform-group-element</a></li><li><a href="#transition-table-or-variable" title="transition-table-or-variable">transition-table-or-variable</a></li><li><a href="#update-statement-positioned" title="update-statement-positioned">update-statement-positioned</a></li><li><a href="#update-statement-searched" title="update-statement-searched">update-statement-searched</a></li><li><a href="#update-target" title="update-target">update-target</a></li><li><a href="#view-column-option" title="view-column-option">view-column-option</a></li><li><a href="#window-definition" title="window-definition">window-definition</a></li><li><a href="#window-name-or-specification" title="window-name-or-specification">window-name-or-specification</a></li><li><a href="#with-list-element" title="with-list-element">with-list-element</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + actual_identifier +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="221" height="105"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#regular-identifier" xlink:title="regular_identifier" shape="rect"> + <rect x="43" y="1" width="84" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">regular_identifier</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#delimited-identifier" xlink:title="delimited_identifier" shape="rect"> + <rect x="43" y="29" width="92" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">delimited_identifier</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#unicode-delimited-identifier" xlink:title="Unicode_delimited_identifier" shape="rect"> + <rect x="43" y="57" width="134" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="69">Unicode_delimited_identifier</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#non-reserved-word" xlink:title="non_reserved_word" shape="rect"> + <rect x="43" y="85" width="102" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="97">non_reserved_word</text></a><path class="line" d="m17 10 h2 m20 0 h4 m84 0 h4 m0 0 h50 m-162 0 h20 m142 0 h20 m-182 0 q10 0 10 10 m162 0 q0 -10 10 -10 m-172 10 v8 m162 0 v-8 m-162 8 q0 10 10 10 m142 0 q10 0 10 -10 m-152 10 h4 m92 0 h4 m0 0 h42 m-152 -10 v20 m162 0 v-20 m-162 20 v8 m162 0 v-8 m-162 8 q0 10 10 10 m142 0 q10 0 10 -10 m-152 10 h4 m134 0 h4 m-152 -10 v20 m162 0 v-20 m-162 20 v8 m162 0 v-8 m-162 8 q0 10 10 10 m142 0 q10 0 10 -10 m-152 10 h4 m102 0 h4 m0 0 h32 m23 -84 h-3"/> + <polygon points="211 10 219 6 219 14"/> + <polygon points="211 10 203 6 203 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#actual-identifier" title="actual_identifier" shape="rect">actual_identifier</a></div> + <div>         ::= <a href="#regular-identifier" title="regular_identifier" shape="rect">regular_identifier</a></div> + <div>           | <a href="#delimited-identifier" title="delimited_identifier" shape="rect">delimited_identifier</a></div> + <div>           | <a href="#unicode-delimited-identifier" title="Unicode_delimited_identifier" shape="rect">Unicode_delimited_identifier</a></div> + <div>           | <a href="#non-reserved-word" title="non_reserved_word" shape="rect">non_reserved_word</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#identifier" title="identifier">identifier</a></li><li><a href="#identifier-suffix-chain" title="identifier-suffix-chain">identifier-suffix-chain</a></li><li><a href="#lambda-params" title="lambda-params">lambda-params</a></li><li><a href="#table-attributes" title="table-attributes">table-attributes</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + table_name +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="123" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#identifier-chain" xlink:title="identifier_chain" shape="rect"> + <rect x="23" y="1" width="76" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">identifier_chain</text></a><path class="line" d="m17 10 h2 m0 0 h4 m76 0 h4 m3 0 h-3"/> + <polygon points="113 10 121 6 121 14"/> + <polygon points="113 10 105 6 105 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#table-name" title="table_name" shape="rect">table_name</a></div> + <div>         ::= <a href="#identifier-chain" title="identifier_chain" shape="rect">identifier_chain</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#alter-table-statement" title="alter-table-statement">alter-table-statement</a></li><li><a href="#drop-table-statement" title="drop-table-statement">drop-table-statement</a></li><li><a href="#drop-view-statement" title="drop-view-statement">drop-view-statement</a></li><li><a href="#insertion-target" title="insertion-target">insertion-target</a></li><li><a href="#like-clause" title="like-clause">like-clause</a></li><li><a href="#object-name" title="object-name">object-name</a></li><li><a href="#referenced-table-and-columns" title="referenced-table-and-columns">referenced-table-and-columns</a></li><li><a href="#scope-clause" title="scope-clause">scope-clause</a></li><li><a href="#subview-clause" title="subview-clause">subview-clause</a></li><li><a href="#supertable-name" title="supertable-name">supertable-name</a></li><li><a href="#table-definition" title="table-definition">table-definition</a></li><li><a href="#table-or-query-name" title="table-or-query-name">table-or-query-name</a></li><li><a href="#target-table" title="target-table">target-table</a></li><li><a href="#temporary-table-declaration" title="temporary-table-declaration">temporary-table-declaration</a></li><li><a href="#trigger-definition" title="trigger-definition">trigger-definition</a></li><li><a href="#view-definition" title="view-definition">view-definition</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + schema_name +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="123" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#identifier-chain" xlink:title="identifier_chain" shape="rect"> + <rect x="23" y="1" width="76" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">identifier_chain</text></a><path class="line" d="m17 10 h2 m0 0 h4 m76 0 h4 m3 0 h-3"/> + <polygon points="113 10 121 6 121 14"/> + <polygon points="113 10 105 6 105 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#schema-name" title="schema_name" shape="rect">schema_name</a></div> + <div>         ::= <a href="#identifier-chain" title="identifier_chain" shape="rect">identifier_chain</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#character-set-name" title="character-set-name">character-set-name</a></li><li><a href="#drop-schema-statement" title="drop-schema-statement">drop-schema-statement</a></li><li><a href="#local-or-schema-qualifier" title="local-or-schema-qualifier">local-or-schema-qualifier</a></li><li><a href="#module-authorization-clause" title="module-authorization-clause">module-authorization-clause</a></li><li><a href="#routine-name" title="routine-name">routine-name</a></li><li><a href="#schema-name-clause" title="schema-name-clause">schema-name-clause</a></li><li><a href="#schema-name-list" title="schema-name-list">schema-name-list</a></li><li><a href="#specific-identifier" title="specific-identifier">specific-identifier</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + catalog_name +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="93" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#identifier" xlink:title="identifier" shape="rect"> + <rect x="23" y="1" width="46" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">identifier</text></a><path class="line" d="m17 10 h2 m0 0 h4 m46 0 h4 m3 0 h-3"/> + <polygon points="83 10 91 6 91 14"/> + <polygon points="83 10 75 6 75 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#catalog-name" title="catalog_name" shape="rect">catalog_name</a></div> + <div>         ::= <a href="#identifier" title="identifier" shape="rect">identifier</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Not referenced by any. + </div></td></tr></tbody></table> + + +====================================================================================================================== + schema_qualified_name +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="123" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#identifier-chain" xlink:title="identifier_chain" shape="rect"> + <rect x="23" y="1" width="76" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">identifier_chain</text></a><path class="line" d="m17 10 h2 m0 0 h4 m76 0 h4 m3 0 h-3"/> + <polygon points="113 10 121 6 121 14"/> + <polygon points="113 10 105 6 105 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#schema-qualified-name" title="schema_qualified_name" shape="rect">schema_qualified_name</a></div> + <div>         ::= <a href="#identifier-chain" title="identifier_chain" shape="rect">identifier_chain</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#sql-invoked-procedure" title="sql-invoked-procedure">sql-invoked-procedure</a></li><li><a href="#alter-domain-statement" title="alter-domain-statement">alter-domain-statement</a></li><li><a href="#alter-sequence-generator-statement" title="alter-sequence-generator-statement">alter-sequence-generator-statement</a></li><li><a href="#alter-table-constraint-definition" title="alter-table-constraint-definition">alter-table-constraint-definition</a></li><li><a href="#assertion-definition" title="assertion-definition">assertion-definition</a></li><li><a href="#cast-target" title="cast-target">cast-target</a></li><li><a href="#character-transliteration" title="character-transliteration">character-transliteration</a></li><li><a href="#collate-clause" title="collate-clause">collate-clause</a></li><li><a href="#collation-definition" title="collation-definition">collation-definition</a></li><li><a href="#constraint-name-definition" title="constraint-name-definition">constraint-name-definition</a></li><li><a href="#constraint-name-list" title="constraint-name-list">constraint-name-list</a></li><li><a href="#data-type-or-schema-qualified-name" title="data-type-or-schema-qualified-name">data-type-or-schema-qualified-name</a></li><li><a href="#domain-definition" title="domain-definition">domain-definition</a></li><li><a href="#drop-assertion-statement" title="drop-assertion-statement">drop-assertion-statement</a></li><li><a href="#drop-collation-statement" title="drop-collation-statement">drop-collation-statement</a></li><li><a href="#drop-domain-constraint-definition" title="drop-domain-constraint-definition">drop-domain-constraint-definition</a></li><li><a href="#drop-domain-statement" title="drop-domain-statement">drop-domain-statement</a></li><li><a href="#drop-sequence-generator-statement" title="drop-sequence-generator-statement">drop-sequence-generator-statement</a></li><li><a href="#drop-table-constraint-definition" title="drop-table-constraint-definition">drop-table-constraint-definition</a></li><li><a href="#drop-transliteration-statement" title="drop-transliteration-statement">drop-transliteration-statement</a></li><li><a href="#drop-trigger-statement" title="drop-trigger-statement">drop-trigger-statement</a></li><li><a href="#function-specification" title="function-specification">function-specification</a></li><li><a href="#member-name-alternatives" title="member-name-alternatives">member-name-alternatives</a></li><li><a href="#module-collation-specification" title="module-collation-specification">module-collation-specification</a></li><li><a href="#next-value-expression" title="next-value-expression">next-value-expression</a></li><li><a href="#object-name" title="object-name">object-name</a></li><li><a href="#routine-characteristic" title="routine-characteristic">routine-characteristic</a></li><li><a href="#sequence-generator-definition" title="sequence-generator-definition">sequence-generator-definition</a></li><li><a href="#specific-routine-designator" title="specific-routine-designator">specific-routine-designator</a></li><li><a href="#state-category" title="state-category">state-category</a></li><li><a href="#transcoding" title="transcoding">transcoding</a></li><li><a href="#transliteration-definition" title="transliteration-definition">transliteration-definition</a></li><li><a href="#transliteration-source" title="transliteration-source">transliteration-source</a></li><li><a href="#trigger-definition" title="trigger-definition">trigger-definition</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + local_or_schema_qualified_name +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="123" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#identifier-chain" xlink:title="identifier_chain" shape="rect"> + <rect x="23" y="1" width="76" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">identifier_chain</text></a><path class="line" d="m17 10 h2 m0 0 h4 m76 0 h4 m3 0 h-3"/> + <polygon points="113 10 121 6 121 14"/> + <polygon points="113 10 105 6 105 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#local-or-schema-qualified-name" title="local_or_schema_qualified_name" shape="rect">local_or_schema_qualified_name</a></div> + <div>         ::= <a href="#identifier-chain" title="identifier_chain" shape="rect">identifier_chain</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Not referenced by any. + </div></td></tr></tbody></table> + + +====================================================================================================================== + local_or_schema_qualifier +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="167" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="43" y="1" width="48" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="13">MODULE</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#schema-name" xlink:title="schema_name" shape="rect"> + <rect x="43" y="29" width="80" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">schema_name</text></a><path class="line" d="m17 10 h2 m20 0 h4 m48 0 h4 m0 0 h32 m-108 0 h20 m88 0 h20 m-128 0 q10 0 10 10 m108 0 q0 -10 10 -10 m-118 10 v8 m108 0 v-8 m-108 8 q0 10 10 10 m88 0 q10 0 10 -10 m-98 10 h4 m80 0 h4 m23 -28 h-3"/> + <polygon points="157 10 165 6 165 14"/> + <polygon points="157 10 149 6 149 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#local-or-schema-qualifier" title="local_or_schema_qualifier" shape="rect">local_or_schema_qualifier</a></div> + <div>         ::= 'MODULE'</div> + <div>           | <a href="#schema-name" title="schema_name" shape="rect">schema_name</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Not referenced by any. + </div></td></tr></tbody></table> + + +====================================================================================================================== + cursor_name +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="123" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#identifier-chain" xlink:title="identifier_chain" shape="rect"> + <rect x="23" y="1" width="76" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">identifier_chain</text></a><path class="line" d="m17 10 h2 m0 0 h4 m76 0 h4 m3 0 h-3"/> + <polygon points="113 10 121 6 121 14"/> + <polygon points="113 10 105 6 105 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#cursor-name" title="cursor_name" shape="rect">cursor_name</a></div> + <div>         ::= <a href="#identifier-chain" title="identifier_chain" shape="rect">identifier_chain</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#close-statement" title="close-statement">close-statement</a></li><li><a href="#declare-cursor" title="declare-cursor">declare-cursor</a></li><li><a href="#delete-statement-positioned" title="delete-statement-positioned">delete-statement-positioned</a></li><li><a href="#dynamic-cursor-name" title="dynamic-cursor-name">dynamic-cursor-name</a></li><li><a href="#dynamic-declare-cursor" title="dynamic-declare-cursor">dynamic-declare-cursor</a></li><li><a href="#fetch-statement" title="fetch-statement">fetch-statement</a></li><li><a href="#open-statement" title="open-statement">open-statement</a></li><li><a href="#preparable-dynamic-cursor-name" title="preparable-dynamic-cursor-name">preparable-dynamic-cursor-name</a></li><li><a href="#update-statement-positioned" title="update-statement-positioned">update-statement-positioned</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + host_parameter_name +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="111" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="10" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">:</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#identifier" xlink:title="identifier" shape="rect"> + <rect x="41" y="1" width="46" height="18" class="nonterminal"/> + <text class="nonterminal" x="45" y="13">identifier</text></a><path class="line" d="m17 10 h2 m0 0 h4 m10 0 h4 m0 0 h4 m46 0 h4 m3 0 h-3"/> + <polygon points="101 10 109 6 109 14"/> + <polygon points="101 10 93 6 93 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#host-parameter-name" title="host_parameter_name" shape="rect">host_parameter_name</a></div> + <div>         ::= ':' <a href="#identifier" title="identifier" shape="rect">identifier</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#general-value-specification" title="general-value-specification">general-value-specification</a></li><li><a href="#host-parameter-declaration" title="host-parameter-declaration">host-parameter-declaration</a></li><li><a href="#simple-value-specification" title="simple-value-specification">simple-value-specification</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + external_routine_name +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="197" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#identifier" xlink:title="identifier" shape="rect"> + <rect x="43" y="1" width="46" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">identifier</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#character-string-literal" xlink:title="character_string_literal" shape="rect"> + <rect x="43" y="29" width="110" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">character_string_literal</text></a><path class="line" d="m17 10 h2 m20 0 h4 m46 0 h4 m0 0 h64 m-138 0 h20 m118 0 h20 m-158 0 q10 0 10 10 m138 0 q0 -10 10 -10 m-148 10 v8 m138 0 v-8 m-138 8 q0 10 10 10 m118 0 q10 0 10 -10 m-128 10 h4 m110 0 h4 m23 -28 h-3"/> + <polygon points="187 10 195 6 195 14"/> + <polygon points="187 10 179 6 179 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#external-routine-name" title="external_routine_name" shape="rect">external_routine_name</a></div> + <div>         ::= <a href="#identifier" title="identifier" shape="rect">identifier</a></div> + <div>           | <a href="#character-string-literal" title="character_string_literal" shape="rect">character_string_literal</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#alter-routine-characteristic" title="alter-routine-characteristic">alter-routine-characteristic</a></li><li><a href="#external-body-reference" title="external-body-reference">external-body-reference</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + character_set_name +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="311" height="42"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#schema-name" xlink:title="schema_name" shape="rect"> + <rect x="43" y="22" width="80" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="34">schema_name</text></a><rect x="131" y="22" width="8" height="18" class="terminal" rx="4"/> + <text class="terminal" x="135" y="34">.</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#sql-language-identifier" xlink:title="SQL_language_identifier" shape="rect"> + <rect x="167" y="1" width="120" height="18" class="nonterminal"/> + <text class="nonterminal" x="171" y="13">SQL_language_identifier</text></a><path class="line" d="m17 10 h2 m20 0 h10 m0 0 h94 m-124 0 h20 m104 0 h20 m-144 0 q10 0 10 10 m124 0 q0 -10 10 -10 m-134 10 v1 m124 0 v-1 m-124 1 q0 10 10 10 m104 0 q10 0 10 -10 m-114 10 h4 m80 0 h4 m0 0 h4 m8 0 h4 m20 -21 h4 m120 0 h4 m3 0 h-3"/> + <polygon points="301 10 309 6 309 14"/> + <polygon points="301 10 293 6 293 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#character-set-name" title="character_set_name" shape="rect">character_set_name</a></div> + <div>         ::= ( <a href="#schema-name" title="schema_name" shape="rect">schema_name</a> '.' )? <a href="#sql-language-identifier" title="SQL_language_identifier" shape="rect">SQL_language_identifier</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#character-set-definition" title="character-set-definition">character-set-definition</a></li><li><a href="#drop-character-set-statement" title="drop-character-set-statement">drop-character-set-statement</a></li><li><a href="#implementation-defined-character-set-name" title="implementation-defined-character-set-name">implementation-defined-character-set-name</a></li><li><a href="#object-name" title="object-name">object-name</a></li><li><a href="#standard-character-set-name" title="standard-character-set-name">standard-character-set-name</a></li><li><a href="#user-defined-character-set-name" title="user-defined-character-set-name">user-defined-character-set-name</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + schema_resolved_user_defined_type_name +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="175" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#user-defined-type-name" xlink:title="user_defined_type_name" shape="rect"> + <rect x="23" y="1" width="128" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">user_defined_type_name</text></a><path class="line" d="m17 10 h2 m0 0 h4 m128 0 h4 m3 0 h-3"/> + <polygon points="165 10 173 6 173 14"/> + <polygon points="165 10 157 6 157 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#schema-resolved-user-defined-type-name" title="schema_resolved_user_defined_type_name" shape="rect">schema_resolved_user_defined_type_name</a></div> + <div>         ::= <a href="#user-defined-type-name" title="user_defined_type_name" shape="rect">user_defined_type_name</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#alter-transform-statement" title="alter-transform-statement">alter-transform-statement</a></li><li><a href="#alter-type-statement" title="alter-type-statement">alter-type-statement</a></li><li><a href="#drop-data-type-statement" title="drop-data-type-statement">drop-data-type-statement</a></li><li><a href="#drop-transform-statement" title="drop-transform-statement">drop-transform-statement</a></li><li><a href="#drop-user-defined-ordering-statement" title="drop-user-defined-ordering-statement">drop-user-defined-ordering-statement</a></li><li><a href="#method-specification-designator" title="method-specification-designator">method-specification-designator</a></li><li><a href="#object-name" title="object-name">object-name</a></li><li><a href="#specific-routine-designator" title="specific-routine-designator">specific-routine-designator</a></li><li><a href="#transform-definition" title="transform-definition">transform-definition</a></li><li><a href="#user-defined-ordering-definition" title="user-defined-ordering-definition">user-defined-ordering-definition</a></li><li><a href="#user-defined-type-body" title="user-defined-type-body">user-defined-type-body</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + user_defined_type_name +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="123" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#identifier-chain" xlink:title="identifier_chain" shape="rect"> + <rect x="23" y="1" width="76" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">identifier_chain</text></a><path class="line" d="m17 10 h2 m0 0 h4 m76 0 h4 m3 0 h-3"/> + <polygon points="113 10 121 6 121 14"/> + <polygon points="113 10 105 6 105 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#user-defined-type-name" title="user_defined_type_name" shape="rect">user_defined_type_name</a></div> + <div>         ::= <a href="#identifier-chain" title="identifier_chain" shape="rect">identifier_chain</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#path-resolved-user-defined-type-name" title="path-resolved-user-defined-type-name">path-resolved-user-defined-type-name</a></li><li><a href="#schema-resolved-user-defined-type-name" title="schema-resolved-user-defined-type-name">schema-resolved-user-defined-type-name</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + SQL_identifier +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="183" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#identifier" xlink:title="identifier" shape="rect"> + <rect x="43" y="1" width="46" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">identifier</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#extended-identifier" xlink:title="extended_identifier" shape="rect"> + <rect x="43" y="29" width="96" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">extended_identifier</text></a><path class="line" d="m17 10 h2 m20 0 h4 m46 0 h4 m0 0 h50 m-124 0 h20 m104 0 h20 m-144 0 q10 0 10 10 m124 0 q0 -10 10 -10 m-134 10 v8 m124 0 v-8 m-124 8 q0 10 10 10 m104 0 q10 0 10 -10 m-114 10 h4 m96 0 h4 m23 -28 h-3"/> + <polygon points="173 10 181 6 181 14"/> + <polygon points="173 10 165 6 165 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#sql-identifier" title="SQL_identifier" shape="rect">SQL_identifier</a></div> + <div>         ::= <a href="#identifier" title="identifier" shape="rect">identifier</a></div> + <div>           | <a href="#extended-identifier" title="extended_identifier" shape="rect">extended_identifier</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#deallocate-prepared-statement" title="deallocate-prepared-statement">deallocate-prepared-statement</a></li><li><a href="#describe-input-statement" title="describe-input-statement">describe-input-statement</a></li><li><a href="#described-object" title="described-object">described-object</a></li><li><a href="#execute-statement" title="execute-statement">execute-statement</a></li><li><a href="#prepare-statement" title="prepare-statement">prepare-statement</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + extended_identifier +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="295" height="42"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#scope-option" xlink:title="scope_option" shape="rect"> + <rect x="43" y="22" width="72" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="34">scope_option</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#simple-value-specification" xlink:title="simple_value_specification" shape="rect"> + <rect x="143" y="1" width="128" height="18" class="nonterminal"/> + <text class="nonterminal" x="147" y="13">simple_value_specification</text></a><path class="line" d="m17 10 h2 m20 0 h10 m0 0 h70 m-100 0 h20 m80 0 h20 m-120 0 q10 0 10 10 m100 0 q0 -10 10 -10 m-110 10 v1 m100 0 v-1 m-100 1 q0 10 10 10 m80 0 q10 0 10 -10 m-90 10 h4 m72 0 h4 m20 -21 h4 m128 0 h4 m3 0 h-3"/> + <polygon points="285 10 293 6 293 14"/> + <polygon points="285 10 277 6 277 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#extended-identifier" title="extended_identifier" shape="rect">extended_identifier</a></div> + <div>         ::= <a href="#scope-option" title="scope_option" shape="rect">scope_option</a>? <a href="#simple-value-specification" title="simple_value_specification" shape="rect">simple_value_specification</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#sql-identifier" title="sql-identifier">sql-identifier</a></li><li><a href="#statement-cursor" title="statement-cursor">statement-cursor</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + dynamic_cursor_name +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="207" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#cursor-name" xlink:title="cursor_name" shape="rect"> + <rect x="43" y="1" width="70" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">cursor_name</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#extended-cursor-name" xlink:title="extended_cursor_name" shape="rect"> + <rect x="43" y="29" width="120" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">extended_cursor_name</text></a><path class="line" d="m17 10 h2 m20 0 h4 m70 0 h4 m0 0 h50 m-148 0 h20 m128 0 h20 m-168 0 q10 0 10 10 m148 0 q0 -10 10 -10 m-158 10 v8 m148 0 v-8 m-148 8 q0 10 10 10 m128 0 q10 0 10 -10 m-138 10 h4 m120 0 h4 m23 -28 h-3"/> + <polygon points="197 10 205 6 205 14"/> + <polygon points="197 10 189 6 189 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#dynamic-cursor-name" title="dynamic_cursor_name" shape="rect">dynamic_cursor_name</a></div> + <div>         ::= <a href="#cursor-name" title="cursor_name" shape="rect">cursor_name</a></div> + <div>           | <a href="#extended-cursor-name" title="extended_cursor_name" shape="rect">extended_cursor_name</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#dynamic-close-statement" title="dynamic-close-statement">dynamic-close-statement</a></li><li><a href="#dynamic-delete-statement-positioned" title="dynamic-delete-statement-positioned">dynamic-delete-statement-positioned</a></li><li><a href="#dynamic-fetch-statement" title="dynamic-fetch-statement">dynamic-fetch-statement</a></li><li><a href="#dynamic-open-statement" title="dynamic-open-statement">dynamic-open-statement</a></li><li><a href="#dynamic-update-statement-positioned" title="dynamic-update-statement-positioned">dynamic-update-statement-positioned</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + extended_cursor_name +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="295" height="42"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#scope-option" xlink:title="scope_option" shape="rect"> + <rect x="43" y="22" width="72" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="34">scope_option</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#simple-value-specification" xlink:title="simple_value_specification" shape="rect"> + <rect x="143" y="1" width="128" height="18" class="nonterminal"/> + <text class="nonterminal" x="147" y="13">simple_value_specification</text></a><path class="line" d="m17 10 h2 m20 0 h10 m0 0 h70 m-100 0 h20 m80 0 h20 m-120 0 q10 0 10 10 m100 0 q0 -10 10 -10 m-110 10 v1 m100 0 v-1 m-100 1 q0 10 10 10 m80 0 q10 0 10 -10 m-90 10 h4 m72 0 h4 m20 -21 h4 m128 0 h4 m3 0 h-3"/> + <polygon points="285 10 293 6 293 14"/> + <polygon points="285 10 277 6 277 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#extended-cursor-name" title="extended_cursor_name" shape="rect">extended_cursor_name</a></div> + <div>         ::= <a href="#scope-option" title="scope_option" shape="rect">scope_option</a>? <a href="#simple-value-specification" title="simple_value_specification" shape="rect">simple_value_specification</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#allocate-cursor-statement" title="allocate-cursor-statement">allocate-cursor-statement</a></li><li><a href="#described-object" title="described-object">described-object</a></li><li><a href="#dynamic-cursor-name" title="dynamic-cursor-name">dynamic-cursor-name</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + descriptor_name +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="223" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#identifier" xlink:title="identifier" shape="rect"> + <rect x="43" y="1" width="46" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">identifier</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#extended-descriptor-name" xlink:title="extended_descriptor_name" shape="rect"> + <rect x="43" y="29" width="136" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">extended_descriptor_name</text></a><path class="line" d="m17 10 h2 m20 0 h4 m46 0 h4 m0 0 h90 m-164 0 h20 m144 0 h20 m-184 0 q10 0 10 10 m164 0 q0 -10 10 -10 m-174 10 v8 m164 0 v-8 m-164 8 q0 10 10 10 m144 0 q10 0 10 -10 m-154 10 h4 m136 0 h4 m23 -28 h-3"/> + <polygon points="213 10 221 6 221 14"/> + <polygon points="213 10 205 6 205 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#descriptor-name" title="descriptor_name" shape="rect">descriptor_name</a></div> + <div>         ::= <a href="#identifier" title="identifier" shape="rect">identifier</a></div> + <div>           | <a href="#extended-descriptor-name" title="extended_descriptor_name" shape="rect">extended_descriptor_name</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#allocate-descriptor-statement" title="allocate-descriptor-statement">allocate-descriptor-statement</a></li><li><a href="#deallocate-descriptor-statement" title="deallocate-descriptor-statement">deallocate-descriptor-statement</a></li><li><a href="#get-descriptor-statement" title="get-descriptor-statement">get-descriptor-statement</a></li><li><a href="#into-descriptor" title="into-descriptor">into-descriptor</a></li><li><a href="#set-descriptor-statement" title="set-descriptor-statement">set-descriptor-statement</a></li><li><a href="#using-descriptor" title="using-descriptor">using-descriptor</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + extended_descriptor_name +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="295" height="42"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#scope-option" xlink:title="scope_option" shape="rect"> + <rect x="43" y="22" width="72" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="34">scope_option</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#simple-value-specification" xlink:title="simple_value_specification" shape="rect"> + <rect x="143" y="1" width="128" height="18" class="nonterminal"/> + <text class="nonterminal" x="147" y="13">simple_value_specification</text></a><path class="line" d="m17 10 h2 m20 0 h10 m0 0 h70 m-100 0 h20 m80 0 h20 m-120 0 q10 0 10 10 m100 0 q0 -10 10 -10 m-110 10 v1 m100 0 v-1 m-100 1 q0 10 10 10 m80 0 q10 0 10 -10 m-90 10 h4 m72 0 h4 m20 -21 h4 m128 0 h4 m3 0 h-3"/> + <polygon points="285 10 293 6 293 14"/> + <polygon points="285 10 277 6 277 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#extended-descriptor-name" title="extended_descriptor_name" shape="rect">extended_descriptor_name</a></div> + <div>         ::= <a href="#scope-option" title="scope_option" shape="rect">scope_option</a>? <a href="#simple-value-specification" title="simple_value_specification" shape="rect">simple_value_specification</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#descriptor-name" title="descriptor-name">descriptor-name</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + scope_option +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="131" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="43" y="1" width="44" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="13">GLOBAL</text> + <rect x="43" y="29" width="38" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="41">LOCAL</text> + <path class="line" d="m17 10 h2 m20 0 h4 m44 0 h4 m-72 0 h20 m52 0 h20 m-92 0 q10 0 10 10 m72 0 q0 -10 10 -10 m-82 10 v8 m72 0 v-8 m-72 8 q0 10 10 10 m52 0 q10 0 10 -10 m-62 10 h4 m38 0 h4 m0 0 h6 m23 -28 h-3"/> + <polygon points="121 10 129 6 129 14"/> + <polygon points="121 10 113 6 113 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#scope-option" title="scope_option" shape="rect">scope_option</a></div> + <div>         ::= 'GLOBAL'</div> + <div>           | 'LOCAL'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#extended-cursor-name" title="extended-cursor-name">extended-cursor-name</a></li><li><a href="#extended-descriptor-name" title="extended-descriptor-name">extended-descriptor-name</a></li><li><a href="#extended-identifier" title="extended-identifier">extended-identifier</a></li><li><a href="#preparable-dynamic-cursor-name" title="preparable-dynamic-cursor-name">preparable-dynamic-cursor-name</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + data_type +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="409" height="133"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#predefined-type" xlink:title="predefined_type" shape="rect"> + <rect x="43" y="1" width="84" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">predefined_type</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#row-type" xlink:title="row_type" shape="rect"> + <rect x="43" y="29" width="52" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">row_type</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#reference-type" xlink:title="reference_type" shape="rect"> + <rect x="43" y="57" width="78" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="69">reference_type</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#presto-generic-type" xlink:title="presto_generic_type" shape="rect"> + <rect x="43" y="85" width="104" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="97">presto_generic_type</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#path-resolved-user-defined-type-name" xlink:title="path_resolved_user_defined_type_name" shape="rect"> + <rect x="43" y="113" width="200" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="125">path_resolved_user_defined_type_name</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#collection-type" xlink:title="collection_type" shape="rect"> + <rect x="291" y="22" width="74" height="18" class="nonterminal"/> + <text class="nonterminal" x="295" y="34">collection_type</text></a><path class="line" d="m17 10 h2 m20 0 h4 m84 0 h4 m0 0 h116 m-228 0 h20 m208 0 h20 m-248 0 q10 0 10 10 m228 0 q0 -10 10 -10 m-238 10 v8 m228 0 v-8 m-228 8 q0 10 10 10 m208 0 q10 0 10 -10 m-218 10 h4 m52 0 h4 m0 0 h148 m-218 -10 v20 m228 0 v-20 m-228 20 v8 m228 0 v-8 m-228 8 q0 10 10 10 m208 0 q10 0 10 -10 m-218 10 h4 m78 0 h4 m0 0 h122 m-218 -10 v20 m228 0 v-20 m-228 20 v8 m228 0 v-8 m-228 8 q0 10 10 10 m208 0 q10 0 10 -10 m-218 10 h4 m104 0 h4 m0 0 h96 m-218 -10 v20 m228 0 v-20 m-228 20 v8 m228 0 v-8 m-228 8 q0 10 10 10 m208 0 q10 0 10 -10 m-218 10 h4 m200 0 h4 m40 -112 h10 m0 0 h72 m-102 0 h20 m82 0 h20 m-122 0 q10 0 10 10 m102 0 q0 -10 10 -10 m-112 10 v1 m102 0 v-1 m-102 1 q0 10 10 10 m82 0 q10 0 10 -10 m-92 10 h4 m74 0 h4 m23 -21 h-3"/> + <polygon points="399 10 407 6 407 14"/> + <polygon points="399 10 391 6 391 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#data-type" title="data_type" shape="rect">data_type</a></div> + <div>         ::= ( <a href="#predefined-type" title="predefined_type" shape="rect">predefined_type</a> | <a href="#row-type" title="row_type" shape="rect">row_type</a> | <a href="#reference-type" title="reference_type" shape="rect">reference_type</a> | <a href="#presto-generic-type" title="presto_generic_type" shape="rect">presto_generic_type</a> | <a href="#path-resolved-user-defined-type-name" title="path_resolved_user_defined_type_name" shape="rect">path_resolved_user_defined_type_name</a> ) <a href="#collection-type" title="collection_type" shape="rect">collection_type</a>?</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#alter-column-data-type-clause" title="alter-column-data-type-clause">alter-column-data-type-clause</a></li><li><a href="#attribute-definition" title="attribute-definition">attribute-definition</a></li><li><a href="#cast-target" title="cast-target">cast-target</a></li><li><a href="#data-type-list" title="data-type-list">data-type-list</a></li><li><a href="#data-type-or-schema-qualified-name" title="data-type-or-schema-qualified-name">data-type-or-schema-qualified-name</a></li><li><a href="#field-definition" title="field-definition">field-definition</a></li><li><a href="#host-parameter-data-type" title="host-parameter-data-type">host-parameter-data-type</a></li><li><a href="#parameter-type" title="parameter-type">parameter-type</a></li><li><a href="#presto-array-type" title="presto-array-type">presto-array-type</a></li><li><a href="#presto-generic-type" title="presto-generic-type">presto-generic-type</a></li><li><a href="#presto-map-type" title="presto-map-type">presto-map-type</a></li><li><a href="#representation" title="representation">representation</a></li><li><a href="#result-cast-from-type" title="result-cast-from-type">result-cast-from-type</a></li><li><a href="#returns-data-type" title="returns-data-type">returns-data-type</a></li><li><a href="#sequence-generator-data-type-option" title="sequence-generator-data-type-option">sequence-generator-data-type-option</a></li><li><a href="#source-data-type" title="source-data-type">source-data-type</a></li><li><a href="#table-function-column-list-element" title="table-function-column-list-element">table-function-column-list-element</a></li><li><a href="#target-data-type" title="target-data-type">target-data-type</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + predefined_type +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="635" height="210"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#character-string-type" xlink:title="character_string_type" shape="rect"> + <rect x="63" y="1" width="108" height="18" class="nonterminal"/> + <text class="nonterminal" x="67" y="13">character_string_type</text></a><rect x="199" y="22" width="62" height="18" class="terminal" rx="4"/> + <text class="terminal" x="203" y="34">CHARACTER</text> + <rect x="269" y="22" width="24" height="18" class="terminal" rx="4"/> + <text class="terminal" x="273" y="34">SET</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#character-set-specification" xlink:title="character_set_specification" shape="rect"> + <rect x="301" y="22" width="130" height="18" class="nonterminal"/> + <text class="nonterminal" x="305" y="34">character_set_specification</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#national-character-string-type" xlink:title="national_character_string_type" shape="rect"> + <rect x="63" y="50" width="150" height="18" class="nonterminal"/> + <text class="nonterminal" x="67" y="62">national_character_string_type</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#collate-clause" xlink:title="collate_clause" shape="rect"> + <rect x="499" y="22" width="72" height="18" class="nonterminal"/> + <text class="nonterminal" x="503" y="34">collate_clause</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#binary-string-type" xlink:title="binary_string_type" shape="rect"> + <rect x="43" y="78" width="94" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="90">binary_string_type</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#numeric-type" xlink:title="numeric_type" shape="rect"> + <rect x="43" y="106" width="72" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="118">numeric_type</text></a><rect x="43" y="134" width="54" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="146">BOOLEAN</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#datetime-type" xlink:title="datetime_type" shape="rect"> + <rect x="43" y="162" width="76" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="174">datetime_type</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#interval-type" xlink:title="interval_type" shape="rect"> + <rect x="43" y="190" width="68" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="202">interval_type</text></a><path class="line" d="m17 10 h2 m40 0 h4 m108 0 h4 m20 0 h10 m0 0 h230 m-260 0 h20 m240 0 h20 m-280 0 q10 0 10 10 m260 0 q0 -10 10 -10 m-270 10 v1 m260 0 v-1 m-260 1 q0 10 10 10 m240 0 q10 0 10 -10 m-250 10 h4 m62 0 h4 m0 0 h4 m24 0 h4 m0 0 h4 m130 0 h4 m-396 -21 h20 m396 0 h20 m-436 0 q10 0 10 10 m416 0 q0 -10 10 -10 m-426 10 v29 m416 0 v-29 m-416 29 q0 10 10 10 m396 0 q10 0 10 -10 m-406 10 h4 m150 0 h4 m0 0 h238 m40 -49 h10 m0 0 h70 m-100 0 h20 m80 0 h20 m-120 0 q10 0 10 10 m100 0 q0 -10 10 -10 m-110 10 v1 m100 0 v-1 m-100 1 q0 10 10 10 m80 0 q10 0 10 -10 m-90 10 h4 m72 0 h4 m-556 -21 h20 m556 0 h20 m-596 0 q10 0 10 10 m576 0 q0 -10 10 -10 m-586 10 v57 m576 0 v-57 m-576 57 q0 10 10 10 m556 0 q10 0 10 -10 m-566 10 h4 m94 0 h4 m0 0 h454 m-566 -10 v20 m576 0 v-20 m-576 20 v8 m576 0 v-8 m-576 8 q0 10 10 10 m556 0 q10 0 10 -10 m-566 10 h4 m72 0 h4 m0 0 h476 m-566 -10 v20 m576 0 v-20 m-576 20 v8 m576 0 v-8 m-576 8 q0 10 10 10 m556 0 q10 0 10 -10 m-566 10 h4 m54 0 h4 m0 0 h494 m-566 -10 v20 m576 0 v-20 m-576 20 v8 m576 0 v-8 m-576 8 q0 10 10 10 m556 0 q10 0 10 -10 m-566 10 h4 m76 0 h4 m0 0 h472 m-566 -10 v20 m576 0 v-20 m-576 20 v8 m576 0 v-8 m-576 8 q0 10 10 10 m556 0 q10 0 10 -10 m-566 10 h4 m68 0 h4 m0 0 h480 m23 -189 h-3"/> + <polygon points="625 10 633 6 633 14"/> + <polygon points="625 10 617 6 617 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#predefined-type" title="predefined_type" shape="rect">predefined_type</a></div> + <div>         ::= ( <a href="#character-string-type" title="character_string_type" shape="rect">character_string_type</a> ( 'CHARACTER' 'SET' <a href="#character-set-specification" title="character_set_specification" shape="rect">character_set_specification</a> )? | <a href="#national-character-string-type" title="national_character_string_type" shape="rect">national_character_string_type</a> ) <a href="#collate-clause" title="collate_clause" shape="rect">collate_clause</a>?</div> + <div>           | <a href="#binary-string-type" title="binary_string_type" shape="rect">binary_string_type</a></div> + <div>           | <a href="#numeric-type" title="numeric_type" shape="rect">numeric_type</a></div> + <div>           | 'BOOLEAN'</div> + <div>           | <a href="#datetime-type" title="datetime_type" shape="rect">datetime_type</a></div> + <div>           | <a href="#interval-type" title="interval_type" shape="rect">interval_type</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#data-type" title="data-type">data-type</a></li><li><a href="#domain-definition" title="domain-definition">domain-definition</a></li><li><a href="#representation" title="representation">representation</a></li><li><a href="#user-defined-representation" title="user-defined-representation">user-defined-representation</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + character_string_type +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="461" height="140"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="63" y="1" width="62" height="18" class="terminal" rx="4"/> + <text class="terminal" x="67" y="13">CHARACTER</text> + <rect x="63" y="29" width="34" height="18" class="terminal" rx="4"/> + <text class="terminal" x="67" y="41">CHAR</text> + <rect x="193" y="43" width="50" height="18" class="terminal" rx="4"/> + <text class="terminal" x="197" y="55">VARYING</text> + <rect x="271" y="22" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="275" y="34">(</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#character-length" xlink:title="character_length" shape="rect"> + <rect x="291" y="22" width="86" height="18" class="nonterminal"/> + <text class="nonterminal" x="295" y="34">character_length</text></a><rect x="385" y="22" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="389" y="34">)</text> + <rect x="43" y="71" width="52" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="83">VARCHAR</text> + <rect x="123" y="92" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="127" y="104">(</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#character-length" xlink:title="character_length" shape="rect"> + <rect x="143" y="92" width="86" height="18" class="nonterminal"/> + <text class="nonterminal" x="147" y="104">character_length</text></a><rect x="237" y="92" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="241" y="104">)</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#character-large-object-type" xlink:title="character_large_object_type" shape="rect"> + <rect x="43" y="120" width="138" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="132">character_large_object_type</text></a><path class="line" d="m17 10 h2 m40 0 h4 m62 0 h4 m-90 0 h20 m70 0 h20 m-110 0 q10 0 10 10 m90 0 q0 -10 10 -10 m-100 10 v8 m90 0 v-8 m-90 8 q0 10 10 10 m70 0 q10 0 10 -10 m-80 10 h4 m34 0 h4 m0 0 h28 m40 -28 h10 m0 0 h222 m-252 0 h20 m232 0 h20 m-272 0 q10 0 10 10 m252 0 q0 -10 10 -10 m-262 10 v1 m252 0 v-1 m-252 1 q0 10 10 10 m232 0 q10 0 10 -10 m-222 10 h10 m0 0 h48 m-78 0 h20 m58 0 h20 m-98 0 q10 0 10 10 m78 0 q0 -10 10 -10 m-88 10 v1 m78 0 v-1 m-78 1 q0 10 10 10 m58 0 q10 0 10 -10 m-68 10 h4 m50 0 h4 m20 -21 h4 m12 0 h4 m0 0 h4 m86 0 h4 m0 0 h4 m12 0 h4 m-382 -21 h20 m382 0 h20 m-422 0 q10 0 10 10 m402 0 q0 -10 10 -10 m-412 10 v50 m402 0 v-50 m-402 50 q0 10 10 10 m382 0 q10 0 10 -10 m-392 10 h4 m52 0 h4 m20 0 h10 m0 0 h124 m-154 0 h20 m134 0 h20 m-174 0 q10 0 10 10 m154 0 q0 -10 10 -10 m-164 10 v1 m154 0 v-1 m-154 1 q0 10 10 10 m134 0 q10 0 10 -10 m-144 10 h4 m12 0 h4 m0 0 h4 m86 0 h4 m0 0 h4 m12 0 h4 m20 -21 h148 m-392 -10 v20 m402 0 v-20 m-402 20 v29 m402 0 v-29 m-402 29 q0 10 10 10 m382 0 q10 0 10 -10 m-392 10 h4 m138 0 h4 m0 0 h236 m23 -119 h-3"/> + <polygon points="451 10 459 6 459 14"/> + <polygon points="451 10 443 6 443 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#character-string-type" title="character_string_type" shape="rect">character_string_type</a></div> + <div>         ::= ( 'CHARACTER' | 'CHAR' ) ( 'VARYING'? '(' <a href="#character-length" title="character_length" shape="rect">character_length</a> ')' )?</div> + <div>           | 'VARCHAR' ( '(' <a href="#character-length" title="character_length" shape="rect">character_length</a> ')' )?</div> + <div>           | <a href="#character-large-object-type" title="character_large_object_type" shape="rect">character_large_object_type</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#predefined-type" title="predefined-type">predefined-type</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + character_large_object_type +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="521" height="77"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="63" y="1" width="62" height="18" class="terminal" rx="4"/> + <text class="terminal" x="67" y="13">CHARACTER</text> + <rect x="63" y="29" width="34" height="18" class="terminal" rx="4"/> + <text class="terminal" x="67" y="41">CHAR</text> + <rect x="153" y="1" width="38" height="18" class="terminal" rx="4"/> + <text class="terminal" x="157" y="13">LARGE</text> + <rect x="199" y="1" width="42" height="18" class="terminal" rx="4"/> + <text class="terminal" x="203" y="13">OBJECT</text> + <rect x="43" y="57" width="32" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="69">CLOB</text> + <rect x="289" y="22" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="293" y="34">(</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#character-large-object-length" xlink:title="character_large_object_length" shape="rect"> + <rect x="309" y="22" width="148" height="18" class="nonterminal"/> + <text class="nonterminal" x="313" y="34">character_large_object_length</text></a><rect x="465" y="22" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="469" y="34">)</text> + <path class="line" d="m17 10 h2 m40 0 h4 m62 0 h4 m-90 0 h20 m70 0 h20 m-110 0 q10 0 10 10 m90 0 q0 -10 10 -10 m-100 10 v8 m90 0 v-8 m-90 8 q0 10 10 10 m70 0 q10 0 10 -10 m-80 10 h4 m34 0 h4 m0 0 h28 m20 -28 h4 m38 0 h4 m0 0 h4 m42 0 h4 m-226 0 h20 m206 0 h20 m-246 0 q10 0 10 10 m226 0 q0 -10 10 -10 m-236 10 v36 m226 0 v-36 m-226 36 q0 10 10 10 m206 0 q10 0 10 -10 m-216 10 h4 m32 0 h4 m0 0 h166 m40 -56 h10 m0 0 h186 m-216 0 h20 m196 0 h20 m-236 0 q10 0 10 10 m216 0 q0 -10 10 -10 m-226 10 v1 m216 0 v-1 m-216 1 q0 10 10 10 m196 0 q10 0 10 -10 m-206 10 h4 m12 0 h4 m0 0 h4 m148 0 h4 m0 0 h4 m12 0 h4 m23 -21 h-3"/> + <polygon points="511 10 519 6 519 14"/> + <polygon points="511 10 503 6 503 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#character-large-object-type" title="character_large_object_type" shape="rect">character_large_object_type</a></div> + <div>         ::= ( ( 'CHARACTER' | 'CHAR' ) 'LARGE' 'OBJECT' | 'CLOB' ) ( '(' <a href="#character-large-object-length" title="character_large_object_length" shape="rect">character_large_object_length</a> ')' )?</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#character-string-type" title="character-string-type">character-string-type</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + national_character_string_type +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="565" height="105"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="63" y="1" width="56" height="18" class="terminal" rx="4"/> + <text class="terminal" x="67" y="13">NATIONAL</text> + <rect x="147" y="1" width="62" height="18" class="terminal" rx="4"/> + <text class="terminal" x="151" y="13">CHARACTER</text> + <rect x="147" y="29" width="34" height="18" class="terminal" rx="4"/> + <text class="terminal" x="151" y="41">CHAR</text> + <rect x="63" y="57" width="40" height="18" class="terminal" rx="4"/> + <text class="terminal" x="67" y="69">NCHAR</text> + <rect x="297" y="43" width="50" height="18" class="terminal" rx="4"/> + <text class="terminal" x="301" y="55">VARYING</text> + <rect x="375" y="22" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="379" y="34">(</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#character-length" xlink:title="character_length" shape="rect"> + <rect x="395" y="22" width="86" height="18" class="nonterminal"/> + <text class="nonterminal" x="399" y="34">character_length</text></a><rect x="489" y="22" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="493" y="34">)</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#national-character-large-object-type" xlink:title="national_character_large_object_type" shape="rect"> + <rect x="43" y="85" width="180" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="97">national_character_large_object_type</text></a><path class="line" d="m17 10 h2 m40 0 h4 m56 0 h4 m20 0 h4 m62 0 h4 m-90 0 h20 m70 0 h20 m-110 0 q10 0 10 10 m90 0 q0 -10 10 -10 m-100 10 v8 m90 0 v-8 m-90 8 q0 10 10 10 m70 0 q10 0 10 -10 m-80 10 h4 m34 0 h4 m0 0 h28 m-174 -28 h20 m174 0 h20 m-214 0 q10 0 10 10 m194 0 q0 -10 10 -10 m-204 10 v36 m194 0 v-36 m-194 36 q0 10 10 10 m174 0 q10 0 10 -10 m-184 10 h4 m40 0 h4 m0 0 h126 m40 -56 h10 m0 0 h222 m-252 0 h20 m232 0 h20 m-272 0 q10 0 10 10 m252 0 q0 -10 10 -10 m-262 10 v1 m252 0 v-1 m-252 1 q0 10 10 10 m232 0 q10 0 10 -10 m-222 10 h10 m0 0 h48 m-78 0 h20 m58 0 h20 m-98 0 q10 0 10 10 m78 0 q0 -10 10 -10 m-88 10 v1 m78 0 v-1 m-78 1 q0 10 10 10 m58 0 q10 0 10 -10 m-68 10 h4 m50 0 h4 m20 -21 h4 m12 0 h4 m0 0 h4 m86 0 h4 m0 0 h4 m12 0 h4 m-486 -21 h20 m486 0 h20 m-526 0 q10 0 10 10 m506 0 q0 -10 10 -10 m-516 10 v64 m506 0 v-64 m-506 64 q0 10 10 10 m486 0 q10 0 10 -10 m-496 10 h4 m180 0 h4 m0 0 h298 m23 -84 h-3"/> + <polygon points="555 10 563 6 563 14"/> + <polygon points="555 10 547 6 547 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#national-character-string-type" title="national_character_string_type" shape="rect">national_character_string_type</a></div> + <div>         ::= ( 'NATIONAL' ( 'CHARACTER' | 'CHAR' ) | 'NCHAR' ) ( 'VARYING'? '(' <a href="#character-length" title="character_length" shape="rect">character_length</a> ')' )?</div> + <div>           | <a href="#national-character-large-object-type" title="national_character_large_object_type" shape="rect">national_character_large_object_type</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#predefined-type" title="predefined-type">predefined-type</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + national_character_large_object_type +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="585" height="77"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="63" y="1" width="56" height="18" class="terminal" rx="4"/> + <text class="terminal" x="67" y="13">NATIONAL</text> + <rect x="127" y="1" width="62" height="18" class="terminal" rx="4"/> + <text class="terminal" x="131" y="13">CHARACTER</text> + <rect x="63" y="29" width="40" height="18" class="terminal" rx="4"/> + <text class="terminal" x="67" y="41">NCHAR</text> + <rect x="217" y="1" width="38" height="18" class="terminal" rx="4"/> + <text class="terminal" x="221" y="13">LARGE</text> + <rect x="263" y="1" width="42" height="18" class="terminal" rx="4"/> + <text class="terminal" x="267" y="13">OBJECT</text> + <rect x="43" y="57" width="40" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="69">NCLOB</text> + <rect x="353" y="22" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="357" y="34">(</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#character-large-object-length" xlink:title="character_large_object_length" shape="rect"> + <rect x="373" y="22" width="148" height="18" class="nonterminal"/> + <text class="nonterminal" x="377" y="34">character_large_object_length</text></a><rect x="529" y="22" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="533" y="34">)</text> + <path class="line" d="m17 10 h2 m40 0 h4 m56 0 h4 m0 0 h4 m62 0 h4 m-154 0 h20 m134 0 h20 m-174 0 q10 0 10 10 m154 0 q0 -10 10 -10 m-164 10 v8 m154 0 v-8 m-154 8 q0 10 10 10 m134 0 q10 0 10 -10 m-144 10 h4 m40 0 h4 m0 0 h86 m20 -28 h4 m38 0 h4 m0 0 h4 m42 0 h4 m-290 0 h20 m270 0 h20 m-310 0 q10 0 10 10 m290 0 q0 -10 10 -10 m-300 10 v36 m290 0 v-36 m-290 36 q0 10 10 10 m270 0 q10 0 10 -10 m-280 10 h4 m40 0 h4 m0 0 h222 m40 -56 h10 m0 0 h186 m-216 0 h20 m196 0 h20 m-236 0 q10 0 10 10 m216 0 q0 -10 10 -10 m-226 10 v1 m216 0 v-1 m-216 1 q0 10 10 10 m196 0 q10 0 10 -10 m-206 10 h4 m12 0 h4 m0 0 h4 m148 0 h4 m0 0 h4 m12 0 h4 m23 -21 h-3"/> + <polygon points="575 10 583 6 583 14"/> + <polygon points="575 10 567 6 567 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#national-character-large-object-type" title="national_character_large_object_type" shape="rect">national_character_large_object_type</a></div> + <div>         ::= ( ( 'NATIONAL' 'CHARACTER' | 'NCHAR' ) 'LARGE' 'OBJECT' | 'NCLOB' ) ( + '(' <a href="#character-large-object-length" title="character_large_object_length" shape="rect">character_large_object_length</a> ')' )?</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#national-character-string-type" title="national-character-string-type">national-character-string-type</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + binary_string_type +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="405" height="140"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="43" y="1" width="42" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="13">BINARY</text> + <rect x="133" y="43" width="50" height="18" class="terminal" rx="4"/> + <text class="terminal" x="137" y="55">VARYING</text> + <rect x="211" y="22" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="215" y="34">(</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#unsigned-integer" xlink:title="unsigned_integer" shape="rect"> + <rect x="231" y="22" width="90" height="18" class="nonterminal"/> + <text class="nonterminal" x="235" y="34">unsigned_integer</text></a><rect x="329" y="22" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="333" y="34">)</text> + <rect x="43" y="71" width="62" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="83">VARBINARY</text> + <rect x="133" y="92" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="137" y="104">(</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#unsigned-integer" xlink:title="unsigned_integer" shape="rect"> + <rect x="153" y="92" width="90" height="18" class="nonterminal"/> + <text class="nonterminal" x="157" y="104">unsigned_integer</text></a><rect x="251" y="92" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="255" y="104">)</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#binary-large-object-string-type" xlink:title="binary_large_object_string_type" shape="rect"> + <rect x="43" y="120" width="156" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="132">binary_large_object_string_type</text></a><path class="line" d="m17 10 h2 m20 0 h4 m42 0 h4 m20 0 h10 m0 0 h226 m-256 0 h20 m236 0 h20 m-276 0 q10 0 10 10 m256 0 q0 -10 10 -10 m-266 10 v1 m256 0 v-1 m-256 1 q0 10 10 10 m236 0 q10 0 10 -10 m-226 10 h10 m0 0 h48 m-78 0 h20 m58 0 h20 m-98 0 q10 0 10 10 m78 0 q0 -10 10 -10 m-88 10 v1 m78 0 v-1 m-78 1 q0 10 10 10 m58 0 q10 0 10 -10 m-68 10 h4 m50 0 h4 m20 -21 h4 m12 0 h4 m0 0 h4 m90 0 h4 m0 0 h4 m12 0 h4 m-326 -21 h20 m326 0 h20 m-366 0 q10 0 10 10 m346 0 q0 -10 10 -10 m-356 10 v50 m346 0 v-50 m-346 50 q0 10 10 10 m326 0 q10 0 10 -10 m-336 10 h4 m62 0 h4 m20 0 h10 m0 0 h128 m-158 0 h20 m138 0 h20 m-178 0 q10 0 10 10 m158 0 q0 -10 10 -10 m-168 10 v1 m158 0 v-1 m-158 1 q0 10 10 10 m138 0 q10 0 10 -10 m-148 10 h4 m12 0 h4 m0 0 h4 m90 0 h4 m0 0 h4 m12 0 h4 m20 -21 h78 m-336 -10 v20 m346 0 v-20 m-346 20 v29 m346 0 v-29 m-346 29 q0 10 10 10 m326 0 q10 0 10 -10 m-336 10 h4 m156 0 h4 m0 0 h162 m23 -119 h-3"/> + <polygon points="395 10 403 6 403 14"/> + <polygon points="395 10 387 6 387 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#binary-string-type" title="binary_string_type" shape="rect">binary_string_type</a></div> + <div>         ::= 'BINARY' ( 'VARYING'? '(' <a href="#unsigned-integer" title="unsigned_integer" shape="rect">unsigned_integer</a> ')' )?</div> + <div>           | 'VARBINARY' ( '(' <a href="#unsigned-integer" title="unsigned_integer" shape="rect">unsigned_integer</a> ')' )?</div> + <div>           | <a href="#binary-large-object-string-type" title="binary_large_object_string_type" shape="rect">binary_large_object_string_type</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#predefined-type" title="predefined-type">predefined-type</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + binary_large_object_string_type +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="413" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="43" y="1" width="42" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="13">BINARY</text> + <rect x="93" y="1" width="38" height="18" class="terminal" rx="4"/> + <text class="terminal" x="97" y="13">LARGE</text> + <rect x="139" y="1" width="42" height="18" class="terminal" rx="4"/> + <text class="terminal" x="143" y="13">OBJECT</text> + <rect x="43" y="29" width="32" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="41">BLOB</text> + <rect x="229" y="22" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="233" y="34">(</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#large-object-length" xlink:title="large_object_length" shape="rect"> + <rect x="249" y="22" width="100" height="18" class="nonterminal"/> + <text class="nonterminal" x="253" y="34">large_object_length</text></a><rect x="357" y="22" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="361" y="34">)</text> + <path class="line" d="m17 10 h2 m20 0 h4 m42 0 h4 m0 0 h4 m38 0 h4 m0 0 h4 m42 0 h4 m-166 0 h20 m146 0 h20 m-186 0 q10 0 10 10 m166 0 q0 -10 10 -10 m-176 10 v8 m166 0 v-8 m-166 8 q0 10 10 10 m146 0 q10 0 10 -10 m-156 10 h4 m32 0 h4 m0 0 h106 m40 -28 h10 m0 0 h138 m-168 0 h20 m148 0 h20 m-188 0 q10 0 10 10 m168 0 q0 -10 10 -10 m-178 10 v1 m168 0 v-1 m-168 1 q0 10 10 10 m148 0 q10 0 10 -10 m-158 10 h4 m12 0 h4 m0 0 h4 m100 0 h4 m0 0 h4 m12 0 h4 m23 -21 h-3"/> + <polygon points="403 10 411 6 411 14"/> + <polygon points="403 10 395 6 395 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#binary-large-object-string-type" title="binary_large_object_string_type" shape="rect">binary_large_object_string_type</a></div> + <div>         ::= ( 'BINARY' 'LARGE' 'OBJECT' | 'BLOB' ) ( '(' <a href="#large-object-length" title="large_object_length" shape="rect">large_object_length</a> ')' )?</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#binary-string-type" title="binary-string-type">binary-string-type</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + numeric_type +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="223" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#exact-numeric-type" xlink:title="exact_numeric_type" shape="rect"> + <rect x="43" y="1" width="102" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">exact_numeric_type</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#approximate-numeric-type" xlink:title="approximate_numeric_type" shape="rect"> + <rect x="43" y="29" width="136" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">approximate_numeric_type</text></a><path class="line" d="m17 10 h2 m20 0 h4 m102 0 h4 m0 0 h34 m-164 0 h20 m144 0 h20 m-184 0 q10 0 10 10 m164 0 q0 -10 10 -10 m-174 10 v8 m164 0 v-8 m-164 8 q0 10 10 10 m144 0 q10 0 10 -10 m-154 10 h4 m136 0 h4 m23 -28 h-3"/> + <polygon points="213 10 221 6 221 14"/> + <polygon points="213 10 205 6 205 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#numeric-type" title="numeric_type" shape="rect">numeric_type</a></div> + <div>         ::= <a href="#exact-numeric-type" title="exact_numeric_type" shape="rect">exact_numeric_type</a></div> + <div>           | <a href="#approximate-numeric-type" title="approximate_numeric_type" shape="rect">approximate_numeric_type</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#predefined-type" title="predefined-type">predefined-type</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + exact_numeric_type +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="509" height="189"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="63" y="1" width="50" height="18" class="terminal" rx="4"/> + <text class="terminal" x="67" y="13">NUMERIC</text> + <rect x="63" y="29" width="48" height="18" class="terminal" rx="4"/> + <text class="terminal" x="67" y="41">DECIMAL</text> + <rect x="63" y="57" width="26" height="18" class="terminal" rx="4"/> + <text class="terminal" x="67" y="69">DEC</text> + <rect x="161" y="22" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="165" y="34">(</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#unsigned-integer" xlink:title="unsigned_integer" shape="rect"> + <rect x="181" y="22" width="90" height="18" class="nonterminal"/> + <text class="nonterminal" x="185" y="34">unsigned_integer</text></a><rect x="299" y="43" width="8" height="18" class="terminal" rx="4"/> + <text class="terminal" x="303" y="55">,</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#unsigned-integer" xlink:title="unsigned_integer" shape="rect"> + <rect x="315" y="43" width="90" height="18" class="nonterminal"/> + <text class="nonterminal" x="319" y="55">unsigned_integer</text></a><rect x="433" y="22" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="437" y="34">)</text> + <rect x="43" y="85" width="54" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="97">SMALLINT</text> + <rect x="43" y="113" width="46" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="125">INTEGER</text> + <rect x="43" y="141" width="24" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="153">INT</text> + <rect x="43" y="169" width="40" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="181">BIGINT</text> + <path class="line" d="m17 10 h2 m40 0 h4 m50 0 h4 m-78 0 h20 m58 0 h20 m-98 0 q10 0 10 10 m78 0 q0 -10 10 -10 m-88 10 v8 m78 0 v-8 m-78 8 q0 10 10 10 m58 0 q10 0 10 -10 m-68 10 h4 m48 0 h4 m0 0 h2 m-68 -10 v20 m78 0 v-20 m-78 20 v8 m78 0 v-8 m-78 8 q0 10 10 10 m58 0 q10 0 10 -10 m-68 10 h4 m26 0 h4 m0 0 h24 m40 -56 h10 m0 0 h282 m-312 0 h20 m292 0 h20 m-332 0 q10 0 10 10 m312 0 q0 -10 10 -10 m-322 10 v1 m312 0 v-1 m-312 1 q0 10 10 10 m292 0 q10 0 10 -10 m-302 10 h4 m12 0 h4 m0 0 h4 m90 0 h4 m20 0 h10 m0 0 h104 m-134 0 h20 m114 0 h20 m-154 0 q10 0 10 10 m134 0 q0 -10 10 -10 m-144 10 v1 m134 0 v-1 m-134 1 q0 10 10 10 m114 0 q10 0 10 -10 m-124 10 h4 m8 0 h4 m0 0 h4 m90 0 h4 m20 -21 h4 m12 0 h4 m-430 -21 h20 m430 0 h20 m-470 0 q10 0 10 10 m450 0 q0 -10 10 -10 m-460 10 v64 m450 0 v-64 m-450 64 q0 10 10 10 m430 0 q10 0 10 -10 m-440 10 h4 m54 0 h4 m0 0 h368 m-440 -10 v20 m450 0 v-20 m-450 20 v8 m450 0 v-8 m-450 8 q0 10 10 10 m430 0 q10 0 10 -10 m-440 10 h4 m46 0 h4 m0 0 h376 m-440 -10 v20 m450 0 v-20 m-450 20 v8 m450 0 v-8 m-450 8 q0 10 10 10 m430 0 q10 0 10 -10 m-440 10 h4 m24 0 h4 m0 0 h398 m-440 -10 v20 m450 0 v-20 m-450 20 v8 m450 0 v-8 m-450 8 q0 10 10 10 m430 0 q10 0 10 -10 m-440 10 h4 m40 0 h4 m0 0 h382 m23 -168 h-3"/> + <polygon points="499 10 507 6 507 14"/> + <polygon points="499 10 491 6 491 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#exact-numeric-type" title="exact_numeric_type" shape="rect">exact_numeric_type</a></div> + <div>         ::= ( 'NUMERIC' | 'DECIMAL' | 'DEC' ) ( '(' <a href="#unsigned-integer" title="unsigned_integer" shape="rect">unsigned_integer</a> ( ',' <a href="#unsigned-integer" title="unsigned_integer" shape="rect">unsigned_integer</a> )? ')' )?</div> + <div>           | 'SMALLINT'</div> + <div>           | 'INTEGER'</div> + <div>           | 'INT'</div> + <div>           | 'BIGINT'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#numeric-type" title="numeric-type">numeric-type</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + approximate_numeric_type +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="303" height="119"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="43" y="1" width="38" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="13">FLOAT</text> + <rect x="109" y="22" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="113" y="34">(</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#unsigned-integer" xlink:title="unsigned_integer" shape="rect"> + <rect x="129" y="22" width="90" height="18" class="nonterminal"/> + <text class="nonterminal" x="133" y="34">unsigned_integer</text></a><rect x="227" y="22" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="231" y="34">)</text> + <rect x="43" y="50" width="30" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="62">REAL</text> + <rect x="43" y="78" width="46" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="90">DOUBLE</text> + <rect x="117" y="99" width="60" height="18" class="terminal" rx="4"/> + <text class="terminal" x="121" y="111">PRECISION</text> + <path class="line" d="m17 10 h2 m20 0 h4 m38 0 h4 m20 0 h10 m0 0 h128 m-158 0 h20 m138 0 h20 m-178 0 q10 0 10 10 m158 0 q0 -10 10 -10 m-168 10 v1 m158 0 v-1 m-158 1 q0 10 10 10 m138 0 q10 0 10 -10 m-148 10 h4 m12 0 h4 m0 0 h4 m90 0 h4 m0 0 h4 m12 0 h4 m-224 -21 h20 m224 0 h20 m-264 0 q10 0 10 10 m244 0 q0 -10 10 -10 m-254 10 v29 m244 0 v-29 m-244 29 q0 10 10 10 m224 0 q10 0 10 -10 m-234 10 h4 m30 0 h4 m0 0 h186 m-234 -10 v20 m244 0 v-20 m-244 20 v8 m244 0 v-8 m-244 8 q0 10 10 10 m224 0 q10 0 10 -10 m-234 10 h4 m46 0 h4 m20 0 h10 m0 0 h58 m-88 0 h20 m68 0 h20 m-108 0 q10 0 10 10 m88 0 q0 -10 10 -10 m-98 10 v1 m88 0 v-1 m-88 1 q0 10 10 10 m68 0 q10 0 10 -10 m-78 10 h4 m60 0 h4 m20 -21 h62 m23 -77 h-3"/> + <polygon points="293 10 301 6 301 14"/> + <polygon points="293 10 285 6 285 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#approximate-numeric-type" title="approximate_numeric_type" shape="rect">approximate_numeric_type</a></div> + <div>         ::= 'FLOAT' ( '(' <a href="#unsigned-integer" title="unsigned_integer" shape="rect">unsigned_integer</a> ')' )?</div> + <div>           | 'REAL'</div> + <div>           | 'DOUBLE' 'PRECISION'?</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#numeric-type" title="numeric-type">numeric-type</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + character_length +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="275" height="42"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#unsigned-integer" xlink:title="unsigned_integer" shape="rect"> + <rect x="23" y="1" width="90" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">unsigned_integer</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#char-length-units" xlink:title="char_length_units" shape="rect"> + <rect x="141" y="22" width="90" height="18" class="nonterminal"/> + <text class="nonterminal" x="145" y="34">char_length_units</text></a><path class="line" d="m17 10 h2 m0 0 h4 m90 0 h4 m20 0 h10 m0 0 h88 m-118 0 h20 m98 0 h20 m-138 0 q10 0 10 10 m118 0 q0 -10 10 -10 m-128 10 v1 m118 0 v-1 m-118 1 q0 10 10 10 m98 0 q10 0 10 -10 m-108 10 h4 m90 0 h4 m23 -21 h-3"/> + <polygon points="265 10 273 6 273 14"/> + <polygon points="265 10 257 6 257 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#character-length" title="character_length" shape="rect">character_length</a></div> + <div>         ::= <a href="#unsigned-integer" title="unsigned_integer" shape="rect">unsigned_integer</a> <a href="#char-length-units" title="char_length_units" shape="rect">char_length_units</a>?</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#character-string-type" title="character-string-type">character-string-type</a></li><li><a href="#national-character-string-type" title="national-character-string-type">national-character-string-type</a></li><li><a href="#normalize-function-result-length" title="normalize-function-result-length">normalize-function-result-length</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + large_object_length +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="273" height="70"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#unsigned-integer" xlink:title="unsigned_integer" shape="rect"> + <rect x="43" y="1" width="90" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">unsigned_integer</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#multiplier" xlink:title="multiplier" shape="rect"> + <rect x="161" y="22" width="48" height="18" class="nonterminal"/> + <text class="nonterminal" x="165" y="34">multiplier</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#large-object-length-token" xlink:title="large_object_length_token" shape="rect"> + <rect x="43" y="50" width="132" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="62">large_object_length_token</text></a><path class="line" d="m17 10 h2 m20 0 h4 m90 0 h4 m20 0 h10 m0 0 h46 m-76 0 h20 m56 0 h20 m-96 0 q10 0 10 10 m76 0 q0 -10 10 -10 m-86 10 v1 m76 0 v-1 m-76 1 q0 10 10 10 m56 0 q10 0 10 -10 m-66 10 h4 m48 0 h4 m-194 -21 h20 m194 0 h20 m-234 0 q10 0 10 10 m214 0 q0 -10 10 -10 m-224 10 v29 m214 0 v-29 m-214 29 q0 10 10 10 m194 0 q10 0 10 -10 m-204 10 h4 m132 0 h4 m0 0 h54 m23 -49 h-3"/> + <polygon points="263 10 271 6 271 14"/> + <polygon points="263 10 255 6 255 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#large-object-length" title="large_object_length" shape="rect">large_object_length</a></div> + <div>         ::= <a href="#unsigned-integer" title="unsigned_integer" shape="rect">unsigned_integer</a> <a href="#multiplier" title="multiplier" shape="rect">multiplier</a>?</div> + <div>           | <a href="#large-object-length-token" title="large_object_length_token" shape="rect">large_object_length_token</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#binary-large-object-string-type" title="binary-large-object-string-type">binary-large-object-string-type</a></li><li><a href="#character-large-object-length" title="character-large-object-length">character-large-object-length</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + character_large_object_length +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="285" height="42"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#large-object-length" xlink:title="large_object_length" shape="rect"> + <rect x="23" y="1" width="100" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">large_object_length</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#char-length-units" xlink:title="char_length_units" shape="rect"> + <rect x="151" y="22" width="90" height="18" class="nonterminal"/> + <text class="nonterminal" x="155" y="34">char_length_units</text></a><path class="line" d="m17 10 h2 m0 0 h4 m100 0 h4 m20 0 h10 m0 0 h88 m-118 0 h20 m98 0 h20 m-138 0 q10 0 10 10 m118 0 q0 -10 10 -10 m-128 10 v1 m118 0 v-1 m-118 1 q0 10 10 10 m98 0 q10 0 10 -10 m-108 10 h4 m90 0 h4 m23 -21 h-3"/> + <polygon points="275 10 283 6 283 14"/> + <polygon points="275 10 267 6 267 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#character-large-object-length" title="character_large_object_length" shape="rect">character_large_object_length</a></div> + <div>         ::= <a href="#large-object-length" title="large_object_length" shape="rect">large_object_length</a> <a href="#char-length-units" title="char_length_units" shape="rect">char_length_units</a>?</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#character-large-object-type" title="character-large-object-type">character-large-object-type</a></li><li><a href="#national-character-large-object-type" title="national-character-large-object-type">national-character-large-object-type</a></li><li><a href="#normalize-function-result-length" title="normalize-function-result-length">normalize-function-result-length</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + char_length_units +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="155" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="43" y="1" width="68" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="13">CHARACTERS</text> + <rect x="43" y="29" width="44" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="41">OCTETS</text> + <path class="line" d="m17 10 h2 m20 0 h4 m68 0 h4 m-96 0 h20 m76 0 h20 m-116 0 q10 0 10 10 m96 0 q0 -10 10 -10 m-106 10 v8 m96 0 v-8 m-96 8 q0 10 10 10 m76 0 q10 0 10 -10 m-86 10 h4 m44 0 h4 m0 0 h24 m23 -28 h-3"/> + <polygon points="145 10 153 6 153 14"/> + <polygon points="145 10 137 6 137 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#char-length-units" title="char_length_units" shape="rect">char_length_units</a></div> + <div>         ::= 'CHARACTERS'</div> + <div>           | 'OCTETS'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#char-length-expression" title="char-length-expression">char-length-expression</a></li><li><a href="#character-large-object-length" title="character-large-object-length">character-large-object-length</a></li><li><a href="#character-length" title="character-length">character-length</a></li><li><a href="#character-overlay-function" title="character-overlay-function">character-overlay-function</a></li><li><a href="#character-position-expression" title="character-position-expression">character-position-expression</a></li><li><a href="#character-substring-function" title="character-substring-function">character-substring-function</a></li><li><a href="#regex-occurrences-function" title="regex-occurrences-function">regex-occurrences-function</a></li><li><a href="#regex-position-expression" title="regex-position-expression">regex-position-expression</a></li><li><a href="#regex-substring-function" title="regex-substring-function">regex-substring-function</a></li><li><a href="#regex-transliteration" title="regex-transliteration">regex-transliteration</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + datetime_type +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="551" height="77"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="43" y="1" width="32" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="13">DATE</text> + <rect x="63" y="29" width="30" height="18" class="terminal" rx="4"/> + <text class="terminal" x="67" y="41">TIME</text> + <rect x="63" y="57" width="62" height="18" class="terminal" rx="4"/> + <text class="terminal" x="67" y="69">TIMESTAMP</text> + <rect x="173" y="50" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="177" y="62">(</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#unsigned-integer" xlink:title="unsigned_integer" shape="rect"> + <rect x="193" y="50" width="90" height="18" class="nonterminal"/> + <text class="nonterminal" x="197" y="62">unsigned_integer</text></a><rect x="291" y="50" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="295" y="62">)</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#with-or-without-time-zone" xlink:title="with_or_without_time_zone" shape="rect"> + <rect x="351" y="50" width="136" height="18" class="nonterminal"/> + <text class="nonterminal" x="355" y="62">with_or_without_time_zone</text></a><path class="line" d="m17 10 h2 m20 0 h4 m32 0 h4 m0 0 h432 m-492 0 h20 m472 0 h20 m-512 0 q10 0 10 10 m492 0 q0 -10 10 -10 m-502 10 v8 m492 0 v-8 m-492 8 q0 10 10 10 m472 0 q10 0 10 -10 m-462 10 h4 m30 0 h4 m0 0 h32 m-90 0 h20 m70 0 h20 m-110 0 q10 0 10 10 m90 0 q0 -10 10 -10 m-100 10 v8 m90 0 v-8 m-90 8 q0 10 10 10 m70 0 q10 0 10 -10 m-80 10 h4 m62 0 h4 m40 -28 h10 m0 0 h128 m-158 0 h20 m138 0 h20 m-178 0 q10 0 10 10 m158 0 q0 -10 10 -10 m-168 10 v1 m158 0 v-1 m-158 1 q0 10 10 10 m138 0 q10 0 10 -10 m-148 10 h4 m12 0 h4 m0 0 h4 m90 0 h4 m0 0 h4 m12 0 h4 m40 -21 h10 m0 0 h134 m-164 0 h20 m144 0 h20 m-184 0 q10 0 10 10 m164 0 q0 -10 10 -10 m-174 10 v1 m164 0 v-1 m-164 1 q0 10 10 10 m144 0 q10 0 10 -10 m-154 10 h4 m136 0 h4 m43 -49 h-3"/> + <polygon points="541 10 549 6 549 14"/> + <polygon points="541 10 533 6 533 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#datetime-type" title="datetime_type" shape="rect">datetime_type</a></div> + <div>         ::= 'DATE'</div> + <div>           | ( 'TIME' | 'TIMESTAMP' ) ( '(' <a href="#unsigned-integer" title="unsigned_integer" shape="rect">unsigned_integer</a> ')' )? <a href="#with-or-without-time-zone" title="with_or_without_time_zone" shape="rect">with_or_without_time_zone</a>?</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#predefined-type" title="predefined-type">predefined-type</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + with_or_without_time_zone +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="221" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="43" y="1" width="34" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="13">WITH</text> + <rect x="43" y="29" width="54" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="41">WITHOUT</text> + <rect x="125" y="1" width="30" height="18" class="terminal" rx="4"/> + <text class="terminal" x="129" y="13">TIME</text> + <rect x="163" y="1" width="34" height="18" class="terminal" rx="4"/> + <text class="terminal" x="167" y="13">ZONE</text> + <path class="line" d="m17 10 h2 m20 0 h4 m34 0 h4 m0 0 h20 m-82 0 h20 m62 0 h20 m-102 0 q10 0 10 10 m82 0 q0 -10 10 -10 m-92 10 v8 m82 0 v-8 m-82 8 q0 10 10 10 m62 0 q10 0 10 -10 m-72 10 h4 m54 0 h4 m20 -28 h4 m30 0 h4 m0 0 h4 m34 0 h4 m3 0 h-3"/> + <polygon points="211 10 219 6 219 14"/> + <polygon points="211 10 203 6 203 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#with-or-without-time-zone" title="with_or_without_time_zone" shape="rect">with_or_without_time_zone</a></div> + <div>         ::= ( 'WITH' | 'WITHOUT' ) 'TIME' 'ZONE'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#datetime-type" title="datetime-type">datetime-type</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + interval_type +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="187" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="52" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">INTERVAL</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#interval-qualifier" xlink:title="interval_qualifier" shape="rect"> + <rect x="83" y="1" width="80" height="18" class="nonterminal"/> + <text class="nonterminal" x="87" y="13">interval_qualifier</text></a><path class="line" d="m17 10 h2 m0 0 h4 m52 0 h4 m0 0 h4 m80 0 h4 m3 0 h-3"/> + <polygon points="177 10 185 6 185 14"/> + <polygon points="177 10 169 6 169 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#interval-type" title="interval_type" shape="rect">interval_type</a></div> + <div>         ::= 'INTERVAL' <a href="#interval-qualifier" title="interval_qualifier" shape="rect">interval_qualifier</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#predefined-type" title="predefined-type">predefined-type</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + row_type +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="169" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="32" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">ROW</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#row-type-body" xlink:title="row_type_body" shape="rect"> + <rect x="63" y="1" width="82" height="18" class="nonterminal"/> + <text class="nonterminal" x="67" y="13">row_type_body</text></a><path class="line" d="m17 10 h2 m0 0 h4 m32 0 h4 m0 0 h4 m82 0 h4 m3 0 h-3"/> + <polygon points="159 10 167 6 167 14"/> + <polygon points="159 10 151 6 151 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#row-type" title="row_type" shape="rect">row_type</a> ::= 'ROW' <a href="#row-type-body" title="row_type_body" shape="rect">row_type_body</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#data-type" title="data-type">data-type</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + row_type_body +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="199" height="49"> + <polygon points="9 38 1 34 1 42"/> + <polygon points="17 38 9 34 9 42"/> + <rect x="23" y="29" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="41">(</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#field-definition" xlink:title="field_definition" shape="rect"> + <rect x="63" y="29" width="72" height="18" class="nonterminal"/> + <text class="nonterminal" x="67" y="41">field_definition</text></a><rect x="63" y="1" width="8" height="18" class="terminal" rx="4"/> + <text class="terminal" x="67" y="13">,</text> + <rect x="163" y="29" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="167" y="41">)</text> + <path class="line" d="m17 38 h2 m0 0 h4 m12 0 h4 m20 0 h4 m72 0 h4 m-100 0 l20 0 m-1 0 q-9 0 -9 -10 l0 -8 q0 -10 10 -10 m80 28 l20 0 m-20 0 q10 0 10 -10 l0 -8 q0 -10 -10 -10 m-80 0 h4 m8 0 h4 m0 0 h64 m20 28 h4 m12 0 h4 m3 0 h-3"/> + <polygon points="189 38 197 34 197 42"/> + <polygon points="189 38 181 34 181 42"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#row-type-body" title="row_type_body" shape="rect">row_type_body</a></div> + <div>         ::= '(' <a href="#field-definition" title="field_definition" shape="rect">field_definition</a> ( ',' <a href="#field-definition" title="field_definition" shape="rect">field_definition</a> )* ')'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#row-type" title="row-type">row-type</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + reference_type +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="323" height="42"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="24" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">REF</text> + <rect x="55" y="1" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="59" y="13">(</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#referenced-type" xlink:title="referenced_type" shape="rect"> + <rect x="75" y="1" width="84" height="18" class="nonterminal"/> + <text class="nonterminal" x="79" y="13">referenced_type</text></a><rect x="167" y="1" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="171" y="13">)</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#scope-clause" xlink:title="scope_clause" shape="rect"> + <rect x="207" y="22" width="72" height="18" class="nonterminal"/> + <text class="nonterminal" x="211" y="34">scope_clause</text></a><path class="line" d="m17 10 h2 m0 0 h4 m24 0 h4 m0 0 h4 m12 0 h4 m0 0 h4 m84 0 h4 m0 0 h4 m12 0 h4 m20 0 h10 m0 0 h70 m-100 0 h20 m80 0 h20 m-120 0 q10 0 10 10 m100 0 q0 -10 10 -10 m-110 10 v1 m100 0 v-1 m-100 1 q0 10 10 10 m80 0 q10 0 10 -10 m-90 10 h4 m72 0 h4 m23 -21 h-3"/> + <polygon points="313 10 321 6 321 14"/> + <polygon points="313 10 305 6 305 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#reference-type" title="reference_type" shape="rect">reference_type</a></div> + <div>         ::= 'REF' '(' <a href="#referenced-type" title="referenced_type" shape="rect">referenced_type</a> ')' <a href="#scope-clause" title="scope_clause" shape="rect">scope_clause</a>?</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#data-type" title="data-type">data-type</a></li><li><a href="#target-subtype" title="target-subtype">target-subtype</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + scope_clause +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="159" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="38" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">SCOPE</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#table-name" xlink:title="table_name" shape="rect"> + <rect x="69" y="1" width="66" height="18" class="nonterminal"/> + <text class="nonterminal" x="73" y="13">table_name</text></a><path class="line" d="m17 10 h2 m0 0 h4 m38 0 h4 m0 0 h4 m66 0 h4 m3 0 h-3"/> + <polygon points="149 10 157 6 157 14"/> + <polygon points="149 10 141 6 141 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#scope-clause" title="scope_clause" shape="rect">scope_clause</a></div> + <div>         ::= 'SCOPE' <a href="#table-name" title="table_name" shape="rect">table_name</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#add-column-scope-clause" title="add-column-scope-clause">add-column-scope-clause</a></li><li><a href="#column-option-list" title="column-option-list">column-option-list</a></li><li><a href="#reference-type" title="reference-type">reference-type</a></li><li><a href="#view-column-option" title="view-column-option">view-column-option</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + referenced_type +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="247" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#path-resolved-user-defined-type-name" xlink:title="path_resolved_user_defined_type_name" shape="rect"> + <rect x="23" y="1" width="200" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">path_resolved_user_defined_type_name</text></a><path class="line" d="m17 10 h2 m0 0 h4 m200 0 h4 m3 0 h-3"/> + <polygon points="237 10 245 6 245 14"/> + <polygon points="237 10 229 6 229 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#referenced-type" title="referenced_type" shape="rect">referenced_type</a></div> + <div>         ::= <a href="#path-resolved-user-defined-type-name" title="path_resolved_user_defined_type_name" shape="rect">path_resolved_user_defined_type_name</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#reference-type" title="reference-type">reference-type</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + path_resolved_user_defined_type_name +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="175" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#user-defined-type-name" xlink:title="user_defined_type_name" shape="rect"> + <rect x="23" y="1" width="128" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">user_defined_type_name</text></a><path class="line" d="m17 10 h2 m0 0 h4 m128 0 h4 m3 0 h-3"/> + <polygon points="165 10 173 6 173 14"/> + <polygon points="165 10 157 6 157 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#path-resolved-user-defined-type-name" title="path_resolved_user_defined_type_name" shape="rect">path_resolved_user_defined_type_name</a></div> + <div>         ::= <a href="#user-defined-type-name" title="user_defined_type_name" shape="rect">user_defined_type_name</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#data-type" title="data-type">data-type</a></li><li><a href="#exclusive-user-defined-type-specification" title="exclusive-user-defined-type-specification">exclusive-user-defined-type-specification</a></li><li><a href="#general-value-specification" title="general-value-specification">general-value-specification</a></li><li><a href="#generalized-expression" title="generalized-expression">generalized-expression</a></li><li><a href="#group-specification" title="group-specification">group-specification</a></li><li><a href="#inclusive-user-defined-type-specification" title="inclusive-user-defined-type-specification">inclusive-user-defined-type-specification</a></li><li><a href="#new-specification" title="new-specification">new-specification</a></li><li><a href="#referenceable-view-specification" title="referenceable-view-specification">referenceable-view-specification</a></li><li><a href="#referenced-type" title="referenced-type">referenced-type</a></li><li><a href="#supertype-name" title="supertype-name">supertype-name</a></li><li><a href="#target-subtype" title="target-subtype">target-subtype</a></li><li><a href="#transform-group-characteristic" title="transform-group-characteristic">transform-group-characteristic</a></li><li><a href="#typed-table-clause" title="typed-table-clause">typed-table-clause</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + collection_type +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="145" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#array-type" xlink:title="array_type" shape="rect"> + <rect x="43" y="1" width="58" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">array_type</text></a><rect x="43" y="29" width="52" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="41">MULTISET</text> + <path class="line" d="m17 10 h2 m20 0 h4 m58 0 h4 m-86 0 h20 m66 0 h20 m-106 0 q10 0 10 10 m86 0 q0 -10 10 -10 m-96 10 v8 m86 0 v-8 m-86 8 q0 10 10 10 m66 0 q10 0 10 -10 m-76 10 h4 m52 0 h4 m0 0 h6 m23 -28 h-3"/> + <polygon points="135 10 143 6 143 14"/> + <polygon points="135 10 127 6 127 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#collection-type" title="collection_type" shape="rect">collection_type</a></div> + <div>         ::= <a href="#array-type" title="array_type" shape="rect">array_type</a></div> + <div>           | 'MULTISET'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#data-type" title="data-type">data-type</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + array_type +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="481" height="42"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="38" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">ARRAY</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#left-bracket-or-trigraph" xlink:title="left_bracket_or_trigraph" shape="rect"> + <rect x="89" y="22" width="118" height="18" class="nonterminal"/> + <text class="nonterminal" x="93" y="34">left_bracket_or_trigraph</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#unsigned-integer" xlink:title="unsigned_integer" shape="rect"> + <rect x="215" y="22" width="90" height="18" class="nonterminal"/> + <text class="nonterminal" x="219" y="34">unsigned_integer</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#right-bracket-or-trigraph" xlink:title="right_bracket_or_trigraph" shape="rect"> + <rect x="313" y="22" width="124" height="18" class="nonterminal"/> + <text class="nonterminal" x="317" y="34">right_bracket_or_trigraph</text></a><path class="line" d="m17 10 h2 m0 0 h4 m38 0 h4 m20 0 h10 m0 0 h346 m-376 0 h20 m356 0 h20 m-396 0 q10 0 10 10 m376 0 q0 -10 10 -10 m-386 10 v1 m376 0 v-1 m-376 1 q0 10 10 10 m356 0 q10 0 10 -10 m-366 10 h4 m118 0 h4 m0 0 h4 m90 0 h4 m0 0 h4 m124 0 h4 m23 -21 h-3"/> + <polygon points="471 10 479 6 479 14"/> + <polygon points="471 10 463 6 463 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#array-type" title="array_type" shape="rect">array_type</a></div> + <div>         ::= 'ARRAY' ( <a href="#left-bracket-or-trigraph" title="left_bracket_or_trigraph" shape="rect">left_bracket_or_trigraph</a> <a href="#unsigned-integer" title="unsigned_integer" shape="rect">unsigned_integer</a> <a href="#right-bracket-or-trigraph" title="right_bracket_or_trigraph" shape="rect">right_bracket_or_trigraph</a> )?</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#collection-type" title="collection-type">collection-type</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + field_definition +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="157" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#identifier" xlink:title="identifier" shape="rect"> + <rect x="23" y="1" width="46" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">identifier</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#data-type" xlink:title="data_type" shape="rect"> + <rect x="77" y="1" width="56" height="18" class="nonterminal"/> + <text class="nonterminal" x="81" y="13">data_type</text></a><path class="line" d="m17 10 h2 m0 0 h4 m46 0 h4 m0 0 h4 m56 0 h4 m3 0 h-3"/> + <polygon points="147 10 155 6 155 14"/> + <polygon points="147 10 139 6 139 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#field-definition" title="field_definition" shape="rect">field_definition</a></div> + <div>         ::= <a href="#identifier" title="identifier" shape="rect">identifier</a> <a href="#data-type" title="data_type" shape="rect">data_type</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#row-type-body" title="row-type-body">row-type-body</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + value_expression_primary +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="307" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#parenthesized-value-expression" xlink:title="parenthesized_value_expression" shape="rect"> + <rect x="43" y="1" width="160" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">parenthesized_value_expression</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#nonparenthesized-value-expression-primary" xlink:title="nonparenthesized_value_expression_primary" shape="rect"> + <rect x="43" y="29" width="220" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">nonparenthesized_value_expression_primary</text></a><path class="line" d="m17 10 h2 m20 0 h4 m160 0 h4 m0 0 h60 m-248 0 h20 m228 0 h20 m-268 0 q10 0 10 10 m248 0 q0 -10 10 -10 m-258 10 v8 m248 0 v-8 m-248 8 q0 10 10 10 m228 0 q10 0 10 -10 m-238 10 h4 m220 0 h4 m23 -28 h-3"/> + <polygon points="297 10 305 6 305 14"/> + <polygon points="297 10 289 6 289 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#value-expression-primary" title="value_expression_primary" shape="rect">value_expression_primary</a></div> + <div>         ::= <a href="#parenthesized-value-expression" title="parenthesized_value_expression" shape="rect">parenthesized_value_expression</a></div> + <div>           | <a href="#nonparenthesized-value-expression-primary" title="nonparenthesized_value_expression_primary" shape="rect">nonparenthesized_value_expression_primary</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#all-fields-reference" title="all-fields-reference">all-fields-reference</a></li><li><a href="#multiset-primary" title="multiset-primary">multiset-primary</a></li><li><a href="#reference-value-expression" title="reference-value-expression">reference-value-expression</a></li><li><a href="#user-defined-type-value-expression" title="user-defined-type-value-expression">user-defined-type-value-expression</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + parenthesized_value_expression +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="337" height="49"> + <polygon points="9 38 1 34 1 42"/> + <polygon points="17 38 9 34 9 42"/> + <rect x="23" y="29" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="41">(</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#value-expression" xlink:title="value_expression" shape="rect"> + <rect x="63" y="29" width="90" height="18" class="nonterminal"/> + <text class="nonterminal" x="67" y="41">value_expression</text></a><rect x="63" y="1" width="8" height="18" class="terminal" rx="4"/> + <text class="terminal" x="67" y="13">,</text> + <rect x="181" y="29" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="185" y="41">)</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#primary-suffix" xlink:title="primary_suffix" shape="rect"> + <rect x="221" y="8" width="72" height="18" class="nonterminal"/> + <text class="nonterminal" x="225" y="20">primary_suffix</text></a><path class="line" d="m17 38 h2 m0 0 h4 m12 0 h4 m20 0 h4 m90 0 h4 m-118 0 l20 0 m-1 0 q-9 0 -9 -10 l0 -8 q0 -10 10 -10 m98 28 l20 0 m-20 0 q10 0 10 -10 l0 -8 q0 -10 -10 -10 m-98 0 h4 m8 0 h4 m0 0 h82 m20 28 h4 m12 0 h4 m20 0 h10 m0 0 h70 m-100 0 l20 0 m-1 0 q-9 0 -9 -10 l0 -1 q0 -10 10 -10 m80 21 l20 0 m-20 0 q10 0 10 -10 l0 -1 q0 -10 -10 -10 m-80 0 h4 m72 0 h4 m23 21 h-3"/> + <polygon points="327 38 335 34 335 42"/> + <polygon points="327 38 319 34 319 42"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#parenthesized-value-expression" title="parenthesized_value_expression" shape="rect">parenthesized_value_expression</a></div> + <div>         ::= '(' <a href="#value-expression" title="value_expression" shape="rect">value_expression</a> ( ',' <a href="#value-expression" title="value_expression" shape="rect">value_expression</a> )* ')' <a href="#primary-suffix" title="primary_suffix" shape="rect">primary_suffix</a>*</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#value-expression-primary" title="value-expression-primary">value-expression-primary</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + nonparenthesized_value_expression_primary +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="387" height="434"> + <polygon points="9 31 1 27 1 35"/> + <polygon points="17 31 9 27 9 35"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#set-function-specification" xlink:title="set_function_specification" shape="rect"> + <rect x="63" y="22" width="122" height="18" class="nonterminal"/> + <text class="nonterminal" x="67" y="34">set_function_specification</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#subquery" xlink:title="subquery" shape="rect"> + <rect x="63" y="50" width="52" height="18" class="nonterminal"/> + <text class="nonterminal" x="67" y="62">subquery</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#case-expression" xlink:title="case_expression" shape="rect"> + <rect x="63" y="78" width="86" height="18" class="nonterminal"/> + <text class="nonterminal" x="67" y="90">case_expression</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#cast-specification" xlink:title="cast_specification" shape="rect"> + <rect x="63" y="106" width="86" height="18" class="nonterminal"/> + <text class="nonterminal" x="67" y="118">cast_specification</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#subtype-treatment" xlink:title="subtype_treatment" shape="rect"> + <rect x="63" y="134" width="98" height="18" class="nonterminal"/> + <text class="nonterminal" x="67" y="146">subtype_treatment</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#new-specification" xlink:title="new_specification" shape="rect"> + <rect x="63" y="162" width="88" height="18" class="nonterminal"/> + <text class="nonterminal" x="67" y="174">new_specification</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#reference-resolution" xlink:title="reference_resolution" shape="rect"> + <rect x="63" y="190" width="102" height="18" class="nonterminal"/> + <text class="nonterminal" x="67" y="202">reference_resolution</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#collection-value-constructor" xlink:title="collection_value_constructor" shape="rect"> + <rect x="63" y="218" width="134" height="18" class="nonterminal"/> + <text class="nonterminal" x="67" y="230">collection_value_constructor</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#multiset-element-reference" xlink:title="multiset_element_reference" shape="rect"> + <rect x="63" y="246" width="138" height="18" class="nonterminal"/> + <text class="nonterminal" x="67" y="258">multiset_element_reference</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#next-value-expression" xlink:title="next_value_expression" shape="rect"> + <rect x="63" y="274" width="116" height="18" class="nonterminal"/> + <text class="nonterminal" x="67" y="286">next_value_expression</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#window-function-type" xlink:title="window_function_type" shape="rect"> + <rect x="63" y="302" width="112" height="18" class="nonterminal"/> + <text class="nonterminal" x="67" y="314">window_function_type</text></a><rect x="63" y="330" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="67" y="342">(</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#column-name-list" xlink:title="column_name_list" shape="rect"> + <rect x="83" y="330" width="92" height="18" class="nonterminal"/> + <text class="nonterminal" x="87" y="342">column_name_list</text></a><rect x="183" y="330" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="187" y="342">)</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#unsigned-value-specification" xlink:title="unsigned_value_specification" shape="rect"> + <rect x="63" y="358" width="140" height="18" class="nonterminal"/> + <text class="nonterminal" x="67" y="370">unsigned_value_specification</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#column-reference" xlink:title="column_reference" shape="rect"> + <rect x="63" y="386" width="92" height="18" class="nonterminal"/> + <text class="nonterminal" x="67" y="398">column_reference</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#primary-suffix" xlink:title="primary_suffix" shape="rect"> + <rect x="251" y="1" width="72" height="18" class="nonterminal"/> + <text class="nonterminal" x="255" y="13">primary_suffix</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#contextually-typed-value-specification" xlink:title="contextually_typed_value_specification" shape="rect"> + <rect x="43" y="414" width="184" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="426">contextually_typed_value_specification</text></a><path class="line" d="m17 31 h2 m40 0 h4 m122 0 h4 m0 0 h18 m-168 0 h20 m148 0 h20 m-188 0 q10 0 10 10 m168 0 q0 -10 10 -10 m-178 10 v8 m168 0 v-8 m-168 8 q0 10 10 10 m148 0 q10 0 10 -10 m-158 10 h4 m52 0 h4 m0 0 h88 m-158 -10 v20 m168 0 v-20 m-168 20 v8 m168 0 v-8 m-168 8 q0 10 10 10 m148 0 q10 0 10 -10 m-158 10 h4 m86 0 h4 m0 0 h54 m-158 -10 v20 m168 0 v-20 m-168 20 v8 m168 0 v-8 m-168 8 q0 10 10 10 m148 0 q10 0 10 -10 m-158 10 h4 m86 0 h4 m0 0 h54 m-158 -10 v20 m168 0 v-20 m-168 20 v8 m168 0 v-8 m-168 8 q0 10 10 10 m148 0 q10 0 10 -10 m-158 10 h4 m98 0 h4 m0 0 h42 m-158 -10 v20 m168 0 v-20 m-168 20 v8 m168 0 v-8 m-168 8 q0 10 10 10 m148 0 q10 0 10 -10 m-158 10 h4 m88 0 h4 m0 0 h52 m-158 -10 v20 m168 0 v-20 m-168 20 v8 m168 0 v-8 m-168 8 q0 10 10 10 m148 0 q10 0 10 -10 m-158 10 h4 m102 0 h4 m0 0 h38 m-158 -10 v20 m168 0 v-20 m-168 20 v8 m168 0 v-8 m-168 8 q0 10 10 10 m148 0 q10 0 10 -10 m-158 10 h4 m134 0 h4 m0 0 h6 m-158 -10 v20 m168 0 v-20 m-168 20 v8 m168 0 v-8 m-168 8 q0 10 10 10 m148 0 q10 0 10 -10 m-158 10 h4 m138 0 h4 m0 0 h2 m-158 -10 v20 m168 0 v-20 m-168 20 v8 m168 0 v-8 m-168 8 q0 10 10 10 m148 0 q10 0 10 -10 m-158 10 h4 m116 0 h4 m0 0 h24 m-158 -10 v20 m168 0 v-20 m-168 20 v8 m168 0 v-8 m-168 8 q0 10 10 10 m148 0 q10 0 10 -10 m-158 10 h4 m112 0 h4 m0 0 h28 m-158 -10 v20 m168 0 v-20 m-168 20 v8 m168 0 v-8 m-168 8 q0 10 10 10 m148 0 q10 0 10 -10 m-158 10 h4 m12 0 h4 m0 0 h4 m92 0 h4 m0 0 h4 m12 0 h4 m0 0 h8 m-158 -10 v20 m168 0 v-20 m-168 20 v8 m168 0 v-8 m-168 8 q0 10 10 10 m148 0 q10 0 10 -10 m-158 10 h4 m140 0 h4 m-158 -10 v20 m168 0 v-20 m-168 20 v8 m168 0 v-8 m-168 8 q0 10 10 10 m148 0 q10 0 10 -10 m-158 10 h4 m92 0 h4 m0 0 h48 m40 -364 h10 m0 0 h70 m-100 0 l20 0 m-1 0 q-9 0 -9 -10 l0 -1 q0 -10 10 -10 m80 21 l20 0 m-20 0 q10 0 10 -10 l0 -1 q0 -10 -10 -10 m-80 0 h4 m72 0 h4 m-308 21 h20 m308 0 h20 m-348 0 q10 0 10 10 m328 0 q0 -10 10 -10 m-338 10 v372 m328 0 v-372 m-328 372 q0 10 10 10 m308 0 q10 0 10 -10 m-318 10 h4 m184 0 h4 m0 0 h116 m23 -392 h-3"/> + <polygon points="377 31 385 27 385 35"/> + <polygon points="377 31 369 27 369 35"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#nonparenthesized-value-expression-primary" title="nonparenthesized_value_expression_primary" shape="rect">nonparenthesized_value_expression_primary</a></div> + <div>         ::= <a href="#contextually-typed-value-specification" title="contextually_typed_value_specification" shape="rect">contextually_typed_value_specification</a></div> + <div>           | ( <a href="#set-function-specification" title="set_function_specification" shape="rect">set_function_specification</a> | <a href="#subquery" title="subquery" shape="rect">subquery</a> | <a href="#case-expression" title="case_expression" shape="rect">case_expression</a> | <a href="#cast-specification" title="cast_specification" shape="rect">cast_specification</a> | <a href="#subtype-treatment" title="subtype_treatment" shape="rect">subtype_treatment</a> | <a href="#new-specification" title="new_specification" shape="rect">new_specification</a> | <a href="#reference-resolution" title="reference_resolution" shape="rect">reference_resolution</a> | <a href="#collection-value-constructor" title="collection_value_constructor" shape="rect">collection_value_constructor</a> | <a href="#multiset-element-reference" title="multiset_element_reference" shape="rect">multiset_element_reference</a> | <a href="#next-value-expression" title="next_value_expression" shape="rect">next_value_expression</a> | <a href="#window-function-type" title="window_function_type" shape="rect">window_function_type</a> | '(' <a href="#column-name-list" title="column_name_list" shape="rect">column_name_list</a> ')' | <a href="#unsigned-value-specification" title="unsigned_value_specification" shape="rect">unsigned_value_specification</a> | <a href="#column-reference" title="column_reference" shape="rect">column_reference</a> ) <a href="#primary-suffix" title="primary_suffix" shape="rect">primary_suffix</a>*</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#row-value-special-case" title="row-value-special-case">row-value-special-case</a></li><li><a href="#value-expression-primary" title="value-expression-primary">value-expression-primary</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + primary_suffix +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="241" height="161"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#field-reference" xlink:title="field_reference" shape="rect"> + <rect x="43" y="1" width="74" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">field_reference</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#attribute-or-method-reference" xlink:title="attribute_or_method_reference" shape="rect"> + <rect x="43" y="29" width="154" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">attribute_or_method_reference</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#method-invocation" xlink:title="method_invocation" shape="rect"> + <rect x="43" y="57" width="98" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="69">method_invocation</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#window-function" xlink:title="window_function" shape="rect"> + <rect x="43" y="85" width="86" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="97">window_function</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#array-element-reference" xlink:title="array_element_reference" shape="rect"> + <rect x="43" y="113" width="126" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="125">array_element_reference</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#static-method-invocation" xlink:title="static_method_invocation" shape="rect"> + <rect x="43" y="141" width="126" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="153">static_method_invocation</text></a><path class="line" d="m17 10 h2 m20 0 h4 m74 0 h4 m0 0 h80 m-182 0 h20 m162 0 h20 m-202 0 q10 0 10 10 m182 0 q0 -10 10 -10 m-192 10 v8 m182 0 v-8 m-182 8 q0 10 10 10 m162 0 q10 0 10 -10 m-172 10 h4 m154 0 h4 m-172 -10 v20 m182 0 v-20 m-182 20 v8 m182 0 v-8 m-182 8 q0 10 10 10 m162 0 q10 0 10 -10 m-172 10 h4 m98 0 h4 m0 0 h56 m-172 -10 v20 m182 0 v-20 m-182 20 v8 m182 0 v-8 m-182 8 q0 10 10 10 m162 0 q10 0 10 -10 m-172 10 h4 m86 0 h4 m0 0 h68 m-172 -10 v20 m182 0 v-20 m-182 20 v8 m182 0 v-8 m-182 8 q0 10 10 10 m162 0 q10 0 10 -10 m-172 10 h4 m126 0 h4 m0 0 h28 m-172 -10 v20 m182 0 v-20 m-182 20 v8 m182 0 v-8 m-182 8 q0 10 10 10 m162 0 q10 0 10 -10 m-172 10 h4 m126 0 h4 m0 0 h28 m23 -140 h-3"/> + <polygon points="231 10 239 6 239 14"/> + <polygon points="231 10 223 6 223 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#primary-suffix" title="primary_suffix" shape="rect">primary_suffix</a></div> + <div>         ::= <a href="#field-reference" title="field_reference" shape="rect">field_reference</a></div> + <div>           | <a href="#attribute-or-method-reference" title="attribute_or_method_reference" shape="rect">attribute_or_method_reference</a></div> + <div>           | <a href="#method-invocation" title="method_invocation" shape="rect">method_invocation</a></div> + <div>           | <a href="#window-function" title="window_function" shape="rect">window_function</a></div> + <div>           | <a href="#array-element-reference" title="array_element_reference" shape="rect">array_element_reference</a></div> + <div>           | <a href="#static-method-invocation" title="static_method_invocation" shape="rect">static_method_invocation</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#nonparenthesized-value-expression-primary" title="nonparenthesized-value-expression-primary">nonparenthesized-value-expression-primary</a></li><li><a href="#parenthesized-value-expression" title="parenthesized-value-expression">parenthesized-value-expression</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + collection_value_constructor +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="217" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#array-value-constructor" xlink:title="array_value_constructor" shape="rect"> + <rect x="43" y="1" width="118" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">array_value_constructor</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#multiset-value-constructor" xlink:title="multiset_value_constructor" shape="rect"> + <rect x="43" y="29" width="130" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">multiset_value_constructor</text></a><path class="line" d="m17 10 h2 m20 0 h4 m118 0 h4 m0 0 h12 m-158 0 h20 m138 0 h20 m-178 0 q10 0 10 10 m158 0 q0 -10 10 -10 m-168 10 v8 m158 0 v-8 m-158 8 q0 10 10 10 m138 0 q10 0 10 -10 m-148 10 h4 m130 0 h4 m23 -28 h-3"/> + <polygon points="207 10 215 6 215 14"/> + <polygon points="207 10 199 6 199 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#collection-value-constructor" title="collection_value_constructor" shape="rect">collection_value_constructor</a></div> + <div>         ::= <a href="#array-value-constructor" title="array_value_constructor" shape="rect">array_value_constructor</a></div> + <div>           | <a href="#multiset-value-constructor" title="multiset_value_constructor" shape="rect">multiset_value_constructor</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#nonparenthesized-value-expression-primary" title="nonparenthesized-value-expression-primary">nonparenthesized-value-expression-primary</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + value_specification +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="219" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#literal" xlink:title="literal" shape="rect"> + <rect x="43" y="1" width="32" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">literal</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#general-value-specification" xlink:title="general_value_specification" shape="rect"> + <rect x="43" y="29" width="132" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">general_value_specification</text></a><path class="line" d="m17 10 h2 m20 0 h4 m32 0 h4 m0 0 h100 m-160 0 h20 m140 0 h20 m-180 0 q10 0 10 10 m160 0 q0 -10 10 -10 m-170 10 v8 m160 0 v-8 m-160 8 q0 10 10 10 m140 0 q10 0 10 -10 m-150 10 h4 m132 0 h4 m23 -28 h-3"/> + <polygon points="209 10 217 6 217 14"/> + <polygon points="209 10 201 6 201 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#value-specification" title="value_specification" shape="rect">value_specification</a></div> + <div>         ::= <a href="#literal" title="literal" shape="rect">literal</a></div> + <div>           | <a href="#general-value-specification" title="general_value_specification" shape="rect">general_value_specification</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#sql-path-characteristic" title="sql-path-characteristic">sql-path-characteristic</a></li><li><a href="#catalog-name-characteristic" title="catalog-name-characteristic">catalog-name-characteristic</a></li><li><a href="#character-set-name-characteristic" title="character-set-name-characteristic">character-set-name-characteristic</a></li><li><a href="#collation-specification" title="collation-specification">collation-specification</a></li><li><a href="#role-specification" title="role-specification">role-specification</a></li><li><a href="#schema-name-characteristic" title="schema-name-characteristic">schema-name-characteristic</a></li><li><a href="#set-session-user-identifier-statement" title="set-session-user-identifier-statement">set-session-user-identifier-statement</a></li><li><a href="#transform-group-characteristic" title="transform-group-characteristic">transform-group-characteristic</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + unsigned_value_specification +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="219" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#unsigned-literal" xlink:title="unsigned_literal" shape="rect"> + <rect x="43" y="1" width="80" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">unsigned_literal</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#general-value-specification" xlink:title="general_value_specification" shape="rect"> + <rect x="43" y="29" width="132" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">general_value_specification</text></a><path class="line" d="m17 10 h2 m20 0 h4 m80 0 h4 m0 0 h52 m-160 0 h20 m140 0 h20 m-180 0 q10 0 10 10 m160 0 q0 -10 10 -10 m-170 10 v8 m160 0 v-8 m-160 8 q0 10 10 10 m140 0 q10 0 10 -10 m-150 10 h4 m132 0 h4 m23 -28 h-3"/> + <polygon points="209 10 217 6 217 14"/> + <polygon points="209 10 201 6 201 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#unsigned-value-specification" title="unsigned_value_specification" shape="rect">unsigned_value_specification</a></div> + <div>         ::= <a href="#unsigned-literal" title="unsigned_literal" shape="rect">unsigned_literal</a></div> + <div>           | <a href="#general-value-specification" title="general_value_specification" shape="rect">general_value_specification</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#nonparenthesized-value-expression-primary" title="nonparenthesized-value-expression-primary">nonparenthesized-value-expression-primary</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + general_value_specification +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="503" height="413"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#identifier-chain" xlink:title="identifier_chain" shape="rect"> + <rect x="43" y="1" width="76" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">identifier_chain</text></a><rect x="43" y="29" width="80" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="41">CURRENT_USER</text> + <rect x="43" y="57" width="32" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="69">USER</text> + <rect x="43" y="85" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="97">?</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#host-parameter-name" xlink:title="host_parameter_name" shape="rect"> + <rect x="43" y="113" width="118" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="125">host_parameter_name</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#current-collation-specification" xlink:title="current_collation_specification" shape="rect"> + <rect x="43" y="141" width="140" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="153">current_collation_specification</text></a><rect x="43" y="169" width="80" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="181">SESSION_USER</text> + <rect x="43" y="197" width="74" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="209">SYSTEM_USER</text> + <rect x="43" y="225" width="100" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="237">CURRENT_CATALOG</text> + <rect x="43" y="253" width="82" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="265">CURRENT_PATH</text> + <rect x="43" y="281" width="82" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="293">CURRENT_ROLE</text> + <rect x="43" y="309" width="96" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="321">CURRENT_SCHEMA</text> + <rect x="43" y="337" width="36" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="349">VALUE</text> + <rect x="43" y="365" width="202" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="377">CURRENT_DEFAULT_TRANSFORM_GROUP</text> + <rect x="43" y="393" width="208" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="405">CURRENT_TRANSFORM_GROUP_FOR_TYPE</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#path-resolved-user-defined-type-name" xlink:title="path_resolved_user_defined_type_name" shape="rect"> + <rect x="259" y="393" width="200" height="18" class="nonterminal"/> + <text class="nonterminal" x="263" y="405">path_resolved_user_defined_type_name</text></a><path class="line" d="m17 10 h2 m20 0 h4 m76 0 h4 m0 0 h340 m-444 0 h20 m424 0 h20 m-464 0 q10 0 10 10 m444 0 q0 -10 10 -10 m-454 10 v8 m444 0 v-8 m-444 8 q0 10 10 10 m424 0 q10 0 10 -10 m-434 10 h4 m80 0 h4 m0 0 h336 m-434 -10 v20 m444 0 v-20 m-444 20 v8 m444 0 v-8 m-444 8 q0 10 10 10 m424 0 q10 0 10 -10 m-434 10 h4 m32 0 h4 m0 0 h384 m-434 -10 v20 m444 0 v-20 m-444 20 v8 m444 0 v-8 m-444 8 q0 10 10 10 m424 0 q10 0 10 -10 m-434 10 h4 m12 0 h4 m0 0 h404 m-434 -10 v20 m444 0 v-20 m-444 20 v8 m444 0 v-8 m-444 8 q0 10 10 10 m424 0 q10 0 10 -10 m-434 10 h4 m118 0 h4 m0 0 h298 m-434 -10 v20 m444 0 v-20 m-444 20 v8 m444 0 v-8 m-444 8 q0 10 10 10 m424 0 q10 0 10 -10 m-434 10 h4 m140 0 h4 m0 0 h276 m-434 -10 v20 m444 0 v-20 m-444 20 v8 m444 0 v-8 m-444 8 q0 10 10 10 m424 0 q10 0 10 -10 m-434 10 h4 m80 0 h4 m0 0 h336 m-434 -10 v20 m444 0 v-20 m-444 20 v8 m444 0 v-8 m-444 8 q0 10 10 10 m424 0 q10 0 10 -10 m-434 10 h4 m74 0 h4 m0 0 h342 m-434 -10 v20 m444 0 v-20 m-444 20 v8 m444 0 v-8 m-444 8 q0 10 10 10 m424 0 q10 0 10 -10 m-434 10 h4 m100 0 h4 m0 0 h316 m-434 -10 v20 m444 0 v-20 m-444 20 v8 m444 0 v-8 m-444 8 q0 10 10 10 m424 0 q10 0 10 -10 m-434 10 h4 m82 0 h4 m0 0 h334 m-434 -10 v20 m444 0 v-20 m-444 20 v8 m444 0 v-8 m-444 8 q0 10 10 10 m424 0 q10 0 10 -10 m-434 10 h4 m82 0 h4 m0 0 h334 m-434 -10 v20 m444 0 v-20 m-444 20 v8 m444 0 v-8 m-444 8 q0 10 10 10 m424 0 q10 0 10 -10 m-434 10 h4 m96 0 h4 m0 0 h320 m-434 -10 v20 m444 0 v-20 m-444 20 v8 m444 0 v-8 m-444 8 q0 10 10 10 m424 0 q10 0 10 -10 m-434 10 h4 m36 0 h4 m0 0 h380 m-434 -10 v20 m444 0 v-20 m-444 20 v8 m444 0 v-8 m-444 8 q0 10 10 10 m424 0 q10 0 10 -10 m-434 10 h4 m202 0 h4 m0 0 h214 m-434 -10 v20 m444 0 v-20 m-444 20 v8 m444 0 v-8 m-444 8 q0 10 10 10 m424 0 q10 0 10 -10 m-434 10 h4 m208 0 h4 m0 0 h4 m200 0 h4 m23 -392 h-3"/> + <polygon points="493 10 501 6 501 14"/> + <polygon points="493 10 485 6 485 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#general-value-specification" title="general_value_specification" shape="rect">general_value_specification</a></div> + <div>         ::= <a href="#identifier-chain" title="identifier_chain" shape="rect">identifier_chain</a></div> + <div>           | 'CURRENT_USER'</div> + <div>           | 'USER'</div> + <div>           | '?'</div> + <div>           | <a href="#host-parameter-name" title="host_parameter_name" shape="rect">host_parameter_name</a></div> + <div>           | <a href="#current-collation-specification" title="current_collation_specification" shape="rect">current_collation_specification</a></div> + <div>           | 'SESSION_USER'</div> + <div>           | 'SYSTEM_USER'</div> + <div>           | 'CURRENT_CATALOG'</div> + <div>           | 'CURRENT_PATH'</div> + <div>           | 'CURRENT_ROLE'</div> + <div>           | 'CURRENT_SCHEMA'</div> + <div>           | 'VALUE'</div> + <div>           | 'CURRENT_DEFAULT_TRANSFORM_GROUP'</div> + <div>           | 'CURRENT_TRANSFORM_GROUP_FOR_TYPE' <a href="#path-resolved-user-defined-type-name" title="path_resolved_user_defined_type_name" shape="rect">path_resolved_user_defined_type_name</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#unsigned-value-specification" title="unsigned-value-specification">unsigned-value-specification</a></li><li><a href="#using-argument" title="using-argument">using-argument</a></li><li><a href="#value-specification" title="value-specification">value-specification</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + simple_value_specification +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="205" height="77"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#literal" xlink:title="literal" shape="rect"> + <rect x="43" y="1" width="32" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">literal</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#identifier-chain" xlink:title="identifier_chain" shape="rect"> + <rect x="43" y="29" width="76" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">identifier_chain</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#host-parameter-name" xlink:title="host_parameter_name" shape="rect"> + <rect x="43" y="57" width="118" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="69">host_parameter_name</text></a><path class="line" d="m17 10 h2 m20 0 h4 m32 0 h4 m0 0 h86 m-146 0 h20 m126 0 h20 m-166 0 q10 0 10 10 m146 0 q0 -10 10 -10 m-156 10 v8 m146 0 v-8 m-146 8 q0 10 10 10 m126 0 q10 0 10 -10 m-136 10 h4 m76 0 h4 m0 0 h42 m-136 -10 v20 m146 0 v-20 m-146 20 v8 m146 0 v-8 m-146 8 q0 10 10 10 m126 0 q10 0 10 -10 m-136 10 h4 m118 0 h4 m23 -56 h-3"/> + <polygon points="195 10 203 6 203 14"/> + <polygon points="195 10 187 6 187 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#simple-value-specification" title="simple_value_specification" shape="rect">simple_value_specification</a></div> + <div>         ::= <a href="#literal" title="literal" shape="rect">literal</a></div> + <div>           | <a href="#identifier-chain" title="identifier_chain" shape="rect">identifier_chain</a></div> + <div>           | <a href="#host-parameter-name" title="host_parameter_name" shape="rect">host_parameter_name</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#all-qualifier" title="all-qualifier">all-qualifier</a></li><li><a href="#allocate-descriptor-statement" title="allocate-descriptor-statement">allocate-descriptor-statement</a></li><li><a href="#attributes-specification" title="attributes-specification">attributes-specification</a></li><li><a href="#condition-information" title="condition-information">condition-information</a></li><li><a href="#connection-object" title="connection-object">connection-object</a></li><li><a href="#connection-target" title="connection-target">connection-target</a></li><li><a href="#diagnostics-size" title="diagnostics-size">diagnostics-size</a></li><li><a href="#execute-immediate-statement" title="execute-immediate-statement">execute-immediate-statement</a></li><li><a href="#extended-cursor-name" title="extended-cursor-name">extended-cursor-name</a></li><li><a href="#extended-descriptor-name" title="extended-descriptor-name">extended-descriptor-name</a></li><li><a href="#extended-identifier" title="extended-identifier">extended-identifier</a></li><li><a href="#fetch-first-clause" title="fetch-first-clause">fetch-first-clause</a></li><li><a href="#fetch-orientation" title="fetch-orientation">fetch-orientation</a></li><li><a href="#get-descriptor-information" title="get-descriptor-information">get-descriptor-information</a></li><li><a href="#nth-row" title="nth-row">nth-row</a></li><li><a href="#prepare-statement" title="prepare-statement">prepare-statement</a></li><li><a href="#result-offset-clause" title="result-offset-clause">result-offset-clause</a></li><li><a href="#set-descriptor-information" title="set-descriptor-information">set-descriptor-information</a></li><li><a href="#set-header-information" title="set-header-information">set-header-information</a></li><li><a href="#set-item-information" title="set-item-information">set-item-information</a></li><li><a href="#target-array-element-specification" title="target-array-element-specification">target-array-element-specification</a></li><li><a href="#update-target" title="update-target">update-target</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + target_specification +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="395" height="70"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#identifier-chain" xlink:title="identifier_chain" shape="rect"> + <rect x="43" y="1" width="76" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">identifier_chain</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#column-reference" xlink:title="column_reference" shape="rect"> + <rect x="43" y="29" width="92" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">column_reference</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#target-array-element-specification" xlink:title="target_array_element_specification" shape="rect"> + <rect x="183" y="22" width="168" height="18" class="nonterminal"/> + <text class="nonterminal" x="187" y="34">target_array_element_specification</text></a><rect x="183" y="50" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="187" y="62">?</text> + <path class="line" d="m17 10 h2 m20 0 h4 m76 0 h4 m0 0 h16 m-120 0 h20 m100 0 h20 m-140 0 q10 0 10 10 m120 0 q0 -10 10 -10 m-130 10 v8 m120 0 v-8 m-120 8 q0 10 10 10 m100 0 q10 0 10 -10 m-110 10 h4 m92 0 h4 m40 -28 h10 m0 0 h166 m-196 0 h20 m176 0 h20 m-216 0 q10 0 10 10 m196 0 q0 -10 10 -10 m-206 10 v1 m196 0 v-1 m-196 1 q0 10 10 10 m176 0 q10 0 10 -10 m-186 10 h4 m168 0 h4 m-186 -10 v20 m196 0 v-20 m-196 20 v8 m196 0 v-8 m-196 8 q0 10 10 10 m176 0 q10 0 10 -10 m-186 10 h4 m12 0 h4 m0 0 h156 m23 -49 h-3"/> + <polygon points="385 10 393 6 393 14"/> + <polygon points="385 10 377 6 377 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#target-specification" title="target_specification" shape="rect">target_specification</a></div> + <div>         ::= ( <a href="#identifier-chain" title="identifier_chain" shape="rect">identifier_chain</a> | <a href="#column-reference" title="column_reference" shape="rect">column_reference</a> ) ( <a href="#target-array-element-specification" title="target_array_element_specification" shape="rect">target_array_element_specification</a> | '?' )?</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#sql-argument" title="sql-argument">sql-argument</a></li><li><a href="#fetch-target-list" title="fetch-target-list">fetch-target-list</a></li><li><a href="#into-argument" title="into-argument">into-argument</a></li><li><a href="#named-argument-sql-argument" title="named-argument-sql-argument">named-argument-sql-argument</a></li><li><a href="#select-target-list" title="select-target-list">select-target-list</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + simple_target_specification +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="179" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#identifier-chain" xlink:title="identifier_chain" shape="rect"> + <rect x="43" y="1" width="76" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">identifier_chain</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#column-reference" xlink:title="column_reference" shape="rect"> + <rect x="43" y="29" width="92" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">column_reference</text></a><path class="line" d="m17 10 h2 m20 0 h4 m76 0 h4 m0 0 h16 m-120 0 h20 m100 0 h20 m-140 0 q10 0 10 10 m120 0 q0 -10 10 -10 m-130 10 v8 m120 0 v-8 m-120 8 q0 10 10 10 m100 0 q10 0 10 -10 m-110 10 h4 m92 0 h4 m23 -28 h-3"/> + <polygon points="169 10 177 6 177 14"/> + <polygon points="169 10 161 6 161 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#simple-target-specification" title="simple_target_specification" shape="rect">simple_target_specification</a></div> + <div>         ::= <a href="#identifier-chain" title="identifier_chain" shape="rect">identifier_chain</a></div> + <div>           | <a href="#column-reference" title="column_reference" shape="rect">column_reference</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#all-info-target" title="all-info-target">all-info-target</a></li><li><a href="#condition-information-item" title="condition-information-item">condition-information-item</a></li><li><a href="#simple-target-specification-1" title="simple-target-specification-1">simple-target-specification-1</a></li><li><a href="#simple-target-specification-2" title="simple-target-specification-2">simple-target-specification-2</a></li><li><a href="#statement-information-item" title="statement-information-item">statement-information-item</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + target_array_element_specification +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="433" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#left-bracket-or-trigraph" xlink:title="left_bracket_or_trigraph" shape="rect"> + <rect x="23" y="1" width="118" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">left_bracket_or_trigraph</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#simple-value-specification" xlink:title="simple_value_specification" shape="rect"> + <rect x="149" y="1" width="128" height="18" class="nonterminal"/> + <text class="nonterminal" x="153" y="13">simple_value_specification</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#right-bracket-or-trigraph" xlink:title="right_bracket_or_trigraph" shape="rect"> + <rect x="285" y="1" width="124" height="18" class="nonterminal"/> + <text class="nonterminal" x="289" y="13">right_bracket_or_trigraph</text></a><path class="line" d="m17 10 h2 m0 0 h4 m118 0 h4 m0 0 h4 m128 0 h4 m0 0 h4 m124 0 h4 m3 0 h-3"/> + <polygon points="423 10 431 6 431 14"/> + <polygon points="423 10 415 6 415 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#target-array-element-specification" title="target_array_element_specification" shape="rect">target_array_element_specification</a></div> + <div>         ::= <a href="#left-bracket-or-trigraph" title="left_bracket_or_trigraph" shape="rect">left_bracket_or_trigraph</a> <a href="#simple-value-specification" title="simple_value_specification" shape="rect">simple_value_specification</a> <a href="#right-bracket-or-trigraph" title="right_bracket_or_trigraph" shape="rect">right_bracket_or_trigraph</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#target-specification" title="target-specification">target-specification</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + current_collation_specification +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="311" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="62" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">COLLATION</text> + <rect x="93" y="1" width="26" height="18" class="terminal" rx="4"/> + <text class="terminal" x="97" y="13">FOR</text> + <rect x="127" y="1" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="131" y="13">(</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#string-value-expression" xlink:title="string_value_expression" shape="rect"> + <rect x="147" y="1" width="120" height="18" class="nonterminal"/> + <text class="nonterminal" x="151" y="13">string_value_expression</text></a><rect x="275" y="1" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="279" y="13">)</text> + <path class="line" d="m17 10 h2 m0 0 h4 m62 0 h4 m0 0 h4 m26 0 h4 m0 0 h4 m12 0 h4 m0 0 h4 m120 0 h4 m0 0 h4 m12 0 h4 m3 0 h-3"/> + <polygon points="301 10 309 6 309 14"/> + <polygon points="301 10 293 6 293 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#current-collation-specification" title="current_collation_specification" shape="rect">current_collation_specification</a></div> + <div>         ::= 'COLLATION' 'FOR' '(' <a href="#string-value-expression" title="string_value_expression" shape="rect">string_value_expression</a> ')'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#general-value-specification" title="general-value-specification">general-value-specification</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + contextually_typed_value_specification +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="251" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#implicitly-typed-value-specification" xlink:title="implicitly_typed_value_specification" shape="rect"> + <rect x="43" y="1" width="164" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">implicitly_typed_value_specification</text></a><rect x="43" y="29" width="48" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="41">DEFAULT</text> + <path class="line" d="m17 10 h2 m20 0 h4 m164 0 h4 m-192 0 h20 m172 0 h20 m-212 0 q10 0 10 10 m192 0 q0 -10 10 -10 m-202 10 v8 m192 0 v-8 m-192 8 q0 10 10 10 m172 0 q10 0 10 -10 m-182 10 h4 m48 0 h4 m0 0 h116 m23 -28 h-3"/> + <polygon points="241 10 249 6 249 14"/> + <polygon points="241 10 233 6 233 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#contextually-typed-value-specification" title="contextually_typed_value_specification" shape="rect">contextually_typed_value_specification</a></div> + <div>         ::= <a href="#implicitly-typed-value-specification" title="implicitly_typed_value_specification" shape="rect">implicitly_typed_value_specification</a></div> + <div>           | 'DEFAULT'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#sql-argument" title="sql-argument">sql-argument</a></li><li><a href="#contextually-typed-row-value-constructor" title="contextually-typed-row-value-constructor">contextually-typed-row-value-constructor</a></li><li><a href="#contextually-typed-row-value-constructor-element" title="contextually-typed-row-value-constructor-element">contextually-typed-row-value-constructor-element</a></li><li><a href="#merge-insert-value-element" title="merge-insert-value-element">merge-insert-value-element</a></li><li><a href="#named-argument-sql-argument" title="named-argument-sql-argument">named-argument-sql-argument</a></li><li><a href="#nonparenthesized-value-expression-primary" title="nonparenthesized-value-expression-primary">nonparenthesized-value-expression-primary</a></li><li><a href="#parameter-default" title="parameter-default">parameter-default</a></li><li><a href="#update-source" title="update-source">update-source</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + implicitly_typed_value_specification +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="185" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="43" y="1" width="32" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="13">NULL</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#empty-specification" xlink:title="empty_specification" shape="rect"> + <rect x="43" y="29" width="98" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">empty_specification</text></a><path class="line" d="m17 10 h2 m20 0 h4 m32 0 h4 m0 0 h66 m-126 0 h20 m106 0 h20 m-146 0 q10 0 10 10 m126 0 q0 -10 10 -10 m-136 10 v8 m126 0 v-8 m-126 8 q0 10 10 10 m106 0 q10 0 10 -10 m-116 10 h4 m98 0 h4 m23 -28 h-3"/> + <polygon points="175 10 183 6 183 14"/> + <polygon points="175 10 167 6 167 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#implicitly-typed-value-specification" title="implicitly_typed_value_specification" shape="rect">implicitly_typed_value_specification</a></div> + <div>         ::= 'NULL'</div> + <div>           | <a href="#empty-specification" title="empty_specification" shape="rect">empty_specification</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#cast-operand" title="cast-operand">cast-operand</a></li><li><a href="#contextually-typed-value-specification" title="contextually-typed-value-specification">contextually-typed-value-specification</a></li><li><a href="#default-option" title="default-option">default-option</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + empty_specification +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="397" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="43" y="1" width="38" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="13">ARRAY</text> + <rect x="43" y="29" width="52" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="41">MULTISET</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#left-bracket-or-trigraph" xlink:title="left_bracket_or_trigraph" shape="rect"> + <rect x="123" y="1" width="118" height="18" class="nonterminal"/> + <text class="nonterminal" x="127" y="13">left_bracket_or_trigraph</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#right-bracket-or-trigraph" xlink:title="right_bracket_or_trigraph" shape="rect"> + <rect x="249" y="1" width="124" height="18" class="nonterminal"/> + <text class="nonterminal" x="253" y="13">right_bracket_or_trigraph</text></a><path class="line" d="m17 10 h2 m20 0 h4 m38 0 h4 m0 0 h14 m-80 0 h20 m60 0 h20 m-100 0 q10 0 10 10 m80 0 q0 -10 10 -10 m-90 10 v8 m80 0 v-8 m-80 8 q0 10 10 10 m60 0 q10 0 10 -10 m-70 10 h4 m52 0 h4 m20 -28 h4 m118 0 h4 m0 0 h4 m124 0 h4 m3 0 h-3"/> + <polygon points="387 10 395 6 395 14"/> + <polygon points="387 10 379 6 379 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#empty-specification" title="empty_specification" shape="rect">empty_specification</a></div> + <div>         ::= ( 'ARRAY' | 'MULTISET' ) <a href="#left-bracket-or-trigraph" title="left_bracket_or_trigraph" shape="rect">left_bracket_or_trigraph</a> <a href="#right-bracket-or-trigraph" title="right_bracket_or_trigraph" shape="rect">right_bracket_or_trigraph</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#implicitly-typed-value-specification" title="implicitly-typed-value-specification">implicitly-typed-value-specification</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + identifier_chain +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="133" height="49"> + <polygon points="9 38 1 34 1 42"/> + <polygon points="17 38 9 34 9 42"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#identifier" xlink:title="identifier" shape="rect"> + <rect x="43" y="29" width="46" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">identifier</text></a><rect x="43" y="1" width="8" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="13">.</text> + <path class="line" d="m17 38 h2 m20 0 h4 m46 0 h4 m-74 0 l20 0 m-1 0 q-9 0 -9 -10 l0 -8 q0 -10 10 -10 m54 28 l20 0 m-20 0 q10 0 10 -10 l0 -8 q0 -10 -10 -10 m-54 0 h4 m8 0 h4 m0 0 h38 m23 28 h-3"/> + <polygon points="123 38 131 34 131 42"/> + <polygon points="123 38 115 34 115 42"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#identifier-chain" title="identifier_chain" shape="rect">identifier_chain</a></div> + <div>         ::= <a href="#identifier" title="identifier" shape="rect">identifier</a> ( '.' <a href="#identifier" title="identifier" shape="rect">identifier</a> )*</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#column-reference" title="column-reference">column-reference</a></li><li><a href="#cursor-name" title="cursor-name">cursor-name</a></li><li><a href="#general-value-specification" title="general-value-specification">general-value-specification</a></li><li><a href="#local-or-schema-qualified-name" title="local-or-schema-qualified-name">local-or-schema-qualified-name</a></li><li><a href="#schema-name" title="schema-name">schema-name</a></li><li><a href="#schema-qualified-name" title="schema-qualified-name">schema-qualified-name</a></li><li><a href="#simple-target-specification" title="simple-target-specification">simple-target-specification</a></li><li><a href="#simple-value-specification" title="simple-value-specification">simple-value-specification</a></li><li><a href="#table-name" title="table-name">table-name</a></li><li><a href="#target-specification" title="target-specification">target-specification</a></li><li><a href="#use-statement" title="use-statement">use-statement</a></li><li><a href="#user-defined-type-name" title="user-defined-type-name">user-defined-type-name</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + column_reference +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="275" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#identifier-chain" xlink:title="identifier_chain" shape="rect"> + <rect x="43" y="1" width="76" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">identifier_chain</text></a><rect x="43" y="29" width="48" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="41">MODULE</text> + <rect x="99" y="29" width="8" height="18" class="terminal" rx="4"/> + <text class="terminal" x="103" y="41">.</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#identifier" xlink:title="identifier" shape="rect"> + <rect x="115" y="29" width="46" height="18" class="nonterminal"/> + <text class="nonterminal" x="119" y="41">identifier</text></a><rect x="169" y="29" width="8" height="18" class="terminal" rx="4"/> + <text class="terminal" x="173" y="41">.</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#identifier" xlink:title="identifier" shape="rect"> + <rect x="185" y="29" width="46" height="18" class="nonterminal"/> + <text class="nonterminal" x="189" y="41">identifier</text></a><path class="line" d="m17 10 h2 m20 0 h4 m76 0 h4 m0 0 h112 m-216 0 h20 m196 0 h20 m-236 0 q10 0 10 10 m216 0 q0 -10 10 -10 m-226 10 v8 m216 0 v-8 m-216 8 q0 10 10 10 m196 0 q10 0 10 -10 m-206 10 h4 m48 0 h4 m0 0 h4 m8 0 h4 m0 0 h4 m46 0 h4 m0 0 h4 m8 0 h4 m0 0 h4 m46 0 h4 m23 -28 h-3"/> + <polygon points="265 10 273 6 273 14"/> + <polygon points="265 10 257 6 257 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#column-reference" title="column_reference" shape="rect">column_reference</a></div> + <div>         ::= <a href="#identifier-chain" title="identifier_chain" shape="rect">identifier_chain</a></div> + <div>           | 'MODULE' '.' <a href="#identifier" title="identifier" shape="rect">identifier</a> '.' <a href="#identifier" title="identifier" shape="rect">identifier</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#grouping-column-reference" title="grouping-column-reference">grouping-column-reference</a></li><li><a href="#grouping-operation" title="grouping-operation">grouping-operation</a></li><li><a href="#nonparenthesized-value-expression-primary" title="nonparenthesized-value-expression-primary">nonparenthesized-value-expression-primary</a></li><li><a href="#partitioned-join-column-reference" title="partitioned-join-column-reference">partitioned-join-column-reference</a></li><li><a href="#simple-target-specification" title="simple-target-specification">simple-target-specification</a></li><li><a href="#target-specification" title="target-specification">target-specification</a></li><li><a href="#window-partition-column-reference" title="window-partition-column-reference">window-partition-column-reference</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + set_function_specification +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="187" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#aggregate-function" xlink:title="aggregate_function" shape="rect"> + <rect x="43" y="1" width="98" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">aggregate_function</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#grouping-operation" xlink:title="grouping_operation" shape="rect"> + <rect x="43" y="29" width="100" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">grouping_operation</text></a><path class="line" d="m17 10 h2 m20 0 h4 m98 0 h4 m0 0 h2 m-128 0 h20 m108 0 h20 m-148 0 q10 0 10 10 m128 0 q0 -10 10 -10 m-138 10 v8 m128 0 v-8 m-128 8 q0 10 10 10 m108 0 q10 0 10 -10 m-118 10 h4 m100 0 h4 m23 -28 h-3"/> + <polygon points="177 10 185 6 185 14"/> + <polygon points="177 10 169 6 169 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#set-function-specification" title="set_function_specification" shape="rect">set_function_specification</a></div> + <div>         ::= <a href="#aggregate-function" title="aggregate_function" shape="rect">aggregate_function</a></div> + <div>           | <a href="#grouping-operation" title="grouping_operation" shape="rect">grouping_operation</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#nonparenthesized-value-expression-primary" title="nonparenthesized-value-expression-primary">nonparenthesized-value-expression-primary</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + grouping_operation +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="285" height="49"> + <polygon points="9 38 1 34 1 42"/> + <polygon points="17 38 9 34 9 42"/> + <rect x="23" y="29" width="58" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="41">GROUPING</text> + <rect x="89" y="29" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="93" y="41">(</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#column-reference" xlink:title="column_reference" shape="rect"> + <rect x="129" y="29" width="92" height="18" class="nonterminal"/> + <text class="nonterminal" x="133" y="41">column_reference</text></a><rect x="129" y="1" width="8" height="18" class="terminal" rx="4"/> + <text class="terminal" x="133" y="13">,</text> + <rect x="249" y="29" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="253" y="41">)</text> + <path class="line" d="m17 38 h2 m0 0 h4 m58 0 h4 m0 0 h4 m12 0 h4 m20 0 h4 m92 0 h4 m-120 0 l20 0 m-1 0 q-9 0 -9 -10 l0 -8 q0 -10 10 -10 m100 28 l20 0 m-20 0 q10 0 10 -10 l0 -8 q0 -10 -10 -10 m-100 0 h4 m8 0 h4 m0 0 h84 m20 28 h4 m12 0 h4 m3 0 h-3"/> + <polygon points="275 38 283 34 283 42"/> + <polygon points="275 38 267 34 267 42"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#grouping-operation" title="grouping_operation" shape="rect">grouping_operation</a></div> + <div>         ::= 'GROUPING' '(' <a href="#column-reference" title="column_reference" shape="rect">column_reference</a> ( ',' <a href="#column-reference" title="column_reference" shape="rect">column_reference</a> )* ')'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#set-function-specification" title="set-function-specification">set-function-specification</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + window_function +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="241" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="34" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">OVER</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#window-name-or-specification" xlink:title="window_name_or_specification" shape="rect"> + <rect x="65" y="1" width="152" height="18" class="nonterminal"/> + <text class="nonterminal" x="69" y="13">window_name_or_specification</text></a><path class="line" d="m17 10 h2 m0 0 h4 m34 0 h4 m0 0 h4 m152 0 h4 m3 0 h-3"/> + <polygon points="231 10 239 6 239 14"/> + <polygon points="231 10 223 6 223 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#window-function" title="window_function" shape="rect">window_function</a></div> + <div>         ::= 'OVER' <a href="#window-name-or-specification" title="window_name_or_specification" shape="rect">window_name_or_specification</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#primary-suffix" title="primary-suffix">primary-suffix</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + window_function_type +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="263" height="189"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#rank-function-type" xlink:title="rank_function_type" shape="rect"> + <rect x="63" y="1" width="96" height="18" class="nonterminal"/> + <text class="nonterminal" x="67" y="13">rank_function_type</text></a><rect x="63" y="29" width="78" height="18" class="terminal" rx="4"/> + <text class="terminal" x="67" y="41">ROW_NUMBER</text> + <rect x="187" y="1" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="191" y="13">(</text> + <rect x="207" y="1" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="211" y="13">)</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#aggregate-function" xlink:title="aggregate_function" shape="rect"> + <rect x="43" y="57" width="98" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="69">aggregate_function</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#ntile-function" xlink:title="ntile_function" shape="rect"> + <rect x="43" y="85" width="68" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="97">ntile_function</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#lead-or-lag-function" xlink:title="lead_or_lag_function" shape="rect"> + <rect x="43" y="113" width="104" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="125">lead_or_lag_function</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#first-or-last-value-function" xlink:title="first_or_last_value_function" shape="rect"> + <rect x="43" y="141" width="132" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="153">first_or_last_value_function</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#nth-value-function" xlink:title="nth_value_function" shape="rect"> + <rect x="43" y="169" width="96" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="181">nth_value_function</text></a><path class="line" d="m17 10 h2 m40 0 h4 m96 0 h4 m-124 0 h20 m104 0 h20 m-144 0 q10 0 10 10 m124 0 q0 -10 10 -10 m-134 10 v8 m124 0 v-8 m-124 8 q0 10 10 10 m104 0 q10 0 10 -10 m-114 10 h4 m78 0 h4 m0 0 h18 m20 -28 h4 m12 0 h4 m0 0 h4 m12 0 h4 m-204 0 h20 m184 0 h20 m-224 0 q10 0 10 10 m204 0 q0 -10 10 -10 m-214 10 v36 m204 0 v-36 m-204 36 q0 10 10 10 m184 0 q10 0 10 -10 m-194 10 h4 m98 0 h4 m0 0 h78 m-194 -10 v20 m204 0 v-20 m-204 20 v8 m204 0 v-8 m-204 8 q0 10 10 10 m184 0 q10 0 10 -10 m-194 10 h4 m68 0 h4 m0 0 h108 m-194 -10 v20 m204 0 v-20 m-204 20 v8 m204 0 v-8 m-204 8 q0 10 10 10 m184 0 q10 0 10 -10 m-194 10 h4 m104 0 h4 m0 0 h72 m-194 -10 v20 m204 0 v-20 m-204 20 v8 m204 0 v-8 m-204 8 q0 10 10 10 m184 0 q10 0 10 -10 m-194 10 h4 m132 0 h4 m0 0 h44 m-194 -10 v20 m204 0 v-20 m-204 20 v8 m204 0 v-8 m-204 8 q0 10 10 10 m184 0 q10 0 10 -10 m-194 10 h4 m96 0 h4 m0 0 h80 m23 -168 h-3"/> + <polygon points="253 10 261 6 261 14"/> + <polygon points="253 10 245 6 245 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#window-function-type" title="window_function_type" shape="rect">window_function_type</a></div> + <div>         ::= ( <a href="#rank-function-type" title="rank_function_type" shape="rect">rank_function_type</a> | 'ROW_NUMBER' ) '(' ')'</div> + <div>           | <a href="#aggregate-function" title="aggregate_function" shape="rect">aggregate_function</a></div> + <div>           | <a href="#ntile-function" title="ntile_function" shape="rect">ntile_function</a></div> + <div>           | <a href="#lead-or-lag-function" title="lead_or_lag_function" shape="rect">lead_or_lag_function</a></div> + <div>           | <a href="#first-or-last-value-function" title="first_or_last_value_function" shape="rect">first_or_last_value_function</a></div> + <div>           | <a href="#nth-value-function" title="nth_value_function" shape="rect">nth_value_function</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#nonparenthesized-value-expression-primary" title="nonparenthesized-value-expression-primary">nonparenthesized-value-expression-primary</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + rank_function_type +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="167" height="105"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="43" y="1" width="34" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="13">RANK</text> + <rect x="43" y="29" width="70" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="41">DENSE_RANK</text> + <rect x="43" y="57" width="80" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="69">PERCENT_RANK</text> + <rect x="43" y="85" width="62" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="97">CUME_DIST</text> + <path class="line" d="m17 10 h2 m20 0 h4 m34 0 h4 m0 0 h46 m-108 0 h20 m88 0 h20 m-128 0 q10 0 10 10 m108 0 q0 -10 10 -10 m-118 10 v8 m108 0 v-8 m-108 8 q0 10 10 10 m88 0 q10 0 10 -10 m-98 10 h4 m70 0 h4 m0 0 h10 m-98 -10 v20 m108 0 v-20 m-108 20 v8 m108 0 v-8 m-108 8 q0 10 10 10 m88 0 q10 0 10 -10 m-98 10 h4 m80 0 h4 m-98 -10 v20 m108 0 v-20 m-108 20 v8 m108 0 v-8 m-108 8 q0 10 10 10 m88 0 q10 0 10 -10 m-98 10 h4 m62 0 h4 m0 0 h18 m23 -84 h-3"/> + <polygon points="157 10 165 6 165 14"/> + <polygon points="157 10 149 6 149 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#rank-function-type" title="rank_function_type" shape="rect">rank_function_type</a></div> + <div>         ::= 'RANK'</div> + <div>           | 'DENSE_RANK'</div> + <div>           | 'PERCENT_RANK'</div> + <div>           | 'CUME_DIST'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#hypothetical-set-function" title="hypothetical-set-function">hypothetical-set-function</a></li><li><a href="#window-function-type" title="window-function-type">window-function-type</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + ntile_function +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="213" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="34" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">NTILE</text> + <rect x="65" y="1" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="69" y="13">(</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#number-of-tiles" xlink:title="number_of_tiles" shape="rect"> + <rect x="85" y="1" width="84" height="18" class="nonterminal"/> + <text class="nonterminal" x="89" y="13">number_of_tiles</text></a><rect x="177" y="1" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="181" y="13">)</text> + <path class="line" d="m17 10 h2 m0 0 h4 m34 0 h4 m0 0 h4 m12 0 h4 m0 0 h4 m84 0 h4 m0 0 h4 m12 0 h4 m3 0 h-3"/> + <polygon points="203 10 211 6 211 14"/> + <polygon points="203 10 195 6 195 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#ntile-function" title="ntile_function" shape="rect">ntile_function</a></div> + <div>         ::= 'NTILE' '(' <a href="#number-of-tiles" title="number_of_tiles" shape="rect">number_of_tiles</a> ')'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#window-function-type" title="window-function-type">window-function-type</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + number_of_tiles +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="177" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#value-expression" xlink:title="value_expression" shape="rect"> + <rect x="43" y="1" width="90" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">value_expression</text></a><rect x="43" y="29" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="41">?</text> + <path class="line" d="m17 10 h2 m20 0 h4 m90 0 h4 m-118 0 h20 m98 0 h20 m-138 0 q10 0 10 10 m118 0 q0 -10 10 -10 m-128 10 v8 m118 0 v-8 m-118 8 q0 10 10 10 m98 0 q10 0 10 -10 m-108 10 h4 m12 0 h4 m0 0 h78 m23 -28 h-3"/> + <polygon points="167 10 175 6 175 14"/> + <polygon points="167 10 159 6 159 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#number-of-tiles" title="number_of_tiles" shape="rect">number_of_tiles</a></div> + <div>         ::= <a href="#value-expression" title="value_expression" shape="rect">value_expression</a></div> + <div>           | '?'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#ntile-function" title="ntile-function">ntile-function</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + lead_or_lag_function +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="681" height="63"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#lead-or-lag" xlink:title="lead_or_lag" shape="rect"> + <rect x="23" y="1" width="64" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">lead_or_lag</text></a><rect x="95" y="1" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="99" y="13">(</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#value-expression" xlink:title="value_expression" shape="rect"> + <rect x="115" y="1" width="90" height="18" class="nonterminal"/> + <text class="nonterminal" x="119" y="13">value_expression</text></a><rect x="233" y="22" width="8" height="18" class="terminal" rx="4"/> + <text class="terminal" x="237" y="34">,</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#value-expression" xlink:title="value_expression" shape="rect"> + <rect x="249" y="22" width="90" height="18" class="nonterminal"/> + <text class="nonterminal" x="253" y="34">value_expression</text></a><rect x="367" y="43" width="8" height="18" class="terminal" rx="4"/> + <text class="terminal" x="371" y="55">,</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#value-expression" xlink:title="value_expression" shape="rect"> + <rect x="383" y="43" width="90" height="18" class="nonterminal"/> + <text class="nonterminal" x="387" y="55">value_expression</text></a><rect x="521" y="1" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="525" y="13">)</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#null-treatment" xlink:title="null_treatment" shape="rect"> + <rect x="561" y="22" width="76" height="18" class="nonterminal"/> + <text class="nonterminal" x="565" y="34">null_treatment</text></a><path class="line" d="m17 10 h2 m0 0 h4 m64 0 h4 m0 0 h4 m12 0 h4 m0 0 h4 m90 0 h4 m20 0 h10 m0 0 h258 m-288 0 h20 m268 0 h20 m-308 0 q10 0 10 10 m288 0 q0 -10 10 -10 m-298 10 v1 m288 0 v-1 m-288 1 q0 10 10 10 m268 0 q10 0 10 -10 m-278 10 h4 m8 0 h4 m0 0 h4 m90 0 h4 m20 0 h10 m0 0 h104 m-134 0 h20 m114 0 h20 m-154 0 q10 0 10 10 m134 0 q0 -10 10 -10 m-144 10 v1 m134 0 v-1 m-134 1 q0 10 10 10 m114 0 q10 0 10 -10 m-124 10 h4 m8 0 h4 m0 0 h4 m90 0 h4 m40 -42 h4 m12 0 h4 m20 0 h10 m0 0 h74 m-104 0 h20 m84 0 h20 m-124 0 q10 0 10 10 m104 0 q0 -10 10 -10 m-114 10 v1 m104 0 v-1 m-104 1 q0 10 10 10 m84 0 q10 0 10 -10 m-94 10 h4 m76 0 h4 m23 -21 h-3"/> + <polygon points="671 10 679 6 679 14"/> + <polygon points="671 10 663 6 663 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#lead-or-lag-function" title="lead_or_lag_function" shape="rect">lead_or_lag_function</a></div> + <div>         ::= <a href="#lead-or-lag" title="lead_or_lag" shape="rect">lead_or_lag</a> '(' <a href="#value-expression" title="value_expression" shape="rect">value_expression</a> ( ',' <a href="#value-expression" title="value_expression" shape="rect">value_expression</a> ( ',' <a href="#value-expression" title="value_expression" shape="rect">value_expression</a> )? )? ')' <a href="#null-treatment" title="null_treatment" shape="rect">null_treatment</a>?</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#window-function-type" title="window-function-type">window-function-type</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + lead_or_lag +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="117" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="43" y="1" width="30" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="13">LEAD</text> + <rect x="43" y="29" width="26" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="41">LAG</text> + <path class="line" d="m17 10 h2 m20 0 h4 m30 0 h4 m-58 0 h20 m38 0 h20 m-78 0 q10 0 10 10 m58 0 q0 -10 10 -10 m-68 10 v8 m58 0 v-8 m-58 8 q0 10 10 10 m38 0 q10 0 10 -10 m-48 10 h4 m26 0 h4 m0 0 h4 m23 -28 h-3"/> + <polygon points="107 10 115 6 115 14"/> + <polygon points="107 10 99 6 99 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#lead-or-lag" title="lead_or_lag" shape="rect">lead_or_lag</a></div> + <div>         ::= 'LEAD'</div> + <div>           | 'LAG'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#lead-or-lag-function" title="lead-or-lag-function">lead-or-lag-function</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + null_treatment +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="181" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="43" y="1" width="48" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="13">RESPECT</text> + <rect x="43" y="29" width="44" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="41">IGNORE</text> + <rect x="119" y="1" width="38" height="18" class="terminal" rx="4"/> + <text class="terminal" x="123" y="13">NULLS</text> + <path class="line" d="m17 10 h2 m20 0 h4 m48 0 h4 m-76 0 h20 m56 0 h20 m-96 0 q10 0 10 10 m76 0 q0 -10 10 -10 m-86 10 v8 m76 0 v-8 m-76 8 q0 10 10 10 m56 0 q10 0 10 -10 m-66 10 h4 m44 0 h4 m0 0 h4 m20 -28 h4 m38 0 h4 m3 0 h-3"/> + <polygon points="171 10 179 6 179 14"/> + <polygon points="171 10 163 6 163 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#null-treatment" title="null_treatment" shape="rect">null_treatment</a></div> + <div>         ::= ( 'RESPECT' | 'IGNORE' ) 'NULLS'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#first-or-last-value-function" title="first-or-last-value-function">first-or-last-value-function</a></li><li><a href="#lead-or-lag-function" title="lead-or-lag-function">lead-or-lag-function</a></li><li><a href="#nth-value-function" title="nth-value-function">nth-value-function</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + first_or_last_value_function +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="399" height="42"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#first-or-last-value" xlink:title="first_or_last_value" shape="rect"> + <rect x="23" y="1" width="90" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">first_or_last_value</text></a><rect x="121" y="1" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="125" y="13">(</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#value-expression" xlink:title="value_expression" shape="rect"> + <rect x="141" y="1" width="90" height="18" class="nonterminal"/> + <text class="nonterminal" x="145" y="13">value_expression</text></a><rect x="239" y="1" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="243" y="13">)</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#null-treatment" xlink:title="null_treatment" shape="rect"> + <rect x="279" y="22" width="76" height="18" class="nonterminal"/> + <text class="nonterminal" x="283" y="34">null_treatment</text></a><path class="line" d="m17 10 h2 m0 0 h4 m90 0 h4 m0 0 h4 m12 0 h4 m0 0 h4 m90 0 h4 m0 0 h4 m12 0 h4 m20 0 h10 m0 0 h74 m-104 0 h20 m84 0 h20 m-124 0 q10 0 10 10 m104 0 q0 -10 10 -10 m-114 10 v1 m104 0 v-1 m-104 1 q0 10 10 10 m84 0 q10 0 10 -10 m-94 10 h4 m76 0 h4 m23 -21 h-3"/> + <polygon points="389 10 397 6 397 14"/> + <polygon points="389 10 381 6 381 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#first-or-last-value-function" title="first_or_last_value_function" shape="rect">first_or_last_value_function</a></div> + <div>         ::= <a href="#first-or-last-value" title="first_or_last_value" shape="rect">first_or_last_value</a> '(' <a href="#value-expression" title="value_expression" shape="rect">value_expression</a> ')' <a href="#null-treatment" title="null_treatment" shape="rect">null_treatment</a>?</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#window-function-type" title="window-function-type">window-function-type</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + first_or_last_value +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="155" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="43" y="1" width="68" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="13">FIRST_VALUE</text> + <rect x="43" y="29" width="66" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="41">LAST_VALUE</text> + <path class="line" d="m17 10 h2 m20 0 h4 m68 0 h4 m-96 0 h20 m76 0 h20 m-116 0 q10 0 10 10 m96 0 q0 -10 10 -10 m-106 10 v8 m96 0 v-8 m-96 8 q0 10 10 10 m76 0 q10 0 10 -10 m-86 10 h4 m66 0 h4 m0 0 h2 m23 -28 h-3"/> + <polygon points="145 10 153 6 153 14"/> + <polygon points="145 10 137 6 137 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#first-or-last-value" title="first_or_last_value" shape="rect">first_or_last_value</a></div> + <div>         ::= 'FIRST_VALUE'</div> + <div>           | 'LAST_VALUE'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#first-or-last-value-function" title="first-or-last-value-function">first-or-last-value-function</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + nth_value_function +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="579" height="42"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="62" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">NTH_VALUE</text> + <rect x="93" y="1" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="97" y="13">(</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#value-expression" xlink:title="value_expression" shape="rect"> + <rect x="113" y="1" width="90" height="18" class="nonterminal"/> + <text class="nonterminal" x="117" y="13">value_expression</text></a><rect x="211" y="1" width="8" height="18" class="terminal" rx="4"/> + <text class="terminal" x="215" y="13">,</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#nth-row" xlink:title="nth_row" shape="rect"> + <rect x="227" y="1" width="48" height="18" class="nonterminal"/> + <text class="nonterminal" x="231" y="13">nth_row</text></a><rect x="283" y="1" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="287" y="13">)</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#from-first-or-last" xlink:title="from_first_or_last" shape="rect"> + <rect x="323" y="22" width="88" height="18" class="nonterminal"/> + <text class="nonterminal" x="327" y="34">from_first_or_last</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#null-treatment" xlink:title="null_treatment" shape="rect"> + <rect x="459" y="22" width="76" height="18" class="nonterminal"/> + <text class="nonterminal" x="463" y="34">null_treatment</text></a><path class="line" d="m17 10 h2 m0 0 h4 m62 0 h4 m0 0 h4 m12 0 h4 m0 0 h4 m90 0 h4 m0 0 h4 m8 0 h4 m0 0 h4 m48 0 h4 m0 0 h4 m12 0 h4 m20 0 h10 m0 0 h86 m-116 0 h20 m96 0 h20 m-136 0 q10 0 10 10 m116 0 q0 -10 10 -10 m-126 10 v1 m116 0 v-1 m-116 1 q0 10 10 10 m96 0 q10 0 10 -10 m-106 10 h4 m88 0 h4 m40 -21 h10 m0 0 h74 m-104 0 h20 m84 0 h20 m-124 0 q10 0 10 10 m104 0 q0 -10 10 -10 m-114 10 v1 m104 0 v-1 m-104 1 q0 10 10 10 m84 0 q10 0 10 -10 m-94 10 h4 m76 0 h4 m23 -21 h-3"/> + <polygon points="569 10 577 6 577 14"/> + <polygon points="569 10 561 6 561 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#nth-value-function" title="nth_value_function" shape="rect">nth_value_function</a></div> + <div>         ::= 'NTH_VALUE' '(' <a href="#value-expression" title="value_expression" shape="rect">value_expression</a> ',' <a href="#nth-row" title="nth_row" shape="rect">nth_row</a> ')' <a href="#from-first-or-last" title="from_first_or_last" shape="rect">from_first_or_last</a>? <a href="#null-treatment" title="null_treatment" shape="rect">null_treatment</a>?</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#window-function-type" title="window-function-type">window-function-type</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + nth_row +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="215" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#simple-value-specification" xlink:title="simple_value_specification" shape="rect"> + <rect x="43" y="1" width="128" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">simple_value_specification</text></a><rect x="43" y="29" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="41">?</text> + <path class="line" d="m17 10 h2 m20 0 h4 m128 0 h4 m-156 0 h20 m136 0 h20 m-176 0 q10 0 10 10 m156 0 q0 -10 10 -10 m-166 10 v8 m156 0 v-8 m-156 8 q0 10 10 10 m136 0 q10 0 10 -10 m-146 10 h4 m12 0 h4 m0 0 h116 m23 -28 h-3"/> + <polygon points="205 10 213 6 213 14"/> + <polygon points="205 10 197 6 197 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#nth-row" title="nth_row" shape="rect">nth_row</a>  ::= <a href="#simple-value-specification" title="simple_value_specification" shape="rect">simple_value_specification</a></div> + <div>           | '?'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#nth-value-function" title="nth-value-function">nth-value-function</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + from_first_or_last +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="165" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="36" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">FROM</text> + <rect x="87" y="1" width="34" height="18" class="terminal" rx="4"/> + <text class="terminal" x="91" y="13">FIRST</text> + <rect x="87" y="29" width="30" height="18" class="terminal" rx="4"/> + <text class="terminal" x="91" y="41">LAST</text> + <path class="line" d="m17 10 h2 m0 0 h4 m36 0 h4 m20 0 h4 m34 0 h4 m-62 0 h20 m42 0 h20 m-82 0 q10 0 10 10 m62 0 q0 -10 10 -10 m-72 10 v8 m62 0 v-8 m-62 8 q0 10 10 10 m42 0 q10 0 10 -10 m-52 10 h4 m30 0 h4 m0 0 h4 m23 -28 h-3"/> + <polygon points="155 10 163 6 163 14"/> + <polygon points="155 10 147 6 147 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#from-first-or-last" title="from_first_or_last" shape="rect">from_first_or_last</a></div> + <div>         ::= 'FROM' ( 'FIRST' | 'LAST' )</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#nth-value-function" title="nth-value-function">nth-value-function</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + window_name_or_specification +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="223" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#in-line-window-specification" xlink:title="in_line_window_specification" shape="rect"> + <rect x="43" y="1" width="136" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">in_line_window_specification</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#identifier" xlink:title="identifier" shape="rect"> + <rect x="43" y="29" width="46" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">identifier</text></a><path class="line" d="m17 10 h2 m20 0 h4 m136 0 h4 m-164 0 h20 m144 0 h20 m-184 0 q10 0 10 10 m164 0 q0 -10 10 -10 m-174 10 v8 m164 0 v-8 m-164 8 q0 10 10 10 m144 0 q10 0 10 -10 m-154 10 h4 m46 0 h4 m0 0 h90 m23 -28 h-3"/> + <polygon points="213 10 221 6 221 14"/> + <polygon points="213 10 205 6 205 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#window-name-or-specification" title="window_name_or_specification" shape="rect">window_name_or_specification</a></div> + <div>         ::= <a href="#in-line-window-specification" title="in_line_window_specification" shape="rect">in_line_window_specification</a></div> + <div>           | <a href="#identifier" title="identifier" shape="rect">identifier</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#window-function" title="window-function">window-function</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + in_line_window_specification +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="149" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#window-specification" xlink:title="window_specification" shape="rect"> + <rect x="23" y="1" width="102" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">window_specification</text></a><path class="line" d="m17 10 h2 m0 0 h4 m102 0 h4 m3 0 h-3"/> + <polygon points="139 10 147 6 147 14"/> + <polygon points="139 10 131 6 131 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#in-line-window-specification" title="in_line_window_specification" shape="rect">in_line_window_specification</a></div> + <div>         ::= <a href="#window-specification" title="window_specification" shape="rect">window_specification</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#window-name-or-specification" title="window-name-or-specification">window-name-or-specification</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + case_expression +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="179" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#case-abbreviation" xlink:title="case_abbreviation" shape="rect"> + <rect x="43" y="1" width="92" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">case_abbreviation</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#case-specification" xlink:title="case_specification" shape="rect"> + <rect x="43" y="29" width="90" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">case_specification</text></a><path class="line" d="m17 10 h2 m20 0 h4 m92 0 h4 m-120 0 h20 m100 0 h20 m-140 0 q10 0 10 10 m120 0 q0 -10 10 -10 m-130 10 v8 m120 0 v-8 m-120 8 q0 10 10 10 m100 0 q10 0 10 -10 m-110 10 h4 m90 0 h4 m0 0 h2 m23 -28 h-3"/> + <polygon points="169 10 177 6 177 14"/> + <polygon points="169 10 161 6 161 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#case-expression" title="case_expression" shape="rect">case_expression</a></div> + <div>         ::= <a href="#case-abbreviation" title="case_abbreviation" shape="rect">case_abbreviation</a></div> + <div>           | <a href="#case-specification" title="case_specification" shape="rect">case_specification</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#nonparenthesized-value-expression-primary" title="nonparenthesized-value-expression-primary">nonparenthesized-value-expression-primary</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + case_abbreviation +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="435" height="63"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="43" y="1" width="40" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="13">NULLIF</text> + <rect x="91" y="1" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="95" y="13">(</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#value-expression" xlink:title="value_expression" shape="rect"> + <rect x="111" y="1" width="90" height="18" class="nonterminal"/> + <text class="nonterminal" x="115" y="13">value_expression</text></a><rect x="209" y="1" width="8" height="18" class="terminal" rx="4"/> + <text class="terminal" x="213" y="13">,</text> + <rect x="43" y="43" width="56" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="55">COALESCE</text> + <rect x="107" y="43" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="111" y="55">(</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#value-expression" xlink:title="value_expression" shape="rect"> + <rect x="147" y="43" width="90" height="18" class="nonterminal"/> + <text class="nonterminal" x="151" y="55">value_expression</text></a><rect x="245" y="43" width="8" height="18" class="terminal" rx="4"/> + <text class="terminal" x="249" y="55">,</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#value-expression" xlink:title="value_expression" shape="rect"> + <rect x="301" y="1" width="90" height="18" class="nonterminal"/> + <text class="nonterminal" x="305" y="13">value_expression</text></a><rect x="399" y="1" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="403" y="13">)</text> + <path class="line" d="m17 10 h2 m20 0 h4 m40 0 h4 m0 0 h4 m12 0 h4 m0 0 h4 m90 0 h4 m0 0 h4 m8 0 h4 m0 0 h56 m-258 0 h20 m238 0 h20 m-278 0 q10 0 10 10 m258 0 q0 -10 10 -10 m-268 10 v22 m258 0 v-22 m-258 22 q0 10 10 10 m238 0 q10 0 10 -10 m-248 10 h4 m56 0 h4 m0 0 h4 m12 0 h4 m20 0 h4 m90 0 h4 m0 0 h4 m8 0 h4 m-134 0 l20 0 m-1 0 q-9 0 -9 -10 l0 -1 q0 -10 10 -10 m114 21 l20 0 m-20 0 q10 0 10 -10 l0 -1 q0 -10 -10 -10 m-114 0 h10 m0 0 h104 m40 -21 h4 m90 0 h4 m0 0 h4 m12 0 h4 m3 0 h-3"/> + <polygon points="425 10 433 6 433 14"/> + <polygon points="425 10 417 6 417 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#case-abbreviation" title="case_abbreviation" shape="rect">case_abbreviation</a></div> + <div>         ::= ( 'NULLIF' '(' <a href="#value-expression" title="value_expression" shape="rect">value_expression</a> ',' | 'COALESCE' '(' ( <a href="#value-expression" title="value_expression" shape="rect">value_expression</a> ',' )+ ) <a href="#value-expression" title="value_expression" shape="rect">value_expression</a> ')'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#case-expression" title="case-expression">case-expression</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + case_specification +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="167" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#simple-case" xlink:title="simple_case" shape="rect"> + <rect x="43" y="1" width="66" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">simple_case</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#searched-case" xlink:title="searched_case" shape="rect"> + <rect x="43" y="29" width="80" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">searched_case</text></a><path class="line" d="m17 10 h2 m20 0 h4 m66 0 h4 m0 0 h14 m-108 0 h20 m88 0 h20 m-128 0 q10 0 10 10 m108 0 q0 -10 10 -10 m-118 10 v8 m108 0 v-8 m-108 8 q0 10 10 10 m88 0 q10 0 10 -10 m-98 10 h4 m80 0 h4 m23 -28 h-3"/> + <polygon points="157 10 165 6 165 14"/> + <polygon points="157 10 149 6 149 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#case-specification" title="case_specification" shape="rect">case_specification</a></div> + <div>         ::= <a href="#simple-case" title="simple_case" shape="rect">simple_case</a></div> + <div>           | <a href="#searched-case" title="searched_case" shape="rect">searched_case</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#case-expression" title="case-expression">case-expression</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + simple_case +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="461" height="54"> + <polygon points="9 22 1 18 1 26"/> + <polygon points="17 22 9 18 9 26"/> + <rect x="23" y="13" width="32" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="25">CASE</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#case-operand" xlink:title="case_operand" shape="rect"> + <rect x="63" y="13" width="76" height="18" class="nonterminal"/> + <text class="nonterminal" x="67" y="25">case_operand</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#simple-when-clause" xlink:title="simple_when_clause" shape="rect"> + <rect x="167" y="13" width="106" height="18" class="nonterminal"/> + <text class="nonterminal" x="171" y="25">simple_when_clause</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#else-clause" xlink:title="else_clause" shape="rect"> + <rect x="321" y="34" width="62" height="18" class="nonterminal"/> + <text class="nonterminal" x="325" y="46">else_clause</text></a><rect x="411" y="13" width="26" height="18" class="terminal" rx="4"/> + <text class="terminal" x="415" y="25">END</text> + <path class="line" d="m17 22 h2 m0 0 h4 m32 0 h4 m0 0 h4 m76 0 h4 m20 0 h4 m106 0 h4 m-134 0 l20 0 m-1 0 q-9 0 -9 -10 l0 -1 q0 -10 10 -10 m114 21 l20 0 m-20 0 q10 0 10 -10 l0 -1 q0 -10 -10 -10 m-114 0 h10 m0 0 h104 m40 21 h10 m0 0 h60 m-90 0 h20 m70 0 h20 m-110 0 q10 0 10 10 m90 0 q0 -10 10 -10 m-100 10 v1 m90 0 v-1 m-90 1 q0 10 10 10 m70 0 q10 0 10 -10 m-80 10 h4 m62 0 h4 m20 -21 h4 m26 0 h4 m3 0 h-3"/> + <polygon points="451 22 459 18 459 26"/> + <polygon points="451 22 443 18 443 26"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#simple-case" title="simple_case" shape="rect">simple_case</a></div> + <div>         ::= 'CASE' <a href="#case-operand" title="case_operand" shape="rect">case_operand</a> <a href="#simple-when-clause" title="simple_when_clause" shape="rect">simple_when_clause</a>+ <a href="#else-clause" title="else_clause" shape="rect">else_clause</a>? 'END'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#case-specification" title="case-specification">case-specification</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + searched_case +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="389" height="54"> + <polygon points="9 22 1 18 1 26"/> + <polygon points="17 22 9 18 9 26"/> + <rect x="23" y="13" width="32" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="25">CASE</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#searched-when-clause" xlink:title="searched_when_clause" shape="rect"> + <rect x="83" y="13" width="118" height="18" class="nonterminal"/> + <text class="nonterminal" x="87" y="25">searched_when_clause</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#else-clause" xlink:title="else_clause" shape="rect"> + <rect x="249" y="34" width="62" height="18" class="nonterminal"/> + <text class="nonterminal" x="253" y="46">else_clause</text></a><rect x="339" y="13" width="26" height="18" class="terminal" rx="4"/> + <text class="terminal" x="343" y="25">END</text> + <path class="line" d="m17 22 h2 m0 0 h4 m32 0 h4 m20 0 h4 m118 0 h4 m-146 0 l20 0 m-1 0 q-9 0 -9 -10 l0 -1 q0 -10 10 -10 m126 21 l20 0 m-20 0 q10 0 10 -10 l0 -1 q0 -10 -10 -10 m-126 0 h10 m0 0 h116 m40 21 h10 m0 0 h60 m-90 0 h20 m70 0 h20 m-110 0 q10 0 10 10 m90 0 q0 -10 10 -10 m-100 10 v1 m90 0 v-1 m-90 1 q0 10 10 10 m70 0 q10 0 10 -10 m-80 10 h4 m62 0 h4 m20 -21 h4 m26 0 h4 m3 0 h-3"/> + <polygon points="379 22 387 18 387 26"/> + <polygon points="379 22 371 18 371 26"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#searched-case" title="searched_case" shape="rect">searched_case</a></div> + <div>         ::= 'CASE' <a href="#searched-when-clause" title="searched_when_clause" shape="rect">searched_when_clause</a>+ <a href="#else-clause" title="else_clause" shape="rect">else_clause</a>? 'END'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#case-specification" title="case-specification">case-specification</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + simple_when_clause +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="273" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="38" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">WHEN</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#when-operand-list" xlink:title="when_operand_list" shape="rect"> + <rect x="69" y="1" width="98" height="18" class="nonterminal"/> + <text class="nonterminal" x="73" y="13">when_operand_list</text></a><rect x="175" y="1" width="32" height="18" class="terminal" rx="4"/> + <text class="terminal" x="179" y="13">THEN</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#result" xlink:title="result" shape="rect"> + <rect x="215" y="1" width="34" height="18" class="nonterminal"/> + <text class="nonterminal" x="219" y="13">result</text></a><path class="line" d="m17 10 h2 m0 0 h4 m38 0 h4 m0 0 h4 m98 0 h4 m0 0 h4 m32 0 h4 m0 0 h4 m34 0 h4 m3 0 h-3"/> + <polygon points="263 10 271 6 271 14"/> + <polygon points="263 10 255 6 255 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#simple-when-clause" title="simple_when_clause" shape="rect">simple_when_clause</a></div> + <div>         ::= 'WHEN' <a href="#when-operand-list" title="when_operand_list" shape="rect">when_operand_list</a> 'THEN' <a href="#result" title="result" shape="rect">result</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#simple-case" title="simple-case">simple-case</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + searched_when_clause +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="261" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="38" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">WHEN</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#search-condition" xlink:title="search_condition" shape="rect"> + <rect x="69" y="1" width="86" height="18" class="nonterminal"/> + <text class="nonterminal" x="73" y="13">search_condition</text></a><rect x="163" y="1" width="32" height="18" class="terminal" rx="4"/> + <text class="terminal" x="167" y="13">THEN</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#result" xlink:title="result" shape="rect"> + <rect x="203" y="1" width="34" height="18" class="nonterminal"/> + <text class="nonterminal" x="207" y="13">result</text></a><path class="line" d="m17 10 h2 m0 0 h4 m38 0 h4 m0 0 h4 m86 0 h4 m0 0 h4 m32 0 h4 m0 0 h4 m34 0 h4 m3 0 h-3"/> + <polygon points="251 10 259 6 259 14"/> + <polygon points="251 10 243 6 243 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#searched-when-clause" title="searched_when_clause" shape="rect">searched_when_clause</a></div> + <div>         ::= 'WHEN' <a href="#search-condition" title="search_condition" shape="rect">search_condition</a> 'THEN' <a href="#result" title="result" shape="rect">result</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#searched-case" title="searched-case">searched-case</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + else_clause +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="117" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="28" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">ELSE</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#result" xlink:title="result" shape="rect"> + <rect x="59" y="1" width="34" height="18" class="nonterminal"/> + <text class="nonterminal" x="63" y="13">result</text></a><path class="line" d="m17 10 h2 m0 0 h4 m28 0 h4 m0 0 h4 m34 0 h4 m3 0 h-3"/> + <polygon points="107 10 115 6 115 14"/> + <polygon points="107 10 99 6 99 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#else-clause" title="else_clause" shape="rect">else_clause</a></div> + <div>         ::= 'ELSE' <a href="#result" title="result" shape="rect">result</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#searched-case" title="searched-case">searched-case</a></li><li><a href="#simple-case" title="simple-case">simple-case</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + case_operand +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="219" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#row-value-predicand" xlink:title="row_value_predicand" shape="rect"> + <rect x="43" y="1" width="108" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">row_value_predicand</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#overlaps-predicate-part-1" xlink:title="overlaps_predicate_part_1" shape="rect"> + <rect x="43" y="29" width="132" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">overlaps_predicate_part_1</text></a><path class="line" d="m17 10 h2 m20 0 h4 m108 0 h4 m0 0 h24 m-160 0 h20 m140 0 h20 m-180 0 q10 0 10 10 m160 0 q0 -10 10 -10 m-170 10 v8 m160 0 v-8 m-160 8 q0 10 10 10 m140 0 q10 0 10 -10 m-150 10 h4 m132 0 h4 m23 -28 h-3"/> + <polygon points="209 10 217 6 217 14"/> + <polygon points="209 10 201 6 201 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#case-operand" title="case_operand" shape="rect">case_operand</a></div> + <div>         ::= <a href="#row-value-predicand" title="row_value_predicand" shape="rect">row_value_predicand</a></div> + <div>           | <a href="#overlaps-predicate-part-1" title="overlaps_predicate_part_1" shape="rect">overlaps_predicate_part_1</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#simple-case" title="simple-case">simple-case</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + when_operand_list +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="167" height="49"> + <polygon points="9 38 1 34 1 42"/> + <polygon points="17 38 9 34 9 42"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#when-operand" xlink:title="when_operand" shape="rect"> + <rect x="43" y="29" width="80" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">when_operand</text></a><rect x="43" y="1" width="8" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="13">,</text> + <path class="line" d="m17 38 h2 m20 0 h4 m80 0 h4 m-108 0 l20 0 m-1 0 q-9 0 -9 -10 l0 -8 q0 -10 10 -10 m88 28 l20 0 m-20 0 q10 0 10 -10 l0 -8 q0 -10 -10 -10 m-88 0 h4 m8 0 h4 m0 0 h72 m23 28 h-3"/> + <polygon points="157 38 165 34 165 42"/> + <polygon points="157 38 149 34 149 42"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#when-operand-list" title="when_operand_list" shape="rect">when_operand_list</a></div> + <div>         ::= <a href="#when-operand" title="when_operand" shape="rect">when_operand</a> ( ',' <a href="#when-operand" title="when_operand" shape="rect">when_operand</a> )*</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#simple-when-clause" title="simple-when-clause">simple-when-clause</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + when_operand +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="283" height="497"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#row-value-predicand" xlink:title="row_value_predicand" shape="rect"> + <rect x="43" y="1" width="108" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">row_value_predicand</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#comparison-predicate-part-2" xlink:title="comparison_predicate_part_2" shape="rect"> + <rect x="43" y="29" width="146" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">comparison_predicate_part_2</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#between-predicate-part-2" xlink:title="between_predicate_part_2" shape="rect"> + <rect x="43" y="57" width="134" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="69">between_predicate_part_2</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#in-predicate-part-2" xlink:title="in_predicate_part_2" shape="rect"> + <rect x="43" y="85" width="100" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="97">in_predicate_part_2</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#character-like-predicate-part-2" xlink:title="character_like_predicate_part_2" shape="rect"> + <rect x="43" y="113" width="154" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="125">character_like_predicate_part_2</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#octet-like-predicate-part-2" xlink:title="octet_like_predicate_part_2" shape="rect"> + <rect x="43" y="141" width="136" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="153">octet_like_predicate_part_2</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#similar-predicate-part-2" xlink:title="similar_predicate_part_2" shape="rect"> + <rect x="43" y="169" width="120" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="181">similar_predicate_part_2</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#regex-like-predicate-part-2" xlink:title="regex_like_predicate_part_2" shape="rect"> + <rect x="43" y="197" width="140" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="209">regex_like_predicate_part_2</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#null-predicate-part-2" xlink:title="null_predicate_part_2" shape="rect"> + <rect x="43" y="225" width="108" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="237">null_predicate_part_2</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#quantified-comparison-predicate-part-2" xlink:title="quantified_comparison_predicate_part_2" shape="rect"> + <rect x="43" y="253" width="196" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="265">quantified_comparison_predicate_part_2</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#normalized-predicate-part-2" xlink:title="normalized_predicate_part_2" shape="rect"> + <rect x="43" y="281" width="144" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="293">normalized_predicate_part_2</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#match-predicate-part-2" xlink:title="match_predicate_part_2" shape="rect"> + <rect x="43" y="309" width="122" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="321">match_predicate_part_2</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#overlaps-predicate-part-2" xlink:title="overlaps_predicate_part_2" shape="rect"> + <rect x="43" y="337" width="132" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="349">overlaps_predicate_part_2</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#distinct-predicate-part-2" xlink:title="distinct_predicate_part_2" shape="rect"> + <rect x="43" y="365" width="124" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="377">distinct_predicate_part_2</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#member-predicate-part-2" xlink:title="member_predicate_part_2" shape="rect"> + <rect x="43" y="393" width="134" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="405">member_predicate_part_2</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#submultiset-predicate-part-2" xlink:title="submultiset_predicate_part_2" shape="rect"> + <rect x="43" y="421" width="146" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="433">submultiset_predicate_part_2</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#set-predicate-part-2" xlink:title="set_predicate_part_2" shape="rect"> + <rect x="43" y="449" width="108" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="461">set_predicate_part_2</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#type-predicate-part-2" xlink:title="type_predicate_part_2" shape="rect"> + <rect x="43" y="477" width="114" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="489">type_predicate_part_2</text></a><path class="line" d="m17 10 h2 m20 0 h4 m108 0 h4 m0 0 h88 m-224 0 h20 m204 0 h20 m-244 0 q10 0 10 10 m224 0 q0 -10 10 -10 m-234 10 v8 m224 0 v-8 m-224 8 q0 10 10 10 m204 0 q10 0 10 -10 m-214 10 h4 m146 0 h4 m0 0 h50 m-214 -10 v20 m224 0 v-20 m-224 20 v8 m224 0 v-8 m-224 8 q0 10 10 10 m204 0 q10 0 10 -10 m-214 10 h4 m134 0 h4 m0 0 h62 m-214 -10 v20 m224 0 v-20 m-224 20 v8 m224 0 v-8 m-224 8 q0 10 10 10 m204 0 q10 0 10 -10 m-214 10 h4 m100 0 h4 m0 0 h96 m-214 -10 v20 m224 0 v-20 m-224 20 v8 m224 0 v-8 m-224 8 q0 10 10 10 m204 0 q10 0 10 -10 m-214 10 h4 m154 0 h4 m0 0 h42 m-214 -10 v20 m224 0 v-20 m-224 20 v8 m224 0 v-8 m-224 8 q0 10 10 10 m204 0 q10 0 10 -10 m-214 10 h4 m136 0 h4 m0 0 h60 m-214 -10 v20 m224 0 v-20 m-224 20 v8 m224 0 v-8 m-224 8 q0 10 10 10 m204 0 q10 0 10 -10 m-214 10 h4 m120 0 h4 m0 0 h76 m-214 -10 v20 m224 0 v-20 m-224 20 v8 m224 0 v-8 m-224 8 q0 10 10 10 m204 0 q10 0 10 -10 m-214 10 h4 m140 0 h4 m0 0 h56 m-214 -10 v20 m224 0 v-20 m-224 20 v8 m224 0 v-8 m-224 8 q0 10 10 10 m204 0 q10 0 10 -10 m-214 10 h4 m108 0 h4 m0 0 h88 m-214 -10 v20 m224 0 v-20 m-224 20 v8 m224 0 v-8 m-224 8 q0 10 10 10 m204 0 q10 0 10 -10 m-214 10 h4 m196 0 h4 m-214 -10 v20 m224 0 v-20 m-224 20 v8 m224 0 v-8 m-224 8 q0 10 10 10 m204 0 q10 0 10 -10 m-214 10 h4 m144 0 h4 m0 0 h52 m-214 -10 v20 m224 0 v-20 m-224 20 v8 m224 0 v-8 m-224 8 q0 10 10 10 m204 0 q10 0 10 -10 m-214 10 h4 m122 0 h4 m0 0 h74 m-214 -10 v20 m224 0 v-20 m-224 20 v8 m224 0 v-8 m-224 8 q0 10 10 10 m204 0 q10 0 10 -10 m-214 10 h4 m132 0 h4 m0 0 h64 m-214 -10 v20 m224 0 v-20 m-224 20 v8 m224 0 v-8 m-224 8 q0 10 10 10 m204 0 q10 0 10 -10 m-214 10 h4 m124 0 h4 m0 0 h72 m-214 -10 v20 m224 0 v-20 m-224 20 v8 m224 0 v-8 m-224 8 q0 10 10 10 m204 0 q10 0 10 -10 m-214 10 h4 m134 0 h4 m0 0 h62 m-214 -10 v20 m224 0 v-20 m-224 20 v8 m224 0 v-8 m-224 8 q0 10 10 10 m204 0 q10 0 10 -10 m-214 10 h4 m146 0 h4 m0 0 h50 m-214 -10 v20 m224 0 v-20 m-224 20 v8 m224 0 v-8 m-224 8 q0 10 10 10 m204 0 q10 0 10 -10 m-214 10 h4 m108 0 h4 m0 0 h88 m-214 -10 v20 m224 0 v-20 m-224 20 v8 m224 0 v-8 m-224 8 q0 10 10 10 m204 0 q10 0 10 -10 m-214 10 h4 m114 0 h4 m0 0 h82 m23 -476 h-3"/> + <polygon points="273 10 281 6 281 14"/> + <polygon points="273 10 265 6 265 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#when-operand" title="when_operand" shape="rect">when_operand</a></div> + <div>         ::= <a href="#row-value-predicand" title="row_value_predicand" shape="rect">row_value_predicand</a></div> + <div>           | <a href="#comparison-predicate-part-2" title="comparison_predicate_part_2" shape="rect">comparison_predicate_part_2</a></div> + <div>           | <a href="#between-predicate-part-2" title="between_predicate_part_2" shape="rect">between_predicate_part_2</a></div> + <div>           | <a href="#in-predicate-part-2" title="in_predicate_part_2" shape="rect">in_predicate_part_2</a></div> + <div>           | <a href="#character-like-predicate-part-2" title="character_like_predicate_part_2" shape="rect">character_like_predicate_part_2</a></div> + <div>           | <a href="#octet-like-predicate-part-2" title="octet_like_predicate_part_2" shape="rect">octet_like_predicate_part_2</a></div> + <div>           | <a href="#similar-predicate-part-2" title="similar_predicate_part_2" shape="rect">similar_predicate_part_2</a></div> + <div>           | <a href="#regex-like-predicate-part-2" title="regex_like_predicate_part_2" shape="rect">regex_like_predicate_part_2</a></div> + <div>           | <a href="#null-predicate-part-2" title="null_predicate_part_2" shape="rect">null_predicate_part_2</a></div> + <div>           | <a href="#quantified-comparison-predicate-part-2" title="quantified_comparison_predicate_part_2" shape="rect">quantified_comparison_predicate_part_2</a></div> + <div>           | <a href="#normalized-predicate-part-2" title="normalized_predicate_part_2" shape="rect">normalized_predicate_part_2</a></div> + <div>           | <a href="#match-predicate-part-2" title="match_predicate_part_2" shape="rect">match_predicate_part_2</a></div> + <div>           | <a href="#overlaps-predicate-part-2" title="overlaps_predicate_part_2" shape="rect">overlaps_predicate_part_2</a></div> + <div>           | <a href="#distinct-predicate-part-2" title="distinct_predicate_part_2" shape="rect">distinct_predicate_part_2</a></div> + <div>           | <a href="#member-predicate-part-2" title="member_predicate_part_2" shape="rect">member_predicate_part_2</a></div> + <div>           | <a href="#submultiset-predicate-part-2" title="submultiset_predicate_part_2" shape="rect">submultiset_predicate_part_2</a></div> + <div>           | <a href="#set-predicate-part-2" title="set_predicate_part_2" shape="rect">set_predicate_part_2</a></div> + <div>           | <a href="#type-predicate-part-2" title="type_predicate_part_2" shape="rect">type_predicate_part_2</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#when-operand-list" title="when-operand-list">when-operand-list</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + result +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="177" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#value-expression" xlink:title="value_expression" shape="rect"> + <rect x="43" y="1" width="90" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">value_expression</text></a><rect x="43" y="29" width="32" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="41">NULL</text> + <path class="line" d="m17 10 h2 m20 0 h4 m90 0 h4 m-118 0 h20 m98 0 h20 m-138 0 q10 0 10 10 m118 0 q0 -10 10 -10 m-128 10 v8 m118 0 v-8 m-118 8 q0 10 10 10 m98 0 q10 0 10 -10 m-108 10 h4 m32 0 h4 m0 0 h58 m23 -28 h-3"/> + <polygon points="167 10 175 6 175 14"/> + <polygon points="167 10 159 6 159 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#result" title="result" shape="rect">result</a>   ::= <a href="#value-expression" title="value_expression" shape="rect">value_expression</a></div> + <div>           | 'NULL'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#else-clause" title="else-clause">else-clause</a></li><li><a href="#searched-when-clause" title="searched-when-clause">searched-when-clause</a></li><li><a href="#simple-when-clause" title="simple-when-clause">simple-when-clause</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + cast_specification +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="335" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="43" y="1" width="32" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="13">CAST</text> + <rect x="83" y="1" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="87" y="13">(</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#cast-operand" xlink:title="cast_operand" shape="rect"> + <rect x="103" y="1" width="72" height="18" class="nonterminal"/> + <text class="nonterminal" x="107" y="13">cast_operand</text></a><rect x="183" y="1" width="20" height="18" class="terminal" rx="4"/> + <text class="terminal" x="187" y="13">AS</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#cast-target" xlink:title="cast_target" shape="rect"> + <rect x="211" y="1" width="60" height="18" class="nonterminal"/> + <text class="nonterminal" x="215" y="13">cast_target</text></a><rect x="279" y="1" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="283" y="13">)</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#try-cast" xlink:title="try_cast" shape="rect"> + <rect x="43" y="29" width="44" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">try_cast</text></a><path class="line" d="m17 10 h2 m20 0 h4 m32 0 h4 m0 0 h4 m12 0 h4 m0 0 h4 m72 0 h4 m0 0 h4 m20 0 h4 m0 0 h4 m60 0 h4 m0 0 h4 m12 0 h4 m-276 0 h20 m256 0 h20 m-296 0 q10 0 10 10 m276 0 q0 -10 10 -10 m-286 10 v8 m276 0 v-8 m-276 8 q0 10 10 10 m256 0 q10 0 10 -10 m-266 10 h4 m44 0 h4 m0 0 h204 m23 -28 h-3"/> + <polygon points="325 10 333 6 333 14"/> + <polygon points="325 10 317 6 317 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#cast-specification" title="cast_specification" shape="rect">cast_specification</a></div> + <div>         ::= 'CAST' '(' <a href="#cast-operand" title="cast_operand" shape="rect">cast_operand</a> 'AS' <a href="#cast-target" title="cast_target" shape="rect">cast_target</a> ')'</div> + <div>           | <a href="#try-cast" title="try_cast" shape="rect">try_cast</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#nonparenthesized-value-expression-primary" title="nonparenthesized-value-expression-primary">nonparenthesized-value-expression-primary</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + cast_operand +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="251" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#value-expression" xlink:title="value_expression" shape="rect"> + <rect x="43" y="1" width="90" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">value_expression</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#implicitly-typed-value-specification" xlink:title="implicitly_typed_value_specification" shape="rect"> + <rect x="43" y="29" width="164" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">implicitly_typed_value_specification</text></a><path class="line" d="m17 10 h2 m20 0 h4 m90 0 h4 m0 0 h74 m-192 0 h20 m172 0 h20 m-212 0 q10 0 10 10 m192 0 q0 -10 10 -10 m-202 10 v8 m192 0 v-8 m-192 8 q0 10 10 10 m172 0 q10 0 10 -10 m-182 10 h4 m164 0 h4 m23 -28 h-3"/> + <polygon points="241 10 249 6 249 14"/> + <polygon points="241 10 233 6 233 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#cast-operand" title="cast_operand" shape="rect">cast_operand</a></div> + <div>         ::= <a href="#value-expression" title="value_expression" shape="rect">value_expression</a></div> + <div>           | <a href="#implicitly-typed-value-specification" title="implicitly_typed_value_specification" shape="rect">implicitly_typed_value_specification</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#cast-specification" title="cast-specification">cast-specification</a></li><li><a href="#try-cast" title="try-cast">try-cast</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + cast_target +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="209" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#data-type" xlink:title="data_type" shape="rect"> + <rect x="43" y="1" width="56" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">data_type</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#schema-qualified-name" xlink:title="schema_qualified_name" shape="rect"> + <rect x="43" y="29" width="122" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">schema_qualified_name</text></a><path class="line" d="m17 10 h2 m20 0 h4 m56 0 h4 m0 0 h66 m-150 0 h20 m130 0 h20 m-170 0 q10 0 10 10 m150 0 q0 -10 10 -10 m-160 10 v8 m150 0 v-8 m-150 8 q0 10 10 10 m130 0 q10 0 10 -10 m-140 10 h4 m122 0 h4 m23 -28 h-3"/> + <polygon points="199 10 207 6 207 14"/> + <polygon points="199 10 191 6 191 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#cast-target" title="cast_target" shape="rect">cast_target</a></div> + <div>         ::= <a href="#data-type" title="data_type" shape="rect">data_type</a></div> + <div>           | <a href="#schema-qualified-name" title="schema_qualified_name" shape="rect">schema_qualified_name</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#cast-specification" title="cast-specification">cast-specification</a></li><li><a href="#try-cast" title="try-cast">try-cast</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + next_value_expression +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="287" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="32" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">NEXT</text> + <rect x="63" y="1" width="36" height="18" class="terminal" rx="4"/> + <text class="terminal" x="67" y="13">VALUE</text> + <rect x="107" y="1" width="26" height="18" class="terminal" rx="4"/> + <text class="terminal" x="111" y="13">FOR</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#schema-qualified-name" xlink:title="schema_qualified_name" shape="rect"> + <rect x="141" y="1" width="122" height="18" class="nonterminal"/> + <text class="nonterminal" x="145" y="13">schema_qualified_name</text></a><path class="line" d="m17 10 h2 m0 0 h4 m32 0 h4 m0 0 h4 m36 0 h4 m0 0 h4 m26 0 h4 m0 0 h4 m122 0 h4 m3 0 h-3"/> + <polygon points="277 10 285 6 285 14"/> + <polygon points="277 10 269 6 269 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#next-value-expression" title="next_value_expression" shape="rect">next_value_expression</a></div> + <div>         ::= 'NEXT' 'VALUE' 'FOR' <a href="#schema-qualified-name" title="schema_qualified_name" shape="rect">schema_qualified_name</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#nonparenthesized-value-expression-primary" title="nonparenthesized-value-expression-primary">nonparenthesized-value-expression-primary</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + field_reference +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="109" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="8" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">.</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#identifier" xlink:title="identifier" shape="rect"> + <rect x="39" y="1" width="46" height="18" class="nonterminal"/> + <text class="nonterminal" x="43" y="13">identifier</text></a><path class="line" d="m17 10 h2 m0 0 h4 m8 0 h4 m0 0 h4 m46 0 h4 m3 0 h-3"/> + <polygon points="99 10 107 6 107 14"/> + <polygon points="99 10 91 6 91 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#field-reference" title="field_reference" shape="rect">field_reference</a></div> + <div>         ::= '.' <a href="#identifier" title="identifier" shape="rect">identifier</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#primary-suffix" title="primary-suffix">primary-suffix</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + subtype_treatment +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="337" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="36" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">TREAT</text> + <rect x="67" y="1" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="71" y="13">(</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#value-expression" xlink:title="value_expression" shape="rect"> + <rect x="87" y="1" width="90" height="18" class="nonterminal"/> + <text class="nonterminal" x="91" y="13">value_expression</text></a><rect x="185" y="1" width="20" height="18" class="terminal" rx="4"/> + <text class="terminal" x="189" y="13">AS</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#target-subtype" xlink:title="target_subtype" shape="rect"> + <rect x="213" y="1" width="80" height="18" class="nonterminal"/> + <text class="nonterminal" x="217" y="13">target_subtype</text></a><rect x="301" y="1" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="305" y="13">)</text> + <path class="line" d="m17 10 h2 m0 0 h4 m36 0 h4 m0 0 h4 m12 0 h4 m0 0 h4 m90 0 h4 m0 0 h4 m20 0 h4 m0 0 h4 m80 0 h4 m0 0 h4 m12 0 h4 m3 0 h-3"/> + <polygon points="327 10 335 6 335 14"/> + <polygon points="327 10 319 6 319 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#subtype-treatment" title="subtype_treatment" shape="rect">subtype_treatment</a></div> + <div>         ::= 'TREAT' '(' <a href="#value-expression" title="value_expression" shape="rect">value_expression</a> 'AS' <a href="#target-subtype" title="target_subtype" shape="rect">target_subtype</a> ')'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#nonparenthesized-value-expression-primary" title="nonparenthesized-value-expression-primary">nonparenthesized-value-expression-primary</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + target_subtype +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="287" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#path-resolved-user-defined-type-name" xlink:title="path_resolved_user_defined_type_name" shape="rect"> + <rect x="43" y="1" width="200" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">path_resolved_user_defined_type_name</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#reference-type" xlink:title="reference_type" shape="rect"> + <rect x="43" y="29" width="78" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">reference_type</text></a><path class="line" d="m17 10 h2 m20 0 h4 m200 0 h4 m-228 0 h20 m208 0 h20 m-248 0 q10 0 10 10 m228 0 q0 -10 10 -10 m-238 10 v8 m228 0 v-8 m-228 8 q0 10 10 10 m208 0 q10 0 10 -10 m-218 10 h4 m78 0 h4 m0 0 h122 m23 -28 h-3"/> + <polygon points="277 10 285 6 285 14"/> + <polygon points="277 10 269 6 269 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#target-subtype" title="target_subtype" shape="rect">target_subtype</a></div> + <div>         ::= <a href="#path-resolved-user-defined-type-name" title="path_resolved_user_defined_type_name" shape="rect">path_resolved_user_defined_type_name</a></div> + <div>           | <a href="#reference-type" title="reference_type" shape="rect">reference_type</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#subtype-treatment" title="subtype-treatment">subtype-treatment</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + method_invocation +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="271" height="70"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#direct-invocation" xlink:title="direct_invocation" shape="rect"> + <rect x="43" y="1" width="84" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">direct_invocation</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#udaf-filter" xlink:title="udaf_filter" shape="rect"> + <rect x="155" y="22" width="52" height="18" class="nonterminal"/> + <text class="nonterminal" x="159" y="34">udaf_filter</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#generalized-invocation" xlink:title="generalized_invocation" shape="rect"> + <rect x="43" y="50" width="114" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="62">generalized_invocation</text></a><path class="line" d="m17 10 h2 m20 0 h4 m84 0 h4 m20 0 h10 m0 0 h50 m-80 0 h20 m60 0 h20 m-100 0 q10 0 10 10 m80 0 q0 -10 10 -10 m-90 10 v1 m80 0 v-1 m-80 1 q0 10 10 10 m60 0 q10 0 10 -10 m-70 10 h4 m52 0 h4 m-192 -21 h20 m192 0 h20 m-232 0 q10 0 10 10 m212 0 q0 -10 10 -10 m-222 10 v29 m212 0 v-29 m-212 29 q0 10 10 10 m192 0 q10 0 10 -10 m-202 10 h4 m114 0 h4 m0 0 h70 m23 -49 h-3"/> + <polygon points="261 10 269 6 269 14"/> + <polygon points="261 10 253 6 253 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#method-invocation" title="method_invocation" shape="rect">method_invocation</a></div> + <div>         ::= <a href="#direct-invocation" title="direct_invocation" shape="rect">direct_invocation</a> <a href="#udaf-filter" title="udaf_filter" shape="rect">udaf_filter</a>?</div> + <div>           | <a href="#generalized-invocation" title="generalized_invocation" shape="rect">generalized_invocation</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#new-invocation" title="new-invocation">new-invocation</a></li><li><a href="#primary-suffix" title="primary-suffix">primary-suffix</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + direct_invocation +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="143" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#sql-argument-list" xlink:title="SQL_argument_list" shape="rect"> + <rect x="23" y="1" width="96" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">SQL_argument_list</text></a><path class="line" d="m17 10 h2 m0 0 h4 m96 0 h4 m3 0 h-3"/> + <polygon points="133 10 141 6 141 14"/> + <polygon points="133 10 125 6 125 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#direct-invocation" title="direct_invocation" shape="rect">direct_invocation</a></div> + <div>         ::= <a href="#sql-argument-list" title="SQL_argument_list" shape="rect">SQL_argument_list</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#method-invocation" title="method-invocation">method-invocation</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + generalized_invocation +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="253" height="42"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="8" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">.</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#identifier" xlink:title="identifier" shape="rect"> + <rect x="39" y="1" width="46" height="18" class="nonterminal"/> + <text class="nonterminal" x="43" y="13">identifier</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#sql-argument-list" xlink:title="SQL_argument_list" shape="rect"> + <rect x="113" y="22" width="96" height="18" class="nonterminal"/> + <text class="nonterminal" x="117" y="34">SQL_argument_list</text></a><path class="line" d="m17 10 h2 m0 0 h4 m8 0 h4 m0 0 h4 m46 0 h4 m20 0 h10 m0 0 h94 m-124 0 h20 m104 0 h20 m-144 0 q10 0 10 10 m124 0 q0 -10 10 -10 m-134 10 v1 m124 0 v-1 m-124 1 q0 10 10 10 m104 0 q10 0 10 -10 m-114 10 h4 m96 0 h4 m23 -21 h-3"/> + <polygon points="243 10 251 6 251 14"/> + <polygon points="243 10 235 6 235 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#generalized-invocation" title="generalized_invocation" shape="rect">generalized_invocation</a></div> + <div>         ::= '.' <a href="#identifier" title="identifier" shape="rect">identifier</a> <a href="#sql-argument-list" title="SQL_argument_list" shape="rect">SQL_argument_list</a>?</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#method-invocation" title="method-invocation">method-invocation</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + static_method_invocation +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="257" height="42"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">::</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#identifier" xlink:title="identifier" shape="rect"> + <rect x="43" y="1" width="46" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">identifier</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#sql-argument-list" xlink:title="SQL_argument_list" shape="rect"> + <rect x="117" y="22" width="96" height="18" class="nonterminal"/> + <text class="nonterminal" x="121" y="34">SQL_argument_list</text></a><path class="line" d="m17 10 h2 m0 0 h4 m12 0 h4 m0 0 h4 m46 0 h4 m20 0 h10 m0 0 h94 m-124 0 h20 m104 0 h20 m-144 0 q10 0 10 10 m124 0 q0 -10 10 -10 m-134 10 v1 m124 0 v-1 m-124 1 q0 10 10 10 m104 0 q10 0 10 -10 m-114 10 h4 m96 0 h4 m23 -21 h-3"/> + <polygon points="247 10 255 6 255 14"/> + <polygon points="247 10 239 6 239 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#static-method-invocation" title="static_method_invocation" shape="rect">static_method_invocation</a></div> + <div>         ::= '::' <a href="#identifier" title="identifier" shape="rect">identifier</a> <a href="#sql-argument-list" title="SQL_argument_list" shape="rect">SQL_argument_list</a>?</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#primary-suffix" title="primary-suffix">primary-suffix</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + new_specification +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="389" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="30" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">NEW</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#path-resolved-user-defined-type-name" xlink:title="path_resolved_user_defined_type_name" shape="rect"> + <rect x="61" y="1" width="200" height="18" class="nonterminal"/> + <text class="nonterminal" x="65" y="13">path_resolved_user_defined_type_name</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#sql-argument-list" xlink:title="SQL_argument_list" shape="rect"> + <rect x="269" y="1" width="96" height="18" class="nonterminal"/> + <text class="nonterminal" x="273" y="13">SQL_argument_list</text></a><path class="line" d="m17 10 h2 m0 0 h4 m30 0 h4 m0 0 h4 m200 0 h4 m0 0 h4 m96 0 h4 m3 0 h-3"/> + <polygon points="379 10 387 6 387 14"/> + <polygon points="379 10 371 6 371 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#new-specification" title="new_specification" shape="rect">new_specification</a></div> + <div>         ::= 'NEW' <a href="#path-resolved-user-defined-type-name" title="path_resolved_user_defined_type_name" shape="rect">path_resolved_user_defined_type_name</a> <a href="#sql-argument-list" title="SQL_argument_list" shape="rect">SQL_argument_list</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#nonparenthesized-value-expression-primary" title="nonparenthesized-value-expression-primary">nonparenthesized-value-expression-primary</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + new_invocation +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="185" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#method-invocation" xlink:title="method_invocation" shape="rect"> + <rect x="43" y="1" width="98" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">method_invocation</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#routine-invocation" xlink:title="routine_invocation" shape="rect"> + <rect x="43" y="29" width="92" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">routine_invocation</text></a><path class="line" d="m17 10 h2 m20 0 h4 m98 0 h4 m-126 0 h20 m106 0 h20 m-146 0 q10 0 10 10 m126 0 q0 -10 10 -10 m-136 10 v8 m126 0 v-8 m-126 8 q0 10 10 10 m106 0 q10 0 10 -10 m-116 10 h4 m92 0 h4 m0 0 h6 m23 -28 h-3"/> + <polygon points="175 10 183 6 183 14"/> + <polygon points="175 10 167 6 167 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#new-invocation" title="new_invocation" shape="rect">new_invocation</a></div> + <div>         ::= <a href="#method-invocation" title="method_invocation" shape="rect">method_invocation</a></div> + <div>           | <a href="#routine-invocation" title="routine_invocation" shape="rect">routine_invocation</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Not referenced by any. + </div></td></tr></tbody></table> + + +====================================================================================================================== + attribute_or_method_reference +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="121" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#lambda-body" xlink:title="lambda_body" shape="rect"> + <rect x="23" y="1" width="74" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">lambda_body</text></a><path class="line" d="m17 10 h2 m0 0 h4 m74 0 h4 m3 0 h-3"/> + <polygon points="111 10 119 6 119 14"/> + <polygon points="111 10 103 6 103 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#attribute-or-method-reference" title="attribute_or_method_reference" shape="rect">attribute_or_method_reference</a></div> + <div>         ::= <a href="#lambda-body" title="lambda_body" shape="rect">lambda_body</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#primary-suffix" title="primary-suffix">primary-suffix</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + dereference_operation +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="265" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#reference-value-expression" xlink:title="reference_value_expression" shape="rect"> + <rect x="23" y="1" width="138" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">reference_value_expression</text></a><rect x="169" y="1" width="18" height="18" class="terminal" rx="4"/> + <text class="terminal" x="173" y="13">-></text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#identifier" xlink:title="identifier" shape="rect"> + <rect x="195" y="1" width="46" height="18" class="nonterminal"/> + <text class="nonterminal" x="199" y="13">identifier</text></a><path class="line" d="m17 10 h2 m0 0 h4 m138 0 h4 m0 0 h4 m18 0 h4 m0 0 h4 m46 0 h4 m3 0 h-3"/> + <polygon points="255 10 263 6 263 14"/> + <polygon points="255 10 247 6 247 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#dereference-operation" title="dereference_operation" shape="rect">dereference_operation</a></div> + <div>         ::= <a href="#reference-value-expression" title="reference_value_expression" shape="rect">reference_value_expression</a> '->' <a href="#identifier" title="identifier" shape="rect">identifier</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Not referenced by any. + </div></td></tr></tbody></table> + + +====================================================================================================================== + reference_resolution +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="269" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="36" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">DEREF</text> + <rect x="67" y="1" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="71" y="13">(</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#reference-value-expression" xlink:title="reference_value_expression" shape="rect"> + <rect x="87" y="1" width="138" height="18" class="nonterminal"/> + <text class="nonterminal" x="91" y="13">reference_value_expression</text></a><rect x="233" y="1" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="237" y="13">)</text> + <path class="line" d="m17 10 h2 m0 0 h4 m36 0 h4 m0 0 h4 m12 0 h4 m0 0 h4 m138 0 h4 m0 0 h4 m12 0 h4 m3 0 h-3"/> + <polygon points="259 10 267 6 267 14"/> + <polygon points="259 10 251 6 251 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#reference-resolution" title="reference_resolution" shape="rect">reference_resolution</a></div> + <div>         ::= 'DEREF' '(' <a href="#reference-value-expression" title="reference_value_expression" shape="rect">reference_value_expression</a> ')'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#nonparenthesized-value-expression-primary" title="nonparenthesized-value-expression-primary">nonparenthesized-value-expression-primary</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + array_element_reference +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="395" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#left-bracket-or-trigraph" xlink:title="left_bracket_or_trigraph" shape="rect"> + <rect x="23" y="1" width="118" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">left_bracket_or_trigraph</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#value-expression" xlink:title="value_expression" shape="rect"> + <rect x="149" y="1" width="90" height="18" class="nonterminal"/> + <text class="nonterminal" x="153" y="13">value_expression</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#right-bracket-or-trigraph" xlink:title="right_bracket_or_trigraph" shape="rect"> + <rect x="247" y="1" width="124" height="18" class="nonterminal"/> + <text class="nonterminal" x="251" y="13">right_bracket_or_trigraph</text></a><path class="line" d="m17 10 h2 m0 0 h4 m118 0 h4 m0 0 h4 m90 0 h4 m0 0 h4 m124 0 h4 m3 0 h-3"/> + <polygon points="385 10 393 6 393 14"/> + <polygon points="385 10 377 6 377 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#array-element-reference" title="array_element_reference" shape="rect">array_element_reference</a></div> + <div>         ::= <a href="#left-bracket-or-trigraph" title="left_bracket_or_trigraph" shape="rect">left_bracket_or_trigraph</a> <a href="#value-expression" title="value_expression" shape="rect">value_expression</a> <a href="#right-bracket-or-trigraph" title="right_bracket_or_trigraph" shape="rect">right_bracket_or_trigraph</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#primary-suffix" title="primary-suffix">primary-suffix</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + multiset_element_reference +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="273" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="48" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">ELEMENT</text> + <rect x="79" y="1" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="83" y="13">(</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#multiset-value-expression" xlink:title="multiset_value_expression" shape="rect"> + <rect x="99" y="1" width="130" height="18" class="nonterminal"/> + <text class="nonterminal" x="103" y="13">multiset_value_expression</text></a><rect x="237" y="1" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="241" y="13">)</text> + <path class="line" d="m17 10 h2 m0 0 h4 m48 0 h4 m0 0 h4 m12 0 h4 m0 0 h4 m130 0 h4 m0 0 h4 m12 0 h4 m3 0 h-3"/> + <polygon points="263 10 271 6 271 14"/> + <polygon points="263 10 255 6 255 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#multiset-element-reference" title="multiset_element_reference" shape="rect">multiset_element_reference</a></div> + <div>         ::= 'ELEMENT' '(' <a href="#multiset-value-expression" title="multiset_value_expression" shape="rect">multiset_value_expression</a> ')'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#nonparenthesized-value-expression-primary" title="nonparenthesized-value-expression-primary">nonparenthesized-value-expression-primary</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + value_expression +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="223" height="77"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#boolean-value-expression" xlink:title="boolean_value_expression" shape="rect"> + <rect x="43" y="1" width="132" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">boolean_value_expression</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#common-value-expression" xlink:title="common_value_expression" shape="rect"> + <rect x="43" y="29" width="136" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">common_value_expression</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#row-value-expression" xlink:title="row_value_expression" shape="rect"> + <rect x="43" y="57" width="112" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="69">row_value_expression</text></a><path class="line" d="m17 10 h2 m20 0 h4 m132 0 h4 m0 0 h4 m-164 0 h20 m144 0 h20 m-184 0 q10 0 10 10 m164 0 q0 -10 10 -10 m-174 10 v8 m164 0 v-8 m-164 8 q0 10 10 10 m144 0 q10 0 10 -10 m-154 10 h4 m136 0 h4 m-154 -10 v20 m164 0 v-20 m-164 20 v8 m164 0 v-8 m-164 8 q0 10 10 10 m144 0 q10 0 10 -10 m-154 10 h4 m112 0 h4 m0 0 h24 m23 -56 h-3"/> + <polygon points="213 10 221 6 221 14"/> + <polygon points="213 10 205 6 205 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#value-expression" title="value_expression" shape="rect">value_expression</a></div> + <div>         ::= <a href="#boolean-value-expression" title="boolean_value_expression" shape="rect">boolean_value_expression</a></div> + <div>           | <a href="#common-value-expression" title="common_value_expression" shape="rect">common_value_expression</a></div> + <div>           | <a href="#row-value-expression" title="row_value_expression" shape="rect">row_value_expression</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#sql-argument" title="sql-argument">sql-argument</a></li><li><a href="#array-aggregate-function" title="array-aggregate-function">array-aggregate-function</a></li><li><a href="#array-element" title="array-element">array-element</a></li><li><a href="#array-element-reference" title="array-element-reference">array-element-reference</a></li><li><a href="#case-abbreviation" title="case-abbreviation">case-abbreviation</a></li><li><a href="#cast-operand" title="cast-operand">cast-operand</a></li><li><a href="#count" title="count">count</a></li><li><a href="#cycle-clause" title="cycle-clause">cycle-clause</a></li><li><a href="#derived-column" title="derived-column">derived-column</a></li><li><a href="#extra-args-to-agg" title="extra-args-to-agg">extra-args-to-agg</a></li><li><a href="#first-or-last-value-function" title="first-or-last-value-function">first-or-last-value-function</a></li><li><a href="#general-set-function" title="general-set-function">general-set-function</a></li><li><a href="#generation-expression" title="generation-expression">generation-expression</a></li><li><a href="#grouping-expression" title="grouping-expression">grouping-expression</a></li><li><a href="#hypothetical-set-function-value-expression-list" title="hypothetical-set-function-value-expression-list">hypothetical-set-function-value-expression-list</a></li><li><a href="#lambda-body" title="lambda-body">lambda-body</a></li><li><a href="#lead-or-lag-function" title="lead-or-lag-function">lead-or-lag-function</a></li><li><a href="#merge-insert-value-element" title="merge-insert-value-element">merge-insert-value-element</a></li><li><a href="#multiset-element" title="multiset-element">multiset-element</a></li><li><a href="#named-argument-sql-argument" title="named-argument-sql-argument">named-argument-sql-argument</a></li><li><a href="#nth-value-function" title="nth-value-function">nth-value-function</a></li><li><a href="#number-of-tiles" title="number-of-tiles">number-of-tiles</a></li><li><a href="#parameter-default" title="parameter-default">parameter-default</a></li><li><a href="#parenthesized-value-expression" title="parenthesized-value-expression">parenthesized-value-expression</a></li><li><a href="#presto-aggregations" title="presto-aggregations">presto-aggregations</a></li><li><a href="#result" title="result">result</a></li><li><a href="#return-value" title="return-value">return-value</a></li><li><a href="#row-value-constructor-element" title="row-value-constructor-element">row-value-constructor-element</a></li><li><a href="#sort-key" title="sort-key">sort-key</a></li><li><a href="#subtype-treatment" title="subtype-treatment">subtype-treatment</a></li><li><a href="#table-attributes" title="table-attributes">table-attributes</a></li><li><a href="#update-source" title="update-source">update-source</a></li><li><a href="#window-frame-following" title="window-frame-following">window-frame-following</a></li><li><a href="#window-frame-preceding" title="window-frame-preceding">window-frame-preceding</a></li><li><a href="#window-partition-column-reference" title="window-partition-column-reference">window-partition-column-reference</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + common_value_expression +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="269" height="189"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#numeric-value-expression" xlink:title="numeric_value_expression" shape="rect"> + <rect x="43" y="1" width="132" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">numeric_value_expression</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#string-value-expression" xlink:title="string_value_expression" shape="rect"> + <rect x="43" y="29" width="120" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">string_value_expression</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#datetime-value-expression" xlink:title="datetime_value_expression" shape="rect"> + <rect x="43" y="57" width="136" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="69">datetime_value_expression</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#interval-value-expression" xlink:title="interval_value_expression" shape="rect"> + <rect x="43" y="85" width="128" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="97">interval_value_expression</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#user-defined-type-value-expression" xlink:title="user_defined_type_value_expression" shape="rect"> + <rect x="43" y="113" width="182" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="125">user_defined_type_value_expression</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#reference-value-expression" xlink:title="reference_value_expression" shape="rect"> + <rect x="43" y="141" width="138" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="153">reference_value_expression</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#collection-value-expression" xlink:title="collection_value_expression" shape="rect"> + <rect x="43" y="169" width="134" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="181">collection_value_expression</text></a><path class="line" d="m17 10 h2 m20 0 h4 m132 0 h4 m0 0 h50 m-210 0 h20 m190 0 h20 m-230 0 q10 0 10 10 m210 0 q0 -10 10 -10 m-220 10 v8 m210 0 v-8 m-210 8 q0 10 10 10 m190 0 q10 0 10 -10 m-200 10 h4 m120 0 h4 m0 0 h62 m-200 -10 v20 m210 0 v-20 m-210 20 v8 m210 0 v-8 m-210 8 q0 10 10 10 m190 0 q10 0 10 -10 m-200 10 h4 m136 0 h4 m0 0 h46 m-200 -10 v20 m210 0 v-20 m-210 20 v8 m210 0 v-8 m-210 8 q0 10 10 10 m190 0 q10 0 10 -10 m-200 10 h4 m128 0 h4 m0 0 h54 m-200 -10 v20 m210 0 v-20 m-210 20 v8 m210 0 v-8 m-210 8 q0 10 10 10 m190 0 q10 0 10 -10 m-200 10 h4 m182 0 h4 m-200 -10 v20 m210 0 v-20 m-210 20 v8 m210 0 v-8 m-210 8 q0 10 10 10 m190 0 q10 0 10 -10 m-200 10 h4 m138 0 h4 m0 0 h44 m-200 -10 v20 m210 0 v-20 m-210 20 v8 m210 0 v-8 m-210 8 q0 10 10 10 m190 0 q10 0 10 -10 m-200 10 h4 m134 0 h4 m0 0 h48 m23 -168 h-3"/> + <polygon points="259 10 267 6 267 14"/> + <polygon points="259 10 251 6 251 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#common-value-expression" title="common_value_expression" shape="rect">common_value_expression</a></div> + <div>         ::= <a href="#numeric-value-expression" title="numeric_value_expression" shape="rect">numeric_value_expression</a></div> + <div>           | <a href="#string-value-expression" title="string_value_expression" shape="rect">string_value_expression</a></div> + <div>           | <a href="#datetime-value-expression" title="datetime_value_expression" shape="rect">datetime_value_expression</a></div> + <div>           | <a href="#interval-value-expression" title="interval_value_expression" shape="rect">interval_value_expression</a></div> + <div>           | <a href="#user-defined-type-value-expression" title="user_defined_type_value_expression" shape="rect">user_defined_type_value_expression</a></div> + <div>           | <a href="#reference-value-expression" title="reference_value_expression" shape="rect">reference_value_expression</a></div> + <div>           | <a href="#collection-value-expression" title="collection_value_expression" shape="rect">collection_value_expression</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#contextually-typed-row-value-constructor" title="contextually-typed-row-value-constructor">contextually-typed-row-value-constructor</a></li><li><a href="#row-value-constructor" title="row-value-constructor">row-value-constructor</a></li><li><a href="#row-value-constructor-predicand" title="row-value-constructor-predicand">row-value-constructor-predicand</a></li><li><a href="#row-value-special-case" title="row-value-special-case">row-value-special-case</a></li><li><a href="#value-expression" title="value-expression">value-expression</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + user_defined_type_value_expression +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="177" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#value-expression-primary" xlink:title="value_expression_primary" shape="rect"> + <rect x="23" y="1" width="130" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">value_expression_primary</text></a><path class="line" d="m17 10 h2 m0 0 h4 m130 0 h4 m3 0 h-3"/> + <polygon points="167 10 175 6 175 14"/> + <polygon points="167 10 159 6 159 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#user-defined-type-value-expression" title="user_defined_type_value_expression" shape="rect">user_defined_type_value_expression</a></div> + <div>         ::= <a href="#value-expression-primary" title="value_expression_primary" shape="rect">value_expression_primary</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#common-value-expression" title="common-value-expression">common-value-expression</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + reference_value_expression +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="177" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#value-expression-primary" xlink:title="value_expression_primary" shape="rect"> + <rect x="23" y="1" width="130" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">value_expression_primary</text></a><path class="line" d="m17 10 h2 m0 0 h4 m130 0 h4 m3 0 h-3"/> + <polygon points="167 10 175 6 175 14"/> + <polygon points="167 10 159 6 159 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#reference-value-expression" title="reference_value_expression" shape="rect">reference_value_expression</a></div> + <div>         ::= <a href="#value-expression-primary" title="value_expression_primary" shape="rect">value_expression_primary</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#common-value-expression" title="common-value-expression">common-value-expression</a></li><li><a href="#dereference-operation" title="dereference-operation">dereference-operation</a></li><li><a href="#reference-resolution" title="reference-resolution">reference-resolution</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + collection_value_expression +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="217" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#array-value-expression" xlink:title="array_value_expression" shape="rect"> + <rect x="43" y="1" width="118" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">array_value_expression</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#multiset-value-expression" xlink:title="multiset_value_expression" shape="rect"> + <rect x="43" y="29" width="130" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">multiset_value_expression</text></a><path class="line" d="m17 10 h2 m20 0 h4 m118 0 h4 m0 0 h12 m-158 0 h20 m138 0 h20 m-178 0 q10 0 10 10 m158 0 q0 -10 10 -10 m-168 10 v8 m158 0 v-8 m-158 8 q0 10 10 10 m138 0 q10 0 10 -10 m-148 10 h4 m130 0 h4 m23 -28 h-3"/> + <polygon points="207 10 215 6 215 14"/> + <polygon points="207 10 199 6 199 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#collection-value-expression" title="collection_value_expression" shape="rect">collection_value_expression</a></div> + <div>         ::= <a href="#array-value-expression" title="array_value_expression" shape="rect">array_value_expression</a></div> + <div>           | <a href="#multiset-value-expression" title="multiset_value_expression" shape="rect">multiset_value_expression</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#cardinality-expression" title="cardinality-expression">cardinality-expression</a></li><li><a href="#collection-derived-table" title="collection-derived-table">collection-derived-table</a></li><li><a href="#common-value-expression" title="common-value-expression">common-value-expression</a></li><li><a href="#table-function-derived-table" title="table-function-derived-table">table-function-derived-table</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + numeric_value_expression +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="119" height="77"> + <polygon points="9 66 1 62 1 70"/> + <polygon points="17 66 9 62 9 70"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#term" xlink:title="term" shape="rect"> + <rect x="43" y="57" width="32" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="69">term</text></a><rect x="43" y="29" width="14" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="41">+</text> + <rect x="43" y="1" width="10" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="13">-</text> + <path class="line" d="m17 66 h2 m20 0 h4 m32 0 h4 m-60 0 l20 0 m-1 0 q-9 0 -9 -10 l0 -8 q0 -10 10 -10 m40 28 l20 0 m-20 0 q10 0 10 -10 l0 -8 q0 -10 -10 -10 m-40 0 h4 m14 0 h4 m0 0 h18 m-50 10 l0 -28 q0 -10 10 -10 m50 38 l0 -28 q0 -10 -10 -10 m-40 0 h4 m10 0 h4 m0 0 h22 m23 56 h-3"/> + <polygon points="109 66 117 62 117 70"/> + <polygon points="109 66 101 62 101 70"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#numeric-value-expression" title="numeric_value_expression" shape="rect">numeric_value_expression</a></div> + <div>         ::= <a href="#term" title="term" shape="rect">term</a> ( ( '+' | '-' ) <a href="#term" title="term" shape="rect">term</a> )*</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#absolute-value-expression" title="absolute-value-expression">absolute-value-expression</a></li><li><a href="#binary-overlay-function" title="binary-overlay-function">binary-overlay-function</a></li><li><a href="#binary-substring-function" title="binary-substring-function">binary-substring-function</a></li><li><a href="#boolean-predicand" title="boolean-predicand">boolean-predicand</a></li><li><a href="#ceiling-function" title="ceiling-function">ceiling-function</a></li><li><a href="#character-overlay-function" title="character-overlay-function">character-overlay-function</a></li><li><a href="#character-substring-function" title="character-substring-function">character-substring-function</a></li><li><a href="#common-value-expression" title="common-value-expression">common-value-expression</a></li><li><a href="#dependent-variable-expression" title="dependent-variable-expression">dependent-variable-expression</a></li><li><a href="#exponential-function" title="exponential-function">exponential-function</a></li><li><a href="#floor-function" title="floor-function">floor-function</a></li><li><a href="#independent-variable-expression" title="independent-variable-expression">independent-variable-expression</a></li><li><a href="#inverse-distribution-function-argument" title="inverse-distribution-function-argument">inverse-distribution-function-argument</a></li><li><a href="#modulus-expression" title="modulus-expression">modulus-expression</a></li><li><a href="#natural-logarithm" title="natural-logarithm">natural-logarithm</a></li><li><a href="#power-function" title="power-function">power-function</a></li><li><a href="#regex-occurrences-function" title="regex-occurrences-function">regex-occurrences-function</a></li><li><a href="#regex-position-expression" title="regex-position-expression">regex-position-expression</a></li><li><a href="#regex-substring-function" title="regex-substring-function">regex-substring-function</a></li><li><a href="#regex-transliteration" title="regex-transliteration">regex-transliteration</a></li><li><a href="#regex-transliteration-occurrence" title="regex-transliteration-occurrence">regex-transliteration-occurrence</a></li><li><a href="#repeat-argument" title="repeat-argument">repeat-argument</a></li><li><a href="#sample-percentage" title="sample-percentage">sample-percentage</a></li><li><a href="#square-root" title="square-root">square-root</a></li><li><a href="#trim-array-function" title="trim-array-function">trim-array-function</a></li><li><a href="#width-bucket-function" title="width-bucket-function">width-bucket-function</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + term +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="121" height="105"> + <polygon points="9 94 1 90 1 98"/> + <polygon points="17 94 9 90 9 98"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#factor" xlink:title="factor" shape="rect"> + <rect x="43" y="85" width="34" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="97">factor</text></a><rect x="43" y="57" width="14" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="69">*</text> + <rect x="43" y="29" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="41">/</text> + <rect x="43" y="1" width="20" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="13">%</text> + <path class="line" d="m17 94 h2 m20 0 h4 m34 0 h4 m-62 0 l20 0 m-1 0 q-9 0 -9 -10 l0 -8 q0 -10 10 -10 m42 28 l20 0 m-20 0 q10 0 10 -10 l0 -8 q0 -10 -10 -10 m-42 0 h4 m14 0 h4 m0 0 h20 m-52 10 l0 -28 q0 -10 10 -10 m52 38 l0 -28 q0 -10 -10 -10 m-42 0 h4 m12 0 h4 m0 0 h22 m-52 10 l0 -28 q0 -10 10 -10 m52 38 l0 -28 q0 -10 -10 -10 m-42 0 h4 m20 0 h4 m0 0 h14 m23 84 h-3"/> + <polygon points="111 94 119 90 119 98"/> + <polygon points="111 94 103 90 103 98"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#term" title="term" shape="rect">term</a>     ::= <a href="#factor" title="factor" shape="rect">factor</a> ( ( '*' | '/' | '%' ) <a href="#factor" title="factor" shape="rect">factor</a> )*</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#numeric-value-expression" title="numeric-value-expression">numeric-value-expression</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + factor +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="195" height="70"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="43" y="22" width="14" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="34">+</text> + <rect x="43" y="50" width="10" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="62">-</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#numeric-primary" xlink:title="numeric_primary" shape="rect"> + <rect x="85" y="1" width="86" height="18" class="nonterminal"/> + <text class="nonterminal" x="89" y="13">numeric_primary</text></a><path class="line" d="m17 10 h2 m20 0 h10 m0 0 h12 m-42 0 h20 m22 0 h20 m-62 0 q10 0 10 10 m42 0 q0 -10 10 -10 m-52 10 v1 m42 0 v-1 m-42 1 q0 10 10 10 m22 0 q10 0 10 -10 m-32 10 h4 m14 0 h4 m-32 -10 v20 m42 0 v-20 m-42 20 v8 m42 0 v-8 m-42 8 q0 10 10 10 m22 0 q10 0 10 -10 m-32 10 h4 m10 0 h4 m0 0 h4 m20 -49 h4 m86 0 h4 m3 0 h-3"/> + <polygon points="185 10 193 6 193 14"/> + <polygon points="185 10 177 6 177 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#factor" title="factor" shape="rect">factor</a>   ::= ( '+' | '-' )? <a href="#numeric-primary" title="numeric_primary" shape="rect">numeric_primary</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#interval-term" title="interval-term">interval-term</a></li><li><a href="#term" title="term">term</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + numeric_primary +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="225" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#numeric-value-function" xlink:title="numeric_value_function" shape="rect"> + <rect x="43" y="1" width="116" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">numeric_value_function</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#character-value-expression" xlink:title="character_value_expression" shape="rect"> + <rect x="43" y="29" width="138" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">character_value_expression</text></a><path class="line" d="m17 10 h2 m20 0 h4 m116 0 h4 m0 0 h22 m-166 0 h20 m146 0 h20 m-186 0 q10 0 10 10 m166 0 q0 -10 10 -10 m-176 10 v8 m166 0 v-8 m-166 8 q0 10 10 10 m146 0 q10 0 10 -10 m-156 10 h4 m138 0 h4 m23 -28 h-3"/> + <polygon points="215 10 223 6 223 14"/> + <polygon points="215 10 207 6 207 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#numeric-primary" title="numeric_primary" shape="rect">numeric_primary</a></div> + <div>         ::= <a href="#numeric-value-function" title="numeric_value_function" shape="rect">numeric_value_function</a></div> + <div>           | <a href="#character-value-expression" title="character_value_expression" shape="rect">character_value_expression</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#factor" title="factor">factor</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + numeric_value_function +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="223" height="441"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#position-expression" xlink:title="position_expression" shape="rect"> + <rect x="43" y="1" width="100" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">position_expression</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#regex-occurrences-function" xlink:title="regex_occurrences_function" shape="rect"> + <rect x="43" y="29" width="136" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">regex_occurrences_function</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#regex-position-expression" xlink:title="regex_position_expression" shape="rect"> + <rect x="43" y="57" width="132" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="69">regex_position_expression</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#extract-expression" xlink:title="extract_expression" shape="rect"> + <rect x="43" y="85" width="96" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="97">extract_expression</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#length-expression" xlink:title="length_expression" shape="rect"> + <rect x="43" y="113" width="94" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="125">length_expression</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#cardinality-expression" xlink:title="cardinality_expression" shape="rect"> + <rect x="43" y="141" width="108" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="153">cardinality_expression</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#max-cardinality-expression" xlink:title="max_cardinality_expression" shape="rect"> + <rect x="43" y="169" width="136" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="181">max_cardinality_expression</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#absolute-value-expression" xlink:title="absolute_value_expression" shape="rect"> + <rect x="43" y="197" width="134" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="209">absolute_value_expression</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#modulus-expression" xlink:title="modulus_expression" shape="rect"> + <rect x="43" y="225" width="104" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="237">modulus_expression</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#natural-logarithm" xlink:title="natural_logarithm" shape="rect"> + <rect x="43" y="253" width="90" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="265">natural_logarithm</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#exponential-function" xlink:title="exponential_function" shape="rect"> + <rect x="43" y="281" width="102" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="293">exponential_function</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#power-function" xlink:title="power_function" shape="rect"> + <rect x="43" y="309" width="80" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="321">power_function</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#square-root" xlink:title="square_root" shape="rect"> + <rect x="43" y="337" width="66" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="349">square_root</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#floor-function" xlink:title="floor_function" shape="rect"> + <rect x="43" y="365" width="68" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="377">floor_function</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#ceiling-function" xlink:title="ceiling_function" shape="rect"> + <rect x="43" y="393" width="76" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="405">ceiling_function</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#width-bucket-function" xlink:title="width_bucket_function" shape="rect"> + <rect x="43" y="421" width="110" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="433">width_bucket_function</text></a><path class="line" d="m17 10 h2 m20 0 h4 m100 0 h4 m0 0 h36 m-164 0 h20 m144 0 h20 m-184 0 q10 0 10 10 m164 0 q0 -10 10 -10 m-174 10 v8 m164 0 v-8 m-164 8 q0 10 10 10 m144 0 q10 0 10 -10 m-154 10 h4 m136 0 h4 m-154 -10 v20 m164 0 v-20 m-164 20 v8 m164 0 v-8 m-164 8 q0 10 10 10 m144 0 q10 0 10 -10 m-154 10 h4 m132 0 h4 m0 0 h4 m-154 -10 v20 m164 0 v-20 m-164 20 v8 m164 0 v-8 m-164 8 q0 10 10 10 m144 0 q10 0 10 -10 m-154 10 h4 m96 0 h4 m0 0 h40 m-154 -10 v20 m164 0 v-20 m-164 20 v8 m164 0 v-8 m-164 8 q0 10 10 10 m144 0 q10 0 10 -10 m-154 10 h4 m94 0 h4 m0 0 h42 m-154 -10 v20 m164 0 v-20 m-164 20 v8 m164 0 v-8 m-164 8 q0 10 10 10 m144 0 q10 0 10 -10 m-154 10 h4 m108 0 h4 m0 0 h28 m-154 -10 v20 m164 0 v-20 m-164 20 v8 m164 0 v-8 m-164 8 q0 10 10 10 m144 0 q10 0 10 -10 m-154 10 h4 m136 0 h4 m-154 -10 v20 m164 0 v-20 m-164 20 v8 m164 0 v-8 m-164 8 q0 10 10 10 m144 0 q10 0 10 -10 m-154 10 h4 m134 0 h4 m0 0 h2 m-154 -10 v20 m164 0 v-20 m-164 20 v8 m164 0 v-8 m-164 8 q0 10 10 10 m144 0 q10 0 10 -10 m-154 10 h4 m104 0 h4 m0 0 h32 m-154 -10 v20 m164 0 v-20 m-164 20 v8 m164 0 v-8 m-164 8 q0 10 10 10 m144 0 q10 0 10 -10 m-154 10 h4 m90 0 h4 m0 0 h46 m-154 -10 v20 m164 0 v-20 m-164 20 v8 m164 0 v-8 m-164 8 q0 10 10 10 m144 0 q10 0 10 -10 m-154 10 h4 m102 0 h4 m0 0 h34 m-154 -10 v20 m164 0 v-20 m-164 20 v8 m164 0 v-8 m-164 8 q0 10 10 10 m144 0 q10 0 10 -10 m-154 10 h4 m80 0 h4 m0 0 h56 m-154 -10 v20 m164 0 v-20 m-164 20 v8 m164 0 v-8 m-164 8 q0 10 10 10 m144 0 q10 0 10 -10 m-154 10 h4 m66 0 h4 m0 0 h70 m-154 -10 v20 m164 0 v-20 m-164 20 v8 m164 0 v-8 m-164 8 q0 10 10 10 m144 0 q10 0 10 -10 m-154 10 h4 m68 0 h4 m0 0 h68 m-154 -10 v20 m164 0 v-20 m-164 20 v8 m164 0 v-8 m-164 8 q0 10 10 10 m144 0 q10 0 10 -10 m-154 10 h4 m76 0 h4 m0 0 h60 m-154 -10 v20 m164 0 v-20 m-164 20 v8 m164 0 v-8 m-164 8 q0 10 10 10 m144 0 q10 0 10 -10 m-154 10 h4 m110 0 h4 m0 0 h26 m23 -420 h-3"/> + <polygon points="213 10 221 6 221 14"/> + <polygon points="213 10 205 6 205 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#numeric-value-function" title="numeric_value_function" shape="rect">numeric_value_function</a></div> + <div>         ::= <a href="#position-expression" title="position_expression" shape="rect">position_expression</a></div> + <div>           | <a href="#regex-occurrences-function" title="regex_occurrences_function" shape="rect">regex_occurrences_function</a></div> + <div>           | <a href="#regex-position-expression" title="regex_position_expression" shape="rect">regex_position_expression</a></div> + <div>           | <a href="#extract-expression" title="extract_expression" shape="rect">extract_expression</a></div> + <div>           | <a href="#length-expression" title="length_expression" shape="rect">length_expression</a></div> + <div>           | <a href="#cardinality-expression" title="cardinality_expression" shape="rect">cardinality_expression</a></div> + <div>           | <a href="#max-cardinality-expression" title="max_cardinality_expression" shape="rect">max_cardinality_expression</a></div> + <div>           | <a href="#absolute-value-expression" title="absolute_value_expression" shape="rect">absolute_value_expression</a></div> + <div>           | <a href="#modulus-expression" title="modulus_expression" shape="rect">modulus_expression</a></div> + <div>           | <a href="#natural-logarithm" title="natural_logarithm" shape="rect">natural_logarithm</a></div> + <div>           | <a href="#exponential-function" title="exponential_function" shape="rect">exponential_function</a></div> + <div>           | <a href="#power-function" title="power_function" shape="rect">power_function</a></div> + <div>           | <a href="#square-root" title="square_root" shape="rect">square_root</a></div> + <div>           | <a href="#floor-function" title="floor_function" shape="rect">floor_function</a></div> + <div>           | <a href="#ceiling-function" title="ceiling_function" shape="rect">ceiling_function</a></div> + <div>           | <a href="#width-bucket-function" title="width_bucket_function" shape="rect">width_bucket_function</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#numeric-primary" title="numeric-primary">numeric-primary</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + position_expression +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="235" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#character-position-expression" xlink:title="character_position_expression" shape="rect"> + <rect x="43" y="1" width="148" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">character_position_expression</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#binary-position-expression" xlink:title="binary_position_expression" shape="rect"> + <rect x="43" y="29" width="134" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">binary_position_expression</text></a><path class="line" d="m17 10 h2 m20 0 h4 m148 0 h4 m-176 0 h20 m156 0 h20 m-196 0 q10 0 10 10 m176 0 q0 -10 10 -10 m-186 10 v8 m176 0 v-8 m-176 8 q0 10 10 10 m156 0 q10 0 10 -10 m-166 10 h4 m134 0 h4 m0 0 h14 m23 -28 h-3"/> + <polygon points="225 10 233 6 233 14"/> + <polygon points="225 10 217 6 217 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#position-expression" title="position_expression" shape="rect">position_expression</a></div> + <div>         ::= <a href="#character-position-expression" title="character_position_expression" shape="rect">character_position_expression</a></div> + <div>           | <a href="#binary-position-expression" title="binary_position_expression" shape="rect">binary_position_expression</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#numeric-value-function" title="numeric-value-function">numeric-value-function</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + regex_occurrences_function +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="715" height="105"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="112" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">OCCURRENCES_REGEX</text> + <rect x="143" y="1" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="147" y="13">(</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#character-value-expression" xlink:title="character_value_expression" shape="rect"> + <rect x="163" y="1" width="138" height="18" class="nonterminal"/> + <text class="nonterminal" x="167" y="13">character_value_expression</text></a><rect x="329" y="22" width="30" height="18" class="terminal" rx="4"/> + <text class="terminal" x="333" y="34">FLAG</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#character-value-expression" xlink:title="character_value_expression" shape="rect"> + <rect x="367" y="22" width="138" height="18" class="nonterminal"/> + <text class="nonterminal" x="371" y="34">character_value_expression</text></a><rect x="533" y="1" width="18" height="18" class="terminal" rx="4"/> + <text class="terminal" x="537" y="13">IN</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#character-value-expression" xlink:title="character_value_expression" shape="rect"> + <rect x="559" y="1" width="138" height="18" class="nonterminal"/> + <text class="nonterminal" x="563" y="13">character_value_expression</text></a><rect x="291" y="85" width="36" height="18" class="terminal" rx="4"/> + <text class="terminal" x="295" y="97">FROM</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#numeric-value-expression" xlink:title="numeric_value_expression" shape="rect"> + <rect x="335" y="85" width="132" height="18" class="nonterminal"/> + <text class="nonterminal" x="339" y="97">numeric_value_expression</text></a><rect x="515" y="85" width="38" height="18" class="terminal" rx="4"/> + <text class="terminal" x="519" y="97">USING</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#char-length-units" xlink:title="char_length_units" shape="rect"> + <rect x="561" y="85" width="90" height="18" class="nonterminal"/> + <text class="nonterminal" x="565" y="97">char_length_units</text></a><rect x="679" y="64" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="683" y="76">)</text> + <path class="line" d="m17 10 h2 m0 0 h4 m112 0 h4 m0 0 h4 m12 0 h4 m0 0 h4 m138 0 h4 m20 0 h10 m0 0 h174 m-204 0 h20 m184 0 h20 m-224 0 q10 0 10 10 m204 0 q0 -10 10 -10 m-214 10 v1 m204 0 v-1 m-204 1 q0 10 10 10 m184 0 q10 0 10 -10 m-194 10 h4 m30 0 h4 m0 0 h4 m138 0 h4 m20 -21 h4 m18 0 h4 m0 0 h4 m138 0 h4 m2 0 l2 0 m2 0 l2 0 m2 0 l2 0 m-458 63 l2 0 m2 0 l2 0 m2 0 l2 0 m22 0 h10 m0 0 h174 m-204 0 h20 m184 0 h20 m-224 0 q10 0 10 10 m204 0 q0 -10 10 -10 m-214 10 v1 m204 0 v-1 m-204 1 q0 10 10 10 m184 0 q10 0 10 -10 m-194 10 h4 m36 0 h4 m0 0 h4 m132 0 h4 m40 -21 h10 m0 0 h134 m-164 0 h20 m144 0 h20 m-184 0 q10 0 10 10 m164 0 q0 -10 10 -10 m-174 10 v1 m164 0 v-1 m-164 1 q0 10 10 10 m144 0 q10 0 10 -10 m-154 10 h4 m38 0 h4 m0 0 h4 m90 0 h4 m20 -21 h4 m12 0 h4 m3 0 h-3"/> + <polygon points="705 73 713 69 713 77"/> + <polygon points="705 73 697 69 697 77"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#regex-occurrences-function" title="regex_occurrences_function" shape="rect">regex_occurrences_function</a></div> + <div>         ::= 'OCCURRENCES_REGEX' '(' <a href="#character-value-expression" title="character_value_expression" shape="rect">character_value_expression</a> ( 'FLAG' <a href="#character-value-expression" title="character_value_expression" shape="rect">character_value_expression</a> )? 'IN' <a href="#character-value-expression" title="character_value_expression" shape="rect">character_value_expression</a> ( 'FROM' <a href="#numeric-value-expression" title="numeric_value_expression" shape="rect">numeric_value_expression</a> )? ( 'USING' <a href="#char-length-units" title="char_length_units" shape="rect">char_length_units</a> )? ')'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#numeric-value-function" title="numeric-value-function">numeric-value-function</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + regex_position_expression +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="739" height="168"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="90" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">POSITION_REGEX</text> + <rect x="121" y="1" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="125" y="13">(</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#regex-position-start-or-after" xlink:title="regex_position_start_or_after" shape="rect"> + <rect x="161" y="22" width="144" height="18" class="nonterminal"/> + <text class="nonterminal" x="165" y="34">regex_position_start_or_after</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#character-value-expression" xlink:title="character_value_expression" shape="rect"> + <rect x="333" y="1" width="138" height="18" class="nonterminal"/> + <text class="nonterminal" x="337" y="13">character_value_expression</text></a><rect x="499" y="22" width="30" height="18" class="terminal" rx="4"/> + <text class="terminal" x="503" y="34">FLAG</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#character-value-expression" xlink:title="character_value_expression" shape="rect"> + <rect x="537" y="22" width="138" height="18" class="nonterminal"/> + <text class="nonterminal" x="541" y="34">character_value_expression</text></a><rect x="703" y="1" width="18" height="18" class="terminal" rx="4"/> + <text class="terminal" x="707" y="13">IN</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#character-value-expression" xlink:title="character_value_expression" shape="rect"> + <rect x="96" y="64" width="138" height="18" class="nonterminal"/> + <text class="nonterminal" x="100" y="76">character_value_expression</text></a><rect x="262" y="85" width="36" height="18" class="terminal" rx="4"/> + <text class="terminal" x="266" y="97">FROM</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#numeric-value-expression" xlink:title="numeric_value_expression" shape="rect"> + <rect x="306" y="85" width="132" height="18" class="nonterminal"/> + <text class="nonterminal" x="310" y="97">numeric_value_expression</text></a><rect x="486" y="85" width="38" height="18" class="terminal" rx="4"/> + <text class="terminal" x="490" y="97">USING</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#char-length-units" xlink:title="char_length_units" shape="rect"> + <rect x="532" y="85" width="90" height="18" class="nonterminal"/> + <text class="nonterminal" x="536" y="97">char_length_units</text></a><rect x="235" y="148" width="70" height="18" class="terminal" rx="4"/> + <text class="terminal" x="239" y="160">OCCURRENCE</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#numeric-value-expression" xlink:title="numeric_value_expression" shape="rect"> + <rect x="313" y="148" width="132" height="18" class="nonterminal"/> + <text class="nonterminal" x="317" y="160">numeric_value_expression</text></a><rect x="493" y="148" width="42" height="18" class="terminal" rx="4"/> + <text class="terminal" x="497" y="160">GROUP</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#numeric-value-expression" xlink:title="numeric_value_expression" shape="rect"> + <rect x="543" y="148" width="132" height="18" class="nonterminal"/> + <text class="nonterminal" x="547" y="160">numeric_value_expression</text></a><rect x="703" y="127" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="707" y="139">)</text> + <path class="line" d="m17 10 h2 m0 0 h4 m90 0 h4 m0 0 h4 m12 0 h4 m20 0 h10 m0 0 h142 m-172 0 h20 m152 0 h20 m-192 0 q10 0 10 10 m172 0 q0 -10 10 -10 m-182 10 v1 m172 0 v-1 m-172 1 q0 10 10 10 m152 0 q10 0 10 -10 m-162 10 h4 m144 0 h4 m20 -21 h4 m138 0 h4 m20 0 h10 m0 0 h174 m-204 0 h20 m184 0 h20 m-224 0 q10 0 10 10 m204 0 q0 -10 10 -10 m-214 10 v1 m204 0 v-1 m-204 1 q0 10 10 10 m184 0 q10 0 10 -10 m-194 10 h4 m30 0 h4 m0 0 h4 m138 0 h4 m20 -21 h4 m18 0 h4 m2 0 l2 0 m2 0 l2 0 m2 0 l2 0 m-657 63 l2 0 m2 0 l2 0 m2 0 l2 0 m2 0 h4 m138 0 h4 m20 0 h10 m0 0 h174 m-204 0 h20 m184 0 h20 m-224 0 q10 0 10 10 m204 0 q0 -10 10 -10 m-214 10 v1 m204 0 v-1 m-204 1 q0 10 10 10 m184 0 q10 0 10 -10 m-194 10 h4 m36 0 h4 m0 0 h4 m132 0 h4 m40 -21 h10 m0 0 h134 m-164 0 h20 m144 0 h20 m-184 0 q10 0 10 10 m164 0 q0 -10 10 -10 m-174 10 v1 m164 0 v-1 m-164 1 q0 10 10 10 m144 0 q10 0 10 -10 m-154 10 h4 m38 0 h4 m0 0 h4 m90 0 h4 m22 -21 l2 0 m2 0 l2 0 m2 0 l2 0 m-459 63 l2 0 m2 0 l2 0 m2 0 l2 0 m22 0 h10 m0 0 h208 m-238 0 h20 m218 0 h20 m-258 0 q10 0 10 10 m238 0 q0 -10 10 -10 m-248 10 v1 m238 0 v-1 m-238 1 q0 10 10 10 m218 0 q10 0 10 -10 m-228 10 h4 m70 0 h4 m0 0 h4 m132 0 h4 m40 -21 h10 m0 0 h180 m-210 0 h20 m190 0 h20 m-230 0 q10 0 10 10 m210 0 q0 -10 10 -10 m-220 10 v1 m210 0 v-1 m-210 1 q0 10 10 10 m190 0 q10 0 10 -10 m-200 10 h4 m42 0 h4 m0 0 h4 m132 0 h4 m20 -21 h4 m12 0 h4 m3 0 h-3"/> + <polygon points="729 136 737 132 737 140"/> + <polygon points="729 136 721 132 721 140"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#regex-position-expression" title="regex_position_expression" shape="rect">regex_position_expression</a></div> + <div>         ::= 'POSITION_REGEX' '(' <a href="#regex-position-start-or-after" title="regex_position_start_or_after" shape="rect">regex_position_start_or_after</a>? <a href="#character-value-expression" title="character_value_expression" shape="rect">character_value_expression</a> ( 'FLAG' <a href="#character-value-expression" title="character_value_expression" shape="rect">character_value_expression</a> )? 'IN' <a href="#character-value-expression" title="character_value_expression" shape="rect">character_value_expression</a> ( 'FROM' <a href="#numeric-value-expression" title="numeric_value_expression" shape="rect">numeric_value_expression</a> )? ( 'USING' <a href="#char-length-units" title="char_length_units" shape="rect">char_length_units</a> )? ( 'OCCURRENCE' <a href="#numeric-value-expression" title="numeric_value_expression" shape="rect">numeric_value_expression</a> )? ( 'GROUP' <a href="#numeric-value-expression" title="numeric_value_expression" shape="rect">numeric_value_expression</a> )? ')'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#numeric-value-function" title="numeric-value-function">numeric-value-function</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + regex_position_start_or_after +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="123" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="43" y="1" width="36" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="13">START</text> + <rect x="43" y="29" width="36" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="41">AFTER</text> + <path class="line" d="m17 10 h2 m20 0 h4 m36 0 h4 m-64 0 h20 m44 0 h20 m-84 0 q10 0 10 10 m64 0 q0 -10 10 -10 m-74 10 v8 m64 0 v-8 m-64 8 q0 10 10 10 m44 0 q10 0 10 -10 m-54 10 h4 m36 0 h4 m23 -28 h-3"/> + <polygon points="113 10 121 6 121 14"/> + <polygon points="113 10 105 6 105 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#regex-position-start-or-after" title="regex_position_start_or_after" shape="rect">regex_position_start_or_after</a></div> + <div>         ::= 'START'</div> + <div>           | 'AFTER'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#regex-position-expression" title="regex-position-expression">regex-position-expression</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + character_position_expression +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="643" height="42"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="54" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">POSITION</text> + <rect x="85" y="1" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="89" y="13">(</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#character-value-expression" xlink:title="character_value_expression" shape="rect"> + <rect x="105" y="1" width="138" height="18" class="nonterminal"/> + <text class="nonterminal" x="109" y="13">character_value_expression</text></a><rect x="251" y="1" width="18" height="18" class="terminal" rx="4"/> + <text class="terminal" x="255" y="13">IN</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#character-value-expression" xlink:title="character_value_expression" shape="rect"> + <rect x="277" y="1" width="138" height="18" class="nonterminal"/> + <text class="nonterminal" x="281" y="13">character_value_expression</text></a><rect x="443" y="22" width="38" height="18" class="terminal" rx="4"/> + <text class="terminal" x="447" y="34">USING</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#char-length-units" xlink:title="char_length_units" shape="rect"> + <rect x="489" y="22" width="90" height="18" class="nonterminal"/> + <text class="nonterminal" x="493" y="34">char_length_units</text></a><rect x="607" y="1" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="611" y="13">)</text> + <path class="line" d="m17 10 h2 m0 0 h4 m54 0 h4 m0 0 h4 m12 0 h4 m0 0 h4 m138 0 h4 m0 0 h4 m18 0 h4 m0 0 h4 m138 0 h4 m20 0 h10 m0 0 h134 m-164 0 h20 m144 0 h20 m-184 0 q10 0 10 10 m164 0 q0 -10 10 -10 m-174 10 v1 m164 0 v-1 m-164 1 q0 10 10 10 m144 0 q10 0 10 -10 m-154 10 h4 m38 0 h4 m0 0 h4 m90 0 h4 m20 -21 h4 m12 0 h4 m3 0 h-3"/> + <polygon points="633 10 641 6 641 14"/> + <polygon points="633 10 625 6 625 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#character-position-expression" title="character_position_expression" shape="rect">character_position_expression</a></div> + <div>         ::= 'POSITION' '(' <a href="#character-value-expression" title="character_value_expression" shape="rect">character_value_expression</a> 'IN' <a href="#character-value-expression" title="character_value_expression" shape="rect">character_value_expression</a> ( 'USING' <a href="#char-length-units" title="char_length_units" shape="rect">char_length_units</a> )? ')'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#position-expression" title="position-expression">position-expression</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + binary_position_expression +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="427" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="54" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">POSITION</text> + <rect x="85" y="1" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="89" y="13">(</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#binary-value-expression" xlink:title="binary_value_expression" shape="rect"> + <rect x="105" y="1" width="122" height="18" class="nonterminal"/> + <text class="nonterminal" x="109" y="13">binary_value_expression</text></a><rect x="235" y="1" width="18" height="18" class="terminal" rx="4"/> + <text class="terminal" x="239" y="13">IN</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#binary-value-expression" xlink:title="binary_value_expression" shape="rect"> + <rect x="261" y="1" width="122" height="18" class="nonterminal"/> + <text class="nonterminal" x="265" y="13">binary_value_expression</text></a><rect x="391" y="1" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="395" y="13">)</text> + <path class="line" d="m17 10 h2 m0 0 h4 m54 0 h4 m0 0 h4 m12 0 h4 m0 0 h4 m122 0 h4 m0 0 h4 m18 0 h4 m0 0 h4 m122 0 h4 m0 0 h4 m12 0 h4 m3 0 h-3"/> + <polygon points="417 10 425 6 425 14"/> + <polygon points="417 10 409 6 409 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#binary-position-expression" title="binary_position_expression" shape="rect">binary_position_expression</a></div> + <div>         ::= 'POSITION' '(' <a href="#binary-value-expression" title="binary_value_expression" shape="rect">binary_value_expression</a> 'IN' <a href="#binary-value-expression" title="binary_value_expression" shape="rect">binary_value_expression</a> ')'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#position-expression" title="position-expression">position-expression</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + length_expression +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="209" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#char-length-expression" xlink:title="char_length_expression" shape="rect"> + <rect x="43" y="1" width="118" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">char_length_expression</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#octet-length-expression" xlink:title="octet_length_expression" shape="rect"> + <rect x="43" y="29" width="122" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">octet_length_expression</text></a><path class="line" d="m17 10 h2 m20 0 h4 m118 0 h4 m0 0 h4 m-150 0 h20 m130 0 h20 m-170 0 q10 0 10 10 m150 0 q0 -10 10 -10 m-160 10 v8 m150 0 v-8 m-150 8 q0 10 10 10 m130 0 q10 0 10 -10 m-140 10 h4 m122 0 h4 m23 -28 h-3"/> + <polygon points="199 10 207 6 207 14"/> + <polygon points="199 10 191 6 191 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#length-expression" title="length_expression" shape="rect">length_expression</a></div> + <div>         ::= <a href="#char-length-expression" title="char_length_expression" shape="rect">char_length_expression</a></div> + <div>           | <a href="#octet-length-expression" title="octet_length_expression" shape="rect">octet_length_expression</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#numeric-value-function" title="numeric-value-function">numeric-value-function</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + char_length_expression +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="561" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="43" y="1" width="76" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="13">CHAR_LENGTH</text> + <rect x="43" y="29" width="104" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="41">CHARACTER_LENGTH</text> + <rect x="175" y="1" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="179" y="13">(</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#character-value-expression" xlink:title="character_value_expression" shape="rect"> + <rect x="195" y="1" width="138" height="18" class="nonterminal"/> + <text class="nonterminal" x="199" y="13">character_value_expression</text></a><rect x="361" y="22" width="38" height="18" class="terminal" rx="4"/> + <text class="terminal" x="365" y="34">USING</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#char-length-units" xlink:title="char_length_units" shape="rect"> + <rect x="407" y="22" width="90" height="18" class="nonterminal"/> + <text class="nonterminal" x="411" y="34">char_length_units</text></a><rect x="525" y="1" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="529" y="13">)</text> + <path class="line" d="m17 10 h2 m20 0 h4 m76 0 h4 m0 0 h28 m-132 0 h20 m112 0 h20 m-152 0 q10 0 10 10 m132 0 q0 -10 10 -10 m-142 10 v8 m132 0 v-8 m-132 8 q0 10 10 10 m112 0 q10 0 10 -10 m-122 10 h4 m104 0 h4 m20 -28 h4 m12 0 h4 m0 0 h4 m138 0 h4 m20 0 h10 m0 0 h134 m-164 0 h20 m144 0 h20 m-184 0 q10 0 10 10 m164 0 q0 -10 10 -10 m-174 10 v1 m164 0 v-1 m-164 1 q0 10 10 10 m144 0 q10 0 10 -10 m-154 10 h4 m38 0 h4 m0 0 h4 m90 0 h4 m20 -21 h4 m12 0 h4 m3 0 h-3"/> + <polygon points="551 10 559 6 559 14"/> + <polygon points="551 10 543 6 543 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#char-length-expression" title="char_length_expression" shape="rect">char_length_expression</a></div> + <div>         ::= ( 'CHAR_LENGTH' | 'CHARACTER_LENGTH' ) '(' <a href="#character-value-expression" title="character_value_expression" shape="rect">character_value_expression</a> ( 'USING' <a href="#char-length-units" title="char_length_units" shape="rect">char_length_units</a> )? ')'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#length-expression" title="length-expression">length-expression</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + octet_length_expression +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="295" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="80" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">OCTET_LENGTH</text> + <rect x="111" y="1" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="115" y="13">(</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#string-value-expression" xlink:title="string_value_expression" shape="rect"> + <rect x="131" y="1" width="120" height="18" class="nonterminal"/> + <text class="nonterminal" x="135" y="13">string_value_expression</text></a><rect x="259" y="1" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="263" y="13">)</text> + <path class="line" d="m17 10 h2 m0 0 h4 m80 0 h4 m0 0 h4 m12 0 h4 m0 0 h4 m120 0 h4 m0 0 h4 m12 0 h4 m3 0 h-3"/> + <polygon points="285 10 293 6 293 14"/> + <polygon points="285 10 277 6 277 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#octet-length-expression" title="octet_length_expression" shape="rect">octet_length_expression</a></div> + <div>         ::= 'OCTET_LENGTH' '(' <a href="#string-value-expression" title="string_value_expression" shape="rect">string_value_expression</a> ')'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#length-expression" title="length-expression">length-expression</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + extract_expression +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="333" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="48" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">EXTRACT</text> + <rect x="79" y="1" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="83" y="13">(</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#extract-field" xlink:title="extract_field" shape="rect"> + <rect x="99" y="1" width="62" height="18" class="nonterminal"/> + <text class="nonterminal" x="103" y="13">extract_field</text></a><rect x="169" y="1" width="36" height="18" class="terminal" rx="4"/> + <text class="terminal" x="173" y="13">FROM</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#extract-source" xlink:title="extract_source" shape="rect"> + <rect x="213" y="1" width="76" height="18" class="nonterminal"/> + <text class="nonterminal" x="217" y="13">extract_source</text></a><rect x="297" y="1" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="301" y="13">)</text> + <path class="line" d="m17 10 h2 m0 0 h4 m48 0 h4 m0 0 h4 m12 0 h4 m0 0 h4 m62 0 h4 m0 0 h4 m36 0 h4 m0 0 h4 m76 0 h4 m0 0 h4 m12 0 h4 m3 0 h-3"/> + <polygon points="323 10 331 6 331 14"/> + <polygon points="323 10 315 6 315 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#extract-expression" title="extract_expression" shape="rect">extract_expression</a></div> + <div>         ::= 'EXTRACT' '(' <a href="#extract-field" title="extract_field" shape="rect">extract_field</a> 'FROM' <a href="#extract-source" title="extract_source" shape="rect">extract_source</a> ')'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#numeric-value-function" title="numeric-value-function">numeric-value-function</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + extract_field +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="201" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#primary-datetime-field" xlink:title="primary_datetime_field" shape="rect"> + <rect x="43" y="1" width="114" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">primary_datetime_field</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#time-zone-field" xlink:title="time_zone_field" shape="rect"> + <rect x="43" y="29" width="82" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">time_zone_field</text></a><path class="line" d="m17 10 h2 m20 0 h4 m114 0 h4 m-142 0 h20 m122 0 h20 m-162 0 q10 0 10 10 m142 0 q0 -10 10 -10 m-152 10 v8 m142 0 v-8 m-142 8 q0 10 10 10 m122 0 q10 0 10 -10 m-132 10 h4 m82 0 h4 m0 0 h32 m23 -28 h-3"/> + <polygon points="191 10 199 6 199 14"/> + <polygon points="191 10 183 6 183 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#extract-field" title="extract_field" shape="rect">extract_field</a></div> + <div>         ::= <a href="#primary-datetime-field" title="primary_datetime_field" shape="rect">primary_datetime_field</a></div> + <div>           | <a href="#time-zone-field" title="time_zone_field" shape="rect">time_zone_field</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#extract-expression" title="extract-expression">extract-expression</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + time_zone_field +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="185" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="43" y="1" width="90" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="13">TIMEZONE_HOUR</text> + <rect x="43" y="29" width="98" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="41">TIMEZONE_MINUTE</text> + <path class="line" d="m17 10 h2 m20 0 h4 m90 0 h4 m0 0 h8 m-126 0 h20 m106 0 h20 m-146 0 q10 0 10 10 m126 0 q0 -10 10 -10 m-136 10 v8 m126 0 v-8 m-126 8 q0 10 10 10 m106 0 q10 0 10 -10 m-116 10 h4 m98 0 h4 m23 -28 h-3"/> + <polygon points="175 10 183 6 183 14"/> + <polygon points="175 10 167 6 167 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#time-zone-field" title="time_zone_field" shape="rect">time_zone_field</a></div> + <div>         ::= 'TIMEZONE_HOUR'</div> + <div>           | 'TIMEZONE_MINUTE'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#extract-field" title="extract-field">extract-field</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + extract_source +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="223" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#datetime-value-expression" xlink:title="datetime_value_expression" shape="rect"> + <rect x="43" y="1" width="136" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">datetime_value_expression</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#interval-value-expression" xlink:title="interval_value_expression" shape="rect"> + <rect x="43" y="29" width="128" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">interval_value_expression</text></a><path class="line" d="m17 10 h2 m20 0 h4 m136 0 h4 m-164 0 h20 m144 0 h20 m-184 0 q10 0 10 10 m164 0 q0 -10 10 -10 m-174 10 v8 m164 0 v-8 m-164 8 q0 10 10 10 m144 0 q10 0 10 -10 m-154 10 h4 m128 0 h4 m0 0 h8 m23 -28 h-3"/> + <polygon points="213 10 221 6 221 14"/> + <polygon points="213 10 205 6 205 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#extract-source" title="extract_source" shape="rect">extract_source</a></div> + <div>         ::= <a href="#datetime-value-expression" title="datetime_value_expression" shape="rect">datetime_value_expression</a></div> + <div>           | <a href="#interval-value-expression" title="interval_value_expression" shape="rect">interval_value_expression</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#extract-expression" title="extract-expression">extract-expression</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + cardinality_expression +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="299" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="70" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">CARDINALITY</text> + <rect x="101" y="1" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="105" y="13">(</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#collection-value-expression" xlink:title="collection_value_expression" shape="rect"> + <rect x="121" y="1" width="134" height="18" class="nonterminal"/> + <text class="nonterminal" x="125" y="13">collection_value_expression</text></a><rect x="263" y="1" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="267" y="13">)</text> + <path class="line" d="m17 10 h2 m0 0 h4 m70 0 h4 m0 0 h4 m12 0 h4 m0 0 h4 m134 0 h4 m0 0 h4 m12 0 h4 m3 0 h-3"/> + <polygon points="289 10 297 6 297 14"/> + <polygon points="289 10 281 6 281 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#cardinality-expression" title="cardinality_expression" shape="rect">cardinality_expression</a></div> + <div>         ::= 'CARDINALITY' '(' <a href="#collection-value-expression" title="collection_value_expression" shape="rect">collection_value_expression</a> ')'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#numeric-value-function" title="numeric-value-function">numeric-value-function</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + max_cardinality_expression +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="309" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="96" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">MAX_CARDINALITY</text> + <rect x="127" y="1" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="131" y="13">(</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#array-value-expression" xlink:title="array_value_expression" shape="rect"> + <rect x="147" y="1" width="118" height="18" class="nonterminal"/> + <text class="nonterminal" x="151" y="13">array_value_expression</text></a><rect x="273" y="1" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="277" y="13">)</text> + <path class="line" d="m17 10 h2 m0 0 h4 m96 0 h4 m0 0 h4 m12 0 h4 m0 0 h4 m118 0 h4 m0 0 h4 m12 0 h4 m3 0 h-3"/> + <polygon points="299 10 307 6 307 14"/> + <polygon points="299 10 291 6 291 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#max-cardinality-expression" title="max_cardinality_expression" shape="rect">max_cardinality_expression</a></div> + <div>         ::= 'MAX_CARDINALITY' '(' <a href="#array-value-expression" title="array_value_expression" shape="rect">array_value_expression</a> ')'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#numeric-value-function" title="numeric-value-function">numeric-value-function</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + absolute_value_expression +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="253" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="26" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">ABS</text> + <rect x="57" y="1" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="61" y="13">(</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#numeric-value-expression" xlink:title="numeric_value_expression" shape="rect"> + <rect x="77" y="1" width="132" height="18" class="nonterminal"/> + <text class="nonterminal" x="81" y="13">numeric_value_expression</text></a><rect x="217" y="1" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="221" y="13">)</text> + <path class="line" d="m17 10 h2 m0 0 h4 m26 0 h4 m0 0 h4 m12 0 h4 m0 0 h4 m132 0 h4 m0 0 h4 m12 0 h4 m3 0 h-3"/> + <polygon points="243 10 251 6 251 14"/> + <polygon points="243 10 235 6 235 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#absolute-value-expression" title="absolute_value_expression" shape="rect">absolute_value_expression</a></div> + <div>         ::= 'ABS' '(' <a href="#numeric-value-expression" title="numeric_value_expression" shape="rect">numeric_value_expression</a> ')'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#numeric-value-function" title="numeric-value-function">numeric-value-function</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + modulus_expression +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="413" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="30" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">MOD</text> + <rect x="61" y="1" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="65" y="13">(</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#numeric-value-expression" xlink:title="numeric_value_expression" shape="rect"> + <rect x="81" y="1" width="132" height="18" class="nonterminal"/> + <text class="nonterminal" x="85" y="13">numeric_value_expression</text></a><rect x="221" y="1" width="8" height="18" class="terminal" rx="4"/> + <text class="terminal" x="225" y="13">,</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#numeric-value-expression" xlink:title="numeric_value_expression" shape="rect"> + <rect x="237" y="1" width="132" height="18" class="nonterminal"/> + <text class="nonterminal" x="241" y="13">numeric_value_expression</text></a><rect x="377" y="1" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="381" y="13">)</text> + <path class="line" d="m17 10 h2 m0 0 h4 m30 0 h4 m0 0 h4 m12 0 h4 m0 0 h4 m132 0 h4 m0 0 h4 m8 0 h4 m0 0 h4 m132 0 h4 m0 0 h4 m12 0 h4 m3 0 h-3"/> + <polygon points="403 10 411 6 411 14"/> + <polygon points="403 10 395 6 395 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#modulus-expression" title="modulus_expression" shape="rect">modulus_expression</a></div> + <div>         ::= 'MOD' '(' <a href="#numeric-value-expression" title="numeric_value_expression" shape="rect">numeric_value_expression</a> ',' <a href="#numeric-value-expression" title="numeric_value_expression" shape="rect">numeric_value_expression</a> ')'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#numeric-value-function" title="numeric-value-function">numeric-value-function</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + natural_logarithm +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="247" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="20" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">LN</text> + <rect x="51" y="1" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="55" y="13">(</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#numeric-value-expression" xlink:title="numeric_value_expression" shape="rect"> + <rect x="71" y="1" width="132" height="18" class="nonterminal"/> + <text class="nonterminal" x="75" y="13">numeric_value_expression</text></a><rect x="211" y="1" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="215" y="13">)</text> + <path class="line" d="m17 10 h2 m0 0 h4 m20 0 h4 m0 0 h4 m12 0 h4 m0 0 h4 m132 0 h4 m0 0 h4 m12 0 h4 m3 0 h-3"/> + <polygon points="237 10 245 6 245 14"/> + <polygon points="237 10 229 6 229 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#natural-logarithm" title="natural_logarithm" shape="rect">natural_logarithm</a></div> + <div>         ::= 'LN' '(' <a href="#numeric-value-expression" title="numeric_value_expression" shape="rect">numeric_value_expression</a> ')'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#numeric-value-function" title="numeric-value-function">numeric-value-function</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + exponential_function +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="251" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="24" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">EXP</text> + <rect x="55" y="1" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="59" y="13">(</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#numeric-value-expression" xlink:title="numeric_value_expression" shape="rect"> + <rect x="75" y="1" width="132" height="18" class="nonterminal"/> + <text class="nonterminal" x="79" y="13">numeric_value_expression</text></a><rect x="215" y="1" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="219" y="13">)</text> + <path class="line" d="m17 10 h2 m0 0 h4 m24 0 h4 m0 0 h4 m12 0 h4 m0 0 h4 m132 0 h4 m0 0 h4 m12 0 h4 m3 0 h-3"/> + <polygon points="241 10 249 6 249 14"/> + <polygon points="241 10 233 6 233 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#exponential-function" title="exponential_function" shape="rect">exponential_function</a></div> + <div>         ::= 'EXP' '(' <a href="#numeric-value-expression" title="numeric_value_expression" shape="rect">numeric_value_expression</a> ')'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#numeric-value-function" title="numeric-value-function">numeric-value-function</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + power_function +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="427" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="44" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">POWER</text> + <rect x="75" y="1" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="79" y="13">(</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#numeric-value-expression" xlink:title="numeric_value_expression" shape="rect"> + <rect x="95" y="1" width="132" height="18" class="nonterminal"/> + <text class="nonterminal" x="99" y="13">numeric_value_expression</text></a><rect x="235" y="1" width="8" height="18" class="terminal" rx="4"/> + <text class="terminal" x="239" y="13">,</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#numeric-value-expression" xlink:title="numeric_value_expression" shape="rect"> + <rect x="251" y="1" width="132" height="18" class="nonterminal"/> + <text class="nonterminal" x="255" y="13">numeric_value_expression</text></a><rect x="391" y="1" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="395" y="13">)</text> + <path class="line" d="m17 10 h2 m0 0 h4 m44 0 h4 m0 0 h4 m12 0 h4 m0 0 h4 m132 0 h4 m0 0 h4 m8 0 h4 m0 0 h4 m132 0 h4 m0 0 h4 m12 0 h4 m3 0 h-3"/> + <polygon points="417 10 425 6 425 14"/> + <polygon points="417 10 409 6 409 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#power-function" title="power_function" shape="rect">power_function</a></div> + <div>         ::= 'POWER' '(' <a href="#numeric-value-expression" title="numeric_value_expression" shape="rect">numeric_value_expression</a> ',' <a href="#numeric-value-expression" title="numeric_value_expression" shape="rect">numeric_value_expression</a> ')'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#numeric-value-function" title="numeric-value-function">numeric-value-function</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + square_root +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="261" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="34" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">SQRT</text> + <rect x="65" y="1" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="69" y="13">(</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#numeric-value-expression" xlink:title="numeric_value_expression" shape="rect"> + <rect x="85" y="1" width="132" height="18" class="nonterminal"/> + <text class="nonterminal" x="89" y="13">numeric_value_expression</text></a><rect x="225" y="1" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="229" y="13">)</text> + <path class="line" d="m17 10 h2 m0 0 h4 m34 0 h4 m0 0 h4 m12 0 h4 m0 0 h4 m132 0 h4 m0 0 h4 m12 0 h4 m3 0 h-3"/> + <polygon points="251 10 259 6 259 14"/> + <polygon points="251 10 243 6 243 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#square-root" title="square_root" shape="rect">square_root</a></div> + <div>         ::= 'SQRT' '(' <a href="#numeric-value-expression" title="numeric_value_expression" shape="rect">numeric_value_expression</a> ')'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#numeric-value-function" title="numeric-value-function">numeric-value-function</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + floor_function +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="267" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="40" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">FLOOR</text> + <rect x="71" y="1" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="75" y="13">(</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#numeric-value-expression" xlink:title="numeric_value_expression" shape="rect"> + <rect x="91" y="1" width="132" height="18" class="nonterminal"/> + <text class="nonterminal" x="95" y="13">numeric_value_expression</text></a><rect x="231" y="1" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="235" y="13">)</text> + <path class="line" d="m17 10 h2 m0 0 h4 m40 0 h4 m0 0 h4 m12 0 h4 m0 0 h4 m132 0 h4 m0 0 h4 m12 0 h4 m3 0 h-3"/> + <polygon points="257 10 265 6 265 14"/> + <polygon points="257 10 249 6 249 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#floor-function" title="floor_function" shape="rect">floor_function</a></div> + <div>         ::= 'FLOOR' '(' <a href="#numeric-value-expression" title="numeric_value_expression" shape="rect">numeric_value_expression</a> ')'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#numeric-value-function" title="numeric-value-function">numeric-value-function</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + ceiling_function +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="311" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="43" y="1" width="28" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="13">CEIL</text> + <rect x="43" y="29" width="44" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="41">CEILING</text> + <rect x="115" y="1" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="119" y="13">(</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#numeric-value-expression" xlink:title="numeric_value_expression" shape="rect"> + <rect x="135" y="1" width="132" height="18" class="nonterminal"/> + <text class="nonterminal" x="139" y="13">numeric_value_expression</text></a><rect x="275" y="1" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="279" y="13">)</text> + <path class="line" d="m17 10 h2 m20 0 h4 m28 0 h4 m0 0 h16 m-72 0 h20 m52 0 h20 m-92 0 q10 0 10 10 m72 0 q0 -10 10 -10 m-82 10 v8 m72 0 v-8 m-72 8 q0 10 10 10 m52 0 q10 0 10 -10 m-62 10 h4 m44 0 h4 m20 -28 h4 m12 0 h4 m0 0 h4 m132 0 h4 m0 0 h4 m12 0 h4 m3 0 h-3"/> + <polygon points="301 10 309 6 309 14"/> + <polygon points="301 10 293 6 293 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#ceiling-function" title="ceiling_function" shape="rect">ceiling_function</a></div> + <div>         ::= ( 'CEIL' | 'CEILING' ) '(' <a href="#numeric-value-expression" title="numeric_value_expression" shape="rect">numeric_value_expression</a> ')'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#numeric-value-function" title="numeric-value-function">numeric-value-function</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + width_bucket_function +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="791" height="84"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="82" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">WIDTH_BUCKET</text> + <rect x="113" y="1" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="117" y="13">(</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#numeric-value-expression" xlink:title="numeric_value_expression" shape="rect"> + <rect x="133" y="1" width="132" height="18" class="nonterminal"/> + <text class="nonterminal" x="137" y="13">numeric_value_expression</text></a><rect x="273" y="1" width="8" height="18" class="terminal" rx="4"/> + <text class="terminal" x="277" y="13">,</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#numeric-value-expression" xlink:title="numeric_value_expression" shape="rect"> + <rect x="289" y="1" width="132" height="18" class="nonterminal"/> + <text class="nonterminal" x="293" y="13">numeric_value_expression</text></a><rect x="449" y="22" width="8" height="18" class="terminal" rx="4"/> + <text class="terminal" x="453" y="34">,</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#numeric-value-expression" xlink:title="numeric_value_expression" shape="rect"> + <rect x="465" y="22" width="132" height="18" class="nonterminal"/> + <text class="nonterminal" x="469" y="34">numeric_value_expression</text></a><rect x="605" y="22" width="8" height="18" class="terminal" rx="4"/> + <text class="terminal" x="609" y="34">,</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#numeric-value-expression" xlink:title="numeric_value_expression" shape="rect"> + <rect x="621" y="22" width="132" height="18" class="nonterminal"/> + <text class="nonterminal" x="625" y="34">numeric_value_expression</text></a><rect x="755" y="64" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="759" y="76">)</text> + <path class="line" d="m17 10 h2 m0 0 h4 m82 0 h4 m0 0 h4 m12 0 h4 m0 0 h4 m132 0 h4 m0 0 h4 m8 0 h4 m0 0 h4 m132 0 h4 m20 0 h10 m0 0 h302 m-332 0 h20 m312 0 h20 m-352 0 q10 0 10 10 m332 0 q0 -10 10 -10 m-342 10 v1 m332 0 v-1 m-332 1 q0 10 10 10 m312 0 q10 0 10 -10 m-322 10 h4 m8 0 h4 m0 0 h4 m132 0 h4 m0 0 h4 m8 0 h4 m0 0 h4 m132 0 h4 m22 -21 l2 0 m2 0 l2 0 m2 0 l2 0 m-50 63 l2 0 m2 0 l2 0 m2 0 l2 0 m2 0 h4 m12 0 h4 m3 0 h-3"/> + <polygon points="781 73 789 69 789 77"/> + <polygon points="781 73 773 69 773 77"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#width-bucket-function" title="width_bucket_function" shape="rect">width_bucket_function</a></div> + <div>         ::= 'WIDTH_BUCKET' '(' <a href="#numeric-value-expression" title="numeric_value_expression" shape="rect">numeric_value_expression</a> ',' <a href="#numeric-value-expression" title="numeric_value_expression" shape="rect">numeric_value_expression</a> ( ',' <a href="#numeric-value-expression" title="numeric_value_expression" shape="rect">numeric_value_expression</a> ',' <a href="#numeric-value-expression" title="numeric_value_expression" shape="rect">numeric_value_expression</a> )? ')'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#numeric-value-function" title="numeric-value-function">numeric-value-function</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + string_value_expression +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="225" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#character-value-expression" xlink:title="character_value_expression" shape="rect"> + <rect x="43" y="1" width="138" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">character_value_expression</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#binary-value-expression" xlink:title="binary_value_expression" shape="rect"> + <rect x="43" y="29" width="122" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">binary_value_expression</text></a><path class="line" d="m17 10 h2 m20 0 h4 m138 0 h4 m-166 0 h20 m146 0 h20 m-186 0 q10 0 10 10 m166 0 q0 -10 10 -10 m-176 10 v8 m166 0 v-8 m-166 8 q0 10 10 10 m146 0 q10 0 10 -10 m-156 10 h4 m122 0 h4 m0 0 h16 m23 -28 h-3"/> + <polygon points="215 10 223 6 223 14"/> + <polygon points="215 10 207 6 207 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#string-value-expression" title="string_value_expression" shape="rect">string_value_expression</a></div> + <div>         ::= <a href="#character-value-expression" title="character_value_expression" shape="rect">character_value_expression</a></div> + <div>           | <a href="#binary-value-expression" title="binary_value_expression" shape="rect">binary_value_expression</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#common-value-expression" title="common-value-expression">common-value-expression</a></li><li><a href="#current-collation-specification" title="current-collation-specification">current-collation-specification</a></li><li><a href="#octet-length-expression" title="octet-length-expression">octet-length-expression</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + character_value_expression +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="251" height="42"> + <polygon points="9 31 1 27 1 35"/> + <polygon points="17 31 9 27 9 35"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#character-factor" xlink:title="character_factor" shape="rect"> + <rect x="23" y="22" width="82" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="34">character_factor</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#concatenation" xlink:title="concatenation" shape="rect"> + <rect x="133" y="1" width="74" height="18" class="nonterminal"/> + <text class="nonterminal" x="137" y="13">concatenation</text></a><path class="line" d="m17 31 h2 m0 0 h4 m82 0 h4 m20 0 h10 m0 0 h72 m-102 0 l20 0 m-1 0 q-9 0 -9 -10 l0 -1 q0 -10 10 -10 m82 21 l20 0 m-20 0 q10 0 10 -10 l0 -1 q0 -10 -10 -10 m-82 0 h4 m74 0 h4 m23 21 h-3"/> + <polygon points="241 31 249 27 249 35"/> + <polygon points="241 31 233 27 233 35"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#character-value-expression" title="character_value_expression" shape="rect">character_value_expression</a></div> + <div>         ::= <a href="#character-factor" title="character_factor" shape="rect">character_factor</a> <a href="#concatenation" title="concatenation" shape="rect">concatenation</a>*</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#char-length-expression" title="char-length-expression">char-length-expression</a></li><li><a href="#character-like-predicate-part-2" title="character-like-predicate-part-2">character-like-predicate-part-2</a></li><li><a href="#character-overlay-function" title="character-overlay-function">character-overlay-function</a></li><li><a href="#character-position-expression" title="character-position-expression">character-position-expression</a></li><li><a href="#character-substring-function" title="character-substring-function">character-substring-function</a></li><li><a href="#character-transliteration" title="character-transliteration">character-transliteration</a></li><li><a href="#fold" title="fold">fold</a></li><li><a href="#normalize-function" title="normalize-function">normalize-function</a></li><li><a href="#numeric-primary" title="numeric-primary">numeric-primary</a></li><li><a href="#regex-like-predicate-part-2" title="regex-like-predicate-part-2">regex-like-predicate-part-2</a></li><li><a href="#regex-occurrences-function" title="regex-occurrences-function">regex-occurrences-function</a></li><li><a href="#regex-position-expression" title="regex-position-expression">regex-position-expression</a></li><li><a href="#regex-substring-function" title="regex-substring-function">regex-substring-function</a></li><li><a href="#regex-transliteration" title="regex-transliteration">regex-transliteration</a></li><li><a href="#regular-expression-substring-function" title="regular-expression-substring-function">regular-expression-substring-function</a></li><li><a href="#similar-predicate-part-2" title="similar-predicate-part-2">similar-predicate-part-2</a></li><li><a href="#string-value-expression" title="string-value-expression">string-value-expression</a></li><li><a href="#transcoding" title="transcoding">transcoding</a></li><li><a href="#trim-operands" title="trim-operands">trim-operands</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + concatenation +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="151" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="14" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">||</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#character-factor" xlink:title="character_factor" shape="rect"> + <rect x="45" y="1" width="82" height="18" class="nonterminal"/> + <text class="nonterminal" x="49" y="13">character_factor</text></a><path class="line" d="m17 10 h2 m0 0 h4 m14 0 h4 m0 0 h4 m82 0 h4 m3 0 h-3"/> + <polygon points="141 10 149 6 149 14"/> + <polygon points="141 10 133 6 133 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#concatenation" title="concatenation" shape="rect">concatenation</a></div> + <div>         ::= '||' <a href="#character-factor" title="character_factor" shape="rect">character_factor</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#character-value-expression" title="character-value-expression">character-value-expression</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + character_factor +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="259" height="42"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#character-primary" xlink:title="character_primary" shape="rect"> + <rect x="23" y="1" width="92" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">character_primary</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#collate-clause" xlink:title="collate_clause" shape="rect"> + <rect x="143" y="22" width="72" height="18" class="nonterminal"/> + <text class="nonterminal" x="147" y="34">collate_clause</text></a><path class="line" d="m17 10 h2 m0 0 h4 m92 0 h4 m20 0 h10 m0 0 h70 m-100 0 h20 m80 0 h20 m-120 0 q10 0 10 10 m100 0 q0 -10 10 -10 m-110 10 v1 m100 0 v-1 m-100 1 q0 10 10 10 m80 0 q10 0 10 -10 m-90 10 h4 m72 0 h4 m23 -21 h-3"/> + <polygon points="249 10 257 6 257 14"/> + <polygon points="249 10 241 6 241 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#character-factor" title="character_factor" shape="rect">character_factor</a></div> + <div>         ::= <a href="#character-primary" title="character_primary" shape="rect">character_primary</a> <a href="#collate-clause" title="collate_clause" shape="rect">collate_clause</a>?</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#character-value-expression" title="character-value-expression">character-value-expression</a></li><li><a href="#concatenation" title="concatenation">concatenation</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + character_primary +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="209" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#string-value-function" xlink:title="string_value_function" shape="rect"> + <rect x="43" y="1" width="106" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">string_value_function</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#binary-value-expression" xlink:title="binary_value_expression" shape="rect"> + <rect x="43" y="29" width="122" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">binary_value_expression</text></a><path class="line" d="m17 10 h2 m20 0 h4 m106 0 h4 m0 0 h16 m-150 0 h20 m130 0 h20 m-170 0 q10 0 10 10 m150 0 q0 -10 10 -10 m-160 10 v8 m150 0 v-8 m-150 8 q0 10 10 10 m130 0 q10 0 10 -10 m-140 10 h4 m122 0 h4 m23 -28 h-3"/> + <polygon points="199 10 207 6 207 14"/> + <polygon points="199 10 191 6 191 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#character-primary" title="character_primary" shape="rect">character_primary</a></div> + <div>         ::= <a href="#string-value-function" title="string_value_function" shape="rect">string_value_function</a></div> + <div>           | <a href="#binary-value-expression" title="binary_value_expression" shape="rect">binary_value_expression</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#character-factor" title="character-factor">character-factor</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + binary_value_expression +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="279" height="42"> + <polygon points="9 31 1 27 1 35"/> + <polygon points="17 31 9 27 9 35"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#binary-primary" xlink:title="binary_primary" shape="rect"> + <rect x="23" y="22" width="78" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="34">binary_primary</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#binary-concatenation" xlink:title="binary_concatenation" shape="rect"> + <rect x="129" y="1" width="106" height="18" class="nonterminal"/> + <text class="nonterminal" x="133" y="13">binary_concatenation</text></a><path class="line" d="m17 31 h2 m0 0 h4 m78 0 h4 m20 0 h10 m0 0 h104 m-134 0 l20 0 m-1 0 q-9 0 -9 -10 l0 -1 q0 -10 10 -10 m114 21 l20 0 m-20 0 q10 0 10 -10 l0 -1 q0 -10 -10 -10 m-114 0 h4 m106 0 h4 m23 21 h-3"/> + <polygon points="269 31 277 27 277 35"/> + <polygon points="269 31 261 27 261 35"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#binary-value-expression" title="binary_value_expression" shape="rect">binary_value_expression</a></div> + <div>         ::= <a href="#binary-primary" title="binary_primary" shape="rect">binary_primary</a> <a href="#binary-concatenation" title="binary_concatenation" shape="rect">binary_concatenation</a>*</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#binary-overlay-function" title="binary-overlay-function">binary-overlay-function</a></li><li><a href="#binary-position-expression" title="binary-position-expression">binary-position-expression</a></li><li><a href="#binary-substring-function" title="binary-substring-function">binary-substring-function</a></li><li><a href="#binary-trim-operands" title="binary-trim-operands">binary-trim-operands</a></li><li><a href="#character-primary" title="character-primary">character-primary</a></li><li><a href="#octet-like-predicate-part-2" title="octet-like-predicate-part-2">octet-like-predicate-part-2</a></li><li><a href="#string-value-expression" title="string-value-expression">string-value-expression</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + binary_primary +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="223" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#string-value-function" xlink:title="string_value_function" shape="rect"> + <rect x="43" y="1" width="106" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">string_value_function</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#datetime-value-expression" xlink:title="datetime_value_expression" shape="rect"> + <rect x="43" y="29" width="136" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">datetime_value_expression</text></a><path class="line" d="m17 10 h2 m20 0 h4 m106 0 h4 m0 0 h30 m-164 0 h20 m144 0 h20 m-184 0 q10 0 10 10 m164 0 q0 -10 10 -10 m-174 10 v8 m164 0 v-8 m-164 8 q0 10 10 10 m144 0 q10 0 10 -10 m-154 10 h4 m136 0 h4 m23 -28 h-3"/> + <polygon points="213 10 221 6 221 14"/> + <polygon points="213 10 205 6 205 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#binary-primary" title="binary_primary" shape="rect">binary_primary</a></div> + <div>         ::= <a href="#string-value-function" title="string_value_function" shape="rect">string_value_function</a></div> + <div>           | <a href="#datetime-value-expression" title="datetime_value_expression" shape="rect">datetime_value_expression</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#binary-concatenation" title="binary-concatenation">binary-concatenation</a></li><li><a href="#binary-value-expression" title="binary-value-expression">binary-value-expression</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + binary_concatenation +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="147" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="14" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">||</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#binary-primary" xlink:title="binary_primary" shape="rect"> + <rect x="45" y="1" width="78" height="18" class="nonterminal"/> + <text class="nonterminal" x="49" y="13">binary_primary</text></a><path class="line" d="m17 10 h2 m0 0 h4 m14 0 h4 m0 0 h4 m78 0 h4 m3 0 h-3"/> + <polygon points="137 10 145 6 145 14"/> + <polygon points="137 10 129 6 129 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#binary-concatenation" title="binary_concatenation" shape="rect">binary_concatenation</a></div> + <div>         ::= '||' <a href="#binary-primary" title="binary_primary" shape="rect">binary_primary</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#binary-value-expression" title="binary-value-expression">binary-value-expression</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + string_value_function +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="209" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#character-value-function" xlink:title="character_value_function" shape="rect"> + <rect x="43" y="1" width="122" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">character_value_function</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#binary-value-function" xlink:title="binary_value_function" shape="rect"> + <rect x="43" y="29" width="108" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">binary_value_function</text></a><path class="line" d="m17 10 h2 m20 0 h4 m122 0 h4 m-150 0 h20 m130 0 h20 m-170 0 q10 0 10 10 m150 0 q0 -10 10 -10 m-160 10 v8 m150 0 v-8 m-150 8 q0 10 10 10 m130 0 q10 0 10 -10 m-140 10 h4 m108 0 h4 m0 0 h14 m23 -28 h-3"/> + <polygon points="199 10 207 6 207 14"/> + <polygon points="199 10 191 6 191 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#string-value-function" title="string_value_function" shape="rect">string_value_function</a></div> + <div>         ::= <a href="#character-value-function" title="character_value_function" shape="rect">character_value_function</a></div> + <div>           | <a href="#binary-value-function" title="binary_value_function" shape="rect">binary_value_function</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#binary-primary" title="binary-primary">binary-primary</a></li><li><a href="#character-primary" title="character-primary">character-primary</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + character_value_function +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="271" height="301"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#character-substring-function" xlink:title="character_substring_function" shape="rect"> + <rect x="43" y="1" width="140" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">character_substring_function</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#regular-expression-substring-function" xlink:title="regular_expression_substring_function" shape="rect"> + <rect x="43" y="29" width="184" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">regular_expression_substring_function</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#regex-substring-function" xlink:title="regex_substring_function" shape="rect"> + <rect x="43" y="57" width="124" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="69">regex_substring_function</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#fold" xlink:title="fold" shape="rect"> + <rect x="43" y="85" width="26" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="97">fold</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#transcoding" xlink:title="transcoding" shape="rect"> + <rect x="43" y="113" width="62" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="125">transcoding</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#character-transliteration" xlink:title="character_transliteration" shape="rect"> + <rect x="43" y="141" width="118" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="153">character_transliteration</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#regex-transliteration" xlink:title="regex_transliteration" shape="rect"> + <rect x="43" y="169" width="102" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="181">regex_transliteration</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#trim-function" xlink:title="trim_function" shape="rect"> + <rect x="43" y="197" width="68" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="209">trim_function</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#character-overlay-function" xlink:title="character_overlay_function" shape="rect"> + <rect x="43" y="225" width="130" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="237">character_overlay_function</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#normalize-function" xlink:title="normalize_function" shape="rect"> + <rect x="43" y="253" width="94" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="265">normalize_function</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#specific-type-method" xlink:title="specific_type_method" shape="rect"> + <rect x="43" y="281" width="108" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="293">specific_type_method</text></a><path class="line" d="m17 10 h2 m20 0 h4 m140 0 h4 m0 0 h44 m-212 0 h20 m192 0 h20 m-232 0 q10 0 10 10 m212 0 q0 -10 10 -10 m-222 10 v8 m212 0 v-8 m-212 8 q0 10 10 10 m192 0 q10 0 10 -10 m-202 10 h4 m184 0 h4 m-202 -10 v20 m212 0 v-20 m-212 20 v8 m212 0 v-8 m-212 8 q0 10 10 10 m192 0 q10 0 10 -10 m-202 10 h4 m124 0 h4 m0 0 h60 m-202 -10 v20 m212 0 v-20 m-212 20 v8 m212 0 v-8 m-212 8 q0 10 10 10 m192 0 q10 0 10 -10 m-202 10 h4 m26 0 h4 m0 0 h158 m-202 -10 v20 m212 0 v-20 m-212 20 v8 m212 0 v-8 m-212 8 q0 10 10 10 m192 0 q10 0 10 -10 m-202 10 h4 m62 0 h4 m0 0 h122 m-202 -10 v20 m212 0 v-20 m-212 20 v8 m212 0 v-8 m-212 8 q0 10 10 10 m192 0 q10 0 10 -10 m-202 10 h4 m118 0 h4 m0 0 h66 m-202 -10 v20 m212 0 v-20 m-212 20 v8 m212 0 v-8 m-212 8 q0 10 10 10 m192 0 q10 0 10 -10 m-202 10 h4 m102 0 h4 m0 0 h82 m-202 -10 v20 m212 0 v-20 m-212 20 v8 m212 0 v-8 m-212 8 q0 10 10 10 m192 0 q10 0 10 -10 m-202 10 h4 m68 0 h4 m0 0 h116 m-202 -10 v20 m212 0 v-20 m-212 20 v8 m212 0 v-8 m-212 8 q0 10 10 10 m192 0 q10 0 10 -10 m-202 10 h4 m130 0 h4 m0 0 h54 m-202 -10 v20 m212 0 v-20 m-212 20 v8 m212 0 v-8 m-212 8 q0 10 10 10 m192 0 q10 0 10 -10 m-202 10 h4 m94 0 h4 m0 0 h90 m-202 -10 v20 m212 0 v-20 m-212 20 v8 m212 0 v-8 m-212 8 q0 10 10 10 m192 0 q10 0 10 -10 m-202 10 h4 m108 0 h4 m0 0 h76 m23 -280 h-3"/> + <polygon points="261 10 269 6 269 14"/> + <polygon points="261 10 253 6 253 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#character-value-function" title="character_value_function" shape="rect">character_value_function</a></div> + <div>         ::= <a href="#character-substring-function" title="character_substring_function" shape="rect">character_substring_function</a></div> + <div>           | <a href="#regular-expression-substring-function" title="regular_expression_substring_function" shape="rect">regular_expression_substring_function</a></div> + <div>           | <a href="#regex-substring-function" title="regex_substring_function" shape="rect">regex_substring_function</a></div> + <div>           | <a href="#fold" title="fold" shape="rect">fold</a></div> + <div>           | <a href="#transcoding" title="transcoding" shape="rect">transcoding</a></div> + <div>           | <a href="#character-transliteration" title="character_transliteration" shape="rect">character_transliteration</a></div> + <div>           | <a href="#regex-transliteration" title="regex_transliteration" shape="rect">regex_transliteration</a></div> + <div>           | <a href="#trim-function" title="trim_function" shape="rect">trim_function</a></div> + <div>           | <a href="#character-overlay-function" title="character_overlay_function" shape="rect">character_overlay_function</a></div> + <div>           | <a href="#normalize-function" title="normalize_function" shape="rect">normalize_function</a></div> + <div>           | <a href="#specific-type-method" title="specific_type_method" shape="rect">specific_type_method</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#string-value-function" title="string-value-function">string-value-function</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + character_substring_function +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="667" height="105"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="62" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">SUBSTRING</text> + <rect x="93" y="1" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="97" y="13">(</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#character-value-expression" xlink:title="character_value_expression" shape="rect"> + <rect x="113" y="1" width="138" height="18" class="nonterminal"/> + <text class="nonterminal" x="117" y="13">character_value_expression</text></a><rect x="259" y="1" width="36" height="18" class="terminal" rx="4"/> + <text class="terminal" x="263" y="13">FROM</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#numeric-value-expression" xlink:title="numeric_value_expression" shape="rect"> + <rect x="303" y="1" width="132" height="18" class="nonterminal"/> + <text class="nonterminal" x="307" y="13">numeric_value_expression</text></a><rect x="463" y="22" width="26" height="18" class="terminal" rx="4"/> + <text class="terminal" x="467" y="34">FOR</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#numeric-value-expression" xlink:title="numeric_value_expression" shape="rect"> + <rect x="497" y="22" width="132" height="18" class="nonterminal"/> + <text class="nonterminal" x="501" y="34">numeric_value_expression</text></a><rect x="467" y="85" width="38" height="18" class="terminal" rx="4"/> + <text class="terminal" x="471" y="97">USING</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#char-length-units" xlink:title="char_length_units" shape="rect"> + <rect x="513" y="85" width="90" height="18" class="nonterminal"/> + <text class="nonterminal" x="517" y="97">char_length_units</text></a><rect x="631" y="64" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="635" y="76">)</text> + <path class="line" d="m17 10 h2 m0 0 h4 m62 0 h4 m0 0 h4 m12 0 h4 m0 0 h4 m138 0 h4 m0 0 h4 m36 0 h4 m0 0 h4 m132 0 h4 m20 0 h10 m0 0 h164 m-194 0 h20 m174 0 h20 m-214 0 q10 0 10 10 m194 0 q0 -10 10 -10 m-204 10 v1 m194 0 v-1 m-194 1 q0 10 10 10 m174 0 q10 0 10 -10 m-184 10 h4 m26 0 h4 m0 0 h4 m132 0 h4 m22 -21 l2 0 m2 0 l2 0 m2 0 l2 0 m-234 63 l2 0 m2 0 l2 0 m2 0 l2 0 m22 0 h10 m0 0 h134 m-164 0 h20 m144 0 h20 m-184 0 q10 0 10 10 m164 0 q0 -10 10 -10 m-174 10 v1 m164 0 v-1 m-164 1 q0 10 10 10 m144 0 q10 0 10 -10 m-154 10 h4 m38 0 h4 m0 0 h4 m90 0 h4 m20 -21 h4 m12 0 h4 m3 0 h-3"/> + <polygon points="657 73 665 69 665 77"/> + <polygon points="657 73 649 69 649 77"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#character-substring-function" title="character_substring_function" shape="rect">character_substring_function</a></div> + <div>         ::= 'SUBSTRING' '(' <a href="#character-value-expression" title="character_value_expression" shape="rect">character_value_expression</a> 'FROM' <a href="#numeric-value-expression" title="numeric_value_expression" shape="rect">numeric_value_expression</a> ( 'FOR' <a href="#numeric-value-expression" title="numeric_value_expression" shape="rect">numeric_value_expression</a> )? ( 'USING' <a href="#char-length-units" title="char_length_units" shape="rect">char_length_units</a> )? ')'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#character-value-function" title="character-value-function">character-value-function</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + regular_expression_substring_function +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="691" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="62" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">SUBSTRING</text> + <rect x="93" y="1" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="97" y="13">(</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#character-value-expression" xlink:title="character_value_expression" shape="rect"> + <rect x="113" y="1" width="138" height="18" class="nonterminal"/> + <text class="nonterminal" x="117" y="13">character_value_expression</text></a><rect x="259" y="1" width="46" height="18" class="terminal" rx="4"/> + <text class="terminal" x="263" y="13">SIMILAR</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#character-value-expression" xlink:title="character_value_expression" shape="rect"> + <rect x="313" y="1" width="138" height="18" class="nonterminal"/> + <text class="nonterminal" x="317" y="13">character_value_expression</text></a><rect x="459" y="1" width="42" height="18" class="terminal" rx="4"/> + <text class="terminal" x="463" y="13">ESCAPE</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#character-value-expression" xlink:title="character_value_expression" shape="rect"> + <rect x="509" y="1" width="138" height="18" class="nonterminal"/> + <text class="nonterminal" x="513" y="13">character_value_expression</text></a><rect x="655" y="1" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="659" y="13">)</text> + <path class="line" d="m17 10 h2 m0 0 h4 m62 0 h4 m0 0 h4 m12 0 h4 m0 0 h4 m138 0 h4 m0 0 h4 m46 0 h4 m0 0 h4 m138 0 h4 m0 0 h4 m42 0 h4 m0 0 h4 m138 0 h4 m0 0 h4 m12 0 h4 m3 0 h-3"/> + <polygon points="681 10 689 6 689 14"/> + <polygon points="681 10 673 6 673 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#regular-expression-substring-function" title="regular_expression_substring_function" shape="rect">regular_expression_substring_function</a></div> + <div>         ::= 'SUBSTRING' '(' <a href="#character-value-expression" title="character_value_expression" shape="rect">character_value_expression</a> 'SIMILAR' <a href="#character-value-expression" title="character_value_expression" shape="rect">character_value_expression</a> 'ESCAPE' <a href="#character-value-expression" title="character_value_expression" shape="rect">character_value_expression</a> ')'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#character-value-function" title="character-value-function">character-value-function</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + regex_substring_function +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="699" height="159"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="96" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">SUBSTRING_REGEX</text> + <rect x="127" y="1" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="131" y="13">(</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#character-value-expression" xlink:title="character_value_expression" shape="rect"> + <rect x="147" y="1" width="138" height="18" class="nonterminal"/> + <text class="nonterminal" x="151" y="13">character_value_expression</text></a><rect x="313" y="22" width="30" height="18" class="terminal" rx="4"/> + <text class="terminal" x="317" y="34">FLAG</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#character-value-expression" xlink:title="character_value_expression" shape="rect"> + <rect x="351" y="22" width="138" height="18" class="nonterminal"/> + <text class="nonterminal" x="355" y="34">character_value_expression</text></a><rect x="517" y="1" width="18" height="18" class="terminal" rx="4"/> + <text class="terminal" x="521" y="13">IN</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#character-value-expression" xlink:title="character_value_expression" shape="rect"> + <rect x="543" y="1" width="138" height="18" class="nonterminal"/> + <text class="nonterminal" x="547" y="13">character_value_expression</text></a><rect x="40" y="76" width="36" height="18" class="terminal" rx="4"/> + <text class="terminal" x="44" y="88">FROM</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#numeric-value-expression" xlink:title="numeric_value_expression" shape="rect"> + <rect x="84" y="76" width="132" height="18" class="nonterminal"/> + <text class="nonterminal" x="88" y="88">numeric_value_expression</text></a><rect x="264" y="76" width="38" height="18" class="terminal" rx="4"/> + <text class="terminal" x="268" y="88">USING</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#char-length-units" xlink:title="char_length_units" shape="rect"> + <rect x="310" y="76" width="90" height="18" class="nonterminal"/> + <text class="nonterminal" x="314" y="88">char_length_units</text></a><rect x="448" y="76" width="70" height="18" class="terminal" rx="4"/> + <text class="terminal" x="452" y="88">OCCURRENCE</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#numeric-value-expression" xlink:title="numeric_value_expression" shape="rect"> + <rect x="526" y="76" width="132" height="18" class="nonterminal"/> + <text class="nonterminal" x="530" y="88">numeric_value_expression</text></a><rect x="453" y="139" width="42" height="18" class="terminal" rx="4"/> + <text class="terminal" x="457" y="151">GROUP</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#numeric-value-expression" xlink:title="numeric_value_expression" shape="rect"> + <rect x="503" y="139" width="132" height="18" class="nonterminal"/> + <text class="nonterminal" x="507" y="151">numeric_value_expression</text></a><rect x="663" y="118" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="667" y="130">)</text> + <path class="line" d="m17 10 h2 m0 0 h4 m96 0 h4 m0 0 h4 m12 0 h4 m0 0 h4 m138 0 h4 m20 0 h10 m0 0 h174 m-204 0 h20 m184 0 h20 m-224 0 q10 0 10 10 m204 0 q0 -10 10 -10 m-214 10 v1 m204 0 v-1 m-204 1 q0 10 10 10 m184 0 q10 0 10 -10 m-194 10 h4 m30 0 h4 m0 0 h4 m138 0 h4 m20 -21 h4 m18 0 h4 m0 0 h4 m138 0 h4 m2 0 l2 0 m2 0 l2 0 m2 0 l2 0 m-693 54 l2 0 m2 0 l2 0 m2 0 l2 0 m22 0 h10 m0 0 h174 m-204 0 h20 m184 0 h20 m-224 0 q10 0 10 10 m204 0 q0 -10 10 -10 m-214 10 v1 m204 0 v-1 m-204 1 q0 10 10 10 m184 0 q10 0 10 -10 m-194 10 h4 m36 0 h4 m0 0 h4 m132 0 h4 m40 -21 h10 m0 0 h134 m-164 0 h20 m144 0 h20 m-184 0 q10 0 10 10 m164 0 q0 -10 10 -10 m-174 10 v1 m164 0 v-1 m-164 1 q0 10 10 10 m144 0 q10 0 10 -10 m-154 10 h4 m38 0 h4 m0 0 h4 m90 0 h4 m40 -21 h10 m0 0 h208 m-238 0 h20 m218 0 h20 m-258 0 q10 0 10 10 m238 0 q0 -10 10 -10 m-248 10 v1 m238 0 v-1 m-238 1 q0 10 10 10 m218 0 q10 0 10 -10 m-228 10 h4 m70 0 h4 m0 0 h4 m132 0 h4 m22 -21 l2 0 m2 0 l2 0 m2 0 l2 0 m-277 63 l2 0 m2 0 l2 0 m2 0 l2 0 m22 0 h10 m0 0 h180 m-210 0 h20 m190 0 h20 m-230 0 q10 0 10 10 m210 0 q0 -10 10 -10 m-220 10 v1 m210 0 v-1 m-210 1 q0 10 10 10 m190 0 q10 0 10 -10 m-200 10 h4 m42 0 h4 m0 0 h4 m132 0 h4 m20 -21 h4 m12 0 h4 m3 0 h-3"/> + <polygon points="689 127 697 123 697 131"/> + <polygon points="689 127 681 123 681 131"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#regex-substring-function" title="regex_substring_function" shape="rect">regex_substring_function</a></div> + <div>         ::= 'SUBSTRING_REGEX' '(' <a href="#character-value-expression" title="character_value_expression" shape="rect">character_value_expression</a> ( 'FLAG' <a href="#character-value-expression" title="character_value_expression" shape="rect">character_value_expression</a> )? 'IN' <a href="#character-value-expression" title="character_value_expression" shape="rect">character_value_expression</a> ( 'FROM' <a href="#numeric-value-expression" title="numeric_value_expression" shape="rect">numeric_value_expression</a> )? ( 'USING' <a href="#char-length-units" title="char_length_units" shape="rect">char_length_units</a> )? ( 'OCCURRENCE' <a href="#numeric-value-expression" title="numeric_value_expression" shape="rect">numeric_value_expression</a> )? ( 'GROUP' <a href="#numeric-value-expression" title="numeric_value_expression" shape="rect">numeric_value_expression</a> )? ')'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#character-value-function" title="character-value-function">character-value-function</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + fold +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="317" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="43" y="1" width="38" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="13">UPPER</text> + <rect x="43" y="29" width="44" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="41">LOWER</text> + <rect x="115" y="1" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="119" y="13">(</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#character-value-expression" xlink:title="character_value_expression" shape="rect"> + <rect x="135" y="1" width="138" height="18" class="nonterminal"/> + <text class="nonterminal" x="139" y="13">character_value_expression</text></a><rect x="281" y="1" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="285" y="13">)</text> + <path class="line" d="m17 10 h2 m20 0 h4 m38 0 h4 m0 0 h6 m-72 0 h20 m52 0 h20 m-92 0 q10 0 10 10 m72 0 q0 -10 10 -10 m-82 10 v8 m72 0 v-8 m-72 8 q0 10 10 10 m52 0 q10 0 10 -10 m-62 10 h4 m44 0 h4 m20 -28 h4 m12 0 h4 m0 0 h4 m138 0 h4 m0 0 h4 m12 0 h4 m3 0 h-3"/> + <polygon points="307 10 315 6 315 14"/> + <polygon points="307 10 299 6 299 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#fold" title="fold" shape="rect">fold</a>     ::= ( 'UPPER' | 'LOWER' ) '(' <a href="#character-value-expression" title="character_value_expression" shape="rect">character_value_expression</a> ')'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#character-value-function" title="character-value-function">character-value-function</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + transcoding +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="461" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="52" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">CONVERT</text> + <rect x="83" y="1" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="87" y="13">(</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#character-value-expression" xlink:title="character_value_expression" shape="rect"> + <rect x="103" y="1" width="138" height="18" class="nonterminal"/> + <text class="nonterminal" x="107" y="13">character_value_expression</text></a><rect x="249" y="1" width="38" height="18" class="terminal" rx="4"/> + <text class="terminal" x="253" y="13">USING</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#schema-qualified-name" xlink:title="schema_qualified_name" shape="rect"> + <rect x="295" y="1" width="122" height="18" class="nonterminal"/> + <text class="nonterminal" x="299" y="13">schema_qualified_name</text></a><rect x="425" y="1" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="429" y="13">)</text> + <path class="line" d="m17 10 h2 m0 0 h4 m52 0 h4 m0 0 h4 m12 0 h4 m0 0 h4 m138 0 h4 m0 0 h4 m38 0 h4 m0 0 h4 m122 0 h4 m0 0 h4 m12 0 h4 m3 0 h-3"/> + <polygon points="451 10 459 6 459 14"/> + <polygon points="451 10 443 6 443 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#transcoding" title="transcoding" shape="rect">transcoding</a></div> + <div>         ::= 'CONVERT' '(' <a href="#character-value-expression" title="character_value_expression" shape="rect">character_value_expression</a> 'USING' <a href="#schema-qualified-name" title="schema_qualified_name" shape="rect">schema_qualified_name</a> ')'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#character-value-function" title="character-value-function">character-value-function</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + character_transliteration +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="469" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="60" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">TRANSLATE</text> + <rect x="91" y="1" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="95" y="13">(</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#character-value-expression" xlink:title="character_value_expression" shape="rect"> + <rect x="111" y="1" width="138" height="18" class="nonterminal"/> + <text class="nonterminal" x="115" y="13">character_value_expression</text></a><rect x="257" y="1" width="38" height="18" class="terminal" rx="4"/> + <text class="terminal" x="261" y="13">USING</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#schema-qualified-name" xlink:title="schema_qualified_name" shape="rect"> + <rect x="303" y="1" width="122" height="18" class="nonterminal"/> + <text class="nonterminal" x="307" y="13">schema_qualified_name</text></a><rect x="433" y="1" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="437" y="13">)</text> + <path class="line" d="m17 10 h2 m0 0 h4 m60 0 h4 m0 0 h4 m12 0 h4 m0 0 h4 m138 0 h4 m0 0 h4 m38 0 h4 m0 0 h4 m122 0 h4 m0 0 h4 m12 0 h4 m3 0 h-3"/> + <polygon points="459 10 467 6 467 14"/> + <polygon points="459 10 451 6 451 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#character-transliteration" title="character_transliteration" shape="rect">character_transliteration</a></div> + <div>         ::= 'TRANSLATE' '(' <a href="#character-value-expression" title="character_value_expression" shape="rect">character_value_expression</a> 'USING' <a href="#schema-qualified-name" title="schema_qualified_name" shape="rect">schema_qualified_name</a> ')'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#character-value-function" title="character-value-function">character-value-function</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + regex_transliteration +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="699" height="159"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="96" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">TRANSLATE_REGEX</text> + <rect x="127" y="1" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="131" y="13">(</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#character-value-expression" xlink:title="character_value_expression" shape="rect"> + <rect x="147" y="1" width="138" height="18" class="nonterminal"/> + <text class="nonterminal" x="151" y="13">character_value_expression</text></a><rect x="313" y="22" width="30" height="18" class="terminal" rx="4"/> + <text class="terminal" x="317" y="34">FLAG</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#character-value-expression" xlink:title="character_value_expression" shape="rect"> + <rect x="351" y="22" width="138" height="18" class="nonterminal"/> + <text class="nonterminal" x="355" y="34">character_value_expression</text></a><rect x="517" y="1" width="18" height="18" class="terminal" rx="4"/> + <text class="terminal" x="521" y="13">IN</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#character-value-expression" xlink:title="character_value_expression" shape="rect"> + <rect x="543" y="1" width="138" height="18" class="nonterminal"/> + <text class="nonterminal" x="547" y="13">character_value_expression</text></a><rect x="55" y="76" width="34" height="18" class="terminal" rx="4"/> + <text class="terminal" x="59" y="88">WITH</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#character-value-expression" xlink:title="character_value_expression" shape="rect"> + <rect x="97" y="76" width="138" height="18" class="nonterminal"/> + <text class="nonterminal" x="101" y="88">character_value_expression</text></a><rect x="283" y="76" width="36" height="18" class="terminal" rx="4"/> + <text class="terminal" x="287" y="88">FROM</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#numeric-value-expression" xlink:title="numeric_value_expression" shape="rect"> + <rect x="327" y="76" width="132" height="18" class="nonterminal"/> + <text class="nonterminal" x="331" y="88">numeric_value_expression</text></a><rect x="507" y="76" width="38" height="18" class="terminal" rx="4"/> + <text class="terminal" x="511" y="88">USING</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#char-length-units" xlink:title="char_length_units" shape="rect"> + <rect x="553" y="76" width="90" height="18" class="nonterminal"/> + <text class="nonterminal" x="557" y="88">char_length_units</text></a><rect x="401" y="139" width="70" height="18" class="terminal" rx="4"/> + <text class="terminal" x="405" y="151">OCCURRENCE</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#regex-transliteration-occurrence" xlink:title="regex_transliteration_occurrence" shape="rect"> + <rect x="479" y="139" width="156" height="18" class="nonterminal"/> + <text class="nonterminal" x="483" y="151">regex_transliteration_occurrence</text></a><rect x="663" y="118" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="667" y="130">)</text> + <path class="line" d="m17 10 h2 m0 0 h4 m96 0 h4 m0 0 h4 m12 0 h4 m0 0 h4 m138 0 h4 m20 0 h10 m0 0 h174 m-204 0 h20 m184 0 h20 m-224 0 q10 0 10 10 m204 0 q0 -10 10 -10 m-214 10 v1 m204 0 v-1 m-204 1 q0 10 10 10 m184 0 q10 0 10 -10 m-194 10 h4 m30 0 h4 m0 0 h4 m138 0 h4 m20 -21 h4 m18 0 h4 m0 0 h4 m138 0 h4 m2 0 l2 0 m2 0 l2 0 m2 0 l2 0 m-678 54 l2 0 m2 0 l2 0 m2 0 l2 0 m22 0 h10 m0 0 h178 m-208 0 h20 m188 0 h20 m-228 0 q10 0 10 10 m208 0 q0 -10 10 -10 m-218 10 v1 m208 0 v-1 m-208 1 q0 10 10 10 m188 0 q10 0 10 -10 m-198 10 h4 m34 0 h4 m0 0 h4 m138 0 h4 m40 -21 h10 m0 0 h174 m-204 0 h20 m184 0 h20 m-224 0 q10 0 10 10 m204 0 q0 -10 10 -10 m-214 10 v1 m204 0 v-1 m-204 1 q0 10 10 10 m184 0 q10 0 10 -10 m-194 10 h4 m36 0 h4 m0 0 h4 m132 0 h4 m40 -21 h10 m0 0 h134 m-164 0 h20 m144 0 h20 m-184 0 q10 0 10 10 m164 0 q0 -10 10 -10 m-174 10 v1 m164 0 v-1 m-164 1 q0 10 10 10 m144 0 q10 0 10 -10 m-154 10 h4 m38 0 h4 m0 0 h4 m90 0 h4 m22 -21 l2 0 m2 0 l2 0 m2 0 l2 0 m-314 63 l2 0 m2 0 l2 0 m2 0 l2 0 m22 0 h10 m0 0 h232 m-262 0 h20 m242 0 h20 m-282 0 q10 0 10 10 m262 0 q0 -10 10 -10 m-272 10 v1 m262 0 v-1 m-262 1 q0 10 10 10 m242 0 q10 0 10 -10 m-252 10 h4 m70 0 h4 m0 0 h4 m156 0 h4 m20 -21 h4 m12 0 h4 m3 0 h-3"/> + <polygon points="689 127 697 123 697 131"/> + <polygon points="689 127 681 123 681 131"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#regex-transliteration" title="regex_transliteration" shape="rect">regex_transliteration</a></div> + <div>         ::= 'TRANSLATE_REGEX' '(' <a href="#character-value-expression" title="character_value_expression" shape="rect">character_value_expression</a> ( 'FLAG' <a href="#character-value-expression" title="character_value_expression" shape="rect">character_value_expression</a> )? 'IN' <a href="#character-value-expression" title="character_value_expression" shape="rect">character_value_expression</a> ( 'WITH' <a href="#character-value-expression" title="character_value_expression" shape="rect">character_value_expression</a> )? ( 'FROM' <a href="#numeric-value-expression" title="numeric_value_expression" shape="rect">numeric_value_expression</a> )? ( 'USING' <a href="#char-length-units" title="char_length_units" shape="rect">char_length_units</a> )? ( 'OCCURRENCE' <a href="#regex-transliteration-occurrence" title="regex_transliteration_occurrence" shape="rect">regex_transliteration_occurrence</a> )? ')'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#character-value-function" title="character-value-function">character-value-function</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + regex_transliteration_occurrence +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="219" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="43" y="1" width="24" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="13">ALL</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#numeric-value-expression" xlink:title="numeric_value_expression" shape="rect"> + <rect x="43" y="29" width="132" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">numeric_value_expression</text></a><path class="line" d="m17 10 h2 m20 0 h4 m24 0 h4 m0 0 h108 m-160 0 h20 m140 0 h20 m-180 0 q10 0 10 10 m160 0 q0 -10 10 -10 m-170 10 v8 m160 0 v-8 m-160 8 q0 10 10 10 m140 0 q10 0 10 -10 m-150 10 h4 m132 0 h4 m23 -28 h-3"/> + <polygon points="209 10 217 6 217 14"/> + <polygon points="209 10 201 6 201 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#regex-transliteration-occurrence" title="regex_transliteration_occurrence" shape="rect">regex_transliteration_occurrence</a></div> + <div>         ::= 'ALL'</div> + <div>           | <a href="#numeric-value-expression" title="numeric_value_expression" shape="rect">numeric_value_expression</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#regex-transliteration" title="regex-transliteration">regex-transliteration</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + trim_function +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="203" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="32" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">TRIM</text> + <rect x="63" y="1" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="67" y="13">(</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#trim-operands" xlink:title="trim_operands" shape="rect"> + <rect x="83" y="1" width="76" height="18" class="nonterminal"/> + <text class="nonterminal" x="87" y="13">trim_operands</text></a><rect x="167" y="1" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="171" y="13">)</text> + <path class="line" d="m17 10 h2 m0 0 h4 m32 0 h4 m0 0 h4 m12 0 h4 m0 0 h4 m76 0 h4 m0 0 h4 m12 0 h4 m3 0 h-3"/> + <polygon points="193 10 201 6 201 14"/> + <polygon points="193 10 185 6 185 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#trim-function" title="trim_function" shape="rect">trim_function</a></div> + <div>         ::= 'TRIM' '(' <a href="#trim-operands" title="trim_operands" shape="rect">trim_operands</a> ')'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#character-value-function" title="character-value-function">character-value-function</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + trim_operands +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="589" height="70"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#trim-specification" xlink:title="trim_specification" shape="rect"> + <rect x="43" y="22" width="86" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="34">trim_specification</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#character-value-expression" xlink:title="character_value_expression" shape="rect"> + <rect x="157" y="1" width="138" height="18" class="nonterminal"/> + <text class="nonterminal" x="161" y="13">character_value_expression</text></a><rect x="343" y="22" width="8" height="18" class="terminal" rx="4"/> + <text class="terminal" x="347" y="34">,</text> + <rect x="343" y="50" width="36" height="18" class="terminal" rx="4"/> + <text class="terminal" x="347" y="62">FROM</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#character-value-expression" xlink:title="character_value_expression" shape="rect"> + <rect x="407" y="22" width="138" height="18" class="nonterminal"/> + <text class="nonterminal" x="411" y="34">character_value_expression</text></a><path class="line" d="m17 10 h2 m20 0 h10 m0 0 h84 m-114 0 h20 m94 0 h20 m-134 0 q10 0 10 10 m114 0 q0 -10 10 -10 m-124 10 v1 m114 0 v-1 m-114 1 q0 10 10 10 m94 0 q10 0 10 -10 m-104 10 h4 m86 0 h4 m20 -21 h4 m138 0 h4 m20 0 h10 m0 0 h220 m-250 0 h20 m230 0 h20 m-270 0 q10 0 10 10 m250 0 q0 -10 10 -10 m-260 10 v1 m250 0 v-1 m-250 1 q0 10 10 10 m230 0 q10 0 10 -10 m-220 10 h4 m8 0 h4 m0 0 h28 m-64 0 h20 m44 0 h20 m-84 0 q10 0 10 10 m64 0 q0 -10 10 -10 m-74 10 v8 m64 0 v-8 m-64 8 q0 10 10 10 m44 0 q10 0 10 -10 m-54 10 h4 m36 0 h4 m20 -28 h4 m138 0 h4 m23 -21 h-3"/> + <polygon points="579 10 587 6 587 14"/> + <polygon points="579 10 571 6 571 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#trim-operands" title="trim_operands" shape="rect">trim_operands</a></div> + <div>         ::= <a href="#trim-specification" title="trim_specification" shape="rect">trim_specification</a>? <a href="#character-value-expression" title="character_value_expression" shape="rect">character_value_expression</a> ( ( ',' | 'FROM' ) <a href="#character-value-expression" title="character_value_expression" shape="rect">character_value_expression</a> )?</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#trim-function" title="trim-function">trim-function</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + trim_specification +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="139" height="77"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="43" y="1" width="48" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="13">LEADING</text> + <rect x="43" y="29" width="52" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="41">TRAILING</text> + <rect x="43" y="57" width="34" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="69">BOTH</text> + <path class="line" d="m17 10 h2 m20 0 h4 m48 0 h4 m0 0 h4 m-80 0 h20 m60 0 h20 m-100 0 q10 0 10 10 m80 0 q0 -10 10 -10 m-90 10 v8 m80 0 v-8 m-80 8 q0 10 10 10 m60 0 q10 0 10 -10 m-70 10 h4 m52 0 h4 m-70 -10 v20 m80 0 v-20 m-80 20 v8 m80 0 v-8 m-80 8 q0 10 10 10 m60 0 q10 0 10 -10 m-70 10 h4 m34 0 h4 m0 0 h18 m23 -56 h-3"/> + <polygon points="129 10 137 6 137 14"/> + <polygon points="129 10 121 6 121 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#trim-specification" title="trim_specification" shape="rect">trim_specification</a></div> + <div>         ::= 'LEADING'</div> + <div>           | 'TRAILING'</div> + <div>           | 'BOTH'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#binary-trim-operands" title="binary-trim-operands">binary-trim-operands</a></li><li><a href="#trim-operands" title="trim-operands">trim-operands</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + character_overlay_function +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="643" height="84"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="50" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">OVERLAY</text> + <rect x="81" y="1" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="85" y="13">(</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#character-value-expression" xlink:title="character_value_expression" shape="rect"> + <rect x="101" y="1" width="138" height="18" class="nonterminal"/> + <text class="nonterminal" x="105" y="13">character_value_expression</text></a><rect x="247" y="1" width="48" height="18" class="terminal" rx="4"/> + <text class="terminal" x="251" y="13">PLACING</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#character-value-expression" xlink:title="character_value_expression" shape="rect"> + <rect x="303" y="1" width="138" height="18" class="nonterminal"/> + <text class="nonterminal" x="307" y="13">character_value_expression</text></a><rect x="449" y="1" width="36" height="18" class="terminal" rx="4"/> + <text class="terminal" x="453" y="13">FROM</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#numeric-value-expression" xlink:title="numeric_value_expression" shape="rect"> + <rect x="493" y="1" width="132" height="18" class="nonterminal"/> + <text class="nonterminal" x="497" y="13">numeric_value_expression</text></a><rect x="229" y="64" width="26" height="18" class="terminal" rx="4"/> + <text class="terminal" x="233" y="76">FOR</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#numeric-value-expression" xlink:title="numeric_value_expression" shape="rect"> + <rect x="263" y="64" width="132" height="18" class="nonterminal"/> + <text class="nonterminal" x="267" y="76">numeric_value_expression</text></a><rect x="443" y="64" width="38" height="18" class="terminal" rx="4"/> + <text class="terminal" x="447" y="76">USING</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#char-length-units" xlink:title="char_length_units" shape="rect"> + <rect x="489" y="64" width="90" height="18" class="nonterminal"/> + <text class="nonterminal" x="493" y="76">char_length_units</text></a><rect x="607" y="43" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="611" y="55">)</text> + <path class="line" d="m17 10 h2 m0 0 h4 m50 0 h4 m0 0 h4 m12 0 h4 m0 0 h4 m138 0 h4 m0 0 h4 m48 0 h4 m0 0 h4 m138 0 h4 m0 0 h4 m36 0 h4 m0 0 h4 m132 0 h4 m2 0 l2 0 m2 0 l2 0 m2 0 l2 0 m-448 42 l2 0 m2 0 l2 0 m2 0 l2 0 m22 0 h10 m0 0 h164 m-194 0 h20 m174 0 h20 m-214 0 q10 0 10 10 m194 0 q0 -10 10 -10 m-204 10 v1 m194 0 v-1 m-194 1 q0 10 10 10 m174 0 q10 0 10 -10 m-184 10 h4 m26 0 h4 m0 0 h4 m132 0 h4 m40 -21 h10 m0 0 h134 m-164 0 h20 m144 0 h20 m-184 0 q10 0 10 10 m164 0 q0 -10 10 -10 m-174 10 v1 m164 0 v-1 m-164 1 q0 10 10 10 m144 0 q10 0 10 -10 m-154 10 h4 m38 0 h4 m0 0 h4 m90 0 h4 m20 -21 h4 m12 0 h4 m3 0 h-3"/> + <polygon points="633 52 641 48 641 56"/> + <polygon points="633 52 625 48 625 56"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#character-overlay-function" title="character_overlay_function" shape="rect">character_overlay_function</a></div> + <div>         ::= 'OVERLAY' '(' <a href="#character-value-expression" title="character_value_expression" shape="rect">character_value_expression</a> 'PLACING' <a href="#character-value-expression" title="character_value_expression" shape="rect">character_value_expression</a> 'FROM' <a href="#numeric-value-expression" title="numeric_value_expression" shape="rect">numeric_value_expression</a> ( 'FOR' <a href="#numeric-value-expression" title="numeric_value_expression" shape="rect">numeric_value_expression</a> )? ( 'USING' <a href="#char-length-units" title="char_length_units" shape="rect">char_length_units</a> )? ')'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#character-value-function" title="character-value-function">character-value-function</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + normalize_function +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="651" height="63"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="62" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">NORMALIZE</text> + <rect x="93" y="1" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="97" y="13">(</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#character-value-expression" xlink:title="character_value_expression" shape="rect"> + <rect x="113" y="1" width="138" height="18" class="nonterminal"/> + <text class="nonterminal" x="117" y="13">character_value_expression</text></a><rect x="279" y="22" width="8" height="18" class="terminal" rx="4"/> + <text class="terminal" x="283" y="34">,</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#normal-form" xlink:title="normal_form" shape="rect"> + <rect x="295" y="22" width="68" height="18" class="nonterminal"/> + <text class="nonterminal" x="299" y="34">normal_form</text></a><rect x="391" y="43" width="8" height="18" class="terminal" rx="4"/> + <text class="terminal" x="395" y="55">,</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#normalize-function-result-length" xlink:title="normalize_function_result_length" shape="rect"> + <rect x="407" y="43" width="160" height="18" class="nonterminal"/> + <text class="nonterminal" x="411" y="55">normalize_function_result_length</text></a><rect x="615" y="1" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="619" y="13">)</text> + <path class="line" d="m17 10 h2 m0 0 h4 m62 0 h4 m0 0 h4 m12 0 h4 m0 0 h4 m138 0 h4 m20 0 h10 m0 0 h306 m-336 0 h20 m316 0 h20 m-356 0 q10 0 10 10 m336 0 q0 -10 10 -10 m-346 10 v1 m336 0 v-1 m-336 1 q0 10 10 10 m316 0 q10 0 10 -10 m-326 10 h4 m8 0 h4 m0 0 h4 m68 0 h4 m20 0 h10 m0 0 h174 m-204 0 h20 m184 0 h20 m-224 0 q10 0 10 10 m204 0 q0 -10 10 -10 m-214 10 v1 m204 0 v-1 m-204 1 q0 10 10 10 m184 0 q10 0 10 -10 m-194 10 h4 m8 0 h4 m0 0 h4 m160 0 h4 m40 -42 h4 m12 0 h4 m3 0 h-3"/> + <polygon points="641 10 649 6 649 14"/> + <polygon points="641 10 633 6 633 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#normalize-function" title="normalize_function" shape="rect">normalize_function</a></div> + <div>         ::= 'NORMALIZE' '(' <a href="#character-value-expression" title="character_value_expression" shape="rect">character_value_expression</a> ( ',' <a href="#normal-form" title="normal_form" shape="rect">normal_form</a> ( ',' <a href="#normalize-function-result-length" title="normalize_function_result_length" shape="rect">normalize_function_result_length</a> )? )? ')'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#character-value-function" title="character-value-function">character-value-function</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + normal_form +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="119" height="105"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="43" y="1" width="26" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="13">NFC</text> + <rect x="43" y="29" width="26" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="41">NFD</text> + <rect x="43" y="57" width="32" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="69">NFKC</text> + <rect x="43" y="85" width="32" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="97">NFKD</text> + <path class="line" d="m17 10 h2 m20 0 h4 m26 0 h4 m0 0 h6 m-60 0 h20 m40 0 h20 m-80 0 q10 0 10 10 m60 0 q0 -10 10 -10 m-70 10 v8 m60 0 v-8 m-60 8 q0 10 10 10 m40 0 q10 0 10 -10 m-50 10 h4 m26 0 h4 m0 0 h6 m-50 -10 v20 m60 0 v-20 m-60 20 v8 m60 0 v-8 m-60 8 q0 10 10 10 m40 0 q10 0 10 -10 m-50 10 h4 m32 0 h4 m-50 -10 v20 m60 0 v-20 m-60 20 v8 m60 0 v-8 m-60 8 q0 10 10 10 m40 0 q10 0 10 -10 m-50 10 h4 m32 0 h4 m23 -84 h-3"/> + <polygon points="109 10 117 6 117 14"/> + <polygon points="109 10 101 6 101 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#normal-form" title="normal_form" shape="rect">normal_form</a></div> + <div>         ::= 'NFC'</div> + <div>           | 'NFD'</div> + <div>           | 'NFKC'</div> + <div>           | 'NFKD'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#normalize-function" title="normalize-function">normalize-function</a></li><li><a href="#normalized-predicate-part-2" title="normalized-predicate-part-2">normalized-predicate-part-2</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + normalize_function_result_length +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="235" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#character-length" xlink:title="character_length" shape="rect"> + <rect x="43" y="1" width="86" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">character_length</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#character-large-object-length" xlink:title="character_large_object_length" shape="rect"> + <rect x="43" y="29" width="148" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">character_large_object_length</text></a><path class="line" d="m17 10 h2 m20 0 h4 m86 0 h4 m0 0 h62 m-176 0 h20 m156 0 h20 m-196 0 q10 0 10 10 m176 0 q0 -10 10 -10 m-186 10 v8 m176 0 v-8 m-176 8 q0 10 10 10 m156 0 q10 0 10 -10 m-166 10 h4 m148 0 h4 m23 -28 h-3"/> + <polygon points="225 10 233 6 233 14"/> + <polygon points="225 10 217 6 217 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#normalize-function-result-length" title="normalize_function_result_length" shape="rect">normalize_function_result_length</a></div> + <div>         ::= <a href="#character-length" title="character_length" shape="rect">character_length</a></div> + <div>           | <a href="#character-large-object-length" title="character_large_object_length" shape="rect">character_large_object_length</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#normalize-function" title="normalize-function">normalize-function</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + specific_type_method +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="213" height="42"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="8" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">.</text> + <rect x="39" y="1" width="70" height="18" class="terminal" rx="4"/> + <text class="terminal" x="43" y="13">SPECIFICTYPE</text> + <rect x="137" y="22" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="141" y="34">(</text> + <rect x="157" y="22" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="161" y="34">)</text> + <path class="line" d="m17 10 h2 m0 0 h4 m8 0 h4 m0 0 h4 m70 0 h4 m20 0 h10 m0 0 h30 m-60 0 h20 m40 0 h20 m-80 0 q10 0 10 10 m60 0 q0 -10 10 -10 m-70 10 v1 m60 0 v-1 m-60 1 q0 10 10 10 m40 0 q10 0 10 -10 m-50 10 h4 m12 0 h4 m0 0 h4 m12 0 h4 m23 -21 h-3"/> + <polygon points="203 10 211 6 211 14"/> + <polygon points="203 10 195 6 195 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#specific-type-method" title="specific_type_method" shape="rect">specific_type_method</a></div> + <div>         ::= '.' 'SPECIFICTYPE' ( '(' ')' )?</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#character-value-function" title="character-value-function">character-value-function</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + binary_value_function +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="213" height="77"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#binary-substring-function" xlink:title="binary_substring_function" shape="rect"> + <rect x="43" y="1" width="126" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">binary_substring_function</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#binary-trim-function" xlink:title="binary_trim_function" shape="rect"> + <rect x="43" y="29" width="100" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">binary_trim_function</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#binary-overlay-function" xlink:title="binary_overlay_function" shape="rect"> + <rect x="43" y="57" width="116" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="69">binary_overlay_function</text></a><path class="line" d="m17 10 h2 m20 0 h4 m126 0 h4 m-154 0 h20 m134 0 h20 m-174 0 q10 0 10 10 m154 0 q0 -10 10 -10 m-164 10 v8 m154 0 v-8 m-154 8 q0 10 10 10 m134 0 q10 0 10 -10 m-144 10 h4 m100 0 h4 m0 0 h26 m-144 -10 v20 m154 0 v-20 m-154 20 v8 m154 0 v-8 m-154 8 q0 10 10 10 m134 0 q10 0 10 -10 m-144 10 h4 m116 0 h4 m0 0 h10 m23 -56 h-3"/> + <polygon points="203 10 211 6 211 14"/> + <polygon points="203 10 195 6 195 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#binary-value-function" title="binary_value_function" shape="rect">binary_value_function</a></div> + <div>         ::= <a href="#binary-substring-function" title="binary_substring_function" shape="rect">binary_substring_function</a></div> + <div>           | <a href="#binary-trim-function" title="binary_trim_function" shape="rect">binary_trim_function</a></div> + <div>           | <a href="#binary-overlay-function" title="binary_overlay_function" shape="rect">binary_overlay_function</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#string-value-function" title="string-value-function">string-value-function</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + binary_substring_function +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="677" height="42"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="62" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">SUBSTRING</text> + <rect x="93" y="1" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="97" y="13">(</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#binary-value-expression" xlink:title="binary_value_expression" shape="rect"> + <rect x="113" y="1" width="122" height="18" class="nonterminal"/> + <text class="nonterminal" x="117" y="13">binary_value_expression</text></a><rect x="243" y="1" width="36" height="18" class="terminal" rx="4"/> + <text class="terminal" x="247" y="13">FROM</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#numeric-value-expression" xlink:title="numeric_value_expression" shape="rect"> + <rect x="287" y="1" width="132" height="18" class="nonterminal"/> + <text class="nonterminal" x="291" y="13">numeric_value_expression</text></a><rect x="447" y="22" width="26" height="18" class="terminal" rx="4"/> + <text class="terminal" x="451" y="34">FOR</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#numeric-value-expression" xlink:title="numeric_value_expression" shape="rect"> + <rect x="481" y="22" width="132" height="18" class="nonterminal"/> + <text class="nonterminal" x="485" y="34">numeric_value_expression</text></a><rect x="641" y="1" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="645" y="13">)</text> + <path class="line" d="m17 10 h2 m0 0 h4 m62 0 h4 m0 0 h4 m12 0 h4 m0 0 h4 m122 0 h4 m0 0 h4 m36 0 h4 m0 0 h4 m132 0 h4 m20 0 h10 m0 0 h164 m-194 0 h20 m174 0 h20 m-214 0 q10 0 10 10 m194 0 q0 -10 10 -10 m-204 10 v1 m194 0 v-1 m-194 1 q0 10 10 10 m174 0 q10 0 10 -10 m-184 10 h4 m26 0 h4 m0 0 h4 m132 0 h4 m20 -21 h4 m12 0 h4 m3 0 h-3"/> + <polygon points="667 10 675 6 675 14"/> + <polygon points="667 10 659 6 659 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#binary-substring-function" title="binary_substring_function" shape="rect">binary_substring_function</a></div> + <div>         ::= 'SUBSTRING' '(' <a href="#binary-value-expression" title="binary_value_expression" shape="rect">binary_value_expression</a> 'FROM' <a href="#numeric-value-expression" title="numeric_value_expression" shape="rect">numeric_value_expression</a> ( 'FOR' <a href="#numeric-value-expression" title="numeric_value_expression" shape="rect">numeric_value_expression</a> )? ')'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#binary-value-function" title="binary-value-function">binary-value-function</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + binary_trim_function +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="237" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="32" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">TRIM</text> + <rect x="63" y="1" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="67" y="13">(</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#binary-trim-operands" xlink:title="binary_trim_operands" shape="rect"> + <rect x="83" y="1" width="110" height="18" class="nonterminal"/> + <text class="nonterminal" x="87" y="13">binary_trim_operands</text></a><rect x="201" y="1" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="205" y="13">)</text> + <path class="line" d="m17 10 h2 m0 0 h4 m32 0 h4 m0 0 h4 m12 0 h4 m0 0 h4 m110 0 h4 m0 0 h4 m12 0 h4 m3 0 h-3"/> + <polygon points="227 10 235 6 235 14"/> + <polygon points="227 10 219 6 219 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#binary-trim-function" title="binary_trim_function" shape="rect">binary_trim_function</a></div> + <div>         ::= 'TRIM' '(' <a href="#binary-trim-operands" title="binary_trim_operands" shape="rect">binary_trim_operands</a> ')'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#binary-value-function" title="binary-value-function">binary-value-function</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + binary_trim_operands +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="557" height="70"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#trim-specification" xlink:title="trim_specification" shape="rect"> + <rect x="43" y="22" width="86" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="34">trim_specification</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#binary-value-expression" xlink:title="binary_value_expression" shape="rect"> + <rect x="157" y="1" width="122" height="18" class="nonterminal"/> + <text class="nonterminal" x="161" y="13">binary_value_expression</text></a><rect x="327" y="22" width="8" height="18" class="terminal" rx="4"/> + <text class="terminal" x="331" y="34">,</text> + <rect x="327" y="50" width="36" height="18" class="terminal" rx="4"/> + <text class="terminal" x="331" y="62">FROM</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#binary-value-expression" xlink:title="binary_value_expression" shape="rect"> + <rect x="391" y="22" width="122" height="18" class="nonterminal"/> + <text class="nonterminal" x="395" y="34">binary_value_expression</text></a><path class="line" d="m17 10 h2 m20 0 h10 m0 0 h84 m-114 0 h20 m94 0 h20 m-134 0 q10 0 10 10 m114 0 q0 -10 10 -10 m-124 10 v1 m114 0 v-1 m-114 1 q0 10 10 10 m94 0 q10 0 10 -10 m-104 10 h4 m86 0 h4 m20 -21 h4 m122 0 h4 m20 0 h10 m0 0 h204 m-234 0 h20 m214 0 h20 m-254 0 q10 0 10 10 m234 0 q0 -10 10 -10 m-244 10 v1 m234 0 v-1 m-234 1 q0 10 10 10 m214 0 q10 0 10 -10 m-204 10 h4 m8 0 h4 m0 0 h28 m-64 0 h20 m44 0 h20 m-84 0 q10 0 10 10 m64 0 q0 -10 10 -10 m-74 10 v8 m64 0 v-8 m-64 8 q0 10 10 10 m44 0 q10 0 10 -10 m-54 10 h4 m36 0 h4 m20 -28 h4 m122 0 h4 m23 -21 h-3"/> + <polygon points="547 10 555 6 555 14"/> + <polygon points="547 10 539 6 539 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#binary-trim-operands" title="binary_trim_operands" shape="rect">binary_trim_operands</a></div> + <div>         ::= <a href="#trim-specification" title="trim_specification" shape="rect">trim_specification</a>? <a href="#binary-value-expression" title="binary_value_expression" shape="rect">binary_value_expression</a> ( ( ',' | 'FROM' ) <a href="#binary-value-expression" title="binary_value_expression" shape="rect">binary_value_expression</a> )?</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#binary-trim-function" title="binary-trim-function">binary-trim-function</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + binary_overlay_function +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="611" height="84"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="50" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">OVERLAY</text> + <rect x="81" y="1" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="85" y="13">(</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#binary-value-expression" xlink:title="binary_value_expression" shape="rect"> + <rect x="101" y="1" width="122" height="18" class="nonterminal"/> + <text class="nonterminal" x="105" y="13">binary_value_expression</text></a><rect x="231" y="1" width="48" height="18" class="terminal" rx="4"/> + <text class="terminal" x="235" y="13">PLACING</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#binary-value-expression" xlink:title="binary_value_expression" shape="rect"> + <rect x="287" y="1" width="122" height="18" class="nonterminal"/> + <text class="nonterminal" x="291" y="13">binary_value_expression</text></a><rect x="417" y="1" width="36" height="18" class="terminal" rx="4"/> + <text class="terminal" x="421" y="13">FROM</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#numeric-value-expression" xlink:title="numeric_value_expression" shape="rect"> + <rect x="461" y="1" width="132" height="18" class="nonterminal"/> + <text class="nonterminal" x="465" y="13">numeric_value_expression</text></a><rect x="381" y="64" width="26" height="18" class="terminal" rx="4"/> + <text class="terminal" x="385" y="76">FOR</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#numeric-value-expression" xlink:title="numeric_value_expression" shape="rect"> + <rect x="415" y="64" width="132" height="18" class="nonterminal"/> + <text class="nonterminal" x="419" y="76">numeric_value_expression</text></a><rect x="575" y="43" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="579" y="55">)</text> + <path class="line" d="m17 10 h2 m0 0 h4 m50 0 h4 m0 0 h4 m12 0 h4 m0 0 h4 m122 0 h4 m0 0 h4 m48 0 h4 m0 0 h4 m122 0 h4 m0 0 h4 m36 0 h4 m0 0 h4 m132 0 h4 m2 0 l2 0 m2 0 l2 0 m2 0 l2 0 m-264 42 l2 0 m2 0 l2 0 m2 0 l2 0 m22 0 h10 m0 0 h164 m-194 0 h20 m174 0 h20 m-214 0 q10 0 10 10 m194 0 q0 -10 10 -10 m-204 10 v1 m194 0 v-1 m-194 1 q0 10 10 10 m174 0 q10 0 10 -10 m-184 10 h4 m26 0 h4 m0 0 h4 m132 0 h4 m20 -21 h4 m12 0 h4 m3 0 h-3"/> + <polygon points="601 52 609 48 609 56"/> + <polygon points="601 52 593 48 593 56"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#binary-overlay-function" title="binary_overlay_function" shape="rect">binary_overlay_function</a></div> + <div>         ::= 'OVERLAY' '(' <a href="#binary-value-expression" title="binary_value_expression" shape="rect">binary_value_expression</a> 'PLACING' <a href="#binary-value-expression" title="binary_value_expression" shape="rect">binary_value_expression</a> 'FROM' <a href="#numeric-value-expression" title="numeric_value_expression" shape="rect">numeric_value_expression</a> ( 'FOR' <a href="#numeric-value-expression" title="numeric_value_expression" shape="rect">numeric_value_expression</a> )? ')'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#binary-value-function" title="binary-value-function">binary-value-function</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + datetime_value_expression +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="215" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#datetime-term" xlink:title="datetime_term" shape="rect"> + <rect x="43" y="1" width="78" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">datetime_term</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#interval-value-expression" xlink:title="interval_value_expression" shape="rect"> + <rect x="43" y="29" width="128" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">interval_value_expression</text></a><path class="line" d="m17 10 h2 m20 0 h4 m78 0 h4 m0 0 h50 m-156 0 h20 m136 0 h20 m-176 0 q10 0 10 10 m156 0 q0 -10 10 -10 m-166 10 v8 m156 0 v-8 m-156 8 q0 10 10 10 m136 0 q10 0 10 -10 m-146 10 h4 m128 0 h4 m23 -28 h-3"/> + <polygon points="205 10 213 6 213 14"/> + <polygon points="205 10 197 6 197 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#datetime-value-expression" title="datetime_value_expression" shape="rect">datetime_value_expression</a></div> + <div>         ::= <a href="#datetime-term" title="datetime_term" shape="rect">datetime_term</a></div> + <div>           | <a href="#interval-value-expression" title="interval_value_expression" shape="rect">interval_value_expression</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#binary-primary" title="binary-primary">binary-primary</a></li><li><a href="#common-value-expression" title="common-value-expression">common-value-expression</a></li><li><a href="#extract-source" title="extract-source">extract-source</a></li><li><a href="#interval-value-expression" title="interval-value-expression">interval-value-expression</a></li><li><a href="#system-version-specification" title="system-version-specification">system-version-specification</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + datetime_term +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="127" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#datetime-factor" xlink:title="datetime_factor" shape="rect"> + <rect x="23" y="1" width="80" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">datetime_factor</text></a><path class="line" d="m17 10 h2 m0 0 h4 m80 0 h4 m3 0 h-3"/> + <polygon points="117 10 125 6 125 14"/> + <polygon points="117 10 109 6 109 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#datetime-term" title="datetime_term" shape="rect">datetime_term</a></div> + <div>         ::= <a href="#datetime-factor" title="datetime_factor" shape="rect">datetime_factor</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#datetime-value-expression" title="datetime-value-expression">datetime-value-expression</a></li><li><a href="#interval-value-expression" title="interval-value-expression">interval-value-expression</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + datetime_factor +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="243" height="42"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#datetime-primary" xlink:title="datetime_primary" shape="rect"> + <rect x="23" y="1" width="90" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">datetime_primary</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#time-zone" xlink:title="time_zone" shape="rect"> + <rect x="141" y="22" width="58" height="18" class="nonterminal"/> + <text class="nonterminal" x="145" y="34">time_zone</text></a><path class="line" d="m17 10 h2 m0 0 h4 m90 0 h4 m20 0 h10 m0 0 h56 m-86 0 h20 m66 0 h20 m-106 0 q10 0 10 10 m86 0 q0 -10 10 -10 m-96 10 v1 m86 0 v-1 m-86 1 q0 10 10 10 m66 0 q10 0 10 -10 m-76 10 h4 m58 0 h4 m23 -21 h-3"/> + <polygon points="233 10 241 6 241 14"/> + <polygon points="233 10 225 6 225 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#datetime-factor" title="datetime_factor" shape="rect">datetime_factor</a></div> + <div>         ::= <a href="#datetime-primary" title="datetime_primary" shape="rect">datetime_primary</a> <a href="#time-zone" title="time_zone" shape="rect">time_zone</a>?</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#datetime-term" title="datetime-term">datetime-term</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + datetime_primary +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="215" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#datetime-value-function" xlink:title="datetime_value_function" shape="rect"> + <rect x="43" y="1" width="122" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">datetime_value_function</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#interval-value-expression" xlink:title="interval_value_expression" shape="rect"> + <rect x="43" y="29" width="128" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">interval_value_expression</text></a><path class="line" d="m17 10 h2 m20 0 h4 m122 0 h4 m0 0 h6 m-156 0 h20 m136 0 h20 m-176 0 q10 0 10 10 m156 0 q0 -10 10 -10 m-166 10 v8 m156 0 v-8 m-156 8 q0 10 10 10 m136 0 q10 0 10 -10 m-146 10 h4 m128 0 h4 m23 -28 h-3"/> + <polygon points="205 10 213 6 213 14"/> + <polygon points="205 10 197 6 197 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#datetime-primary" title="datetime_primary" shape="rect">datetime_primary</a></div> + <div>         ::= <a href="#datetime-value-function" title="datetime_value_function" shape="rect">datetime_value_function</a></div> + <div>           | <a href="#interval-value-expression" title="interval_value_expression" shape="rect">interval_value_expression</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#datetime-factor" title="datetime-factor">datetime-factor</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + time_zone +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="175" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="20" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">AT</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#time-zone-specifier" xlink:title="time_zone_specifier" shape="rect"> + <rect x="51" y="1" width="100" height="18" class="nonterminal"/> + <text class="nonterminal" x="55" y="13">time_zone_specifier</text></a><path class="line" d="m17 10 h2 m0 0 h4 m20 0 h4 m0 0 h4 m100 0 h4 m3 0 h-3"/> + <polygon points="165 10 173 6 173 14"/> + <polygon points="165 10 157 6 157 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#time-zone" title="time_zone" shape="rect">time_zone</a></div> + <div>         ::= 'AT' <a href="#time-zone-specifier" title="time_zone_specifier" shape="rect">time_zone_specifier</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#datetime-factor" title="datetime-factor">datetime-factor</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + time_zone_specifier +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="249" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="43" y="1" width="38" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="13">LOCAL</text> + <rect x="43" y="29" width="30" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="41">TIME</text> + <rect x="81" y="29" width="34" height="18" class="terminal" rx="4"/> + <text class="terminal" x="85" y="41">ZONE</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#interval-primary" xlink:title="interval_primary" shape="rect"> + <rect x="123" y="29" width="82" height="18" class="nonterminal"/> + <text class="nonterminal" x="127" y="41">interval_primary</text></a><path class="line" d="m17 10 h2 m20 0 h4 m38 0 h4 m0 0 h124 m-190 0 h20 m170 0 h20 m-210 0 q10 0 10 10 m190 0 q0 -10 10 -10 m-200 10 v8 m190 0 v-8 m-190 8 q0 10 10 10 m170 0 q10 0 10 -10 m-180 10 h4 m30 0 h4 m0 0 h4 m34 0 h4 m0 0 h4 m82 0 h4 m23 -28 h-3"/> + <polygon points="239 10 247 6 247 14"/> + <polygon points="239 10 231 6 231 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#time-zone-specifier" title="time_zone_specifier" shape="rect">time_zone_specifier</a></div> + <div>         ::= 'LOCAL'</div> + <div>           | 'TIME' 'ZONE' <a href="#interval-primary" title="interval_primary" shape="rect">interval_primary</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#time-zone" title="time-zone">time-zone</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + datetime_value_function +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="279" height="133"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="43" y="1" width="80" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="13">CURRENT_DATE</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#current-time-value-function" xlink:title="current_time_value_function" shape="rect"> + <rect x="43" y="29" width="138" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">current_time_value_function</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#current-timestamp-value-function" xlink:title="current_timestamp_value_function" shape="rect"> + <rect x="43" y="57" width="168" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="69">current_timestamp_value_function</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#current-local-time-value-function" xlink:title="current_local_time_value_function" shape="rect"> + <rect x="43" y="85" width="162" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="97">current_local_time_value_function</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#current-local-timestamp-value-function" xlink:title="current_local_timestamp_value_function" shape="rect"> + <rect x="43" y="113" width="192" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="125">current_local_timestamp_value_function</text></a><path class="line" d="m17 10 h2 m20 0 h4 m80 0 h4 m0 0 h112 m-220 0 h20 m200 0 h20 m-240 0 q10 0 10 10 m220 0 q0 -10 10 -10 m-230 10 v8 m220 0 v-8 m-220 8 q0 10 10 10 m200 0 q10 0 10 -10 m-210 10 h4 m138 0 h4 m0 0 h54 m-210 -10 v20 m220 0 v-20 m-220 20 v8 m220 0 v-8 m-220 8 q0 10 10 10 m200 0 q10 0 10 -10 m-210 10 h4 m168 0 h4 m0 0 h24 m-210 -10 v20 m220 0 v-20 m-220 20 v8 m220 0 v-8 m-220 8 q0 10 10 10 m200 0 q10 0 10 -10 m-210 10 h4 m162 0 h4 m0 0 h30 m-210 -10 v20 m220 0 v-20 m-220 20 v8 m220 0 v-8 m-220 8 q0 10 10 10 m200 0 q10 0 10 -10 m-210 10 h4 m192 0 h4 m23 -112 h-3"/> + <polygon points="269 10 277 6 277 14"/> + <polygon points="269 10 261 6 261 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#datetime-value-function" title="datetime_value_function" shape="rect">datetime_value_function</a></div> + <div>         ::= 'CURRENT_DATE'</div> + <div>           | <a href="#current-time-value-function" title="current_time_value_function" shape="rect">current_time_value_function</a></div> + <div>           | <a href="#current-timestamp-value-function" title="current_timestamp_value_function" shape="rect">current_timestamp_value_function</a></div> + <div>           | <a href="#current-local-time-value-function" title="current_local_time_value_function" shape="rect">current_local_time_value_function</a></div> + <div>           | <a href="#current-local-timestamp-value-function" title="current_local_timestamp_value_function" shape="rect">current_local_timestamp_value_function</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#datetime-primary" title="datetime-primary">datetime-primary</a></li><li><a href="#default-option" title="default-option">default-option</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + current_time_value_function +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="303" height="42"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="78" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">CURRENT_TIME</text> + <rect x="129" y="22" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="133" y="34">(</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#unsigned-integer" xlink:title="unsigned_integer" shape="rect"> + <rect x="149" y="22" width="90" height="18" class="nonterminal"/> + <text class="nonterminal" x="153" y="34">unsigned_integer</text></a><rect x="247" y="22" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="251" y="34">)</text> + <path class="line" d="m17 10 h2 m0 0 h4 m78 0 h4 m20 0 h10 m0 0 h128 m-158 0 h20 m138 0 h20 m-178 0 q10 0 10 10 m158 0 q0 -10 10 -10 m-168 10 v1 m158 0 v-1 m-158 1 q0 10 10 10 m138 0 q10 0 10 -10 m-148 10 h4 m12 0 h4 m0 0 h4 m90 0 h4 m0 0 h4 m12 0 h4 m23 -21 h-3"/> + <polygon points="293 10 301 6 301 14"/> + <polygon points="293 10 285 6 285 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#current-time-value-function" title="current_time_value_function" shape="rect">current_time_value_function</a></div> + <div>         ::= 'CURRENT_TIME' ( '(' <a href="#unsigned-integer" title="unsigned_integer" shape="rect">unsigned_integer</a> ')' )?</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#datetime-value-function" title="datetime-value-function">datetime-value-function</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + current_local_time_value_function +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="285" height="42"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="60" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">LOCALTIME</text> + <rect x="111" y="22" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="115" y="34">(</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#unsigned-integer" xlink:title="unsigned_integer" shape="rect"> + <rect x="131" y="22" width="90" height="18" class="nonterminal"/> + <text class="nonterminal" x="135" y="34">unsigned_integer</text></a><rect x="229" y="22" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="233" y="34">)</text> + <path class="line" d="m17 10 h2 m0 0 h4 m60 0 h4 m20 0 h10 m0 0 h128 m-158 0 h20 m138 0 h20 m-178 0 q10 0 10 10 m158 0 q0 -10 10 -10 m-168 10 v1 m158 0 v-1 m-158 1 q0 10 10 10 m138 0 q10 0 10 -10 m-148 10 h4 m12 0 h4 m0 0 h4 m90 0 h4 m0 0 h4 m12 0 h4 m23 -21 h-3"/> + <polygon points="275 10 283 6 283 14"/> + <polygon points="275 10 267 6 267 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#current-local-time-value-function" title="current_local_time_value_function" shape="rect">current_local_time_value_function</a></div> + <div>         ::= 'LOCALTIME' ( '(' <a href="#unsigned-integer" title="unsigned_integer" shape="rect">unsigned_integer</a> ')' )?</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#datetime-value-function" title="datetime-value-function">datetime-value-function</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + current_timestamp_value_function +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="335" height="42"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="110" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">CURRENT_TIMESTAMP</text> + <rect x="161" y="22" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="165" y="34">(</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#unsigned-integer" xlink:title="unsigned_integer" shape="rect"> + <rect x="181" y="22" width="90" height="18" class="nonterminal"/> + <text class="nonterminal" x="185" y="34">unsigned_integer</text></a><rect x="279" y="22" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="283" y="34">)</text> + <path class="line" d="m17 10 h2 m0 0 h4 m110 0 h4 m20 0 h10 m0 0 h128 m-158 0 h20 m138 0 h20 m-178 0 q10 0 10 10 m158 0 q0 -10 10 -10 m-168 10 v1 m158 0 v-1 m-158 1 q0 10 10 10 m138 0 q10 0 10 -10 m-148 10 h4 m12 0 h4 m0 0 h4 m90 0 h4 m0 0 h4 m12 0 h4 m23 -21 h-3"/> + <polygon points="325 10 333 6 333 14"/> + <polygon points="325 10 317 6 317 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#current-timestamp-value-function" title="current_timestamp_value_function" shape="rect">current_timestamp_value_function</a></div> + <div>         ::= 'CURRENT_TIMESTAMP' ( '(' <a href="#unsigned-integer" title="unsigned_integer" shape="rect">unsigned_integer</a> ')' )?</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#datetime-value-function" title="datetime-value-function">datetime-value-function</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + current_local_timestamp_value_function +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="317" height="42"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="92" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">LOCALTIMESTAMP</text> + <rect x="143" y="22" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="147" y="34">(</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#unsigned-integer" xlink:title="unsigned_integer" shape="rect"> + <rect x="163" y="22" width="90" height="18" class="nonterminal"/> + <text class="nonterminal" x="167" y="34">unsigned_integer</text></a><rect x="261" y="22" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="265" y="34">)</text> + <path class="line" d="m17 10 h2 m0 0 h4 m92 0 h4 m20 0 h10 m0 0 h128 m-158 0 h20 m138 0 h20 m-178 0 q10 0 10 10 m158 0 q0 -10 10 -10 m-168 10 v1 m158 0 v-1 m-158 1 q0 10 10 10 m138 0 q10 0 10 -10 m-148 10 h4 m12 0 h4 m0 0 h4 m90 0 h4 m0 0 h4 m12 0 h4 m23 -21 h-3"/> + <polygon points="307 10 315 6 315 14"/> + <polygon points="307 10 299 6 299 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#current-local-timestamp-value-function" title="current_local_timestamp_value_function" shape="rect">current_local_timestamp_value_function</a></div> + <div>         ::= 'LOCALTIMESTAMP' ( '(' <a href="#unsigned-integer" title="unsigned_integer" shape="rect">unsigned_integer</a> ')' )?</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#datetime-value-function" title="datetime-value-function">datetime-value-function</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + interval_value_expression +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="455" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#interval-term" xlink:title="interval_term" shape="rect"> + <rect x="43" y="1" width="70" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">interval_term</text></a><rect x="43" y="29" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="41">(</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#datetime-value-expression" xlink:title="datetime_value_expression" shape="rect"> + <rect x="63" y="29" width="136" height="18" class="nonterminal"/> + <text class="nonterminal" x="67" y="41">datetime_value_expression</text></a><rect x="207" y="29" width="10" height="18" class="terminal" rx="4"/> + <text class="terminal" x="211" y="41">-</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#datetime-term" xlink:title="datetime_term" shape="rect"> + <rect x="225" y="29" width="78" height="18" class="nonterminal"/> + <text class="nonterminal" x="229" y="41">datetime_term</text></a><rect x="311" y="29" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="315" y="41">)</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#interval-qualifier" xlink:title="interval_qualifier" shape="rect"> + <rect x="331" y="29" width="80" height="18" class="nonterminal"/> + <text class="nonterminal" x="335" y="41">interval_qualifier</text></a><path class="line" d="m17 10 h2 m20 0 h4 m70 0 h4 m0 0 h298 m-396 0 h20 m376 0 h20 m-416 0 q10 0 10 10 m396 0 q0 -10 10 -10 m-406 10 v8 m396 0 v-8 m-396 8 q0 10 10 10 m376 0 q10 0 10 -10 m-386 10 h4 m12 0 h4 m0 0 h4 m136 0 h4 m0 0 h4 m10 0 h4 m0 0 h4 m78 0 h4 m0 0 h4 m12 0 h4 m0 0 h4 m80 0 h4 m23 -28 h-3"/> + <polygon points="445 10 453 6 453 14"/> + <polygon points="445 10 437 6 437 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#interval-value-expression" title="interval_value_expression" shape="rect">interval_value_expression</a></div> + <div>         ::= <a href="#interval-term" title="interval_term" shape="rect">interval_term</a></div> + <div>           | '(' <a href="#datetime-value-expression" title="datetime_value_expression" shape="rect">datetime_value_expression</a> '-' <a href="#datetime-term" title="datetime_term" shape="rect">datetime_term</a> ')' <a href="#interval-qualifier" title="interval_qualifier" shape="rect">interval_qualifier</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#common-value-expression" title="common-value-expression">common-value-expression</a></li><li><a href="#datetime-primary" title="datetime-primary">datetime-primary</a></li><li><a href="#datetime-value-expression" title="datetime-value-expression">datetime-value-expression</a></li><li><a href="#extract-source" title="extract-source">extract-source</a></li><li><a href="#interval-absolute-value-function" title="interval-absolute-value-function">interval-absolute-value-function</a></li><li><a href="#set-time-zone-value" title="set-time-zone-value">set-time-zone-value</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + interval_term +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="263" height="70"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#interval-factor" xlink:title="interval_factor" shape="rect"> + <rect x="23" y="1" width="72" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">interval_factor</text></a><rect x="143" y="22" width="14" height="18" class="terminal" rx="4"/> + <text class="terminal" x="147" y="34">*</text> + <rect x="143" y="50" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="147" y="62">/</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#factor" xlink:title="factor" shape="rect"> + <rect x="185" y="22" width="34" height="18" class="nonterminal"/> + <text class="nonterminal" x="189" y="34">factor</text></a><path class="line" d="m17 10 h2 m0 0 h4 m72 0 h4 m20 0 h10 m0 0 h94 m-124 0 h20 m104 0 h20 m-144 0 q10 0 10 10 m124 0 q0 -10 10 -10 m-134 10 v1 m124 0 v-1 m-124 1 q0 10 10 10 m104 0 q10 0 10 -10 m-94 10 h4 m14 0 h4 m-42 0 h20 m22 0 h20 m-62 0 q10 0 10 10 m42 0 q0 -10 10 -10 m-52 10 v8 m42 0 v-8 m-42 8 q0 10 10 10 m22 0 q10 0 10 -10 m-32 10 h4 m12 0 h4 m0 0 h2 m20 -28 h4 m34 0 h4 m23 -21 h-3"/> + <polygon points="253 10 261 6 261 14"/> + <polygon points="253 10 245 6 245 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#interval-term" title="interval_term" shape="rect">interval_term</a></div> + <div>         ::= <a href="#interval-factor" title="interval_factor" shape="rect">interval_factor</a> ( ( '*' | '/' ) <a href="#factor" title="factor" shape="rect">factor</a> )?</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#interval-value-expression" title="interval-value-expression">interval-value-expression</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + interval_factor +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="191" height="70"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="43" y="22" width="14" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="34">+</text> + <rect x="43" y="50" width="10" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="62">-</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#interval-primary" xlink:title="interval_primary" shape="rect"> + <rect x="85" y="1" width="82" height="18" class="nonterminal"/> + <text class="nonterminal" x="89" y="13">interval_primary</text></a><path class="line" d="m17 10 h2 m20 0 h10 m0 0 h12 m-42 0 h20 m22 0 h20 m-62 0 q10 0 10 10 m42 0 q0 -10 10 -10 m-52 10 v1 m42 0 v-1 m-42 1 q0 10 10 10 m22 0 q10 0 10 -10 m-32 10 h4 m14 0 h4 m-32 -10 v20 m42 0 v-20 m-42 20 v8 m42 0 v-8 m-42 8 q0 10 10 10 m22 0 q10 0 10 -10 m-32 10 h4 m10 0 h4 m0 0 h4 m20 -49 h4 m82 0 h4 m3 0 h-3"/> + <polygon points="181 10 189 6 189 14"/> + <polygon points="181 10 173 6 173 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#interval-factor" title="interval_factor" shape="rect">interval_factor</a></div> + <div>         ::= ( '+' | '-' )? <a href="#interval-primary" title="interval_primary" shape="rect">interval_primary</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#interval-term" title="interval-term">interval-term</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + interval_primary +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="333" height="70"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#interval-value-function" xlink:title="interval_value_function" shape="rect"> + <rect x="43" y="1" width="112" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">interval_value_function</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#array-value-expression" xlink:title="array_value_expression" shape="rect"> + <rect x="43" y="29" width="118" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">array_value_expression</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#interval-qualifier" xlink:title="interval_qualifier" shape="rect"> + <rect x="189" y="50" width="80" height="18" class="nonterminal"/> + <text class="nonterminal" x="193" y="62">interval_qualifier</text></a><path class="line" d="m17 10 h2 m20 0 h4 m112 0 h4 m0 0 h134 m-274 0 h20 m254 0 h20 m-294 0 q10 0 10 10 m274 0 q0 -10 10 -10 m-284 10 v8 m274 0 v-8 m-274 8 q0 10 10 10 m254 0 q10 0 10 -10 m-264 10 h4 m118 0 h4 m20 0 h10 m0 0 h78 m-108 0 h20 m88 0 h20 m-128 0 q10 0 10 10 m108 0 q0 -10 10 -10 m-118 10 v1 m108 0 v-1 m-108 1 q0 10 10 10 m88 0 q10 0 10 -10 m-98 10 h4 m80 0 h4 m43 -49 h-3"/> + <polygon points="323 10 331 6 331 14"/> + <polygon points="323 10 315 6 315 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#interval-primary" title="interval_primary" shape="rect">interval_primary</a></div> + <div>         ::= <a href="#interval-value-function" title="interval_value_function" shape="rect">interval_value_function</a></div> + <div>           | <a href="#array-value-expression" title="array_value_expression" shape="rect">array_value_expression</a> <a href="#interval-qualifier" title="interval_qualifier" shape="rect">interval_qualifier</a>?</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#interval-factor" title="interval-factor">interval-factor</a></li><li><a href="#time-zone-specifier" title="time-zone-specifier">time-zone-specifier</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + interval_value_function +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="205" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#interval-absolute-value-function" xlink:title="interval_absolute_value_function" shape="rect"> + <rect x="23" y="1" width="158" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">interval_absolute_value_function</text></a><path class="line" d="m17 10 h2 m0 0 h4 m158 0 h4 m3 0 h-3"/> + <polygon points="195 10 203 6 203 14"/> + <polygon points="195 10 187 6 187 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#interval-value-function" title="interval_value_function" shape="rect">interval_value_function</a></div> + <div>         ::= <a href="#interval-absolute-value-function" title="interval_absolute_value_function" shape="rect">interval_absolute_value_function</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#interval-primary" title="interval-primary">interval-primary</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + interval_absolute_value_function +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="249" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="26" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">ABS</text> + <rect x="57" y="1" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="61" y="13">(</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#interval-value-expression" xlink:title="interval_value_expression" shape="rect"> + <rect x="77" y="1" width="128" height="18" class="nonterminal"/> + <text class="nonterminal" x="81" y="13">interval_value_expression</text></a><rect x="213" y="1" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="217" y="13">)</text> + <path class="line" d="m17 10 h2 m0 0 h4 m26 0 h4 m0 0 h4 m12 0 h4 m0 0 h4 m128 0 h4 m0 0 h4 m12 0 h4 m3 0 h-3"/> + <polygon points="239 10 247 6 247 14"/> + <polygon points="239 10 231 6 231 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#interval-absolute-value-function" title="interval_absolute_value_function" shape="rect">interval_absolute_value_function</a></div> + <div>         ::= 'ABS' '(' <a href="#interval-value-expression" title="interval_value_expression" shape="rect">interval_value_expression</a> ')'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#interval-value-function" title="interval-value-function">interval-value-function</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + boolean_value_expression +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="161" height="49"> + <polygon points="9 38 1 34 1 42"/> + <polygon points="17 38 9 34 9 42"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#boolean-term" xlink:title="boolean_term" shape="rect"> + <rect x="43" y="29" width="74" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">boolean_term</text></a><rect x="43" y="1" width="22" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="13">OR</text> + <path class="line" d="m17 38 h2 m20 0 h4 m74 0 h4 m-102 0 l20 0 m-1 0 q-9 0 -9 -10 l0 -8 q0 -10 10 -10 m82 28 l20 0 m-20 0 q10 0 10 -10 l0 -8 q0 -10 -10 -10 m-82 0 h4 m22 0 h4 m0 0 h52 m23 28 h-3"/> + <polygon points="151 38 159 34 159 42"/> + <polygon points="151 38 143 34 143 42"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#boolean-value-expression" title="boolean_value_expression" shape="rect">boolean_value_expression</a></div> + <div>         ::= <a href="#boolean-term" title="boolean_term" shape="rect">boolean_term</a> ( 'OR' <a href="#boolean-term" title="boolean_term" shape="rect">boolean_term</a> )*</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#contextually-typed-row-value-constructor" title="contextually-typed-row-value-constructor">contextually-typed-row-value-constructor</a></li><li><a href="#parenthesized-boolean-value-expression" title="parenthesized-boolean-value-expression">parenthesized-boolean-value-expression</a></li><li><a href="#row-value-constructor" title="row-value-constructor">row-value-constructor</a></li><li><a href="#search-condition" title="search-condition">search-condition</a></li><li><a href="#value-expression" title="value-expression">value-expression</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + boolean_term +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="165" height="49"> + <polygon points="9 38 1 34 1 42"/> + <polygon points="17 38 9 34 9 42"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#boolean-factor" xlink:title="boolean_factor" shape="rect"> + <rect x="43" y="29" width="78" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">boolean_factor</text></a><rect x="43" y="1" width="28" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="13">AND</text> + <path class="line" d="m17 38 h2 m20 0 h4 m78 0 h4 m-106 0 l20 0 m-1 0 q-9 0 -9 -10 l0 -8 q0 -10 10 -10 m86 28 l20 0 m-20 0 q10 0 10 -10 l0 -8 q0 -10 -10 -10 m-86 0 h4 m28 0 h4 m0 0 h50 m23 28 h-3"/> + <polygon points="155 38 163 34 163 42"/> + <polygon points="155 38 147 34 147 42"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#boolean-term" title="boolean_term" shape="rect">boolean_term</a></div> + <div>         ::= <a href="#boolean-factor" title="boolean_factor" shape="rect">boolean_factor</a> ( 'AND' <a href="#boolean-factor" title="boolean_factor" shape="rect">boolean_factor</a> )*</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#boolean-value-expression" title="boolean-value-expression">boolean-value-expression</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + boolean_factor +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="193" height="42"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="43" y="22" width="28" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="34">NOT</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#boolean-test" xlink:title="boolean_test" shape="rect"> + <rect x="99" y="1" width="70" height="18" class="nonterminal"/> + <text class="nonterminal" x="103" y="13">boolean_test</text></a><path class="line" d="m17 10 h2 m20 0 h10 m0 0 h26 m-56 0 h20 m36 0 h20 m-76 0 q10 0 10 10 m56 0 q0 -10 10 -10 m-66 10 v1 m56 0 v-1 m-56 1 q0 10 10 10 m36 0 q10 0 10 -10 m-46 10 h4 m28 0 h4 m20 -21 h4 m70 0 h4 m3 0 h-3"/> + <polygon points="183 10 191 6 191 14"/> + <polygon points="183 10 175 6 175 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#boolean-factor" title="boolean_factor" shape="rect">boolean_factor</a></div> + <div>         ::= 'NOT'? <a href="#boolean-test" title="boolean_test" shape="rect">boolean_test</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#boolean-term" title="boolean-term">boolean-term</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + boolean_test +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="347" height="63"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#boolean-primary" xlink:title="boolean_primary" shape="rect"> + <rect x="23" y="1" width="88" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">boolean_primary</text></a><rect x="139" y="22" width="18" height="18" class="terminal" rx="4"/> + <text class="terminal" x="143" y="34">IS</text> + <rect x="185" y="43" width="28" height="18" class="terminal" rx="4"/> + <text class="terminal" x="189" y="55">NOT</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#truth-value" xlink:title="truth_value" shape="rect"> + <rect x="241" y="22" width="62" height="18" class="nonterminal"/> + <text class="nonterminal" x="245" y="34">truth_value</text></a><path class="line" d="m17 10 h2 m0 0 h4 m88 0 h4 m20 0 h10 m0 0 h162 m-192 0 h20 m172 0 h20 m-212 0 q10 0 10 10 m192 0 q0 -10 10 -10 m-202 10 v1 m192 0 v-1 m-192 1 q0 10 10 10 m172 0 q10 0 10 -10 m-182 10 h4 m18 0 h4 m20 0 h10 m0 0 h26 m-56 0 h20 m36 0 h20 m-76 0 q10 0 10 10 m56 0 q0 -10 10 -10 m-66 10 v1 m56 0 v-1 m-56 1 q0 10 10 10 m36 0 q10 0 10 -10 m-46 10 h4 m28 0 h4 m20 -21 h4 m62 0 h4 m23 -21 h-3"/> + <polygon points="337 10 345 6 345 14"/> + <polygon points="337 10 329 6 329 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#boolean-test" title="boolean_test" shape="rect">boolean_test</a></div> + <div>         ::= <a href="#boolean-primary" title="boolean_primary" shape="rect">boolean_primary</a> ( 'IS' 'NOT'? <a href="#truth-value" title="truth_value" shape="rect">truth_value</a> )?</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#boolean-factor" title="boolean-factor">boolean-factor</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + truth_value +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="147" height="77"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="43" y="1" width="32" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="13">TRUE</text> + <rect x="43" y="29" width="36" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="41">FALSE</text> + <rect x="43" y="57" width="60" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="69">UNKNOWN</text> + <path class="line" d="m17 10 h2 m20 0 h4 m32 0 h4 m0 0 h28 m-88 0 h20 m68 0 h20 m-108 0 q10 0 10 10 m88 0 q0 -10 10 -10 m-98 10 v8 m88 0 v-8 m-88 8 q0 10 10 10 m68 0 q10 0 10 -10 m-78 10 h4 m36 0 h4 m0 0 h24 m-78 -10 v20 m88 0 v-20 m-88 20 v8 m88 0 v-8 m-88 8 q0 10 10 10 m68 0 q10 0 10 -10 m-78 10 h4 m60 0 h4 m23 -56 h-3"/> + <polygon points="137 10 145 6 145 14"/> + <polygon points="137 10 129 6 129 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#truth-value" title="truth_value" shape="rect">truth_value</a></div> + <div>         ::= 'TRUE'</div> + <div>           | 'FALSE'</div> + <div>           | 'UNKNOWN'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#boolean-test" title="boolean-test">boolean-test</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + boolean_primary +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="185" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#predicate" xlink:title="predicate" shape="rect"> + <rect x="43" y="1" width="52" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">predicate</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#boolean-predicand" xlink:title="boolean_predicand" shape="rect"> + <rect x="43" y="29" width="98" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">boolean_predicand</text></a><path class="line" d="m17 10 h2 m20 0 h4 m52 0 h4 m0 0 h46 m-126 0 h20 m106 0 h20 m-146 0 q10 0 10 10 m126 0 q0 -10 10 -10 m-136 10 v8 m126 0 v-8 m-126 8 q0 10 10 10 m106 0 q10 0 10 -10 m-116 10 h4 m98 0 h4 m23 -28 h-3"/> + <polygon points="175 10 183 6 183 14"/> + <polygon points="175 10 167 6 167 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#boolean-primary" title="boolean_primary" shape="rect">boolean_primary</a></div> + <div>         ::= <a href="#predicate" title="predicate" shape="rect">predicate</a></div> + <div>           | <a href="#boolean-predicand" title="boolean_predicand" shape="rect">boolean_predicand</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#boolean-test" title="boolean-test">boolean-test</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + boolean_predicand +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="291" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#parenthesized-boolean-value-expression" xlink:title="parenthesized_boolean_value_expression" shape="rect"> + <rect x="43" y="1" width="204" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">parenthesized_boolean_value_expression</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#numeric-value-expression" xlink:title="numeric_value_expression" shape="rect"> + <rect x="43" y="29" width="132" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">numeric_value_expression</text></a><path class="line" d="m17 10 h2 m20 0 h4 m204 0 h4 m-232 0 h20 m212 0 h20 m-252 0 q10 0 10 10 m232 0 q0 -10 10 -10 m-242 10 v8 m232 0 v-8 m-232 8 q0 10 10 10 m212 0 q10 0 10 -10 m-222 10 h4 m132 0 h4 m0 0 h72 m23 -28 h-3"/> + <polygon points="281 10 289 6 289 14"/> + <polygon points="281 10 273 6 273 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#boolean-predicand" title="boolean_predicand" shape="rect">boolean_predicand</a></div> + <div>         ::= <a href="#parenthesized-boolean-value-expression" title="parenthesized_boolean_value_expression" shape="rect">parenthesized_boolean_value_expression</a></div> + <div>           | <a href="#numeric-value-expression" title="numeric_value_expression" shape="rect">numeric_value_expression</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#boolean-primary" title="boolean-primary">boolean-primary</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + parenthesized_boolean_value_expression +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="219" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">(</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#boolean-value-expression" xlink:title="boolean_value_expression" shape="rect"> + <rect x="43" y="1" width="132" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">boolean_value_expression</text></a><rect x="183" y="1" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="187" y="13">)</text> + <path class="line" d="m17 10 h2 m0 0 h4 m12 0 h4 m0 0 h4 m132 0 h4 m0 0 h4 m12 0 h4 m3 0 h-3"/> + <polygon points="209 10 217 6 217 14"/> + <polygon points="209 10 201 6 201 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#parenthesized-boolean-value-expression" title="parenthesized_boolean_value_expression" shape="rect">parenthesized_boolean_value_expression</a></div> + <div>         ::= '(' <a href="#boolean-value-expression" title="boolean_value_expression" shape="rect">boolean_value_expression</a> ')'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#boolean-predicand" title="boolean-predicand">boolean-predicand</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + array_value_expression +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="161" height="49"> + <polygon points="9 38 1 34 1 42"/> + <polygon points="17 38 9 34 9 42"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#array-primary" xlink:title="array_primary" shape="rect"> + <rect x="43" y="29" width="74" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">array_primary</text></a><rect x="43" y="1" width="14" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="13">||</text> + <path class="line" d="m17 38 h2 m20 0 h4 m74 0 h4 m-102 0 l20 0 m-1 0 q-9 0 -9 -10 l0 -8 q0 -10 10 -10 m82 28 l20 0 m-20 0 q10 0 10 -10 l0 -8 q0 -10 -10 -10 m-82 0 h4 m14 0 h4 m0 0 h60 m23 28 h-3"/> + <polygon points="151 38 159 34 159 42"/> + <polygon points="151 38 143 34 143 42"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#array-value-expression" title="array_value_expression" shape="rect">array_value_expression</a></div> + <div>         ::= <a href="#array-primary" title="array_primary" shape="rect">array_primary</a> ( '||' <a href="#array-primary" title="array_primary" shape="rect">array_primary</a> )*</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#array-value-expression-1" title="array-value-expression-1">array-value-expression-1</a></li><li><a href="#collection-value-expression" title="collection-value-expression">collection-value-expression</a></li><li><a href="#interval-primary" title="interval-primary">interval-primary</a></li><li><a href="#max-cardinality-expression" title="max-cardinality-expression">max-cardinality-expression</a></li><li><a href="#trim-array-function" title="trim-array-function">trim-array-function</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + array_value_expression_1 +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="165" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#array-value-expression" xlink:title="array_value_expression" shape="rect"> + <rect x="23" y="1" width="118" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">array_value_expression</text></a><path class="line" d="m17 10 h2 m0 0 h4 m118 0 h4 m3 0 h-3"/> + <polygon points="155 10 163 6 163 14"/> + <polygon points="155 10 147 6 147 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#array-value-expression-1" title="array_value_expression_1" shape="rect">array_value_expression_1</a></div> + <div>         ::= <a href="#array-value-expression" title="array_value_expression" shape="rect">array_value_expression</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Not referenced by any. + </div></td></tr></tbody></table> + + +====================================================================================================================== + array_primary +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="217" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#array-value-function" xlink:title="array_value_function" shape="rect"> + <rect x="43" y="1" width="104" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">array_value_function</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#multiset-value-expression" xlink:title="multiset_value_expression" shape="rect"> + <rect x="43" y="29" width="130" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">multiset_value_expression</text></a><path class="line" d="m17 10 h2 m20 0 h4 m104 0 h4 m0 0 h26 m-158 0 h20 m138 0 h20 m-178 0 q10 0 10 10 m158 0 q0 -10 10 -10 m-168 10 v8 m158 0 v-8 m-158 8 q0 10 10 10 m138 0 q10 0 10 -10 m-148 10 h4 m130 0 h4 m23 -28 h-3"/> + <polygon points="207 10 215 6 215 14"/> + <polygon points="207 10 199 6 199 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#array-primary" title="array_primary" shape="rect">array_primary</a></div> + <div>         ::= <a href="#array-value-function" title="array_value_function" shape="rect">array_value_function</a></div> + <div>           | <a href="#multiset-value-expression" title="multiset_value_expression" shape="rect">multiset_value_expression</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#array-value-expression" title="array-value-expression">array-value-expression</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + array_value_function +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="143" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#trim-array-function" xlink:title="trim_array_function" shape="rect"> + <rect x="23" y="1" width="96" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">trim_array_function</text></a><path class="line" d="m17 10 h2 m0 0 h4 m96 0 h4 m3 0 h-3"/> + <polygon points="133 10 141 6 141 14"/> + <polygon points="133 10 125 6 125 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#array-value-function" title="array_value_function" shape="rect">array_value_function</a></div> + <div>         ::= <a href="#trim-array-function" title="trim_array_function" shape="rect">trim_array_function</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#array-primary" title="array-primary">array-primary</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + trim_array_function +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="437" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="68" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">TRIM_ARRAY</text> + <rect x="99" y="1" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="103" y="13">(</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#array-value-expression" xlink:title="array_value_expression" shape="rect"> + <rect x="119" y="1" width="118" height="18" class="nonterminal"/> + <text class="nonterminal" x="123" y="13">array_value_expression</text></a><rect x="245" y="1" width="8" height="18" class="terminal" rx="4"/> + <text class="terminal" x="249" y="13">,</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#numeric-value-expression" xlink:title="numeric_value_expression" shape="rect"> + <rect x="261" y="1" width="132" height="18" class="nonterminal"/> + <text class="nonterminal" x="265" y="13">numeric_value_expression</text></a><rect x="401" y="1" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="405" y="13">)</text> + <path class="line" d="m17 10 h2 m0 0 h4 m68 0 h4 m0 0 h4 m12 0 h4 m0 0 h4 m118 0 h4 m0 0 h4 m8 0 h4 m0 0 h4 m132 0 h4 m0 0 h4 m12 0 h4 m3 0 h-3"/> + <polygon points="427 10 435 6 435 14"/> + <polygon points="427 10 419 6 419 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#trim-array-function" title="trim_array_function" shape="rect">trim_array_function</a></div> + <div>         ::= 'TRIM_ARRAY' '(' <a href="#array-value-expression" title="array_value_expression" shape="rect">array_value_expression</a> ',' <a href="#numeric-value-expression" title="numeric_value_expression" shape="rect">numeric_value_expression</a> ')'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#array-value-function" title="array-value-function">array-value-function</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + array_value_constructor +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="287" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#array-value-constructor-by-enumeration" xlink:title="array_value_constructor_by_enumeration" shape="rect"> + <rect x="43" y="1" width="200" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">array_value_constructor_by_enumeration</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#array-value-constructor-by-query" xlink:title="array_value_constructor_by_query" shape="rect"> + <rect x="43" y="29" width="168" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">array_value_constructor_by_query</text></a><path class="line" d="m17 10 h2 m20 0 h4 m200 0 h4 m-228 0 h20 m208 0 h20 m-248 0 q10 0 10 10 m228 0 q0 -10 10 -10 m-238 10 v8 m228 0 v-8 m-228 8 q0 10 10 10 m208 0 q10 0 10 -10 m-218 10 h4 m168 0 h4 m0 0 h32 m23 -28 h-3"/> + <polygon points="277 10 285 6 285 14"/> + <polygon points="277 10 269 6 269 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#array-value-constructor" title="array_value_constructor" shape="rect">array_value_constructor</a></div> + <div>         ::= <a href="#array-value-constructor-by-enumeration" title="array_value_constructor_by_enumeration" shape="rect">array_value_constructor_by_enumeration</a></div> + <div>           | <a href="#array-value-constructor-by-query" title="array_value_constructor_by_query" shape="rect">array_value_constructor_by_query</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#collection-value-constructor" title="collection-value-constructor">collection-value-constructor</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + array_value_constructor_by_enumeration +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="485" height="42"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="38" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">ARRAY</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#left-bracket-or-trigraph" xlink:title="left_bracket_or_trigraph" shape="rect"> + <rect x="69" y="1" width="118" height="18" class="nonterminal"/> + <text class="nonterminal" x="73" y="13">left_bracket_or_trigraph</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#array-element-list" xlink:title="array_element_list" shape="rect"> + <rect x="215" y="22" width="94" height="18" class="nonterminal"/> + <text class="nonterminal" x="219" y="34">array_element_list</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#right-bracket-or-trigraph" xlink:title="right_bracket_or_trigraph" shape="rect"> + <rect x="337" y="1" width="124" height="18" class="nonterminal"/> + <text class="nonterminal" x="341" y="13">right_bracket_or_trigraph</text></a><path class="line" d="m17 10 h2 m0 0 h4 m38 0 h4 m0 0 h4 m118 0 h4 m20 0 h10 m0 0 h92 m-122 0 h20 m102 0 h20 m-142 0 q10 0 10 10 m122 0 q0 -10 10 -10 m-132 10 v1 m122 0 v-1 m-122 1 q0 10 10 10 m102 0 q10 0 10 -10 m-112 10 h4 m94 0 h4 m20 -21 h4 m124 0 h4 m3 0 h-3"/> + <polygon points="475 10 483 6 483 14"/> + <polygon points="475 10 467 6 467 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#array-value-constructor-by-enumeration" title="array_value_constructor_by_enumeration" shape="rect">array_value_constructor_by_enumeration</a></div> + <div>         ::= 'ARRAY' <a href="#left-bracket-or-trigraph" title="left_bracket_or_trigraph" shape="rect">left_bracket_or_trigraph</a> <a href="#array-element-list" title="array_element_list" shape="rect">array_element_list</a>? <a href="#right-bracket-or-trigraph" title="right_bracket_or_trigraph" shape="rect">right_bracket_or_trigraph</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#array-value-constructor" title="array-value-constructor">array-value-constructor</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + array_element_list +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="163" height="49"> + <polygon points="9 38 1 34 1 42"/> + <polygon points="17 38 9 34 9 42"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#array-element" xlink:title="array_element" shape="rect"> + <rect x="43" y="29" width="76" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">array_element</text></a><rect x="43" y="1" width="8" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="13">,</text> + <path class="line" d="m17 38 h2 m20 0 h4 m76 0 h4 m-104 0 l20 0 m-1 0 q-9 0 -9 -10 l0 -8 q0 -10 10 -10 m84 28 l20 0 m-20 0 q10 0 10 -10 l0 -8 q0 -10 -10 -10 m-84 0 h4 m8 0 h4 m0 0 h68 m23 28 h-3"/> + <polygon points="153 38 161 34 161 42"/> + <polygon points="153 38 145 34 145 42"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#array-element-list" title="array_element_list" shape="rect">array_element_list</a></div> + <div>         ::= <a href="#array-element" title="array_element" shape="rect">array_element</a> ( ',' <a href="#array-element" title="array_element" shape="rect">array_element</a> )*</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#array-value-constructor-by-enumeration" title="array-value-constructor-by-enumeration">array-value-constructor-by-enumeration</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + array_element +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="137" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#value-expression" xlink:title="value_expression" shape="rect"> + <rect x="23" y="1" width="90" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">value_expression</text></a><path class="line" d="m17 10 h2 m0 0 h4 m90 0 h4 m3 0 h-3"/> + <polygon points="127 10 135 6 135 14"/> + <polygon points="127 10 119 6 119 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#array-element" title="array_element" shape="rect">array_element</a></div> + <div>         ::= <a href="#value-expression" title="value_expression" shape="rect">value_expression</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#array-element-list" title="array-element-list">array-element-list</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + array_value_constructor_by_query +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="145" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="38" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">ARRAY</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#subquery" xlink:title="subquery" shape="rect"> + <rect x="69" y="1" width="52" height="18" class="nonterminal"/> + <text class="nonterminal" x="73" y="13">subquery</text></a><path class="line" d="m17 10 h2 m0 0 h4 m38 0 h4 m0 0 h4 m52 0 h4 m3 0 h-3"/> + <polygon points="135 10 143 6 143 14"/> + <polygon points="135 10 127 6 127 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#array-value-constructor-by-query" title="array_value_constructor_by_query" shape="rect">array_value_constructor_by_query</a></div> + <div>         ::= 'ARRAY' <a href="#subquery" title="subquery" shape="rect">subquery</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#array-value-constructor" title="array-value-constructor">array-value-constructor</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + multiset_value_expression +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="487" height="91"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#multiset-term" xlink:title="multiset_term" shape="rect"> + <rect x="23" y="1" width="72" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">multiset_term</text></a><rect x="123" y="22" width="52" height="18" class="terminal" rx="4"/> + <text class="terminal" x="127" y="34">MULTISET</text> + <rect x="203" y="22" width="40" height="18" class="terminal" rx="4"/> + <text class="terminal" x="207" y="34">UNION</text> + <rect x="203" y="50" width="42" height="18" class="terminal" rx="4"/> + <text class="terminal" x="207" y="62">EXCEPT</text> + <rect x="293" y="43" width="24" height="18" class="terminal" rx="4"/> + <text class="terminal" x="297" y="55">ALL</text> + <rect x="293" y="71" width="50" height="18" class="terminal" rx="4"/> + <text class="terminal" x="297" y="83">DISTINCT</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#multiset-term" xlink:title="multiset_term" shape="rect"> + <rect x="371" y="22" width="72" height="18" class="nonterminal"/> + <text class="nonterminal" x="375" y="34">multiset_term</text></a><path class="line" d="m17 10 h2 m0 0 h4 m72 0 h4 m20 0 h10 m0 0 h318 m-348 0 h20 m328 0 h20 m-368 0 q10 0 10 10 m348 0 q0 -10 10 -10 m-358 10 v1 m348 0 v-1 m-348 1 q0 10 10 10 m328 0 q10 0 10 -10 m-338 10 h4 m52 0 h4 m20 0 h4 m40 0 h4 m0 0 h2 m-70 0 h20 m50 0 h20 m-90 0 q10 0 10 10 m70 0 q0 -10 10 -10 m-80 10 v8 m70 0 v-8 m-70 8 q0 10 10 10 m50 0 q10 0 10 -10 m-60 10 h4 m42 0 h4 m40 -28 h10 m0 0 h48 m-78 0 h20 m58 0 h20 m-98 0 q10 0 10 10 m78 0 q0 -10 10 -10 m-88 10 v1 m78 0 v-1 m-78 1 q0 10 10 10 m58 0 q10 0 10 -10 m-68 10 h4 m24 0 h4 m0 0 h26 m-68 -10 v20 m78 0 v-20 m-78 20 v8 m78 0 v-8 m-78 8 q0 10 10 10 m58 0 q10 0 10 -10 m-68 10 h4 m50 0 h4 m20 -49 h4 m72 0 h4 m23 -21 h-3"/> + <polygon points="477 10 485 6 485 14"/> + <polygon points="477 10 469 6 469 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#multiset-value-expression" title="multiset_value_expression" shape="rect">multiset_value_expression</a></div> + <div>         ::= <a href="#multiset-term" title="multiset_term" shape="rect">multiset_term</a> ( 'MULTISET' ( 'UNION' | 'EXCEPT' ) ( 'ALL' | 'DISTINCT' )? <a href="#multiset-term" title="multiset_term" shape="rect">multiset_term</a> )?</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#array-primary" title="array-primary">array-primary</a></li><li><a href="#collection-value-expression" title="collection-value-expression">collection-value-expression</a></li><li><a href="#member-predicate-part-2" title="member-predicate-part-2">member-predicate-part-2</a></li><li><a href="#multiset-element-reference" title="multiset-element-reference">multiset-element-reference</a></li><li><a href="#multiset-set-function" title="multiset-set-function">multiset-set-function</a></li><li><a href="#submultiset-predicate-part-2" title="submultiset-predicate-part-2">submultiset-predicate-part-2</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + multiset_term +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="487" height="91"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#multiset-primary" xlink:title="multiset_primary" shape="rect"> + <rect x="23" y="1" width="84" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">multiset_primary</text></a><rect x="135" y="22" width="52" height="18" class="terminal" rx="4"/> + <text class="terminal" x="139" y="34">MULTISET</text> + <rect x="195" y="22" width="58" height="18" class="terminal" rx="4"/> + <text class="terminal" x="199" y="34">INTERSECT</text> + <rect x="281" y="43" width="24" height="18" class="terminal" rx="4"/> + <text class="terminal" x="285" y="55">ALL</text> + <rect x="281" y="71" width="50" height="18" class="terminal" rx="4"/> + <text class="terminal" x="285" y="83">DISTINCT</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#multiset-primary" xlink:title="multiset_primary" shape="rect"> + <rect x="359" y="22" width="84" height="18" class="nonterminal"/> + <text class="nonterminal" x="363" y="34">multiset_primary</text></a><path class="line" d="m17 10 h2 m0 0 h4 m84 0 h4 m20 0 h10 m0 0 h306 m-336 0 h20 m316 0 h20 m-356 0 q10 0 10 10 m336 0 q0 -10 10 -10 m-346 10 v1 m336 0 v-1 m-336 1 q0 10 10 10 m316 0 q10 0 10 -10 m-326 10 h4 m52 0 h4 m0 0 h4 m58 0 h4 m20 0 h10 m0 0 h48 m-78 0 h20 m58 0 h20 m-98 0 q10 0 10 10 m78 0 q0 -10 10 -10 m-88 10 v1 m78 0 v-1 m-78 1 q0 10 10 10 m58 0 q10 0 10 -10 m-68 10 h4 m24 0 h4 m0 0 h26 m-68 -10 v20 m78 0 v-20 m-78 20 v8 m78 0 v-8 m-78 8 q0 10 10 10 m58 0 q10 0 10 -10 m-68 10 h4 m50 0 h4 m20 -49 h4 m84 0 h4 m23 -21 h-3"/> + <polygon points="477 10 485 6 485 14"/> + <polygon points="477 10 469 6 469 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#multiset-term" title="multiset_term" shape="rect">multiset_term</a></div> + <div>         ::= <a href="#multiset-primary" title="multiset_primary" shape="rect">multiset_primary</a> ( 'MULTISET' 'INTERSECT' ( 'ALL' | 'DISTINCT' )? <a href="#multiset-primary" title="multiset_primary" shape="rect">multiset_primary</a> )?</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#multiset-value-expression" title="multiset-value-expression">multiset-value-expression</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + multiset_primary +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="217" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#multiset-set-function" xlink:title="multiset_set_function" shape="rect"> + <rect x="43" y="1" width="106" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">multiset_set_function</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#value-expression-primary" xlink:title="value_expression_primary" shape="rect"> + <rect x="43" y="29" width="130" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">value_expression_primary</text></a><path class="line" d="m17 10 h2 m20 0 h4 m106 0 h4 m0 0 h24 m-158 0 h20 m138 0 h20 m-178 0 q10 0 10 10 m158 0 q0 -10 10 -10 m-168 10 v8 m158 0 v-8 m-158 8 q0 10 10 10 m138 0 q10 0 10 -10 m-148 10 h4 m130 0 h4 m23 -28 h-3"/> + <polygon points="207 10 215 6 215 14"/> + <polygon points="207 10 199 6 199 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#multiset-primary" title="multiset_primary" shape="rect">multiset_primary</a></div> + <div>         ::= <a href="#multiset-set-function" title="multiset_set_function" shape="rect">multiset_set_function</a></div> + <div>           | <a href="#value-expression-primary" title="value_expression_primary" shape="rect">value_expression_primary</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#multiset-term" title="multiset-term">multiset-term</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + multiset_set_function +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="249" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="24" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">SET</text> + <rect x="55" y="1" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="59" y="13">(</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#multiset-value-expression" xlink:title="multiset_value_expression" shape="rect"> + <rect x="75" y="1" width="130" height="18" class="nonterminal"/> + <text class="nonterminal" x="79" y="13">multiset_value_expression</text></a><rect x="213" y="1" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="217" y="13">)</text> + <path class="line" d="m17 10 h2 m0 0 h4 m24 0 h4 m0 0 h4 m12 0 h4 m0 0 h4 m130 0 h4 m0 0 h4 m12 0 h4 m3 0 h-3"/> + <polygon points="239 10 247 6 247 14"/> + <polygon points="239 10 231 6 231 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#multiset-set-function" title="multiset_set_function" shape="rect">multiset_set_function</a></div> + <div>         ::= 'SET' '(' <a href="#multiset-value-expression" title="multiset_value_expression" shape="rect">multiset_value_expression</a> ')'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#multiset-primary" title="multiset-primary">multiset-primary</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + multiset_value_constructor +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="299" height="77"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#multiset-value-constructor-by-enumeration" xlink:title="multiset_value_constructor_by_enumeration" shape="rect"> + <rect x="43" y="1" width="212" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">multiset_value_constructor_by_enumeration</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#multiset-value-constructor-by-query" xlink:title="multiset_value_constructor_by_query" shape="rect"> + <rect x="43" y="29" width="180" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">multiset_value_constructor_by_query</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#table-value-constructor-by-query" xlink:title="table_value_constructor_by_query" shape="rect"> + <rect x="43" y="57" width="168" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="69">table_value_constructor_by_query</text></a><path class="line" d="m17 10 h2 m20 0 h4 m212 0 h4 m-240 0 h20 m220 0 h20 m-260 0 q10 0 10 10 m240 0 q0 -10 10 -10 m-250 10 v8 m240 0 v-8 m-240 8 q0 10 10 10 m220 0 q10 0 10 -10 m-230 10 h4 m180 0 h4 m0 0 h32 m-230 -10 v20 m240 0 v-20 m-240 20 v8 m240 0 v-8 m-240 8 q0 10 10 10 m220 0 q10 0 10 -10 m-230 10 h4 m168 0 h4 m0 0 h44 m23 -56 h-3"/> + <polygon points="289 10 297 6 297 14"/> + <polygon points="289 10 281 6 281 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#multiset-value-constructor" title="multiset_value_constructor" shape="rect">multiset_value_constructor</a></div> + <div>         ::= <a href="#multiset-value-constructor-by-enumeration" title="multiset_value_constructor_by_enumeration" shape="rect">multiset_value_constructor_by_enumeration</a></div> + <div>           | <a href="#multiset-value-constructor-by-query" title="multiset_value_constructor_by_query" shape="rect">multiset_value_constructor_by_query</a></div> + <div>           | <a href="#table-value-constructor-by-query" title="table_value_constructor_by_query" shape="rect">table_value_constructor_by_query</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#collection-value-constructor" title="collection-value-constructor">collection-value-constructor</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + multiset_value_constructor_by_enumeration +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="471" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="52" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">MULTISET</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#left-bracket-or-trigraph" xlink:title="left_bracket_or_trigraph" shape="rect"> + <rect x="83" y="1" width="118" height="18" class="nonterminal"/> + <text class="nonterminal" x="87" y="13">left_bracket_or_trigraph</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#multiset-element-list" xlink:title="multiset_element_list" shape="rect"> + <rect x="209" y="1" width="106" height="18" class="nonterminal"/> + <text class="nonterminal" x="213" y="13">multiset_element_list</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#right-bracket-or-trigraph" xlink:title="right_bracket_or_trigraph" shape="rect"> + <rect x="323" y="1" width="124" height="18" class="nonterminal"/> + <text class="nonterminal" x="327" y="13">right_bracket_or_trigraph</text></a><path class="line" d="m17 10 h2 m0 0 h4 m52 0 h4 m0 0 h4 m118 0 h4 m0 0 h4 m106 0 h4 m0 0 h4 m124 0 h4 m3 0 h-3"/> + <polygon points="461 10 469 6 469 14"/> + <polygon points="461 10 453 6 453 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#multiset-value-constructor-by-enumeration" title="multiset_value_constructor_by_enumeration" shape="rect">multiset_value_constructor_by_enumeration</a></div> + <div>         ::= 'MULTISET' <a href="#left-bracket-or-trigraph" title="left_bracket_or_trigraph" shape="rect">left_bracket_or_trigraph</a> <a href="#multiset-element-list" title="multiset_element_list" shape="rect">multiset_element_list</a> <a href="#right-bracket-or-trigraph" title="right_bracket_or_trigraph" shape="rect">right_bracket_or_trigraph</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#multiset-value-constructor" title="multiset-value-constructor">multiset-value-constructor</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + multiset_element_list +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="175" height="49"> + <polygon points="9 38 1 34 1 42"/> + <polygon points="17 38 9 34 9 42"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#multiset-element" xlink:title="multiset_element" shape="rect"> + <rect x="43" y="29" width="88" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">multiset_element</text></a><rect x="43" y="1" width="8" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="13">,</text> + <path class="line" d="m17 38 h2 m20 0 h4 m88 0 h4 m-116 0 l20 0 m-1 0 q-9 0 -9 -10 l0 -8 q0 -10 10 -10 m96 28 l20 0 m-20 0 q10 0 10 -10 l0 -8 q0 -10 -10 -10 m-96 0 h4 m8 0 h4 m0 0 h80 m23 28 h-3"/> + <polygon points="165 38 173 34 173 42"/> + <polygon points="165 38 157 34 157 42"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#multiset-element-list" title="multiset_element_list" shape="rect">multiset_element_list</a></div> + <div>         ::= <a href="#multiset-element" title="multiset_element" shape="rect">multiset_element</a> ( ',' <a href="#multiset-element" title="multiset_element" shape="rect">multiset_element</a> )*</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#multiset-value-constructor-by-enumeration" title="multiset-value-constructor-by-enumeration">multiset-value-constructor-by-enumeration</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + multiset_element +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="137" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#value-expression" xlink:title="value_expression" shape="rect"> + <rect x="23" y="1" width="90" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">value_expression</text></a><path class="line" d="m17 10 h2 m0 0 h4 m90 0 h4 m3 0 h-3"/> + <polygon points="127 10 135 6 135 14"/> + <polygon points="127 10 119 6 119 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#multiset-element" title="multiset_element" shape="rect">multiset_element</a></div> + <div>         ::= <a href="#value-expression" title="value_expression" shape="rect">value_expression</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#multiset-element-list" title="multiset-element-list">multiset-element-list</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + multiset_value_constructor_by_query +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="159" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="52" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">MULTISET</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#subquery" xlink:title="subquery" shape="rect"> + <rect x="83" y="1" width="52" height="18" class="nonterminal"/> + <text class="nonterminal" x="87" y="13">subquery</text></a><path class="line" d="m17 10 h2 m0 0 h4 m52 0 h4 m0 0 h4 m52 0 h4 m3 0 h-3"/> + <polygon points="149 10 157 6 157 14"/> + <polygon points="149 10 141 6 141 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#multiset-value-constructor-by-query" title="multiset_value_constructor_by_query" shape="rect">multiset_value_constructor_by_query</a></div> + <div>         ::= 'MULTISET' <a href="#subquery" title="subquery" shape="rect">subquery</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#multiset-value-constructor" title="multiset-value-constructor">multiset-value-constructor</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + table_value_constructor_by_query +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="143" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="36" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">TABLE</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#subquery" xlink:title="subquery" shape="rect"> + <rect x="67" y="1" width="52" height="18" class="nonterminal"/> + <text class="nonterminal" x="71" y="13">subquery</text></a><path class="line" d="m17 10 h2 m0 0 h4 m36 0 h4 m0 0 h4 m52 0 h4 m3 0 h-3"/> + <polygon points="133 10 141 6 141 14"/> + <polygon points="133 10 125 6 125 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#table-value-constructor-by-query" title="table_value_constructor_by_query" shape="rect">table_value_constructor_by_query</a></div> + <div>         ::= 'TABLE' <a href="#subquery" title="subquery" shape="rect">subquery</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#multiset-value-constructor" title="multiset-value-constructor">multiset-value-constructor</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + row_value_constructor +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="233" height="77"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#explicit-row-value-constructor" xlink:title="explicit_row_value_constructor" shape="rect"> + <rect x="43" y="1" width="146" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">explicit_row_value_constructor</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#common-value-expression" xlink:title="common_value_expression" shape="rect"> + <rect x="43" y="29" width="136" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">common_value_expression</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#boolean-value-expression" xlink:title="boolean_value_expression" shape="rect"> + <rect x="43" y="57" width="132" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="69">boolean_value_expression</text></a><path class="line" d="m17 10 h2 m20 0 h4 m146 0 h4 m-174 0 h20 m154 0 h20 m-194 0 q10 0 10 10 m174 0 q0 -10 10 -10 m-184 10 v8 m174 0 v-8 m-174 8 q0 10 10 10 m154 0 q10 0 10 -10 m-164 10 h4 m136 0 h4 m0 0 h10 m-164 -10 v20 m174 0 v-20 m-174 20 v8 m174 0 v-8 m-174 8 q0 10 10 10 m154 0 q10 0 10 -10 m-164 10 h4 m132 0 h4 m0 0 h14 m23 -56 h-3"/> + <polygon points="223 10 231 6 231 14"/> + <polygon points="223 10 215 6 215 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#row-value-constructor" title="row_value_constructor" shape="rect">row_value_constructor</a></div> + <div>         ::= <a href="#explicit-row-value-constructor" title="explicit_row_value_constructor" shape="rect">explicit_row_value_constructor</a></div> + <div>           | <a href="#common-value-expression" title="common_value_expression" shape="rect">common_value_expression</a></div> + <div>           | <a href="#boolean-value-expression" title="boolean_value_expression" shape="rect">boolean_value_expression</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#table-row-value-expression" title="table-row-value-expression">table-row-value-expression</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + explicit_row_value_constructor +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="559" height="98"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="63" y="1" width="32" height="18" class="terminal" rx="4"/> + <text class="terminal" x="67" y="13">ROW</text> + <rect x="103" y="1" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="107" y="13">(</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#row-value-constructor-element-list" xlink:title="row_value_constructor_element_list" shape="rect"> + <rect x="123" y="1" width="172" height="18" class="nonterminal"/> + <text class="nonterminal" x="127" y="13">row_value_constructor_element_list</text></a><rect x="63" y="29" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="67" y="41">(</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#row-value-constructor-element" xlink:title="row_value_constructor_element" shape="rect"> + <rect x="83" y="29" width="156" height="18" class="nonterminal"/> + <text class="nonterminal" x="87" y="41">row_value_constructor_element</text></a><rect x="267" y="50" width="8" height="18" class="terminal" rx="4"/> + <text class="terminal" x="271" y="62">,</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#row-value-constructor-element-list" xlink:title="row_value_constructor_element_list" shape="rect"> + <rect x="283" y="50" width="172" height="18" class="nonterminal"/> + <text class="nonterminal" x="287" y="62">row_value_constructor_element_list</text></a><rect x="503" y="1" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="507" y="13">)</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#subquery" xlink:title="subquery" shape="rect"> + <rect x="43" y="78" width="52" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="90">subquery</text></a><path class="line" d="m17 10 h2 m40 0 h4 m32 0 h4 m0 0 h4 m12 0 h4 m0 0 h4 m172 0 h4 m0 0 h180 m-440 0 h20 m420 0 h20 m-460 0 q10 0 10 10 m440 0 q0 -10 10 -10 m-450 10 v8 m440 0 v-8 m-440 8 q0 10 10 10 m420 0 q10 0 10 -10 m-430 10 h4 m12 0 h4 m0 0 h4 m156 0 h4 m20 0 h10 m0 0 h186 m-216 0 h20 m196 0 h20 m-236 0 q10 0 10 10 m216 0 q0 -10 10 -10 m-226 10 v1 m216 0 v-1 m-216 1 q0 10 10 10 m196 0 q10 0 10 -10 m-206 10 h4 m8 0 h4 m0 0 h4 m172 0 h4 m40 -49 h4 m12 0 h4 m-500 0 h20 m480 0 h20 m-520 0 q10 0 10 10 m500 0 q0 -10 10 -10 m-510 10 v57 m500 0 v-57 m-500 57 q0 10 10 10 m480 0 q10 0 10 -10 m-490 10 h4 m52 0 h4 m0 0 h420 m23 -77 h-3"/> + <polygon points="549 10 557 6 557 14"/> + <polygon points="549 10 541 6 541 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#explicit-row-value-constructor" title="explicit_row_value_constructor" shape="rect">explicit_row_value_constructor</a></div> + <div>         ::= ( 'ROW' '(' <a href="#row-value-constructor-element-list" title="row_value_constructor_element_list" shape="rect">row_value_constructor_element_list</a> | '(' <a href="#row-value-constructor-element" title="row_value_constructor_element" shape="rect">row_value_constructor_element</a> ( ',' <a href="#row-value-constructor-element-list" title="row_value_constructor_element_list" shape="rect">row_value_constructor_element_list</a> )? ) ')'</div> + <div>           | <a href="#subquery" title="subquery" shape="rect">subquery</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#row-value-constructor" title="row-value-constructor">row-value-constructor</a></li><li><a href="#row-value-constructor-predicand" title="row-value-constructor-predicand">row-value-constructor-predicand</a></li><li><a href="#row-value-expression" title="row-value-expression">row-value-expression</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + row_value_constructor_element_list +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="243" height="49"> + <polygon points="9 38 1 34 1 42"/> + <polygon points="17 38 9 34 9 42"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#row-value-constructor-element" xlink:title="row_value_constructor_element" shape="rect"> + <rect x="43" y="29" width="156" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">row_value_constructor_element</text></a><rect x="43" y="1" width="8" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="13">,</text> + <path class="line" d="m17 38 h2 m20 0 h4 m156 0 h4 m-184 0 l20 0 m-1 0 q-9 0 -9 -10 l0 -8 q0 -10 10 -10 m164 28 l20 0 m-20 0 q10 0 10 -10 l0 -8 q0 -10 -10 -10 m-164 0 h4 m8 0 h4 m0 0 h148 m23 28 h-3"/> + <polygon points="233 38 241 34 241 42"/> + <polygon points="233 38 225 34 225 42"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#row-value-constructor-element-list" title="row_value_constructor_element_list" shape="rect">row_value_constructor_element_list</a></div> + <div>         ::= <a href="#row-value-constructor-element" title="row_value_constructor_element" shape="rect">row_value_constructor_element</a> ( ',' <a href="#row-value-constructor-element" title="row_value_constructor_element" shape="rect">row_value_constructor_element</a> )*</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#explicit-row-value-constructor" title="explicit-row-value-constructor">explicit-row-value-constructor</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + row_value_constructor_element +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="137" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#value-expression" xlink:title="value_expression" shape="rect"> + <rect x="23" y="1" width="90" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">value_expression</text></a><path class="line" d="m17 10 h2 m0 0 h4 m90 0 h4 m3 0 h-3"/> + <polygon points="127 10 135 6 135 14"/> + <polygon points="127 10 119 6 119 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#row-value-constructor-element" title="row_value_constructor_element" shape="rect">row_value_constructor_element</a></div> + <div>         ::= <a href="#value-expression" title="value_expression" shape="rect">value_expression</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#explicit-row-value-constructor" title="explicit-row-value-constructor">explicit-row-value-constructor</a></li><li><a href="#row-value-constructor-element-list" title="row-value-constructor-element-list">row-value-constructor-element-list</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + contextually_typed_row_value_constructor +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="743" height="161"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#common-value-expression" xlink:title="common_value_expression" shape="rect"> + <rect x="43" y="1" width="136" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">common_value_expression</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#boolean-value-expression" xlink:title="boolean_value_expression" shape="rect"> + <rect x="43" y="29" width="132" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">boolean_value_expression</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#contextually-typed-value-specification" xlink:title="contextually_typed_value_specification" shape="rect"> + <rect x="43" y="57" width="184" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="69">contextually_typed_value_specification</text></a><rect x="63" y="85" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="67" y="97">(</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#contextually-typed-value-specification" xlink:title="contextually_typed_value_specification" shape="rect"> + <rect x="103" y="85" width="184" height="18" class="nonterminal"/> + <text class="nonterminal" x="107" y="97">contextually_typed_value_specification</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#contextually-typed-row-value-constructor-element" xlink:title="contextually_typed_row_value_constructor_element" shape="rect"> + <rect x="103" y="113" width="248" height="18" class="nonterminal"/> + <text class="nonterminal" x="107" y="125">contextually_typed_row_value_constructor_element</text></a><rect x="359" y="113" width="8" height="18" class="terminal" rx="4"/> + <text class="terminal" x="363" y="125">,</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#contextually-typed-row-value-constructor-element-list" xlink:title="contextually_typed_row_value_constructor_element_list" shape="rect"> + <rect x="375" y="113" width="264" height="18" class="nonterminal"/> + <text class="nonterminal" x="379" y="125">contextually_typed_row_value_constructor_element_list</text></a><rect x="63" y="141" width="32" height="18" class="terminal" rx="4"/> + <text class="terminal" x="67" y="153">ROW</text> + <rect x="103" y="141" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="107" y="153">(</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#contextually-typed-row-value-constructor-element-list" xlink:title="contextually_typed_row_value_constructor_element_list" shape="rect"> + <rect x="123" y="141" width="264" height="18" class="nonterminal"/> + <text class="nonterminal" x="127" y="153">contextually_typed_row_value_constructor_element_list</text></a><rect x="687" y="85" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="691" y="97">)</text> + <path class="line" d="m17 10 h2 m20 0 h4 m136 0 h4 m0 0 h520 m-684 0 h20 m664 0 h20 m-704 0 q10 0 10 10 m684 0 q0 -10 10 -10 m-694 10 v8 m684 0 v-8 m-684 8 q0 10 10 10 m664 0 q10 0 10 -10 m-674 10 h4 m132 0 h4 m0 0 h524 m-674 -10 v20 m684 0 v-20 m-684 20 v8 m684 0 v-8 m-684 8 q0 10 10 10 m664 0 q10 0 10 -10 m-674 10 h4 m184 0 h4 m0 0 h472 m-674 -10 v20 m684 0 v-20 m-684 20 v8 m684 0 v-8 m-684 8 q0 10 10 10 m664 0 q10 0 10 -10 m-654 10 h4 m12 0 h4 m20 0 h4 m184 0 h4 m0 0 h352 m-564 0 h20 m544 0 h20 m-584 0 q10 0 10 10 m564 0 q0 -10 10 -10 m-574 10 v8 m564 0 v-8 m-564 8 q0 10 10 10 m544 0 q10 0 10 -10 m-554 10 h4 m248 0 h4 m0 0 h4 m8 0 h4 m0 0 h4 m264 0 h4 m-604 -28 h20 m604 0 h20 m-644 0 q10 0 10 10 m624 0 q0 -10 10 -10 m-634 10 v36 m624 0 v-36 m-624 36 q0 10 10 10 m604 0 q10 0 10 -10 m-614 10 h4 m32 0 h4 m0 0 h4 m12 0 h4 m0 0 h4 m264 0 h4 m0 0 h272 m20 -56 h4 m12 0 h4 m23 -84 h-3"/> + <polygon points="733 10 741 6 741 14"/> + <polygon points="733 10 725 6 725 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#contextually-typed-row-value-constructor" title="contextually_typed_row_value_constructor" shape="rect">contextually_typed_row_value_constructor</a></div> + <div>         ::= <a href="#common-value-expression" title="common_value_expression" shape="rect">common_value_expression</a></div> + <div>           | <a href="#boolean-value-expression" title="boolean_value_expression" shape="rect">boolean_value_expression</a></div> + <div>           | <a href="#contextually-typed-value-specification" title="contextually_typed_value_specification" shape="rect">contextually_typed_value_specification</a></div> + <div>           | ( '(' ( <a href="#contextually-typed-value-specification" title="contextually_typed_value_specification" shape="rect">contextually_typed_value_specification</a> | <a href="#contextually-typed-row-value-constructor-element" title="contextually_typed_row_value_constructor_element" shape="rect">contextually_typed_row_value_constructor_element</a> ',' <a href="#contextually-typed-row-value-constructor-element-list" title="contextually_typed_row_value_constructor_element_list" shape="rect">contextually_typed_row_value_constructor_element_list</a> ) | 'ROW' '(' <a href="#contextually-typed-row-value-constructor-element-list" title="contextually_typed_row_value_constructor_element_list" shape="rect">contextually_typed_row_value_constructor_element_list</a> ) ')'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#contextually-typed-row-value-expression" title="contextually-typed-row-value-expression">contextually-typed-row-value-expression</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + contextually_typed_row_value_constructor_element_list +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="335" height="49"> + <polygon points="9 38 1 34 1 42"/> + <polygon points="17 38 9 34 9 42"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#contextually-typed-row-value-constructor-element" xlink:title="contextually_typed_row_value_constructor_element" shape="rect"> + <rect x="43" y="29" width="248" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">contextually_typed_row_value_constructor_element</text></a><rect x="43" y="1" width="8" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="13">,</text> + <path class="line" d="m17 38 h2 m20 0 h4 m248 0 h4 m-276 0 l20 0 m-1 0 q-9 0 -9 -10 l0 -8 q0 -10 10 -10 m256 28 l20 0 m-20 0 q10 0 10 -10 l0 -8 q0 -10 -10 -10 m-256 0 h4 m8 0 h4 m0 0 h240 m23 28 h-3"/> + <polygon points="325 38 333 34 333 42"/> + <polygon points="325 38 317 34 317 42"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#contextually-typed-row-value-constructor-element-list" title="contextually_typed_row_value_constructor_element_list" shape="rect">contextually_typed_row_value_constructor_element_list</a></div> + <div>         ::= <a href="#contextually-typed-row-value-constructor-element" title="contextually_typed_row_value_constructor_element" shape="rect">contextually_typed_row_value_constructor_element</a> ( ',' <a href="#contextually-typed-row-value-constructor-element" title="contextually_typed_row_value_constructor_element" shape="rect">contextually_typed_row_value_constructor_element</a> )*</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#contextually-typed-row-value-constructor" title="contextually-typed-row-value-constructor">contextually-typed-row-value-constructor</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + contextually_typed_row_value_constructor_element +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="231" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#contextually-typed-value-specification" xlink:title="contextually_typed_value_specification" shape="rect"> + <rect x="23" y="1" width="184" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">contextually_typed_value_specification</text></a><path class="line" d="m17 10 h2 m0 0 h4 m184 0 h4 m3 0 h-3"/> + <polygon points="221 10 229 6 229 14"/> + <polygon points="221 10 213 6 213 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#contextually-typed-row-value-constructor-element" title="contextually_typed_row_value_constructor_element" shape="rect">contextually_typed_row_value_constructor_element</a></div> + <div>         ::= <a href="#contextually-typed-value-specification" title="contextually_typed_value_specification" shape="rect">contextually_typed_value_specification</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#contextually-typed-row-value-constructor" title="contextually-typed-row-value-constructor">contextually-typed-row-value-constructor</a></li><li><a href="#contextually-typed-row-value-constructor-element-list" title="contextually-typed-row-value-constructor-element-list">contextually-typed-row-value-constructor-element-list</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + row_value_constructor_predicand +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="233" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#common-value-expression" xlink:title="common_value_expression" shape="rect"> + <rect x="43" y="1" width="136" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">common_value_expression</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#explicit-row-value-constructor" xlink:title="explicit_row_value_constructor" shape="rect"> + <rect x="43" y="29" width="146" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">explicit_row_value_constructor</text></a><path class="line" d="m17 10 h2 m20 0 h4 m136 0 h4 m0 0 h10 m-174 0 h20 m154 0 h20 m-194 0 q10 0 10 10 m174 0 q0 -10 10 -10 m-184 10 v8 m174 0 v-8 m-174 8 q0 10 10 10 m154 0 q10 0 10 -10 m-164 10 h4 m146 0 h4 m23 -28 h-3"/> + <polygon points="223 10 231 6 231 14"/> + <polygon points="223 10 215 6 215 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#row-value-constructor-predicand" title="row_value_constructor_predicand" shape="rect">row_value_constructor_predicand</a></div> + <div>         ::= <a href="#common-value-expression" title="common_value_expression" shape="rect">common_value_expression</a></div> + <div>           | <a href="#explicit-row-value-constructor" title="explicit_row_value_constructor" shape="rect">explicit_row_value_constructor</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#row-value-predicand" title="row-value-predicand">row-value-predicand</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + row_value_expression +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="233" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#explicit-row-value-constructor" xlink:title="explicit_row_value_constructor" shape="rect"> + <rect x="43" y="1" width="146" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">explicit_row_value_constructor</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#row-value-special-case" xlink:title="row_value_special_case" shape="rect"> + <rect x="43" y="29" width="120" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">row_value_special_case</text></a><path class="line" d="m17 10 h2 m20 0 h4 m146 0 h4 m-174 0 h20 m154 0 h20 m-194 0 q10 0 10 10 m174 0 q0 -10 10 -10 m-184 10 v8 m174 0 v-8 m-174 8 q0 10 10 10 m154 0 q10 0 10 -10 m-164 10 h4 m120 0 h4 m0 0 h26 m23 -28 h-3"/> + <polygon points="223 10 231 6 231 14"/> + <polygon points="223 10 215 6 215 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#row-value-expression" title="row_value_expression" shape="rect">row_value_expression</a></div> + <div>         ::= <a href="#explicit-row-value-constructor" title="explicit_row_value_constructor" shape="rect">explicit_row_value_constructor</a></div> + <div>           | <a href="#row-value-special-case" title="row_value_special_case" shape="rect">row_value_special_case</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#in-value-list" title="in-value-list">in-value-list</a></li><li><a href="#value-expression" title="value-expression">value-expression</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + table_row_value_expression +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="207" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#row-value-constructor" xlink:title="row_value_constructor" shape="rect"> + <rect x="43" y="1" width="112" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">row_value_constructor</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#row-value-special-case" xlink:title="row_value_special_case" shape="rect"> + <rect x="43" y="29" width="120" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">row_value_special_case</text></a><path class="line" d="m17 10 h2 m20 0 h4 m112 0 h4 m0 0 h8 m-148 0 h20 m128 0 h20 m-168 0 q10 0 10 10 m148 0 q0 -10 10 -10 m-158 10 v8 m148 0 v-8 m-148 8 q0 10 10 10 m128 0 q10 0 10 -10 m-138 10 h4 m120 0 h4 m23 -28 h-3"/> + <polygon points="197 10 205 6 205 14"/> + <polygon points="197 10 189 6 189 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#table-row-value-expression" title="table_row_value_expression" shape="rect">table_row_value_expression</a></div> + <div>         ::= <a href="#row-value-constructor" title="row_value_constructor" shape="rect">row_value_constructor</a></div> + <div>           | <a href="#row-value-special-case" title="row_value_special_case" shape="rect">row_value_special_case</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#row-value-expression-list" title="row-value-expression-list">row-value-expression-list</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + contextually_typed_row_value_expression +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="291" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#contextually-typed-row-value-constructor" xlink:title="contextually_typed_row_value_constructor" shape="rect"> + <rect x="43" y="1" width="204" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">contextually_typed_row_value_constructor</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#row-value-special-case" xlink:title="row_value_special_case" shape="rect"> + <rect x="43" y="29" width="120" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">row_value_special_case</text></a><path class="line" d="m17 10 h2 m20 0 h4 m204 0 h4 m-232 0 h20 m212 0 h20 m-252 0 q10 0 10 10 m232 0 q0 -10 10 -10 m-242 10 v8 m232 0 v-8 m-232 8 q0 10 10 10 m212 0 q10 0 10 -10 m-222 10 h4 m120 0 h4 m0 0 h84 m23 -28 h-3"/> + <polygon points="281 10 289 6 289 14"/> + <polygon points="281 10 273 6 273 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#contextually-typed-row-value-expression" title="contextually_typed_row_value_expression" shape="rect">contextually_typed_row_value_expression</a></div> + <div>         ::= <a href="#contextually-typed-row-value-constructor" title="contextually_typed_row_value_constructor" shape="rect">contextually_typed_row_value_constructor</a></div> + <div>           | <a href="#row-value-special-case" title="row_value_special_case" shape="rect">row_value_special_case</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#assigned-row" title="assigned-row">assigned-row</a></li><li><a href="#contextually-typed-row-value-expression-list" title="contextually-typed-row-value-expression-list">contextually-typed-row-value-expression-list</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + row_value_predicand +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="251" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#row-value-constructor-predicand" xlink:title="row_value_constructor_predicand" shape="rect"> + <rect x="43" y="1" width="164" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">row_value_constructor_predicand</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#row-value-special-case" xlink:title="row_value_special_case" shape="rect"> + <rect x="43" y="29" width="120" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">row_value_special_case</text></a><path class="line" d="m17 10 h2 m20 0 h4 m164 0 h4 m-192 0 h20 m172 0 h20 m-212 0 q10 0 10 10 m192 0 q0 -10 10 -10 m-202 10 v8 m192 0 v-8 m-192 8 q0 10 10 10 m172 0 q10 0 10 -10 m-182 10 h4 m120 0 h4 m0 0 h44 m23 -28 h-3"/> + <polygon points="241 10 249 6 249 14"/> + <polygon points="241 10 233 6 233 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#row-value-predicand" title="row_value_predicand" shape="rect">row_value_predicand</a></div> + <div>         ::= <a href="#row-value-constructor-predicand" title="row_value_constructor_predicand" shape="rect">row_value_constructor_predicand</a></div> + <div>           | <a href="#row-value-special-case" title="row_value_special_case" shape="rect">row_value_special_case</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#between-predicate-part-2" title="between-predicate-part-2">between-predicate-part-2</a></li><li><a href="#case-operand" title="case-operand">case-operand</a></li><li><a href="#comparison-predicate-part-2" title="comparison-predicate-part-2">comparison-predicate-part-2</a></li><li><a href="#predicate" title="predicate">predicate</a></li><li><a href="#row-value-predicand-1" title="row-value-predicand-1">row-value-predicand-1</a></li><li><a href="#row-value-predicand-2" title="row-value-predicand-2">row-value-predicand-2</a></li><li><a href="#row-value-predicand-3" title="row-value-predicand-3">row-value-predicand-3</a></li><li><a href="#row-value-predicand-4" title="row-value-predicand-4">row-value-predicand-4</a></li><li><a href="#when-operand" title="when-operand">when-operand</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + row_value_special_case +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="307" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#common-value-expression" xlink:title="common_value_expression" shape="rect"> + <rect x="43" y="1" width="136" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">common_value_expression</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#nonparenthesized-value-expression-primary" xlink:title="nonparenthesized_value_expression_primary" shape="rect"> + <rect x="43" y="29" width="220" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">nonparenthesized_value_expression_primary</text></a><path class="line" d="m17 10 h2 m20 0 h4 m136 0 h4 m0 0 h84 m-248 0 h20 m228 0 h20 m-268 0 q10 0 10 10 m248 0 q0 -10 10 -10 m-258 10 v8 m248 0 v-8 m-248 8 q0 10 10 10 m228 0 q10 0 10 -10 m-238 10 h4 m220 0 h4 m23 -28 h-3"/> + <polygon points="297 10 305 6 305 14"/> + <polygon points="297 10 289 6 289 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#row-value-special-case" title="row_value_special_case" shape="rect">row_value_special_case</a></div> + <div>         ::= <a href="#common-value-expression" title="common_value_expression" shape="rect">common_value_expression</a></div> + <div>           | <a href="#nonparenthesized-value-expression-primary" title="nonparenthesized_value_expression_primary" shape="rect">nonparenthesized_value_expression_primary</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#contextually-typed-row-value-expression" title="contextually-typed-row-value-expression">contextually-typed-row-value-expression</a></li><li><a href="#row-value-expression" title="row-value-expression">row-value-expression</a></li><li><a href="#row-value-predicand" title="row-value-predicand">row-value-predicand</a></li><li><a href="#table-row-value-expression" title="table-row-value-expression">table-row-value-expression</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + table_value_constructor +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="225" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="42" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">VALUES</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#row-value-expression-list" xlink:title="row_value_expression_list" shape="rect"> + <rect x="73" y="1" width="128" height="18" class="nonterminal"/> + <text class="nonterminal" x="77" y="13">row_value_expression_list</text></a><path class="line" d="m17 10 h2 m0 0 h4 m42 0 h4 m0 0 h4 m128 0 h4 m3 0 h-3"/> + <polygon points="215 10 223 6 223 14"/> + <polygon points="215 10 207 6 207 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#table-value-constructor" title="table_value_constructor" shape="rect">table_value_constructor</a></div> + <div>         ::= 'VALUES' <a href="#row-value-expression-list" title="row_value_expression_list" shape="rect">row_value_expression_list</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#simple-table" title="simple-table">simple-table</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + row_value_expression_list +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="227" height="49"> + <polygon points="9 38 1 34 1 42"/> + <polygon points="17 38 9 34 9 42"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#table-row-value-expression" xlink:title="table_row_value_expression" shape="rect"> + <rect x="43" y="29" width="140" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">table_row_value_expression</text></a><rect x="43" y="1" width="8" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="13">,</text> + <path class="line" d="m17 38 h2 m20 0 h4 m140 0 h4 m-168 0 l20 0 m-1 0 q-9 0 -9 -10 l0 -8 q0 -10 10 -10 m148 28 l20 0 m-20 0 q10 0 10 -10 l0 -8 q0 -10 -10 -10 m-148 0 h4 m8 0 h4 m0 0 h132 m23 28 h-3"/> + <polygon points="217 38 225 34 225 42"/> + <polygon points="217 38 209 34 209 42"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#row-value-expression-list" title="row_value_expression_list" shape="rect">row_value_expression_list</a></div> + <div>         ::= <a href="#table-row-value-expression" title="table_row_value_expression" shape="rect">table_row_value_expression</a> ( ',' <a href="#table-row-value-expression" title="table_row_value_expression" shape="rect">table_row_value_expression</a> )*</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#table-value-constructor" title="table-value-constructor">table-value-constructor</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + contextually_typed_table_value_constructor +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="317" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="42" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">VALUES</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#contextually-typed-row-value-expression-list" xlink:title="contextually_typed_row_value_expression_list" shape="rect"> + <rect x="73" y="1" width="220" height="18" class="nonterminal"/> + <text class="nonterminal" x="77" y="13">contextually_typed_row_value_expression_list</text></a><path class="line" d="m17 10 h2 m0 0 h4 m42 0 h4 m0 0 h4 m220 0 h4 m3 0 h-3"/> + <polygon points="307 10 315 6 315 14"/> + <polygon points="307 10 299 6 299 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#contextually-typed-table-value-constructor" title="contextually_typed_table_value_constructor" shape="rect">contextually_typed_table_value_constructor</a></div> + <div>         ::= 'VALUES' <a href="#contextually-typed-row-value-expression-list" title="contextually_typed_row_value_expression_list" shape="rect">contextually_typed_row_value_expression_list</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#from-constructor" title="from-constructor">from-constructor</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + contextually_typed_row_value_expression_list +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="291" height="49"> + <polygon points="9 38 1 34 1 42"/> + <polygon points="17 38 9 34 9 42"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#contextually-typed-row-value-expression" xlink:title="contextually_typed_row_value_expression" shape="rect"> + <rect x="43" y="29" width="204" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">contextually_typed_row_value_expression</text></a><rect x="43" y="1" width="8" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="13">,</text> + <path class="line" d="m17 38 h2 m20 0 h4 m204 0 h4 m-232 0 l20 0 m-1 0 q-9 0 -9 -10 l0 -8 q0 -10 10 -10 m212 28 l20 0 m-20 0 q10 0 10 -10 l0 -8 q0 -10 -10 -10 m-212 0 h4 m8 0 h4 m0 0 h196 m23 28 h-3"/> + <polygon points="281 38 289 34 289 42"/> + <polygon points="281 38 273 34 273 42"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#contextually-typed-row-value-expression-list" title="contextually_typed_row_value_expression_list" shape="rect">contextually_typed_row_value_expression_list</a></div> + <div>         ::= <a href="#contextually-typed-row-value-expression" title="contextually_typed_row_value_expression" shape="rect">contextually_typed_row_value_expression</a> ( ',' <a href="#contextually-typed-row-value-expression" title="contextually_typed_row_value_expression" shape="rect">contextually_typed_row_value_expression</a> )*</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#contextually-typed-table-value-constructor" title="contextually-typed-table-value-constructor">contextually-typed-table-value-constructor</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + table_expression +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="615" height="42"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#from-clause" xlink:title="from_clause" shape="rect"> + <rect x="23" y="1" width="64" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">from_clause</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#where-clause" xlink:title="where_clause" shape="rect"> + <rect x="115" y="22" width="72" height="18" class="nonterminal"/> + <text class="nonterminal" x="119" y="34">where_clause</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#group-by-clause" xlink:title="group_by_clause" shape="rect"> + <rect x="235" y="22" width="88" height="18" class="nonterminal"/> + <text class="nonterminal" x="239" y="34">group_by_clause</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#having-clause" xlink:title="having_clause" shape="rect"> + <rect x="371" y="22" width="74" height="18" class="nonterminal"/> + <text class="nonterminal" x="375" y="34">having_clause</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#window-clause" xlink:title="window_clause" shape="rect"> + <rect x="493" y="22" width="78" height="18" class="nonterminal"/> + <text class="nonterminal" x="497" y="34">window_clause</text></a><path class="line" d="m17 10 h2 m0 0 h4 m64 0 h4 m20 0 h10 m0 0 h70 m-100 0 h20 m80 0 h20 m-120 0 q10 0 10 10 m100 0 q0 -10 10 -10 m-110 10 v1 m100 0 v-1 m-100 1 q0 10 10 10 m80 0 q10 0 10 -10 m-90 10 h4 m72 0 h4 m40 -21 h10 m0 0 h86 m-116 0 h20 m96 0 h20 m-136 0 q10 0 10 10 m116 0 q0 -10 10 -10 m-126 10 v1 m116 0 v-1 m-116 1 q0 10 10 10 m96 0 q10 0 10 -10 m-106 10 h4 m88 0 h4 m40 -21 h10 m0 0 h72 m-102 0 h20 m82 0 h20 m-122 0 q10 0 10 10 m102 0 q0 -10 10 -10 m-112 10 v1 m102 0 v-1 m-102 1 q0 10 10 10 m82 0 q10 0 10 -10 m-92 10 h4 m74 0 h4 m40 -21 h10 m0 0 h76 m-106 0 h20 m86 0 h20 m-126 0 q10 0 10 10 m106 0 q0 -10 10 -10 m-116 10 v1 m106 0 v-1 m-106 1 q0 10 10 10 m86 0 q10 0 10 -10 m-96 10 h4 m78 0 h4 m23 -21 h-3"/> + <polygon points="605 10 613 6 613 14"/> + <polygon points="605 10 597 6 597 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#table-expression" title="table_expression" shape="rect">table_expression</a></div> + <div>         ::= <a href="#from-clause" title="from_clause" shape="rect">from_clause</a> <a href="#where-clause" title="where_clause" shape="rect">where_clause</a>? <a href="#group-by-clause" title="group_by_clause" shape="rect">group_by_clause</a>? <a href="#having-clause" title="having_clause" shape="rect">having_clause</a>? <a href="#window-clause" title="window_clause" shape="rect">window_clause</a>?</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#query-specification" title="query-specification">query-specification</a></li><li><a href="#select-statement-single-row" title="select-statement-single-row">select-statement-single-row</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + from_clause +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="189" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="36" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">FROM</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#table-reference-list" xlink:title="table_reference_list" shape="rect"> + <rect x="67" y="1" width="98" height="18" class="nonterminal"/> + <text class="nonterminal" x="71" y="13">table_reference_list</text></a><path class="line" d="m17 10 h2 m0 0 h4 m36 0 h4 m0 0 h4 m98 0 h4 m3 0 h-3"/> + <polygon points="179 10 187 6 187 14"/> + <polygon points="179 10 171 6 171 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#from-clause" title="from_clause" shape="rect">from_clause</a></div> + <div>         ::= 'FROM' <a href="#table-reference-list" title="table_reference_list" shape="rect">table_reference_list</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#table-expression" title="table-expression">table-expression</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + table_reference_list +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="167" height="49"> + <polygon points="9 38 1 34 1 42"/> + <polygon points="17 38 9 34 9 42"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#table-reference" xlink:title="table_reference" shape="rect"> + <rect x="43" y="29" width="80" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">table_reference</text></a><rect x="43" y="1" width="8" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="13">,</text> + <path class="line" d="m17 38 h2 m20 0 h4 m80 0 h4 m-108 0 l20 0 m-1 0 q-9 0 -9 -10 l0 -8 q0 -10 10 -10 m88 28 l20 0 m-20 0 q10 0 10 -10 l0 -8 q0 -10 -10 -10 m-88 0 h4 m8 0 h4 m0 0 h72 m23 28 h-3"/> + <polygon points="157 38 165 34 165 42"/> + <polygon points="157 38 149 34 149 42"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#table-reference-list" title="table_reference_list" shape="rect">table_reference_list</a></div> + <div>         ::= <a href="#table-reference" title="table_reference" shape="rect">table_reference</a> ( ',' <a href="#table-reference" title="table_reference" shape="rect">table_reference</a> )*</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#from-clause" title="from-clause">from-clause</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + table_reference +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="223" height="42"> + <polygon points="9 31 1 27 1 35"/> + <polygon points="17 31 9 27 9 35"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#table-factor" xlink:title="table_factor" shape="rect"> + <rect x="23" y="22" width="62" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="34">table_factor</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#joined-table" xlink:title="joined_table" shape="rect"> + <rect x="113" y="1" width="66" height="18" class="nonterminal"/> + <text class="nonterminal" x="117" y="13">joined_table</text></a><path class="line" d="m17 31 h2 m0 0 h4 m62 0 h4 m20 0 h10 m0 0 h64 m-94 0 l20 0 m-1 0 q-9 0 -9 -10 l0 -1 q0 -10 10 -10 m74 21 l20 0 m-20 0 q10 0 10 -10 l0 -1 q0 -10 -10 -10 m-74 0 h4 m66 0 h4 m23 21 h-3"/> + <polygon points="213 31 221 27 221 35"/> + <polygon points="213 31 205 27 205 35"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#table-reference" title="table_reference" shape="rect">table_reference</a></div> + <div>         ::= <a href="#table-factor" title="table_factor" shape="rect">table_factor</a> <a href="#joined-table" title="joined_table" shape="rect">joined_table</a>*</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#merge-statement" title="merge-statement">merge-statement</a></li><li><a href="#parenthesized-joined-table" title="parenthesized-joined-table">parenthesized-joined-table</a></li><li><a href="#qualified-join" title="qualified-join">qualified-join</a></li><li><a href="#table-reference-list" title="table-reference-list">table-reference-list</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + table_factor +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="399" height="42"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#table-primary" xlink:title="table_primary" shape="rect"> + <rect x="23" y="1" width="72" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">table_primary</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#sample-clause" xlink:title="sample_clause" shape="rect"> + <rect x="123" y="22" width="78" height="18" class="nonterminal"/> + <text class="nonterminal" x="127" y="34">sample_clause</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#partitioned-join-table" xlink:title="partitioned_join_table" shape="rect"> + <rect x="249" y="22" width="106" height="18" class="nonterminal"/> + <text class="nonterminal" x="253" y="34">partitioned_join_table</text></a><path class="line" d="m17 10 h2 m0 0 h4 m72 0 h4 m20 0 h10 m0 0 h76 m-106 0 h20 m86 0 h20 m-126 0 q10 0 10 10 m106 0 q0 -10 10 -10 m-116 10 v1 m106 0 v-1 m-106 1 q0 10 10 10 m86 0 q10 0 10 -10 m-96 10 h4 m78 0 h4 m40 -21 h10 m0 0 h104 m-134 0 h20 m114 0 h20 m-154 0 q10 0 10 10 m134 0 q0 -10 10 -10 m-144 10 v1 m134 0 v-1 m-134 1 q0 10 10 10 m114 0 q10 0 10 -10 m-124 10 h4 m106 0 h4 m23 -21 h-3"/> + <polygon points="389 10 397 6 397 14"/> + <polygon points="389 10 381 6 381 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#table-factor" title="table_factor" shape="rect">table_factor</a></div> + <div>         ::= <a href="#table-primary" title="table_primary" shape="rect">table_primary</a> <a href="#sample-clause" title="sample_clause" shape="rect">sample_clause</a>? <a href="#partitioned-join-table" title="partitioned_join_table" shape="rect">partitioned_join_table</a>?</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#cross-join" title="cross-join">cross-join</a></li><li><a href="#natural-join" title="natural-join">natural-join</a></li><li><a href="#table-reference" title="table-reference">table-reference</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + sample_clause +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="505" height="42"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="72" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">TABLESAMPLE</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#sample-method" xlink:title="sample_method" shape="rect"> + <rect x="103" y="1" width="86" height="18" class="nonterminal"/> + <text class="nonterminal" x="107" y="13">sample_method</text></a><rect x="197" y="1" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="201" y="13">(</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#sample-percentage" xlink:title="sample_percentage" shape="rect"> + <rect x="217" y="1" width="102" height="18" class="nonterminal"/> + <text class="nonterminal" x="221" y="13">sample_percentage</text></a><rect x="327" y="1" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="331" y="13">)</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#repeatable-clause" xlink:title="repeatable_clause" shape="rect"> + <rect x="367" y="22" width="94" height="18" class="nonterminal"/> + <text class="nonterminal" x="371" y="34">repeatable_clause</text></a><path class="line" d="m17 10 h2 m0 0 h4 m72 0 h4 m0 0 h4 m86 0 h4 m0 0 h4 m12 0 h4 m0 0 h4 m102 0 h4 m0 0 h4 m12 0 h4 m20 0 h10 m0 0 h92 m-122 0 h20 m102 0 h20 m-142 0 q10 0 10 10 m122 0 q0 -10 10 -10 m-132 10 v1 m122 0 v-1 m-122 1 q0 10 10 10 m102 0 q10 0 10 -10 m-112 10 h4 m94 0 h4 m23 -21 h-3"/> + <polygon points="495 10 503 6 503 14"/> + <polygon points="495 10 487 6 487 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#sample-clause" title="sample_clause" shape="rect">sample_clause</a></div> + <div>         ::= 'TABLESAMPLE' <a href="#sample-method" title="sample_method" shape="rect">sample_method</a> '(' <a href="#sample-percentage" title="sample_percentage" shape="rect">sample_percentage</a> ')' <a href="#repeatable-clause" title="repeatable_clause" shape="rect">repeatable_clause</a>?</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#table-factor" title="table-factor">table-factor</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + sample_method +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="147" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="43" y="1" width="60" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="13">BERNOULLI</text> + <rect x="43" y="29" width="44" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="41">SYSTEM</text> + <path class="line" d="m17 10 h2 m20 0 h4 m60 0 h4 m-88 0 h20 m68 0 h20 m-108 0 q10 0 10 10 m88 0 q0 -10 10 -10 m-98 10 v8 m88 0 v-8 m-88 8 q0 10 10 10 m68 0 q10 0 10 -10 m-78 10 h4 m44 0 h4 m0 0 h16 m23 -28 h-3"/> + <polygon points="137 10 145 6 145 14"/> + <polygon points="137 10 129 6 129 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#sample-method" title="sample_method" shape="rect">sample_method</a></div> + <div>         ::= 'BERNOULLI'</div> + <div>           | 'SYSTEM'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#sample-clause" title="sample-clause">sample-clause</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + repeatable_clause +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="251" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="64" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">REPEATABLE</text> + <rect x="95" y="1" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="99" y="13">(</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#repeat-argument" xlink:title="repeat_argument" shape="rect"> + <rect x="115" y="1" width="92" height="18" class="nonterminal"/> + <text class="nonterminal" x="119" y="13">repeat_argument</text></a><rect x="215" y="1" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="219" y="13">)</text> + <path class="line" d="m17 10 h2 m0 0 h4 m64 0 h4 m0 0 h4 m12 0 h4 m0 0 h4 m92 0 h4 m0 0 h4 m12 0 h4 m3 0 h-3"/> + <polygon points="241 10 249 6 249 14"/> + <polygon points="241 10 233 6 233 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#repeatable-clause" title="repeatable_clause" shape="rect">repeatable_clause</a></div> + <div>         ::= 'REPEATABLE' '(' <a href="#repeat-argument" title="repeat_argument" shape="rect">repeat_argument</a> ')'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#sample-clause" title="sample-clause">sample-clause</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + sample_percentage +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="179" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#numeric-value-expression" xlink:title="numeric_value_expression" shape="rect"> + <rect x="23" y="1" width="132" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">numeric_value_expression</text></a><path class="line" d="m17 10 h2 m0 0 h4 m132 0 h4 m3 0 h-3"/> + <polygon points="169 10 177 6 177 14"/> + <polygon points="169 10 161 6 161 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#sample-percentage" title="sample_percentage" shape="rect">sample_percentage</a></div> + <div>         ::= <a href="#numeric-value-expression" title="numeric_value_expression" shape="rect">numeric_value_expression</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#sample-clause" title="sample-clause">sample-clause</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + repeat_argument +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="179" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#numeric-value-expression" xlink:title="numeric_value_expression" shape="rect"> + <rect x="23" y="1" width="132" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">numeric_value_expression</text></a><path class="line" d="m17 10 h2 m0 0 h4 m132 0 h4 m3 0 h-3"/> + <polygon points="169 10 177 6 177 14"/> + <polygon points="169 10 161 6 161 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#repeat-argument" title="repeat_argument" shape="rect">repeat_argument</a></div> + <div>         ::= <a href="#numeric-value-expression" title="numeric_value_expression" shape="rect">numeric_value_expression</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#repeatable-clause" title="repeatable-clause">repeatable-clause</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + table_primary +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="305" height="217"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#table-or-query-name" xlink:title="table_or_query_name" shape="rect"> + <rect x="43" y="1" width="112" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">table_or_query_name</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#derived-table" xlink:title="derived_table" shape="rect"> + <rect x="43" y="29" width="72" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">derived_table</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#parenthesized-joined-table" xlink:title="parenthesized_joined_table" shape="rect"> + <rect x="43" y="57" width="136" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="69">parenthesized_joined_table</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#lateral-derived-table" xlink:title="lateral_derived_table" shape="rect"> + <rect x="43" y="85" width="104" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="97">lateral_derived_table</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#collection-derived-table" xlink:title="collection_derived_table" shape="rect"> + <rect x="43" y="113" width="116" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="125">collection_derived_table</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#table-function-derived-table" xlink:title="table_function_derived_table" shape="rect"> + <rect x="43" y="141" width="140" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="153">table_function_derived_table</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#only-spec" xlink:title="only_spec" shape="rect"> + <rect x="43" y="169" width="56" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="181">only_spec</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#data-change-delta-table" xlink:title="data_change_delta_table" shape="rect"> + <rect x="43" y="197" width="128" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="209">data_change_delta_table</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#alias" xlink:title="alias" shape="rect"> + <rect x="231" y="22" width="30" height="18" class="nonterminal"/> + <text class="nonterminal" x="235" y="34">alias</text></a><path class="line" d="m17 10 h2 m20 0 h4 m112 0 h4 m0 0 h28 m-168 0 h20 m148 0 h20 m-188 0 q10 0 10 10 m168 0 q0 -10 10 -10 m-178 10 v8 m168 0 v-8 m-168 8 q0 10 10 10 m148 0 q10 0 10 -10 m-158 10 h4 m72 0 h4 m0 0 h68 m-158 -10 v20 m168 0 v-20 m-168 20 v8 m168 0 v-8 m-168 8 q0 10 10 10 m148 0 q10 0 10 -10 m-158 10 h4 m136 0 h4 m0 0 h4 m-158 -10 v20 m168 0 v-20 m-168 20 v8 m168 0 v-8 m-168 8 q0 10 10 10 m148 0 q10 0 10 -10 m-158 10 h4 m104 0 h4 m0 0 h36 m-158 -10 v20 m168 0 v-20 m-168 20 v8 m168 0 v-8 m-168 8 q0 10 10 10 m148 0 q10 0 10 -10 m-158 10 h4 m116 0 h4 m0 0 h24 m-158 -10 v20 m168 0 v-20 m-168 20 v8 m168 0 v-8 m-168 8 q0 10 10 10 m148 0 q10 0 10 -10 m-158 10 h4 m140 0 h4 m-158 -10 v20 m168 0 v-20 m-168 20 v8 m168 0 v-8 m-168 8 q0 10 10 10 m148 0 q10 0 10 -10 m-158 10 h4 m56 0 h4 m0 0 h84 m-158 -10 v20 m168 0 v-20 m-168 20 v8 m168 0 v-8 m-168 8 q0 10 10 10 m148 0 q10 0 10 -10 m-158 10 h4 m128 0 h4 m0 0 h12 m40 -196 h10 m0 0 h28 m-58 0 h20 m38 0 h20 m-78 0 q10 0 10 10 m58 0 q0 -10 10 -10 m-68 10 v1 m58 0 v-1 m-58 1 q0 10 10 10 m38 0 q10 0 10 -10 m-48 10 h4 m30 0 h4 m23 -21 h-3"/> + <polygon points="295 10 303 6 303 14"/> + <polygon points="295 10 287 6 287 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#table-primary" title="table_primary" shape="rect">table_primary</a></div> + <div>         ::= ( <a href="#table-or-query-name" title="table_or_query_name" shape="rect">table_or_query_name</a> | <a href="#derived-table" title="derived_table" shape="rect">derived_table</a> | <a href="#parenthesized-joined-table" title="parenthesized_joined_table" shape="rect">parenthesized_joined_table</a> | <a href="#lateral-derived-table" title="lateral_derived_table" shape="rect">lateral_derived_table</a> | <a href="#collection-derived-table" title="collection_derived_table" shape="rect">collection_derived_table</a> | <a href="#table-function-derived-table" title="table_function_derived_table" shape="rect">table_function_derived_table</a> | <a href="#only-spec" title="only_spec" shape="rect">only_spec</a> | <a href="#data-change-delta-table" title="data_change_delta_table" shape="rect">data_change_delta_table</a> ) <a href="#alias" title="alias" shape="rect">alias</a>?</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#parenthesized-joined-table" title="parenthesized-joined-table">parenthesized-joined-table</a></li><li><a href="#table-factor" title="table-factor">table-factor</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + alias +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="493" height="42"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="43" y="22" width="20" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="34">AS</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#identifier" xlink:title="identifier" shape="rect"> + <rect x="91" y="1" width="46" height="18" class="nonterminal"/> + <text class="nonterminal" x="95" y="13">identifier</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#identifier-suffix-chain" xlink:title="identifier_suffix_chain" shape="rect"> + <rect x="165" y="22" width="104" height="18" class="nonterminal"/> + <text class="nonterminal" x="169" y="34">identifier_suffix_chain</text></a><rect x="317" y="22" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="321" y="34">(</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#column-name-list" xlink:title="column_name_list" shape="rect"> + <rect x="337" y="22" width="92" height="18" class="nonterminal"/> + <text class="nonterminal" x="341" y="34">column_name_list</text></a><rect x="437" y="22" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="441" y="34">)</text> + <path class="line" d="m17 10 h2 m20 0 h10 m0 0 h18 m-48 0 h20 m28 0 h20 m-68 0 q10 0 10 10 m48 0 q0 -10 10 -10 m-58 10 v1 m48 0 v-1 m-48 1 q0 10 10 10 m28 0 q10 0 10 -10 m-38 10 h4 m20 0 h4 m20 -21 h4 m46 0 h4 m20 0 h10 m0 0 h102 m-132 0 h20 m112 0 h20 m-152 0 q10 0 10 10 m132 0 q0 -10 10 -10 m-142 10 v1 m132 0 v-1 m-132 1 q0 10 10 10 m112 0 q10 0 10 -10 m-122 10 h4 m104 0 h4 m40 -21 h10 m0 0 h130 m-160 0 h20 m140 0 h20 m-180 0 q10 0 10 10 m160 0 q0 -10 10 -10 m-170 10 v1 m160 0 v-1 m-160 1 q0 10 10 10 m140 0 q10 0 10 -10 m-150 10 h4 m12 0 h4 m0 0 h4 m92 0 h4 m0 0 h4 m12 0 h4 m23 -21 h-3"/> + <polygon points="483 10 491 6 491 14"/> + <polygon points="483 10 475 6 475 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#alias" title="alias" shape="rect">alias</a>    ::= 'AS'? <a href="#identifier" title="identifier" shape="rect">identifier</a> <a href="#identifier-suffix-chain" title="identifier_suffix_chain" shape="rect">identifier_suffix_chain</a>? ( '(' <a href="#column-name-list" title="column_name_list" shape="rect">column_name_list</a> ')' )?</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#table-primary" title="table-primary">table-primary</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + system_version_specification +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="773" height="154"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="43" y="1" width="20" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="13">AS</text> + <rect x="71" y="1" width="20" height="18" class="terminal" rx="4"/> + <text class="terminal" x="75" y="13">OF</text> + <rect x="99" y="1" width="44" height="18" class="terminal" rx="4"/> + <text class="terminal" x="103" y="13">SYSTEM</text> + <rect x="151" y="1" width="30" height="18" class="terminal" rx="4"/> + <text class="terminal" x="155" y="13">TIME</text> + <rect x="43" y="29" width="56" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="41">VERSIONS</text> + <rect x="147" y="29" width="44" height="18" class="terminal" rx="4"/> + <text class="terminal" x="151" y="41">BEFORE</text> + <rect x="147" y="57" width="36" height="18" class="terminal" rx="4"/> + <text class="terminal" x="151" y="69">AFTER</text> + <rect x="219" y="29" width="44" height="18" class="terminal" rx="4"/> + <text class="terminal" x="223" y="41">SYSTEM</text> + <rect x="271" y="29" width="30" height="18" class="terminal" rx="4"/> + <text class="terminal" x="275" y="41">TIME</text> + <rect x="127" y="85" width="52" height="18" class="terminal" rx="4"/> + <text class="terminal" x="131" y="97">BETWEEN</text> + <rect x="207" y="106" width="68" height="18" class="terminal" rx="4"/> + <text class="terminal" x="211" y="118">ASYMMETRIC</text> + <rect x="207" y="134" width="62" height="18" class="terminal" rx="4"/> + <text class="terminal" x="211" y="146">SYMMETRIC</text> + <rect x="303" y="85" width="44" height="18" class="terminal" rx="4"/> + <text class="terminal" x="307" y="97">SYSTEM</text> + <rect x="355" y="85" width="30" height="18" class="terminal" rx="4"/> + <text class="terminal" x="359" y="97">TIME</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#datetime-value-expression" xlink:title="datetime_value_expression" shape="rect"> + <rect x="393" y="85" width="136" height="18" class="nonterminal"/> + <text class="nonterminal" x="397" y="97">datetime_value_expression</text></a><rect x="537" y="85" width="28" height="18" class="terminal" rx="4"/> + <text class="terminal" x="541" y="97">AND</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#datetime-value-expression" xlink:title="datetime_value_expression" shape="rect"> + <rect x="613" y="1" width="136" height="18" class="nonterminal"/> + <text class="nonterminal" x="617" y="13">datetime_value_expression</text></a><path class="line" d="m17 10 h2 m20 0 h4 m20 0 h4 m0 0 h4 m20 0 h4 m0 0 h4 m44 0 h4 m0 0 h4 m30 0 h4 m0 0 h404 m-570 0 h20 m550 0 h20 m-590 0 q10 0 10 10 m570 0 q0 -10 10 -10 m-580 10 v8 m570 0 v-8 m-570 8 q0 10 10 10 m550 0 q10 0 10 -10 m-560 10 h4 m56 0 h4 m40 0 h4 m44 0 h4 m-72 0 h20 m52 0 h20 m-92 0 q10 0 10 10 m72 0 q0 -10 10 -10 m-82 10 v8 m72 0 v-8 m-72 8 q0 10 10 10 m52 0 q10 0 10 -10 m-62 10 h4 m36 0 h4 m0 0 h8 m20 -28 h4 m44 0 h4 m0 0 h4 m30 0 h4 m0 0 h264 m-466 0 h20 m446 0 h20 m-486 0 q10 0 10 10 m466 0 q0 -10 10 -10 m-476 10 v36 m466 0 v-36 m-466 36 q0 10 10 10 m446 0 q10 0 10 -10 m-456 10 h4 m52 0 h4 m20 0 h10 m0 0 h66 m-96 0 h20 m76 0 h20 m-116 0 q10 0 10 10 m96 0 q0 -10 10 -10 m-106 10 v1 m96 0 v-1 m-96 1 q0 10 10 10 m76 0 q10 0 10 -10 m-86 10 h4 m68 0 h4 m-86 -10 v20 m96 0 v-20 m-96 20 v8 m96 0 v-8 m-96 8 q0 10 10 10 m76 0 q10 0 10 -10 m-86 10 h4 m62 0 h4 m0 0 h6 m20 -49 h4 m44 0 h4 m0 0 h4 m30 0 h4 m0 0 h4 m136 0 h4 m0 0 h4 m28 0 h4 m40 -84 h4 m136 0 h4 m3 0 h-3"/> + <polygon points="763 10 771 6 771 14"/> + <polygon points="763 10 755 6 755 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#system-version-specification" title="system_version_specification" shape="rect">system_version_specification</a></div> + <div>         ::= ( 'AS' 'OF' 'SYSTEM' 'TIME' | 'VERSIONS' ( ( 'BEFORE' | 'AFTER' ) 'SYSTEM' + 'TIME' | 'BETWEEN' ( 'ASYMMETRIC' | 'SYMMETRIC' )? 'SYSTEM' 'TIME' <a href="#datetime-value-expression" title="datetime_value_expression" shape="rect">datetime_value_expression</a> 'AND' ) ) <a href="#datetime-value-expression" title="datetime_value_expression" shape="rect">datetime_value_expression</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Not referenced by any. + </div></td></tr></tbody></table> + + +====================================================================================================================== + only_spec +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="241" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="34" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">ONLY</text> + <rect x="65" y="1" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="69" y="13">(</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#table-or-query-name" xlink:title="table_or_query_name" shape="rect"> + <rect x="85" y="1" width="112" height="18" class="nonterminal"/> + <text class="nonterminal" x="89" y="13">table_or_query_name</text></a><rect x="205" y="1" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="209" y="13">)</text> + <path class="line" d="m17 10 h2 m0 0 h4 m34 0 h4 m0 0 h4 m12 0 h4 m0 0 h4 m112 0 h4 m0 0 h4 m12 0 h4 m3 0 h-3"/> + <polygon points="231 10 239 6 239 14"/> + <polygon points="231 10 223 6 223 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#only-spec" title="only_spec" shape="rect">only_spec</a></div> + <div>         ::= 'ONLY' '(' <a href="#table-or-query-name" title="table_or_query_name" shape="rect">table_or_query_name</a> ')'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#table-primary" title="table-primary">table-primary</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + lateral_derived_table +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="153" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="46" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">LATERAL</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#subquery" xlink:title="subquery" shape="rect"> + <rect x="77" y="1" width="52" height="18" class="nonterminal"/> + <text class="nonterminal" x="81" y="13">subquery</text></a><path class="line" d="m17 10 h2 m0 0 h4 m46 0 h4 m0 0 h4 m52 0 h4 m3 0 h-3"/> + <polygon points="143 10 151 6 151 14"/> + <polygon points="143 10 135 6 135 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#lateral-derived-table" title="lateral_derived_table" shape="rect">lateral_derived_table</a></div> + <div>         ::= 'LATERAL' <a href="#subquery" title="subquery" shape="rect">subquery</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#table-primary" title="table-primary">table-primary</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + collection_derived_table +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="469" height="70"> + <polygon points="9 38 1 34 1 42"/> + <polygon points="17 38 9 34 9 42"/> + <rect x="23" y="29" width="44" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="41">UNNEST</text> + <rect x="75" y="29" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="79" y="41">(</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#collection-value-expression" xlink:title="collection_value_expression" shape="rect"> + <rect x="115" y="29" width="134" height="18" class="nonterminal"/> + <text class="nonterminal" x="119" y="41">collection_value_expression</text></a><rect x="115" y="1" width="8" height="18" class="terminal" rx="4"/> + <text class="terminal" x="119" y="13">,</text> + <rect x="277" y="29" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="281" y="41">)</text> + <rect x="317" y="50" width="34" height="18" class="terminal" rx="4"/> + <text class="terminal" x="321" y="62">WITH</text> + <rect x="359" y="50" width="66" height="18" class="terminal" rx="4"/> + <text class="terminal" x="363" y="62">ORDINALITY</text> + <path class="line" d="m17 38 h2 m0 0 h4 m44 0 h4 m0 0 h4 m12 0 h4 m20 0 h4 m134 0 h4 m-162 0 l20 0 m-1 0 q-9 0 -9 -10 l0 -8 q0 -10 10 -10 m142 28 l20 0 m-20 0 q10 0 10 -10 l0 -8 q0 -10 -10 -10 m-142 0 h4 m8 0 h4 m0 0 h126 m20 28 h4 m12 0 h4 m20 0 h10 m0 0 h106 m-136 0 h20 m116 0 h20 m-156 0 q10 0 10 10 m136 0 q0 -10 10 -10 m-146 10 v1 m136 0 v-1 m-136 1 q0 10 10 10 m116 0 q10 0 10 -10 m-126 10 h4 m34 0 h4 m0 0 h4 m66 0 h4 m23 -21 h-3"/> + <polygon points="459 38 467 34 467 42"/> + <polygon points="459 38 451 34 451 42"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#collection-derived-table" title="collection_derived_table" shape="rect">collection_derived_table</a></div> + <div>         ::= 'UNNEST' '(' <a href="#collection-value-expression" title="collection_value_expression" shape="rect">collection_value_expression</a> ( ',' <a href="#collection-value-expression" title="collection_value_expression" shape="rect">collection_value_expression</a> )* ')' ( 'WITH' 'ORDINALITY' )?</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#table-primary" title="table-primary">table-primary</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + table_function_derived_table +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="265" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="36" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">TABLE</text> + <rect x="67" y="1" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="71" y="13">(</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#collection-value-expression" xlink:title="collection_value_expression" shape="rect"> + <rect x="87" y="1" width="134" height="18" class="nonterminal"/> + <text class="nonterminal" x="91" y="13">collection_value_expression</text></a><rect x="229" y="1" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="233" y="13">)</text> + <path class="line" d="m17 10 h2 m0 0 h4 m36 0 h4 m0 0 h4 m12 0 h4 m0 0 h4 m134 0 h4 m0 0 h4 m12 0 h4 m3 0 h-3"/> + <polygon points="255 10 263 6 263 14"/> + <polygon points="255 10 247 6 247 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#table-function-derived-table" title="table_function_derived_table" shape="rect">table_function_derived_table</a></div> + <div>         ::= 'TABLE' '(' <a href="#collection-value-expression" title="collection_value_expression" shape="rect">collection_value_expression</a> ')'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#table-primary" title="table-primary">table-primary</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + derived_table +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="179" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#query-expression" xlink:title="query_expression" shape="rect"> + <rect x="43" y="1" width="92" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">query_expression</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#subquery" xlink:title="subquery" shape="rect"> + <rect x="43" y="29" width="52" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">subquery</text></a><path class="line" d="m17 10 h2 m20 0 h4 m92 0 h4 m-120 0 h20 m100 0 h20 m-140 0 q10 0 10 10 m120 0 q0 -10 10 -10 m-130 10 v8 m120 0 v-8 m-120 8 q0 10 10 10 m100 0 q10 0 10 -10 m-110 10 h4 m52 0 h4 m0 0 h40 m23 -28 h-3"/> + <polygon points="169 10 177 6 177 14"/> + <polygon points="169 10 161 6 161 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#derived-table" title="derived_table" shape="rect">derived_table</a></div> + <div>         ::= <a href="#query-expression" title="query_expression" shape="rect">query_expression</a></div> + <div>           | <a href="#subquery" title="subquery" shape="rect">subquery</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#table-primary" title="table-primary">table-primary</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + table_or_query_name +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="153" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#table-name" xlink:title="table_name" shape="rect"> + <rect x="43" y="1" width="66" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">table_name</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#identifier" xlink:title="identifier" shape="rect"> + <rect x="43" y="29" width="46" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">identifier</text></a><path class="line" d="m17 10 h2 m20 0 h4 m66 0 h4 m-94 0 h20 m74 0 h20 m-114 0 q10 0 10 10 m94 0 q0 -10 10 -10 m-104 10 v8 m94 0 v-8 m-94 8 q0 10 10 10 m74 0 q10 0 10 -10 m-84 10 h4 m46 0 h4 m0 0 h20 m23 -28 h-3"/> + <polygon points="143 10 151 6 151 14"/> + <polygon points="143 10 135 6 135 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#table-or-query-name" title="table_or_query_name" shape="rect">table_or_query_name</a></div> + <div>         ::= <a href="#table-name" title="table_name" shape="rect">table_name</a></div> + <div>           | <a href="#identifier" title="identifier" shape="rect">identifier</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#explicit-table" title="explicit-table">explicit-table</a></li><li><a href="#only-spec" title="only-spec">only-spec</a></li><li><a href="#table-primary" title="table-primary">table-primary</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + column_name_list +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="133" height="49"> + <polygon points="9 38 1 34 1 42"/> + <polygon points="17 38 9 34 9 42"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#identifier" xlink:title="identifier" shape="rect"> + <rect x="43" y="29" width="46" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">identifier</text></a><rect x="43" y="1" width="8" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="13">,</text> + <path class="line" d="m17 38 h2 m20 0 h4 m46 0 h4 m-74 0 l20 0 m-1 0 q-9 0 -9 -10 l0 -8 q0 -10 10 -10 m54 28 l20 0 m-20 0 q10 0 10 -10 l0 -8 q0 -10 -10 -10 m-54 0 h4 m8 0 h4 m0 0 h38 m23 28 h-3"/> + <polygon points="123 38 131 34 131 42"/> + <polygon points="123 38 115 34 115 42"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#column-name-list" title="column_name_list" shape="rect">column_name_list</a></div> + <div>         ::= <a href="#identifier" title="identifier" shape="rect">identifier</a> ( ',' <a href="#identifier" title="identifier" shape="rect">identifier</a> )*</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#alias" title="alias">alias</a></li><li><a href="#all-fields-column-name-list" title="all-fields-column-name-list">all-fields-column-name-list</a></li><li><a href="#as-subquery-clause" title="as-subquery-clause">as-subquery-clause</a></li><li><a href="#corresponding-spec" title="corresponding-spec">corresponding-spec</a></li><li><a href="#insert-column-list" title="insert-column-list">insert-column-list</a></li><li><a href="#join-column-list" title="join-column-list">join-column-list</a></li><li><a href="#nonparenthesized-value-expression-primary" title="nonparenthesized-value-expression-primary">nonparenthesized-value-expression-primary</a></li><li><a href="#privilege-column-list" title="privilege-column-list">privilege-column-list</a></li><li><a href="#recursive-search-order" title="recursive-search-order">recursive-search-order</a></li><li><a href="#reference-column-list" title="reference-column-list">reference-column-list</a></li><li><a href="#trigger-column-list" title="trigger-column-list">trigger-column-list</a></li><li><a href="#unique-column-list" title="unique-column-list">unique-column-list</a></li><li><a href="#updatability-clause" title="updatability-clause">updatability-clause</a></li><li><a href="#view-column-list" title="view-column-list">view-column-list</a></li><li><a href="#with-list-element" title="with-list-element">with-list-element</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + data_change_delta_table +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="331" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#result-option" xlink:title="result_option" shape="rect"> + <rect x="23" y="1" width="68" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">result_option</text></a><rect x="99" y="1" width="36" height="18" class="terminal" rx="4"/> + <text class="terminal" x="103" y="13">TABLE</text> + <rect x="143" y="1" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="147" y="13">(</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#data-change-statement" xlink:title="data_change_statement" shape="rect"> + <rect x="163" y="1" width="124" height="18" class="nonterminal"/> + <text class="nonterminal" x="167" y="13">data_change_statement</text></a><rect x="295" y="1" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="299" y="13">)</text> + <path class="line" d="m17 10 h2 m0 0 h4 m68 0 h4 m0 0 h4 m36 0 h4 m0 0 h4 m12 0 h4 m0 0 h4 m124 0 h4 m0 0 h4 m12 0 h4 m3 0 h-3"/> + <polygon points="321 10 329 6 329 14"/> + <polygon points="321 10 313 6 313 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#data-change-delta-table" title="data_change_delta_table" shape="rect">data_change_delta_table</a></div> + <div>         ::= <a href="#result-option" title="result_option" shape="rect">result_option</a> 'TABLE' '(' <a href="#data-change-statement" title="data_change_statement" shape="rect">data_change_statement</a> ')'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#table-primary" title="table-primary">table-primary</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + data_change_statement +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="231" height="105"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#delete-statement-searched" xlink:title="delete_statement_searched" shape="rect"> + <rect x="43" y="1" width="140" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">delete_statement_searched</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#insert-statement" xlink:title="insert_statement" shape="rect"> + <rect x="43" y="29" width="88" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">insert_statement</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#merge-statement" xlink:title="merge_statement" shape="rect"> + <rect x="43" y="57" width="94" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="69">merge_statement</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#update-statement-searched" xlink:title="update_statement_searched" shape="rect"> + <rect x="43" y="85" width="144" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="97">update_statement_searched</text></a><path class="line" d="m17 10 h2 m20 0 h4 m140 0 h4 m0 0 h4 m-172 0 h20 m152 0 h20 m-192 0 q10 0 10 10 m172 0 q0 -10 10 -10 m-182 10 v8 m172 0 v-8 m-172 8 q0 10 10 10 m152 0 q10 0 10 -10 m-162 10 h4 m88 0 h4 m0 0 h56 m-162 -10 v20 m172 0 v-20 m-172 20 v8 m172 0 v-8 m-172 8 q0 10 10 10 m152 0 q10 0 10 -10 m-162 10 h4 m94 0 h4 m0 0 h50 m-162 -10 v20 m172 0 v-20 m-172 20 v8 m172 0 v-8 m-172 8 q0 10 10 10 m152 0 q10 0 10 -10 m-162 10 h4 m144 0 h4 m23 -84 h-3"/> + <polygon points="221 10 229 6 229 14"/> + <polygon points="221 10 213 6 213 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#data-change-statement" title="data_change_statement" shape="rect">data_change_statement</a></div> + <div>         ::= <a href="#delete-statement-searched" title="delete_statement_searched" shape="rect">delete_statement_searched</a></div> + <div>           | <a href="#insert-statement" title="insert_statement" shape="rect">insert_statement</a></div> + <div>           | <a href="#merge-statement" title="merge_statement" shape="rect">merge_statement</a></div> + <div>           | <a href="#update-statement-searched" title="update_statement_searched" shape="rect">update_statement_searched</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#data-change-delta-table" title="data-change-delta-table">data-change-delta-table</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + result_option +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="121" height="77"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="43" y="1" width="34" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="13">FINAL</text> + <rect x="43" y="29" width="30" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="41">NEW</text> + <rect x="43" y="57" width="28" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="69">OLD</text> + <path class="line" d="m17 10 h2 m20 0 h4 m34 0 h4 m-62 0 h20 m42 0 h20 m-82 0 q10 0 10 10 m62 0 q0 -10 10 -10 m-72 10 v8 m62 0 v-8 m-62 8 q0 10 10 10 m42 0 q10 0 10 -10 m-52 10 h4 m30 0 h4 m0 0 h4 m-52 -10 v20 m62 0 v-20 m-62 20 v8 m62 0 v-8 m-62 8 q0 10 10 10 m42 0 q10 0 10 -10 m-52 10 h4 m28 0 h4 m0 0 h6 m23 -56 h-3"/> + <polygon points="111 10 119 6 119 14"/> + <polygon points="111 10 103 6 103 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#result-option" title="result_option" shape="rect">result_option</a></div> + <div>         ::= 'FINAL'</div> + <div>           | 'NEW'</div> + <div>           | 'OLD'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#data-change-delta-table" title="data-change-delta-table">data-change-delta-table</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + parenthesized_joined_table +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="321" height="70"> + <polygon points="9 31 1 27 1 35"/> + <polygon points="17 31 9 27 9 35"/> + <rect x="23" y="22" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="34">(</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#table-primary" xlink:title="table_primary" shape="rect"> + <rect x="63" y="22" width="72" height="18" class="nonterminal"/> + <text class="nonterminal" x="67" y="34">table_primary</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#table-reference" xlink:title="table_reference" shape="rect"> + <rect x="63" y="50" width="80" height="18" class="nonterminal"/> + <text class="nonterminal" x="67" y="62">table_reference</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#joined-table" xlink:title="joined_table" shape="rect"> + <rect x="191" y="1" width="66" height="18" class="nonterminal"/> + <text class="nonterminal" x="195" y="13">joined_table</text></a><rect x="285" y="22" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="289" y="34">)</text> + <path class="line" d="m17 31 h2 m0 0 h4 m12 0 h4 m20 0 h4 m72 0 h4 m0 0 h8 m-108 0 h20 m88 0 h20 m-128 0 q10 0 10 10 m108 0 q0 -10 10 -10 m-118 10 v8 m108 0 v-8 m-108 8 q0 10 10 10 m88 0 q10 0 10 -10 m-98 10 h4 m80 0 h4 m40 -28 h10 m0 0 h64 m-94 0 l20 0 m-1 0 q-9 0 -9 -10 l0 -1 q0 -10 10 -10 m74 21 l20 0 m-20 0 q10 0 10 -10 l0 -1 q0 -10 -10 -10 m-74 0 h4 m66 0 h4 m20 21 h4 m12 0 h4 m3 0 h-3"/> + <polygon points="311 31 319 27 319 35"/> + <polygon points="311 31 303 27 303 35"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#parenthesized-joined-table" title="parenthesized_joined_table" shape="rect">parenthesized_joined_table</a></div> + <div>         ::= '(' ( <a href="#table-primary" title="table_primary" shape="rect">table_primary</a> | <a href="#table-reference" title="table_reference" shape="rect">table_reference</a> ) <a href="#joined-table" title="joined_table" shape="rect">joined_table</a>* ')'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#table-primary" title="table-primary">table-primary</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + joined_table +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="155" height="77"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#cross-join" xlink:title="cross_join" shape="rect"> + <rect x="43" y="1" width="54" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">cross_join</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#qualified-join" xlink:title="qualified_join" shape="rect"> + <rect x="43" y="29" width="68" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">qualified_join</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#natural-join" xlink:title="natural_join" shape="rect"> + <rect x="43" y="57" width="62" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="69">natural_join</text></a><path class="line" d="m17 10 h2 m20 0 h4 m54 0 h4 m0 0 h14 m-96 0 h20 m76 0 h20 m-116 0 q10 0 10 10 m96 0 q0 -10 10 -10 m-106 10 v8 m96 0 v-8 m-96 8 q0 10 10 10 m76 0 q10 0 10 -10 m-86 10 h4 m68 0 h4 m-86 -10 v20 m96 0 v-20 m-96 20 v8 m96 0 v-8 m-96 8 q0 10 10 10 m76 0 q10 0 10 -10 m-86 10 h4 m62 0 h4 m0 0 h6 m23 -56 h-3"/> + <polygon points="145 10 153 6 153 14"/> + <polygon points="145 10 137 6 137 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#joined-table" title="joined_table" shape="rect">joined_table</a></div> + <div>         ::= <a href="#cross-join" title="cross_join" shape="rect">cross_join</a></div> + <div>           | <a href="#qualified-join" title="qualified_join" shape="rect">qualified_join</a></div> + <div>           | <a href="#natural-join" title="natural_join" shape="rect">natural_join</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#parenthesized-joined-table" title="parenthesized-joined-table">parenthesized-joined-table</a></li><li><a href="#table-reference" title="table-reference">table-reference</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + cross_join +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="195" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="40" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">CROSS</text> + <rect x="71" y="1" width="30" height="18" class="terminal" rx="4"/> + <text class="terminal" x="75" y="13">JOIN</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#table-factor" xlink:title="table_factor" shape="rect"> + <rect x="109" y="1" width="62" height="18" class="nonterminal"/> + <text class="nonterminal" x="113" y="13">table_factor</text></a><path class="line" d="m17 10 h2 m0 0 h4 m40 0 h4 m0 0 h4 m30 0 h4 m0 0 h4 m62 0 h4 m3 0 h-3"/> + <polygon points="185 10 193 6 193 14"/> + <polygon points="185 10 177 6 177 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#cross-join" title="cross_join" shape="rect">cross_join</a></div> + <div>         ::= 'CROSS' 'JOIN' <a href="#table-factor" title="table_factor" shape="rect">table_factor</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#joined-table" title="joined-table">joined-table</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + qualified_join +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="423" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#join-type" xlink:title="join_type" shape="rect"> + <rect x="43" y="22" width="52" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="34">join_type</text></a><rect x="123" y="1" width="30" height="18" class="terminal" rx="4"/> + <text class="terminal" x="127" y="13">JOIN</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#table-reference" xlink:title="table_reference" shape="rect"> + <rect x="181" y="1" width="80" height="18" class="nonterminal"/> + <text class="nonterminal" x="185" y="13">table_reference</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#partitioned-join-table" xlink:title="partitioned_join_table" shape="rect"> + <rect x="181" y="29" width="106" height="18" class="nonterminal"/> + <text class="nonterminal" x="185" y="41">partitioned_join_table</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#join-specification" xlink:title="join_specification" shape="rect"> + <rect x="315" y="1" width="84" height="18" class="nonterminal"/> + <text class="nonterminal" x="319" y="13">join_specification</text></a><path class="line" d="m17 10 h2 m20 0 h10 m0 0 h50 m-80 0 h20 m60 0 h20 m-100 0 q10 0 10 10 m80 0 q0 -10 10 -10 m-90 10 v1 m80 0 v-1 m-80 1 q0 10 10 10 m60 0 q10 0 10 -10 m-70 10 h4 m52 0 h4 m20 -21 h4 m30 0 h4 m20 0 h4 m80 0 h4 m0 0 h26 m-134 0 h20 m114 0 h20 m-154 0 q10 0 10 10 m134 0 q0 -10 10 -10 m-144 10 v8 m134 0 v-8 m-134 8 q0 10 10 10 m114 0 q10 0 10 -10 m-124 10 h4 m106 0 h4 m20 -28 h4 m84 0 h4 m3 0 h-3"/> + <polygon points="413 10 421 6 421 14"/> + <polygon points="413 10 405 6 405 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#qualified-join" title="qualified_join" shape="rect">qualified_join</a></div> + <div>         ::= <a href="#join-type" title="join_type" shape="rect">join_type</a>? 'JOIN' ( <a href="#table-reference" title="table_reference" shape="rect">table_reference</a> | <a href="#partitioned-join-table" title="partitioned_join_table" shape="rect">partitioned_join_table</a> ) <a href="#join-specification" title="join_specification" shape="rect">join_specification</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#joined-table" title="joined-table">joined-table</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + partitioned_join_table +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="323" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="58" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">PARTITION</text> + <rect x="89" y="1" width="20" height="18" class="terminal" rx="4"/> + <text class="terminal" x="93" y="13">BY</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#partitioned-join-column-reference-list" xlink:title="partitioned_join_column_reference_list" shape="rect"> + <rect x="117" y="1" width="182" height="18" class="nonterminal"/> + <text class="nonterminal" x="121" y="13">partitioned_join_column_reference_list</text></a><path class="line" d="m17 10 h2 m0 0 h4 m58 0 h4 m0 0 h4 m20 0 h4 m0 0 h4 m182 0 h4 m3 0 h-3"/> + <polygon points="313 10 321 6 321 14"/> + <polygon points="313 10 305 6 305 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#partitioned-join-table" title="partitioned_join_table" shape="rect">partitioned_join_table</a></div> + <div>         ::= 'PARTITION' 'BY' <a href="#partitioned-join-column-reference-list" title="partitioned_join_column_reference_list" shape="rect">partitioned_join_column_reference_list</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#natural-join" title="natural-join">natural-join</a></li><li><a href="#qualified-join" title="qualified-join">qualified-join</a></li><li><a href="#table-factor" title="table-factor">table-factor</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + partitioned_join_column_reference_list +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="293" height="49"> + <polygon points="9 38 1 34 1 42"/> + <polygon points="17 38 9 34 9 42"/> + <rect x="23" y="29" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="41">(</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#partitioned-join-column-reference" xlink:title="partitioned_join_column_reference" shape="rect"> + <rect x="63" y="29" width="166" height="18" class="nonterminal"/> + <text class="nonterminal" x="67" y="41">partitioned_join_column_reference</text></a><rect x="63" y="1" width="8" height="18" class="terminal" rx="4"/> + <text class="terminal" x="67" y="13">,</text> + <rect x="257" y="29" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="261" y="41">)</text> + <path class="line" d="m17 38 h2 m0 0 h4 m12 0 h4 m20 0 h4 m166 0 h4 m-194 0 l20 0 m-1 0 q-9 0 -9 -10 l0 -8 q0 -10 10 -10 m174 28 l20 0 m-20 0 q10 0 10 -10 l0 -8 q0 -10 -10 -10 m-174 0 h4 m8 0 h4 m0 0 h158 m20 28 h4 m12 0 h4 m3 0 h-3"/> + <polygon points="283 38 291 34 291 42"/> + <polygon points="283 38 275 34 275 42"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#partitioned-join-column-reference-list" title="partitioned_join_column_reference_list" shape="rect">partitioned_join_column_reference_list</a></div> + <div>         ::= '(' <a href="#partitioned-join-column-reference" title="partitioned_join_column_reference" shape="rect">partitioned_join_column_reference</a> ( ',' <a href="#partitioned-join-column-reference" title="partitioned_join_column_reference" shape="rect">partitioned_join_column_reference</a> )* ')'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#partitioned-join-table" title="partitioned-join-table">partitioned-join-table</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + partitioned_join_column_reference +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="139" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#column-reference" xlink:title="column_reference" shape="rect"> + <rect x="23" y="1" width="92" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">column_reference</text></a><path class="line" d="m17 10 h2 m0 0 h4 m92 0 h4 m3 0 h-3"/> + <polygon points="129 10 137 6 137 14"/> + <polygon points="129 10 121 6 121 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#partitioned-join-column-reference" title="partitioned_join_column_reference" shape="rect">partitioned_join_column_reference</a></div> + <div>         ::= <a href="#column-reference" title="column_reference" shape="rect">column_reference</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#partitioned-join-column-reference-list" title="partitioned-join-column-reference-list">partitioned-join-column-reference-list</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + natural_join +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="389" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="50" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">NATURAL</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#join-type" xlink:title="join_type" shape="rect"> + <rect x="101" y="22" width="52" height="18" class="nonterminal"/> + <text class="nonterminal" x="105" y="34">join_type</text></a><rect x="181" y="1" width="30" height="18" class="terminal" rx="4"/> + <text class="terminal" x="185" y="13">JOIN</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#table-factor" xlink:title="table_factor" shape="rect"> + <rect x="239" y="1" width="62" height="18" class="nonterminal"/> + <text class="nonterminal" x="243" y="13">table_factor</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#partitioned-join-table" xlink:title="partitioned_join_table" shape="rect"> + <rect x="239" y="29" width="106" height="18" class="nonterminal"/> + <text class="nonterminal" x="243" y="41">partitioned_join_table</text></a><path class="line" d="m17 10 h2 m0 0 h4 m50 0 h4 m20 0 h10 m0 0 h50 m-80 0 h20 m60 0 h20 m-100 0 q10 0 10 10 m80 0 q0 -10 10 -10 m-90 10 v1 m80 0 v-1 m-80 1 q0 10 10 10 m60 0 q10 0 10 -10 m-70 10 h4 m52 0 h4 m20 -21 h4 m30 0 h4 m20 0 h4 m62 0 h4 m0 0 h44 m-134 0 h20 m114 0 h20 m-154 0 q10 0 10 10 m134 0 q0 -10 10 -10 m-144 10 v8 m134 0 v-8 m-134 8 q0 10 10 10 m114 0 q10 0 10 -10 m-124 10 h4 m106 0 h4 m23 -28 h-3"/> + <polygon points="379 10 387 6 387 14"/> + <polygon points="379 10 371 6 371 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#natural-join" title="natural_join" shape="rect">natural_join</a></div> + <div>         ::= 'NATURAL' <a href="#join-type" title="join_type" shape="rect">join_type</a>? 'JOIN' ( <a href="#table-factor" title="table_factor" shape="rect">table_factor</a> | <a href="#partitioned-join-table" title="partitioned_join_table" shape="rect">partitioned_join_table</a> )</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#joined-table" title="joined-table">joined-table</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + join_specification +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="195" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#join-condition" xlink:title="join_condition" shape="rect"> + <rect x="43" y="1" width="70" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">join_condition</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#named-columns-join" xlink:title="named_columns_join" shape="rect"> + <rect x="43" y="29" width="108" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">named_columns_join</text></a><path class="line" d="m17 10 h2 m20 0 h4 m70 0 h4 m0 0 h38 m-136 0 h20 m116 0 h20 m-156 0 q10 0 10 10 m136 0 q0 -10 10 -10 m-146 10 v8 m136 0 v-8 m-136 8 q0 10 10 10 m116 0 q10 0 10 -10 m-126 10 h4 m108 0 h4 m23 -28 h-3"/> + <polygon points="185 10 193 6 193 14"/> + <polygon points="185 10 177 6 177 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#join-specification" title="join_specification" shape="rect">join_specification</a></div> + <div>         ::= <a href="#join-condition" title="join_condition" shape="rect">join_condition</a></div> + <div>           | <a href="#named-columns-join" title="named_columns_join" shape="rect">named_columns_join</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#qualified-join" title="qualified-join">qualified-join</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + join_condition +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="163" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="22" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">ON</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#search-condition" xlink:title="search_condition" shape="rect"> + <rect x="53" y="1" width="86" height="18" class="nonterminal"/> + <text class="nonterminal" x="57" y="13">search_condition</text></a><path class="line" d="m17 10 h2 m0 0 h4 m22 0 h4 m0 0 h4 m86 0 h4 m3 0 h-3"/> + <polygon points="153 10 161 6 161 14"/> + <polygon points="153 10 145 6 145 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#join-condition" title="join_condition" shape="rect">join_condition</a></div> + <div>         ::= 'ON' <a href="#search-condition" title="search_condition" shape="rect">search_condition</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#join-specification" title="join-specification">join-specification</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + named_columns_join +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="213" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="38" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">USING</text> + <rect x="69" y="1" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="73" y="13">(</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#join-column-list" xlink:title="join_column_list" shape="rect"> + <rect x="89" y="1" width="80" height="18" class="nonterminal"/> + <text class="nonterminal" x="93" y="13">join_column_list</text></a><rect x="177" y="1" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="181" y="13">)</text> + <path class="line" d="m17 10 h2 m0 0 h4 m38 0 h4 m0 0 h4 m12 0 h4 m0 0 h4 m80 0 h4 m0 0 h4 m12 0 h4 m3 0 h-3"/> + <polygon points="203 10 211 6 211 14"/> + <polygon points="203 10 195 6 195 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#named-columns-join" title="named_columns_join" shape="rect">named_columns_join</a></div> + <div>         ::= 'USING' '(' <a href="#join-column-list" title="join_column_list" shape="rect">join_column_list</a> ')'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#join-specification" title="join-specification">join-specification</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + join_type +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="257" height="70"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="43" y="1" width="36" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="13">INNER</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#outer-join-type" xlink:title="outer_join_type" shape="rect"> + <rect x="43" y="29" width="82" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">outer_join_type</text></a><rect x="153" y="50" width="40" height="18" class="terminal" rx="4"/> + <text class="terminal" x="157" y="62">OUTER</text> + <path class="line" d="m17 10 h2 m20 0 h4 m36 0 h4 m0 0 h134 m-198 0 h20 m178 0 h20 m-218 0 q10 0 10 10 m198 0 q0 -10 10 -10 m-208 10 v8 m198 0 v-8 m-198 8 q0 10 10 10 m178 0 q10 0 10 -10 m-188 10 h4 m82 0 h4 m20 0 h10 m0 0 h38 m-68 0 h20 m48 0 h20 m-88 0 q10 0 10 10 m68 0 q0 -10 10 -10 m-78 10 v1 m68 0 v-1 m-68 1 q0 10 10 10 m48 0 q10 0 10 -10 m-58 10 h4 m40 0 h4 m43 -49 h-3"/> + <polygon points="247 10 255 6 255 14"/> + <polygon points="247 10 239 6 239 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#join-type" title="join_type" shape="rect">join_type</a></div> + <div>         ::= 'INNER'</div> + <div>           | <a href="#outer-join-type" title="outer_join_type" shape="rect">outer_join_type</a> 'OUTER'?</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#natural-join" title="natural-join">natural-join</a></li><li><a href="#qualified-join" title="qualified-join">qualified-join</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + outer_join_type +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="123" height="77"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="43" y="1" width="28" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="13">LEFT</text> + <rect x="43" y="29" width="36" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="41">RIGHT</text> + <rect x="43" y="57" width="30" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="69">FULL</text> + <path class="line" d="m17 10 h2 m20 0 h4 m28 0 h4 m0 0 h8 m-64 0 h20 m44 0 h20 m-84 0 q10 0 10 10 m64 0 q0 -10 10 -10 m-74 10 v8 m64 0 v-8 m-64 8 q0 10 10 10 m44 0 q10 0 10 -10 m-54 10 h4 m36 0 h4 m-54 -10 v20 m64 0 v-20 m-64 20 v8 m64 0 v-8 m-64 8 q0 10 10 10 m44 0 q10 0 10 -10 m-54 10 h4 m30 0 h4 m0 0 h6 m23 -56 h-3"/> + <polygon points="113 10 121 6 121 14"/> + <polygon points="113 10 105 6 105 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#outer-join-type" title="outer_join_type" shape="rect">outer_join_type</a></div> + <div>         ::= 'LEFT'</div> + <div>           | 'RIGHT'</div> + <div>           | 'FULL'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#join-type" title="join-type">join-type</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + join_column_list +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="139" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#column-name-list" xlink:title="column_name_list" shape="rect"> + <rect x="23" y="1" width="92" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">column_name_list</text></a><path class="line" d="m17 10 h2 m0 0 h4 m92 0 h4 m3 0 h-3"/> + <polygon points="129 10 137 6 137 14"/> + <polygon points="129 10 121 6 121 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#join-column-list" title="join_column_list" shape="rect">join_column_list</a></div> + <div>         ::= <a href="#column-name-list" title="column_name_list" shape="rect">column_name_list</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#named-columns-join" title="named-columns-join">named-columns-join</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + where_clause +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="183" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="42" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">WHERE</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#search-condition" xlink:title="search_condition" shape="rect"> + <rect x="73" y="1" width="86" height="18" class="nonterminal"/> + <text class="nonterminal" x="77" y="13">search_condition</text></a><path class="line" d="m17 10 h2 m0 0 h4 m42 0 h4 m0 0 h4 m86 0 h4 m3 0 h-3"/> + <polygon points="173 10 181 6 181 14"/> + <polygon points="173 10 165 6 165 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#where-clause" title="where_clause" shape="rect">where_clause</a></div> + <div>         ::= 'WHERE' <a href="#search-condition" title="search_condition" shape="rect">search_condition</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#table-expression" title="table-expression">table-expression</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + group_by_clause +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="353" height="42"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="42" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">GROUP</text> + <rect x="73" y="1" width="20" height="18" class="terminal" rx="4"/> + <text class="terminal" x="77" y="13">BY</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#set-quantifier" xlink:title="set_quantifier" shape="rect"> + <rect x="121" y="22" width="70" height="18" class="nonterminal"/> + <text class="nonterminal" x="125" y="34">set_quantifier</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#grouping-element-list" xlink:title="grouping_element_list" shape="rect"> + <rect x="219" y="1" width="110" height="18" class="nonterminal"/> + <text class="nonterminal" x="223" y="13">grouping_element_list</text></a><path class="line" d="m17 10 h2 m0 0 h4 m42 0 h4 m0 0 h4 m20 0 h4 m20 0 h10 m0 0 h68 m-98 0 h20 m78 0 h20 m-118 0 q10 0 10 10 m98 0 q0 -10 10 -10 m-108 10 v1 m98 0 v-1 m-98 1 q0 10 10 10 m78 0 q10 0 10 -10 m-88 10 h4 m70 0 h4 m20 -21 h4 m110 0 h4 m3 0 h-3"/> + <polygon points="343 10 351 6 351 14"/> + <polygon points="343 10 335 6 335 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#group-by-clause" title="group_by_clause" shape="rect">group_by_clause</a></div> + <div>         ::= 'GROUP' 'BY' <a href="#set-quantifier" title="set_quantifier" shape="rect">set_quantifier</a>? <a href="#grouping-element-list" title="grouping_element_list" shape="rect">grouping_element_list</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#table-expression" title="table-expression">table-expression</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + grouping_element_list +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="181" height="49"> + <polygon points="9 38 1 34 1 42"/> + <polygon points="17 38 9 34 9 42"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#grouping-element" xlink:title="grouping_element" shape="rect"> + <rect x="43" y="29" width="94" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">grouping_element</text></a><rect x="43" y="1" width="8" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="13">,</text> + <path class="line" d="m17 38 h2 m20 0 h4 m94 0 h4 m-122 0 l20 0 m-1 0 q-9 0 -9 -10 l0 -8 q0 -10 10 -10 m102 28 l20 0 m-20 0 q10 0 10 -10 l0 -8 q0 -10 -10 -10 m-102 0 h4 m8 0 h4 m0 0 h86 m23 28 h-3"/> + <polygon points="171 38 179 34 179 42"/> + <polygon points="171 38 163 34 163 42"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#grouping-element-list" title="grouping_element_list" shape="rect">grouping_element_list</a></div> + <div>         ::= <a href="#grouping-element" title="grouping_element" shape="rect">grouping_element</a> ( ',' <a href="#grouping-element" title="grouping_element" shape="rect">grouping_element</a> )*</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#group-by-clause" title="group-by-clause">group-by-clause</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + grouping_element +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="221" height="133"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#rollup-list" xlink:title="rollup_list" shape="rect"> + <rect x="43" y="1" width="50" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">rollup_list</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#cube-list" xlink:title="cube_list" shape="rect"> + <rect x="43" y="29" width="48" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">cube_list</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#grouping-sets-specification" xlink:title="grouping_sets_specification" shape="rect"> + <rect x="43" y="57" width="134" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="69">grouping_sets_specification</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#empty-grouping-set" xlink:title="empty_grouping_set" shape="rect"> + <rect x="43" y="85" width="106" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="97">empty_grouping_set</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#ordinary-grouping-set" xlink:title="ordinary_grouping_set" shape="rect"> + <rect x="43" y="113" width="112" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="125">ordinary_grouping_set</text></a><path class="line" d="m17 10 h2 m20 0 h4 m50 0 h4 m0 0 h84 m-162 0 h20 m142 0 h20 m-182 0 q10 0 10 10 m162 0 q0 -10 10 -10 m-172 10 v8 m162 0 v-8 m-162 8 q0 10 10 10 m142 0 q10 0 10 -10 m-152 10 h4 m48 0 h4 m0 0 h86 m-152 -10 v20 m162 0 v-20 m-162 20 v8 m162 0 v-8 m-162 8 q0 10 10 10 m142 0 q10 0 10 -10 m-152 10 h4 m134 0 h4 m-152 -10 v20 m162 0 v-20 m-162 20 v8 m162 0 v-8 m-162 8 q0 10 10 10 m142 0 q10 0 10 -10 m-152 10 h4 m106 0 h4 m0 0 h28 m-152 -10 v20 m162 0 v-20 m-162 20 v8 m162 0 v-8 m-162 8 q0 10 10 10 m142 0 q10 0 10 -10 m-152 10 h4 m112 0 h4 m0 0 h22 m23 -112 h-3"/> + <polygon points="211 10 219 6 219 14"/> + <polygon points="211 10 203 6 203 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#grouping-element" title="grouping_element" shape="rect">grouping_element</a></div> + <div>         ::= <a href="#rollup-list" title="rollup_list" shape="rect">rollup_list</a></div> + <div>           | <a href="#cube-list" title="cube_list" shape="rect">cube_list</a></div> + <div>           | <a href="#grouping-sets-specification" title="grouping_sets_specification" shape="rect">grouping_sets_specification</a></div> + <div>           | <a href="#empty-grouping-set" title="empty_grouping_set" shape="rect">empty_grouping_set</a></div> + <div>           | <a href="#ordinary-grouping-set" title="ordinary_grouping_set" shape="rect">ordinary_grouping_set</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#grouping-element-list" title="grouping-element-list">grouping-element-list</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + ordinary_grouping_set +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="281" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#grouping-column-reference" xlink:title="grouping_column_reference" shape="rect"> + <rect x="43" y="1" width="138" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">grouping_column_reference</text></a><rect x="43" y="29" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="41">(</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#grouping-column-reference-list" xlink:title="grouping_column_reference_list" shape="rect"> + <rect x="63" y="29" width="154" height="18" class="nonterminal"/> + <text class="nonterminal" x="67" y="41">grouping_column_reference_list</text></a><rect x="225" y="29" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="229" y="41">)</text> + <path class="line" d="m17 10 h2 m20 0 h4 m138 0 h4 m0 0 h56 m-222 0 h20 m202 0 h20 m-242 0 q10 0 10 10 m222 0 q0 -10 10 -10 m-232 10 v8 m222 0 v-8 m-222 8 q0 10 10 10 m202 0 q10 0 10 -10 m-212 10 h4 m12 0 h4 m0 0 h4 m154 0 h4 m0 0 h4 m12 0 h4 m23 -28 h-3"/> + <polygon points="271 10 279 6 279 14"/> + <polygon points="271 10 263 6 263 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#ordinary-grouping-set" title="ordinary_grouping_set" shape="rect">ordinary_grouping_set</a></div> + <div>         ::= <a href="#grouping-column-reference" title="grouping_column_reference" shape="rect">grouping_column_reference</a></div> + <div>           | '(' <a href="#grouping-column-reference-list" title="grouping_column_reference_list" shape="rect">grouping_column_reference_list</a> ')'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#grouping-element" title="grouping-element">grouping-element</a></li><li><a href="#grouping-set" title="grouping-set">grouping-set</a></li><li><a href="#ordinary-grouping-set-list" title="ordinary-grouping-set-list">ordinary-grouping-set-list</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + grouping_column_reference +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="313" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#grouping-expression" xlink:title="grouping_expression" shape="rect"> + <rect x="43" y="1" width="106" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">grouping_expression</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#column-reference" xlink:title="column_reference" shape="rect"> + <rect x="43" y="29" width="92" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">column_reference</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#collate-clause" xlink:title="collate_clause" shape="rect"> + <rect x="197" y="22" width="72" height="18" class="nonterminal"/> + <text class="nonterminal" x="201" y="34">collate_clause</text></a><path class="line" d="m17 10 h2 m20 0 h4 m106 0 h4 m-134 0 h20 m114 0 h20 m-154 0 q10 0 10 10 m134 0 q0 -10 10 -10 m-144 10 v8 m134 0 v-8 m-134 8 q0 10 10 10 m114 0 q10 0 10 -10 m-124 10 h4 m92 0 h4 m0 0 h14 m40 -28 h10 m0 0 h70 m-100 0 h20 m80 0 h20 m-120 0 q10 0 10 10 m100 0 q0 -10 10 -10 m-110 10 v1 m100 0 v-1 m-100 1 q0 10 10 10 m80 0 q10 0 10 -10 m-90 10 h4 m72 0 h4 m23 -21 h-3"/> + <polygon points="303 10 311 6 311 14"/> + <polygon points="303 10 295 6 295 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#grouping-column-reference" title="grouping_column_reference" shape="rect">grouping_column_reference</a></div> + <div>         ::= ( <a href="#grouping-expression" title="grouping_expression" shape="rect">grouping_expression</a> | <a href="#column-reference" title="column_reference" shape="rect">column_reference</a> ) <a href="#collate-clause" title="collate_clause" shape="rect">collate_clause</a>?</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#grouping-column-reference-list" title="grouping-column-reference-list">grouping-column-reference-list</a></li><li><a href="#ordinary-grouping-set" title="ordinary-grouping-set">ordinary-grouping-set</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + grouping_column_reference_list +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="225" height="49"> + <polygon points="9 38 1 34 1 42"/> + <polygon points="17 38 9 34 9 42"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#grouping-column-reference" xlink:title="grouping_column_reference" shape="rect"> + <rect x="43" y="29" width="138" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">grouping_column_reference</text></a><rect x="43" y="1" width="8" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="13">,</text> + <path class="line" d="m17 38 h2 m20 0 h4 m138 0 h4 m-166 0 l20 0 m-1 0 q-9 0 -9 -10 l0 -8 q0 -10 10 -10 m146 28 l20 0 m-20 0 q10 0 10 -10 l0 -8 q0 -10 -10 -10 m-146 0 h4 m8 0 h4 m0 0 h130 m23 28 h-3"/> + <polygon points="215 38 223 34 223 42"/> + <polygon points="215 38 207 34 207 42"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#grouping-column-reference-list" title="grouping_column_reference_list" shape="rect">grouping_column_reference_list</a></div> + <div>         ::= <a href="#grouping-column-reference" title="grouping_column_reference" shape="rect">grouping_column_reference</a> ( ',' <a href="#grouping-column-reference" title="grouping_column_reference" shape="rect">grouping_column_reference</a> )*</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#ordinary-grouping-set" title="ordinary-grouping-set">ordinary-grouping-set</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + rollup_list +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="269" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="44" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">ROLLUP</text> + <rect x="75" y="1" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="79" y="13">(</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#ordinary-grouping-set-list" xlink:title="ordinary_grouping_set_list" shape="rect"> + <rect x="95" y="1" width="130" height="18" class="nonterminal"/> + <text class="nonterminal" x="99" y="13">ordinary_grouping_set_list</text></a><rect x="233" y="1" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="237" y="13">)</text> + <path class="line" d="m17 10 h2 m0 0 h4 m44 0 h4 m0 0 h4 m12 0 h4 m0 0 h4 m130 0 h4 m0 0 h4 m12 0 h4 m3 0 h-3"/> + <polygon points="259 10 267 6 267 14"/> + <polygon points="259 10 251 6 251 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#rollup-list" title="rollup_list" shape="rect">rollup_list</a></div> + <div>         ::= 'ROLLUP' '(' <a href="#ordinary-grouping-set-list" title="ordinary_grouping_set_list" shape="rect">ordinary_grouping_set_list</a> ')'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#grouping-element" title="grouping-element">grouping-element</a></li><li><a href="#grouping-set" title="grouping-set">grouping-set</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + ordinary_grouping_set_list +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="199" height="49"> + <polygon points="9 38 1 34 1 42"/> + <polygon points="17 38 9 34 9 42"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#ordinary-grouping-set" xlink:title="ordinary_grouping_set" shape="rect"> + <rect x="43" y="29" width="112" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">ordinary_grouping_set</text></a><rect x="43" y="1" width="8" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="13">,</text> + <path class="line" d="m17 38 h2 m20 0 h4 m112 0 h4 m-140 0 l20 0 m-1 0 q-9 0 -9 -10 l0 -8 q0 -10 10 -10 m120 28 l20 0 m-20 0 q10 0 10 -10 l0 -8 q0 -10 -10 -10 m-120 0 h4 m8 0 h4 m0 0 h104 m23 28 h-3"/> + <polygon points="189 38 197 34 197 42"/> + <polygon points="189 38 181 34 181 42"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#ordinary-grouping-set-list" title="ordinary_grouping_set_list" shape="rect">ordinary_grouping_set_list</a></div> + <div>         ::= <a href="#ordinary-grouping-set" title="ordinary_grouping_set" shape="rect">ordinary_grouping_set</a> ( ',' <a href="#ordinary-grouping-set" title="ordinary_grouping_set" shape="rect">ordinary_grouping_set</a> )*</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#cube-list" title="cube-list">cube-list</a></li><li><a href="#rollup-list" title="rollup-list">rollup-list</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + cube_list +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="257" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="32" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">CUBE</text> + <rect x="63" y="1" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="67" y="13">(</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#ordinary-grouping-set-list" xlink:title="ordinary_grouping_set_list" shape="rect"> + <rect x="83" y="1" width="130" height="18" class="nonterminal"/> + <text class="nonterminal" x="87" y="13">ordinary_grouping_set_list</text></a><rect x="221" y="1" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="225" y="13">)</text> + <path class="line" d="m17 10 h2 m0 0 h4 m32 0 h4 m0 0 h4 m12 0 h4 m0 0 h4 m130 0 h4 m0 0 h4 m12 0 h4 m3 0 h-3"/> + <polygon points="247 10 255 6 255 14"/> + <polygon points="247 10 239 6 239 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#cube-list" title="cube_list" shape="rect">cube_list</a></div> + <div>         ::= 'CUBE' '(' <a href="#ordinary-grouping-set-list" title="ordinary_grouping_set_list" shape="rect">ordinary_grouping_set_list</a> ')'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#grouping-element" title="grouping-element">grouping-element</a></li><li><a href="#grouping-set" title="grouping-set">grouping-set</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + grouping_sets_specification +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="277" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="58" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">GROUPING</text> + <rect x="89" y="1" width="30" height="18" class="terminal" rx="4"/> + <text class="terminal" x="93" y="13">SETS</text> + <rect x="127" y="1" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="131" y="13">(</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#grouping-set-list" xlink:title="grouping_set_list" shape="rect"> + <rect x="147" y="1" width="86" height="18" class="nonterminal"/> + <text class="nonterminal" x="151" y="13">grouping_set_list</text></a><rect x="241" y="1" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="245" y="13">)</text> + <path class="line" d="m17 10 h2 m0 0 h4 m58 0 h4 m0 0 h4 m30 0 h4 m0 0 h4 m12 0 h4 m0 0 h4 m86 0 h4 m0 0 h4 m12 0 h4 m3 0 h-3"/> + <polygon points="267 10 275 6 275 14"/> + <polygon points="267 10 259 6 259 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#grouping-sets-specification" title="grouping_sets_specification" shape="rect">grouping_sets_specification</a></div> + <div>         ::= 'GROUPING' 'SETS' '(' <a href="#grouping-set-list" title="grouping_set_list" shape="rect">grouping_set_list</a> ')'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#grouping-element" title="grouping-element">grouping-element</a></li><li><a href="#grouping-set" title="grouping-set">grouping-set</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + grouping_set_list +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="157" height="49"> + <polygon points="9 38 1 34 1 42"/> + <polygon points="17 38 9 34 9 42"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#grouping-set" xlink:title="grouping_set" shape="rect"> + <rect x="43" y="29" width="70" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">grouping_set</text></a><rect x="43" y="1" width="8" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="13">,</text> + <path class="line" d="m17 38 h2 m20 0 h4 m70 0 h4 m-98 0 l20 0 m-1 0 q-9 0 -9 -10 l0 -8 q0 -10 10 -10 m78 28 l20 0 m-20 0 q10 0 10 -10 l0 -8 q0 -10 -10 -10 m-78 0 h4 m8 0 h4 m0 0 h62 m23 28 h-3"/> + <polygon points="147 38 155 34 155 42"/> + <polygon points="147 38 139 34 139 42"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#grouping-set-list" title="grouping_set_list" shape="rect">grouping_set_list</a></div> + <div>         ::= <a href="#grouping-set" title="grouping_set" shape="rect">grouping_set</a> ( ',' <a href="#grouping-set" title="grouping_set" shape="rect">grouping_set</a> )*</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#grouping-sets-specification" title="grouping-sets-specification">grouping-sets-specification</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + grouping_set +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="221" height="133"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#rollup-list" xlink:title="rollup_list" shape="rect"> + <rect x="43" y="1" width="50" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">rollup_list</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#cube-list" xlink:title="cube_list" shape="rect"> + <rect x="43" y="29" width="48" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">cube_list</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#grouping-sets-specification" xlink:title="grouping_sets_specification" shape="rect"> + <rect x="43" y="57" width="134" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="69">grouping_sets_specification</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#empty-grouping-set" xlink:title="empty_grouping_set" shape="rect"> + <rect x="43" y="85" width="106" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="97">empty_grouping_set</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#ordinary-grouping-set" xlink:title="ordinary_grouping_set" shape="rect"> + <rect x="43" y="113" width="112" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="125">ordinary_grouping_set</text></a><path class="line" d="m17 10 h2 m20 0 h4 m50 0 h4 m0 0 h84 m-162 0 h20 m142 0 h20 m-182 0 q10 0 10 10 m162 0 q0 -10 10 -10 m-172 10 v8 m162 0 v-8 m-162 8 q0 10 10 10 m142 0 q10 0 10 -10 m-152 10 h4 m48 0 h4 m0 0 h86 m-152 -10 v20 m162 0 v-20 m-162 20 v8 m162 0 v-8 m-162 8 q0 10 10 10 m142 0 q10 0 10 -10 m-152 10 h4 m134 0 h4 m-152 -10 v20 m162 0 v-20 m-162 20 v8 m162 0 v-8 m-162 8 q0 10 10 10 m142 0 q10 0 10 -10 m-152 10 h4 m106 0 h4 m0 0 h28 m-152 -10 v20 m162 0 v-20 m-162 20 v8 m162 0 v-8 m-162 8 q0 10 10 10 m142 0 q10 0 10 -10 m-152 10 h4 m112 0 h4 m0 0 h22 m23 -112 h-3"/> + <polygon points="211 10 219 6 219 14"/> + <polygon points="211 10 203 6 203 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#grouping-set" title="grouping_set" shape="rect">grouping_set</a></div> + <div>         ::= <a href="#rollup-list" title="rollup_list" shape="rect">rollup_list</a></div> + <div>           | <a href="#cube-list" title="cube_list" shape="rect">cube_list</a></div> + <div>           | <a href="#grouping-sets-specification" title="grouping_sets_specification" shape="rect">grouping_sets_specification</a></div> + <div>           | <a href="#empty-grouping-set" title="empty_grouping_set" shape="rect">empty_grouping_set</a></div> + <div>           | <a href="#ordinary-grouping-set" title="ordinary_grouping_set" shape="rect">ordinary_grouping_set</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#grouping-set-list" title="grouping-set-list">grouping-set-list</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + empty_grouping_set +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="79" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">(</text> + <rect x="43" y="1" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="13">)</text> + <path class="line" d="m17 10 h2 m0 0 h4 m12 0 h4 m0 0 h4 m12 0 h4 m3 0 h-3"/> + <polygon points="69 10 77 6 77 14"/> + <polygon points="69 10 61 6 61 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#empty-grouping-set" title="empty_grouping_set" shape="rect">empty_grouping_set</a></div> + <div>         ::= '(' ')'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#grouping-element" title="grouping-element">grouping-element</a></li><li><a href="#grouping-set" title="grouping-set">grouping-set</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + having_clause +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="185" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="44" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">HAVING</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#search-condition" xlink:title="search_condition" shape="rect"> + <rect x="75" y="1" width="86" height="18" class="nonterminal"/> + <text class="nonterminal" x="79" y="13">search_condition</text></a><path class="line" d="m17 10 h2 m0 0 h4 m44 0 h4 m0 0 h4 m86 0 h4 m3 0 h-3"/> + <polygon points="175 10 183 6 183 14"/> + <polygon points="175 10 167 6 167 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#having-clause" title="having_clause" shape="rect">having_clause</a></div> + <div>         ::= 'HAVING' <a href="#search-condition" title="search_condition" shape="rect">search_condition</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#table-expression" title="table-expression">table-expression</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + window_clause +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="217" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="56" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">WINDOW</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#window-definition-list" xlink:title="window_definition_list" shape="rect"> + <rect x="87" y="1" width="106" height="18" class="nonterminal"/> + <text class="nonterminal" x="91" y="13">window_definition_list</text></a><path class="line" d="m17 10 h2 m0 0 h4 m56 0 h4 m0 0 h4 m106 0 h4 m3 0 h-3"/> + <polygon points="207 10 215 6 215 14"/> + <polygon points="207 10 199 6 199 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#window-clause" title="window_clause" shape="rect">window_clause</a></div> + <div>         ::= 'WINDOW' <a href="#window-definition-list" title="window_definition_list" shape="rect">window_definition_list</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#table-expression" title="table-expression">table-expression</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + window_definition_list +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="177" height="49"> + <polygon points="9 38 1 34 1 42"/> + <polygon points="17 38 9 34 9 42"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#window-definition" xlink:title="window_definition" shape="rect"> + <rect x="43" y="29" width="90" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">window_definition</text></a><rect x="43" y="1" width="8" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="13">,</text> + <path class="line" d="m17 38 h2 m20 0 h4 m90 0 h4 m-118 0 l20 0 m-1 0 q-9 0 -9 -10 l0 -8 q0 -10 10 -10 m98 28 l20 0 m-20 0 q10 0 10 -10 l0 -8 q0 -10 -10 -10 m-98 0 h4 m8 0 h4 m0 0 h82 m23 28 h-3"/> + <polygon points="167 38 175 34 175 42"/> + <polygon points="167 38 159 34 159 42"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#window-definition-list" title="window_definition_list" shape="rect">window_definition_list</a></div> + <div>         ::= <a href="#window-definition" title="window_definition" shape="rect">window_definition</a> ( ',' <a href="#window-definition" title="window_definition" shape="rect">window_definition</a> )*</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#window-clause" title="window-clause">window-clause</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + window_definition +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="231" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#identifier" xlink:title="identifier" shape="rect"> + <rect x="23" y="1" width="46" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">identifier</text></a><rect x="77" y="1" width="20" height="18" class="terminal" rx="4"/> + <text class="terminal" x="81" y="13">AS</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#window-specification" xlink:title="window_specification" shape="rect"> + <rect x="105" y="1" width="102" height="18" class="nonterminal"/> + <text class="nonterminal" x="109" y="13">window_specification</text></a><path class="line" d="m17 10 h2 m0 0 h4 m46 0 h4 m0 0 h4 m20 0 h4 m0 0 h4 m102 0 h4 m3 0 h-3"/> + <polygon points="221 10 229 6 229 14"/> + <polygon points="221 10 213 6 213 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#window-definition" title="window_definition" shape="rect">window_definition</a></div> + <div>         ::= <a href="#identifier" title="identifier" shape="rect">identifier</a> 'AS' <a href="#window-specification" title="window_specification" shape="rect">window_specification</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#window-definition-list" title="window-definition-list">window-definition-list</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + window_specification +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="265" height="42"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">(</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#window-specification-details" xlink:title="window_specification_details" shape="rect"> + <rect x="63" y="22" width="138" height="18" class="nonterminal"/> + <text class="nonterminal" x="67" y="34">window_specification_details</text></a><rect x="229" y="1" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="233" y="13">)</text> + <path class="line" d="m17 10 h2 m0 0 h4 m12 0 h4 m20 0 h10 m0 0 h136 m-166 0 h20 m146 0 h20 m-186 0 q10 0 10 10 m166 0 q0 -10 10 -10 m-176 10 v1 m166 0 v-1 m-166 1 q0 10 10 10 m146 0 q10 0 10 -10 m-156 10 h4 m138 0 h4 m20 -21 h4 m12 0 h4 m3 0 h-3"/> + <polygon points="255 10 263 6 263 14"/> + <polygon points="255 10 247 6 247 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#window-specification" title="window_specification" shape="rect">window_specification</a></div> + <div>         ::= '(' <a href="#window-specification-details" title="window_specification_details" shape="rect">window_specification_details</a>? ')'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#in-line-window-specification" title="in-line-window-specification">in-line-window-specification</a></li><li><a href="#window-definition" title="window-definition">window-definition</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + window_specification_details +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="247" height="117"> + <polygon points="9 22 1 18 1 26"/> + <polygon points="17 22 9 18 9 26"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#window-partition-clause" xlink:title="window_partition_clause" shape="rect"> + <rect x="63" y="13" width="120" height="18" class="nonterminal"/> + <text class="nonterminal" x="67" y="25">window_partition_clause</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#window-order-clause" xlink:title="window_order_clause" shape="rect"> + <rect x="63" y="41" width="110" height="18" class="nonterminal"/> + <text class="nonterminal" x="67" y="53">window_order_clause</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#window-frame-clause" xlink:title="window_frame_clause" shape="rect"> + <rect x="63" y="69" width="112" height="18" class="nonterminal"/> + <text class="nonterminal" x="67" y="81">window_frame_clause</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#existing-identifier" xlink:title="existing_identifier" shape="rect"> + <rect x="63" y="97" width="86" height="18" class="nonterminal"/> + <text class="nonterminal" x="67" y="109">existing_identifier</text></a><path class="line" d="m17 22 h2 m40 0 h4 m120 0 h4 m-148 0 h20 m128 0 h20 m-168 0 q10 0 10 10 m148 0 q0 -10 10 -10 m-158 10 v8 m148 0 v-8 m-148 8 q0 10 10 10 m128 0 q10 0 10 -10 m-138 10 h4 m110 0 h4 m0 0 h10 m-138 -10 v20 m148 0 v-20 m-148 20 v8 m148 0 v-8 m-148 8 q0 10 10 10 m128 0 q10 0 10 -10 m-138 10 h4 m112 0 h4 m0 0 h8 m-138 -10 v20 m148 0 v-20 m-148 20 v8 m148 0 v-8 m-148 8 q0 10 10 10 m128 0 q10 0 10 -10 m-138 10 h4 m86 0 h4 m0 0 h34 m-168 -84 l20 0 m-1 0 q-9 0 -9 -10 l0 -1 q0 -10 10 -10 m168 21 l20 0 m-20 0 q10 0 10 -10 l0 -1 q0 -10 -10 -10 m-168 0 h10 m0 0 h158 m23 21 h-3"/> + <polygon points="237 22 245 18 245 26"/> + <polygon points="237 22 229 18 229 26"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#window-specification-details" title="window_specification_details" shape="rect">window_specification_details</a></div> + <div>         ::= ( <a href="#window-partition-clause" title="window_partition_clause" shape="rect">window_partition_clause</a> | <a href="#window-order-clause" title="window_order_clause" shape="rect">window_order_clause</a> | <a href="#window-frame-clause" title="window_frame_clause" shape="rect">window_frame_clause</a> | <a href="#existing-identifier" title="existing_identifier" shape="rect">existing_identifier</a> )+</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#window-specification" title="window-specification">window-specification</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + existing_identifier +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="93" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#identifier" xlink:title="identifier" shape="rect"> + <rect x="23" y="1" width="46" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">identifier</text></a><path class="line" d="m17 10 h2 m0 0 h4 m46 0 h4 m3 0 h-3"/> + <polygon points="83 10 91 6 91 14"/> + <polygon points="83 10 75 6 75 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#existing-identifier" title="existing_identifier" shape="rect">existing_identifier</a></div> + <div>         ::= <a href="#identifier" title="identifier" shape="rect">identifier</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#window-specification-details" title="window-specification-details">window-specification-details</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + window_partition_clause +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="331" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="58" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">PARTITION</text> + <rect x="89" y="1" width="20" height="18" class="terminal" rx="4"/> + <text class="terminal" x="93" y="13">BY</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#window-partition-column-reference-list" xlink:title="window_partition_column_reference_list" shape="rect"> + <rect x="117" y="1" width="190" height="18" class="nonterminal"/> + <text class="nonterminal" x="121" y="13">window_partition_column_reference_list</text></a><path class="line" d="m17 10 h2 m0 0 h4 m58 0 h4 m0 0 h4 m20 0 h4 m0 0 h4 m190 0 h4 m3 0 h-3"/> + <polygon points="321 10 329 6 329 14"/> + <polygon points="321 10 313 6 313 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#window-partition-clause" title="window_partition_clause" shape="rect">window_partition_clause</a></div> + <div>         ::= 'PARTITION' 'BY' <a href="#window-partition-column-reference-list" title="window_partition_column_reference_list" shape="rect">window_partition_column_reference_list</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#window-specification-details" title="window-specification-details">window-specification-details</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + window_partition_column_reference_list +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="261" height="49"> + <polygon points="9 38 1 34 1 42"/> + <polygon points="17 38 9 34 9 42"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#window-partition-column-reference" xlink:title="window_partition_column_reference" shape="rect"> + <rect x="43" y="29" width="174" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">window_partition_column_reference</text></a><rect x="43" y="1" width="8" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="13">,</text> + <path class="line" d="m17 38 h2 m20 0 h4 m174 0 h4 m-202 0 l20 0 m-1 0 q-9 0 -9 -10 l0 -8 q0 -10 10 -10 m182 28 l20 0 m-20 0 q10 0 10 -10 l0 -8 q0 -10 -10 -10 m-182 0 h4 m8 0 h4 m0 0 h166 m23 28 h-3"/> + <polygon points="251 38 259 34 259 42"/> + <polygon points="251 38 243 34 243 42"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#window-partition-column-reference-list" title="window_partition_column_reference_list" shape="rect">window_partition_column_reference_list</a></div> + <div>         ::= <a href="#window-partition-column-reference" title="window_partition_column_reference" shape="rect">window_partition_column_reference</a> ( ',' <a href="#window-partition-column-reference" title="window_partition_column_reference" shape="rect">window_partition_column_reference</a> )*</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#window-partition-clause" title="window-partition-clause">window-partition-clause</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + window_partition_column_reference +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="299" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#value-expression" xlink:title="value_expression" shape="rect"> + <rect x="43" y="1" width="90" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">value_expression</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#column-reference" xlink:title="column_reference" shape="rect"> + <rect x="43" y="29" width="92" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">column_reference</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#collate-clause" xlink:title="collate_clause" shape="rect"> + <rect x="183" y="22" width="72" height="18" class="nonterminal"/> + <text class="nonterminal" x="187" y="34">collate_clause</text></a><path class="line" d="m17 10 h2 m20 0 h4 m90 0 h4 m0 0 h2 m-120 0 h20 m100 0 h20 m-140 0 q10 0 10 10 m120 0 q0 -10 10 -10 m-130 10 v8 m120 0 v-8 m-120 8 q0 10 10 10 m100 0 q10 0 10 -10 m-110 10 h4 m92 0 h4 m40 -28 h10 m0 0 h70 m-100 0 h20 m80 0 h20 m-120 0 q10 0 10 10 m100 0 q0 -10 10 -10 m-110 10 v1 m100 0 v-1 m-100 1 q0 10 10 10 m80 0 q10 0 10 -10 m-90 10 h4 m72 0 h4 m23 -21 h-3"/> + <polygon points="289 10 297 6 297 14"/> + <polygon points="289 10 281 6 281 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#window-partition-column-reference" title="window_partition_column_reference" shape="rect">window_partition_column_reference</a></div> + <div>         ::= ( <a href="#value-expression" title="value_expression" shape="rect">value_expression</a> | <a href="#column-reference" title="column_reference" shape="rect">column_reference</a> ) <a href="#collate-clause" title="collate_clause" shape="rect">collate_clause</a>?</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#window-partition-column-reference-list" title="window-partition-column-reference-list">window-partition-column-reference-list</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + window_order_clause +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="225" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="40" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">ORDER</text> + <rect x="71" y="1" width="20" height="18" class="terminal" rx="4"/> + <text class="terminal" x="75" y="13">BY</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#sort-specification-list" xlink:title="sort_specification_list" shape="rect"> + <rect x="99" y="1" width="102" height="18" class="nonterminal"/> + <text class="nonterminal" x="103" y="13">sort_specification_list</text></a><path class="line" d="m17 10 h2 m0 0 h4 m40 0 h4 m0 0 h4 m20 0 h4 m0 0 h4 m102 0 h4 m3 0 h-3"/> + <polygon points="215 10 223 6 223 14"/> + <polygon points="215 10 207 6 207 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#window-order-clause" title="window_order_clause" shape="rect">window_order_clause</a></div> + <div>         ::= 'ORDER' 'BY' <a href="#sort-specification-list" title="sort_specification_list" shape="rect">sort_specification_list</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#window-specification-details" title="window-specification-details">window-specification-details</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + window_frame_clause +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="443" height="42"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#window-frame-units" xlink:title="window_frame_units" shape="rect"> + <rect x="23" y="1" width="104" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">window_frame_units</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#window-frame-extent" xlink:title="window_frame_extent" shape="rect"> + <rect x="135" y="1" width="112" height="18" class="nonterminal"/> + <text class="nonterminal" x="139" y="13">window_frame_extent</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#window-frame-exclusion" xlink:title="window_frame_exclusion" shape="rect"> + <rect x="275" y="22" width="124" height="18" class="nonterminal"/> + <text class="nonterminal" x="279" y="34">window_frame_exclusion</text></a><path class="line" d="m17 10 h2 m0 0 h4 m104 0 h4 m0 0 h4 m112 0 h4 m20 0 h10 m0 0 h122 m-152 0 h20 m132 0 h20 m-172 0 q10 0 10 10 m152 0 q0 -10 10 -10 m-162 10 v1 m152 0 v-1 m-152 1 q0 10 10 10 m132 0 q10 0 10 -10 m-142 10 h4 m124 0 h4 m23 -21 h-3"/> + <polygon points="433 10 441 6 441 14"/> + <polygon points="433 10 425 6 425 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#window-frame-clause" title="window_frame_clause" shape="rect">window_frame_clause</a></div> + <div>         ::= <a href="#window-frame-units" title="window_frame_units" shape="rect">window_frame_units</a> <a href="#window-frame-extent" title="window_frame_extent" shape="rect">window_frame_extent</a> <a href="#window-frame-exclusion" title="window_frame_exclusion" shape="rect">window_frame_exclusion</a>?</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#window-specification-details" title="window-specification-details">window-specification-details</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + window_frame_units +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="127" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="43" y="1" width="38" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="13">ROWS</text> + <rect x="43" y="29" width="40" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="41">RANGE</text> + <path class="line" d="m17 10 h2 m20 0 h4 m38 0 h4 m0 0 h2 m-68 0 h20 m48 0 h20 m-88 0 q10 0 10 10 m68 0 q0 -10 10 -10 m-78 10 v8 m68 0 v-8 m-68 8 q0 10 10 10 m48 0 q10 0 10 -10 m-58 10 h4 m40 0 h4 m23 -28 h-3"/> + <polygon points="117 10 125 6 125 14"/> + <polygon points="117 10 109 6 109 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#window-frame-units" title="window_frame_units" shape="rect">window_frame_units</a></div> + <div>         ::= 'ROWS'</div> + <div>           | 'RANGE'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#window-frame-clause" title="window-frame-clause">window-frame-clause</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + window_frame_extent +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="211" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#window-frame-start" xlink:title="window_frame_start" shape="rect"> + <rect x="43" y="1" width="104" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">window_frame_start</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#window-frame-between" xlink:title="window_frame_between" shape="rect"> + <rect x="43" y="29" width="124" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">window_frame_between</text></a><path class="line" d="m17 10 h2 m20 0 h4 m104 0 h4 m0 0 h20 m-152 0 h20 m132 0 h20 m-172 0 q10 0 10 10 m152 0 q0 -10 10 -10 m-162 10 v8 m152 0 v-8 m-152 8 q0 10 10 10 m132 0 q10 0 10 -10 m-142 10 h4 m124 0 h4 m23 -28 h-3"/> + <polygon points="201 10 209 6 209 14"/> + <polygon points="201 10 193 6 193 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#window-frame-extent" title="window_frame_extent" shape="rect">window_frame_extent</a></div> + <div>         ::= <a href="#window-frame-start" title="window_frame_start" shape="rect">window_frame_start</a></div> + <div>           | <a href="#window-frame-between" title="window_frame_between" shape="rect">window_frame_between</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#window-frame-clause" title="window-frame-clause">window-frame-clause</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + window_frame_start +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="223" height="77"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="43" y="1" width="68" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="13">UNBOUNDED</text> + <rect x="119" y="1" width="60" height="18" class="terminal" rx="4"/> + <text class="terminal" x="123" y="13">PRECEDING</text> + <rect x="43" y="29" width="50" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="41">CURRENT</text> + <rect x="101" y="29" width="32" height="18" class="terminal" rx="4"/> + <text class="terminal" x="105" y="41">ROW</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#window-frame-preceding" xlink:title="window_frame_preceding" shape="rect"> + <rect x="43" y="57" width="128" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="69">window_frame_preceding</text></a><path class="line" d="m17 10 h2 m20 0 h4 m68 0 h4 m0 0 h4 m60 0 h4 m-164 0 h20 m144 0 h20 m-184 0 q10 0 10 10 m164 0 q0 -10 10 -10 m-174 10 v8 m164 0 v-8 m-164 8 q0 10 10 10 m144 0 q10 0 10 -10 m-154 10 h4 m50 0 h4 m0 0 h4 m32 0 h4 m0 0 h46 m-154 -10 v20 m164 0 v-20 m-164 20 v8 m164 0 v-8 m-164 8 q0 10 10 10 m144 0 q10 0 10 -10 m-154 10 h4 m128 0 h4 m0 0 h8 m23 -56 h-3"/> + <polygon points="213 10 221 6 221 14"/> + <polygon points="213 10 205 6 205 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#window-frame-start" title="window_frame_start" shape="rect">window_frame_start</a></div> + <div>         ::= 'UNBOUNDED' 'PRECEDING'</div> + <div>           | 'CURRENT' 'ROW'</div> + <div>           | <a href="#window-frame-preceding" title="window_frame_preceding" shape="rect">window_frame_preceding</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#window-frame-bound" title="window-frame-bound">window-frame-bound</a></li><li><a href="#window-frame-extent" title="window-frame-extent">window-frame-extent</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + window_frame_preceding +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="205" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#value-expression" xlink:title="value_expression" shape="rect"> + <rect x="23" y="1" width="90" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">value_expression</text></a><rect x="121" y="1" width="60" height="18" class="terminal" rx="4"/> + <text class="terminal" x="125" y="13">PRECEDING</text> + <path class="line" d="m17 10 h2 m0 0 h4 m90 0 h4 m0 0 h4 m60 0 h4 m3 0 h-3"/> + <polygon points="195 10 203 6 203 14"/> + <polygon points="195 10 187 6 187 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#window-frame-preceding" title="window_frame_preceding" shape="rect">window_frame_preceding</a></div> + <div>         ::= <a href="#value-expression" title="value_expression" shape="rect">value_expression</a> 'PRECEDING'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#window-frame-start" title="window-frame-start">window-frame-start</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + window_frame_between +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="379" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="52" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">BETWEEN</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#window-frame-bound" xlink:title="window_frame_bound" shape="rect"> + <rect x="83" y="1" width="114" height="18" class="nonterminal"/> + <text class="nonterminal" x="87" y="13">window_frame_bound</text></a><rect x="205" y="1" width="28" height="18" class="terminal" rx="4"/> + <text class="terminal" x="209" y="13">AND</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#window-frame-bound" xlink:title="window_frame_bound" shape="rect"> + <rect x="241" y="1" width="114" height="18" class="nonterminal"/> + <text class="nonterminal" x="245" y="13">window_frame_bound</text></a><path class="line" d="m17 10 h2 m0 0 h4 m52 0 h4 m0 0 h4 m114 0 h4 m0 0 h4 m28 0 h4 m0 0 h4 m114 0 h4 m3 0 h-3"/> + <polygon points="369 10 377 6 377 14"/> + <polygon points="369 10 361 6 361 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#window-frame-between" title="window_frame_between" shape="rect">window_frame_between</a></div> + <div>         ::= 'BETWEEN' <a href="#window-frame-bound" title="window_frame_bound" shape="rect">window_frame_bound</a> 'AND' <a href="#window-frame-bound" title="window_frame_bound" shape="rect">window_frame_bound</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#window-frame-extent" title="window-frame-extent">window-frame-extent</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + window_frame_bound +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="229" height="77"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#window-frame-start" xlink:title="window_frame_start" shape="rect"> + <rect x="43" y="1" width="104" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">window_frame_start</text></a><rect x="43" y="29" width="68" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="41">UNBOUNDED</text> + <rect x="119" y="29" width="66" height="18" class="terminal" rx="4"/> + <text class="terminal" x="123" y="41">FOLLOWING</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#window-frame-following" xlink:title="window_frame_following" shape="rect"> + <rect x="43" y="57" width="122" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="69">window_frame_following</text></a><path class="line" d="m17 10 h2 m20 0 h4 m104 0 h4 m0 0 h38 m-170 0 h20 m150 0 h20 m-190 0 q10 0 10 10 m170 0 q0 -10 10 -10 m-180 10 v8 m170 0 v-8 m-170 8 q0 10 10 10 m150 0 q10 0 10 -10 m-160 10 h4 m68 0 h4 m0 0 h4 m66 0 h4 m-160 -10 v20 m170 0 v-20 m-170 20 v8 m170 0 v-8 m-170 8 q0 10 10 10 m150 0 q10 0 10 -10 m-160 10 h4 m122 0 h4 m0 0 h20 m23 -56 h-3"/> + <polygon points="219 10 227 6 227 14"/> + <polygon points="219 10 211 6 211 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#window-frame-bound" title="window_frame_bound" shape="rect">window_frame_bound</a></div> + <div>         ::= <a href="#window-frame-start" title="window_frame_start" shape="rect">window_frame_start</a></div> + <div>           | 'UNBOUNDED' 'FOLLOWING'</div> + <div>           | <a href="#window-frame-following" title="window_frame_following" shape="rect">window_frame_following</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#window-frame-between" title="window-frame-between">window-frame-between</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + window_frame_following +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="211" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#value-expression" xlink:title="value_expression" shape="rect"> + <rect x="23" y="1" width="90" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">value_expression</text></a><rect x="121" y="1" width="66" height="18" class="terminal" rx="4"/> + <text class="terminal" x="125" y="13">FOLLOWING</text> + <path class="line" d="m17 10 h2 m0 0 h4 m90 0 h4 m0 0 h4 m66 0 h4 m3 0 h-3"/> + <polygon points="201 10 209 6 209 14"/> + <polygon points="201 10 193 6 193 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#window-frame-following" title="window_frame_following" shape="rect">window_frame_following</a></div> + <div>         ::= <a href="#value-expression" title="value_expression" shape="rect">value_expression</a> 'FOLLOWING'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#window-frame-bound" title="window-frame-bound">window-frame-bound</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + window_frame_exclusion +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="233" height="105"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="48" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">EXCLUDE</text> + <rect x="99" y="1" width="50" height="18" class="terminal" rx="4"/> + <text class="terminal" x="103" y="13">CURRENT</text> + <rect x="157" y="1" width="32" height="18" class="terminal" rx="4"/> + <text class="terminal" x="161" y="13">ROW</text> + <rect x="99" y="29" width="42" height="18" class="terminal" rx="4"/> + <text class="terminal" x="103" y="41">GROUP</text> + <rect x="99" y="57" width="28" height="18" class="terminal" rx="4"/> + <text class="terminal" x="103" y="69">TIES</text> + <rect x="99" y="85" width="22" height="18" class="terminal" rx="4"/> + <text class="terminal" x="103" y="97">NO</text> + <rect x="129" y="85" width="46" height="18" class="terminal" rx="4"/> + <text class="terminal" x="133" y="97">OTHERS</text> + <path class="line" d="m17 10 h2 m0 0 h4 m48 0 h4 m20 0 h4 m50 0 h4 m0 0 h4 m32 0 h4 m-118 0 h20 m98 0 h20 m-138 0 q10 0 10 10 m118 0 q0 -10 10 -10 m-128 10 v8 m118 0 v-8 m-118 8 q0 10 10 10 m98 0 q10 0 10 -10 m-108 10 h4 m42 0 h4 m0 0 h48 m-108 -10 v20 m118 0 v-20 m-118 20 v8 m118 0 v-8 m-118 8 q0 10 10 10 m98 0 q10 0 10 -10 m-108 10 h4 m28 0 h4 m0 0 h62 m-108 -10 v20 m118 0 v-20 m-118 20 v8 m118 0 v-8 m-118 8 q0 10 10 10 m98 0 q10 0 10 -10 m-108 10 h4 m22 0 h4 m0 0 h4 m46 0 h4 m0 0 h14 m23 -84 h-3"/> + <polygon points="223 10 231 6 231 14"/> + <polygon points="223 10 215 6 215 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#window-frame-exclusion" title="window_frame_exclusion" shape="rect">window_frame_exclusion</a></div> + <div>         ::= 'EXCLUDE' ( 'CURRENT' 'ROW' | 'GROUP' | 'TIES' | 'NO' 'OTHERS' )</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#window-frame-clause" title="window-frame-clause">window-frame-clause</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + query_specification +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="401" height="42"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="40" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">SELECT</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#set-quantifier" xlink:title="set_quantifier" shape="rect"> + <rect x="91" y="22" width="70" height="18" class="nonterminal"/> + <text class="nonterminal" x="95" y="34">set_quantifier</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#select-list" xlink:title="select_list" shape="rect"> + <rect x="189" y="1" width="52" height="18" class="nonterminal"/> + <text class="nonterminal" x="193" y="13">select_list</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#table-expression" xlink:title="table_expression" shape="rect"> + <rect x="269" y="22" width="88" height="18" class="nonterminal"/> + <text class="nonterminal" x="273" y="34">table_expression</text></a><path class="line" d="m17 10 h2 m0 0 h4 m40 0 h4 m20 0 h10 m0 0 h68 m-98 0 h20 m78 0 h20 m-118 0 q10 0 10 10 m98 0 q0 -10 10 -10 m-108 10 v1 m98 0 v-1 m-98 1 q0 10 10 10 m78 0 q10 0 10 -10 m-88 10 h4 m70 0 h4 m20 -21 h4 m52 0 h4 m20 0 h10 m0 0 h86 m-116 0 h20 m96 0 h20 m-136 0 q10 0 10 10 m116 0 q0 -10 10 -10 m-126 10 v1 m116 0 v-1 m-116 1 q0 10 10 10 m96 0 q10 0 10 -10 m-106 10 h4 m88 0 h4 m23 -21 h-3"/> + <polygon points="391 10 399 6 399 14"/> + <polygon points="391 10 383 6 383 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#query-specification" title="query_specification" shape="rect">query_specification</a></div> + <div>         ::= 'SELECT' <a href="#set-quantifier" title="set_quantifier" shape="rect">set_quantifier</a>? <a href="#select-list" title="select_list" shape="rect">select_list</a> <a href="#table-expression" title="table_expression" shape="rect">table_expression</a>?</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#dynamic-single-row-select-statement" title="dynamic-single-row-select-statement">dynamic-single-row-select-statement</a></li><li><a href="#simple-table" title="simple-table">simple-table</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + select_list +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="445" height="110"> + <polygon points="9 22 1 18 1 26"/> + <polygon points="17 22 9 18 9 26"/> + <rect x="43" y="13" width="14" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="25">*</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#select-sublist" xlink:title="select_sublist" shape="rect"> + <rect x="63" y="69" width="68" height="18" class="nonterminal"/> + <text class="nonterminal" x="67" y="81">select_sublist</text></a><rect x="63" y="41" width="8" height="18" class="terminal" rx="4"/> + <text class="terminal" x="67" y="53">,</text> + <rect x="179" y="90" width="8" height="18" class="terminal" rx="4"/> + <text class="terminal" x="183" y="102">,</text> + <rect x="195" y="90" width="14" height="18" class="terminal" rx="4"/> + <text class="terminal" x="199" y="102">*</text> + <rect x="297" y="13" width="8" height="18" class="terminal" rx="4"/> + <text class="terminal" x="301" y="25">,</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#select-sublist" xlink:title="select_sublist" shape="rect"> + <rect x="313" y="13" width="68" height="18" class="nonterminal"/> + <text class="nonterminal" x="317" y="25">select_sublist</text></a><path class="line" d="m17 22 h2 m20 0 h4 m14 0 h4 m0 0 h172 m-214 0 h20 m194 0 h20 m-234 0 q10 0 10 10 m214 0 q0 -10 10 -10 m-224 10 v36 m214 0 v-36 m-214 36 q0 10 10 10 m194 0 q10 0 10 -10 m-184 10 h4 m68 0 h4 m-96 0 l20 0 m-1 0 q-9 0 -9 -10 l0 -8 q0 -10 10 -10 m76 28 l20 0 m-20 0 q10 0 10 -10 l0 -8 q0 -10 -10 -10 m-76 0 h4 m8 0 h4 m0 0 h60 m40 28 h10 m0 0 h28 m-58 0 h20 m38 0 h20 m-78 0 q10 0 10 10 m58 0 q0 -10 10 -10 m-68 10 v1 m58 0 v-1 m-58 1 q0 10 10 10 m38 0 q10 0 10 -10 m-48 10 h4 m8 0 h4 m0 0 h4 m14 0 h4 m80 -77 h4 m8 0 h4 m0 0 h4 m68 0 h4 m-112 0 l20 0 m-1 0 q-9 0 -9 -10 l0 -1 q0 -10 10 -10 m92 21 l20 0 m-20 0 q10 0 10 -10 l0 -1 q0 -10 -10 -10 m-92 0 h10 m0 0 h82 m-132 21 h20 m132 0 h20 m-172 0 q10 0 10 10 m152 0 q0 -10 10 -10 m-162 10 v1 m152 0 v-1 m-152 1 q0 10 10 10 m132 0 q10 0 10 -10 m-142 10 h10 m0 0 h122 m23 -21 h-3"/> + <polygon points="435 22 443 18 443 26"/> + <polygon points="435 22 427 18 427 26"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#select-list" title="select_list" shape="rect">select_list</a></div> + <div>         ::= ( '*' | <a href="#select-sublist" title="select_sublist" shape="rect">select_sublist</a> ( ',' <a href="#select-sublist" title="select_sublist" shape="rect">select_sublist</a> )* ( ',' '*' )? ) ( ',' <a href="#select-sublist" title="select_sublist" shape="rect">select_sublist</a> )*</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#query-specification" title="query-specification">query-specification</a></li><li><a href="#select-statement-single-row" title="select-statement-single-row">select-statement-single-row</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + select_sublist +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="459" height="91"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#derived-column" xlink:title="derived_column" shape="rect"> + <rect x="23" y="1" width="82" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">derived_column</text></a><rect x="133" y="22" width="8" height="18" class="terminal" rx="4"/> + <text class="terminal" x="137" y="34">.</text> + <rect x="149" y="22" width="14" height="18" class="terminal" rx="4"/> + <text class="terminal" x="153" y="34">*</text> + <rect x="191" y="43" width="20" height="18" class="terminal" rx="4"/> + <text class="terminal" x="195" y="55">AS</text> + <rect x="219" y="43" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="223" y="55">(</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#all-fields-column-name-list" xlink:title="all_fields_column_name_list" shape="rect"> + <rect x="239" y="43" width="136" height="18" class="nonterminal"/> + <text class="nonterminal" x="243" y="55">all_fields_column_name_list</text></a><rect x="383" y="43" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="387" y="55">)</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#as-clause" xlink:title="as_clause" shape="rect"> + <rect x="133" y="71" width="56" height="18" class="nonterminal"/> + <text class="nonterminal" x="137" y="83">as_clause</text></a><path class="line" d="m17 10 h2 m0 0 h4 m82 0 h4 m20 0 h10 m0 0 h280 m-310 0 h20 m290 0 h20 m-330 0 q10 0 10 10 m310 0 q0 -10 10 -10 m-320 10 v1 m310 0 v-1 m-310 1 q0 10 10 10 m290 0 q10 0 10 -10 m-300 10 h4 m8 0 h4 m0 0 h4 m14 0 h4 m20 0 h10 m0 0 h202 m-232 0 h20 m212 0 h20 m-252 0 q10 0 10 10 m232 0 q0 -10 10 -10 m-242 10 v1 m232 0 v-1 m-232 1 q0 10 10 10 m212 0 q10 0 10 -10 m-222 10 h4 m20 0 h4 m0 0 h4 m12 0 h4 m0 0 h4 m136 0 h4 m0 0 h4 m12 0 h4 m-280 -31 v20 m310 0 v-20 m-310 20 v29 m310 0 v-29 m-310 29 q0 10 10 10 m290 0 q10 0 10 -10 m-300 10 h4 m56 0 h4 m0 0 h226 m23 -70 h-3"/> + <polygon points="449 10 457 6 457 14"/> + <polygon points="449 10 441 6 441 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#select-sublist" title="select_sublist" shape="rect">select_sublist</a></div> + <div>         ::= <a href="#derived-column" title="derived_column" shape="rect">derived_column</a> ( '.' '*' ( 'AS' '(' <a href="#all-fields-column-name-list" title="all_fields_column_name_list" shape="rect">all_fields_column_name_list</a> ')' )? | <a href="#as-clause" title="as_clause" shape="rect">as_clause</a> )?</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#select-list" title="select-list">select-list</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + qualified_asterisk +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="253" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#asterisked-identifier-chain" xlink:title="asterisked_identifier_chain" shape="rect"> + <rect x="43" y="1" width="128" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">asterisked_identifier_chain</text></a><rect x="179" y="1" width="8" height="18" class="terminal" rx="4"/> + <text class="terminal" x="183" y="13">.</text> + <rect x="195" y="1" width="14" height="18" class="terminal" rx="4"/> + <text class="terminal" x="199" y="13">*</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#all-fields-reference" xlink:title="all_fields_reference" shape="rect"> + <rect x="43" y="29" width="94" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">all_fields_reference</text></a><path class="line" d="m17 10 h2 m20 0 h4 m128 0 h4 m0 0 h4 m8 0 h4 m0 0 h4 m14 0 h4 m-194 0 h20 m174 0 h20 m-214 0 q10 0 10 10 m194 0 q0 -10 10 -10 m-204 10 v8 m194 0 v-8 m-194 8 q0 10 10 10 m174 0 q10 0 10 -10 m-184 10 h4 m94 0 h4 m0 0 h72 m23 -28 h-3"/> + <polygon points="243 10 251 6 251 14"/> + <polygon points="243 10 235 6 235 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#qualified-asterisk" title="qualified_asterisk" shape="rect">qualified_asterisk</a></div> + <div>         ::= <a href="#asterisked-identifier-chain" title="asterisked_identifier_chain" shape="rect">asterisked_identifier_chain</a> '.' '*'</div> + <div>           | <a href="#all-fields-reference" title="all_fields_reference" shape="rect">all_fields_reference</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Not referenced by any. + </div></td></tr></tbody></table> + + +====================================================================================================================== + asterisked_identifier_chain +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="133" height="49"> + <polygon points="9 38 1 34 1 42"/> + <polygon points="17 38 9 34 9 42"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#identifier" xlink:title="identifier" shape="rect"> + <rect x="43" y="29" width="46" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">identifier</text></a><rect x="43" y="1" width="8" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="13">.</text> + <path class="line" d="m17 38 h2 m20 0 h4 m46 0 h4 m-74 0 l20 0 m-1 0 q-9 0 -9 -10 l0 -8 q0 -10 10 -10 m54 28 l20 0 m-20 0 q10 0 10 -10 l0 -8 q0 -10 -10 -10 m-54 0 h4 m8 0 h4 m0 0 h38 m23 28 h-3"/> + <polygon points="123 38 131 34 131 42"/> + <polygon points="123 38 115 34 115 42"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#asterisked-identifier-chain" title="asterisked_identifier_chain" shape="rect">asterisked_identifier_chain</a></div> + <div>         ::= <a href="#identifier" title="identifier" shape="rect">identifier</a> ( '.' <a href="#identifier" title="identifier" shape="rect">identifier</a> )*</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#qualified-asterisk" title="qualified-asterisk">qualified-asterisk</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + derived_column +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="241" height="42"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#value-expression" xlink:title="value_expression" shape="rect"> + <rect x="23" y="1" width="90" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">value_expression</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#as-clause" xlink:title="as_clause" shape="rect"> + <rect x="141" y="22" width="56" height="18" class="nonterminal"/> + <text class="nonterminal" x="145" y="34">as_clause</text></a><path class="line" d="m17 10 h2 m0 0 h4 m90 0 h4 m20 0 h10 m0 0 h54 m-84 0 h20 m64 0 h20 m-104 0 q10 0 10 10 m84 0 q0 -10 10 -10 m-94 10 v1 m84 0 v-1 m-84 1 q0 10 10 10 m64 0 q10 0 10 -10 m-74 10 h4 m56 0 h4 m23 -21 h-3"/> + <polygon points="231 10 239 6 239 14"/> + <polygon points="231 10 223 6 223 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#derived-column" title="derived_column" shape="rect">derived_column</a></div> + <div>         ::= <a href="#value-expression" title="value_expression" shape="rect">value_expression</a> <a href="#as-clause" title="as_clause" shape="rect">as_clause</a>?</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#select-sublist" title="select-sublist">select-sublist</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + as_clause +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="161" height="42"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="43" y="22" width="20" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="34">AS</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#identifier" xlink:title="identifier" shape="rect"> + <rect x="91" y="1" width="46" height="18" class="nonterminal"/> + <text class="nonterminal" x="95" y="13">identifier</text></a><path class="line" d="m17 10 h2 m20 0 h10 m0 0 h18 m-48 0 h20 m28 0 h20 m-68 0 q10 0 10 10 m48 0 q0 -10 10 -10 m-58 10 v1 m48 0 v-1 m-48 1 q0 10 10 10 m28 0 q10 0 10 -10 m-38 10 h4 m20 0 h4 m20 -21 h4 m46 0 h4 m3 0 h-3"/> + <polygon points="151 10 159 6 159 14"/> + <polygon points="151 10 143 6 143 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#as-clause" title="as_clause" shape="rect">as_clause</a></div> + <div>         ::= 'AS'? <a href="#identifier" title="identifier" shape="rect">identifier</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#derived-column" title="derived-column">derived-column</a></li><li><a href="#select-sublist" title="select-sublist">select-sublist</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + all_fields_reference +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="467" height="42"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#value-expression-primary" xlink:title="value_expression_primary" shape="rect"> + <rect x="23" y="1" width="130" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">value_expression_primary</text></a><rect x="161" y="1" width="8" height="18" class="terminal" rx="4"/> + <text class="terminal" x="165" y="13">.</text> + <rect x="177" y="1" width="14" height="18" class="terminal" rx="4"/> + <text class="terminal" x="181" y="13">*</text> + <rect x="219" y="22" width="20" height="18" class="terminal" rx="4"/> + <text class="terminal" x="223" y="34">AS</text> + <rect x="247" y="22" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="251" y="34">(</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#all-fields-column-name-list" xlink:title="all_fields_column_name_list" shape="rect"> + <rect x="267" y="22" width="136" height="18" class="nonterminal"/> + <text class="nonterminal" x="271" y="34">all_fields_column_name_list</text></a><rect x="411" y="22" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="415" y="34">)</text> + <path class="line" d="m17 10 h2 m0 0 h4 m130 0 h4 m0 0 h4 m8 0 h4 m0 0 h4 m14 0 h4 m20 0 h10 m0 0 h202 m-232 0 h20 m212 0 h20 m-252 0 q10 0 10 10 m232 0 q0 -10 10 -10 m-242 10 v1 m232 0 v-1 m-232 1 q0 10 10 10 m212 0 q10 0 10 -10 m-222 10 h4 m20 0 h4 m0 0 h4 m12 0 h4 m0 0 h4 m136 0 h4 m0 0 h4 m12 0 h4 m23 -21 h-3"/> + <polygon points="457 10 465 6 465 14"/> + <polygon points="457 10 449 6 449 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#all-fields-reference" title="all_fields_reference" shape="rect">all_fields_reference</a></div> + <div>         ::= <a href="#value-expression-primary" title="value_expression_primary" shape="rect">value_expression_primary</a> '.' '*' ( 'AS' '(' <a href="#all-fields-column-name-list" title="all_fields_column_name_list" shape="rect">all_fields_column_name_list</a> ')' )?</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#qualified-asterisk" title="qualified-asterisk">qualified-asterisk</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + all_fields_column_name_list +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="139" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#column-name-list" xlink:title="column_name_list" shape="rect"> + <rect x="23" y="1" width="92" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">column_name_list</text></a><path class="line" d="m17 10 h2 m0 0 h4 m92 0 h4 m3 0 h-3"/> + <polygon points="129 10 137 6 137 14"/> + <polygon points="129 10 121 6 121 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#all-fields-column-name-list" title="all_fields_column_name_list" shape="rect">all_fields_column_name_list</a></div> + <div>         ::= <a href="#column-name-list" title="column_name_list" shape="rect">column_name_list</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#all-fields-reference" title="all-fields-reference">all-fields-reference</a></li><li><a href="#select-sublist" title="select-sublist">select-sublist</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + query_expression +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="731" height="70"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#with-clause" xlink:title="with_clause" shape="rect"> + <rect x="43" y="22" width="62" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="34">with_clause</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#query-expression-body" xlink:title="query_expression_body" shape="rect"> + <rect x="133" y="1" width="120" height="18" class="nonterminal"/> + <text class="nonterminal" x="137" y="13">query_expression_body</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#order-by-clause" xlink:title="order_by_clause" shape="rect"> + <rect x="281" y="22" width="86" height="18" class="nonterminal"/> + <text class="nonterminal" x="285" y="34">order_by_clause</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#result-offset-clause" xlink:title="result_offset_clause" shape="rect"> + <rect x="435" y="22" width="98" height="18" class="nonterminal"/> + <text class="nonterminal" x="439" y="34">result_offset_clause</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#fetch-first-clause" xlink:title="fetch_first_clause" shape="rect"> + <rect x="581" y="22" width="86" height="18" class="nonterminal"/> + <text class="nonterminal" x="585" y="34">fetch_first_clause</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#limit-clause" xlink:title="limit_clause" shape="rect"> + <rect x="415" y="50" width="60" height="18" class="nonterminal"/> + <text class="nonterminal" x="419" y="62">limit_clause</text></a><path class="line" d="m17 10 h2 m20 0 h10 m0 0 h60 m-90 0 h20 m70 0 h20 m-110 0 q10 0 10 10 m90 0 q0 -10 10 -10 m-100 10 v1 m90 0 v-1 m-90 1 q0 10 10 10 m70 0 q10 0 10 -10 m-80 10 h4 m62 0 h4 m20 -21 h4 m120 0 h4 m20 0 h10 m0 0 h84 m-114 0 h20 m94 0 h20 m-134 0 q10 0 10 10 m114 0 q0 -10 10 -10 m-124 10 v1 m114 0 v-1 m-114 1 q0 10 10 10 m94 0 q10 0 10 -10 m-104 10 h4 m86 0 h4 m60 -21 h10 m0 0 h96 m-126 0 h20 m106 0 h20 m-146 0 q10 0 10 10 m126 0 q0 -10 10 -10 m-136 10 v1 m126 0 v-1 m-126 1 q0 10 10 10 m106 0 q10 0 10 -10 m-116 10 h4 m98 0 h4 m40 -21 h10 m0 0 h84 m-114 0 h20 m94 0 h20 m-134 0 q10 0 10 10 m114 0 q0 -10 10 -10 m-124 10 v1 m114 0 v-1 m-114 1 q0 10 10 10 m94 0 q10 0 10 -10 m-104 10 h4 m86 0 h4 m-280 -21 h20 m280 0 h20 m-320 0 q10 0 10 10 m300 0 q0 -10 10 -10 m-310 10 v29 m300 0 v-29 m-300 29 q0 10 10 10 m280 0 q10 0 10 -10 m-290 10 h4 m60 0 h4 m0 0 h212 m23 -49 h-3"/> + <polygon points="721 10 729 6 729 14"/> + <polygon points="721 10 713 6 713 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#query-expression" title="query_expression" shape="rect">query_expression</a></div> + <div>         ::= <a href="#with-clause" title="with_clause" shape="rect">with_clause</a>? <a href="#query-expression-body" title="query_expression_body" shape="rect">query_expression_body</a> <a href="#order-by-clause" title="order_by_clause" shape="rect">order_by_clause</a>? ( <a href="#result-offset-clause" title="result_offset_clause" shape="rect">result_offset_clause</a>? <a href="#fetch-first-clause" title="fetch_first_clause" shape="rect">fetch_first_clause</a>? | <a href="#limit-clause" title="limit_clause" shape="rect">limit_clause</a> )</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#as-subquery-clause" title="as-subquery-clause">as-subquery-clause</a></li><li><a href="#cursor-specification" title="cursor-specification">cursor-specification</a></li><li><a href="#derived-table" title="derived-table">derived-table</a></li><li><a href="#from-subquery" title="from-subquery">from-subquery</a></li><li><a href="#subquery" title="subquery">subquery</a></li><li><a href="#view-definition" title="view-definition">view-definition</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + with_clause +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="241" height="42"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="34" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">WITH</text> + <rect x="85" y="22" width="60" height="18" class="terminal" rx="4"/> + <text class="terminal" x="89" y="34">RECURSIVE</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#with-list" xlink:title="with_list" shape="rect"> + <rect x="173" y="1" width="44" height="18" class="nonterminal"/> + <text class="nonterminal" x="177" y="13">with_list</text></a><path class="line" d="m17 10 h2 m0 0 h4 m34 0 h4 m20 0 h10 m0 0 h58 m-88 0 h20 m68 0 h20 m-108 0 q10 0 10 10 m88 0 q0 -10 10 -10 m-98 10 v1 m88 0 v-1 m-88 1 q0 10 10 10 m68 0 q10 0 10 -10 m-78 10 h4 m60 0 h4 m20 -21 h4 m44 0 h4 m3 0 h-3"/> + <polygon points="231 10 239 6 239 14"/> + <polygon points="231 10 223 6 223 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#with-clause" title="with_clause" shape="rect">with_clause</a></div> + <div>         ::= 'WITH' 'RECURSIVE'? <a href="#with-list" title="with_list" shape="rect">with_list</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#query-expression" title="query-expression">query-expression</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + with_list +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="175" height="49"> + <polygon points="9 38 1 34 1 42"/> + <polygon points="17 38 9 34 9 42"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#with-list-element" xlink:title="with_list_element" shape="rect"> + <rect x="43" y="29" width="88" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">with_list_element</text></a><rect x="43" y="1" width="8" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="13">,</text> + <path class="line" d="m17 38 h2 m20 0 h4 m88 0 h4 m-116 0 l20 0 m-1 0 q-9 0 -9 -10 l0 -8 q0 -10 10 -10 m96 28 l20 0 m-20 0 q10 0 10 -10 l0 -8 q0 -10 -10 -10 m-96 0 h4 m8 0 h4 m0 0 h80 m23 28 h-3"/> + <polygon points="165 38 173 34 173 42"/> + <polygon points="165 38 157 34 157 42"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#with-list" title="with_list" shape="rect">with_list</a></div> + <div>         ::= <a href="#with-list-element" title="with_list_element" shape="rect">with_list_element</a> ( ',' <a href="#with-list-element" title="with_list_element" shape="rect">with_list_element</a> )*</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#with-clause" title="with-clause">with-clause</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + with_list_element +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="525" height="42"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#identifier" xlink:title="identifier" shape="rect"> + <rect x="23" y="1" width="46" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">identifier</text></a><rect x="97" y="22" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="101" y="34">(</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#column-name-list" xlink:title="column_name_list" shape="rect"> + <rect x="117" y="22" width="92" height="18" class="nonterminal"/> + <text class="nonterminal" x="121" y="34">column_name_list</text></a><rect x="217" y="22" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="221" y="34">)</text> + <rect x="257" y="1" width="20" height="18" class="terminal" rx="4"/> + <text class="terminal" x="261" y="13">AS</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#subquery" xlink:title="subquery" shape="rect"> + <rect x="285" y="1" width="52" height="18" class="nonterminal"/> + <text class="nonterminal" x="289" y="13">subquery</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#search-or-cycle-clause" xlink:title="search_or_cycle_clause" shape="rect"> + <rect x="365" y="22" width="116" height="18" class="nonterminal"/> + <text class="nonterminal" x="369" y="34">search_or_cycle_clause</text></a><path class="line" d="m17 10 h2 m0 0 h4 m46 0 h4 m20 0 h10 m0 0 h130 m-160 0 h20 m140 0 h20 m-180 0 q10 0 10 10 m160 0 q0 -10 10 -10 m-170 10 v1 m160 0 v-1 m-160 1 q0 10 10 10 m140 0 q10 0 10 -10 m-150 10 h4 m12 0 h4 m0 0 h4 m92 0 h4 m0 0 h4 m12 0 h4 m20 -21 h4 m20 0 h4 m0 0 h4 m52 0 h4 m20 0 h10 m0 0 h114 m-144 0 h20 m124 0 h20 m-164 0 q10 0 10 10 m144 0 q0 -10 10 -10 m-154 10 v1 m144 0 v-1 m-144 1 q0 10 10 10 m124 0 q10 0 10 -10 m-134 10 h4 m116 0 h4 m23 -21 h-3"/> + <polygon points="515 10 523 6 523 14"/> + <polygon points="515 10 507 6 507 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#with-list-element" title="with_list_element" shape="rect">with_list_element</a></div> + <div>         ::= <a href="#identifier" title="identifier" shape="rect">identifier</a> ( '(' <a href="#column-name-list" title="column_name_list" shape="rect">column_name_list</a> ')' )? 'AS' <a href="#subquery" title="subquery" shape="rect">subquery</a> <a href="#search-or-cycle-clause" title="search_or_cycle_clause" shape="rect">search_or_cycle_clause</a>?</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#with-list" title="with-list">with-list</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + query_expression_body +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="417" height="98"> + <polygon points="9 87 1 83 1 91"/> + <polygon points="17 87 9 83 9 91"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#query-term" xlink:title="query_term" shape="rect"> + <rect x="43" y="78" width="64" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="90">query_term</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#corresponding-spec" xlink:title="corresponding_spec" shape="rect"> + <rect x="63" y="22" width="102" height="18" class="nonterminal"/> + <text class="nonterminal" x="67" y="34">corresponding_spec</text></a><rect x="213" y="22" width="24" height="18" class="terminal" rx="4"/> + <text class="terminal" x="217" y="34">ALL</text> + <rect x="213" y="50" width="50" height="18" class="terminal" rx="4"/> + <text class="terminal" x="217" y="62">DISTINCT</text> + <rect x="311" y="1" width="40" height="18" class="terminal" rx="4"/> + <text class="terminal" x="315" y="13">UNION</text> + <rect x="311" y="29" width="42" height="18" class="terminal" rx="4"/> + <text class="terminal" x="315" y="41">EXCEPT</text> + <path class="line" d="m17 87 h2 m20 0 h4 m64 0 h4 m0 0 h266 m-358 0 l20 0 m-1 0 q-9 0 -9 -10 l0 -57 q0 -10 10 -10 m338 77 l20 0 m-20 0 q10 0 10 -10 l0 -57 q0 -10 -10 -10 m-318 0 h10 m0 0 h100 m-130 0 h20 m110 0 h20 m-150 0 q10 0 10 10 m130 0 q0 -10 10 -10 m-140 10 v1 m130 0 v-1 m-130 1 q0 10 10 10 m110 0 q10 0 10 -10 m-120 10 h4 m102 0 h4 m40 -21 h10 m0 0 h48 m-78 0 h20 m58 0 h20 m-98 0 q10 0 10 10 m78 0 q0 -10 10 -10 m-88 10 v1 m78 0 v-1 m-78 1 q0 10 10 10 m58 0 q10 0 10 -10 m-68 10 h4 m24 0 h4 m0 0 h26 m-68 -10 v20 m78 0 v-20 m-78 20 v8 m78 0 v-8 m-78 8 q0 10 10 10 m58 0 q10 0 10 -10 m-68 10 h4 m50 0 h4 m40 -49 h4 m40 0 h4 m0 0 h2 m-70 0 h20 m50 0 h20 m-90 0 q10 0 10 10 m70 0 q0 -10 10 -10 m-80 10 v8 m70 0 v-8 m-70 8 q0 10 10 10 m50 0 q10 0 10 -10 m-60 10 h4 m42 0 h4 m43 49 h-3"/> + <polygon points="407 87 415 83 415 91"/> + <polygon points="407 87 399 83 399 91"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#query-expression-body" title="query_expression_body" shape="rect">query_expression_body</a></div> + <div>         ::= <a href="#query-term" title="query_term" shape="rect">query_term</a> ( ( 'UNION' | 'EXCEPT' ) ( 'ALL' | 'DISTINCT' )? <a href="#corresponding-spec" title="corresponding_spec" shape="rect">corresponding_spec</a>? <a href="#query-term" title="query_term" shape="rect">query_term</a> )*</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#query-expression" title="query-expression">query-expression</a></li><li><a href="#query-primary" title="query-primary">query-primary</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + query_term +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="393" height="98"> + <polygon points="9 87 1 83 1 91"/> + <polygon points="17 87 9 83 9 91"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#query-primary" xlink:title="query_primary" shape="rect"> + <rect x="43" y="78" width="76" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="90">query_primary</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#corresponding-spec" xlink:title="corresponding_spec" shape="rect"> + <rect x="63" y="22" width="102" height="18" class="nonterminal"/> + <text class="nonterminal" x="67" y="34">corresponding_spec</text></a><rect x="213" y="22" width="24" height="18" class="terminal" rx="4"/> + <text class="terminal" x="217" y="34">ALL</text> + <rect x="213" y="50" width="50" height="18" class="terminal" rx="4"/> + <text class="terminal" x="217" y="62">DISTINCT</text> + <rect x="291" y="1" width="58" height="18" class="terminal" rx="4"/> + <text class="terminal" x="295" y="13">INTERSECT</text> + <path class="line" d="m17 87 h2 m20 0 h4 m76 0 h4 m0 0 h230 m-334 0 l20 0 m-1 0 q-9 0 -9 -10 l0 -57 q0 -10 10 -10 m314 77 l20 0 m-20 0 q10 0 10 -10 l0 -57 q0 -10 -10 -10 m-294 0 h10 m0 0 h100 m-130 0 h20 m110 0 h20 m-150 0 q10 0 10 10 m130 0 q0 -10 10 -10 m-140 10 v1 m130 0 v-1 m-130 1 q0 10 10 10 m110 0 q10 0 10 -10 m-120 10 h4 m102 0 h4 m40 -21 h10 m0 0 h48 m-78 0 h20 m58 0 h20 m-98 0 q10 0 10 10 m78 0 q0 -10 10 -10 m-88 10 v1 m78 0 v-1 m-78 1 q0 10 10 10 m58 0 q10 0 10 -10 m-68 10 h4 m24 0 h4 m0 0 h26 m-68 -10 v20 m78 0 v-20 m-78 20 v8 m78 0 v-8 m-78 8 q0 10 10 10 m58 0 q10 0 10 -10 m-68 10 h4 m50 0 h4 m20 -49 h4 m58 0 h4 m23 77 h-3"/> + <polygon points="383 87 391 83 391 91"/> + <polygon points="383 87 375 83 375 91"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#query-term" title="query_term" shape="rect">query_term</a></div> + <div>         ::= <a href="#query-primary" title="query_primary" shape="rect">query_primary</a> ( 'INTERSECT' ( 'ALL' | 'DISTINCT' )? <a href="#corresponding-spec" title="corresponding_spec" shape="rect">corresponding_spec</a>? <a href="#query-primary" title="query_primary" shape="rect">query_primary</a> )*</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#query-expression-body" title="query-expression-body">query-expression-body</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + query_primary +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="701" height="112"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="43" y="1" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="13">(</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#query-expression-body" xlink:title="query_expression_body" shape="rect"> + <rect x="63" y="1" width="120" height="18" class="nonterminal"/> + <text class="nonterminal" x="67" y="13">query_expression_body</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#order-by-clause" xlink:title="order_by_clause" shape="rect"> + <rect x="211" y="22" width="86" height="18" class="nonterminal"/> + <text class="nonterminal" x="215" y="34">order_by_clause</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#limit-clause" xlink:title="limit_clause" shape="rect"> + <rect x="345" y="22" width="60" height="18" class="nonterminal"/> + <text class="nonterminal" x="349" y="34">limit_clause</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#result-offset-clause" xlink:title="result_offset_clause" shape="rect"> + <rect x="365" y="64" width="98" height="18" class="nonterminal"/> + <text class="nonterminal" x="369" y="76">result_offset_clause</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#fetch-first-clause" xlink:title="fetch_first_clause" shape="rect"> + <rect x="511" y="64" width="86" height="18" class="nonterminal"/> + <text class="nonterminal" x="515" y="76">fetch_first_clause</text></a><rect x="645" y="1" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="649" y="13">)</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#simple-table" xlink:title="simple_table" shape="rect"> + <rect x="43" y="92" width="68" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="104">simple_table</text></a><path class="line" d="m17 10 h2 m20 0 h4 m12 0 h4 m0 0 h4 m120 0 h4 m20 0 h10 m0 0 h84 m-114 0 h20 m94 0 h20 m-134 0 q10 0 10 10 m114 0 q0 -10 10 -10 m-124 10 v1 m114 0 v-1 m-114 1 q0 10 10 10 m94 0 q10 0 10 -10 m-104 10 h4 m86 0 h4 m40 -21 h10 m0 0 h270 m-300 0 h20 m280 0 h20 m-320 0 q10 0 10 10 m300 0 q0 -10 10 -10 m-310 10 v1 m300 0 v-1 m-300 1 q0 10 10 10 m280 0 q10 0 10 -10 m-290 10 h4 m60 0 h4 m0 0 h212 m-290 -10 v20 m300 0 v-20 m-300 20 v1 m300 0 v-1 m-300 1 q0 10 10 10 m280 0 q10 0 10 -10 m-270 10 h10 m0 0 h96 m-126 0 h20 m106 0 h20 m-146 0 q10 0 10 10 m126 0 q0 -10 10 -10 m-136 10 v1 m126 0 v-1 m-126 1 q0 10 10 10 m106 0 q10 0 10 -10 m-116 10 h4 m98 0 h4 m40 -21 h10 m0 0 h84 m-114 0 h20 m94 0 h20 m-134 0 q10 0 10 10 m114 0 q0 -10 10 -10 m-124 10 v1 m114 0 v-1 m-114 1 q0 10 10 10 m94 0 q10 0 10 -10 m-104 10 h4 m86 0 h4 m40 -63 h4 m12 0 h4 m-642 0 h20 m622 0 h20 m-662 0 q10 0 10 10 m642 0 q0 -10 10 -10 m-652 10 v71 m642 0 v-71 m-642 71 q0 10 10 10 m622 0 q10 0 10 -10 m-632 10 h4 m68 0 h4 m0 0 h546 m23 -91 h-3"/> + <polygon points="691 10 699 6 699 14"/> + <polygon points="691 10 683 6 683 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#query-primary" title="query_primary" shape="rect">query_primary</a></div> + <div>         ::= '(' <a href="#query-expression-body" title="query_expression_body" shape="rect">query_expression_body</a> <a href="#order-by-clause" title="order_by_clause" shape="rect">order_by_clause</a>? ( <a href="#limit-clause" title="limit_clause" shape="rect">limit_clause</a> | <a href="#result-offset-clause" title="result_offset_clause" shape="rect">result_offset_clause</a>? <a href="#fetch-first-clause" title="fetch_first_clause" shape="rect">fetch_first_clause</a>? )? ')'</div> + <div>           | <a href="#simple-table" title="simple_table" shape="rect">simple_table</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#query-term" title="query-term">query-term</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + simple_table +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="205" height="77"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#table-value-constructor" xlink:title="table_value_constructor" shape="rect"> + <rect x="43" y="1" width="118" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">table_value_constructor</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#explicit-table" xlink:title="explicit_table" shape="rect"> + <rect x="43" y="29" width="66" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">explicit_table</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#query-specification" xlink:title="query_specification" shape="rect"> + <rect x="43" y="57" width="94" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="69">query_specification</text></a><path class="line" d="m17 10 h2 m20 0 h4 m118 0 h4 m-146 0 h20 m126 0 h20 m-166 0 q10 0 10 10 m146 0 q0 -10 10 -10 m-156 10 v8 m146 0 v-8 m-146 8 q0 10 10 10 m126 0 q10 0 10 -10 m-136 10 h4 m66 0 h4 m0 0 h52 m-136 -10 v20 m146 0 v-20 m-146 20 v8 m146 0 v-8 m-146 8 q0 10 10 10 m126 0 q10 0 10 -10 m-136 10 h4 m94 0 h4 m0 0 h24 m23 -56 h-3"/> + <polygon points="195 10 203 6 203 14"/> + <polygon points="195 10 187 6 187 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#simple-table" title="simple_table" shape="rect">simple_table</a></div> + <div>         ::= <a href="#table-value-constructor" title="table_value_constructor" shape="rect">table_value_constructor</a></div> + <div>           | <a href="#explicit-table" title="explicit_table" shape="rect">explicit_table</a></div> + <div>           | <a href="#query-specification" title="query_specification" shape="rect">query_specification</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#query-primary" title="query-primary">query-primary</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + explicit_table +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="203" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="36" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">TABLE</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#table-or-query-name" xlink:title="table_or_query_name" shape="rect"> + <rect x="67" y="1" width="112" height="18" class="nonterminal"/> + <text class="nonterminal" x="71" y="13">table_or_query_name</text></a><path class="line" d="m17 10 h2 m0 0 h4 m36 0 h4 m0 0 h4 m112 0 h4 m3 0 h-3"/> + <polygon points="193 10 201 6 201 14"/> + <polygon points="193 10 185 6 185 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#explicit-table" title="explicit_table" shape="rect">explicit_table</a></div> + <div>         ::= 'TABLE' <a href="#table-or-query-name" title="table_or_query_name" shape="rect">table_or_query_name</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#simple-table" title="simple-table">simple-table</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + corresponding_spec +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="345" height="42"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="90" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">CORRESPONDING</text> + <rect x="141" y="22" width="20" height="18" class="terminal" rx="4"/> + <text class="terminal" x="145" y="34">BY</text> + <rect x="169" y="22" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="173" y="34">(</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#column-name-list" xlink:title="column_name_list" shape="rect"> + <rect x="189" y="22" width="92" height="18" class="nonterminal"/> + <text class="nonterminal" x="193" y="34">column_name_list</text></a><rect x="289" y="22" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="293" y="34">)</text> + <path class="line" d="m17 10 h2 m0 0 h4 m90 0 h4 m20 0 h10 m0 0 h158 m-188 0 h20 m168 0 h20 m-208 0 q10 0 10 10 m188 0 q0 -10 10 -10 m-198 10 v1 m188 0 v-1 m-188 1 q0 10 10 10 m168 0 q10 0 10 -10 m-178 10 h4 m20 0 h4 m0 0 h4 m12 0 h4 m0 0 h4 m92 0 h4 m0 0 h4 m12 0 h4 m23 -21 h-3"/> + <polygon points="335 10 343 6 343 14"/> + <polygon points="335 10 327 6 327 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#corresponding-spec" title="corresponding_spec" shape="rect">corresponding_spec</a></div> + <div>         ::= 'CORRESPONDING' ( 'BY' '(' <a href="#column-name-list" title="column_name_list" shape="rect">column_name_list</a> ')' )?</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#query-expression-body" title="query-expression-body">query-expression-body</a></li><li><a href="#query-term" title="query-term">query-term</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + order_by_clause +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="225" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="40" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">ORDER</text> + <rect x="71" y="1" width="20" height="18" class="terminal" rx="4"/> + <text class="terminal" x="75" y="13">BY</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#sort-specification-list" xlink:title="sort_specification_list" shape="rect"> + <rect x="99" y="1" width="102" height="18" class="nonterminal"/> + <text class="nonterminal" x="103" y="13">sort_specification_list</text></a><path class="line" d="m17 10 h2 m0 0 h4 m40 0 h4 m0 0 h4 m20 0 h4 m0 0 h4 m102 0 h4 m3 0 h-3"/> + <polygon points="215 10 223 6 223 14"/> + <polygon points="215 10 207 6 207 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#order-by-clause" title="order_by_clause" shape="rect">order_by_clause</a></div> + <div>         ::= 'ORDER' 'BY' <a href="#sort-specification-list" title="sort_specification_list" shape="rect">sort_specification_list</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#query-expression" title="query-expression">query-expression</a></li><li><a href="#query-primary" title="query-primary">query-primary</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + result_offset_clause +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="311" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="42" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">OFFSET</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#simple-value-specification" xlink:title="simple_value_specification" shape="rect"> + <rect x="73" y="1" width="128" height="18" class="nonterminal"/> + <text class="nonterminal" x="77" y="13">simple_value_specification</text></a><rect x="229" y="1" width="32" height="18" class="terminal" rx="4"/> + <text class="terminal" x="233" y="13">ROW</text> + <rect x="229" y="29" width="38" height="18" class="terminal" rx="4"/> + <text class="terminal" x="233" y="41">ROWS</text> + <path class="line" d="m17 10 h2 m0 0 h4 m42 0 h4 m0 0 h4 m128 0 h4 m20 0 h4 m32 0 h4 m0 0 h6 m-66 0 h20 m46 0 h20 m-86 0 q10 0 10 10 m66 0 q0 -10 10 -10 m-76 10 v8 m66 0 v-8 m-66 8 q0 10 10 10 m46 0 q10 0 10 -10 m-56 10 h4 m38 0 h4 m23 -28 h-3"/> + <polygon points="301 10 309 6 309 14"/> + <polygon points="301 10 293 6 293 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#result-offset-clause" title="result_offset_clause" shape="rect">result_offset_clause</a></div> + <div>         ::= 'OFFSET' <a href="#simple-value-specification" title="simple_value_specification" shape="rect">simple_value_specification</a> ( 'ROW' | 'ROWS' )</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#query-expression" title="query-expression">query-expression</a></li><li><a href="#query-primary" title="query-primary">query-primary</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + fetch_first_clause +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="469" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="36" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">FETCH</text> + <rect x="87" y="1" width="34" height="18" class="terminal" rx="4"/> + <text class="terminal" x="91" y="13">FIRST</text> + <rect x="87" y="29" width="32" height="18" class="terminal" rx="4"/> + <text class="terminal" x="91" y="41">NEXT</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#simple-value-specification" xlink:title="simple_value_specification" shape="rect"> + <rect x="169" y="22" width="128" height="18" class="nonterminal"/> + <text class="nonterminal" x="173" y="34">simple_value_specification</text></a><rect x="345" y="1" width="32" height="18" class="terminal" rx="4"/> + <text class="terminal" x="349" y="13">ROW</text> + <rect x="345" y="29" width="38" height="18" class="terminal" rx="4"/> + <text class="terminal" x="349" y="41">ROWS</text> + <rect x="411" y="1" width="34" height="18" class="terminal" rx="4"/> + <text class="terminal" x="415" y="13">ONLY</text> + <path class="line" d="m17 10 h2 m0 0 h4 m36 0 h4 m20 0 h4 m34 0 h4 m-62 0 h20 m42 0 h20 m-82 0 q10 0 10 10 m62 0 q0 -10 10 -10 m-72 10 v8 m62 0 v-8 m-62 8 q0 10 10 10 m42 0 q10 0 10 -10 m-52 10 h4 m32 0 h4 m0 0 h2 m40 -28 h10 m0 0 h126 m-156 0 h20 m136 0 h20 m-176 0 q10 0 10 10 m156 0 q0 -10 10 -10 m-166 10 v1 m156 0 v-1 m-156 1 q0 10 10 10 m136 0 q10 0 10 -10 m-146 10 h4 m128 0 h4 m40 -21 h4 m32 0 h4 m0 0 h6 m-66 0 h20 m46 0 h20 m-86 0 q10 0 10 10 m66 0 q0 -10 10 -10 m-76 10 v8 m66 0 v-8 m-66 8 q0 10 10 10 m46 0 q10 0 10 -10 m-56 10 h4 m38 0 h4 m20 -28 h4 m34 0 h4 m3 0 h-3"/> + <polygon points="459 10 467 6 467 14"/> + <polygon points="459 10 451 6 451 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#fetch-first-clause" title="fetch_first_clause" shape="rect">fetch_first_clause</a></div> + <div>         ::= 'FETCH' ( 'FIRST' | 'NEXT' ) <a href="#simple-value-specification" title="simple_value_specification" shape="rect">simple_value_specification</a>? ( 'ROW' | 'ROWS' ) 'ONLY'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#query-expression" title="query-expression">query-expression</a></li><li><a href="#query-primary" title="query-primary">query-primary</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + search_or_cycle_clause +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="273" height="70"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#search-clause" xlink:title="search_clause" shape="rect"> + <rect x="43" y="1" width="74" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">search_clause</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#cycle-clause" xlink:title="cycle_clause" shape="rect"> + <rect x="145" y="22" width="64" height="18" class="nonterminal"/> + <text class="nonterminal" x="149" y="34">cycle_clause</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#cycle-clause" xlink:title="cycle_clause" shape="rect"> + <rect x="43" y="50" width="64" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="62">cycle_clause</text></a><path class="line" d="m17 10 h2 m20 0 h4 m74 0 h4 m20 0 h10 m0 0 h62 m-92 0 h20 m72 0 h20 m-112 0 q10 0 10 10 m92 0 q0 -10 10 -10 m-102 10 v1 m92 0 v-1 m-92 1 q0 10 10 10 m72 0 q10 0 10 -10 m-82 10 h4 m64 0 h4 m-194 -21 h20 m194 0 h20 m-234 0 q10 0 10 10 m214 0 q0 -10 10 -10 m-224 10 v29 m214 0 v-29 m-214 29 q0 10 10 10 m194 0 q10 0 10 -10 m-204 10 h4 m64 0 h4 m0 0 h122 m23 -49 h-3"/> + <polygon points="263 10 271 6 271 14"/> + <polygon points="263 10 255 6 255 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#search-or-cycle-clause" title="search_or_cycle_clause" shape="rect">search_or_cycle_clause</a></div> + <div>         ::= <a href="#search-clause" title="search_clause" shape="rect">search_clause</a> <a href="#cycle-clause" title="cycle_clause" shape="rect">cycle_clause</a>?</div> + <div>           | <a href="#cycle-clause" title="cycle_clause" shape="rect">cycle_clause</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#with-list-element" title="with-list-element">with-list-element</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + search_clause +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="301" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="44" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">SEARCH</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#recursive-search-order" xlink:title="recursive_search_order" shape="rect"> + <rect x="75" y="1" width="116" height="18" class="nonterminal"/> + <text class="nonterminal" x="79" y="13">recursive_search_order</text></a><rect x="199" y="1" width="24" height="18" class="terminal" rx="4"/> + <text class="terminal" x="203" y="13">SET</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#identifier" xlink:title="identifier" shape="rect"> + <rect x="231" y="1" width="46" height="18" class="nonterminal"/> + <text class="nonterminal" x="235" y="13">identifier</text></a><path class="line" d="m17 10 h2 m0 0 h4 m44 0 h4 m0 0 h4 m116 0 h4 m0 0 h4 m24 0 h4 m0 0 h4 m46 0 h4 m3 0 h-3"/> + <polygon points="291 10 299 6 299 14"/> + <polygon points="291 10 283 6 283 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#search-clause" title="search_clause" shape="rect">search_clause</a></div> + <div>         ::= 'SEARCH' <a href="#recursive-search-order" title="recursive_search_order" shape="rect">recursive_search_order</a> 'SET' <a href="#identifier" title="identifier" shape="rect">identifier</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#search-or-cycle-clause" title="search-or-cycle-clause">search-or-cycle-clause</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + recursive_search_order +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="307" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="43" y="1" width="38" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="13">DEPTH</text> + <rect x="43" y="29" width="50" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="41">BREADTH</text> + <rect x="121" y="1" width="34" height="18" class="terminal" rx="4"/> + <text class="terminal" x="125" y="13">FIRST</text> + <rect x="163" y="1" width="20" height="18" class="terminal" rx="4"/> + <text class="terminal" x="167" y="13">BY</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#column-name-list" xlink:title="column_name_list" shape="rect"> + <rect x="191" y="1" width="92" height="18" class="nonterminal"/> + <text class="nonterminal" x="195" y="13">column_name_list</text></a><path class="line" d="m17 10 h2 m20 0 h4 m38 0 h4 m0 0 h12 m-78 0 h20 m58 0 h20 m-98 0 q10 0 10 10 m78 0 q0 -10 10 -10 m-88 10 v8 m78 0 v-8 m-78 8 q0 10 10 10 m58 0 q10 0 10 -10 m-68 10 h4 m50 0 h4 m20 -28 h4 m34 0 h4 m0 0 h4 m20 0 h4 m0 0 h4 m92 0 h4 m3 0 h-3"/> + <polygon points="297 10 305 6 305 14"/> + <polygon points="297 10 289 6 289 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#recursive-search-order" title="recursive_search_order" shape="rect">recursive_search_order</a></div> + <div>         ::= ( 'DEPTH' | 'BREADTH' ) 'FIRST' 'BY' <a href="#column-name-list" title="column_name_list" shape="rect">column_name_list</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#search-clause" title="search-clause">search-clause</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + cycle_clause +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="643" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="36" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">CYCLE</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#cycle-column-list" xlink:title="cycle_column_list" shape="rect"> + <rect x="67" y="1" width="86" height="18" class="nonterminal"/> + <text class="nonterminal" x="71" y="13">cycle_column_list</text></a><rect x="161" y="1" width="24" height="18" class="terminal" rx="4"/> + <text class="terminal" x="165" y="13">SET</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#identifier" xlink:title="identifier" shape="rect"> + <rect x="193" y="1" width="46" height="18" class="nonterminal"/> + <text class="nonterminal" x="197" y="13">identifier</text></a><rect x="247" y="1" width="20" height="18" class="terminal" rx="4"/> + <text class="terminal" x="251" y="13">TO</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#value-expression" xlink:title="value_expression" shape="rect"> + <rect x="275" y="1" width="90" height="18" class="nonterminal"/> + <text class="nonterminal" x="279" y="13">value_expression</text></a><rect x="373" y="1" width="48" height="18" class="terminal" rx="4"/> + <text class="terminal" x="377" y="13">DEFAULT</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#value-expression" xlink:title="value_expression" shape="rect"> + <rect x="429" y="1" width="90" height="18" class="nonterminal"/> + <text class="nonterminal" x="433" y="13">value_expression</text></a><rect x="527" y="1" width="38" height="18" class="terminal" rx="4"/> + <text class="terminal" x="531" y="13">USING</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#identifier" xlink:title="identifier" shape="rect"> + <rect x="573" y="1" width="46" height="18" class="nonterminal"/> + <text class="nonterminal" x="577" y="13">identifier</text></a><path class="line" d="m17 10 h2 m0 0 h4 m36 0 h4 m0 0 h4 m86 0 h4 m0 0 h4 m24 0 h4 m0 0 h4 m46 0 h4 m0 0 h4 m20 0 h4 m0 0 h4 m90 0 h4 m0 0 h4 m48 0 h4 m0 0 h4 m90 0 h4 m0 0 h4 m38 0 h4 m0 0 h4 m46 0 h4 m3 0 h-3"/> + <polygon points="633 10 641 6 641 14"/> + <polygon points="633 10 625 6 625 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#cycle-clause" title="cycle_clause" shape="rect">cycle_clause</a></div> + <div>         ::= 'CYCLE' <a href="#cycle-column-list" title="cycle_column_list" shape="rect">cycle_column_list</a> 'SET' <a href="#identifier" title="identifier" shape="rect">identifier</a> 'TO' <a href="#value-expression" title="value_expression" shape="rect">value_expression</a> 'DEFAULT' <a href="#value-expression" title="value_expression" shape="rect">value_expression</a> 'USING' <a href="#identifier" title="identifier" shape="rect">identifier</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#search-or-cycle-clause" title="search-or-cycle-clause">search-or-cycle-clause</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + cycle_column_list +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="133" height="49"> + <polygon points="9 38 1 34 1 42"/> + <polygon points="17 38 9 34 9 42"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#identifier" xlink:title="identifier" shape="rect"> + <rect x="43" y="29" width="46" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">identifier</text></a><rect x="43" y="1" width="8" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="13">,</text> + <path class="line" d="m17 38 h2 m20 0 h4 m46 0 h4 m-74 0 l20 0 m-1 0 q-9 0 -9 -10 l0 -8 q0 -10 10 -10 m54 28 l20 0 m-20 0 q10 0 10 -10 l0 -8 q0 -10 -10 -10 m-54 0 h4 m8 0 h4 m0 0 h38 m23 28 h-3"/> + <polygon points="123 38 131 34 131 42"/> + <polygon points="123 38 115 34 115 42"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#cycle-column-list" title="cycle_column_list" shape="rect">cycle_column_list</a></div> + <div>         ::= <a href="#identifier" title="identifier" shape="rect">identifier</a> ( ',' <a href="#identifier" title="identifier" shape="rect">identifier</a> )*</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#cycle-clause" title="cycle-clause">cycle-clause</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + subquery +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="179" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">(</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#query-expression" xlink:title="query_expression" shape="rect"> + <rect x="43" y="1" width="92" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">query_expression</text></a><rect x="143" y="1" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="147" y="13">)</text> + <path class="line" d="m17 10 h2 m0 0 h4 m12 0 h4 m0 0 h4 m92 0 h4 m0 0 h4 m12 0 h4 m3 0 h-3"/> + <polygon points="169 10 177 6 177 14"/> + <polygon points="169 10 161 6 161 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#subquery" title="subquery" shape="rect">subquery</a> ::= '(' <a href="#query-expression" title="query_expression" shape="rect">query_expression</a> ')'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#array-value-constructor-by-query" title="array-value-constructor-by-query">array-value-constructor-by-query</a></li><li><a href="#as-subquery-clause" title="as-subquery-clause">as-subquery-clause</a></li><li><a href="#derived-table" title="derived-table">derived-table</a></li><li><a href="#exists-predicate" title="exists-predicate">exists-predicate</a></li><li><a href="#explicit-row-value-constructor" title="explicit-row-value-constructor">explicit-row-value-constructor</a></li><li><a href="#in-predicate-value" title="in-predicate-value">in-predicate-value</a></li><li><a href="#lateral-derived-table" title="lateral-derived-table">lateral-derived-table</a></li><li><a href="#match-predicate-part-2" title="match-predicate-part-2">match-predicate-part-2</a></li><li><a href="#multiset-value-constructor-by-query" title="multiset-value-constructor-by-query">multiset-value-constructor-by-query</a></li><li><a href="#nonparenthesized-value-expression-primary" title="nonparenthesized-value-expression-primary">nonparenthesized-value-expression-primary</a></li><li><a href="#quantified-comparison-predicate-part-2" title="quantified-comparison-predicate-part-2">quantified-comparison-predicate-part-2</a></li><li><a href="#table-value-constructor-by-query" title="table-value-constructor-by-query">table-value-constructor-by-query</a></li><li><a href="#unique-predicate" title="unique-predicate">unique-predicate</a></li><li><a href="#with-list-element" title="with-list-element">with-list-element</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + predicate +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="403" height="518"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#exists-predicate" xlink:title="exists_predicate" shape="rect"> + <rect x="43" y="1" width="82" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">exists_predicate</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#unique-predicate" xlink:title="unique_predicate" shape="rect"> + <rect x="43" y="29" width="88" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">unique_predicate</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#row-value-predicand" xlink:title="row_value_predicand" shape="rect"> + <rect x="43" y="57" width="108" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="69">row_value_predicand</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#comparison-predicate" xlink:title="comparison_predicate" shape="rect"> + <rect x="179" y="78" width="110" height="18" class="nonterminal"/> + <text class="nonterminal" x="183" y="90">comparison_predicate</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#between-predicate" xlink:title="between_predicate" shape="rect"> + <rect x="179" y="106" width="98" height="18" class="nonterminal"/> + <text class="nonterminal" x="183" y="118">between_predicate</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#in-predicate" xlink:title="in_predicate" shape="rect"> + <rect x="179" y="134" width="64" height="18" class="nonterminal"/> + <text class="nonterminal" x="183" y="146">in_predicate</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#like-predicate" xlink:title="like_predicate" shape="rect"> + <rect x="179" y="162" width="70" height="18" class="nonterminal"/> + <text class="nonterminal" x="183" y="174">like_predicate</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#similar-predicate" xlink:title="similar_predicate" shape="rect"> + <rect x="179" y="190" width="84" height="18" class="nonterminal"/> + <text class="nonterminal" x="183" y="202">similar_predicate</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#regex-like-predicate" xlink:title="regex_like_predicate" shape="rect"> + <rect x="179" y="218" width="104" height="18" class="nonterminal"/> + <text class="nonterminal" x="183" y="230">regex_like_predicate</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#null-predicate" xlink:title="null_predicate" shape="rect"> + <rect x="179" y="246" width="72" height="18" class="nonterminal"/> + <text class="nonterminal" x="183" y="258">null_predicate</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#quantified-comparison-predicate" xlink:title="quantified_comparison_predicate" shape="rect"> + <rect x="179" y="274" width="160" height="18" class="nonterminal"/> + <text class="nonterminal" x="183" y="286">quantified_comparison_predicate</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#normalized-predicate" xlink:title="normalized_predicate" shape="rect"> + <rect x="179" y="302" width="108" height="18" class="nonterminal"/> + <text class="nonterminal" x="183" y="314">normalized_predicate</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#match-predicate" xlink:title="match_predicate" shape="rect"> + <rect x="179" y="330" width="86" height="18" class="nonterminal"/> + <text class="nonterminal" x="183" y="342">match_predicate</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#overlaps-predicate" xlink:title="overlaps_predicate" shape="rect"> + <rect x="179" y="358" width="96" height="18" class="nonterminal"/> + <text class="nonterminal" x="183" y="370">overlaps_predicate</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#distinct-predicate" xlink:title="distinct_predicate" shape="rect"> + <rect x="179" y="386" width="86" height="18" class="nonterminal"/> + <text class="nonterminal" x="183" y="398">distinct_predicate</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#member-predicate" xlink:title="member_predicate" shape="rect"> + <rect x="179" y="414" width="98" height="18" class="nonterminal"/> + <text class="nonterminal" x="183" y="426">member_predicate</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#submultiset-predicate" xlink:title="submultiset_predicate" shape="rect"> + <rect x="179" y="442" width="110" height="18" class="nonterminal"/> + <text class="nonterminal" x="183" y="454">submultiset_predicate</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#set-predicate" xlink:title="set_predicate" shape="rect"> + <rect x="179" y="470" width="72" height="18" class="nonterminal"/> + <text class="nonterminal" x="183" y="482">set_predicate</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#type-predicate" xlink:title="type_predicate" shape="rect"> + <rect x="179" y="498" width="78" height="18" class="nonterminal"/> + <text class="nonterminal" x="183" y="510">type_predicate</text></a><path class="line" d="m17 10 h2 m20 0 h4 m82 0 h4 m0 0 h234 m-344 0 h20 m324 0 h20 m-364 0 q10 0 10 10 m344 0 q0 -10 10 -10 m-354 10 v8 m344 0 v-8 m-344 8 q0 10 10 10 m324 0 q10 0 10 -10 m-334 10 h4 m88 0 h4 m0 0 h228 m-334 -10 v20 m344 0 v-20 m-344 20 v8 m344 0 v-8 m-344 8 q0 10 10 10 m324 0 q10 0 10 -10 m-334 10 h4 m108 0 h4 m20 0 h10 m0 0 h158 m-188 0 h20 m168 0 h20 m-208 0 q10 0 10 10 m188 0 q0 -10 10 -10 m-198 10 v1 m188 0 v-1 m-188 1 q0 10 10 10 m168 0 q10 0 10 -10 m-178 10 h4 m110 0 h4 m0 0 h50 m-178 -10 v20 m188 0 v-20 m-188 20 v8 m188 0 v-8 m-188 8 q0 10 10 10 m168 0 q10 0 10 -10 m-178 10 h4 m98 0 h4 m0 0 h62 m-178 -10 v20 m188 0 v-20 m-188 20 v8 m188 0 v-8 m-188 8 q0 10 10 10 m168 0 q10 0 10 -10 m-178 10 h4 m64 0 h4 m0 0 h96 m-178 -10 v20 m188 0 v-20 m-188 20 v8 m188 0 v-8 m-188 8 q0 10 10 10 m168 0 q10 0 10 -10 m-178 10 h4 m70 0 h4 m0 0 h90 m-178 -10 v20 m188 0 v-20 m-188 20 v8 m188 0 v-8 m-188 8 q0 10 10 10 m168 0 q10 0 10 -10 m-178 10 h4 m84 0 h4 m0 0 h76 m-178 -10 v20 m188 0 v-20 m-188 20 v8 m188 0 v-8 m-188 8 q0 10 10 10 m168 0 q10 0 10 -10 m-178 10 h4 m104 0 h4 m0 0 h56 m-178 -10 v20 m188 0 v-20 m-188 20 v8 m188 0 v-8 m-188 8 q0 10 10 10 m168 0 q10 0 10 -10 m-178 10 h4 m72 0 h4 m0 0 h88 m-178 -10 v20 m188 0 v-20 m-188 20 v8 m188 0 v-8 m-188 8 q0 10 10 10 m168 0 q10 0 10 -10 m-178 10 h4 m160 0 h4 m-178 -10 v20 m188 0 v-20 m-188 20 v8 m188 0 v-8 m-188 8 q0 10 10 10 m168 0 q10 0 10 -10 m-178 10 h4 m108 0 h4 m0 0 h52 m-178 -10 v20 m188 0 v-20 m-188 20 v8 m188 0 v-8 m-188 8 q0 10 10 10 m168 0 q10 0 10 -10 m-178 10 h4 m86 0 h4 m0 0 h74 m-178 -10 v20 m188 0 v-20 m-188 20 v8 m188 0 v-8 m-188 8 q0 10 10 10 m168 0 q10 0 10 -10 m-178 10 h4 m96 0 h4 m0 0 h64 m-178 -10 v20 m188 0 v-20 m-188 20 v8 m188 0 v-8 m-188 8 q0 10 10 10 m168 0 q10 0 10 -10 m-178 10 h4 m86 0 h4 m0 0 h74 m-178 -10 v20 m188 0 v-20 m-188 20 v8 m188 0 v-8 m-188 8 q0 10 10 10 m168 0 q10 0 10 -10 m-178 10 h4 m98 0 h4 m0 0 h62 m-178 -10 v20 m188 0 v-20 m-188 20 v8 m188 0 v-8 m-188 8 q0 10 10 10 m168 0 q10 0 10 -10 m-178 10 h4 m110 0 h4 m0 0 h50 m-178 -10 v20 m188 0 v-20 m-188 20 v8 m188 0 v-8 m-188 8 q0 10 10 10 m168 0 q10 0 10 -10 m-178 10 h4 m72 0 h4 m0 0 h88 m-178 -10 v20 m188 0 v-20 m-188 20 v8 m188 0 v-8 m-188 8 q0 10 10 10 m168 0 q10 0 10 -10 m-178 10 h4 m78 0 h4 m0 0 h82 m43 -497 h-3"/> + <polygon points="393 10 401 6 401 14"/> + <polygon points="393 10 385 6 385 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#predicate" title="predicate" shape="rect">predicate</a></div> + <div>         ::= <a href="#exists-predicate" title="exists_predicate" shape="rect">exists_predicate</a></div> + <div>           | <a href="#unique-predicate" title="unique_predicate" shape="rect">unique_predicate</a></div> + <div>           | <a href="#row-value-predicand" title="row_value_predicand" shape="rect">row_value_predicand</a> ( <a href="#comparison-predicate" title="comparison_predicate" shape="rect">comparison_predicate</a> | <a href="#between-predicate" title="between_predicate" shape="rect">between_predicate</a> | <a href="#in-predicate" title="in_predicate" shape="rect">in_predicate</a> | <a href="#like-predicate" title="like_predicate" shape="rect">like_predicate</a> | <a href="#similar-predicate" title="similar_predicate" shape="rect">similar_predicate</a> | <a href="#regex-like-predicate" title="regex_like_predicate" shape="rect">regex_like_predicate</a> | <a href="#null-predicate" title="null_predicate" shape="rect">null_predicate</a> | <a href="#quantified-comparison-predicate" title="quantified_comparison_predicate" shape="rect">quantified_comparison_predicate</a> | <a href="#normalized-predicate" title="normalized_predicate" shape="rect">normalized_predicate</a> | <a href="#match-predicate" title="match_predicate" shape="rect">match_predicate</a> | <a href="#overlaps-predicate" title="overlaps_predicate" shape="rect">overlaps_predicate</a> | <a href="#distinct-predicate" title="distinct_predicate" shape="rect">distinct_predicate</a> | <a href="#member-predicate" title="member_predicate" shape="rect">member_predicate</a> | <a href="#submultiset-predicate" title="submultiset_predicate" shape="rect">submultiset_predicate</a> | <a href="#set-predicate" title="set_predicate" shape="rect">set_predicate</a> | <a href="#type-predicate" title="type_predicate" shape="rect">type_predicate</a> )?</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#boolean-primary" title="boolean-primary">boolean-primary</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + comparison_predicate +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="193" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#comparison-predicate-part-2" xlink:title="comparison_predicate_part_2" shape="rect"> + <rect x="23" y="1" width="146" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">comparison_predicate_part_2</text></a><path class="line" d="m17 10 h2 m0 0 h4 m146 0 h4 m3 0 h-3"/> + <polygon points="183 10 191 6 191 14"/> + <polygon points="183 10 175 6 175 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#comparison-predicate" title="comparison_predicate" shape="rect">comparison_predicate</a></div> + <div>         ::= <a href="#comparison-predicate-part-2" title="comparison_predicate_part_2" shape="rect">comparison_predicate_part_2</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#predicate" title="predicate">predicate</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + comparison_predicate_part_2 +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="217" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#comp-op" xlink:title="comp_op" shape="rect"> + <rect x="23" y="1" width="54" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">comp_op</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#row-value-predicand" xlink:title="row_value_predicand" shape="rect"> + <rect x="85" y="1" width="108" height="18" class="nonterminal"/> + <text class="nonterminal" x="89" y="13">row_value_predicand</text></a><path class="line" d="m17 10 h2 m0 0 h4 m54 0 h4 m0 0 h4 m108 0 h4 m3 0 h-3"/> + <polygon points="207 10 215 6 215 14"/> + <polygon points="207 10 199 6 199 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#comparison-predicate-part-2" title="comparison_predicate_part_2" shape="rect">comparison_predicate_part_2</a></div> + <div>         ::= <a href="#comp-op" title="comp_op" shape="rect">comp_op</a> <a href="#row-value-predicand" title="row_value_predicand" shape="rect">row_value_predicand</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#comparison-predicate" title="comparison-predicate">comparison-predicate</a></li><li><a href="#when-operand" title="when-operand">when-operand</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + comp_op +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="109" height="189"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="43" y="1" width="14" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="13">=</text> + <rect x="43" y="29" width="22" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="41"><></text> + <rect x="43" y="57" width="14" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="69"><</text> + <rect x="43" y="85" width="14" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="97">></text> + <rect x="43" y="113" width="22" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="125"><=</text> + <rect x="43" y="141" width="22" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="153">>=</text> + <rect x="43" y="169" width="16" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="181">!=</text> + <path class="line" d="m17 10 h2 m20 0 h4 m14 0 h4 m0 0 h8 m-50 0 h20 m30 0 h20 m-70 0 q10 0 10 10 m50 0 q0 -10 10 -10 m-60 10 v8 m50 0 v-8 m-50 8 q0 10 10 10 m30 0 q10 0 10 -10 m-40 10 h4 m22 0 h4 m-40 -10 v20 m50 0 v-20 m-50 20 v8 m50 0 v-8 m-50 8 q0 10 10 10 m30 0 q10 0 10 -10 m-40 10 h4 m14 0 h4 m0 0 h8 m-40 -10 v20 m50 0 v-20 m-50 20 v8 m50 0 v-8 m-50 8 q0 10 10 10 m30 0 q10 0 10 -10 m-40 10 h4 m14 0 h4 m0 0 h8 m-40 -10 v20 m50 0 v-20 m-50 20 v8 m50 0 v-8 m-50 8 q0 10 10 10 m30 0 q10 0 10 -10 m-40 10 h4 m22 0 h4 m-40 -10 v20 m50 0 v-20 m-50 20 v8 m50 0 v-8 m-50 8 q0 10 10 10 m30 0 q10 0 10 -10 m-40 10 h4 m22 0 h4 m-40 -10 v20 m50 0 v-20 m-50 20 v8 m50 0 v-8 m-50 8 q0 10 10 10 m30 0 q10 0 10 -10 m-40 10 h4 m16 0 h4 m0 0 h6 m23 -168 h-3"/> + <polygon points="99 10 107 6 107 14"/> + <polygon points="99 10 91 6 91 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#comp-op" title="comp_op" shape="rect">comp_op</a>  ::= '='</div> + <div>           | '<>'</div> + <div>           | '<'</div> + <div>           | '>'</div> + <div>           | '<='</div> + <div>           | '>='</div> + <div>           | '!='</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#comparison-predicate-part-2" title="comparison-predicate-part-2">comparison-predicate-part-2</a></li><li><a href="#quantified-comparison-predicate-part-2" title="quantified-comparison-predicate-part-2">quantified-comparison-predicate-part-2</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + between_predicate +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="181" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#between-predicate-part-2" xlink:title="between_predicate_part_2" shape="rect"> + <rect x="23" y="1" width="134" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">between_predicate_part_2</text></a><path class="line" d="m17 10 h2 m0 0 h4 m134 0 h4 m3 0 h-3"/> + <polygon points="171 10 179 6 179 14"/> + <polygon points="171 10 163 6 163 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#between-predicate" title="between_predicate" shape="rect">between_predicate</a></div> + <div>         ::= <a href="#between-predicate-part-2" title="between_predicate_part_2" shape="rect">between_predicate_part_2</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#predicate" title="predicate">predicate</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + between_predicate_part_2 +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="559" height="70"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="43" y="22" width="28" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="34">NOT</text> + <rect x="99" y="1" width="52" height="18" class="terminal" rx="4"/> + <text class="terminal" x="103" y="13">BETWEEN</text> + <rect x="179" y="22" width="68" height="18" class="terminal" rx="4"/> + <text class="terminal" x="183" y="34">ASYMMETRIC</text> + <rect x="179" y="50" width="62" height="18" class="terminal" rx="4"/> + <text class="terminal" x="183" y="62">SYMMETRIC</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#row-value-predicand" xlink:title="row_value_predicand" shape="rect"> + <rect x="275" y="1" width="108" height="18" class="nonterminal"/> + <text class="nonterminal" x="279" y="13">row_value_predicand</text></a><rect x="391" y="1" width="28" height="18" class="terminal" rx="4"/> + <text class="terminal" x="395" y="13">AND</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#row-value-predicand" xlink:title="row_value_predicand" shape="rect"> + <rect x="427" y="1" width="108" height="18" class="nonterminal"/> + <text class="nonterminal" x="431" y="13">row_value_predicand</text></a><path class="line" d="m17 10 h2 m20 0 h10 m0 0 h26 m-56 0 h20 m36 0 h20 m-76 0 q10 0 10 10 m56 0 q0 -10 10 -10 m-66 10 v1 m56 0 v-1 m-56 1 q0 10 10 10 m36 0 q10 0 10 -10 m-46 10 h4 m28 0 h4 m20 -21 h4 m52 0 h4 m20 0 h10 m0 0 h66 m-96 0 h20 m76 0 h20 m-116 0 q10 0 10 10 m96 0 q0 -10 10 -10 m-106 10 v1 m96 0 v-1 m-96 1 q0 10 10 10 m76 0 q10 0 10 -10 m-86 10 h4 m68 0 h4 m-86 -10 v20 m96 0 v-20 m-96 20 v8 m96 0 v-8 m-96 8 q0 10 10 10 m76 0 q10 0 10 -10 m-86 10 h4 m62 0 h4 m0 0 h6 m20 -49 h4 m108 0 h4 m0 0 h4 m28 0 h4 m0 0 h4 m108 0 h4 m3 0 h-3"/> + <polygon points="549 10 557 6 557 14"/> + <polygon points="549 10 541 6 541 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#between-predicate-part-2" title="between_predicate_part_2" shape="rect">between_predicate_part_2</a></div> + <div>         ::= 'NOT'? 'BETWEEN' ( 'ASYMMETRIC' | 'SYMMETRIC' )? <a href="#row-value-predicand" title="row_value_predicand" shape="rect">row_value_predicand</a> 'AND' <a href="#row-value-predicand" title="row_value_predicand" shape="rect">row_value_predicand</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#between-predicate" title="between-predicate">between-predicate</a></li><li><a href="#when-operand" title="when-operand">when-operand</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + in_predicate +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="147" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#in-predicate-part-2" xlink:title="in_predicate_part_2" shape="rect"> + <rect x="23" y="1" width="100" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">in_predicate_part_2</text></a><path class="line" d="m17 10 h2 m0 0 h4 m100 0 h4 m3 0 h-3"/> + <polygon points="137 10 145 6 145 14"/> + <polygon points="137 10 129 6 129 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#in-predicate" title="in_predicate" shape="rect">in_predicate</a></div> + <div>         ::= <a href="#in-predicate-part-2" title="in_predicate_part_2" shape="rect">in_predicate_part_2</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#predicate" title="predicate">predicate</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + in_predicate_part_2 +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="243" height="42"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="43" y="22" width="28" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="34">NOT</text> + <rect x="99" y="1" width="18" height="18" class="terminal" rx="4"/> + <text class="terminal" x="103" y="13">IN</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#in-predicate-value" xlink:title="in_predicate_value" shape="rect"> + <rect x="125" y="1" width="94" height="18" class="nonterminal"/> + <text class="nonterminal" x="129" y="13">in_predicate_value</text></a><path class="line" d="m17 10 h2 m20 0 h10 m0 0 h26 m-56 0 h20 m36 0 h20 m-76 0 q10 0 10 10 m56 0 q0 -10 10 -10 m-66 10 v1 m56 0 v-1 m-56 1 q0 10 10 10 m36 0 q10 0 10 -10 m-46 10 h4 m28 0 h4 m20 -21 h4 m18 0 h4 m0 0 h4 m94 0 h4 m3 0 h-3"/> + <polygon points="233 10 241 6 241 14"/> + <polygon points="233 10 225 6 225 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#in-predicate-part-2" title="in_predicate_part_2" shape="rect">in_predicate_part_2</a></div> + <div>         ::= 'NOT'? 'IN' <a href="#in-predicate-value" title="in_predicate_value" shape="rect">in_predicate_value</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#in-predicate" title="in-predicate">in-predicate</a></li><li><a href="#when-operand" title="when-operand">when-operand</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + in_predicate_value +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="191" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="43" y="1" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="13">(</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#in-value-list" xlink:title="in_value_list" shape="rect"> + <rect x="63" y="1" width="64" height="18" class="nonterminal"/> + <text class="nonterminal" x="67" y="13">in_value_list</text></a><rect x="135" y="1" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="139" y="13">)</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#subquery" xlink:title="subquery" shape="rect"> + <rect x="43" y="29" width="52" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">subquery</text></a><path class="line" d="m17 10 h2 m20 0 h4 m12 0 h4 m0 0 h4 m64 0 h4 m0 0 h4 m12 0 h4 m-132 0 h20 m112 0 h20 m-152 0 q10 0 10 10 m132 0 q0 -10 10 -10 m-142 10 v8 m132 0 v-8 m-132 8 q0 10 10 10 m112 0 q10 0 10 -10 m-122 10 h4 m52 0 h4 m0 0 h52 m23 -28 h-3"/> + <polygon points="181 10 189 6 189 14"/> + <polygon points="181 10 173 6 173 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#in-predicate-value" title="in_predicate_value" shape="rect">in_predicate_value</a></div> + <div>         ::= '(' <a href="#in-value-list" title="in_value_list" shape="rect">in_value_list</a> ')'</div> + <div>           | <a href="#subquery" title="subquery" shape="rect">subquery</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#in-predicate-part-2" title="in-predicate-part-2">in-predicate-part-2</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + in_value_list +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="199" height="49"> + <polygon points="9 38 1 34 1 42"/> + <polygon points="17 38 9 34 9 42"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#row-value-expression" xlink:title="row_value_expression" shape="rect"> + <rect x="43" y="29" width="112" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">row_value_expression</text></a><rect x="43" y="1" width="8" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="13">,</text> + <path class="line" d="m17 38 h2 m20 0 h4 m112 0 h4 m-140 0 l20 0 m-1 0 q-9 0 -9 -10 l0 -8 q0 -10 10 -10 m120 28 l20 0 m-20 0 q10 0 10 -10 l0 -8 q0 -10 -10 -10 m-120 0 h4 m8 0 h4 m0 0 h104 m23 28 h-3"/> + <polygon points="189 38 197 34 197 42"/> + <polygon points="189 38 181 34 181 42"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#in-value-list" title="in_value_list" shape="rect">in_value_list</a></div> + <div>         ::= <a href="#row-value-expression" title="row_value_expression" shape="rect">row_value_expression</a> ( ',' <a href="#row-value-expression" title="row_value_expression" shape="rect">row_value_expression</a> )*</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#in-predicate-value" title="in-predicate-value">in-predicate-value</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + like_predicate +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="205" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#character-like-predicate" xlink:title="character_like_predicate" shape="rect"> + <rect x="43" y="1" width="118" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">character_like_predicate</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#octet-like-predicate" xlink:title="octet_like_predicate" shape="rect"> + <rect x="43" y="29" width="100" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">octet_like_predicate</text></a><path class="line" d="m17 10 h2 m20 0 h4 m118 0 h4 m-146 0 h20 m126 0 h20 m-166 0 q10 0 10 10 m146 0 q0 -10 10 -10 m-156 10 v8 m146 0 v-8 m-146 8 q0 10 10 10 m126 0 q10 0 10 -10 m-136 10 h4 m100 0 h4 m0 0 h18 m23 -28 h-3"/> + <polygon points="195 10 203 6 203 14"/> + <polygon points="195 10 187 6 187 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#like-predicate" title="like_predicate" shape="rect">like_predicate</a></div> + <div>         ::= <a href="#character-like-predicate" title="character_like_predicate" shape="rect">character_like_predicate</a></div> + <div>           | <a href="#octet-like-predicate" title="octet_like_predicate" shape="rect">octet_like_predicate</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#predicate" title="predicate">predicate</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + character_like_predicate +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="201" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#character-like-predicate-part-2" xlink:title="character_like_predicate_part_2" shape="rect"> + <rect x="23" y="1" width="154" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">character_like_predicate_part_2</text></a><path class="line" d="m17 10 h2 m0 0 h4 m154 0 h4 m3 0 h-3"/> + <polygon points="191 10 199 6 199 14"/> + <polygon points="191 10 183 6 183 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#character-like-predicate" title="character_like_predicate" shape="rect">character_like_predicate</a></div> + <div>         ::= <a href="#character-like-predicate-part-2" title="character_like_predicate_part_2" shape="rect">character_like_predicate_part_2</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#like-predicate" title="like-predicate">like-predicate</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + character_like_predicate_part_2 +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="533" height="42"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="43" y="22" width="28" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="34">NOT</text> + <rect x="99" y="1" width="28" height="18" class="terminal" rx="4"/> + <text class="terminal" x="103" y="13">LIKE</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#character-value-expression" xlink:title="character_value_expression" shape="rect"> + <rect x="135" y="1" width="138" height="18" class="nonterminal"/> + <text class="nonterminal" x="139" y="13">character_value_expression</text></a><rect x="301" y="22" width="42" height="18" class="terminal" rx="4"/> + <text class="terminal" x="305" y="34">ESCAPE</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#character-value-expression" xlink:title="character_value_expression" shape="rect"> + <rect x="351" y="22" width="138" height="18" class="nonterminal"/> + <text class="nonterminal" x="355" y="34">character_value_expression</text></a><path class="line" d="m17 10 h2 m20 0 h10 m0 0 h26 m-56 0 h20 m36 0 h20 m-76 0 q10 0 10 10 m56 0 q0 -10 10 -10 m-66 10 v1 m56 0 v-1 m-56 1 q0 10 10 10 m36 0 q10 0 10 -10 m-46 10 h4 m28 0 h4 m20 -21 h4 m28 0 h4 m0 0 h4 m138 0 h4 m20 0 h10 m0 0 h186 m-216 0 h20 m196 0 h20 m-236 0 q10 0 10 10 m216 0 q0 -10 10 -10 m-226 10 v1 m216 0 v-1 m-216 1 q0 10 10 10 m196 0 q10 0 10 -10 m-206 10 h4 m42 0 h4 m0 0 h4 m138 0 h4 m23 -21 h-3"/> + <polygon points="523 10 531 6 531 14"/> + <polygon points="523 10 515 6 515 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#character-like-predicate-part-2" title="character_like_predicate_part_2" shape="rect">character_like_predicate_part_2</a></div> + <div>         ::= 'NOT'? 'LIKE' <a href="#character-value-expression" title="character_value_expression" shape="rect">character_value_expression</a> ( 'ESCAPE' <a href="#character-value-expression" title="character_value_expression" shape="rect">character_value_expression</a> )?</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#character-like-predicate" title="character-like-predicate">character-like-predicate</a></li><li><a href="#when-operand" title="when-operand">when-operand</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + octet_like_predicate +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="183" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#octet-like-predicate-part-2" xlink:title="octet_like_predicate_part_2" shape="rect"> + <rect x="23" y="1" width="136" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">octet_like_predicate_part_2</text></a><path class="line" d="m17 10 h2 m0 0 h4 m136 0 h4 m3 0 h-3"/> + <polygon points="173 10 181 6 181 14"/> + <polygon points="173 10 165 6 165 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#octet-like-predicate" title="octet_like_predicate" shape="rect">octet_like_predicate</a></div> + <div>         ::= <a href="#octet-like-predicate-part-2" title="octet_like_predicate_part_2" shape="rect">octet_like_predicate_part_2</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#like-predicate" title="like-predicate">like-predicate</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + octet_like_predicate_part_2 +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="501" height="42"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="43" y="22" width="28" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="34">NOT</text> + <rect x="99" y="1" width="28" height="18" class="terminal" rx="4"/> + <text class="terminal" x="103" y="13">LIKE</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#binary-value-expression" xlink:title="binary_value_expression" shape="rect"> + <rect x="135" y="1" width="122" height="18" class="nonterminal"/> + <text class="nonterminal" x="139" y="13">binary_value_expression</text></a><rect x="285" y="22" width="42" height="18" class="terminal" rx="4"/> + <text class="terminal" x="289" y="34">ESCAPE</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#binary-value-expression" xlink:title="binary_value_expression" shape="rect"> + <rect x="335" y="22" width="122" height="18" class="nonterminal"/> + <text class="nonterminal" x="339" y="34">binary_value_expression</text></a><path class="line" d="m17 10 h2 m20 0 h10 m0 0 h26 m-56 0 h20 m36 0 h20 m-76 0 q10 0 10 10 m56 0 q0 -10 10 -10 m-66 10 v1 m56 0 v-1 m-56 1 q0 10 10 10 m36 0 q10 0 10 -10 m-46 10 h4 m28 0 h4 m20 -21 h4 m28 0 h4 m0 0 h4 m122 0 h4 m20 0 h10 m0 0 h170 m-200 0 h20 m180 0 h20 m-220 0 q10 0 10 10 m200 0 q0 -10 10 -10 m-210 10 v1 m200 0 v-1 m-200 1 q0 10 10 10 m180 0 q10 0 10 -10 m-190 10 h4 m42 0 h4 m0 0 h4 m122 0 h4 m23 -21 h-3"/> + <polygon points="491 10 499 6 499 14"/> + <polygon points="491 10 483 6 483 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#octet-like-predicate-part-2" title="octet_like_predicate_part_2" shape="rect">octet_like_predicate_part_2</a></div> + <div>         ::= 'NOT'? 'LIKE' <a href="#binary-value-expression" title="binary_value_expression" shape="rect">binary_value_expression</a> ( 'ESCAPE' <a href="#binary-value-expression" title="binary_value_expression" shape="rect">binary_value_expression</a> )?</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#octet-like-predicate" title="octet-like-predicate">octet-like-predicate</a></li><li><a href="#when-operand" title="when-operand">when-operand</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + similar_predicate +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="167" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#similar-predicate-part-2" xlink:title="similar_predicate_part_2" shape="rect"> + <rect x="23" y="1" width="120" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">similar_predicate_part_2</text></a><path class="line" d="m17 10 h2 m0 0 h4 m120 0 h4 m3 0 h-3"/> + <polygon points="157 10 165 6 165 14"/> + <polygon points="157 10 149 6 149 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#similar-predicate" title="similar_predicate" shape="rect">similar_predicate</a></div> + <div>         ::= <a href="#similar-predicate-part-2" title="similar_predicate_part_2" shape="rect">similar_predicate_part_2</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#predicate" title="predicate">predicate</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + similar_predicate_part_2 +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="579" height="42"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="43" y="22" width="28" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="34">NOT</text> + <rect x="99" y="1" width="46" height="18" class="terminal" rx="4"/> + <text class="terminal" x="103" y="13">SIMILAR</text> + <rect x="153" y="1" width="20" height="18" class="terminal" rx="4"/> + <text class="terminal" x="157" y="13">TO</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#character-value-expression" xlink:title="character_value_expression" shape="rect"> + <rect x="181" y="1" width="138" height="18" class="nonterminal"/> + <text class="nonterminal" x="185" y="13">character_value_expression</text></a><rect x="347" y="22" width="42" height="18" class="terminal" rx="4"/> + <text class="terminal" x="351" y="34">ESCAPE</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#character-value-expression" xlink:title="character_value_expression" shape="rect"> + <rect x="397" y="22" width="138" height="18" class="nonterminal"/> + <text class="nonterminal" x="401" y="34">character_value_expression</text></a><path class="line" d="m17 10 h2 m20 0 h10 m0 0 h26 m-56 0 h20 m36 0 h20 m-76 0 q10 0 10 10 m56 0 q0 -10 10 -10 m-66 10 v1 m56 0 v-1 m-56 1 q0 10 10 10 m36 0 q10 0 10 -10 m-46 10 h4 m28 0 h4 m20 -21 h4 m46 0 h4 m0 0 h4 m20 0 h4 m0 0 h4 m138 0 h4 m20 0 h10 m0 0 h186 m-216 0 h20 m196 0 h20 m-236 0 q10 0 10 10 m216 0 q0 -10 10 -10 m-226 10 v1 m216 0 v-1 m-216 1 q0 10 10 10 m196 0 q10 0 10 -10 m-206 10 h4 m42 0 h4 m0 0 h4 m138 0 h4 m23 -21 h-3"/> + <polygon points="569 10 577 6 577 14"/> + <polygon points="569 10 561 6 561 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#similar-predicate-part-2" title="similar_predicate_part_2" shape="rect">similar_predicate_part_2</a></div> + <div>         ::= 'NOT'? 'SIMILAR' 'TO' <a href="#character-value-expression" title="character_value_expression" shape="rect">character_value_expression</a> ( 'ESCAPE' <a href="#character-value-expression" title="character_value_expression" shape="rect">character_value_expression</a> )?</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#similar-predicate" title="similar-predicate">similar-predicate</a></li><li><a href="#when-operand" title="when-operand">when-operand</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + regex_like_predicate +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="187" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#regex-like-predicate-part-2" xlink:title="regex_like_predicate_part_2" shape="rect"> + <rect x="23" y="1" width="140" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">regex_like_predicate_part_2</text></a><path class="line" d="m17 10 h2 m0 0 h4 m140 0 h4 m3 0 h-3"/> + <polygon points="177 10 185 6 185 14"/> + <polygon points="177 10 169 6 169 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#regex-like-predicate" title="regex_like_predicate" shape="rect">regex_like_predicate</a></div> + <div>         ::= <a href="#regex-like-predicate-part-2" title="regex_like_predicate_part_2" shape="rect">regex_like_predicate_part_2</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#predicate" title="predicate">predicate</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + regex_like_predicate_part_2 +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="557" height="42"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="43" y="22" width="28" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="34">NOT</text> + <rect x="99" y="1" width="64" height="18" class="terminal" rx="4"/> + <text class="terminal" x="103" y="13">LIKE_REGEX</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#character-value-expression" xlink:title="character_value_expression" shape="rect"> + <rect x="171" y="1" width="138" height="18" class="nonterminal"/> + <text class="nonterminal" x="175" y="13">character_value_expression</text></a><rect x="337" y="22" width="30" height="18" class="terminal" rx="4"/> + <text class="terminal" x="341" y="34">FLAG</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#character-value-expression" xlink:title="character_value_expression" shape="rect"> + <rect x="375" y="22" width="138" height="18" class="nonterminal"/> + <text class="nonterminal" x="379" y="34">character_value_expression</text></a><path class="line" d="m17 10 h2 m20 0 h10 m0 0 h26 m-56 0 h20 m36 0 h20 m-76 0 q10 0 10 10 m56 0 q0 -10 10 -10 m-66 10 v1 m56 0 v-1 m-56 1 q0 10 10 10 m36 0 q10 0 10 -10 m-46 10 h4 m28 0 h4 m20 -21 h4 m64 0 h4 m0 0 h4 m138 0 h4 m20 0 h10 m0 0 h174 m-204 0 h20 m184 0 h20 m-224 0 q10 0 10 10 m204 0 q0 -10 10 -10 m-214 10 v1 m204 0 v-1 m-204 1 q0 10 10 10 m184 0 q10 0 10 -10 m-194 10 h4 m30 0 h4 m0 0 h4 m138 0 h4 m23 -21 h-3"/> + <polygon points="547 10 555 6 555 14"/> + <polygon points="547 10 539 6 539 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#regex-like-predicate-part-2" title="regex_like_predicate_part_2" shape="rect">regex_like_predicate_part_2</a></div> + <div>         ::= 'NOT'? 'LIKE_REGEX' <a href="#character-value-expression" title="character_value_expression" shape="rect">character_value_expression</a> ( 'FLAG' <a href="#character-value-expression" title="character_value_expression" shape="rect">character_value_expression</a> )?</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#regex-like-predicate" title="regex-like-predicate">regex-like-predicate</a></li><li><a href="#when-operand" title="when-operand">when-operand</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + null_predicate +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="155" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#null-predicate-part-2" xlink:title="null_predicate_part_2" shape="rect"> + <rect x="23" y="1" width="108" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">null_predicate_part_2</text></a><path class="line" d="m17 10 h2 m0 0 h4 m108 0 h4 m3 0 h-3"/> + <polygon points="145 10 153 6 153 14"/> + <polygon points="145 10 137 6 137 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#null-predicate" title="null_predicate" shape="rect">null_predicate</a></div> + <div>         ::= <a href="#null-predicate-part-2" title="null_predicate_part_2" shape="rect">null_predicate_part_2</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#predicate" title="predicate">predicate</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + null_predicate_part_2 +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="181" height="42"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="18" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">IS</text> + <rect x="69" y="22" width="28" height="18" class="terminal" rx="4"/> + <text class="terminal" x="73" y="34">NOT</text> + <rect x="125" y="1" width="32" height="18" class="terminal" rx="4"/> + <text class="terminal" x="129" y="13">NULL</text> + <path class="line" d="m17 10 h2 m0 0 h4 m18 0 h4 m20 0 h10 m0 0 h26 m-56 0 h20 m36 0 h20 m-76 0 q10 0 10 10 m56 0 q0 -10 10 -10 m-66 10 v1 m56 0 v-1 m-56 1 q0 10 10 10 m36 0 q10 0 10 -10 m-46 10 h4 m28 0 h4 m20 -21 h4 m32 0 h4 m3 0 h-3"/> + <polygon points="171 10 179 6 179 14"/> + <polygon points="171 10 163 6 163 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#null-predicate-part-2" title="null_predicate_part_2" shape="rect">null_predicate_part_2</a></div> + <div>         ::= 'IS' 'NOT'? 'NULL'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#null-predicate" title="null-predicate">null-predicate</a></li><li><a href="#when-operand" title="when-operand">when-operand</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + quantified_comparison_predicate +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="243" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#quantified-comparison-predicate-part-2" xlink:title="quantified_comparison_predicate_part_2" shape="rect"> + <rect x="23" y="1" width="196" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">quantified_comparison_predicate_part_2</text></a><path class="line" d="m17 10 h2 m0 0 h4 m196 0 h4 m3 0 h-3"/> + <polygon points="233 10 241 6 241 14"/> + <polygon points="233 10 225 6 225 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#quantified-comparison-predicate" title="quantified_comparison_predicate" shape="rect">quantified_comparison_predicate</a></div> + <div>         ::= <a href="#quantified-comparison-predicate-part-2" title="quantified_comparison_predicate_part_2" shape="rect">quantified_comparison_predicate_part_2</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#predicate" title="predicate">predicate</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + quantified_comparison_predicate_part_2 +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="245" height="77"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#comp-op" xlink:title="comp_op" shape="rect"> + <rect x="23" y="1" width="54" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">comp_op</text></a><rect x="105" y="1" width="24" height="18" class="terminal" rx="4"/> + <text class="terminal" x="109" y="13">ALL</text> + <rect x="105" y="29" width="36" height="18" class="terminal" rx="4"/> + <text class="terminal" x="109" y="41">SOME</text> + <rect x="105" y="57" width="26" height="18" class="terminal" rx="4"/> + <text class="terminal" x="109" y="69">ANY</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#subquery" xlink:title="subquery" shape="rect"> + <rect x="169" y="1" width="52" height="18" class="nonterminal"/> + <text class="nonterminal" x="173" y="13">subquery</text></a><path class="line" d="m17 10 h2 m0 0 h4 m54 0 h4 m20 0 h4 m24 0 h4 m0 0 h12 m-64 0 h20 m44 0 h20 m-84 0 q10 0 10 10 m64 0 q0 -10 10 -10 m-74 10 v8 m64 0 v-8 m-64 8 q0 10 10 10 m44 0 q10 0 10 -10 m-54 10 h4 m36 0 h4 m-54 -10 v20 m64 0 v-20 m-64 20 v8 m64 0 v-8 m-64 8 q0 10 10 10 m44 0 q10 0 10 -10 m-54 10 h4 m26 0 h4 m0 0 h10 m20 -56 h4 m52 0 h4 m3 0 h-3"/> + <polygon points="235 10 243 6 243 14"/> + <polygon points="235 10 227 6 227 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#quantified-comparison-predicate-part-2" title="quantified_comparison_predicate_part_2" shape="rect">quantified_comparison_predicate_part_2</a></div> + <div>         ::= <a href="#comp-op" title="comp_op" shape="rect">comp_op</a> ( 'ALL' | 'SOME' | 'ANY' ) <a href="#subquery" title="subquery" shape="rect">subquery</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#quantified-comparison-predicate" title="quantified-comparison-predicate">quantified-comparison-predicate</a></li><li><a href="#when-operand" title="when-operand">when-operand</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + exists_predicate +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="147" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="40" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">EXISTS</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#subquery" xlink:title="subquery" shape="rect"> + <rect x="71" y="1" width="52" height="18" class="nonterminal"/> + <text class="nonterminal" x="75" y="13">subquery</text></a><path class="line" d="m17 10 h2 m0 0 h4 m40 0 h4 m0 0 h4 m52 0 h4 m3 0 h-3"/> + <polygon points="137 10 145 6 145 14"/> + <polygon points="137 10 129 6 129 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#exists-predicate" title="exists_predicate" shape="rect">exists_predicate</a></div> + <div>         ::= 'EXISTS' <a href="#subquery" title="subquery" shape="rect">subquery</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#predicate" title="predicate">predicate</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + unique_predicate +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="151" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="44" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">UNIQUE</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#subquery" xlink:title="subquery" shape="rect"> + <rect x="75" y="1" width="52" height="18" class="nonterminal"/> + <text class="nonterminal" x="79" y="13">subquery</text></a><path class="line" d="m17 10 h2 m0 0 h4 m44 0 h4 m0 0 h4 m52 0 h4 m3 0 h-3"/> + <polygon points="141 10 149 6 149 14"/> + <polygon points="141 10 133 6 133 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#unique-predicate" title="unique_predicate" shape="rect">unique_predicate</a></div> + <div>         ::= 'UNIQUE' <a href="#subquery" title="subquery" shape="rect">subquery</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#predicate" title="predicate">predicate</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + normalized_predicate +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="191" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#normalized-predicate-part-2" xlink:title="normalized_predicate_part_2" shape="rect"> + <rect x="23" y="1" width="144" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">normalized_predicate_part_2</text></a><path class="line" d="m17 10 h2 m0 0 h4 m144 0 h4 m3 0 h-3"/> + <polygon points="181 10 189 6 189 14"/> + <polygon points="181 10 173 6 173 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#normalized-predicate" title="normalized_predicate" shape="rect">normalized_predicate</a></div> + <div>         ::= <a href="#normalized-predicate-part-2" title="normalized_predicate_part_2" shape="rect">normalized_predicate_part_2</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#predicate" title="predicate">predicate</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + normalized_predicate_part_2 +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="335" height="42"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="18" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">IS</text> + <rect x="69" y="22" width="28" height="18" class="terminal" rx="4"/> + <text class="terminal" x="73" y="34">NOT</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#normal-form" xlink:title="normal_form" shape="rect"> + <rect x="145" y="22" width="68" height="18" class="nonterminal"/> + <text class="nonterminal" x="149" y="34">normal_form</text></a><rect x="241" y="1" width="70" height="18" class="terminal" rx="4"/> + <text class="terminal" x="245" y="13">NORMALIZED</text> + <path class="line" d="m17 10 h2 m0 0 h4 m18 0 h4 m20 0 h10 m0 0 h26 m-56 0 h20 m36 0 h20 m-76 0 q10 0 10 10 m56 0 q0 -10 10 -10 m-66 10 v1 m56 0 v-1 m-56 1 q0 10 10 10 m36 0 q10 0 10 -10 m-46 10 h4 m28 0 h4 m40 -21 h10 m0 0 h66 m-96 0 h20 m76 0 h20 m-116 0 q10 0 10 10 m96 0 q0 -10 10 -10 m-106 10 v1 m96 0 v-1 m-96 1 q0 10 10 10 m76 0 q10 0 10 -10 m-86 10 h4 m68 0 h4 m20 -21 h4 m70 0 h4 m3 0 h-3"/> + <polygon points="325 10 333 6 333 14"/> + <polygon points="325 10 317 6 317 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#normalized-predicate-part-2" title="normalized_predicate_part_2" shape="rect">normalized_predicate_part_2</a></div> + <div>         ::= 'IS' 'NOT'? <a href="#normal-form" title="normal_form" shape="rect">normal_form</a>? 'NORMALIZED'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#normalized-predicate" title="normalized-predicate">normalized-predicate</a></li><li><a href="#when-operand" title="when-operand">when-operand</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + match_predicate +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="169" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#match-predicate-part-2" xlink:title="match_predicate_part_2" shape="rect"> + <rect x="23" y="1" width="122" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">match_predicate_part_2</text></a><path class="line" d="m17 10 h2 m0 0 h4 m122 0 h4 m3 0 h-3"/> + <polygon points="159 10 167 6 167 14"/> + <polygon points="159 10 151 6 151 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#match-predicate" title="match_predicate" shape="rect">match_predicate</a></div> + <div>         ::= <a href="#match-predicate-part-2" title="match_predicate_part_2" shape="rect">match_predicate_part_2</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#predicate" title="predicate">predicate</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + match_predicate_part_2 +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="333" height="98"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="40" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">MATCH</text> + <rect x="91" y="22" width="44" height="18" class="terminal" rx="4"/> + <text class="terminal" x="95" y="34">UNIQUE</text> + <rect x="183" y="22" width="42" height="18" class="terminal" rx="4"/> + <text class="terminal" x="187" y="34">SIMPLE</text> + <rect x="183" y="50" width="46" height="18" class="terminal" rx="4"/> + <text class="terminal" x="187" y="62">PARTIAL</text> + <rect x="183" y="78" width="30" height="18" class="terminal" rx="4"/> + <text class="terminal" x="187" y="90">FULL</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#subquery" xlink:title="subquery" shape="rect"> + <rect x="257" y="1" width="52" height="18" class="nonterminal"/> + <text class="nonterminal" x="261" y="13">subquery</text></a><path class="line" d="m17 10 h2 m0 0 h4 m40 0 h4 m20 0 h10 m0 0 h42 m-72 0 h20 m52 0 h20 m-92 0 q10 0 10 10 m72 0 q0 -10 10 -10 m-82 10 v1 m72 0 v-1 m-72 1 q0 10 10 10 m52 0 q10 0 10 -10 m-62 10 h4 m44 0 h4 m40 -21 h10 m0 0 h44 m-74 0 h20 m54 0 h20 m-94 0 q10 0 10 10 m74 0 q0 -10 10 -10 m-84 10 v1 m74 0 v-1 m-74 1 q0 10 10 10 m54 0 q10 0 10 -10 m-64 10 h4 m42 0 h4 m0 0 h4 m-64 -10 v20 m74 0 v-20 m-74 20 v8 m74 0 v-8 m-74 8 q0 10 10 10 m54 0 q10 0 10 -10 m-64 10 h4 m46 0 h4 m-64 -10 v20 m74 0 v-20 m-74 20 v8 m74 0 v-8 m-74 8 q0 10 10 10 m54 0 q10 0 10 -10 m-64 10 h4 m30 0 h4 m0 0 h16 m20 -77 h4 m52 0 h4 m3 0 h-3"/> + <polygon points="323 10 331 6 331 14"/> + <polygon points="323 10 315 6 315 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#match-predicate-part-2" title="match_predicate_part_2" shape="rect">match_predicate_part_2</a></div> + <div>         ::= 'MATCH' 'UNIQUE'? ( 'SIMPLE' | 'PARTIAL' | 'FULL' )? <a href="#subquery" title="subquery" shape="rect">subquery</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#match-predicate" title="match-predicate">match-predicate</a></li><li><a href="#when-operand" title="when-operand">when-operand</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + overlaps_predicate +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="179" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#overlaps-predicate-part-2" xlink:title="overlaps_predicate_part_2" shape="rect"> + <rect x="23" y="1" width="132" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">overlaps_predicate_part_2</text></a><path class="line" d="m17 10 h2 m0 0 h4 m132 0 h4 m3 0 h-3"/> + <polygon points="169 10 177 6 177 14"/> + <polygon points="169 10 161 6 161 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#overlaps-predicate" title="overlaps_predicate" shape="rect">overlaps_predicate</a></div> + <div>         ::= <a href="#overlaps-predicate-part-2" title="overlaps_predicate_part_2" shape="rect">overlaps_predicate_part_2</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#predicate" title="predicate">predicate</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + overlaps_predicate_part_1 +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="167" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#row-value-predicand-1" xlink:title="row_value_predicand_1" shape="rect"> + <rect x="23" y="1" width="120" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">row_value_predicand_1</text></a><path class="line" d="m17 10 h2 m0 0 h4 m120 0 h4 m3 0 h-3"/> + <polygon points="157 10 165 6 165 14"/> + <polygon points="157 10 149 6 149 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#overlaps-predicate-part-1" title="overlaps_predicate_part_1" shape="rect">overlaps_predicate_part_1</a></div> + <div>         ::= <a href="#row-value-predicand-1" title="row_value_predicand_1" shape="rect">row_value_predicand_1</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#case-operand" title="case-operand">case-operand</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + overlaps_predicate_part_2 +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="231" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="56" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">OVERLAPS</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#row-value-predicand-2" xlink:title="row_value_predicand_2" shape="rect"> + <rect x="87" y="1" width="120" height="18" class="nonterminal"/> + <text class="nonterminal" x="91" y="13">row_value_predicand_2</text></a><path class="line" d="m17 10 h2 m0 0 h4 m56 0 h4 m0 0 h4 m120 0 h4 m3 0 h-3"/> + <polygon points="221 10 229 6 229 14"/> + <polygon points="221 10 213 6 213 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#overlaps-predicate-part-2" title="overlaps_predicate_part_2" shape="rect">overlaps_predicate_part_2</a></div> + <div>         ::= 'OVERLAPS' <a href="#row-value-predicand-2" title="row_value_predicand_2" shape="rect">row_value_predicand_2</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#overlaps-predicate" title="overlaps-predicate">overlaps-predicate</a></li><li><a href="#when-operand" title="when-operand">when-operand</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + row_value_predicand_1 +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="155" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#row-value-predicand" xlink:title="row_value_predicand" shape="rect"> + <rect x="23" y="1" width="108" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">row_value_predicand</text></a><path class="line" d="m17 10 h2 m0 0 h4 m108 0 h4 m3 0 h-3"/> + <polygon points="145 10 153 6 153 14"/> + <polygon points="145 10 137 6 137 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#row-value-predicand-1" title="row_value_predicand_1" shape="rect">row_value_predicand_1</a></div> + <div>         ::= <a href="#row-value-predicand" title="row_value_predicand" shape="rect">row_value_predicand</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#overlaps-predicate-part-1" title="overlaps-predicate-part-1">overlaps-predicate-part-1</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + row_value_predicand_2 +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="155" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#row-value-predicand" xlink:title="row_value_predicand" shape="rect"> + <rect x="23" y="1" width="108" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">row_value_predicand</text></a><path class="line" d="m17 10 h2 m0 0 h4 m108 0 h4 m3 0 h-3"/> + <polygon points="145 10 153 6 153 14"/> + <polygon points="145 10 137 6 137 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#row-value-predicand-2" title="row_value_predicand_2" shape="rect">row_value_predicand_2</a></div> + <div>         ::= <a href="#row-value-predicand" title="row_value_predicand" shape="rect">row_value_predicand</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#overlaps-predicate-part-2" title="overlaps-predicate-part-2">overlaps-predicate-part-2</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + distinct_predicate +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="171" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#distinct-predicate-part-2" xlink:title="distinct_predicate_part_2" shape="rect"> + <rect x="23" y="1" width="124" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">distinct_predicate_part_2</text></a><path class="line" d="m17 10 h2 m0 0 h4 m124 0 h4 m3 0 h-3"/> + <polygon points="161 10 169 6 169 14"/> + <polygon points="161 10 153 6 153 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#distinct-predicate" title="distinct_predicate" shape="rect">distinct_predicate</a></div> + <div>         ::= <a href="#distinct-predicate-part-2" title="distinct_predicate_part_2" shape="rect">distinct_predicate_part_2</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#predicate" title="predicate">predicate</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + distinct_predicate_part_2 +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="371" height="42"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="18" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">IS</text> + <rect x="69" y="22" width="28" height="18" class="terminal" rx="4"/> + <text class="terminal" x="73" y="34">NOT</text> + <rect x="125" y="1" width="50" height="18" class="terminal" rx="4"/> + <text class="terminal" x="129" y="13">DISTINCT</text> + <rect x="183" y="1" width="36" height="18" class="terminal" rx="4"/> + <text class="terminal" x="187" y="13">FROM</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#row-value-predicand-4" xlink:title="row_value_predicand_4" shape="rect"> + <rect x="227" y="1" width="120" height="18" class="nonterminal"/> + <text class="nonterminal" x="231" y="13">row_value_predicand_4</text></a><path class="line" d="m17 10 h2 m0 0 h4 m18 0 h4 m20 0 h10 m0 0 h26 m-56 0 h20 m36 0 h20 m-76 0 q10 0 10 10 m56 0 q0 -10 10 -10 m-66 10 v1 m56 0 v-1 m-56 1 q0 10 10 10 m36 0 q10 0 10 -10 m-46 10 h4 m28 0 h4 m20 -21 h4 m50 0 h4 m0 0 h4 m36 0 h4 m0 0 h4 m120 0 h4 m3 0 h-3"/> + <polygon points="361 10 369 6 369 14"/> + <polygon points="361 10 353 6 353 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#distinct-predicate-part-2" title="distinct_predicate_part_2" shape="rect">distinct_predicate_part_2</a></div> + <div>         ::= 'IS' 'NOT'? 'DISTINCT' 'FROM' <a href="#row-value-predicand-4" title="row_value_predicand_4" shape="rect">row_value_predicand_4</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#distinct-predicate" title="distinct-predicate">distinct-predicate</a></li><li><a href="#when-operand" title="when-operand">when-operand</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + row_value_predicand_3 +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="155" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#row-value-predicand" xlink:title="row_value_predicand" shape="rect"> + <rect x="23" y="1" width="108" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">row_value_predicand</text></a><path class="line" d="m17 10 h2 m0 0 h4 m108 0 h4 m3 0 h-3"/> + <polygon points="145 10 153 6 153 14"/> + <polygon points="145 10 137 6 137 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#row-value-predicand-3" title="row_value_predicand_3" shape="rect">row_value_predicand_3</a></div> + <div>         ::= <a href="#row-value-predicand" title="row_value_predicand" shape="rect">row_value_predicand</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Not referenced by any. + </div></td></tr></tbody></table> + + +====================================================================================================================== + row_value_predicand_4 +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="155" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#row-value-predicand" xlink:title="row_value_predicand" shape="rect"> + <rect x="23" y="1" width="108" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">row_value_predicand</text></a><path class="line" d="m17 10 h2 m0 0 h4 m108 0 h4 m3 0 h-3"/> + <polygon points="145 10 153 6 153 14"/> + <polygon points="145 10 137 6 137 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#row-value-predicand-4" title="row_value_predicand_4" shape="rect">row_value_predicand_4</a></div> + <div>         ::= <a href="#row-value-predicand" title="row_value_predicand" shape="rect">row_value_predicand</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#distinct-predicate-part-2" title="distinct-predicate-part-2">distinct-predicate-part-2</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + member_predicate +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="181" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#member-predicate-part-2" xlink:title="member_predicate_part_2" shape="rect"> + <rect x="23" y="1" width="134" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">member_predicate_part_2</text></a><path class="line" d="m17 10 h2 m0 0 h4 m134 0 h4 m3 0 h-3"/> + <polygon points="171 10 179 6 179 14"/> + <polygon points="171 10 163 6 163 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#member-predicate" title="member_predicate" shape="rect">member_predicate</a></div> + <div>         ::= <a href="#member-predicate-part-2" title="member_predicate_part_2" shape="rect">member_predicate_part_2</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#predicate" title="predicate">predicate</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + member_predicate_part_2 +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="377" height="42"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="43" y="22" width="28" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="34">NOT</text> + <rect x="99" y="1" width="48" height="18" class="terminal" rx="4"/> + <text class="terminal" x="103" y="13">MEMBER</text> + <rect x="175" y="22" width="20" height="18" class="terminal" rx="4"/> + <text class="terminal" x="179" y="34">OF</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#multiset-value-expression" xlink:title="multiset_value_expression" shape="rect"> + <rect x="223" y="1" width="130" height="18" class="nonterminal"/> + <text class="nonterminal" x="227" y="13">multiset_value_expression</text></a><path class="line" d="m17 10 h2 m20 0 h10 m0 0 h26 m-56 0 h20 m36 0 h20 m-76 0 q10 0 10 10 m56 0 q0 -10 10 -10 m-66 10 v1 m56 0 v-1 m-56 1 q0 10 10 10 m36 0 q10 0 10 -10 m-46 10 h4 m28 0 h4 m20 -21 h4 m48 0 h4 m20 0 h10 m0 0 h18 m-48 0 h20 m28 0 h20 m-68 0 q10 0 10 10 m48 0 q0 -10 10 -10 m-58 10 v1 m48 0 v-1 m-48 1 q0 10 10 10 m28 0 q10 0 10 -10 m-38 10 h4 m20 0 h4 m20 -21 h4 m130 0 h4 m3 0 h-3"/> + <polygon points="367 10 375 6 375 14"/> + <polygon points="367 10 359 6 359 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#member-predicate-part-2" title="member_predicate_part_2" shape="rect">member_predicate_part_2</a></div> + <div>         ::= 'NOT'? 'MEMBER' 'OF'? <a href="#multiset-value-expression" title="multiset_value_expression" shape="rect">multiset_value_expression</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#member-predicate" title="member-predicate">member-predicate</a></li><li><a href="#when-operand" title="when-operand">when-operand</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + submultiset_predicate +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="193" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#submultiset-predicate-part-2" xlink:title="submultiset_predicate_part_2" shape="rect"> + <rect x="23" y="1" width="146" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">submultiset_predicate_part_2</text></a><path class="line" d="m17 10 h2 m0 0 h4 m146 0 h4 m3 0 h-3"/> + <polygon points="183 10 191 6 191 14"/> + <polygon points="183 10 175 6 175 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#submultiset-predicate" title="submultiset_predicate" shape="rect">submultiset_predicate</a></div> + <div>         ::= <a href="#submultiset-predicate-part-2" title="submultiset_predicate_part_2" shape="rect">submultiset_predicate_part_2</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#predicate" title="predicate">predicate</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + submultiset_predicate_part_2 +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="401" height="42"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="43" y="22" width="28" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="34">NOT</text> + <rect x="99" y="1" width="72" height="18" class="terminal" rx="4"/> + <text class="terminal" x="103" y="13">SUBMULTISET</text> + <rect x="199" y="22" width="20" height="18" class="terminal" rx="4"/> + <text class="terminal" x="203" y="34">OF</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#multiset-value-expression" xlink:title="multiset_value_expression" shape="rect"> + <rect x="247" y="1" width="130" height="18" class="nonterminal"/> + <text class="nonterminal" x="251" y="13">multiset_value_expression</text></a><path class="line" d="m17 10 h2 m20 0 h10 m0 0 h26 m-56 0 h20 m36 0 h20 m-76 0 q10 0 10 10 m56 0 q0 -10 10 -10 m-66 10 v1 m56 0 v-1 m-56 1 q0 10 10 10 m36 0 q10 0 10 -10 m-46 10 h4 m28 0 h4 m20 -21 h4 m72 0 h4 m20 0 h10 m0 0 h18 m-48 0 h20 m28 0 h20 m-68 0 q10 0 10 10 m48 0 q0 -10 10 -10 m-58 10 v1 m48 0 v-1 m-48 1 q0 10 10 10 m28 0 q10 0 10 -10 m-38 10 h4 m20 0 h4 m20 -21 h4 m130 0 h4 m3 0 h-3"/> + <polygon points="391 10 399 6 399 14"/> + <polygon points="391 10 383 6 383 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#submultiset-predicate-part-2" title="submultiset_predicate_part_2" shape="rect">submultiset_predicate_part_2</a></div> + <div>         ::= 'NOT'? 'SUBMULTISET' 'OF'? <a href="#multiset-value-expression" title="multiset_value_expression" shape="rect">multiset_value_expression</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#submultiset-predicate" title="submultiset-predicate">submultiset-predicate</a></li><li><a href="#when-operand" title="when-operand">when-operand</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + set_predicate +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="155" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#set-predicate-part-2" xlink:title="set_predicate_part_2" shape="rect"> + <rect x="23" y="1" width="108" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">set_predicate_part_2</text></a><path class="line" d="m17 10 h2 m0 0 h4 m108 0 h4 m3 0 h-3"/> + <polygon points="145 10 153 6 153 14"/> + <polygon points="145 10 137 6 137 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#set-predicate" title="set_predicate" shape="rect">set_predicate</a></div> + <div>         ::= <a href="#set-predicate-part-2" title="set_predicate_part_2" shape="rect">set_predicate_part_2</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#predicate" title="predicate">predicate</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + set_predicate_part_2 +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="195" height="42"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="18" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">IS</text> + <rect x="69" y="22" width="28" height="18" class="terminal" rx="4"/> + <text class="terminal" x="73" y="34">NOT</text> + <rect x="125" y="1" width="14" height="18" class="terminal" rx="4"/> + <text class="terminal" x="129" y="13">A</text> + <rect x="147" y="1" width="24" height="18" class="terminal" rx="4"/> + <text class="terminal" x="151" y="13">SET</text> + <path class="line" d="m17 10 h2 m0 0 h4 m18 0 h4 m20 0 h10 m0 0 h26 m-56 0 h20 m36 0 h20 m-76 0 q10 0 10 10 m56 0 q0 -10 10 -10 m-66 10 v1 m56 0 v-1 m-56 1 q0 10 10 10 m36 0 q10 0 10 -10 m-46 10 h4 m28 0 h4 m20 -21 h4 m14 0 h4 m0 0 h4 m24 0 h4 m3 0 h-3"/> + <polygon points="185 10 193 6 193 14"/> + <polygon points="185 10 177 6 177 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#set-predicate-part-2" title="set_predicate_part_2" shape="rect">set_predicate_part_2</a></div> + <div>         ::= 'IS' 'NOT'? 'A' 'SET'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#set-predicate" title="set-predicate">set-predicate</a></li><li><a href="#when-operand" title="when-operand">when-operand</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + type_predicate +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="161" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#type-predicate-part-2" xlink:title="type_predicate_part_2" shape="rect"> + <rect x="23" y="1" width="114" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">type_predicate_part_2</text></a><path class="line" d="m17 10 h2 m0 0 h4 m114 0 h4 m3 0 h-3"/> + <polygon points="151 10 159 6 159 14"/> + <polygon points="151 10 143 6 143 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#type-predicate" title="type_predicate" shape="rect">type_predicate</a></div> + <div>         ::= <a href="#type-predicate-part-2" title="type_predicate_part_2" shape="rect">type_predicate_part_2</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#predicate" title="predicate">predicate</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + type_predicate_part_2 +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="263" height="42"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="18" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">IS</text> + <rect x="69" y="22" width="28" height="18" class="terminal" rx="4"/> + <text class="terminal" x="73" y="34">NOT</text> + <rect x="125" y="1" width="20" height="18" class="terminal" rx="4"/> + <text class="terminal" x="129" y="13">OF</text> + <rect x="153" y="1" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="157" y="13">(</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#type-list" xlink:title="type_list" shape="rect"> + <rect x="173" y="1" width="46" height="18" class="nonterminal"/> + <text class="nonterminal" x="177" y="13">type_list</text></a><rect x="227" y="1" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="231" y="13">)</text> + <path class="line" d="m17 10 h2 m0 0 h4 m18 0 h4 m20 0 h10 m0 0 h26 m-56 0 h20 m36 0 h20 m-76 0 q10 0 10 10 m56 0 q0 -10 10 -10 m-66 10 v1 m56 0 v-1 m-56 1 q0 10 10 10 m36 0 q10 0 10 -10 m-46 10 h4 m28 0 h4 m20 -21 h4 m20 0 h4 m0 0 h4 m12 0 h4 m0 0 h4 m46 0 h4 m0 0 h4 m12 0 h4 m3 0 h-3"/> + <polygon points="253 10 261 6 261 14"/> + <polygon points="253 10 245 6 245 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#type-predicate-part-2" title="type_predicate_part_2" shape="rect">type_predicate_part_2</a></div> + <div>         ::= 'IS' 'NOT'? 'OF' '(' <a href="#type-list" title="type_list" shape="rect">type_list</a> ')'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#type-predicate" title="type-predicate">type-predicate</a></li><li><a href="#when-operand" title="when-operand">when-operand</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + type_list +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="241" height="49"> + <polygon points="9 38 1 34 1 42"/> + <polygon points="17 38 9 34 9 42"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#user-defined-type-specification" xlink:title="user_defined_type_specification" shape="rect"> + <rect x="43" y="29" width="154" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">user_defined_type_specification</text></a><rect x="43" y="1" width="8" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="13">,</text> + <path class="line" d="m17 38 h2 m20 0 h4 m154 0 h4 m-182 0 l20 0 m-1 0 q-9 0 -9 -10 l0 -8 q0 -10 10 -10 m162 28 l20 0 m-20 0 q10 0 10 -10 l0 -8 q0 -10 -10 -10 m-162 0 h4 m8 0 h4 m0 0 h146 m23 28 h-3"/> + <polygon points="231 38 239 34 239 42"/> + <polygon points="231 38 223 34 223 42"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#type-list" title="type_list" shape="rect">type_list</a></div> + <div>         ::= <a href="#user-defined-type-specification" title="user_defined_type_specification" shape="rect">user_defined_type_specification</a> ( ',' <a href="#user-defined-type-specification" title="user_defined_type_specification" shape="rect">user_defined_type_specification</a> )*</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#type-predicate-part-2" title="type-predicate-part-2">type-predicate-part-2</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + user_defined_type_specification +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="287" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#exclusive-user-defined-type-specification" xlink:title="exclusive_user_defined_type_specification" shape="rect"> + <rect x="43" y="1" width="200" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">exclusive_user_defined_type_specification</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#inclusive-user-defined-type-specification" xlink:title="inclusive_user_defined_type_specification" shape="rect"> + <rect x="43" y="29" width="196" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">inclusive_user_defined_type_specification</text></a><path class="line" d="m17 10 h2 m20 0 h4 m200 0 h4 m-228 0 h20 m208 0 h20 m-248 0 q10 0 10 10 m228 0 q0 -10 10 -10 m-238 10 v8 m228 0 v-8 m-228 8 q0 10 10 10 m208 0 q10 0 10 -10 m-218 10 h4 m196 0 h4 m0 0 h4 m23 -28 h-3"/> + <polygon points="277 10 285 6 285 14"/> + <polygon points="277 10 269 6 269 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#user-defined-type-specification" title="user_defined_type_specification" shape="rect">user_defined_type_specification</a></div> + <div>         ::= <a href="#exclusive-user-defined-type-specification" title="exclusive_user_defined_type_specification" shape="rect">exclusive_user_defined_type_specification</a></div> + <div>           | <a href="#inclusive-user-defined-type-specification" title="inclusive_user_defined_type_specification" shape="rect">inclusive_user_defined_type_specification</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#type-list" title="type-list">type-list</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + inclusive_user_defined_type_specification +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="247" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#path-resolved-user-defined-type-name" xlink:title="path_resolved_user_defined_type_name" shape="rect"> + <rect x="23" y="1" width="200" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">path_resolved_user_defined_type_name</text></a><path class="line" d="m17 10 h2 m0 0 h4 m200 0 h4 m3 0 h-3"/> + <polygon points="237 10 245 6 245 14"/> + <polygon points="237 10 229 6 229 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#inclusive-user-defined-type-specification" title="inclusive_user_defined_type_specification" shape="rect">inclusive_user_defined_type_specification</a></div> + <div>         ::= <a href="#path-resolved-user-defined-type-name" title="path_resolved_user_defined_type_name" shape="rect">path_resolved_user_defined_type_name</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#user-defined-type-specification" title="user-defined-type-specification">user-defined-type-specification</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + exclusive_user_defined_type_specification +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="289" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="34" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">ONLY</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#path-resolved-user-defined-type-name" xlink:title="path_resolved_user_defined_type_name" shape="rect"> + <rect x="65" y="1" width="200" height="18" class="nonterminal"/> + <text class="nonterminal" x="69" y="13">path_resolved_user_defined_type_name</text></a><path class="line" d="m17 10 h2 m0 0 h4 m34 0 h4 m0 0 h4 m200 0 h4 m3 0 h-3"/> + <polygon points="279 10 287 6 287 14"/> + <polygon points="279 10 271 6 271 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#exclusive-user-defined-type-specification" title="exclusive_user_defined_type_specification" shape="rect">exclusive_user_defined_type_specification</a></div> + <div>         ::= 'ONLY' <a href="#path-resolved-user-defined-type-name" title="path_resolved_user_defined_type_name" shape="rect">path_resolved_user_defined_type_name</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#user-defined-type-specification" title="user-defined-type-specification">user-defined-type-specification</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + search_condition +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="179" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#boolean-value-expression" xlink:title="boolean_value_expression" shape="rect"> + <rect x="23" y="1" width="132" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">boolean_value_expression</text></a><path class="line" d="m17 10 h2 m0 0 h4 m132 0 h4 m3 0 h-3"/> + <polygon points="169 10 177 6 177 14"/> + <polygon points="169 10 161 6 161 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#search-condition" title="search_condition" shape="rect">search_condition</a></div> + <div>         ::= <a href="#boolean-value-expression" title="boolean_value_expression" shape="rect">boolean_value_expression</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#assertion-definition" title="assertion-definition">assertion-definition</a></li><li><a href="#check-constraint-definition" title="check-constraint-definition">check-constraint-definition</a></li><li><a href="#delete-statement-searched" title="delete-statement-searched">delete-statement-searched</a></li><li><a href="#filter-clause" title="filter-clause">filter-clause</a></li><li><a href="#having-clause" title="having-clause">having-clause</a></li><li><a href="#join-condition" title="join-condition">join-condition</a></li><li><a href="#merge-statement" title="merge-statement">merge-statement</a></li><li><a href="#merge-when-matched-clause" title="merge-when-matched-clause">merge-when-matched-clause</a></li><li><a href="#merge-when-not-matched-clause" title="merge-when-not-matched-clause">merge-when-not-matched-clause</a></li><li><a href="#searched-when-clause" title="searched-when-clause">searched-when-clause</a></li><li><a href="#triggered-when-clause" title="triggered-when-clause">triggered-when-clause</a></li><li><a href="#update-statement-searched" title="update-statement-searched">update-statement-searched</a></li><li><a href="#where-clause" title="where-clause">where-clause</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + interval_qualifier +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="225" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#start-field" xlink:title="start_field" shape="rect"> + <rect x="43" y="1" width="52" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">start_field</text></a><rect x="103" y="1" width="20" height="18" class="terminal" rx="4"/> + <text class="terminal" x="107" y="13">TO</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#end-field" xlink:title="end_field" shape="rect"> + <rect x="131" y="1" width="50" height="18" class="nonterminal"/> + <text class="nonterminal" x="135" y="13">end_field</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#single-datetime-field" xlink:title="single_datetime_field" shape="rect"> + <rect x="43" y="29" width="104" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">single_datetime_field</text></a><path class="line" d="m17 10 h2 m20 0 h4 m52 0 h4 m0 0 h4 m20 0 h4 m0 0 h4 m50 0 h4 m-166 0 h20 m146 0 h20 m-186 0 q10 0 10 10 m166 0 q0 -10 10 -10 m-176 10 v8 m166 0 v-8 m-166 8 q0 10 10 10 m146 0 q10 0 10 -10 m-156 10 h4 m104 0 h4 m0 0 h34 m23 -28 h-3"/> + <polygon points="215 10 223 6 223 14"/> + <polygon points="215 10 207 6 207 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#interval-qualifier" title="interval_qualifier" shape="rect">interval_qualifier</a></div> + <div>         ::= <a href="#start-field" title="start_field" shape="rect">start_field</a> 'TO' <a href="#end-field" title="end_field" shape="rect">end_field</a></div> + <div>           | <a href="#single-datetime-field" title="single_datetime_field" shape="rect">single_datetime_field</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#interval-literal" title="interval-literal">interval-literal</a></li><li><a href="#interval-primary" title="interval-primary">interval-primary</a></li><li><a href="#interval-type" title="interval-type">interval-type</a></li><li><a href="#interval-value-expression" title="interval-value-expression">interval-value-expression</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + start_field +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="459" height="42"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#non-second-primary-datetime-field" xlink:title="non_second_primary_datetime_field" shape="rect"> + <rect x="23" y="1" width="176" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">non_second_primary_datetime_field</text></a><rect x="227" y="22" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="231" y="34">(</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#interval-leading-field-precision" xlink:title="interval_leading_field_precision" shape="rect"> + <rect x="247" y="22" width="148" height="18" class="nonterminal"/> + <text class="nonterminal" x="251" y="34">interval_leading_field_precision</text></a><rect x="403" y="22" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="407" y="34">)</text> + <path class="line" d="m17 10 h2 m0 0 h4 m176 0 h4 m20 0 h10 m0 0 h186 m-216 0 h20 m196 0 h20 m-236 0 q10 0 10 10 m216 0 q0 -10 10 -10 m-226 10 v1 m216 0 v-1 m-216 1 q0 10 10 10 m196 0 q10 0 10 -10 m-206 10 h4 m12 0 h4 m0 0 h4 m148 0 h4 m0 0 h4 m12 0 h4 m23 -21 h-3"/> + <polygon points="449 10 457 6 457 14"/> + <polygon points="449 10 441 6 441 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#start-field" title="start_field" shape="rect">start_field</a></div> + <div>         ::= <a href="#non-second-primary-datetime-field" title="non_second_primary_datetime_field" shape="rect">non_second_primary_datetime_field</a> ( '(' <a href="#interval-leading-field-precision" title="interval_leading_field_precision" shape="rect">interval_leading_field_precision</a> ')' )?</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#interval-qualifier" title="interval-qualifier">interval-qualifier</a></li><li><a href="#single-datetime-field" title="single-datetime-field">single-datetime-field</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + end_field +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="397" height="70"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#non-second-primary-datetime-field" xlink:title="non_second_primary_datetime_field" shape="rect"> + <rect x="43" y="1" width="176" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">non_second_primary_datetime_field</text></a><rect x="43" y="29" width="46" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="41">SECOND</text> + <rect x="117" y="50" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="121" y="62">(</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#interval-fractional-seconds-precision" xlink:title="interval_fractional_seconds_precision" shape="rect"> + <rect x="137" y="50" width="176" height="18" class="nonterminal"/> + <text class="nonterminal" x="141" y="62">interval_fractional_seconds_precision</text></a><rect x="321" y="50" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="325" y="62">)</text> + <path class="line" d="m17 10 h2 m20 0 h4 m176 0 h4 m0 0 h134 m-338 0 h20 m318 0 h20 m-358 0 q10 0 10 10 m338 0 q0 -10 10 -10 m-348 10 v8 m338 0 v-8 m-338 8 q0 10 10 10 m318 0 q10 0 10 -10 m-328 10 h4 m46 0 h4 m20 0 h10 m0 0 h214 m-244 0 h20 m224 0 h20 m-264 0 q10 0 10 10 m244 0 q0 -10 10 -10 m-254 10 v1 m244 0 v-1 m-244 1 q0 10 10 10 m224 0 q10 0 10 -10 m-234 10 h4 m12 0 h4 m0 0 h4 m176 0 h4 m0 0 h4 m12 0 h4 m43 -49 h-3"/> + <polygon points="387 10 395 6 395 14"/> + <polygon points="387 10 379 6 379 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#end-field" title="end_field" shape="rect">end_field</a></div> + <div>         ::= <a href="#non-second-primary-datetime-field" title="non_second_primary_datetime_field" shape="rect">non_second_primary_datetime_field</a></div> + <div>           | 'SECOND' ( '(' <a href="#interval-fractional-seconds-precision" title="interval_fractional_seconds_precision" shape="rect">interval_fractional_seconds_precision</a> ')' )?</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#interval-qualifier" title="interval-qualifier">interval-qualifier</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + single_datetime_field +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="609" height="91"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#start-field" xlink:title="start_field" shape="rect"> + <rect x="43" y="1" width="52" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">start_field</text></a><rect x="43" y="29" width="46" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="41">SECOND</text> + <rect x="117" y="50" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="121" y="62">(</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#interval-leading-field-precision" xlink:title="interval_leading_field_precision" shape="rect"> + <rect x="137" y="50" width="148" height="18" class="nonterminal"/> + <text class="nonterminal" x="141" y="62">interval_leading_field_precision</text></a><rect x="313" y="71" width="8" height="18" class="terminal" rx="4"/> + <text class="terminal" x="317" y="83">,</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#interval-fractional-seconds-precision" xlink:title="interval_fractional_seconds_precision" shape="rect"> + <rect x="329" y="71" width="176" height="18" class="nonterminal"/> + <text class="nonterminal" x="333" y="83">interval_fractional_seconds_precision</text></a><rect x="533" y="50" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="537" y="62">)</text> + <path class="line" d="m17 10 h2 m20 0 h4 m52 0 h4 m0 0 h470 m-550 0 h20 m530 0 h20 m-570 0 q10 0 10 10 m550 0 q0 -10 10 -10 m-560 10 v8 m550 0 v-8 m-550 8 q0 10 10 10 m530 0 q10 0 10 -10 m-540 10 h4 m46 0 h4 m20 0 h10 m0 0 h426 m-456 0 h20 m436 0 h20 m-476 0 q10 0 10 10 m456 0 q0 -10 10 -10 m-466 10 v1 m456 0 v-1 m-456 1 q0 10 10 10 m436 0 q10 0 10 -10 m-446 10 h4 m12 0 h4 m0 0 h4 m148 0 h4 m20 0 h10 m0 0 h190 m-220 0 h20 m200 0 h20 m-240 0 q10 0 10 10 m220 0 q0 -10 10 -10 m-230 10 v1 m220 0 v-1 m-220 1 q0 10 10 10 m200 0 q10 0 10 -10 m-210 10 h4 m8 0 h4 m0 0 h4 m176 0 h4 m20 -21 h4 m12 0 h4 m43 -49 h-3"/> + <polygon points="599 10 607 6 607 14"/> + <polygon points="599 10 591 6 591 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#single-datetime-field" title="single_datetime_field" shape="rect">single_datetime_field</a></div> + <div>         ::= <a href="#start-field" title="start_field" shape="rect">start_field</a></div> + <div>           | 'SECOND' ( '(' <a href="#interval-leading-field-precision" title="interval_leading_field_precision" shape="rect">interval_leading_field_precision</a> ( ',' <a href="#interval-fractional-seconds-precision" title="interval_fractional_seconds_precision" shape="rect">interval_fractional_seconds_precision</a> )? ')' )?</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#interval-qualifier" title="interval-qualifier">interval-qualifier</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + primary_datetime_field +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="263" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#non-second-primary-datetime-field" xlink:title="non_second_primary_datetime_field" shape="rect"> + <rect x="43" y="1" width="176" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">non_second_primary_datetime_field</text></a><rect x="43" y="29" width="46" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="41">SECOND</text> + <path class="line" d="m17 10 h2 m20 0 h4 m176 0 h4 m-204 0 h20 m184 0 h20 m-224 0 q10 0 10 10 m204 0 q0 -10 10 -10 m-214 10 v8 m204 0 v-8 m-204 8 q0 10 10 10 m184 0 q10 0 10 -10 m-194 10 h4 m46 0 h4 m0 0 h130 m23 -28 h-3"/> + <polygon points="253 10 261 6 261 14"/> + <polygon points="253 10 245 6 245 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#primary-datetime-field" title="primary_datetime_field" shape="rect">primary_datetime_field</a></div> + <div>         ::= <a href="#non-second-primary-datetime-field" title="non_second_primary_datetime_field" shape="rect">non_second_primary_datetime_field</a></div> + <div>           | 'SECOND'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#extract-field" title="extract-field">extract-field</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + non_second_primary_datetime_field +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="131" height="133"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="43" y="1" width="32" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="13">YEAR</text> + <rect x="43" y="29" width="44" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="41">MONTH</text> + <rect x="43" y="57" width="26" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="69">DAY</text> + <rect x="43" y="85" width="36" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="97">HOUR</text> + <rect x="43" y="113" width="44" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="125">MINUTE</text> + <path class="line" d="m17 10 h2 m20 0 h4 m32 0 h4 m0 0 h12 m-72 0 h20 m52 0 h20 m-92 0 q10 0 10 10 m72 0 q0 -10 10 -10 m-82 10 v8 m72 0 v-8 m-72 8 q0 10 10 10 m52 0 q10 0 10 -10 m-62 10 h4 m44 0 h4 m-62 -10 v20 m72 0 v-20 m-72 20 v8 m72 0 v-8 m-72 8 q0 10 10 10 m52 0 q10 0 10 -10 m-62 10 h4 m26 0 h4 m0 0 h18 m-62 -10 v20 m72 0 v-20 m-72 20 v8 m72 0 v-8 m-72 8 q0 10 10 10 m52 0 q10 0 10 -10 m-62 10 h4 m36 0 h4 m0 0 h8 m-62 -10 v20 m72 0 v-20 m-72 20 v8 m72 0 v-8 m-72 8 q0 10 10 10 m52 0 q10 0 10 -10 m-62 10 h4 m44 0 h4 m23 -112 h-3"/> + <polygon points="121 10 129 6 129 14"/> + <polygon points="121 10 113 6 113 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#non-second-primary-datetime-field" title="non_second_primary_datetime_field" shape="rect">non_second_primary_datetime_field</a></div> + <div>         ::= 'YEAR'</div> + <div>           | 'MONTH'</div> + <div>           | 'DAY'</div> + <div>           | 'HOUR'</div> + <div>           | 'MINUTE'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#end-field" title="end-field">end-field</a></li><li><a href="#primary-datetime-field" title="primary-datetime-field">primary-datetime-field</a></li><li><a href="#start-field" title="start-field">start-field</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + interval_fractional_seconds_precision +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="137" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#unsigned-integer" xlink:title="unsigned_integer" shape="rect"> + <rect x="23" y="1" width="90" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">unsigned_integer</text></a><path class="line" d="m17 10 h2 m0 0 h4 m90 0 h4 m3 0 h-3"/> + <polygon points="127 10 135 6 135 14"/> + <polygon points="127 10 119 6 119 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#interval-fractional-seconds-precision" title="interval_fractional_seconds_precision" shape="rect">interval_fractional_seconds_precision</a></div> + <div>         ::= <a href="#unsigned-integer" title="unsigned_integer" shape="rect">unsigned_integer</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#end-field" title="end-field">end-field</a></li><li><a href="#single-datetime-field" title="single-datetime-field">single-datetime-field</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + interval_leading_field_precision +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="137" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#unsigned-integer" xlink:title="unsigned_integer" shape="rect"> + <rect x="23" y="1" width="90" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">unsigned_integer</text></a><path class="line" d="m17 10 h2 m0 0 h4 m90 0 h4 m3 0 h-3"/> + <polygon points="127 10 135 6 135 14"/> + <polygon points="127 10 119 6 119 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#interval-leading-field-precision" title="interval_leading_field_precision" shape="rect">interval_leading_field_precision</a></div> + <div>         ::= <a href="#unsigned-integer" title="unsigned_integer" shape="rect">unsigned_integer</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#single-datetime-field" title="single-datetime-field">single-datetime-field</a></li><li><a href="#start-field" title="start-field">start-field</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + language_clause +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="199" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="58" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">LANGUAGE</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#language-name" xlink:title="language_name" shape="rect"> + <rect x="89" y="1" width="86" height="18" class="nonterminal"/> + <text class="nonterminal" x="93" y="13">language_name</text></a><path class="line" d="m17 10 h2 m0 0 h4 m58 0 h4 m0 0 h4 m86 0 h4 m3 0 h-3"/> + <polygon points="189 10 197 6 197 14"/> + <polygon points="189 10 181 6 181 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#language-clause" title="language_clause" shape="rect">language_clause</a></div> + <div>         ::= 'LANGUAGE' <a href="#language-name" title="language_name" shape="rect">language_name</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#sql-client-module-definition" title="sql-client-module-definition">sql-client-module-definition</a></li><li><a href="#alter-routine-characteristic" title="alter-routine-characteristic">alter-routine-characteristic</a></li><li><a href="#method-characteristic" title="method-characteristic">method-characteristic</a></li><li><a href="#routine-characteristic" title="routine-characteristic">routine-characteristic</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + language_name +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="139" height="245"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="43" y="1" width="28" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="13">ADA</text> + <rect x="43" y="29" width="14" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="41">C</text> + <rect x="43" y="57" width="40" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="69">COBOL</text> + <rect x="43" y="85" width="52" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="97">FORTRAN</text> + <rect x="43" y="113" width="16" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="125">M</text> + <rect x="43" y="141" width="44" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="153">MUMPS</text> + <rect x="43" y="169" width="44" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="181">PASCAL</text> + <rect x="43" y="197" width="22" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="209">PLI</text> + <rect x="43" y="225" width="26" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="237">SQL</text> + <path class="line" d="m17 10 h2 m20 0 h4 m28 0 h4 m0 0 h24 m-80 0 h20 m60 0 h20 m-100 0 q10 0 10 10 m80 0 q0 -10 10 -10 m-90 10 v8 m80 0 v-8 m-80 8 q0 10 10 10 m60 0 q10 0 10 -10 m-70 10 h4 m14 0 h4 m0 0 h38 m-70 -10 v20 m80 0 v-20 m-80 20 v8 m80 0 v-8 m-80 8 q0 10 10 10 m60 0 q10 0 10 -10 m-70 10 h4 m40 0 h4 m0 0 h12 m-70 -10 v20 m80 0 v-20 m-80 20 v8 m80 0 v-8 m-80 8 q0 10 10 10 m60 0 q10 0 10 -10 m-70 10 h4 m52 0 h4 m-70 -10 v20 m80 0 v-20 m-80 20 v8 m80 0 v-8 m-80 8 q0 10 10 10 m60 0 q10 0 10 -10 m-70 10 h4 m16 0 h4 m0 0 h36 m-70 -10 v20 m80 0 v-20 m-80 20 v8 m80 0 v-8 m-80 8 q0 10 10 10 m60 0 q10 0 10 -10 m-70 10 h4 m44 0 h4 m0 0 h8 m-70 -10 v20 m80 0 v-20 m-80 20 v8 m80 0 v-8 m-80 8 q0 10 10 10 m60 0 q10 0 10 -10 m-70 10 h4 m44 0 h4 m0 0 h8 m-70 -10 v20 m80 0 v-20 m-80 20 v8 m80 0 v-8 m-80 8 q0 10 10 10 m60 0 q10 0 10 -10 m-70 10 h4 m22 0 h4 m0 0 h30 m-70 -10 v20 m80 0 v-20 m-80 20 v8 m80 0 v-8 m-80 8 q0 10 10 10 m60 0 q10 0 10 -10 m-70 10 h4 m26 0 h4 m0 0 h26 m23 -224 h-3"/> + <polygon points="129 10 137 6 137 14"/> + <polygon points="129 10 121 6 121 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#language-name" title="language_name" shape="rect">language_name</a></div> + <div>         ::= 'ADA'</div> + <div>           | 'C'</div> + <div>           | 'COBOL'</div> + <div>           | 'FORTRAN'</div> + <div>           | 'M'</div> + <div>           | 'MUMPS'</div> + <div>           | 'PASCAL'</div> + <div>           | 'PLI'</div> + <div>           | 'SQL'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#language-clause" title="language-clause">language-clause</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + path_specification +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="183" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="32" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">PATH</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#schema-name-list" xlink:title="schema_name_list" shape="rect"> + <rect x="63" y="1" width="96" height="18" class="nonterminal"/> + <text class="nonterminal" x="67" y="13">schema_name_list</text></a><path class="line" d="m17 10 h2 m0 0 h4 m32 0 h4 m0 0 h4 m96 0 h4 m3 0 h-3"/> + <polygon points="173 10 181 6 181 14"/> + <polygon points="173 10 165 6 165 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#path-specification" title="path_specification" shape="rect">path_specification</a></div> + <div>         ::= 'PATH' <a href="#schema-name-list" title="schema_name_list" shape="rect">schema_name_list</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#module-path-specification" title="module-path-specification">module-path-specification</a></li><li><a href="#schema-path-specification" title="schema-path-specification">schema-path-specification</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + schema_name_list +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="167" height="49"> + <polygon points="9 38 1 34 1 42"/> + <polygon points="17 38 9 34 9 42"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#schema-name" xlink:title="schema_name" shape="rect"> + <rect x="43" y="29" width="80" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">schema_name</text></a><rect x="43" y="1" width="8" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="13">,</text> + <path class="line" d="m17 38 h2 m20 0 h4 m80 0 h4 m-108 0 l20 0 m-1 0 q-9 0 -9 -10 l0 -8 q0 -10 10 -10 m88 28 l20 0 m-20 0 q10 0 10 -10 l0 -8 q0 -10 -10 -10 m-88 0 h4 m8 0 h4 m0 0 h72 m23 28 h-3"/> + <polygon points="157 38 165 34 165 42"/> + <polygon points="157 38 149 34 149 42"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#schema-name-list" title="schema_name_list" shape="rect">schema_name_list</a></div> + <div>         ::= <a href="#schema-name" title="schema_name" shape="rect">schema_name</a> ( ',' <a href="#schema-name" title="schema_name" shape="rect">schema_name</a> )*</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#path-specification" title="path-specification">path-specification</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + routine_invocation +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="225" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#routine-name" xlink:title="routine_name" shape="rect"> + <rect x="23" y="1" width="74" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">routine_name</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#sql-argument-list" xlink:title="SQL_argument_list" shape="rect"> + <rect x="105" y="1" width="96" height="18" class="nonterminal"/> + <text class="nonterminal" x="109" y="13">SQL_argument_list</text></a><path class="line" d="m17 10 h2 m0 0 h4 m74 0 h4 m0 0 h4 m96 0 h4 m3 0 h-3"/> + <polygon points="215 10 223 6 223 14"/> + <polygon points="215 10 207 6 207 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#routine-invocation" title="routine_invocation" shape="rect">routine_invocation</a></div> + <div>         ::= <a href="#routine-name" title="routine_name" shape="rect">routine_name</a> <a href="#sql-argument-list" title="SQL_argument_list" shape="rect">SQL_argument_list</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#call-statement" title="call-statement">call-statement</a></li><li><a href="#new-invocation" title="new-invocation">new-invocation</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + routine_name +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="237" height="42"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#schema-name" xlink:title="schema_name" shape="rect"> + <rect x="43" y="22" width="80" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="34">schema_name</text></a><rect x="131" y="22" width="8" height="18" class="terminal" rx="4"/> + <text class="terminal" x="135" y="34">.</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#identifier" xlink:title="identifier" shape="rect"> + <rect x="167" y="1" width="46" height="18" class="nonterminal"/> + <text class="nonterminal" x="171" y="13">identifier</text></a><path class="line" d="m17 10 h2 m20 0 h10 m0 0 h94 m-124 0 h20 m104 0 h20 m-144 0 q10 0 10 10 m124 0 q0 -10 10 -10 m-134 10 v1 m124 0 v-1 m-124 1 q0 10 10 10 m104 0 q10 0 10 -10 m-114 10 h4 m80 0 h4 m0 0 h4 m8 0 h4 m20 -21 h4 m46 0 h4 m3 0 h-3"/> + <polygon points="227 10 235 6 235 14"/> + <polygon points="227 10 219 6 219 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#routine-name" title="routine_name" shape="rect">routine_name</a></div> + <div>         ::= ( <a href="#schema-name" title="schema_name" shape="rect">schema_name</a> '.' )? <a href="#identifier" title="identifier" shape="rect">identifier</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#routine-invocation" title="routine-invocation">routine-invocation</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + SQL_argument_list +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="247" height="61"> + <polygon points="9 38 1 34 1 42"/> + <polygon points="17 38 9 34 9 42"/> + <rect x="23" y="29" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="41">(</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#sql-argument" xlink:title="SQL_argument" shape="rect"> + <rect x="83" y="29" width="80" height="18" class="nonterminal"/> + <text class="nonterminal" x="87" y="41">SQL_argument</text></a><rect x="83" y="1" width="8" height="18" class="terminal" rx="4"/> + <text class="terminal" x="87" y="13">,</text> + <rect x="211" y="29" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="215" y="41">)</text> + <path class="line" d="m17 38 h2 m0 0 h4 m12 0 h4 m40 0 h4 m80 0 h4 m-108 0 l20 0 m-1 0 q-9 0 -9 -10 l0 -8 q0 -10 10 -10 m88 28 l20 0 m-20 0 q10 0 10 -10 l0 -8 q0 -10 -10 -10 m-88 0 h4 m8 0 h4 m0 0 h72 m-128 28 h20 m128 0 h20 m-168 0 q10 0 10 10 m148 0 q0 -10 10 -10 m-158 10 v1 m148 0 v-1 m-148 1 q0 10 10 10 m128 0 q10 0 10 -10 m-138 10 h10 m0 0 h118 m20 -21 h4 m12 0 h4 m3 0 h-3"/> + <polygon points="237 38 245 34 245 42"/> + <polygon points="237 38 229 34 229 42"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#sql-argument-list" title="SQL_argument_list" shape="rect">SQL_argument_list</a></div> + <div>         ::= '(' ( <a href="#sql-argument" title="SQL_argument" shape="rect">SQL_argument</a> ( ',' <a href="#sql-argument" title="SQL_argument" shape="rect">SQL_argument</a> )* )? ')'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#direct-invocation" title="direct-invocation">direct-invocation</a></li><li><a href="#generalized-invocation" title="generalized-invocation">generalized-invocation</a></li><li><a href="#new-specification" title="new-specification">new-specification</a></li><li><a href="#routine-invocation" title="routine-invocation">routine-invocation</a></li><li><a href="#static-method-invocation" title="static-method-invocation">static-method-invocation</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + SQL_argument +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="343" height="154"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#lambda" xlink:title="lambda" shape="rect"> + <rect x="43" y="1" width="44" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">lambda</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#value-expression" xlink:title="value_expression" shape="rect"> + <rect x="43" y="29" width="90" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">value_expression</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#generalized-expression" xlink:title="generalized_expression" shape="rect"> + <rect x="161" y="50" width="118" height="18" class="nonterminal"/> + <text class="nonterminal" x="165" y="62">generalized_expression</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#named-argument-specification" xlink:title="named_argument_specification" shape="rect"> + <rect x="43" y="78" width="154" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="90">named_argument_specification</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#contextually-typed-value-specification" xlink:title="contextually_typed_value_specification" shape="rect"> + <rect x="43" y="106" width="184" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="118">contextually_typed_value_specification</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#target-specification" xlink:title="target_specification" shape="rect"> + <rect x="43" y="134" width="96" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="146">target_specification</text></a><path class="line" d="m17 10 h2 m20 0 h4 m44 0 h4 m0 0 h212 m-284 0 h20 m264 0 h20 m-304 0 q10 0 10 10 m284 0 q0 -10 10 -10 m-294 10 v8 m284 0 v-8 m-284 8 q0 10 10 10 m264 0 q10 0 10 -10 m-274 10 h4 m90 0 h4 m20 0 h10 m0 0 h116 m-146 0 h20 m126 0 h20 m-166 0 q10 0 10 10 m146 0 q0 -10 10 -10 m-156 10 v1 m146 0 v-1 m-146 1 q0 10 10 10 m126 0 q10 0 10 -10 m-136 10 h4 m118 0 h4 m-254 -31 v20 m284 0 v-20 m-284 20 v29 m284 0 v-29 m-284 29 q0 10 10 10 m264 0 q10 0 10 -10 m-274 10 h4 m154 0 h4 m0 0 h102 m-274 -10 v20 m284 0 v-20 m-284 20 v8 m284 0 v-8 m-284 8 q0 10 10 10 m264 0 q10 0 10 -10 m-274 10 h4 m184 0 h4 m0 0 h72 m-274 -10 v20 m284 0 v-20 m-284 20 v8 m284 0 v-8 m-284 8 q0 10 10 10 m264 0 q10 0 10 -10 m-274 10 h4 m96 0 h4 m0 0 h160 m23 -133 h-3"/> + <polygon points="333 10 341 6 341 14"/> + <polygon points="333 10 325 6 325 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#sql-argument" title="SQL_argument" shape="rect">SQL_argument</a></div> + <div>         ::= <a href="#lambda" title="lambda" shape="rect">lambda</a></div> + <div>           | <a href="#value-expression" title="value_expression" shape="rect">value_expression</a> <a href="#generalized-expression" title="generalized_expression" shape="rect">generalized_expression</a>?</div> + <div>           | <a href="#named-argument-specification" title="named_argument_specification" shape="rect">named_argument_specification</a></div> + <div>           | <a href="#contextually-typed-value-specification" title="contextually_typed_value_specification" shape="rect">contextually_typed_value_specification</a></div> + <div>           | <a href="#target-specification" title="target_specification" shape="rect">target_specification</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#sql-argument-list" title="sql-argument-list">sql-argument-list</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + generalized_expression +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="275" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="20" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">AS</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#path-resolved-user-defined-type-name" xlink:title="path_resolved_user_defined_type_name" shape="rect"> + <rect x="51" y="1" width="200" height="18" class="nonterminal"/> + <text class="nonterminal" x="55" y="13">path_resolved_user_defined_type_name</text></a><path class="line" d="m17 10 h2 m0 0 h4 m20 0 h4 m0 0 h4 m200 0 h4 m3 0 h-3"/> + <polygon points="265 10 273 6 273 14"/> + <polygon points="265 10 257 6 257 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#generalized-expression" title="generalized_expression" shape="rect">generalized_expression</a></div> + <div>         ::= 'AS' <a href="#path-resolved-user-defined-type-name" title="path_resolved_user_defined_type_name" shape="rect">path_resolved_user_defined_type_name</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#sql-argument" title="sql-argument">sql-argument</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + named_argument_specification +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="303" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#identifier" xlink:title="identifier" shape="rect"> + <rect x="23" y="1" width="46" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">identifier</text></a><rect x="77" y="1" width="22" height="18" class="terminal" rx="4"/> + <text class="terminal" x="81" y="13">=></text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#named-argument-sql-argument" xlink:title="named_argument_SQL_argument" shape="rect"> + <rect x="107" y="1" width="172" height="18" class="nonterminal"/> + <text class="nonterminal" x="111" y="13">named_argument_SQL_argument</text></a><path class="line" d="m17 10 h2 m0 0 h4 m46 0 h4 m0 0 h4 m22 0 h4 m0 0 h4 m172 0 h4 m3 0 h-3"/> + <polygon points="293 10 301 6 301 14"/> + <polygon points="293 10 285 6 285 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#named-argument-specification" title="named_argument_specification" shape="rect">named_argument_specification</a></div> + <div>         ::= <a href="#identifier" title="identifier" shape="rect">identifier</a> '=>' <a href="#named-argument-sql-argument" title="named_argument_SQL_argument" shape="rect">named_argument_SQL_argument</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#sql-argument" title="sql-argument">sql-argument</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + named_argument_SQL_argument +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="271" height="77"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#value-expression" xlink:title="value_expression" shape="rect"> + <rect x="43" y="1" width="90" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">value_expression</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#contextually-typed-value-specification" xlink:title="contextually_typed_value_specification" shape="rect"> + <rect x="43" y="29" width="184" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">contextually_typed_value_specification</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#target-specification" xlink:title="target_specification" shape="rect"> + <rect x="43" y="57" width="96" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="69">target_specification</text></a><path class="line" d="m17 10 h2 m20 0 h4 m90 0 h4 m0 0 h94 m-212 0 h20 m192 0 h20 m-232 0 q10 0 10 10 m212 0 q0 -10 10 -10 m-222 10 v8 m212 0 v-8 m-212 8 q0 10 10 10 m192 0 q10 0 10 -10 m-202 10 h4 m184 0 h4 m-202 -10 v20 m212 0 v-20 m-212 20 v8 m212 0 v-8 m-212 8 q0 10 10 10 m192 0 q10 0 10 -10 m-202 10 h4 m96 0 h4 m0 0 h88 m23 -56 h-3"/> + <polygon points="261 10 269 6 269 14"/> + <polygon points="261 10 253 6 253 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#named-argument-sql-argument" title="named_argument_SQL_argument" shape="rect">named_argument_SQL_argument</a></div> + <div>         ::= <a href="#value-expression" title="value_expression" shape="rect">value_expression</a></div> + <div>           | <a href="#contextually-typed-value-specification" title="contextually_typed_value_specification" shape="rect">contextually_typed_value_specification</a></div> + <div>           | <a href="#target-specification" title="target_specification" shape="rect">target_specification</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#named-argument-specification" title="named-argument-specification">named-argument-specification</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + character_set_specification +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="309" height="77"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#standard-character-set-name" xlink:title="standard_character_set_name" shape="rect"> + <rect x="43" y="1" width="152" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">standard_character_set_name</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#implementation-defined-character-set-name" xlink:title="implementation_defined_character_set_name" shape="rect"> + <rect x="43" y="29" width="222" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">implementation_defined_character_set_name</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#user-defined-character-set-name" xlink:title="user_defined_character_set_name" shape="rect"> + <rect x="43" y="57" width="170" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="69">user_defined_character_set_name</text></a><path class="line" d="m17 10 h2 m20 0 h4 m152 0 h4 m0 0 h70 m-250 0 h20 m230 0 h20 m-270 0 q10 0 10 10 m250 0 q0 -10 10 -10 m-260 10 v8 m250 0 v-8 m-250 8 q0 10 10 10 m230 0 q10 0 10 -10 m-240 10 h4 m222 0 h4 m-240 -10 v20 m250 0 v-20 m-250 20 v8 m250 0 v-8 m-250 8 q0 10 10 10 m230 0 q10 0 10 -10 m-240 10 h4 m170 0 h4 m0 0 h52 m23 -56 h-3"/> + <polygon points="299 10 307 6 307 14"/> + <polygon points="299 10 291 6 291 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#character-set-specification" title="character_set_specification" shape="rect">character_set_specification</a></div> + <div>         ::= <a href="#standard-character-set-name" title="standard_character_set_name" shape="rect">standard_character_set_name</a></div> + <div>           | <a href="#implementation-defined-character-set-name" title="implementation_defined_character_set_name" shape="rect">implementation_defined_character_set_name</a></div> + <div>           | <a href="#user-defined-character-set-name" title="user_defined_character_set_name" shape="rect">user_defined_character_set_name</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#unicode-character-string-literal" title="unicode-character-string-literal">unicode-character-string-literal</a></li><li><a href="#character-set-source" title="character-set-source">character-set-source</a></li><li><a href="#character-set-specification-list" title="character-set-specification-list">character-set-specification-list</a></li><li><a href="#character-string-literal" title="character-string-literal">character-string-literal</a></li><li><a href="#collation-definition" title="collation-definition">collation-definition</a></li><li><a href="#module-character-set-specification" title="module-character-set-specification">module-character-set-specification</a></li><li><a href="#predefined-type" title="predefined-type">predefined-type</a></li><li><a href="#schema-character-set-specification" title="schema-character-set-specification">schema-character-set-specification</a></li><li><a href="#source-character-set-specification" title="source-character-set-specification">source-character-set-specification</a></li><li><a href="#target-character-set-specification" title="target-character-set-specification">target-character-set-specification</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + standard_character_set_name +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="151" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#character-set-name" xlink:title="character_set_name" shape="rect"> + <rect x="23" y="1" width="104" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">character_set_name</text></a><path class="line" d="m17 10 h2 m0 0 h4 m104 0 h4 m3 0 h-3"/> + <polygon points="141 10 149 6 149 14"/> + <polygon points="141 10 133 6 133 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#standard-character-set-name" title="standard_character_set_name" shape="rect">standard_character_set_name</a></div> + <div>         ::= <a href="#character-set-name" title="character_set_name" shape="rect">character_set_name</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#character-set-specification" title="character-set-specification">character-set-specification</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + implementation_defined_character_set_name +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="151" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#character-set-name" xlink:title="character_set_name" shape="rect"> + <rect x="23" y="1" width="104" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">character_set_name</text></a><path class="line" d="m17 10 h2 m0 0 h4 m104 0 h4 m3 0 h-3"/> + <polygon points="141 10 149 6 149 14"/> + <polygon points="141 10 133 6 133 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#implementation-defined-character-set-name" title="implementation_defined_character_set_name" shape="rect">implementation_defined_character_set_name</a></div> + <div>         ::= <a href="#character-set-name" title="character_set_name" shape="rect">character_set_name</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#character-set-specification" title="character-set-specification">character-set-specification</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + user_defined_character_set_name +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="151" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#character-set-name" xlink:title="character_set_name" shape="rect"> + <rect x="23" y="1" width="104" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">character_set_name</text></a><path class="line" d="m17 10 h2 m0 0 h4 m104 0 h4 m3 0 h-3"/> + <polygon points="141 10 149 6 149 14"/> + <polygon points="141 10 133 6 133 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#user-defined-character-set-name" title="user_defined_character_set_name" shape="rect">user_defined_character_set_name</a></div> + <div>         ::= <a href="#character-set-name" title="character_set_name" shape="rect">character_set_name</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#character-set-specification" title="character-set-specification">character-set-specification</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + specific_routine_designator +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="545" height="70"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="43" y="1" width="48" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="13">SPECIFIC</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#routine-type" xlink:title="routine_type" shape="rect"> + <rect x="99" y="1" width="68" height="18" class="nonterminal"/> + <text class="nonterminal" x="103" y="13">routine_type</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#schema-qualified-name" xlink:title="schema_qualified_name" shape="rect"> + <rect x="175" y="1" width="122" height="18" class="nonterminal"/> + <text class="nonterminal" x="179" y="13">schema_qualified_name</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#routine-type" xlink:title="routine_type" shape="rect"> + <rect x="43" y="29" width="68" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">routine_type</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#member-name" xlink:title="member_name" shape="rect"> + <rect x="119" y="29" width="84" height="18" class="nonterminal"/> + <text class="nonterminal" x="123" y="41">member_name</text></a><rect x="231" y="50" width="26" height="18" class="terminal" rx="4"/> + <text class="terminal" x="235" y="62">FOR</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#schema-resolved-user-defined-type-name" xlink:title="schema_resolved_user_defined_type_name" shape="rect"> + <rect x="265" y="50" width="216" height="18" class="nonterminal"/> + <text class="nonterminal" x="269" y="62">schema_resolved_user_defined_type_name</text></a><path class="line" d="m17 10 h2 m20 0 h4 m48 0 h4 m0 0 h4 m68 0 h4 m0 0 h4 m122 0 h4 m0 0 h204 m-486 0 h20 m466 0 h20 m-506 0 q10 0 10 10 m486 0 q0 -10 10 -10 m-496 10 v8 m486 0 v-8 m-486 8 q0 10 10 10 m466 0 q10 0 10 -10 m-476 10 h4 m68 0 h4 m0 0 h4 m84 0 h4 m20 0 h10 m0 0 h248 m-278 0 h20 m258 0 h20 m-298 0 q10 0 10 10 m278 0 q0 -10 10 -10 m-288 10 v1 m278 0 v-1 m-278 1 q0 10 10 10 m258 0 q10 0 10 -10 m-268 10 h4 m26 0 h4 m0 0 h4 m216 0 h4 m43 -49 h-3"/> + <polygon points="535 10 543 6 543 14"/> + <polygon points="535 10 527 6 527 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#specific-routine-designator" title="specific_routine_designator" shape="rect">specific_routine_designator</a></div> + <div>         ::= 'SPECIFIC' <a href="#routine-type" title="routine_type" shape="rect">routine_type</a> <a href="#schema-qualified-name" title="schema_qualified_name" shape="rect">schema_qualified_name</a></div> + <div>           | <a href="#routine-type" title="routine_type" shape="rect">routine_type</a> <a href="#member-name" title="member_name" shape="rect">member_name</a> ( 'FOR' <a href="#schema-resolved-user-defined-type-name" title="schema_resolved_user_defined_type_name" shape="rect">schema_resolved_user_defined_type_name</a> )?</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#alter-routine-statement" title="alter-routine-statement">alter-routine-statement</a></li><li><a href="#cast-function" title="cast-function">cast-function</a></li><li><a href="#drop-routine-statement" title="drop-routine-statement">drop-routine-statement</a></li><li><a href="#from-sql-function" title="from-sql-function">from-sql-function</a></li><li><a href="#map-function-specification" title="map-function-specification">map-function-specification</a></li><li><a href="#object-name" title="object-name">object-name</a></li><li><a href="#privilege-method-list" title="privilege-method-list">privilege-method-list</a></li><li><a href="#relative-function-specification" title="relative-function-specification">relative-function-specification</a></li><li><a href="#result-set-cursor" title="result-set-cursor">result-set-cursor</a></li><li><a href="#to-sql-function" title="to-sql-function">to-sql-function</a></li><li><a href="#transliteration-routine" title="transliteration-routine">transliteration-routine</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + routine_type +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="261" height="182"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="43" y="1" width="50" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="13">ROUTINE</text> + <rect x="43" y="29" width="56" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="41">FUNCTION</text> + <rect x="43" y="57" width="64" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="69">PROCEDURE</text> + <rect x="63" y="106" width="54" height="18" class="terminal" rx="4"/> + <text class="terminal" x="67" y="118">INSTANCE</text> + <rect x="63" y="134" width="40" height="18" class="terminal" rx="4"/> + <text class="terminal" x="67" y="146">STATIC</text> + <rect x="63" y="162" width="78" height="18" class="terminal" rx="4"/> + <text class="terminal" x="67" y="174">CONSTRUCTOR</text> + <rect x="169" y="85" width="48" height="18" class="terminal" rx="4"/> + <text class="terminal" x="173" y="97">METHOD</text> + <path class="line" d="m17 10 h2 m20 0 h4 m50 0 h4 m0 0 h124 m-202 0 h20 m182 0 h20 m-222 0 q10 0 10 10 m202 0 q0 -10 10 -10 m-212 10 v8 m202 0 v-8 m-202 8 q0 10 10 10 m182 0 q10 0 10 -10 m-192 10 h4 m56 0 h4 m0 0 h118 m-192 -10 v20 m202 0 v-20 m-202 20 v8 m202 0 v-8 m-202 8 q0 10 10 10 m182 0 q10 0 10 -10 m-192 10 h4 m64 0 h4 m0 0 h110 m-192 -10 v20 m202 0 v-20 m-202 20 v8 m202 0 v-8 m-202 8 q0 10 10 10 m182 0 q10 0 10 -10 m-172 10 h10 m0 0 h76 m-106 0 h20 m86 0 h20 m-126 0 q10 0 10 10 m106 0 q0 -10 10 -10 m-116 10 v1 m106 0 v-1 m-106 1 q0 10 10 10 m86 0 q10 0 10 -10 m-96 10 h4 m54 0 h4 m0 0 h24 m-96 -10 v20 m106 0 v-20 m-106 20 v8 m106 0 v-8 m-106 8 q0 10 10 10 m86 0 q10 0 10 -10 m-96 10 h4 m40 0 h4 m0 0 h38 m-96 -10 v20 m106 0 v-20 m-106 20 v8 m106 0 v-8 m-106 8 q0 10 10 10 m86 0 q10 0 10 -10 m-96 10 h4 m78 0 h4 m20 -77 h4 m48 0 h4 m23 -84 h-3"/> + <polygon points="251 10 259 6 259 14"/> + <polygon points="251 10 243 6 243 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#routine-type" title="routine_type" shape="rect">routine_type</a></div> + <div>         ::= 'ROUTINE'</div> + <div>           | 'FUNCTION'</div> + <div>           | 'PROCEDURE'</div> + <div>           | ( 'INSTANCE' | 'STATIC' | 'CONSTRUCTOR' )? 'METHOD'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#specific-routine-designator" title="specific-routine-designator">specific-routine-designator</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + member_name +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="311" height="42"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#member-name-alternatives" xlink:title="member_name_alternatives" shape="rect"> + <rect x="23" y="1" width="142" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">member_name_alternatives</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#data-type-list" xlink:title="data_type_list" shape="rect"> + <rect x="193" y="22" width="74" height="18" class="nonterminal"/> + <text class="nonterminal" x="197" y="34">data_type_list</text></a><path class="line" d="m17 10 h2 m0 0 h4 m142 0 h4 m20 0 h10 m0 0 h72 m-102 0 h20 m82 0 h20 m-122 0 q10 0 10 10 m102 0 q0 -10 10 -10 m-112 10 v1 m102 0 v-1 m-102 1 q0 10 10 10 m82 0 q10 0 10 -10 m-92 10 h4 m74 0 h4 m23 -21 h-3"/> + <polygon points="301 10 309 6 309 14"/> + <polygon points="301 10 293 6 293 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#member-name" title="member_name" shape="rect">member_name</a></div> + <div>         ::= <a href="#member-name-alternatives" title="member_name_alternatives" shape="rect">member_name_alternatives</a> <a href="#data-type-list" title="data_type_list" shape="rect">data_type_list</a>?</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#specific-routine-designator" title="specific-routine-designator">specific-routine-designator</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + member_name_alternatives +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="209" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#schema-qualified-name" xlink:title="schema_qualified_name" shape="rect"> + <rect x="43" y="1" width="122" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">schema_qualified_name</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#identifier" xlink:title="identifier" shape="rect"> + <rect x="43" y="29" width="46" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">identifier</text></a><path class="line" d="m17 10 h2 m20 0 h4 m122 0 h4 m-150 0 h20 m130 0 h20 m-170 0 q10 0 10 10 m150 0 q0 -10 10 -10 m-160 10 v8 m150 0 v-8 m-150 8 q0 10 10 10 m130 0 q10 0 10 -10 m-140 10 h4 m46 0 h4 m0 0 h76 m23 -28 h-3"/> + <polygon points="199 10 207 6 207 14"/> + <polygon points="199 10 191 6 191 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#member-name-alternatives" title="member_name_alternatives" shape="rect">member_name_alternatives</a></div> + <div>         ::= <a href="#schema-qualified-name" title="schema_qualified_name" shape="rect">schema_qualified_name</a></div> + <div>           | <a href="#identifier" title="identifier" shape="rect">identifier</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#member-name" title="member-name">member-name</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + data_type_list +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="223" height="61"> + <polygon points="9 38 1 34 1 42"/> + <polygon points="17 38 9 34 9 42"/> + <rect x="23" y="29" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="41">(</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#data-type" xlink:title="data_type" shape="rect"> + <rect x="83" y="29" width="56" height="18" class="nonterminal"/> + <text class="nonterminal" x="87" y="41">data_type</text></a><rect x="83" y="1" width="8" height="18" class="terminal" rx="4"/> + <text class="terminal" x="87" y="13">,</text> + <rect x="187" y="29" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="191" y="41">)</text> + <path class="line" d="m17 38 h2 m0 0 h4 m12 0 h4 m40 0 h4 m56 0 h4 m-84 0 l20 0 m-1 0 q-9 0 -9 -10 l0 -8 q0 -10 10 -10 m64 28 l20 0 m-20 0 q10 0 10 -10 l0 -8 q0 -10 -10 -10 m-64 0 h4 m8 0 h4 m0 0 h48 m-104 28 h20 m104 0 h20 m-144 0 q10 0 10 10 m124 0 q0 -10 10 -10 m-134 10 v1 m124 0 v-1 m-124 1 q0 10 10 10 m104 0 q10 0 10 -10 m-114 10 h10 m0 0 h94 m20 -21 h4 m12 0 h4 m3 0 h-3"/> + <polygon points="213 38 221 34 221 42"/> + <polygon points="213 38 205 34 205 42"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#data-type-list" title="data_type_list" shape="rect">data_type_list</a></div> + <div>         ::= '(' ( <a href="#data-type" title="data_type" shape="rect">data_type</a> ( ',' <a href="#data-type" title="data_type" shape="rect">data_type</a> )* )? ')'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#member-name" title="member-name">member-name</a></li><li><a href="#specific-method-specification-designator" title="specific-method-specification-designator">specific-method-specification-designator</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + collate_clause +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="225" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="48" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">COLLATE</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#schema-qualified-name" xlink:title="schema_qualified_name" shape="rect"> + <rect x="79" y="1" width="122" height="18" class="nonterminal"/> + <text class="nonterminal" x="83" y="13">schema_qualified_name</text></a><path class="line" d="m17 10 h2 m0 0 h4 m48 0 h4 m0 0 h4 m122 0 h4 m3 0 h-3"/> + <polygon points="215 10 223 6 223 14"/> + <polygon points="215 10 207 6 207 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#collate-clause" title="collate_clause" shape="rect">collate_clause</a></div> + <div>         ::= 'COLLATE' <a href="#schema-qualified-name" title="schema_qualified_name" shape="rect">schema_qualified_name</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#attribute-definition" title="attribute-definition">attribute-definition</a></li><li><a href="#character-factor" title="character-factor">character-factor</a></li><li><a href="#character-set-definition" title="character-set-definition">character-set-definition</a></li><li><a href="#column-definition" title="column-definition">column-definition</a></li><li><a href="#domain-definition" title="domain-definition">domain-definition</a></li><li><a href="#grouping-column-reference" title="grouping-column-reference">grouping-column-reference</a></li><li><a href="#predefined-type" title="predefined-type">predefined-type</a></li><li><a href="#window-partition-column-reference" title="window-partition-column-reference">window-partition-column-reference</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + constraint_name_definition +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="245" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="68" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">CONSTRAINT</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#schema-qualified-name" xlink:title="schema_qualified_name" shape="rect"> + <rect x="99" y="1" width="122" height="18" class="nonterminal"/> + <text class="nonterminal" x="103" y="13">schema_qualified_name</text></a><path class="line" d="m17 10 h2 m0 0 h4 m68 0 h4 m0 0 h4 m122 0 h4 m3 0 h-3"/> + <polygon points="235 10 243 6 243 14"/> + <polygon points="235 10 227 6 227 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#constraint-name-definition" title="constraint_name_definition" shape="rect">constraint_name_definition</a></div> + <div>         ::= 'CONSTRAINT' <a href="#schema-qualified-name" title="schema_qualified_name" shape="rect">schema_qualified_name</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#column-constraint-definition" title="column-constraint-definition">column-constraint-definition</a></li><li><a href="#domain-constraint" title="domain-constraint">domain-constraint</a></li><li><a href="#table-constraint-definition" title="table-constraint-definition">table-constraint-definition</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + constraint_characteristics +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="593" height="140"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#constraint-check-time" xlink:title="constraint_check_time" shape="rect"> + <rect x="63" y="1" width="110" height="18" class="nonterminal"/> + <text class="nonterminal" x="67" y="13">constraint_check_time</text></a><rect x="221" y="43" width="28" height="18" class="terminal" rx="4"/> + <text class="terminal" x="225" y="55">NOT</text> + <rect x="277" y="22" width="66" height="18" class="terminal" rx="4"/> + <text class="terminal" x="281" y="34">DEFERRABLE</text> + <rect x="83" y="92" width="28" height="18" class="terminal" rx="4"/> + <text class="terminal" x="87" y="104">NOT</text> + <rect x="139" y="71" width="66" height="18" class="terminal" rx="4"/> + <text class="terminal" x="143" y="83">DEFERRABLE</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#constraint-check-time" xlink:title="constraint_check_time" shape="rect"> + <rect x="233" y="92" width="110" height="18" class="nonterminal"/> + <text class="nonterminal" x="237" y="104">constraint_check_time</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#constraint-enforcement" xlink:title="constraint_enforcement" shape="rect"> + <rect x="411" y="22" width="118" height="18" class="nonterminal"/> + <text class="nonterminal" x="415" y="34">constraint_enforcement</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#constraint-enforcement" xlink:title="constraint_enforcement" shape="rect"> + <rect x="43" y="120" width="118" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="132">constraint_enforcement</text></a><path class="line" d="m17 10 h2 m40 0 h4 m110 0 h4 m20 0 h10 m0 0 h140 m-170 0 h20 m150 0 h20 m-190 0 q10 0 10 10 m170 0 q0 -10 10 -10 m-180 10 v1 m170 0 v-1 m-170 1 q0 10 10 10 m150 0 q10 0 10 -10 m-140 10 h10 m0 0 h26 m-56 0 h20 m36 0 h20 m-76 0 q10 0 10 10 m56 0 q0 -10 10 -10 m-66 10 v1 m56 0 v-1 m-56 1 q0 10 10 10 m36 0 q10 0 10 -10 m-46 10 h4 m28 0 h4 m20 -21 h4 m66 0 h4 m-308 -21 h20 m308 0 h20 m-348 0 q10 0 10 10 m328 0 q0 -10 10 -10 m-338 10 v50 m328 0 v-50 m-328 50 q0 10 10 10 m308 0 q10 0 10 -10 m-298 10 h10 m0 0 h26 m-56 0 h20 m36 0 h20 m-76 0 q10 0 10 10 m56 0 q0 -10 10 -10 m-66 10 v1 m56 0 v-1 m-56 1 q0 10 10 10 m36 0 q10 0 10 -10 m-46 10 h4 m28 0 h4 m20 -21 h4 m66 0 h4 m20 0 h10 m0 0 h108 m-138 0 h20 m118 0 h20 m-158 0 q10 0 10 10 m138 0 q0 -10 10 -10 m-148 10 v1 m138 0 v-1 m-138 1 q0 10 10 10 m118 0 q10 0 10 -10 m-128 10 h4 m110 0 h4 m60 -91 h10 m0 0 h116 m-146 0 h20 m126 0 h20 m-166 0 q10 0 10 10 m146 0 q0 -10 10 -10 m-156 10 v1 m146 0 v-1 m-146 1 q0 10 10 10 m126 0 q10 0 10 -10 m-136 10 h4 m118 0 h4 m-514 -21 h20 m514 0 h20 m-554 0 q10 0 10 10 m534 0 q0 -10 10 -10 m-544 10 v99 m534 0 v-99 m-534 99 q0 10 10 10 m514 0 q10 0 10 -10 m-524 10 h4 m118 0 h4 m0 0 h388 m23 -119 h-3"/> + <polygon points="583 10 591 6 591 14"/> + <polygon points="583 10 575 6 575 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#constraint-characteristics" title="constraint_characteristics" shape="rect">constraint_characteristics</a></div> + <div>         ::= ( <a href="#constraint-check-time" title="constraint_check_time" shape="rect">constraint_check_time</a> ( 'NOT'? 'DEFERRABLE' )? | 'NOT'? 'DEFERRABLE' <a href="#constraint-check-time" title="constraint_check_time" shape="rect">constraint_check_time</a>? ) <a href="#constraint-enforcement" title="constraint_enforcement" shape="rect">constraint_enforcement</a>?</div> + <div>           | <a href="#constraint-enforcement" title="constraint_enforcement" shape="rect">constraint_enforcement</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#assertion-definition" title="assertion-definition">assertion-definition</a></li><li><a href="#column-constraint-definition" title="column-constraint-definition">column-constraint-definition</a></li><li><a href="#domain-constraint" title="domain-constraint">domain-constraint</a></li><li><a href="#table-constraint-definition" title="table-constraint-definition">table-constraint-definition</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + constraint_check_time +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="207" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="52" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">INITIALLY</text> + <rect x="103" y="1" width="54" height="18" class="terminal" rx="4"/> + <text class="terminal" x="107" y="13">DEFERRED</text> + <rect x="103" y="29" width="60" height="18" class="terminal" rx="4"/> + <text class="terminal" x="107" y="41">IMMEDIATE</text> + <path class="line" d="m17 10 h2 m0 0 h4 m52 0 h4 m20 0 h4 m54 0 h4 m0 0 h6 m-88 0 h20 m68 0 h20 m-108 0 q10 0 10 10 m88 0 q0 -10 10 -10 m-98 10 v8 m88 0 v-8 m-88 8 q0 10 10 10 m68 0 q10 0 10 -10 m-78 10 h4 m60 0 h4 m23 -28 h-3"/> + <polygon points="197 10 205 6 205 14"/> + <polygon points="197 10 189 6 189 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#constraint-check-time" title="constraint_check_time" shape="rect">constraint_check_time</a></div> + <div>         ::= 'INITIALLY' ( 'DEFERRED' | 'IMMEDIATE' )</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#constraint-characteristics" title="constraint-characteristics">constraint-characteristics</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + constraint_enforcement +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="181" height="42"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="43" y="22" width="28" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="34">NOT</text> + <rect x="99" y="1" width="58" height="18" class="terminal" rx="4"/> + <text class="terminal" x="103" y="13">ENFORCED</text> + <path class="line" d="m17 10 h2 m20 0 h10 m0 0 h26 m-56 0 h20 m36 0 h20 m-76 0 q10 0 10 10 m56 0 q0 -10 10 -10 m-66 10 v1 m56 0 v-1 m-56 1 q0 10 10 10 m36 0 q10 0 10 -10 m-46 10 h4 m28 0 h4 m20 -21 h4 m58 0 h4 m3 0 h-3"/> + <polygon points="171 10 179 6 179 14"/> + <polygon points="171 10 163 6 163 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#constraint-enforcement" title="constraint_enforcement" shape="rect">constraint_enforcement</a></div> + <div>         ::= 'NOT'? 'ENFORCED'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#alter-table-constraint-definition" title="alter-table-constraint-definition">alter-table-constraint-definition</a></li><li><a href="#constraint-characteristics" title="constraint-characteristics">constraint-characteristics</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + aggregate_function +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="323" height="189"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="43" y="1" width="40" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="13">COUNT</text> + <rect x="91" y="1" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="95" y="13">(</text> + <rect x="111" y="1" width="14" height="18" class="terminal" rx="4"/> + <text class="terminal" x="115" y="13">*</text> + <rect x="133" y="1" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="137" y="13">)</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#count" xlink:title="count" shape="rect"> + <rect x="43" y="29" width="34" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">count</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#general-set-function" xlink:title="general_set_function" shape="rect"> + <rect x="43" y="57" width="104" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="69">general_set_function</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#binary-set-function" xlink:title="binary_set_function" shape="rect"> + <rect x="43" y="85" width="98" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="97">binary_set_function</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#ordered-set-function" xlink:title="ordered_set_function" shape="rect"> + <rect x="43" y="113" width="106" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="125">ordered_set_function</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#array-aggregate-function" xlink:title="array_aggregate_function" shape="rect"> + <rect x="43" y="141" width="128" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="153">array_aggregate_function</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#presto-aggregations" xlink:title="presto_aggregations" shape="rect"> + <rect x="43" y="169" width="106" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="181">presto_aggregations</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#filter-clause" xlink:title="filter_clause" shape="rect"> + <rect x="219" y="22" width="60" height="18" class="nonterminal"/> + <text class="nonterminal" x="223" y="34">filter_clause</text></a><path class="line" d="m17 10 h2 m20 0 h4 m40 0 h4 m0 0 h4 m12 0 h4 m0 0 h4 m14 0 h4 m0 0 h4 m12 0 h4 m0 0 h26 m-156 0 h20 m136 0 h20 m-176 0 q10 0 10 10 m156 0 q0 -10 10 -10 m-166 10 v8 m156 0 v-8 m-156 8 q0 10 10 10 m136 0 q10 0 10 -10 m-146 10 h4 m34 0 h4 m0 0 h94 m-146 -10 v20 m156 0 v-20 m-156 20 v8 m156 0 v-8 m-156 8 q0 10 10 10 m136 0 q10 0 10 -10 m-146 10 h4 m104 0 h4 m0 0 h24 m-146 -10 v20 m156 0 v-20 m-156 20 v8 m156 0 v-8 m-156 8 q0 10 10 10 m136 0 q10 0 10 -10 m-146 10 h4 m98 0 h4 m0 0 h30 m-146 -10 v20 m156 0 v-20 m-156 20 v8 m156 0 v-8 m-156 8 q0 10 10 10 m136 0 q10 0 10 -10 m-146 10 h4 m106 0 h4 m0 0 h22 m-146 -10 v20 m156 0 v-20 m-156 20 v8 m156 0 v-8 m-156 8 q0 10 10 10 m136 0 q10 0 10 -10 m-146 10 h4 m128 0 h4 m-146 -10 v20 m156 0 v-20 m-156 20 v8 m156 0 v-8 m-156 8 q0 10 10 10 m136 0 q10 0 10 -10 m-146 10 h4 m106 0 h4 m0 0 h22 m40 -168 h10 m0 0 h58 m-88 0 h20 m68 0 h20 m-108 0 q10 0 10 10 m88 0 q0 -10 10 -10 m-98 10 v1 m88 0 v-1 m-88 1 q0 10 10 10 m68 0 q10 0 10 -10 m-78 10 h4 m60 0 h4 m23 -21 h-3"/> + <polygon points="313 10 321 6 321 14"/> + <polygon points="313 10 305 6 305 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#aggregate-function" title="aggregate_function" shape="rect">aggregate_function</a></div> + <div>         ::= ( 'COUNT' '(' '*' ')' | <a href="#count" title="count" shape="rect">count</a> | <a href="#general-set-function" title="general_set_function" shape="rect">general_set_function</a> | <a href="#binary-set-function" title="binary_set_function" shape="rect">binary_set_function</a> | <a href="#ordered-set-function" title="ordered_set_function" shape="rect">ordered_set_function</a> | <a href="#array-aggregate-function" title="array_aggregate_function" shape="rect">array_aggregate_function</a> | <a href="#presto-aggregations" title="presto_aggregations" shape="rect">presto_aggregations</a> ) <a href="#filter-clause" title="filter_clause" shape="rect">filter_clause</a>?</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#set-function-specification" title="set-function-specification">set-function-specification</a></li><li><a href="#window-function-type" title="window-function-type">window-function-type</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + general_set_function +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="539" height="42"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#set-function-type" xlink:title="set_function_type" shape="rect"> + <rect x="23" y="1" width="90" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">set_function_type</text></a><rect x="121" y="1" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="125" y="13">(</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#set-quantifier" xlink:title="set_quantifier" shape="rect"> + <rect x="161" y="22" width="70" height="18" class="nonterminal"/> + <text class="nonterminal" x="165" y="34">set_quantifier</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#value-expression" xlink:title="value_expression" shape="rect"> + <rect x="259" y="1" width="90" height="18" class="nonterminal"/> + <text class="nonterminal" x="263" y="13">value_expression</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#extra-args-to-agg" xlink:title="extra_args_to_agg" shape="rect"> + <rect x="377" y="22" width="98" height="18" class="nonterminal"/> + <text class="nonterminal" x="381" y="34">extra_args_to_agg</text></a><rect x="503" y="1" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="507" y="13">)</text> + <path class="line" d="m17 10 h2 m0 0 h4 m90 0 h4 m0 0 h4 m12 0 h4 m20 0 h10 m0 0 h68 m-98 0 h20 m78 0 h20 m-118 0 q10 0 10 10 m98 0 q0 -10 10 -10 m-108 10 v1 m98 0 v-1 m-98 1 q0 10 10 10 m78 0 q10 0 10 -10 m-88 10 h4 m70 0 h4 m20 -21 h4 m90 0 h4 m20 0 h10 m0 0 h96 m-126 0 h20 m106 0 h20 m-146 0 q10 0 10 10 m126 0 q0 -10 10 -10 m-136 10 v1 m126 0 v-1 m-126 1 q0 10 10 10 m106 0 q10 0 10 -10 m-116 10 h4 m98 0 h4 m20 -21 h4 m12 0 h4 m3 0 h-3"/> + <polygon points="529 10 537 6 537 14"/> + <polygon points="529 10 521 6 521 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#general-set-function" title="general_set_function" shape="rect">general_set_function</a></div> + <div>         ::= <a href="#set-function-type" title="set_function_type" shape="rect">set_function_type</a> '(' <a href="#set-quantifier" title="set_quantifier" shape="rect">set_quantifier</a>? <a href="#value-expression" title="value_expression" shape="rect">value_expression</a> <a href="#extra-args-to-agg" title="extra_args_to_agg" shape="rect">extra_args_to_agg</a>? ')'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#aggregate-function" title="aggregate-function">aggregate-function</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + set_function_type +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="171" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#computational-operation" xlink:title="computational_operation" shape="rect"> + <rect x="23" y="1" width="124" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">computational_operation</text></a><path class="line" d="m17 10 h2 m0 0 h4 m124 0 h4 m3 0 h-3"/> + <polygon points="161 10 169 6 169 14"/> + <polygon points="161 10 153 6 153 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#set-function-type" title="set_function_type" shape="rect">set_function_type</a></div> + <div>         ::= <a href="#computational-operation" title="computational_operation" shape="rect">computational_operation</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#general-set-function" title="general-set-function">general-set-function</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + computational_operation +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="163" height="413"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="43" y="1" width="26" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="13">AVG</text> + <rect x="43" y="29" width="28" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="41">MAX</text> + <rect x="43" y="57" width="26" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="69">MIN</text> + <rect x="43" y="85" width="28" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="97">SUM</text> + <rect x="43" y="113" width="36" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="125">EVERY</text> + <rect x="43" y="141" width="26" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="153">ANY</text> + <rect x="43" y="169" width="36" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="181">SOME</text> + <rect x="43" y="197" width="40" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="209">COUNT</text> + <rect x="43" y="225" width="70" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="237">STDDEV_POP</text> + <rect x="43" y="253" width="76" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="265">STDDEV_SAMP</text> + <rect x="43" y="281" width="60" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="293">VAR_SAMP</text> + <rect x="43" y="309" width="52" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="321">VAR_POP</text> + <rect x="43" y="337" width="48" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="349">COLLECT</text> + <rect x="43" y="365" width="44" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="377">FUSION</text> + <rect x="43" y="393" width="76" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="405">INTERSECTION</text> + <path class="line" d="m17 10 h2 m20 0 h4 m26 0 h4 m0 0 h50 m-104 0 h20 m84 0 h20 m-124 0 q10 0 10 10 m104 0 q0 -10 10 -10 m-114 10 v8 m104 0 v-8 m-104 8 q0 10 10 10 m84 0 q10 0 10 -10 m-94 10 h4 m28 0 h4 m0 0 h48 m-94 -10 v20 m104 0 v-20 m-104 20 v8 m104 0 v-8 m-104 8 q0 10 10 10 m84 0 q10 0 10 -10 m-94 10 h4 m26 0 h4 m0 0 h50 m-94 -10 v20 m104 0 v-20 m-104 20 v8 m104 0 v-8 m-104 8 q0 10 10 10 m84 0 q10 0 10 -10 m-94 10 h4 m28 0 h4 m0 0 h48 m-94 -10 v20 m104 0 v-20 m-104 20 v8 m104 0 v-8 m-104 8 q0 10 10 10 m84 0 q10 0 10 -10 m-94 10 h4 m36 0 h4 m0 0 h40 m-94 -10 v20 m104 0 v-20 m-104 20 v8 m104 0 v-8 m-104 8 q0 10 10 10 m84 0 q10 0 10 -10 m-94 10 h4 m26 0 h4 m0 0 h50 m-94 -10 v20 m104 0 v-20 m-104 20 v8 m104 0 v-8 m-104 8 q0 10 10 10 m84 0 q10 0 10 -10 m-94 10 h4 m36 0 h4 m0 0 h40 m-94 -10 v20 m104 0 v-20 m-104 20 v8 m104 0 v-8 m-104 8 q0 10 10 10 m84 0 q10 0 10 -10 m-94 10 h4 m40 0 h4 m0 0 h36 m-94 -10 v20 m104 0 v-20 m-104 20 v8 m104 0 v-8 m-104 8 q0 10 10 10 m84 0 q10 0 10 -10 m-94 10 h4 m70 0 h4 m0 0 h6 m-94 -10 v20 m104 0 v-20 m-104 20 v8 m104 0 v-8 m-104 8 q0 10 10 10 m84 0 q10 0 10 -10 m-94 10 h4 m76 0 h4 m-94 -10 v20 m104 0 v-20 m-104 20 v8 m104 0 v-8 m-104 8 q0 10 10 10 m84 0 q10 0 10 -10 m-94 10 h4 m60 0 h4 m0 0 h16 m-94 -10 v20 m104 0 v-20 m-104 20 v8 m104 0 v-8 m-104 8 q0 10 10 10 m84 0 q10 0 10 -10 m-94 10 h4 m52 0 h4 m0 0 h24 m-94 -10 v20 m104 0 v-20 m-104 20 v8 m104 0 v-8 m-104 8 q0 10 10 10 m84 0 q10 0 10 -10 m-94 10 h4 m48 0 h4 m0 0 h28 m-94 -10 v20 m104 0 v-20 m-104 20 v8 m104 0 v-8 m-104 8 q0 10 10 10 m84 0 q10 0 10 -10 m-94 10 h4 m44 0 h4 m0 0 h32 m-94 -10 v20 m104 0 v-20 m-104 20 v8 m104 0 v-8 m-104 8 q0 10 10 10 m84 0 q10 0 10 -10 m-94 10 h4 m76 0 h4 m23 -392 h-3"/> + <polygon points="153 10 161 6 161 14"/> + <polygon points="153 10 145 6 145 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#computational-operation" title="computational_operation" shape="rect">computational_operation</a></div> + <div>         ::= 'AVG'</div> + <div>           | 'MAX'</div> + <div>           | 'MIN'</div> + <div>           | 'SUM'</div> + <div>           | 'EVERY'</div> + <div>           | 'ANY'</div> + <div>           | 'SOME'</div> + <div>           | 'COUNT'</div> + <div>           | 'STDDEV_POP'</div> + <div>           | 'STDDEV_SAMP'</div> + <div>           | 'VAR_SAMP'</div> + <div>           | 'VAR_POP'</div> + <div>           | 'COLLECT'</div> + <div>           | 'FUSION'</div> + <div>           | 'INTERSECTION'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#set-function-type" title="set-function-type">set-function-type</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + set_quantifier +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="137" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="43" y="1" width="50" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="13">DISTINCT</text> + <rect x="43" y="29" width="24" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="41">ALL</text> + <path class="line" d="m17 10 h2 m20 0 h4 m50 0 h4 m-78 0 h20 m58 0 h20 m-98 0 q10 0 10 10 m78 0 q0 -10 10 -10 m-88 10 v8 m78 0 v-8 m-78 8 q0 10 10 10 m58 0 q10 0 10 -10 m-68 10 h4 m24 0 h4 m0 0 h26 m23 -28 h-3"/> + <polygon points="127 10 135 6 135 14"/> + <polygon points="127 10 119 6 119 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#set-quantifier" title="set_quantifier" shape="rect">set_quantifier</a></div> + <div>         ::= 'DISTINCT'</div> + <div>           | 'ALL'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#count" title="count">count</a></li><li><a href="#general-set-function" title="general-set-function">general-set-function</a></li><li><a href="#group-by-clause" title="group-by-clause">group-by-clause</a></li><li><a href="#presto-aggregations" title="presto-aggregations">presto-aggregations</a></li><li><a href="#query-specification" title="query-specification">query-specification</a></li><li><a href="#select-statement-single-row" title="select-statement-single-row">select-statement-single-row</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + filter_clause +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="269" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="38" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">FILTER</text> + <rect x="69" y="1" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="73" y="13">(</text> + <rect x="89" y="1" width="42" height="18" class="terminal" rx="4"/> + <text class="terminal" x="93" y="13">WHERE</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#search-condition" xlink:title="search_condition" shape="rect"> + <rect x="139" y="1" width="86" height="18" class="nonterminal"/> + <text class="nonterminal" x="143" y="13">search_condition</text></a><rect x="233" y="1" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="237" y="13">)</text> + <path class="line" d="m17 10 h2 m0 0 h4 m38 0 h4 m0 0 h4 m12 0 h4 m0 0 h4 m42 0 h4 m0 0 h4 m86 0 h4 m0 0 h4 m12 0 h4 m3 0 h-3"/> + <polygon points="259 10 267 6 267 14"/> + <polygon points="259 10 251 6 251 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#filter-clause" title="filter_clause" shape="rect">filter_clause</a></div> + <div>         ::= 'FILTER' '(' 'WHERE' <a href="#search-condition" title="search_condition" shape="rect">search_condition</a> ')'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#aggregate-function" title="aggregate-function">aggregate-function</a></li><li><a href="#udaf-filter" title="udaf-filter">udaf-filter</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + binary_set_function +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="563" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#binary-set-function-type" xlink:title="binary_set_function_type" shape="rect"> + <rect x="23" y="1" width="124" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">binary_set_function_type</text></a><rect x="155" y="1" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="159" y="13">(</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#dependent-variable-expression" xlink:title="dependent_variable_expression" shape="rect"> + <rect x="175" y="1" width="156" height="18" class="nonterminal"/> + <text class="nonterminal" x="179" y="13">dependent_variable_expression</text></a><rect x="339" y="1" width="8" height="18" class="terminal" rx="4"/> + <text class="terminal" x="343" y="13">,</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#independent-variable-expression" xlink:title="independent_variable_expression" shape="rect"> + <rect x="355" y="1" width="164" height="18" class="nonterminal"/> + <text class="nonterminal" x="359" y="13">independent_variable_expression</text></a><rect x="527" y="1" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="531" y="13">)</text> + <path class="line" d="m17 10 h2 m0 0 h4 m124 0 h4 m0 0 h4 m12 0 h4 m0 0 h4 m156 0 h4 m0 0 h4 m8 0 h4 m0 0 h4 m164 0 h4 m0 0 h4 m12 0 h4 m3 0 h-3"/> + <polygon points="553 10 561 6 561 14"/> + <polygon points="553 10 545 6 545 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#binary-set-function" title="binary_set_function" shape="rect">binary_set_function</a></div> + <div>         ::= <a href="#binary-set-function-type" title="binary_set_function_type" shape="rect">binary_set_function_type</a> '(' <a href="#dependent-variable-expression" title="dependent_variable_expression" shape="rect">dependent_variable_expression</a> ',' <a href="#independent-variable-expression" title="independent_variable_expression" shape="rect">independent_variable_expression</a> ')'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#aggregate-function" title="aggregate-function">aggregate-function</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + binary_set_function_type +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="175" height="329"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="43" y="1" width="66" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="13">COVAR_POP</text> + <rect x="43" y="29" width="74" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="41">COVAR_SAMP</text> + <rect x="43" y="57" width="34" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="69">CORR</text> + <rect x="43" y="85" width="68" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="97">REGR_SLOPE</text> + <rect x="43" y="113" width="88" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="125">REGR_INTERCEPT</text> + <rect x="43" y="141" width="72" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="153">REGR_COUNT</text> + <rect x="43" y="169" width="50" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="181">REGR_R2</text> + <rect x="43" y="197" width="64" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="209">REGR_AVGX</text> + <rect x="43" y="225" width="64" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="237">REGR_AVGY</text> + <rect x="43" y="253" width="56" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="265">REGR_SXX</text> + <rect x="43" y="281" width="56" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="293">REGR_SYY</text> + <rect x="43" y="309" width="56" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="321">REGR_SXY</text> + <path class="line" d="m17 10 h2 m20 0 h4 m66 0 h4 m0 0 h22 m-116 0 h20 m96 0 h20 m-136 0 q10 0 10 10 m116 0 q0 -10 10 -10 m-126 10 v8 m116 0 v-8 m-116 8 q0 10 10 10 m96 0 q10 0 10 -10 m-106 10 h4 m74 0 h4 m0 0 h14 m-106 -10 v20 m116 0 v-20 m-116 20 v8 m116 0 v-8 m-116 8 q0 10 10 10 m96 0 q10 0 10 -10 m-106 10 h4 m34 0 h4 m0 0 h54 m-106 -10 v20 m116 0 v-20 m-116 20 v8 m116 0 v-8 m-116 8 q0 10 10 10 m96 0 q10 0 10 -10 m-106 10 h4 m68 0 h4 m0 0 h20 m-106 -10 v20 m116 0 v-20 m-116 20 v8 m116 0 v-8 m-116 8 q0 10 10 10 m96 0 q10 0 10 -10 m-106 10 h4 m88 0 h4 m-106 -10 v20 m116 0 v-20 m-116 20 v8 m116 0 v-8 m-116 8 q0 10 10 10 m96 0 q10 0 10 -10 m-106 10 h4 m72 0 h4 m0 0 h16 m-106 -10 v20 m116 0 v-20 m-116 20 v8 m116 0 v-8 m-116 8 q0 10 10 10 m96 0 q10 0 10 -10 m-106 10 h4 m50 0 h4 m0 0 h38 m-106 -10 v20 m116 0 v-20 m-116 20 v8 m116 0 v-8 m-116 8 q0 10 10 10 m96 0 q10 0 10 -10 m-106 10 h4 m64 0 h4 m0 0 h24 m-106 -10 v20 m116 0 v-20 m-116 20 v8 m116 0 v-8 m-116 8 q0 10 10 10 m96 0 q10 0 10 -10 m-106 10 h4 m64 0 h4 m0 0 h24 m-106 -10 v20 m116 0 v-20 m-116 20 v8 m116 0 v-8 m-116 8 q0 10 10 10 m96 0 q10 0 10 -10 m-106 10 h4 m56 0 h4 m0 0 h32 m-106 -10 v20 m116 0 v-20 m-116 20 v8 m116 0 v-8 m-116 8 q0 10 10 10 m96 0 q10 0 10 -10 m-106 10 h4 m56 0 h4 m0 0 h32 m-106 -10 v20 m116 0 v-20 m-116 20 v8 m116 0 v-8 m-116 8 q0 10 10 10 m96 0 q10 0 10 -10 m-106 10 h4 m56 0 h4 m0 0 h32 m23 -308 h-3"/> + <polygon points="165 10 173 6 173 14"/> + <polygon points="165 10 157 6 157 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#binary-set-function-type" title="binary_set_function_type" shape="rect">binary_set_function_type</a></div> + <div>         ::= 'COVAR_POP'</div> + <div>           | 'COVAR_SAMP'</div> + <div>           | 'CORR'</div> + <div>           | 'REGR_SLOPE'</div> + <div>           | 'REGR_INTERCEPT'</div> + <div>           | 'REGR_COUNT'</div> + <div>           | 'REGR_R2'</div> + <div>           | 'REGR_AVGX'</div> + <div>           | 'REGR_AVGY'</div> + <div>           | 'REGR_SXX'</div> + <div>           | 'REGR_SYY'</div> + <div>           | 'REGR_SXY'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#binary-set-function" title="binary-set-function">binary-set-function</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + dependent_variable_expression +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="179" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#numeric-value-expression" xlink:title="numeric_value_expression" shape="rect"> + <rect x="23" y="1" width="132" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">numeric_value_expression</text></a><path class="line" d="m17 10 h2 m0 0 h4 m132 0 h4 m3 0 h-3"/> + <polygon points="169 10 177 6 177 14"/> + <polygon points="169 10 161 6 161 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#dependent-variable-expression" title="dependent_variable_expression" shape="rect">dependent_variable_expression</a></div> + <div>         ::= <a href="#numeric-value-expression" title="numeric_value_expression" shape="rect">numeric_value_expression</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#binary-set-function" title="binary-set-function">binary-set-function</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + independent_variable_expression +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="179" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#numeric-value-expression" xlink:title="numeric_value_expression" shape="rect"> + <rect x="23" y="1" width="132" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">numeric_value_expression</text></a><path class="line" d="m17 10 h2 m0 0 h4 m132 0 h4 m3 0 h-3"/> + <polygon points="169 10 177 6 177 14"/> + <polygon points="169 10 161 6 161 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#independent-variable-expression" title="independent_variable_expression" shape="rect">independent_variable_expression</a></div> + <div>         ::= <a href="#numeric-value-expression" title="numeric_value_expression" shape="rect">numeric_value_expression</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#binary-set-function" title="binary-set-function">binary-set-function</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + ordered_set_function +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="223" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#hypothetical-set-function" xlink:title="hypothetical_set_function" shape="rect"> + <rect x="43" y="1" width="124" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">hypothetical_set_function</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#inverse-distribution-function" xlink:title="inverse_distribution_function" shape="rect"> + <rect x="43" y="29" width="136" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">inverse_distribution_function</text></a><path class="line" d="m17 10 h2 m20 0 h4 m124 0 h4 m0 0 h12 m-164 0 h20 m144 0 h20 m-184 0 q10 0 10 10 m164 0 q0 -10 10 -10 m-174 10 v8 m164 0 v-8 m-164 8 q0 10 10 10 m144 0 q10 0 10 -10 m-154 10 h4 m136 0 h4 m23 -28 h-3"/> + <polygon points="213 10 221 6 221 14"/> + <polygon points="213 10 205 6 205 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#ordered-set-function" title="ordered_set_function" shape="rect">ordered_set_function</a></div> + <div>         ::= <a href="#hypothetical-set-function" title="hypothetical_set_function" shape="rect">hypothetical_set_function</a></div> + <div>           | <a href="#inverse-distribution-function" title="inverse_distribution_function" shape="rect">inverse_distribution_function</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#aggregate-function" title="aggregate-function">aggregate-function</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + hypothetical_set_function +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="551" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#rank-function-type" xlink:title="rank_function_type" shape="rect"> + <rect x="23" y="1" width="96" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">rank_function_type</text></a><rect x="127" y="1" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="131" y="13">(</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#hypothetical-set-function-value-expression-list" xlink:title="hypothetical_set_function_value_expression_list" shape="rect"> + <rect x="147" y="1" width="226" height="18" class="nonterminal"/> + <text class="nonterminal" x="151" y="13">hypothetical_set_function_value_expression_list</text></a><rect x="381" y="1" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="385" y="13">)</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#within-group-specification" xlink:title="within_group_specification" shape="rect"> + <rect x="401" y="1" width="126" height="18" class="nonterminal"/> + <text class="nonterminal" x="405" y="13">within_group_specification</text></a><path class="line" d="m17 10 h2 m0 0 h4 m96 0 h4 m0 0 h4 m12 0 h4 m0 0 h4 m226 0 h4 m0 0 h4 m12 0 h4 m0 0 h4 m126 0 h4 m3 0 h-3"/> + <polygon points="541 10 549 6 549 14"/> + <polygon points="541 10 533 6 533 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#hypothetical-set-function" title="hypothetical_set_function" shape="rect">hypothetical_set_function</a></div> + <div>         ::= <a href="#rank-function-type" title="rank_function_type" shape="rect">rank_function_type</a> '(' <a href="#hypothetical-set-function-value-expression-list" title="hypothetical_set_function_value_expression_list" shape="rect">hypothetical_set_function_value_expression_list</a> ')' <a href="#within-group-specification" title="within_group_specification" shape="rect">within_group_specification</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#ordered-set-function" title="ordered-set-function">ordered-set-function</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + within_group_specification +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="367" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="44" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">WITHIN</text> + <rect x="75" y="1" width="42" height="18" class="terminal" rx="4"/> + <text class="terminal" x="79" y="13">GROUP</text> + <rect x="125" y="1" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="129" y="13">(</text> + <rect x="145" y="1" width="40" height="18" class="terminal" rx="4"/> + <text class="terminal" x="149" y="13">ORDER</text> + <rect x="193" y="1" width="20" height="18" class="terminal" rx="4"/> + <text class="terminal" x="197" y="13">BY</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#sort-specification-list" xlink:title="sort_specification_list" shape="rect"> + <rect x="221" y="1" width="102" height="18" class="nonterminal"/> + <text class="nonterminal" x="225" y="13">sort_specification_list</text></a><rect x="331" y="1" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="335" y="13">)</text> + <path class="line" d="m17 10 h2 m0 0 h4 m44 0 h4 m0 0 h4 m42 0 h4 m0 0 h4 m12 0 h4 m0 0 h4 m40 0 h4 m0 0 h4 m20 0 h4 m0 0 h4 m102 0 h4 m0 0 h4 m12 0 h4 m3 0 h-3"/> + <polygon points="357 10 365 6 365 14"/> + <polygon points="357 10 349 6 349 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#within-group-specification" title="within_group_specification" shape="rect">within_group_specification</a></div> + <div>         ::= 'WITHIN' 'GROUP' '(' 'ORDER' 'BY' <a href="#sort-specification-list" title="sort_specification_list" shape="rect">sort_specification_list</a> ')'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#hypothetical-set-function" title="hypothetical-set-function">hypothetical-set-function</a></li><li><a href="#inverse-distribution-function" title="inverse-distribution-function">inverse-distribution-function</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + hypothetical_set_function_value_expression_list +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="177" height="49"> + <polygon points="9 38 1 34 1 42"/> + <polygon points="17 38 9 34 9 42"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#value-expression" xlink:title="value_expression" shape="rect"> + <rect x="43" y="29" width="90" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">value_expression</text></a><rect x="43" y="1" width="8" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="13">,</text> + <path class="line" d="m17 38 h2 m20 0 h4 m90 0 h4 m-118 0 l20 0 m-1 0 q-9 0 -9 -10 l0 -8 q0 -10 10 -10 m98 28 l20 0 m-20 0 q10 0 10 -10 l0 -8 q0 -10 -10 -10 m-98 0 h4 m8 0 h4 m0 0 h82 m23 28 h-3"/> + <polygon points="167 38 175 34 175 42"/> + <polygon points="167 38 159 34 159 42"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#hypothetical-set-function-value-expression-list" title="hypothetical_set_function_value_expression_list" shape="rect">hypothetical_set_function_value_expression_list</a></div> + <div>         ::= <a href="#value-expression" title="value_expression" shape="rect">value_expression</a> ( ',' <a href="#value-expression" title="value_expression" shape="rect">value_expression</a> )*</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#hypothetical-set-function" title="hypothetical-set-function">hypothetical-set-function</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + inverse_distribution_function +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="579" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#inverse-distribution-function-type" xlink:title="inverse_distribution_function_type" shape="rect"> + <rect x="23" y="1" width="162" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">inverse_distribution_function_type</text></a><rect x="193" y="1" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="197" y="13">(</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#inverse-distribution-function-argument" xlink:title="inverse_distribution_function_argument" shape="rect"> + <rect x="213" y="1" width="188" height="18" class="nonterminal"/> + <text class="nonterminal" x="217" y="13">inverse_distribution_function_argument</text></a><rect x="409" y="1" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="413" y="13">)</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#within-group-specification" xlink:title="within_group_specification" shape="rect"> + <rect x="429" y="1" width="126" height="18" class="nonterminal"/> + <text class="nonterminal" x="433" y="13">within_group_specification</text></a><path class="line" d="m17 10 h2 m0 0 h4 m162 0 h4 m0 0 h4 m12 0 h4 m0 0 h4 m188 0 h4 m0 0 h4 m12 0 h4 m0 0 h4 m126 0 h4 m3 0 h-3"/> + <polygon points="569 10 577 6 577 14"/> + <polygon points="569 10 561 6 561 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#inverse-distribution-function" title="inverse_distribution_function" shape="rect">inverse_distribution_function</a></div> + <div>         ::= <a href="#inverse-distribution-function-type" title="inverse_distribution_function_type" shape="rect">inverse_distribution_function_type</a> '(' <a href="#inverse-distribution-function-argument" title="inverse_distribution_function_argument" shape="rect">inverse_distribution_function_argument</a> ')' <a href="#within-group-specification" title="within_group_specification" shape="rect">within_group_specification</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#ordered-set-function" title="ordered-set-function">ordered-set-function</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + inverse_distribution_function_argument +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="179" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#numeric-value-expression" xlink:title="numeric_value_expression" shape="rect"> + <rect x="23" y="1" width="132" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">numeric_value_expression</text></a><path class="line" d="m17 10 h2 m0 0 h4 m132 0 h4 m3 0 h-3"/> + <polygon points="169 10 177 6 177 14"/> + <polygon points="169 10 161 6 161 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#inverse-distribution-function-argument" title="inverse_distribution_function_argument" shape="rect">inverse_distribution_function_argument</a></div> + <div>         ::= <a href="#numeric-value-expression" title="numeric_value_expression" shape="rect">numeric_value_expression</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#inverse-distribution-function" title="inverse-distribution-function">inverse-distribution-function</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + inverse_distribution_function_type +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="181" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="43" y="1" width="94" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="13">PERCENTILE_CONT</text> + <rect x="43" y="29" width="90" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="41">PERCENTILE_DISC</text> + <path class="line" d="m17 10 h2 m20 0 h4 m94 0 h4 m-122 0 h20 m102 0 h20 m-142 0 q10 0 10 10 m122 0 q0 -10 10 -10 m-132 10 v8 m122 0 v-8 m-122 8 q0 10 10 10 m102 0 q10 0 10 -10 m-112 10 h4 m90 0 h4 m0 0 h4 m23 -28 h-3"/> + <polygon points="171 10 179 6 179 14"/> + <polygon points="171 10 163 6 163 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#inverse-distribution-function-type" title="inverse_distribution_function_type" shape="rect">inverse_distribution_function_type</a></div> + <div>         ::= 'PERCENTILE_CONT'</div> + <div>           | 'PERCENTILE_DISC'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#inverse-distribution-function" title="inverse-distribution-function">inverse-distribution-function</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + array_aggregate_function +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="573" height="42"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="64" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">ARRAY_AGG</text> + <rect x="95" y="1" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="99" y="13">(</text> + <rect x="135" y="22" width="50" height="18" class="terminal" rx="4"/> + <text class="terminal" x="139" y="34">DISTINCT</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#value-expression" xlink:title="value_expression" shape="rect"> + <rect x="213" y="1" width="90" height="18" class="nonterminal"/> + <text class="nonterminal" x="217" y="13">value_expression</text></a><rect x="331" y="22" width="40" height="18" class="terminal" rx="4"/> + <text class="terminal" x="335" y="34">ORDER</text> + <rect x="379" y="22" width="20" height="18" class="terminal" rx="4"/> + <text class="terminal" x="383" y="34">BY</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#sort-specification-list" xlink:title="sort_specification_list" shape="rect"> + <rect x="407" y="22" width="102" height="18" class="nonterminal"/> + <text class="nonterminal" x="411" y="34">sort_specification_list</text></a><rect x="537" y="1" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="541" y="13">)</text> + <path class="line" d="m17 10 h2 m0 0 h4 m64 0 h4 m0 0 h4 m12 0 h4 m20 0 h10 m0 0 h48 m-78 0 h20 m58 0 h20 m-98 0 q10 0 10 10 m78 0 q0 -10 10 -10 m-88 10 v1 m78 0 v-1 m-78 1 q0 10 10 10 m58 0 q10 0 10 -10 m-68 10 h4 m50 0 h4 m20 -21 h4 m90 0 h4 m20 0 h10 m0 0 h176 m-206 0 h20 m186 0 h20 m-226 0 q10 0 10 10 m206 0 q0 -10 10 -10 m-216 10 v1 m206 0 v-1 m-206 1 q0 10 10 10 m186 0 q10 0 10 -10 m-196 10 h4 m40 0 h4 m0 0 h4 m20 0 h4 m0 0 h4 m102 0 h4 m20 -21 h4 m12 0 h4 m3 0 h-3"/> + <polygon points="563 10 571 6 571 14"/> + <polygon points="563 10 555 6 555 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#array-aggregate-function" title="array_aggregate_function" shape="rect">array_aggregate_function</a></div> + <div>         ::= 'ARRAY_AGG' '(' 'DISTINCT'? <a href="#value-expression" title="value_expression" shape="rect">value_expression</a> ( 'ORDER' 'BY' <a href="#sort-specification-list" title="sort_specification_list" shape="rect">sort_specification_list</a> )? ')'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#aggregate-function" title="aggregate-function">aggregate-function</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + sort_specification_list +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="173" height="49"> + <polygon points="9 38 1 34 1 42"/> + <polygon points="17 38 9 34 9 42"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#sort-specification" xlink:title="sort_specification" shape="rect"> + <rect x="43" y="29" width="86" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">sort_specification</text></a><rect x="43" y="1" width="8" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="13">,</text> + <path class="line" d="m17 38 h2 m20 0 h4 m86 0 h4 m-114 0 l20 0 m-1 0 q-9 0 -9 -10 l0 -8 q0 -10 10 -10 m94 28 l20 0 m-20 0 q10 0 10 -10 l0 -8 q0 -10 -10 -10 m-94 0 h4 m8 0 h4 m0 0 h78 m23 28 h-3"/> + <polygon points="163 38 171 34 171 42"/> + <polygon points="163 38 155 34 155 42"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#sort-specification-list" title="sort_specification_list" shape="rect">sort_specification_list</a></div> + <div>         ::= <a href="#sort-specification" title="sort_specification" shape="rect">sort_specification</a> ( ',' <a href="#sort-specification" title="sort_specification" shape="rect">sort_specification</a> )*</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#array-aggregate-function" title="array-aggregate-function">array-aggregate-function</a></li><li><a href="#order-by-clause" title="order-by-clause">order-by-clause</a></li><li><a href="#window-order-clause" title="window-order-clause">window-order-clause</a></li><li><a href="#within-group-specification" title="within-group-specification">within-group-specification</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + sort_specification +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="365" height="42"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#sort-key" xlink:title="sort_key" shape="rect"> + <rect x="23" y="1" width="48" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">sort_key</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#ordering-specification" xlink:title="ordering_specification" shape="rect"> + <rect x="99" y="22" width="106" height="18" class="nonterminal"/> + <text class="nonterminal" x="103" y="34">ordering_specification</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#null-ordering" xlink:title="null_ordering" shape="rect"> + <rect x="253" y="22" width="68" height="18" class="nonterminal"/> + <text class="nonterminal" x="257" y="34">null_ordering</text></a><path class="line" d="m17 10 h2 m0 0 h4 m48 0 h4 m20 0 h10 m0 0 h104 m-134 0 h20 m114 0 h20 m-154 0 q10 0 10 10 m134 0 q0 -10 10 -10 m-144 10 v1 m134 0 v-1 m-134 1 q0 10 10 10 m114 0 q10 0 10 -10 m-124 10 h4 m106 0 h4 m40 -21 h10 m0 0 h66 m-96 0 h20 m76 0 h20 m-116 0 q10 0 10 10 m96 0 q0 -10 10 -10 m-106 10 v1 m96 0 v-1 m-96 1 q0 10 10 10 m76 0 q10 0 10 -10 m-86 10 h4 m68 0 h4 m23 -21 h-3"/> + <polygon points="355 10 363 6 363 14"/> + <polygon points="355 10 347 6 347 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#sort-specification" title="sort_specification" shape="rect">sort_specification</a></div> + <div>         ::= <a href="#sort-key" title="sort_key" shape="rect">sort_key</a> <a href="#ordering-specification" title="ordering_specification" shape="rect">ordering_specification</a>? <a href="#null-ordering" title="null_ordering" shape="rect">null_ordering</a>?</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#sort-specification-list" title="sort-specification-list">sort-specification-list</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + sort_key +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="137" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#value-expression" xlink:title="value_expression" shape="rect"> + <rect x="23" y="1" width="90" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">value_expression</text></a><path class="line" d="m17 10 h2 m0 0 h4 m90 0 h4 m3 0 h-3"/> + <polygon points="127 10 135 6 135 14"/> + <polygon points="127 10 119 6 119 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#sort-key" title="sort_key" shape="rect">sort_key</a> ::= <a href="#value-expression" title="value_expression" shape="rect">value_expression</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#sort-specification" title="sort-specification">sort-specification</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + ordering_specification +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="119" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="43" y="1" width="26" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="13">ASC</text> + <rect x="43" y="29" width="32" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="41">DESC</text> + <path class="line" d="m17 10 h2 m20 0 h4 m26 0 h4 m0 0 h6 m-60 0 h20 m40 0 h20 m-80 0 q10 0 10 10 m60 0 q0 -10 10 -10 m-70 10 v8 m60 0 v-8 m-60 8 q0 10 10 10 m40 0 q10 0 10 -10 m-50 10 h4 m32 0 h4 m23 -28 h-3"/> + <polygon points="109 10 117 6 117 14"/> + <polygon points="109 10 101 6 101 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#ordering-specification" title="ordering_specification" shape="rect">ordering_specification</a></div> + <div>         ::= 'ASC'</div> + <div>           | 'DESC'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#sort-specification" title="sort-specification">sort-specification</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + null_ordering +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="167" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="38" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">NULLS</text> + <rect x="89" y="1" width="34" height="18" class="terminal" rx="4"/> + <text class="terminal" x="93" y="13">FIRST</text> + <rect x="89" y="29" width="30" height="18" class="terminal" rx="4"/> + <text class="terminal" x="93" y="41">LAST</text> + <path class="line" d="m17 10 h2 m0 0 h4 m38 0 h4 m20 0 h4 m34 0 h4 m-62 0 h20 m42 0 h20 m-82 0 q10 0 10 10 m62 0 q0 -10 10 -10 m-72 10 v8 m62 0 v-8 m-62 8 q0 10 10 10 m42 0 q10 0 10 -10 m-52 10 h4 m30 0 h4 m0 0 h4 m23 -28 h-3"/> + <polygon points="157 10 165 6 165 14"/> + <polygon points="157 10 149 6 149 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#null-ordering" title="null_ordering" shape="rect">null_ordering</a></div> + <div>         ::= 'NULLS' ( 'FIRST' | 'LAST' )</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#sort-specification" title="sort-specification">sort-specification</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + schema_definition +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="721" height="63"> + <polygon points="9 31 1 27 1 35"/> + <polygon points="17 31 9 27 9 35"/> + <rect x="23" y="22" width="42" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="34">CREATE</text> + <rect x="73" y="22" width="46" height="18" class="terminal" rx="4"/> + <text class="terminal" x="77" y="34">SCHEMA</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#if-not-exists" xlink:title="if_not_exists" shape="rect"> + <rect x="147" y="43" width="66" height="18" class="nonterminal"/> + <text class="nonterminal" x="151" y="55">if_not_exists</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#schema-name-clause" xlink:title="schema_name_clause" shape="rect"> + <rect x="241" y="22" width="114" height="18" class="nonterminal"/> + <text class="nonterminal" x="245" y="34">schema_name_clause</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#schema-character-set-or-path" xlink:title="schema_character_set_or_path" shape="rect"> + <rect x="383" y="43" width="156" height="18" class="nonterminal"/> + <text class="nonterminal" x="387" y="55">schema_character_set_or_path</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#schema-element" xlink:title="schema_element" shape="rect"> + <rect x="587" y="1" width="90" height="18" class="nonterminal"/> + <text class="nonterminal" x="591" y="13">schema_element</text></a><path class="line" d="m17 31 h2 m0 0 h4 m42 0 h4 m0 0 h4 m46 0 h4 m20 0 h10 m0 0 h64 m-94 0 h20 m74 0 h20 m-114 0 q10 0 10 10 m94 0 q0 -10 10 -10 m-104 10 v1 m94 0 v-1 m-94 1 q0 10 10 10 m74 0 q10 0 10 -10 m-84 10 h4 m66 0 h4 m20 -21 h4 m114 0 h4 m20 0 h10 m0 0 h154 m-184 0 h20 m164 0 h20 m-204 0 q10 0 10 10 m184 0 q0 -10 10 -10 m-194 10 v1 m184 0 v-1 m-184 1 q0 10 10 10 m164 0 q10 0 10 -10 m-174 10 h4 m156 0 h4 m40 -21 h10 m0 0 h88 m-118 0 l20 0 m-1 0 q-9 0 -9 -10 l0 -1 q0 -10 10 -10 m98 21 l20 0 m-20 0 q10 0 10 -10 l0 -1 q0 -10 -10 -10 m-98 0 h4 m90 0 h4 m23 21 h-3"/> + <polygon points="711 31 719 27 719 35"/> + <polygon points="711 31 703 27 703 35"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#schema-definition" title="schema_definition" shape="rect">schema_definition</a></div> + <div>         ::= 'CREATE' 'SCHEMA' <a href="#if-not-exists" title="if_not_exists" shape="rect">if_not_exists</a>? <a href="#schema-name-clause" title="schema_name_clause" shape="rect">schema_name_clause</a> <a href="#schema-character-set-or-path" title="schema_character_set_or_path" shape="rect">schema_character_set_or_path</a>? <a href="#schema-element" title="schema_element" shape="rect">schema_element</a>*</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#sql-schema-definition-statement" title="sql-schema-definition-statement">sql-schema-definition-statement</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + schema_character_set_or_path +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="439" height="91"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#schema-character-set-specification" xlink:title="schema_character_set_specification" shape="rect"> + <rect x="43" y="1" width="172" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">schema_character_set_specification</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#schema-path-specification" xlink:title="schema_path_specification" shape="rect"> + <rect x="243" y="22" width="132" height="18" class="nonterminal"/> + <text class="nonterminal" x="247" y="34">schema_path_specification</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#schema-path-specification" xlink:title="schema_path_specification" shape="rect"> + <rect x="43" y="50" width="132" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="62">schema_path_specification</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#schema-character-set-specification" xlink:title="schema_character_set_specification" shape="rect"> + <rect x="203" y="71" width="172" height="18" class="nonterminal"/> + <text class="nonterminal" x="207" y="83">schema_character_set_specification</text></a><path class="line" d="m17 10 h2 m20 0 h4 m172 0 h4 m20 0 h10 m0 0 h130 m-160 0 h20 m140 0 h20 m-180 0 q10 0 10 10 m160 0 q0 -10 10 -10 m-170 10 v1 m160 0 v-1 m-160 1 q0 10 10 10 m140 0 q10 0 10 -10 m-150 10 h4 m132 0 h4 m-360 -21 h20 m360 0 h20 m-400 0 q10 0 10 10 m380 0 q0 -10 10 -10 m-390 10 v29 m380 0 v-29 m-380 29 q0 10 10 10 m360 0 q10 0 10 -10 m-370 10 h4 m132 0 h4 m20 0 h10 m0 0 h170 m-200 0 h20 m180 0 h20 m-220 0 q10 0 10 10 m200 0 q0 -10 10 -10 m-210 10 v1 m200 0 v-1 m-200 1 q0 10 10 10 m180 0 q10 0 10 -10 m-190 10 h4 m172 0 h4 m43 -70 h-3"/> + <polygon points="429 10 437 6 437 14"/> + <polygon points="429 10 421 6 421 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#schema-character-set-or-path" title="schema_character_set_or_path" shape="rect">schema_character_set_or_path</a></div> + <div>         ::= <a href="#schema-character-set-specification" title="schema_character_set_specification" shape="rect">schema_character_set_specification</a> <a href="#schema-path-specification" title="schema_path_specification" shape="rect">schema_path_specification</a>?</div> + <div>           | <a href="#schema-path-specification" title="schema_path_specification" shape="rect">schema_path_specification</a> <a href="#schema-character-set-specification" title="schema_character_set_specification" shape="rect">schema_character_set_specification</a>?</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#schema-definition" title="schema-definition">schema-definition</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + schema_name_clause +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="355" height="70"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#schema-name" xlink:title="schema_name" shape="rect"> + <rect x="43" y="1" width="80" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">schema_name</text></a><rect x="151" y="22" width="86" height="18" class="terminal" rx="4"/> + <text class="terminal" x="155" y="34">AUTHORIZATION</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#identifier" xlink:title="identifier" shape="rect"> + <rect x="245" y="22" width="46" height="18" class="nonterminal"/> + <text class="nonterminal" x="249" y="34">identifier</text></a><rect x="43" y="50" width="86" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="62">AUTHORIZATION</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#identifier" xlink:title="identifier" shape="rect"> + <rect x="137" y="50" width="46" height="18" class="nonterminal"/> + <text class="nonterminal" x="141" y="62">identifier</text></a><path class="line" d="m17 10 h2 m20 0 h4 m80 0 h4 m20 0 h10 m0 0 h138 m-168 0 h20 m148 0 h20 m-188 0 q10 0 10 10 m168 0 q0 -10 10 -10 m-178 10 v1 m168 0 v-1 m-168 1 q0 10 10 10 m148 0 q10 0 10 -10 m-158 10 h4 m86 0 h4 m0 0 h4 m46 0 h4 m-276 -21 h20 m276 0 h20 m-316 0 q10 0 10 10 m296 0 q0 -10 10 -10 m-306 10 v29 m296 0 v-29 m-296 29 q0 10 10 10 m276 0 q10 0 10 -10 m-286 10 h4 m86 0 h4 m0 0 h4 m46 0 h4 m0 0 h128 m23 -49 h-3"/> + <polygon points="345 10 353 6 353 14"/> + <polygon points="345 10 337 6 337 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#schema-name-clause" title="schema_name_clause" shape="rect">schema_name_clause</a></div> + <div>         ::= <a href="#schema-name" title="schema_name" shape="rect">schema_name</a> ( 'AUTHORIZATION' <a href="#identifier" title="identifier" shape="rect">identifier</a> )?</div> + <div>           | 'AUTHORIZATION' <a href="#identifier" title="identifier" shape="rect">identifier</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#schema-definition" title="schema-definition">schema-definition</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + schema_character_set_specification +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="335" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="48" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">DEFAULT</text> + <rect x="79" y="1" width="62" height="18" class="terminal" rx="4"/> + <text class="terminal" x="83" y="13">CHARACTER</text> + <rect x="149" y="1" width="24" height="18" class="terminal" rx="4"/> + <text class="terminal" x="153" y="13">SET</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#character-set-specification" xlink:title="character_set_specification" shape="rect"> + <rect x="181" y="1" width="130" height="18" class="nonterminal"/> + <text class="nonterminal" x="185" y="13">character_set_specification</text></a><path class="line" d="m17 10 h2 m0 0 h4 m48 0 h4 m0 0 h4 m62 0 h4 m0 0 h4 m24 0 h4 m0 0 h4 m130 0 h4 m3 0 h-3"/> + <polygon points="325 10 333 6 333 14"/> + <polygon points="325 10 317 6 317 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#schema-character-set-specification" title="schema_character_set_specification" shape="rect">schema_character_set_specification</a></div> + <div>         ::= 'DEFAULT' 'CHARACTER' 'SET' <a href="#character-set-specification" title="character_set_specification" shape="rect">character_set_specification</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#schema-character-set-or-path" title="schema-character-set-or-path">schema-character-set-or-path</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + schema_path_specification +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="137" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#path-specification" xlink:title="path_specification" shape="rect"> + <rect x="23" y="1" width="90" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">path_specification</text></a><path class="line" d="m17 10 h2 m0 0 h4 m90 0 h4 m3 0 h-3"/> + <polygon points="127 10 135 6 135 14"/> + <polygon points="127 10 119 6 119 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#schema-path-specification" title="schema_path_specification" shape="rect">schema_path_specification</a></div> + <div>         ::= <a href="#path-specification" title="path_specification" shape="rect">path_specification</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#schema-character-set-or-path" title="schema-character-set-or-path">schema-character-set-or-path</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + schema_element +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="245" height="441"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#table-definition" xlink:title="table_definition" shape="rect"> + <rect x="43" y="1" width="76" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">table_definition</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#view-definition" xlink:title="view_definition" shape="rect"> + <rect x="43" y="29" width="74" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">view_definition</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#domain-definition" xlink:title="domain_definition" shape="rect"> + <rect x="43" y="57" width="90" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="69">domain_definition</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#character-set-definition" xlink:title="character_set_definition" shape="rect"> + <rect x="43" y="85" width="116" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="97">character_set_definition</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#collation-definition" xlink:title="collation_definition" shape="rect"> + <rect x="43" y="113" width="90" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="125">collation_definition</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#transliteration-definition" xlink:title="transliteration_definition" shape="rect"> + <rect x="43" y="141" width="114" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="153">transliteration_definition</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#assertion-definition" xlink:title="assertion_definition" shape="rect"> + <rect x="43" y="169" width="96" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="181">assertion_definition</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#trigger-definition" xlink:title="trigger_definition" shape="rect"> + <rect x="43" y="197" width="84" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="209">trigger_definition</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#user-defined-type-definition" xlink:title="user_defined_type_definition" shape="rect"> + <rect x="43" y="225" width="140" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="237">user_defined_type_definition</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#user-defined-cast-definition" xlink:title="user_defined_cast_definition" shape="rect"> + <rect x="43" y="253" width="138" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="265">user_defined_cast_definition</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#user-defined-ordering-definition" xlink:title="user_defined_ordering_definition" shape="rect"> + <rect x="43" y="281" width="158" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="293">user_defined_ordering_definition</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#transform-definition" xlink:title="transform_definition" shape="rect"> + <rect x="43" y="309" width="98" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="321">transform_definition</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#schema-routine" xlink:title="schema_routine" shape="rect"> + <rect x="43" y="337" width="84" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="349">schema_routine</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#sequence-generator-definition" xlink:title="sequence_generator_definition" shape="rect"> + <rect x="43" y="365" width="152" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="377">sequence_generator_definition</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#grant-statement" xlink:title="grant_statement" shape="rect"> + <rect x="43" y="393" width="88" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="405">grant_statement</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#role-definition" xlink:title="role_definition" shape="rect"> + <rect x="43" y="421" width="72" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="433">role_definition</text></a><path class="line" d="m17 10 h2 m20 0 h4 m76 0 h4 m0 0 h82 m-186 0 h20 m166 0 h20 m-206 0 q10 0 10 10 m186 0 q0 -10 10 -10 m-196 10 v8 m186 0 v-8 m-186 8 q0 10 10 10 m166 0 q10 0 10 -10 m-176 10 h4 m74 0 h4 m0 0 h84 m-176 -10 v20 m186 0 v-20 m-186 20 v8 m186 0 v-8 m-186 8 q0 10 10 10 m166 0 q10 0 10 -10 m-176 10 h4 m90 0 h4 m0 0 h68 m-176 -10 v20 m186 0 v-20 m-186 20 v8 m186 0 v-8 m-186 8 q0 10 10 10 m166 0 q10 0 10 -10 m-176 10 h4 m116 0 h4 m0 0 h42 m-176 -10 v20 m186 0 v-20 m-186 20 v8 m186 0 v-8 m-186 8 q0 10 10 10 m166 0 q10 0 10 -10 m-176 10 h4 m90 0 h4 m0 0 h68 m-176 -10 v20 m186 0 v-20 m-186 20 v8 m186 0 v-8 m-186 8 q0 10 10 10 m166 0 q10 0 10 -10 m-176 10 h4 m114 0 h4 m0 0 h44 m-176 -10 v20 m186 0 v-20 m-186 20 v8 m186 0 v-8 m-186 8 q0 10 10 10 m166 0 q10 0 10 -10 m-176 10 h4 m96 0 h4 m0 0 h62 m-176 -10 v20 m186 0 v-20 m-186 20 v8 m186 0 v-8 m-186 8 q0 10 10 10 m166 0 q10 0 10 -10 m-176 10 h4 m84 0 h4 m0 0 h74 m-176 -10 v20 m186 0 v-20 m-186 20 v8 m186 0 v-8 m-186 8 q0 10 10 10 m166 0 q10 0 10 -10 m-176 10 h4 m140 0 h4 m0 0 h18 m-176 -10 v20 m186 0 v-20 m-186 20 v8 m186 0 v-8 m-186 8 q0 10 10 10 m166 0 q10 0 10 -10 m-176 10 h4 m138 0 h4 m0 0 h20 m-176 -10 v20 m186 0 v-20 m-186 20 v8 m186 0 v-8 m-186 8 q0 10 10 10 m166 0 q10 0 10 -10 m-176 10 h4 m158 0 h4 m-176 -10 v20 m186 0 v-20 m-186 20 v8 m186 0 v-8 m-186 8 q0 10 10 10 m166 0 q10 0 10 -10 m-176 10 h4 m98 0 h4 m0 0 h60 m-176 -10 v20 m186 0 v-20 m-186 20 v8 m186 0 v-8 m-186 8 q0 10 10 10 m166 0 q10 0 10 -10 m-176 10 h4 m84 0 h4 m0 0 h74 m-176 -10 v20 m186 0 v-20 m-186 20 v8 m186 0 v-8 m-186 8 q0 10 10 10 m166 0 q10 0 10 -10 m-176 10 h4 m152 0 h4 m0 0 h6 m-176 -10 v20 m186 0 v-20 m-186 20 v8 m186 0 v-8 m-186 8 q0 10 10 10 m166 0 q10 0 10 -10 m-176 10 h4 m88 0 h4 m0 0 h70 m-176 -10 v20 m186 0 v-20 m-186 20 v8 m186 0 v-8 m-186 8 q0 10 10 10 m166 0 q10 0 10 -10 m-176 10 h4 m72 0 h4 m0 0 h86 m23 -420 h-3"/> + <polygon points="235 10 243 6 243 14"/> + <polygon points="235 10 227 6 227 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#schema-element" title="schema_element" shape="rect">schema_element</a></div> + <div>         ::= <a href="#table-definition" title="table_definition" shape="rect">table_definition</a></div> + <div>           | <a href="#view-definition" title="view_definition" shape="rect">view_definition</a></div> + <div>           | <a href="#domain-definition" title="domain_definition" shape="rect">domain_definition</a></div> + <div>           | <a href="#character-set-definition" title="character_set_definition" shape="rect">character_set_definition</a></div> + <div>           | <a href="#collation-definition" title="collation_definition" shape="rect">collation_definition</a></div> + <div>           | <a href="#transliteration-definition" title="transliteration_definition" shape="rect">transliteration_definition</a></div> + <div>           | <a href="#assertion-definition" title="assertion_definition" shape="rect">assertion_definition</a></div> + <div>           | <a href="#trigger-definition" title="trigger_definition" shape="rect">trigger_definition</a></div> + <div>           | <a href="#user-defined-type-definition" title="user_defined_type_definition" shape="rect">user_defined_type_definition</a></div> + <div>           | <a href="#user-defined-cast-definition" title="user_defined_cast_definition" shape="rect">user_defined_cast_definition</a></div> + <div>           | <a href="#user-defined-ordering-definition" title="user_defined_ordering_definition" shape="rect">user_defined_ordering_definition</a></div> + <div>           | <a href="#transform-definition" title="transform_definition" shape="rect">transform_definition</a></div> + <div>           | <a href="#schema-routine" title="schema_routine" shape="rect">schema_routine</a></div> + <div>           | <a href="#sequence-generator-definition" title="sequence_generator_definition" shape="rect">sequence_generator_definition</a></div> + <div>           | <a href="#grant-statement" title="grant_statement" shape="rect">grant_statement</a></div> + <div>           | <a href="#role-definition" title="role_definition" shape="rect">role_definition</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#schema-definition" title="schema-definition">schema-definition</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + drop_schema_statement +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="307" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="34" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">DROP</text> + <rect x="65" y="1" width="46" height="18" class="terminal" rx="4"/> + <text class="terminal" x="69" y="13">SCHEMA</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#schema-name" xlink:title="schema_name" shape="rect"> + <rect x="119" y="1" width="80" height="18" class="nonterminal"/> + <text class="nonterminal" x="123" y="13">schema_name</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#drop-behavior" xlink:title="drop_behavior" shape="rect"> + <rect x="207" y="1" width="76" height="18" class="nonterminal"/> + <text class="nonterminal" x="211" y="13">drop_behavior</text></a><path class="line" d="m17 10 h2 m0 0 h4 m34 0 h4 m0 0 h4 m46 0 h4 m0 0 h4 m80 0 h4 m0 0 h4 m76 0 h4 m3 0 h-3"/> + <polygon points="297 10 305 6 305 14"/> + <polygon points="297 10 289 6 289 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#drop-schema-statement" title="drop_schema_statement" shape="rect">drop_schema_statement</a></div> + <div>         ::= 'DROP' 'SCHEMA' <a href="#schema-name" title="schema_name" shape="rect">schema_name</a> <a href="#drop-behavior" title="drop_behavior" shape="rect">drop_behavior</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#sql-schema-manipulation-statement" title="sql-schema-manipulation-statement">sql-schema-manipulation-statement</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + drop_behavior +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="139" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="43" y="1" width="50" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="13">CASCADE</text> + <rect x="43" y="29" width="52" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="41">RESTRICT</text> + <path class="line" d="m17 10 h2 m20 0 h4 m50 0 h4 m0 0 h2 m-80 0 h20 m60 0 h20 m-100 0 q10 0 10 10 m80 0 q0 -10 10 -10 m-90 10 v8 m80 0 v-8 m-80 8 q0 10 10 10 m60 0 q10 0 10 -10 m-70 10 h4 m52 0 h4 m23 -28 h-3"/> + <polygon points="129 10 137 6 137 14"/> + <polygon points="129 10 121 6 121 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#drop-behavior" title="drop_behavior" shape="rect">drop_behavior</a></div> + <div>         ::= 'CASCADE'</div> + <div>           | 'RESTRICT'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#drop-assertion-statement" title="drop-assertion-statement">drop-assertion-statement</a></li><li><a href="#drop-collation-statement" title="drop-collation-statement">drop-collation-statement</a></li><li><a href="#drop-column-definition" title="drop-column-definition">drop-column-definition</a></li><li><a href="#drop-column-scope-clause" title="drop-column-scope-clause">drop-column-scope-clause</a></li><li><a href="#drop-data-type-statement" title="drop-data-type-statement">drop-data-type-statement</a></li><li><a href="#drop-domain-statement" title="drop-domain-statement">drop-domain-statement</a></li><li><a href="#drop-routine-statement" title="drop-routine-statement">drop-routine-statement</a></li><li><a href="#drop-schema-statement" title="drop-schema-statement">drop-schema-statement</a></li><li><a href="#drop-sequence-generator-statement" title="drop-sequence-generator-statement">drop-sequence-generator-statement</a></li><li><a href="#drop-system-versioning-clause" title="drop-system-versioning-clause">drop-system-versioning-clause</a></li><li><a href="#drop-table-constraint-definition" title="drop-table-constraint-definition">drop-table-constraint-definition</a></li><li><a href="#drop-table-statement" title="drop-table-statement">drop-table-statement</a></li><li><a href="#drop-transform-element-list" title="drop-transform-element-list">drop-transform-element-list</a></li><li><a href="#drop-transform-statement" title="drop-transform-statement">drop-transform-statement</a></li><li><a href="#drop-user-defined-cast-statement" title="drop-user-defined-cast-statement">drop-user-defined-cast-statement</a></li><li><a href="#drop-user-defined-ordering-statement" title="drop-user-defined-ordering-statement">drop-user-defined-ordering-statement</a></li><li><a href="#drop-view-statement" title="drop-view-statement">drop-view-statement</a></li><li><a href="#revoke-privilege-statement" title="revoke-privilege-statement">revoke-privilege-statement</a></li><li><a href="#revoke-role-statement" title="revoke-role-statement">revoke-role-statement</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + table_definition +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="583" height="268"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="42" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">CREATE</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#table-scope" xlink:title="table_scope" shape="rect"> + <rect x="93" y="22" width="66" height="18" class="nonterminal"/> + <text class="nonterminal" x="97" y="34">table_scope</text></a><rect x="187" y="1" width="36" height="18" class="terminal" rx="4"/> + <text class="terminal" x="191" y="13">TABLE</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#if-not-exists" xlink:title="if_not_exists" shape="rect"> + <rect x="251" y="22" width="66" height="18" class="nonterminal"/> + <text class="nonterminal" x="255" y="34">if_not_exists</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#table-name" xlink:title="table_name" shape="rect"> + <rect x="345" y="1" width="66" height="18" class="nonterminal"/> + <text class="nonterminal" x="349" y="13">table_name</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#table-description" xlink:title="table_description" shape="rect"> + <rect x="439" y="22" width="86" height="18" class="nonterminal"/> + <text class="nonterminal" x="443" y="34">table_description</text></a><rect x="57" y="85" width="34" height="18" class="terminal" rx="4"/> + <text class="terminal" x="61" y="97">WITH</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#system-versioning-clause" xlink:title="system_versioning_clause" shape="rect"> + <rect x="119" y="85" width="130" height="18" class="nonterminal"/> + <text class="nonterminal" x="123" y="97">system_versioning_clause</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#table-attributes" xlink:title="table_attributes" shape="rect"> + <rect x="119" y="113" width="80" height="18" class="nonterminal"/> + <text class="nonterminal" x="123" y="125">table_attributes</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#table-contents-source" xlink:title="table_contents_source" shape="rect"> + <rect x="297" y="64" width="114" height="18" class="nonterminal"/> + <text class="nonterminal" x="301" y="76">table_contents_source</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#table-contents-source" xlink:title="table_contents_source" shape="rect"> + <rect x="37" y="141" width="114" height="18" class="nonterminal"/> + <text class="nonterminal" x="41" y="153">table_contents_source</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#table-description" xlink:title="table_description" shape="rect"> + <rect x="179" y="162" width="86" height="18" class="nonterminal"/> + <text class="nonterminal" x="183" y="174">table_description</text></a><rect x="313" y="162" width="34" height="18" class="terminal" rx="4"/> + <text class="terminal" x="317" y="174">WITH</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#system-versioning-clause" xlink:title="system_versioning_clause" shape="rect"> + <rect x="375" y="162" width="130" height="18" class="nonterminal"/> + <text class="nonterminal" x="379" y="174">system_versioning_clause</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#table-attributes" xlink:title="table_attributes" shape="rect"> + <rect x="375" y="190" width="80" height="18" class="nonterminal"/> + <text class="nonterminal" x="379" y="202">table_attributes</text></a><rect x="303" y="248" width="22" height="18" class="terminal" rx="4"/> + <text class="terminal" x="307" y="260">ON</text> + <rect x="333" y="248" width="48" height="18" class="terminal" rx="4"/> + <text class="terminal" x="337" y="260">COMMIT</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#table-commit-action" xlink:title="table_commit_action" shape="rect"> + <rect x="389" y="248" width="104" height="18" class="nonterminal"/> + <text class="nonterminal" x="393" y="260">table_commit_action</text></a><rect x="501" y="248" width="38" height="18" class="terminal" rx="4"/> + <text class="terminal" x="505" y="260">ROWS</text> + <path class="line" d="m17 10 h2 m0 0 h4 m42 0 h4 m20 0 h10 m0 0 h64 m-94 0 h20 m74 0 h20 m-114 0 q10 0 10 10 m94 0 q0 -10 10 -10 m-104 10 v1 m94 0 v-1 m-94 1 q0 10 10 10 m74 0 q10 0 10 -10 m-84 10 h4 m66 0 h4 m20 -21 h4 m36 0 h4 m20 0 h10 m0 0 h64 m-94 0 h20 m74 0 h20 m-114 0 q10 0 10 10 m94 0 q0 -10 10 -10 m-104 10 v1 m94 0 v-1 m-94 1 q0 10 10 10 m74 0 q10 0 10 -10 m-84 10 h4 m66 0 h4 m20 -21 h4 m66 0 h4 m20 0 h10 m0 0 h84 m-114 0 h20 m94 0 h20 m-134 0 q10 0 10 10 m114 0 q0 -10 10 -10 m-124 10 v1 m114 0 v-1 m-114 1 q0 10 10 10 m94 0 q10 0 10 -10 m-104 10 h4 m86 0 h4 m22 -21 l2 0 m2 0 l2 0 m2 0 l2 0 m-560 63 l2 0 m2 0 l2 0 m2 0 l2 0 m42 0 h10 m0 0 h210 m-240 0 h20 m220 0 h20 m-260 0 q10 0 10 10 m240 0 q0 -10 10 -10 m-250 10 v1 m240 0 v-1 m-240 1 q0 10 10 10 m220 0 q10 0 10 -10 m-230 10 h4 m34 0 h4 m20 0 h4 m130 0 h4 m-158 0 h20 m138 0 h20 m-178 0 q10 0 10 10 m158 0 q0 -10 10 -10 m-168 10 v8 m158 0 v-8 m-158 8 q0 10 10 10 m138 0 q10 0 10 -10 m-148 10 h4 m80 0 h4 m0 0 h50 m40 -49 h4 m114 0 h4 m0 0 h134 m-536 0 h20 m516 0 h20 m-556 0 q10 0 10 10 m536 0 q0 -10 10 -10 m-546 10 v57 m536 0 v-57 m-536 57 q0 10 10 10 m516 0 q10 0 10 -10 m-526 10 h4 m114 0 h4 m20 0 h10 m0 0 h84 m-114 0 h20 m94 0 h20 m-134 0 q10 0 10 10 m114 0 q0 -10 10 -10 m-124 10 v1 m114 0 v-1 m-114 1 q0 10 10 10 m94 0 q10 0 10 -10 m-104 10 h4 m86 0 h4 m40 -21 h10 m0 0 h210 m-240 0 h20 m220 0 h20 m-260 0 q10 0 10 10 m240 0 q0 -10 10 -10 m-250 10 v1 m240 0 v-1 m-240 1 q0 10 10 10 m220 0 q10 0 10 -10 m-230 10 h4 m34 0 h4 m20 0 h4 m130 0 h4 m-158 0 h20 m138 0 h20 m-178 0 q10 0 10 10 m158 0 q0 -10 10 -10 m-168 10 v8 m158 0 v-8 m-158 8 q0 10 10 10 m138 0 q10 0 10 -10 m-148 10 h4 m80 0 h4 m0 0 h50 m62 -126 l2 0 m2 0 l2 0 m2 0 l2 0 m-314 163 l2 0 m2 0 l2 0 m2 0 l2 0 m22 0 h10 m0 0 h234 m-264 0 h20 m244 0 h20 m-284 0 q10 0 10 10 m264 0 q0 -10 10 -10 m-274 10 v1 m264 0 v-1 m-264 1 q0 10 10 10 m244 0 q10 0 10 -10 m-254 10 h4 m22 0 h4 m0 0 h4 m48 0 h4 m0 0 h4 m104 0 h4 m0 0 h4 m38 0 h4 m23 -21 h-3"/> + <polygon points="573 236 581 232 581 240"/> + <polygon points="573 236 565 232 565 240"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#table-definition" title="table_definition" shape="rect">table_definition</a></div> + <div>         ::= 'CREATE' <a href="#table-scope" title="table_scope" shape="rect">table_scope</a>? 'TABLE' <a href="#if-not-exists" title="if_not_exists" shape="rect">if_not_exists</a>? <a href="#table-name" title="table_name" shape="rect">table_name</a> <a href="#table-description" title="table_description" shape="rect">table_description</a>? ( ( 'WITH' ( <a href="#system-versioning-clause" title="system_versioning_clause" shape="rect">system_versioning_clause</a> | <a href="#table-attributes" title="table_attributes" shape="rect">table_attributes</a> ) )? <a href="#table-contents-source" title="table_contents_source" shape="rect">table_contents_source</a> | <a href="#table-contents-source" title="table_contents_source" shape="rect">table_contents_source</a> <a href="#table-description" title="table_description" shape="rect">table_description</a>? ( 'WITH' ( <a href="#system-versioning-clause" title="system_versioning_clause" shape="rect">system_versioning_clause</a> | <a href="#table-attributes" title="table_attributes" shape="rect">table_attributes</a> ) )? ) ( 'ON' 'COMMIT' <a href="#table-commit-action" title="table_commit_action" shape="rect">table_commit_action</a> 'ROWS' )?</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#sql-schema-definition-statement" title="sql-schema-definition-statement">sql-schema-definition-statement</a></li><li><a href="#schema-element" title="schema-element">schema-element</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + table_contents_source +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="191" height="77"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#typed-table-clause" xlink:title="typed_table_clause" shape="rect"> + <rect x="43" y="1" width="98" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">typed_table_clause</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#as-subquery-clause" xlink:title="as_subquery_clause" shape="rect"> + <rect x="43" y="29" width="104" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">as_subquery_clause</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#table-element-list" xlink:title="table_element_list" shape="rect"> + <rect x="43" y="57" width="92" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="69">table_element_list</text></a><path class="line" d="m17 10 h2 m20 0 h4 m98 0 h4 m0 0 h6 m-132 0 h20 m112 0 h20 m-152 0 q10 0 10 10 m132 0 q0 -10 10 -10 m-142 10 v8 m132 0 v-8 m-132 8 q0 10 10 10 m112 0 q10 0 10 -10 m-122 10 h4 m104 0 h4 m-122 -10 v20 m132 0 v-20 m-132 20 v8 m132 0 v-8 m-132 8 q0 10 10 10 m112 0 q10 0 10 -10 m-122 10 h4 m92 0 h4 m0 0 h12 m23 -56 h-3"/> + <polygon points="181 10 189 6 189 14"/> + <polygon points="181 10 173 6 173 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#table-contents-source" title="table_contents_source" shape="rect">table_contents_source</a></div> + <div>         ::= <a href="#typed-table-clause" title="typed_table_clause" shape="rect">typed_table_clause</a></div> + <div>           | <a href="#as-subquery-clause" title="as_subquery_clause" shape="rect">as_subquery_clause</a></div> + <div>           | <a href="#table-element-list" title="table_element_list" shape="rect">table_element_list</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#table-definition" title="table-definition">table-definition</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + table_scope +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="197" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#global-or-local" xlink:title="global_or_local" shape="rect"> + <rect x="23" y="1" width="76" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">global_or_local</text></a><rect x="107" y="1" width="66" height="18" class="terminal" rx="4"/> + <text class="terminal" x="111" y="13">TEMPORARY</text> + <path class="line" d="m17 10 h2 m0 0 h4 m76 0 h4 m0 0 h4 m66 0 h4 m3 0 h-3"/> + <polygon points="187 10 195 6 195 14"/> + <polygon points="187 10 179 6 179 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#table-scope" title="table_scope" shape="rect">table_scope</a></div> + <div>         ::= <a href="#global-or-local" title="global_or_local" shape="rect">global_or_local</a> 'TEMPORARY'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#table-definition" title="table-definition">table-definition</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + global_or_local +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="131" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="43" y="1" width="44" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="13">GLOBAL</text> + <rect x="43" y="29" width="38" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="41">LOCAL</text> + <path class="line" d="m17 10 h2 m20 0 h4 m44 0 h4 m-72 0 h20 m52 0 h20 m-92 0 q10 0 10 10 m72 0 q0 -10 10 -10 m-82 10 v8 m72 0 v-8 m-72 8 q0 10 10 10 m52 0 q10 0 10 -10 m-62 10 h4 m38 0 h4 m0 0 h6 m23 -28 h-3"/> + <polygon points="121 10 129 6 129 14"/> + <polygon points="121 10 113 6 113 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#global-or-local" title="global_or_local" shape="rect">global_or_local</a></div> + <div>         ::= 'GLOBAL'</div> + <div>           | 'LOCAL'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#table-scope" title="table-scope">table-scope</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + system_versioning_clause +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="357" height="42"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="44" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">SYSTEM</text> + <rect x="75" y="1" width="68" height="18" class="terminal" rx="4"/> + <text class="terminal" x="79" y="13">VERSIONING</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#retention-period-specification" xlink:title="retention_period_specification" shape="rect"> + <rect x="171" y="22" width="142" height="18" class="nonterminal"/> + <text class="nonterminal" x="175" y="34">retention_period_specification</text></a><path class="line" d="m17 10 h2 m0 0 h4 m44 0 h4 m0 0 h4 m68 0 h4 m20 0 h10 m0 0 h140 m-170 0 h20 m150 0 h20 m-190 0 q10 0 10 10 m170 0 q0 -10 10 -10 m-180 10 v1 m170 0 v-1 m-170 1 q0 10 10 10 m150 0 q10 0 10 -10 m-160 10 h4 m142 0 h4 m23 -21 h-3"/> + <polygon points="347 10 355 6 355 14"/> + <polygon points="347 10 339 6 339 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#system-versioning-clause" title="system_versioning_clause" shape="rect">system_versioning_clause</a></div> + <div>         ::= 'SYSTEM' 'VERSIONING' <a href="#retention-period-specification" title="retention_period_specification" shape="rect">retention_period_specification</a>?</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#add-system-versioning-clause" title="add-system-versioning-clause">add-system-versioning-clause</a></li><li><a href="#table-definition" title="table-definition">table-definition</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + retention_period_specification +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="361" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="30" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">KEEP</text> + <rect x="61" y="1" width="56" height="18" class="terminal" rx="4"/> + <text class="terminal" x="65" y="13">VERSIONS</text> + <rect x="145" y="1" width="50" height="18" class="terminal" rx="4"/> + <text class="terminal" x="149" y="13">FOREVER</text> + <rect x="145" y="29" width="26" height="18" class="terminal" rx="4"/> + <text class="terminal" x="149" y="41">FOR</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#length-of-time" xlink:title="length_of_time" shape="rect"> + <rect x="179" y="29" width="78" height="18" class="nonterminal"/> + <text class="nonterminal" x="183" y="41">length_of_time</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#time-unit" xlink:title="time_unit" shape="rect"> + <rect x="265" y="29" width="52" height="18" class="nonterminal"/> + <text class="nonterminal" x="269" y="41">time_unit</text></a><path class="line" d="m17 10 h2 m0 0 h4 m30 0 h4 m0 0 h4 m56 0 h4 m20 0 h4 m50 0 h4 m0 0 h122 m-200 0 h20 m180 0 h20 m-220 0 q10 0 10 10 m200 0 q0 -10 10 -10 m-210 10 v8 m200 0 v-8 m-200 8 q0 10 10 10 m180 0 q10 0 10 -10 m-190 10 h4 m26 0 h4 m0 0 h4 m78 0 h4 m0 0 h4 m52 0 h4 m23 -28 h-3"/> + <polygon points="351 10 359 6 359 14"/> + <polygon points="351 10 343 6 343 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#retention-period-specification" title="retention_period_specification" shape="rect">retention_period_specification</a></div> + <div>         ::= 'KEEP' 'VERSIONS' ( 'FOREVER' | 'FOR' <a href="#length-of-time" title="length_of_time" shape="rect">length_of_time</a> <a href="#time-unit" title="time_unit" shape="rect">time_unit</a> )</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#alter-system-versioning-clause" title="alter-system-versioning-clause">alter-system-versioning-clause</a></li><li><a href="#system-versioning-clause" title="system-versioning-clause">system-versioning-clause</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + length_of_time +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="137" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#unsigned-integer" xlink:title="unsigned_integer" shape="rect"> + <rect x="23" y="1" width="90" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">unsigned_integer</text></a><path class="line" d="m17 10 h2 m0 0 h4 m90 0 h4 m3 0 h-3"/> + <polygon points="127 10 135 6 135 14"/> + <polygon points="127 10 119 6 119 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#length-of-time" title="length_of_time" shape="rect">length_of_time</a></div> + <div>         ::= <a href="#unsigned-integer" title="unsigned_integer" shape="rect">unsigned_integer</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#retention-period-specification" title="retention-period-specification">retention-period-specification</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + time_unit +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="139" height="329"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="43" y="1" width="46" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="13">SECOND</text> + <rect x="43" y="29" width="52" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="41">SECONDS</text> + <rect x="43" y="57" width="44" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="69">MINUTE</text> + <rect x="43" y="85" width="50" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="97">MINUTES</text> + <rect x="43" y="113" width="36" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="125">HOUR</text> + <rect x="43" y="141" width="42" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="153">HOURS</text> + <rect x="43" y="169" width="26" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="181">DAY</text> + <rect x="43" y="197" width="32" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="209">DAYS</text> + <rect x="43" y="225" width="44" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="237">MONTH</text> + <rect x="43" y="253" width="50" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="265">MONTHS</text> + <rect x="43" y="281" width="32" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="293">YEAR</text> + <rect x="43" y="309" width="38" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="321">YEARS</text> + <path class="line" d="m17 10 h2 m20 0 h4 m46 0 h4 m0 0 h6 m-80 0 h20 m60 0 h20 m-100 0 q10 0 10 10 m80 0 q0 -10 10 -10 m-90 10 v8 m80 0 v-8 m-80 8 q0 10 10 10 m60 0 q10 0 10 -10 m-70 10 h4 m52 0 h4 m-70 -10 v20 m80 0 v-20 m-80 20 v8 m80 0 v-8 m-80 8 q0 10 10 10 m60 0 q10 0 10 -10 m-70 10 h4 m44 0 h4 m0 0 h8 m-70 -10 v20 m80 0 v-20 m-80 20 v8 m80 0 v-8 m-80 8 q0 10 10 10 m60 0 q10 0 10 -10 m-70 10 h4 m50 0 h4 m0 0 h2 m-70 -10 v20 m80 0 v-20 m-80 20 v8 m80 0 v-8 m-80 8 q0 10 10 10 m60 0 q10 0 10 -10 m-70 10 h4 m36 0 h4 m0 0 h16 m-70 -10 v20 m80 0 v-20 m-80 20 v8 m80 0 v-8 m-80 8 q0 10 10 10 m60 0 q10 0 10 -10 m-70 10 h4 m42 0 h4 m0 0 h10 m-70 -10 v20 m80 0 v-20 m-80 20 v8 m80 0 v-8 m-80 8 q0 10 10 10 m60 0 q10 0 10 -10 m-70 10 h4 m26 0 h4 m0 0 h26 m-70 -10 v20 m80 0 v-20 m-80 20 v8 m80 0 v-8 m-80 8 q0 10 10 10 m60 0 q10 0 10 -10 m-70 10 h4 m32 0 h4 m0 0 h20 m-70 -10 v20 m80 0 v-20 m-80 20 v8 m80 0 v-8 m-80 8 q0 10 10 10 m60 0 q10 0 10 -10 m-70 10 h4 m44 0 h4 m0 0 h8 m-70 -10 v20 m80 0 v-20 m-80 20 v8 m80 0 v-8 m-80 8 q0 10 10 10 m60 0 q10 0 10 -10 m-70 10 h4 m50 0 h4 m0 0 h2 m-70 -10 v20 m80 0 v-20 m-80 20 v8 m80 0 v-8 m-80 8 q0 10 10 10 m60 0 q10 0 10 -10 m-70 10 h4 m32 0 h4 m0 0 h20 m-70 -10 v20 m80 0 v-20 m-80 20 v8 m80 0 v-8 m-80 8 q0 10 10 10 m60 0 q10 0 10 -10 m-70 10 h4 m38 0 h4 m0 0 h14 m23 -308 h-3"/> + <polygon points="129 10 137 6 137 14"/> + <polygon points="129 10 121 6 121 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#time-unit" title="time_unit" shape="rect">time_unit</a></div> + <div>         ::= 'SECOND'</div> + <div>           | 'SECONDS'</div> + <div>           | 'MINUTE'</div> + <div>           | 'MINUTES'</div> + <div>           | 'HOUR'</div> + <div>           | 'HOURS'</div> + <div>           | 'DAY'</div> + <div>           | 'DAYS'</div> + <div>           | 'MONTH'</div> + <div>           | 'MONTHS'</div> + <div>           | 'YEAR'</div> + <div>           | 'YEARS'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#retention-period-specification" title="retention-period-specification">retention-period-specification</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + table_commit_action +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="141" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="43" y="1" width="54" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="13">PRESERVE</text> + <rect x="43" y="29" width="40" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="41">DELETE</text> + <path class="line" d="m17 10 h2 m20 0 h4 m54 0 h4 m-82 0 h20 m62 0 h20 m-102 0 q10 0 10 10 m82 0 q0 -10 10 -10 m-92 10 v8 m82 0 v-8 m-82 8 q0 10 10 10 m62 0 q10 0 10 -10 m-72 10 h4 m40 0 h4 m0 0 h14 m23 -28 h-3"/> + <polygon points="131 10 139 6 139 14"/> + <polygon points="131 10 123 6 123 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#table-commit-action" title="table_commit_action" shape="rect">table_commit_action</a></div> + <div>         ::= 'PRESERVE'</div> + <div>           | 'DELETE'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#table-definition" title="table-definition">table-definition</a></li><li><a href="#temporary-table-declaration" title="temporary-table-declaration">temporary-table-declaration</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + table_element_list +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="203" height="49"> + <polygon points="9 38 1 34 1 42"/> + <polygon points="17 38 9 34 9 42"/> + <rect x="23" y="29" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="41">(</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#table-element" xlink:title="table_element" shape="rect"> + <rect x="63" y="29" width="76" height="18" class="nonterminal"/> + <text class="nonterminal" x="67" y="41">table_element</text></a><rect x="63" y="1" width="8" height="18" class="terminal" rx="4"/> + <text class="terminal" x="67" y="13">,</text> + <rect x="167" y="29" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="171" y="41">)</text> + <path class="line" d="m17 38 h2 m0 0 h4 m12 0 h4 m20 0 h4 m76 0 h4 m-104 0 l20 0 m-1 0 q-9 0 -9 -10 l0 -8 q0 -10 10 -10 m84 28 l20 0 m-20 0 q10 0 10 -10 l0 -8 q0 -10 -10 -10 m-84 0 h4 m8 0 h4 m0 0 h68 m20 28 h4 m12 0 h4 m3 0 h-3"/> + <polygon points="193 38 201 34 201 42"/> + <polygon points="193 38 185 34 185 42"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#table-element-list" title="table_element_list" shape="rect">table_element_list</a></div> + <div>         ::= '(' <a href="#table-element" title="table_element" shape="rect">table_element</a> ( ',' <a href="#table-element" title="table_element" shape="rect">table_element</a> )* ')'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#table-contents-source" title="table-contents-source">table-contents-source</a></li><li><a href="#temporary-table-declaration" title="temporary-table-declaration">temporary-table-declaration</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + table_element +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="213" height="77"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#column-definition" xlink:title="column_definition" shape="rect"> + <rect x="43" y="1" width="88" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">column_definition</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#table-constraint-definition" xlink:title="table_constraint_definition" shape="rect"> + <rect x="43" y="29" width="126" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">table_constraint_definition</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#like-clause" xlink:title="like_clause" shape="rect"> + <rect x="43" y="57" width="58" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="69">like_clause</text></a><path class="line" d="m17 10 h2 m20 0 h4 m88 0 h4 m0 0 h38 m-154 0 h20 m134 0 h20 m-174 0 q10 0 10 10 m154 0 q0 -10 10 -10 m-164 10 v8 m154 0 v-8 m-154 8 q0 10 10 10 m134 0 q10 0 10 -10 m-144 10 h4 m126 0 h4 m-144 -10 v20 m154 0 v-20 m-154 20 v8 m154 0 v-8 m-154 8 q0 10 10 10 m134 0 q10 0 10 -10 m-144 10 h4 m58 0 h4 m0 0 h68 m23 -56 h-3"/> + <polygon points="203 10 211 6 211 14"/> + <polygon points="203 10 195 6 195 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#table-element" title="table_element" shape="rect">table_element</a></div> + <div>         ::= <a href="#column-definition" title="column_definition" shape="rect">column_definition</a></div> + <div>           | <a href="#table-constraint-definition" title="table_constraint_definition" shape="rect">table_constraint_definition</a></div> + <div>           | <a href="#like-clause" title="like_clause" shape="rect">like_clause</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#table-element-list" title="table-element-list">table-element-list</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + typed_table_clause +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="579" height="42"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="20" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">OF</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#path-resolved-user-defined-type-name" xlink:title="path_resolved_user_defined_type_name" shape="rect"> + <rect x="51" y="1" width="200" height="18" class="nonterminal"/> + <text class="nonterminal" x="55" y="13">path_resolved_user_defined_type_name</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#subtable-clause" xlink:title="subtable_clause" shape="rect"> + <rect x="279" y="22" width="84" height="18" class="nonterminal"/> + <text class="nonterminal" x="283" y="34">subtable_clause</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#typed-table-element-list" xlink:title="typed_table_element_list" shape="rect"> + <rect x="411" y="22" width="124" height="18" class="nonterminal"/> + <text class="nonterminal" x="415" y="34">typed_table_element_list</text></a><path class="line" d="m17 10 h2 m0 0 h4 m20 0 h4 m0 0 h4 m200 0 h4 m20 0 h10 m0 0 h82 m-112 0 h20 m92 0 h20 m-132 0 q10 0 10 10 m112 0 q0 -10 10 -10 m-122 10 v1 m112 0 v-1 m-112 1 q0 10 10 10 m92 0 q10 0 10 -10 m-102 10 h4 m84 0 h4 m40 -21 h10 m0 0 h122 m-152 0 h20 m132 0 h20 m-172 0 q10 0 10 10 m152 0 q0 -10 10 -10 m-162 10 v1 m152 0 v-1 m-152 1 q0 10 10 10 m132 0 q10 0 10 -10 m-142 10 h4 m124 0 h4 m23 -21 h-3"/> + <polygon points="569 10 577 6 577 14"/> + <polygon points="569 10 561 6 561 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#typed-table-clause" title="typed_table_clause" shape="rect">typed_table_clause</a></div> + <div>         ::= 'OF' <a href="#path-resolved-user-defined-type-name" title="path_resolved_user_defined_type_name" shape="rect">path_resolved_user_defined_type_name</a> <a href="#subtable-clause" title="subtable_clause" shape="rect">subtable_clause</a>? <a href="#typed-table-element-list" title="typed_table_element_list" shape="rect">typed_table_element_list</a>?</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#table-contents-source" title="table-contents-source">table-contents-source</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + typed_table_element_list +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="235" height="49"> + <polygon points="9 38 1 34 1 42"/> + <polygon points="17 38 9 34 9 42"/> + <rect x="23" y="29" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="41">(</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#typed-table-element" xlink:title="typed_table_element" shape="rect"> + <rect x="63" y="29" width="108" height="18" class="nonterminal"/> + <text class="nonterminal" x="67" y="41">typed_table_element</text></a><rect x="63" y="1" width="8" height="18" class="terminal" rx="4"/> + <text class="terminal" x="67" y="13">,</text> + <rect x="199" y="29" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="203" y="41">)</text> + <path class="line" d="m17 38 h2 m0 0 h4 m12 0 h4 m20 0 h4 m108 0 h4 m-136 0 l20 0 m-1 0 q-9 0 -9 -10 l0 -8 q0 -10 10 -10 m116 28 l20 0 m-20 0 q10 0 10 -10 l0 -8 q0 -10 -10 -10 m-116 0 h4 m8 0 h4 m0 0 h100 m20 28 h4 m12 0 h4 m3 0 h-3"/> + <polygon points="225 38 233 34 233 42"/> + <polygon points="225 38 217 34 217 42"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#typed-table-element-list" title="typed_table_element_list" shape="rect">typed_table_element_list</a></div> + <div>         ::= '(' <a href="#typed-table-element" title="typed_table_element" shape="rect">typed_table_element</a> ( ',' <a href="#typed-table-element" title="typed_table_element" shape="rect">typed_table_element</a> )* ')'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#typed-table-clause" title="typed-table-clause">typed-table-clause</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + typed_table_element +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="265" height="77"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#column-options" xlink:title="column_options" shape="rect"> + <rect x="43" y="1" width="82" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">column_options</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#table-constraint-definition" xlink:title="table_constraint_definition" shape="rect"> + <rect x="43" y="29" width="126" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">table_constraint_definition</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#self-referencing-column-specification" xlink:title="self_referencing_column_specification" shape="rect"> + <rect x="43" y="57" width="178" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="69">self_referencing_column_specification</text></a><path class="line" d="m17 10 h2 m20 0 h4 m82 0 h4 m0 0 h96 m-206 0 h20 m186 0 h20 m-226 0 q10 0 10 10 m206 0 q0 -10 10 -10 m-216 10 v8 m206 0 v-8 m-206 8 q0 10 10 10 m186 0 q10 0 10 -10 m-196 10 h4 m126 0 h4 m0 0 h52 m-196 -10 v20 m206 0 v-20 m-206 20 v8 m206 0 v-8 m-206 8 q0 10 10 10 m186 0 q10 0 10 -10 m-196 10 h4 m178 0 h4 m23 -56 h-3"/> + <polygon points="255 10 263 6 263 14"/> + <polygon points="255 10 247 6 247 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#typed-table-element" title="typed_table_element" shape="rect">typed_table_element</a></div> + <div>         ::= <a href="#column-options" title="column_options" shape="rect">column_options</a></div> + <div>           | <a href="#table-constraint-definition" title="table_constraint_definition" shape="rect">table_constraint_definition</a></div> + <div>           | <a href="#self-referencing-column-specification" title="self_referencing_column_specification" shape="rect">self_referencing_column_specification</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#typed-table-element-list" title="typed-table-element-list">typed-table-element-list</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + self_referencing_column_specification +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="307" height="42"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="24" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">REF</text> + <rect x="55" y="1" width="18" height="18" class="terminal" rx="4"/> + <text class="terminal" x="59" y="13">IS</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#identifier" xlink:title="identifier" shape="rect"> + <rect x="81" y="1" width="46" height="18" class="nonterminal"/> + <text class="nonterminal" x="85" y="13">identifier</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#reference-generation" xlink:title="reference_generation" shape="rect"> + <rect x="155" y="22" width="108" height="18" class="nonterminal"/> + <text class="nonterminal" x="159" y="34">reference_generation</text></a><path class="line" d="m17 10 h2 m0 0 h4 m24 0 h4 m0 0 h4 m18 0 h4 m0 0 h4 m46 0 h4 m20 0 h10 m0 0 h106 m-136 0 h20 m116 0 h20 m-156 0 q10 0 10 10 m136 0 q0 -10 10 -10 m-146 10 v1 m136 0 v-1 m-136 1 q0 10 10 10 m116 0 q10 0 10 -10 m-126 10 h4 m108 0 h4 m23 -21 h-3"/> + <polygon points="297 10 305 6 305 14"/> + <polygon points="297 10 289 6 289 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#self-referencing-column-specification" title="self_referencing_column_specification" shape="rect">self_referencing_column_specification</a></div> + <div>         ::= 'REF' 'IS' <a href="#identifier" title="identifier" shape="rect">identifier</a> <a href="#reference-generation" title="reference_generation" shape="rect">reference_generation</a>?</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#typed-table-element" title="typed-table-element">typed-table-element</a></li><li><a href="#view-element" title="view-element">view-element</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + reference_generation +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="241" height="77"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="63" y="1" width="44" height="18" class="terminal" rx="4"/> + <text class="terminal" x="67" y="13">SYSTEM</text> + <rect x="63" y="29" width="32" height="18" class="terminal" rx="4"/> + <text class="terminal" x="67" y="41">USER</text> + <rect x="135" y="1" width="62" height="18" class="terminal" rx="4"/> + <text class="terminal" x="139" y="13">GENERATED</text> + <rect x="43" y="57" width="48" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="69">DERIVED</text> + <path class="line" d="m17 10 h2 m40 0 h4 m44 0 h4 m-72 0 h20 m52 0 h20 m-92 0 q10 0 10 10 m72 0 q0 -10 10 -10 m-82 10 v8 m72 0 v-8 m-72 8 q0 10 10 10 m52 0 q10 0 10 -10 m-62 10 h4 m32 0 h4 m0 0 h12 m20 -28 h4 m62 0 h4 m-182 0 h20 m162 0 h20 m-202 0 q10 0 10 10 m182 0 q0 -10 10 -10 m-192 10 v36 m182 0 v-36 m-182 36 q0 10 10 10 m162 0 q10 0 10 -10 m-172 10 h4 m48 0 h4 m0 0 h106 m23 -56 h-3"/> + <polygon points="231 10 239 6 239 14"/> + <polygon points="231 10 223 6 223 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#reference-generation" title="reference_generation" shape="rect">reference_generation</a></div> + <div>         ::= ( 'SYSTEM' | 'USER' ) 'GENERATED'</div> + <div>           | 'DERIVED'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#self-referencing-column-specification" title="self-referencing-column-specification">self-referencing-column-specification</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + column_options +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="297" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#identifier" xlink:title="identifier" shape="rect"> + <rect x="23" y="1" width="46" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">identifier</text></a><rect x="77" y="1" width="34" height="18" class="terminal" rx="4"/> + <text class="terminal" x="81" y="13">WITH</text> + <rect x="119" y="1" width="52" height="18" class="terminal" rx="4"/> + <text class="terminal" x="123" y="13">OPTIONS</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#column-option-list" xlink:title="column_option_list" shape="rect"> + <rect x="179" y="1" width="94" height="18" class="nonterminal"/> + <text class="nonterminal" x="183" y="13">column_option_list</text></a><path class="line" d="m17 10 h2 m0 0 h4 m46 0 h4 m0 0 h4 m34 0 h4 m0 0 h4 m52 0 h4 m0 0 h4 m94 0 h4 m3 0 h-3"/> + <polygon points="287 10 295 6 295 14"/> + <polygon points="287 10 279 6 279 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#column-options" title="column_options" shape="rect">column_options</a></div> + <div>         ::= <a href="#identifier" title="identifier" shape="rect">identifier</a> 'WITH' 'OPTIONS' <a href="#column-option-list" title="column_option_list" shape="rect">column_option_list</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#typed-table-element" title="typed-table-element">typed-table-element</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + column_option_list +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="467" height="63"> + <polygon points="9 31 1 27 1 35"/> + <polygon points="17 31 9 27 9 35"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#scope-clause" xlink:title="scope_clause" shape="rect"> + <rect x="43" y="43" width="72" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="55">scope_clause</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#default-clause" xlink:title="default_clause" shape="rect"> + <rect x="163" y="43" width="74" height="18" class="nonterminal"/> + <text class="nonterminal" x="167" y="55">default_clause</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#column-constraint-definition" xlink:title="column_constraint_definition" shape="rect"> + <rect x="285" y="1" width="138" height="18" class="nonterminal"/> + <text class="nonterminal" x="289" y="13">column_constraint_definition</text></a><path class="line" d="m17 31 h2 m20 0 h10 m0 0 h70 m-100 0 h20 m80 0 h20 m-120 0 q10 0 10 10 m100 0 q0 -10 10 -10 m-110 10 v1 m100 0 v-1 m-100 1 q0 10 10 10 m80 0 q10 0 10 -10 m-90 10 h4 m72 0 h4 m40 -21 h10 m0 0 h72 m-102 0 h20 m82 0 h20 m-122 0 q10 0 10 10 m102 0 q0 -10 10 -10 m-112 10 v1 m102 0 v-1 m-102 1 q0 10 10 10 m82 0 q10 0 10 -10 m-92 10 h4 m74 0 h4 m40 -21 h10 m0 0 h136 m-166 0 l20 0 m-1 0 q-9 0 -9 -10 l0 -1 q0 -10 10 -10 m146 21 l20 0 m-20 0 q10 0 10 -10 l0 -1 q0 -10 -10 -10 m-146 0 h4 m138 0 h4 m23 21 h-3"/> + <polygon points="457 31 465 27 465 35"/> + <polygon points="457 31 449 27 449 35"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#column-option-list" title="column_option_list" shape="rect">column_option_list</a></div> + <div>         ::= <a href="#scope-clause" title="scope_clause" shape="rect">scope_clause</a>? <a href="#default-clause" title="default_clause" shape="rect">default_clause</a>? <a href="#column-constraint-definition" title="column_constraint_definition" shape="rect">column_constraint_definition</a>*</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#column-options" title="column-options">column-options</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + subtable_clause +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="187" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="40" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">UNDER</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#supertable-clause" xlink:title="supertable_clause" shape="rect"> + <rect x="71" y="1" width="92" height="18" class="nonterminal"/> + <text class="nonterminal" x="75" y="13">supertable_clause</text></a><path class="line" d="m17 10 h2 m0 0 h4 m40 0 h4 m0 0 h4 m92 0 h4 m3 0 h-3"/> + <polygon points="177 10 185 6 185 14"/> + <polygon points="177 10 169 6 169 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#subtable-clause" title="subtable_clause" shape="rect">subtable_clause</a></div> + <div>         ::= 'UNDER' <a href="#supertable-clause" title="supertable_clause" shape="rect">supertable_clause</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#typed-table-clause" title="typed-table-clause">typed-table-clause</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + supertable_clause +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="139" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#supertable-name" xlink:title="supertable_name" shape="rect"> + <rect x="23" y="1" width="92" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">supertable_name</text></a><path class="line" d="m17 10 h2 m0 0 h4 m92 0 h4 m3 0 h-3"/> + <polygon points="129 10 137 6 137 14"/> + <polygon points="129 10 121 6 121 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#supertable-clause" title="supertable_clause" shape="rect">supertable_clause</a></div> + <div>         ::= <a href="#supertable-name" title="supertable_name" shape="rect">supertable_name</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#subtable-clause" title="subtable-clause">subtable-clause</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + supertable_name +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="113" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#table-name" xlink:title="table_name" shape="rect"> + <rect x="23" y="1" width="66" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">table_name</text></a><path class="line" d="m17 10 h2 m0 0 h4 m66 0 h4 m3 0 h-3"/> + <polygon points="103 10 111 6 111 14"/> + <polygon points="103 10 95 6 95 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#supertable-name" title="supertable_name" shape="rect">supertable_name</a></div> + <div>         ::= <a href="#table-name" title="table_name" shape="rect">table_name</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#supertable-clause" title="supertable-clause">supertable-clause</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + like_clause +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="259" height="42"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="28" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">LIKE</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#table-name" xlink:title="table_name" shape="rect"> + <rect x="59" y="1" width="66" height="18" class="nonterminal"/> + <text class="nonterminal" x="63" y="13">table_name</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#like-options" xlink:title="like_options" shape="rect"> + <rect x="153" y="22" width="62" height="18" class="nonterminal"/> + <text class="nonterminal" x="157" y="34">like_options</text></a><path class="line" d="m17 10 h2 m0 0 h4 m28 0 h4 m0 0 h4 m66 0 h4 m20 0 h10 m0 0 h60 m-90 0 h20 m70 0 h20 m-110 0 q10 0 10 10 m90 0 q0 -10 10 -10 m-100 10 v1 m90 0 v-1 m-90 1 q0 10 10 10 m70 0 q10 0 10 -10 m-80 10 h4 m62 0 h4 m23 -21 h-3"/> + <polygon points="249 10 257 6 257 14"/> + <polygon points="249 10 241 6 241 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#like-clause" title="like_clause" shape="rect">like_clause</a></div> + <div>         ::= 'LIKE' <a href="#table-name" title="table_name" shape="rect">table_name</a> <a href="#like-options" title="like_options" shape="rect">like_options</a>?</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#table-element" title="table-element">table-element</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + like_options +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="145" height="33"> + <polygon points="9 22 1 18 1 26"/> + <polygon points="17 22 9 18 9 26"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#like-option" xlink:title="like_option" shape="rect"> + <rect x="43" y="13" width="58" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="25">like_option</text></a><path class="line" d="m17 22 h2 m20 0 h4 m58 0 h4 m-86 0 l20 0 m-1 0 q-9 0 -9 -10 l0 -1 q0 -10 10 -10 m66 21 l20 0 m-20 0 q10 0 10 -10 l0 -1 q0 -10 -10 -10 m-66 0 h10 m0 0 h56 m23 21 h-3"/> + <polygon points="135 22 143 18 143 26"/> + <polygon points="135 22 127 18 127 26"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#like-options" title="like_options" shape="rect">like_options</a></div> + <div>         ::= <a href="#like-option" title="like_option" shape="rect">like_option</a>+</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#like-clause" title="like-clause">like-clause</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + like_option +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="221" height="105"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#identity-option" xlink:title="identity_option" shape="rect"> + <rect x="43" y="1" width="76" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">identity_option</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#column-default-option" xlink:title="column_default_option" shape="rect"> + <rect x="43" y="29" width="114" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">column_default_option</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#generation-option" xlink:title="generation_option" shape="rect"> + <rect x="43" y="57" width="94" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="69">generation_option</text></a><rect x="43" y="85" width="60" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="97">INCLUDING</text> + <rect x="111" y="85" width="66" height="18" class="terminal" rx="4"/> + <text class="terminal" x="115" y="97">PROPERTIES</text> + <path class="line" d="m17 10 h2 m20 0 h4 m76 0 h4 m0 0 h58 m-162 0 h20 m142 0 h20 m-182 0 q10 0 10 10 m162 0 q0 -10 10 -10 m-172 10 v8 m162 0 v-8 m-162 8 q0 10 10 10 m142 0 q10 0 10 -10 m-152 10 h4 m114 0 h4 m0 0 h20 m-152 -10 v20 m162 0 v-20 m-162 20 v8 m162 0 v-8 m-162 8 q0 10 10 10 m142 0 q10 0 10 -10 m-152 10 h4 m94 0 h4 m0 0 h40 m-152 -10 v20 m162 0 v-20 m-162 20 v8 m162 0 v-8 m-162 8 q0 10 10 10 m142 0 q10 0 10 -10 m-152 10 h4 m60 0 h4 m0 0 h4 m66 0 h4 m23 -84 h-3"/> + <polygon points="211 10 219 6 219 14"/> + <polygon points="211 10 203 6 203 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#like-option" title="like_option" shape="rect">like_option</a></div> + <div>         ::= <a href="#identity-option" title="identity_option" shape="rect">identity_option</a></div> + <div>           | <a href="#column-default-option" title="column_default_option" shape="rect">column_default_option</a></div> + <div>           | <a href="#generation-option" title="generation_option" shape="rect">generation_option</a></div> + <div>           | 'INCLUDING' 'PROPERTIES'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#like-options" title="like-options">like-options</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + identity_option +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="205" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="43" y="1" width="60" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="13">INCLUDING</text> + <rect x="43" y="29" width="60" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="41">EXCLUDING</text> + <rect x="131" y="1" width="50" height="18" class="terminal" rx="4"/> + <text class="terminal" x="135" y="13">IDENTITY</text> + <path class="line" d="m17 10 h2 m20 0 h4 m60 0 h4 m-88 0 h20 m68 0 h20 m-108 0 q10 0 10 10 m88 0 q0 -10 10 -10 m-98 10 v8 m88 0 v-8 m-88 8 q0 10 10 10 m68 0 q10 0 10 -10 m-78 10 h4 m60 0 h4 m20 -28 h4 m50 0 h4 m3 0 h-3"/> + <polygon points="195 10 203 6 203 14"/> + <polygon points="195 10 187 6 187 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#identity-option" title="identity_option" shape="rect">identity_option</a></div> + <div>         ::= ( 'INCLUDING' | 'EXCLUDING' ) 'IDENTITY'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#like-option" title="like-option">like-option</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + column_default_option +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="209" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="43" y="1" width="60" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="13">INCLUDING</text> + <rect x="43" y="29" width="60" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="41">EXCLUDING</text> + <rect x="131" y="1" width="54" height="18" class="terminal" rx="4"/> + <text class="terminal" x="135" y="13">DEFAULTS</text> + <path class="line" d="m17 10 h2 m20 0 h4 m60 0 h4 m-88 0 h20 m68 0 h20 m-108 0 q10 0 10 10 m88 0 q0 -10 10 -10 m-98 10 v8 m88 0 v-8 m-88 8 q0 10 10 10 m68 0 q10 0 10 -10 m-78 10 h4 m60 0 h4 m20 -28 h4 m54 0 h4 m3 0 h-3"/> + <polygon points="199 10 207 6 207 14"/> + <polygon points="199 10 191 6 191 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#column-default-option" title="column_default_option" shape="rect">column_default_option</a></div> + <div>         ::= ( 'INCLUDING' | 'EXCLUDING' ) 'DEFAULTS'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#like-option" title="like-option">like-option</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + generation_option +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="217" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="43" y="1" width="60" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="13">INCLUDING</text> + <rect x="43" y="29" width="60" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="41">EXCLUDING</text> + <rect x="131" y="1" width="62" height="18" class="terminal" rx="4"/> + <text class="terminal" x="135" y="13">GENERATED</text> + <path class="line" d="m17 10 h2 m20 0 h4 m60 0 h4 m-88 0 h20 m68 0 h20 m-108 0 q10 0 10 10 m88 0 q0 -10 10 -10 m-98 10 v8 m88 0 v-8 m-88 8 q0 10 10 10 m68 0 q10 0 10 -10 m-78 10 h4 m60 0 h4 m20 -28 h4 m62 0 h4 m3 0 h-3"/> + <polygon points="207 10 215 6 215 14"/> + <polygon points="207 10 199 6 199 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#generation-option" title="generation_option" shape="rect">generation_option</a></div> + <div>         ::= ( 'INCLUDING' | 'EXCLUDING' ) 'GENERATED'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#like-option" title="like-option">like-option</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + as_subquery_clause +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="713" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="43" y="22" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="34">(</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#column-name-list" xlink:title="column_name_list" shape="rect"> + <rect x="63" y="22" width="92" height="18" class="nonterminal"/> + <text class="nonterminal" x="67" y="34">column_name_list</text></a><rect x="163" y="22" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="167" y="34">)</text> + <rect x="223" y="22" width="34" height="18" class="terminal" rx="4"/> + <text class="terminal" x="227" y="34">WITH</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#table-attributes" xlink:title="table_attributes" shape="rect"> + <rect x="265" y="22" width="80" height="18" class="nonterminal"/> + <text class="nonterminal" x="269" y="34">table_attributes</text></a><rect x="373" y="1" width="20" height="18" class="terminal" rx="4"/> + <text class="terminal" x="377" y="13">AS</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#subquery" xlink:title="subquery" shape="rect"> + <rect x="421" y="1" width="52" height="18" class="nonterminal"/> + <text class="nonterminal" x="425" y="13">subquery</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#query-expression" xlink:title="query_expression" shape="rect"> + <rect x="421" y="29" width="92" height="18" class="nonterminal"/> + <text class="nonterminal" x="425" y="41">query_expression</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#with-or-without-data" xlink:title="with_or_without_data" shape="rect"> + <rect x="561" y="22" width="108" height="18" class="nonterminal"/> + <text class="nonterminal" x="565" y="34">with_or_without_data</text></a><path class="line" d="m17 10 h2 m20 0 h10 m0 0 h130 m-160 0 h20 m140 0 h20 m-180 0 q10 0 10 10 m160 0 q0 -10 10 -10 m-170 10 v1 m160 0 v-1 m-160 1 q0 10 10 10 m140 0 q10 0 10 -10 m-150 10 h4 m12 0 h4 m0 0 h4 m92 0 h4 m0 0 h4 m12 0 h4 m40 -21 h10 m0 0 h120 m-150 0 h20 m130 0 h20 m-170 0 q10 0 10 10 m150 0 q0 -10 10 -10 m-160 10 v1 m150 0 v-1 m-150 1 q0 10 10 10 m130 0 q10 0 10 -10 m-140 10 h4 m34 0 h4 m0 0 h4 m80 0 h4 m20 -21 h4 m20 0 h4 m20 0 h4 m52 0 h4 m0 0 h40 m-120 0 h20 m100 0 h20 m-140 0 q10 0 10 10 m120 0 q0 -10 10 -10 m-130 10 v8 m120 0 v-8 m-120 8 q0 10 10 10 m100 0 q10 0 10 -10 m-110 10 h4 m92 0 h4 m40 -28 h10 m0 0 h106 m-136 0 h20 m116 0 h20 m-156 0 q10 0 10 10 m136 0 q0 -10 10 -10 m-146 10 v1 m136 0 v-1 m-136 1 q0 10 10 10 m116 0 q10 0 10 -10 m-126 10 h4 m108 0 h4 m23 -21 h-3"/> + <polygon points="703 10 711 6 711 14"/> + <polygon points="703 10 695 6 695 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#as-subquery-clause" title="as_subquery_clause" shape="rect">as_subquery_clause</a></div> + <div>         ::= ( '(' <a href="#column-name-list" title="column_name_list" shape="rect">column_name_list</a> ')' )? ( 'WITH' <a href="#table-attributes" title="table_attributes" shape="rect">table_attributes</a> )? 'AS' ( <a href="#subquery" title="subquery" shape="rect">subquery</a> | <a href="#query-expression" title="query_expression" shape="rect">query_expression</a> ) <a href="#with-or-without-data" title="with_or_without_data" shape="rect">with_or_without_data</a>?</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#table-contents-source" title="table-contents-source">table-contents-source</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + with_or_without_data +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="191" height="42"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="34" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">WITH</text> + <rect x="85" y="22" width="22" height="18" class="terminal" rx="4"/> + <text class="terminal" x="89" y="34">NO</text> + <rect x="135" y="1" width="32" height="18" class="terminal" rx="4"/> + <text class="terminal" x="139" y="13">DATA</text> + <path class="line" d="m17 10 h2 m0 0 h4 m34 0 h4 m20 0 h10 m0 0 h20 m-50 0 h20 m30 0 h20 m-70 0 q10 0 10 10 m50 0 q0 -10 10 -10 m-60 10 v1 m50 0 v-1 m-50 1 q0 10 10 10 m30 0 q10 0 10 -10 m-40 10 h4 m22 0 h4 m20 -21 h4 m32 0 h4 m3 0 h-3"/> + <polygon points="181 10 189 6 189 14"/> + <polygon points="181 10 173 6 173 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#with-or-without-data" title="with_or_without_data" shape="rect">with_or_without_data</a></div> + <div>         ::= 'WITH' 'NO'? 'DATA'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#as-subquery-clause" title="as-subquery-clause">as-subquery-clause</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + column_definition +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="765" height="233"> + <polygon points="9 31 1 27 1 35"/> + <polygon points="17 31 9 27 9 35"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#identifier" xlink:title="identifier" shape="rect"> + <rect x="23" y="22" width="46" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="34">identifier</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#data-type-or-schema-qualified-name" xlink:title="data_type_or_schema_qualified_name" shape="rect"> + <rect x="97" y="43" width="190" height="18" class="nonterminal"/> + <text class="nonterminal" x="101" y="55">data_type_or_schema_qualified_name</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#default-clause" xlink:title="default_clause" shape="rect"> + <rect x="335" y="43" width="74" height="18" class="nonterminal"/> + <text class="nonterminal" x="339" y="55">default_clause</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#identity-column-specification" xlink:title="identity_column_specification" shape="rect"> + <rect x="335" y="71" width="138" height="18" class="nonterminal"/> + <text class="nonterminal" x="339" y="83">identity_column_specification</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#generation-clause" xlink:title="generation_clause" shape="rect"> + <rect x="335" y="99" width="94" height="18" class="nonterminal"/> + <text class="nonterminal" x="339" y="111">generation_clause</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#system-version-start-column-specification" xlink:title="system_version_start_column_specification" shape="rect"> + <rect x="335" y="127" width="206" height="18" class="nonterminal"/> + <text class="nonterminal" x="339" y="139">system_version_start_column_specification</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#system-version-end-column-specification" xlink:title="system_version_end_column_specification" shape="rect"> + <rect x="335" y="155" width="204" height="18" class="nonterminal"/> + <text class="nonterminal" x="339" y="167">system_version_end_column_specification</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#column-constraint-definition" xlink:title="column_constraint_definition" shape="rect"> + <rect x="589" y="1" width="138" height="18" class="nonterminal"/> + <text class="nonterminal" x="593" y="13">column_constraint_definition</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#collate-clause" xlink:title="collate_clause" shape="rect"> + <rect x="505" y="213" width="72" height="18" class="nonterminal"/> + <text class="nonterminal" x="509" y="225">collate_clause</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#column-description" xlink:title="column_description" shape="rect"> + <rect x="625" y="213" width="96" height="18" class="nonterminal"/> + <text class="nonterminal" x="629" y="225">column_description</text></a><path class="line" d="m17 31 h2 m0 0 h4 m46 0 h4 m20 0 h10 m0 0 h188 m-218 0 h20 m198 0 h20 m-238 0 q10 0 10 10 m218 0 q0 -10 10 -10 m-228 10 v1 m218 0 v-1 m-218 1 q0 10 10 10 m198 0 q10 0 10 -10 m-208 10 h4 m190 0 h4 m40 -21 h10 m0 0 h204 m-234 0 h20 m214 0 h20 m-254 0 q10 0 10 10 m234 0 q0 -10 10 -10 m-244 10 v1 m234 0 v-1 m-234 1 q0 10 10 10 m214 0 q10 0 10 -10 m-224 10 h4 m74 0 h4 m0 0 h132 m-224 -10 v20 m234 0 v-20 m-234 20 v8 m234 0 v-8 m-234 8 q0 10 10 10 m214 0 q10 0 10 -10 m-224 10 h4 m138 0 h4 m0 0 h68 m-224 -10 v20 m234 0 v-20 m-234 20 v8 m234 0 v-8 m-234 8 q0 10 10 10 m214 0 q10 0 10 -10 m-224 10 h4 m94 0 h4 m0 0 h112 m-224 -10 v20 m234 0 v-20 m-234 20 v8 m234 0 v-8 m-234 8 q0 10 10 10 m214 0 q10 0 10 -10 m-224 10 h4 m206 0 h4 m-224 -10 v20 m234 0 v-20 m-234 20 v8 m234 0 v-8 m-234 8 q0 10 10 10 m214 0 q10 0 10 -10 m-224 10 h4 m204 0 h4 m0 0 h2 m40 -133 h10 m0 0 h136 m-166 0 l20 0 m-1 0 q-9 0 -9 -10 l0 -1 q0 -10 10 -10 m146 21 l20 0 m-20 0 q10 0 10 -10 l0 -1 q0 -10 -10 -10 m-146 0 h4 m138 0 h4 m22 21 l2 0 m2 0 l2 0 m2 0 l2 0 m-294 170 l2 0 m2 0 l2 0 m2 0 l2 0 m22 0 h10 m0 0 h70 m-100 0 h20 m80 0 h20 m-120 0 q10 0 10 10 m100 0 q0 -10 10 -10 m-110 10 v1 m100 0 v-1 m-100 1 q0 10 10 10 m80 0 q10 0 10 -10 m-90 10 h4 m72 0 h4 m40 -21 h10 m0 0 h94 m-124 0 h20 m104 0 h20 m-144 0 q10 0 10 10 m124 0 q0 -10 10 -10 m-134 10 v1 m124 0 v-1 m-124 1 q0 10 10 10 m104 0 q10 0 10 -10 m-114 10 h4 m96 0 h4 m23 -21 h-3"/> + <polygon points="755 201 763 197 763 205"/> + <polygon points="755 201 747 197 747 205"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#column-definition" title="column_definition" shape="rect">column_definition</a></div> + <div>         ::= <a href="#identifier" title="identifier" shape="rect">identifier</a> <a href="#data-type-or-schema-qualified-name" title="data_type_or_schema_qualified_name" shape="rect">data_type_or_schema_qualified_name</a>? ( <a href="#default-clause" title="default_clause" shape="rect">default_clause</a> | <a href="#identity-column-specification" title="identity_column_specification" shape="rect">identity_column_specification</a> | <a href="#generation-clause" title="generation_clause" shape="rect">generation_clause</a> | <a href="#system-version-start-column-specification" title="system_version_start_column_specification" shape="rect">system_version_start_column_specification</a> | <a href="#system-version-end-column-specification" title="system_version_end_column_specification" shape="rect">system_version_end_column_specification</a> )? <a href="#column-constraint-definition" title="column_constraint_definition" shape="rect">column_constraint_definition</a>* <a href="#collate-clause" title="collate_clause" shape="rect">collate_clause</a>? <a href="#column-description" title="column_description" shape="rect">column_description</a>?</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#add-column-definition" title="add-column-definition">add-column-definition</a></li><li><a href="#column-definition-1" title="column-definition-1">column-definition-1</a></li><li><a href="#column-definition-2" title="column-definition-2">column-definition-2</a></li><li><a href="#table-element" title="table-element">table-element</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + data_type_or_schema_qualified_name +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="209" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#data-type" xlink:title="data_type" shape="rect"> + <rect x="43" y="1" width="56" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">data_type</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#schema-qualified-name" xlink:title="schema_qualified_name" shape="rect"> + <rect x="43" y="29" width="122" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">schema_qualified_name</text></a><path class="line" d="m17 10 h2 m20 0 h4 m56 0 h4 m0 0 h66 m-150 0 h20 m130 0 h20 m-170 0 q10 0 10 10 m150 0 q0 -10 10 -10 m-160 10 v8 m150 0 v-8 m-150 8 q0 10 10 10 m130 0 q10 0 10 -10 m-140 10 h4 m122 0 h4 m23 -28 h-3"/> + <polygon points="199 10 207 6 207 14"/> + <polygon points="199 10 191 6 191 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#data-type-or-schema-qualified-name" title="data_type_or_schema_qualified_name" shape="rect">data_type_or_schema_qualified_name</a></div> + <div>         ::= <a href="#data-type" title="data_type" shape="rect">data_type</a></div> + <div>           | <a href="#schema-qualified-name" title="schema_qualified_name" shape="rect">schema_qualified_name</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#column-definition" title="column-definition">column-definition</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + system_version_start_column_specification +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="365" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#timestamp-generation-rule" xlink:title="timestamp_generation_rule" shape="rect"> + <rect x="23" y="1" width="136" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">timestamp_generation_rule</text></a><rect x="167" y="1" width="20" height="18" class="terminal" rx="4"/> + <text class="terminal" x="171" y="13">AS</text> + <rect x="195" y="1" width="44" height="18" class="terminal" rx="4"/> + <text class="terminal" x="199" y="13">SYSTEM</text> + <rect x="247" y="1" width="50" height="18" class="terminal" rx="4"/> + <text class="terminal" x="251" y="13">VERSION</text> + <rect x="305" y="1" width="36" height="18" class="terminal" rx="4"/> + <text class="terminal" x="309" y="13">START</text> + <path class="line" d="m17 10 h2 m0 0 h4 m136 0 h4 m0 0 h4 m20 0 h4 m0 0 h4 m44 0 h4 m0 0 h4 m50 0 h4 m0 0 h4 m36 0 h4 m3 0 h-3"/> + <polygon points="355 10 363 6 363 14"/> + <polygon points="355 10 347 6 347 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#system-version-start-column-specification" title="system_version_start_column_specification" shape="rect">system_version_start_column_specification</a></div> + <div>         ::= <a href="#timestamp-generation-rule" title="timestamp_generation_rule" shape="rect">timestamp_generation_rule</a> 'AS' 'SYSTEM' 'VERSION' 'START'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#column-definition" title="column-definition">column-definition</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + system_version_end_column_specification +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="355" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#timestamp-generation-rule" xlink:title="timestamp_generation_rule" shape="rect"> + <rect x="23" y="1" width="136" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">timestamp_generation_rule</text></a><rect x="167" y="1" width="20" height="18" class="terminal" rx="4"/> + <text class="terminal" x="171" y="13">AS</text> + <rect x="195" y="1" width="44" height="18" class="terminal" rx="4"/> + <text class="terminal" x="199" y="13">SYSTEM</text> + <rect x="247" y="1" width="50" height="18" class="terminal" rx="4"/> + <text class="terminal" x="251" y="13">VERSION</text> + <rect x="305" y="1" width="26" height="18" class="terminal" rx="4"/> + <text class="terminal" x="309" y="13">END</text> + <path class="line" d="m17 10 h2 m0 0 h4 m136 0 h4 m0 0 h4 m20 0 h4 m0 0 h4 m44 0 h4 m0 0 h4 m50 0 h4 m0 0 h4 m26 0 h4 m3 0 h-3"/> + <polygon points="345 10 353 6 353 14"/> + <polygon points="345 10 337 6 337 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#system-version-end-column-specification" title="system_version_end_column_specification" shape="rect">system_version_end_column_specification</a></div> + <div>         ::= <a href="#timestamp-generation-rule" title="timestamp_generation_rule" shape="rect">timestamp_generation_rule</a> 'AS' 'SYSTEM' 'VERSION' 'END'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#column-definition" title="column-definition">column-definition</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + timestamp_generation_rule +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="165" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="62" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">GENERATED</text> + <rect x="93" y="1" width="48" height="18" class="terminal" rx="4"/> + <text class="terminal" x="97" y="13">ALWAYS</text> + <path class="line" d="m17 10 h2 m0 0 h4 m62 0 h4 m0 0 h4 m48 0 h4 m3 0 h-3"/> + <polygon points="155 10 163 6 163 14"/> + <polygon points="155 10 147 6 147 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#timestamp-generation-rule" title="timestamp_generation_rule" shape="rect">timestamp_generation_rule</a></div> + <div>         ::= 'GENERATED' 'ALWAYS'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#system-version-end-column-specification" title="system-version-end-column-specification">system-version-end-column-specification</a></li><li><a href="#system-version-start-column-specification" title="system-version-start-column-specification">system-version-start-column-specification</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + column_constraint_definition +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="487" height="42"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#constraint-name-definition" xlink:title="constraint_name_definition" shape="rect"> + <rect x="43" y="22" width="132" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="34">constraint_name_definition</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#column-constraint" xlink:title="column_constraint" shape="rect"> + <rect x="203" y="1" width="92" height="18" class="nonterminal"/> + <text class="nonterminal" x="207" y="13">column_constraint</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#constraint-characteristics" xlink:title="constraint_characteristics" shape="rect"> + <rect x="323" y="22" width="120" height="18" class="nonterminal"/> + <text class="nonterminal" x="327" y="34">constraint_characteristics</text></a><path class="line" d="m17 10 h2 m20 0 h10 m0 0 h130 m-160 0 h20 m140 0 h20 m-180 0 q10 0 10 10 m160 0 q0 -10 10 -10 m-170 10 v1 m160 0 v-1 m-160 1 q0 10 10 10 m140 0 q10 0 10 -10 m-150 10 h4 m132 0 h4 m20 -21 h4 m92 0 h4 m20 0 h10 m0 0 h118 m-148 0 h20 m128 0 h20 m-168 0 q10 0 10 10 m148 0 q0 -10 10 -10 m-158 10 v1 m148 0 v-1 m-148 1 q0 10 10 10 m128 0 q10 0 10 -10 m-138 10 h4 m120 0 h4 m23 -21 h-3"/> + <polygon points="477 10 485 6 485 14"/> + <polygon points="477 10 469 6 469 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#column-constraint-definition" title="column_constraint_definition" shape="rect">column_constraint_definition</a></div> + <div>         ::= <a href="#constraint-name-definition" title="constraint_name_definition" shape="rect">constraint_name_definition</a>? <a href="#column-constraint" title="column_constraint" shape="rect">column_constraint</a> <a href="#constraint-characteristics" title="constraint_characteristics" shape="rect">constraint_characteristics</a>?</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#column-definition" title="column-definition">column-definition</a></li><li><a href="#column-option-list" title="column-option-list">column-option-list</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + column_constraint +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="217" height="105"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="43" y="1" width="28" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="13">NOT</text> + <rect x="79" y="1" width="32" height="18" class="terminal" rx="4"/> + <text class="terminal" x="83" y="13">NULL</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#unique-specification" xlink:title="unique_specification" shape="rect"> + <rect x="43" y="29" width="100" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">unique_specification</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#references-specification" xlink:title="references_specification" shape="rect"> + <rect x="43" y="57" width="116" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="69">references_specification</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#check-constraint-definition" xlink:title="check_constraint_definition" shape="rect"> + <rect x="43" y="85" width="130" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="97">check_constraint_definition</text></a><path class="line" d="m17 10 h2 m20 0 h4 m28 0 h4 m0 0 h4 m32 0 h4 m0 0 h62 m-158 0 h20 m138 0 h20 m-178 0 q10 0 10 10 m158 0 q0 -10 10 -10 m-168 10 v8 m158 0 v-8 m-158 8 q0 10 10 10 m138 0 q10 0 10 -10 m-148 10 h4 m100 0 h4 m0 0 h30 m-148 -10 v20 m158 0 v-20 m-158 20 v8 m158 0 v-8 m-158 8 q0 10 10 10 m138 0 q10 0 10 -10 m-148 10 h4 m116 0 h4 m0 0 h14 m-148 -10 v20 m158 0 v-20 m-158 20 v8 m158 0 v-8 m-158 8 q0 10 10 10 m138 0 q10 0 10 -10 m-148 10 h4 m130 0 h4 m23 -84 h-3"/> + <polygon points="207 10 215 6 215 14"/> + <polygon points="207 10 199 6 199 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#column-constraint" title="column_constraint" shape="rect">column_constraint</a></div> + <div>         ::= 'NOT' 'NULL'</div> + <div>           | <a href="#unique-specification" title="unique_specification" shape="rect">unique_specification</a></div> + <div>           | <a href="#references-specification" title="references_specification" shape="rect">references_specification</a></div> + <div>           | <a href="#check-constraint-definition" title="check_constraint_definition" shape="rect">check_constraint_definition</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#column-constraint-definition" title="column-constraint-definition">column-constraint-definition</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + identity_column_specification +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="599" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="62" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">GENERATED</text> + <rect x="113" y="1" width="48" height="18" class="terminal" rx="4"/> + <text class="terminal" x="117" y="13">ALWAYS</text> + <rect x="113" y="29" width="20" height="18" class="terminal" rx="4"/> + <text class="terminal" x="117" y="41">BY</text> + <rect x="141" y="29" width="48" height="18" class="terminal" rx="4"/> + <text class="terminal" x="145" y="41">DEFAULT</text> + <rect x="217" y="1" width="20" height="18" class="terminal" rx="4"/> + <text class="terminal" x="221" y="13">AS</text> + <rect x="245" y="1" width="50" height="18" class="terminal" rx="4"/> + <text class="terminal" x="249" y="13">IDENTITY</text> + <rect x="323" y="22" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="327" y="34">(</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#common-sequence-generator-options" xlink:title="common_sequence_generator_options" shape="rect"> + <rect x="343" y="22" width="192" height="18" class="nonterminal"/> + <text class="nonterminal" x="347" y="34">common_sequence_generator_options</text></a><rect x="543" y="22" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="547" y="34">)</text> + <path class="line" d="m17 10 h2 m0 0 h4 m62 0 h4 m20 0 h4 m48 0 h4 m0 0 h28 m-104 0 h20 m84 0 h20 m-124 0 q10 0 10 10 m104 0 q0 -10 10 -10 m-114 10 v8 m104 0 v-8 m-104 8 q0 10 10 10 m84 0 q10 0 10 -10 m-94 10 h4 m20 0 h4 m0 0 h4 m48 0 h4 m20 -28 h4 m20 0 h4 m0 0 h4 m50 0 h4 m20 0 h10 m0 0 h230 m-260 0 h20 m240 0 h20 m-280 0 q10 0 10 10 m260 0 q0 -10 10 -10 m-270 10 v1 m260 0 v-1 m-260 1 q0 10 10 10 m240 0 q10 0 10 -10 m-250 10 h4 m12 0 h4 m0 0 h4 m192 0 h4 m0 0 h4 m12 0 h4 m23 -21 h-3"/> + <polygon points="589 10 597 6 597 14"/> + <polygon points="589 10 581 6 581 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#identity-column-specification" title="identity_column_specification" shape="rect">identity_column_specification</a></div> + <div>         ::= 'GENERATED' ( 'ALWAYS' | 'BY' 'DEFAULT' ) 'AS' 'IDENTITY' ( '(' <a href="#common-sequence-generator-options" title="common_sequence_generator_options" shape="rect">common_sequence_generator_options</a> ')' )?</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#column-definition" title="column-definition">column-definition</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + generation_clause +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="279" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#generation-rule" xlink:title="generation_rule" shape="rect"> + <rect x="23" y="1" width="82" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">generation_rule</text></a><rect x="113" y="1" width="20" height="18" class="terminal" rx="4"/> + <text class="terminal" x="117" y="13">AS</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#generation-expression" xlink:title="generation_expression" shape="rect"> + <rect x="141" y="1" width="114" height="18" class="nonterminal"/> + <text class="nonterminal" x="145" y="13">generation_expression</text></a><path class="line" d="m17 10 h2 m0 0 h4 m82 0 h4 m0 0 h4 m20 0 h4 m0 0 h4 m114 0 h4 m3 0 h-3"/> + <polygon points="269 10 277 6 277 14"/> + <polygon points="269 10 261 6 261 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#generation-clause" title="generation_clause" shape="rect">generation_clause</a></div> + <div>         ::= <a href="#generation-rule" title="generation_rule" shape="rect">generation_rule</a> 'AS' <a href="#generation-expression" title="generation_expression" shape="rect">generation_expression</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#column-definition" title="column-definition">column-definition</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + generation_rule +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="165" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="62" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">GENERATED</text> + <rect x="93" y="1" width="48" height="18" class="terminal" rx="4"/> + <text class="terminal" x="97" y="13">ALWAYS</text> + <path class="line" d="m17 10 h2 m0 0 h4 m62 0 h4 m0 0 h4 m48 0 h4 m3 0 h-3"/> + <polygon points="155 10 163 6 163 14"/> + <polygon points="155 10 147 6 147 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#generation-rule" title="generation_rule" shape="rect">generation_rule</a></div> + <div>         ::= 'GENERATED' 'ALWAYS'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#generation-clause" title="generation-clause">generation-clause</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + generation_expression +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="177" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">(</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#value-expression" xlink:title="value_expression" shape="rect"> + <rect x="43" y="1" width="90" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">value_expression</text></a><rect x="141" y="1" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="145" y="13">)</text> + <path class="line" d="m17 10 h2 m0 0 h4 m12 0 h4 m0 0 h4 m90 0 h4 m0 0 h4 m12 0 h4 m3 0 h-3"/> + <polygon points="167 10 175 6 175 14"/> + <polygon points="167 10 159 6 159 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#generation-expression" title="generation_expression" shape="rect">generation_expression</a></div> + <div>         ::= '(' <a href="#value-expression" title="value_expression" shape="rect">value_expression</a> ')'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#generation-clause" title="generation-clause">generation-clause</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + default_clause +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="177" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="48" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">DEFAULT</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#default-option" xlink:title="default_option" shape="rect"> + <rect x="79" y="1" width="74" height="18" class="nonterminal"/> + <text class="nonterminal" x="83" y="13">default_option</text></a><path class="line" d="m17 10 h2 m0 0 h4 m48 0 h4 m0 0 h4 m74 0 h4 m3 0 h-3"/> + <polygon points="167 10 175 6 175 14"/> + <polygon points="167 10 159 6 159 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#default-clause" title="default_clause" shape="rect">default_clause</a></div> + <div>         ::= 'DEFAULT' <a href="#default-option" title="default_option" shape="rect">default_option</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#attribute-default" title="attribute-default">attribute-default</a></li><li><a href="#column-definition" title="column-definition">column-definition</a></li><li><a href="#column-option-list" title="column-option-list">column-option-list</a></li><li><a href="#domain-definition" title="domain-definition">domain-definition</a></li><li><a href="#set-column-default-clause" title="set-column-default-clause">set-column-default-clause</a></li><li><a href="#set-domain-default-clause" title="set-domain-default-clause">set-domain-default-clause</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + default_option +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="251" height="301"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#literal" xlink:title="literal" shape="rect"> + <rect x="43" y="1" width="32" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">literal</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#datetime-value-function" xlink:title="datetime_value_function" shape="rect"> + <rect x="43" y="29" width="122" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">datetime_value_function</text></a><rect x="43" y="57" width="32" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="69">USER</text> + <rect x="43" y="85" width="80" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="97">CURRENT_USER</text> + <rect x="43" y="113" width="82" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="125">CURRENT_ROLE</text> + <rect x="43" y="141" width="80" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="153">SESSION_USER</text> + <rect x="43" y="169" width="74" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="181">SYSTEM_USER</text> + <rect x="43" y="197" width="100" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="209">CURRENT_CATALOG</text> + <rect x="43" y="225" width="96" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="237">CURRENT_SCHEMA</text> + <rect x="43" y="253" width="82" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="265">CURRENT_PATH</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#implicitly-typed-value-specification" xlink:title="implicitly_typed_value_specification" shape="rect"> + <rect x="43" y="281" width="164" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="293">implicitly_typed_value_specification</text></a><path class="line" d="m17 10 h2 m20 0 h4 m32 0 h4 m0 0 h132 m-192 0 h20 m172 0 h20 m-212 0 q10 0 10 10 m192 0 q0 -10 10 -10 m-202 10 v8 m192 0 v-8 m-192 8 q0 10 10 10 m172 0 q10 0 10 -10 m-182 10 h4 m122 0 h4 m0 0 h42 m-182 -10 v20 m192 0 v-20 m-192 20 v8 m192 0 v-8 m-192 8 q0 10 10 10 m172 0 q10 0 10 -10 m-182 10 h4 m32 0 h4 m0 0 h132 m-182 -10 v20 m192 0 v-20 m-192 20 v8 m192 0 v-8 m-192 8 q0 10 10 10 m172 0 q10 0 10 -10 m-182 10 h4 m80 0 h4 m0 0 h84 m-182 -10 v20 m192 0 v-20 m-192 20 v8 m192 0 v-8 m-192 8 q0 10 10 10 m172 0 q10 0 10 -10 m-182 10 h4 m82 0 h4 m0 0 h82 m-182 -10 v20 m192 0 v-20 m-192 20 v8 m192 0 v-8 m-192 8 q0 10 10 10 m172 0 q10 0 10 -10 m-182 10 h4 m80 0 h4 m0 0 h84 m-182 -10 v20 m192 0 v-20 m-192 20 v8 m192 0 v-8 m-192 8 q0 10 10 10 m172 0 q10 0 10 -10 m-182 10 h4 m74 0 h4 m0 0 h90 m-182 -10 v20 m192 0 v-20 m-192 20 v8 m192 0 v-8 m-192 8 q0 10 10 10 m172 0 q10 0 10 -10 m-182 10 h4 m100 0 h4 m0 0 h64 m-182 -10 v20 m192 0 v-20 m-192 20 v8 m192 0 v-8 m-192 8 q0 10 10 10 m172 0 q10 0 10 -10 m-182 10 h4 m96 0 h4 m0 0 h68 m-182 -10 v20 m192 0 v-20 m-192 20 v8 m192 0 v-8 m-192 8 q0 10 10 10 m172 0 q10 0 10 -10 m-182 10 h4 m82 0 h4 m0 0 h82 m-182 -10 v20 m192 0 v-20 m-192 20 v8 m192 0 v-8 m-192 8 q0 10 10 10 m172 0 q10 0 10 -10 m-182 10 h4 m164 0 h4 m23 -280 h-3"/> + <polygon points="241 10 249 6 249 14"/> + <polygon points="241 10 233 6 233 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#default-option" title="default_option" shape="rect">default_option</a></div> + <div>         ::= <a href="#literal" title="literal" shape="rect">literal</a></div> + <div>           | <a href="#datetime-value-function" title="datetime_value_function" shape="rect">datetime_value_function</a></div> + <div>           | 'USER'</div> + <div>           | 'CURRENT_USER'</div> + <div>           | 'CURRENT_ROLE'</div> + <div>           | 'SESSION_USER'</div> + <div>           | 'SYSTEM_USER'</div> + <div>           | 'CURRENT_CATALOG'</div> + <div>           | 'CURRENT_SCHEMA'</div> + <div>           | 'CURRENT_PATH'</div> + <div>           | <a href="#implicitly-typed-value-specification" title="implicitly_typed_value_specification" shape="rect">implicitly_typed_value_specification</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#default-clause" title="default-clause">default-clause</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + table_constraint_definition +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="477" height="42"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#constraint-name-definition" xlink:title="constraint_name_definition" shape="rect"> + <rect x="43" y="22" width="132" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="34">constraint_name_definition</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#table-constraint" xlink:title="table_constraint" shape="rect"> + <rect x="203" y="1" width="82" height="18" class="nonterminal"/> + <text class="nonterminal" x="207" y="13">table_constraint</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#constraint-characteristics" xlink:title="constraint_characteristics" shape="rect"> + <rect x="313" y="22" width="120" height="18" class="nonterminal"/> + <text class="nonterminal" x="317" y="34">constraint_characteristics</text></a><path class="line" d="m17 10 h2 m20 0 h10 m0 0 h130 m-160 0 h20 m140 0 h20 m-180 0 q10 0 10 10 m160 0 q0 -10 10 -10 m-170 10 v1 m160 0 v-1 m-160 1 q0 10 10 10 m140 0 q10 0 10 -10 m-150 10 h4 m132 0 h4 m20 -21 h4 m82 0 h4 m20 0 h10 m0 0 h118 m-148 0 h20 m128 0 h20 m-168 0 q10 0 10 10 m148 0 q0 -10 10 -10 m-158 10 v1 m148 0 v-1 m-148 1 q0 10 10 10 m128 0 q10 0 10 -10 m-138 10 h4 m120 0 h4 m23 -21 h-3"/> + <polygon points="467 10 475 6 475 14"/> + <polygon points="467 10 459 6 459 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#table-constraint-definition" title="table_constraint_definition" shape="rect">table_constraint_definition</a></div> + <div>         ::= <a href="#constraint-name-definition" title="constraint_name_definition" shape="rect">constraint_name_definition</a>? <a href="#table-constraint" title="table_constraint" shape="rect">table_constraint</a> <a href="#constraint-characteristics" title="constraint_characteristics" shape="rect">constraint_characteristics</a>?</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#add-table-constraint-definition" title="add-table-constraint-definition">add-table-constraint-definition</a></li><li><a href="#table-element" title="table-element">table-element</a></li><li><a href="#typed-table-element" title="typed-table-element">typed-table-element</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + table_constraint +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="235" height="77"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#unique-constraint-definition" xlink:title="unique_constraint_definition" shape="rect"> + <rect x="43" y="1" width="136" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">unique_constraint_definition</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#referential-constraint-definition" xlink:title="referential_constraint_definition" shape="rect"> + <rect x="43" y="29" width="148" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">referential_constraint_definition</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#check-constraint-definition" xlink:title="check_constraint_definition" shape="rect"> + <rect x="43" y="57" width="130" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="69">check_constraint_definition</text></a><path class="line" d="m17 10 h2 m20 0 h4 m136 0 h4 m0 0 h12 m-176 0 h20 m156 0 h20 m-196 0 q10 0 10 10 m176 0 q0 -10 10 -10 m-186 10 v8 m176 0 v-8 m-176 8 q0 10 10 10 m156 0 q10 0 10 -10 m-166 10 h4 m148 0 h4 m-166 -10 v20 m176 0 v-20 m-176 20 v8 m176 0 v-8 m-176 8 q0 10 10 10 m156 0 q10 0 10 -10 m-166 10 h4 m130 0 h4 m0 0 h18 m23 -56 h-3"/> + <polygon points="225 10 233 6 233 14"/> + <polygon points="225 10 217 6 217 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#table-constraint" title="table_constraint" shape="rect">table_constraint</a></div> + <div>         ::= <a href="#unique-constraint-definition" title="unique_constraint_definition" shape="rect">unique_constraint_definition</a></div> + <div>           | <a href="#referential-constraint-definition" title="referential_constraint_definition" shape="rect">referential_constraint_definition</a></div> + <div>           | <a href="#check-constraint-definition" title="check_constraint_definition" shape="rect">check_constraint_definition</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#table-constraint-definition" title="table-constraint-definition">table-constraint-definition</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + unique_constraint_definition +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="331" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#unique-specification" xlink:title="unique_specification" shape="rect"> + <rect x="43" y="1" width="100" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">unique_specification</text></a><rect x="151" y="1" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="155" y="13">(</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#unique-column-list" xlink:title="unique_column_list" shape="rect"> + <rect x="171" y="1" width="96" height="18" class="nonterminal"/> + <text class="nonterminal" x="175" y="13">unique_column_list</text></a><rect x="275" y="1" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="279" y="13">)</text> + <rect x="43" y="29" width="44" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="41">UNIQUE</text> + <rect x="95" y="29" width="36" height="18" class="terminal" rx="4"/> + <text class="terminal" x="99" y="41">VALUE</text> + <path class="line" d="m17 10 h2 m20 0 h4 m100 0 h4 m0 0 h4 m12 0 h4 m0 0 h4 m96 0 h4 m0 0 h4 m12 0 h4 m-272 0 h20 m252 0 h20 m-292 0 q10 0 10 10 m272 0 q0 -10 10 -10 m-282 10 v8 m272 0 v-8 m-272 8 q0 10 10 10 m252 0 q10 0 10 -10 m-262 10 h4 m44 0 h4 m0 0 h4 m36 0 h4 m0 0 h156 m23 -28 h-3"/> + <polygon points="321 10 329 6 329 14"/> + <polygon points="321 10 313 6 313 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#unique-constraint-definition" title="unique_constraint_definition" shape="rect">unique_constraint_definition</a></div> + <div>         ::= <a href="#unique-specification" title="unique_specification" shape="rect">unique_specification</a> '(' <a href="#unique-column-list" title="unique_column_list" shape="rect">unique_column_list</a> ')'</div> + <div>           | 'UNIQUE' 'VALUE'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#table-constraint" title="table-constraint">table-constraint</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + unique_specification +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="169" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="43" y="1" width="44" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="13">UNIQUE</text> + <rect x="43" y="29" width="50" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="41">PRIMARY</text> + <rect x="101" y="29" width="24" height="18" class="terminal" rx="4"/> + <text class="terminal" x="105" y="41">KEY</text> + <path class="line" d="m17 10 h2 m20 0 h4 m44 0 h4 m0 0 h38 m-110 0 h20 m90 0 h20 m-130 0 q10 0 10 10 m110 0 q0 -10 10 -10 m-120 10 v8 m110 0 v-8 m-110 8 q0 10 10 10 m90 0 q10 0 10 -10 m-100 10 h4 m50 0 h4 m0 0 h4 m24 0 h4 m23 -28 h-3"/> + <polygon points="159 10 167 6 167 14"/> + <polygon points="159 10 151 6 151 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#unique-specification" title="unique_specification" shape="rect">unique_specification</a></div> + <div>         ::= 'UNIQUE'</div> + <div>           | 'PRIMARY' 'KEY'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#column-constraint" title="column-constraint">column-constraint</a></li><li><a href="#unique-constraint-definition" title="unique-constraint-definition">unique-constraint-definition</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + unique_column_list +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="139" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#column-name-list" xlink:title="column_name_list" shape="rect"> + <rect x="23" y="1" width="92" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">column_name_list</text></a><path class="line" d="m17 10 h2 m0 0 h4 m92 0 h4 m3 0 h-3"/> + <polygon points="129 10 137 6 137 14"/> + <polygon points="129 10 121 6 121 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#unique-column-list" title="unique_column_list" shape="rect">unique_column_list</a></div> + <div>         ::= <a href="#column-name-list" title="column_name_list" shape="rect">column_name_list</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#unique-constraint-definition" title="unique-constraint-definition">unique-constraint-definition</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + referential_constraint_definition +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="405" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="50" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">FOREIGN</text> + <rect x="81" y="1" width="24" height="18" class="terminal" rx="4"/> + <text class="terminal" x="85" y="13">KEY</text> + <rect x="113" y="1" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="117" y="13">(</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#referencing-columns" xlink:title="referencing_columns" shape="rect"> + <rect x="133" y="1" width="104" height="18" class="nonterminal"/> + <text class="nonterminal" x="137" y="13">referencing_columns</text></a><rect x="245" y="1" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="249" y="13">)</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#references-specification" xlink:title="references_specification" shape="rect"> + <rect x="265" y="1" width="116" height="18" class="nonterminal"/> + <text class="nonterminal" x="269" y="13">references_specification</text></a><path class="line" d="m17 10 h2 m0 0 h4 m50 0 h4 m0 0 h4 m24 0 h4 m0 0 h4 m12 0 h4 m0 0 h4 m104 0 h4 m0 0 h4 m12 0 h4 m0 0 h4 m116 0 h4 m3 0 h-3"/> + <polygon points="395 10 403 6 403 14"/> + <polygon points="395 10 387 6 387 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#referential-constraint-definition" title="referential_constraint_definition" shape="rect">referential_constraint_definition</a></div> + <div>         ::= 'FOREIGN' 'KEY' '(' <a href="#referencing-columns" title="referencing_columns" shape="rect">referencing_columns</a> ')' <a href="#references-specification" title="references_specification" shape="rect">references_specification</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#table-constraint" title="table-constraint">table-constraint</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + references_specification +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="615" height="42"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="66" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">REFERENCES</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#referenced-table-and-columns" xlink:title="referenced_table_and_columns" shape="rect"> + <rect x="97" y="1" width="154" height="18" class="nonterminal"/> + <text class="nonterminal" x="101" y="13">referenced_table_and_columns</text></a><rect x="279" y="22" width="40" height="18" class="terminal" rx="4"/> + <text class="terminal" x="283" y="34">MATCH</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#match-type" xlink:title="match_type" shape="rect"> + <rect x="327" y="22" width="64" height="18" class="nonterminal"/> + <text class="nonterminal" x="331" y="34">match_type</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#referential-triggered-action" xlink:title="referential_triggered_action" shape="rect"> + <rect x="439" y="22" width="132" height="18" class="nonterminal"/> + <text class="nonterminal" x="443" y="34">referential_triggered_action</text></a><path class="line" d="m17 10 h2 m0 0 h4 m66 0 h4 m0 0 h4 m154 0 h4 m20 0 h10 m0 0 h110 m-140 0 h20 m120 0 h20 m-160 0 q10 0 10 10 m140 0 q0 -10 10 -10 m-150 10 v1 m140 0 v-1 m-140 1 q0 10 10 10 m120 0 q10 0 10 -10 m-130 10 h4 m40 0 h4 m0 0 h4 m64 0 h4 m40 -21 h10 m0 0 h130 m-160 0 h20 m140 0 h20 m-180 0 q10 0 10 10 m160 0 q0 -10 10 -10 m-170 10 v1 m160 0 v-1 m-160 1 q0 10 10 10 m140 0 q10 0 10 -10 m-150 10 h4 m132 0 h4 m23 -21 h-3"/> + <polygon points="605 10 613 6 613 14"/> + <polygon points="605 10 597 6 597 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#references-specification" title="references_specification" shape="rect">references_specification</a></div> + <div>         ::= 'REFERENCES' <a href="#referenced-table-and-columns" title="referenced_table_and_columns" shape="rect">referenced_table_and_columns</a> ( 'MATCH' <a href="#match-type" title="match_type" shape="rect">match_type</a> )? <a href="#referential-triggered-action" title="referential_triggered_action" shape="rect">referential_triggered_action</a>?</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#column-constraint" title="column-constraint">column-constraint</a></li><li><a href="#referential-constraint-definition" title="referential-constraint-definition">referential-constraint-definition</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + match_type +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="133" height="77"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="43" y="1" width="30" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="13">FULL</text> + <rect x="43" y="29" width="46" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="41">PARTIAL</text> + <rect x="43" y="57" width="42" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="69">SIMPLE</text> + <path class="line" d="m17 10 h2 m20 0 h4 m30 0 h4 m0 0 h16 m-74 0 h20 m54 0 h20 m-94 0 q10 0 10 10 m74 0 q0 -10 10 -10 m-84 10 v8 m74 0 v-8 m-74 8 q0 10 10 10 m54 0 q10 0 10 -10 m-64 10 h4 m46 0 h4 m-64 -10 v20 m74 0 v-20 m-74 20 v8 m74 0 v-8 m-74 8 q0 10 10 10 m54 0 q10 0 10 -10 m-64 10 h4 m42 0 h4 m0 0 h4 m23 -56 h-3"/> + <polygon points="123 10 131 6 131 14"/> + <polygon points="123 10 115 6 115 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#match-type" title="match_type" shape="rect">match_type</a></div> + <div>         ::= 'FULL'</div> + <div>           | 'PARTIAL'</div> + <div>           | 'SIMPLE'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#references-specification" title="references-specification">references-specification</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + referencing_columns +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="155" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#reference-column-list" xlink:title="reference_column_list" shape="rect"> + <rect x="23" y="1" width="108" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">reference_column_list</text></a><path class="line" d="m17 10 h2 m0 0 h4 m108 0 h4 m3 0 h-3"/> + <polygon points="145 10 153 6 153 14"/> + <polygon points="145 10 137 6 137 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#referencing-columns" title="referencing_columns" shape="rect">referencing_columns</a></div> + <div>         ::= <a href="#reference-column-list" title="reference_column_list" shape="rect">reference_column_list</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#referential-constraint-definition" title="referential-constraint-definition">referential-constraint-definition</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + referenced_table_and_columns +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="309" height="42"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#table-name" xlink:title="table_name" shape="rect"> + <rect x="23" y="1" width="66" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">table_name</text></a><rect x="117" y="22" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="121" y="34">(</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#reference-column-list" xlink:title="reference_column_list" shape="rect"> + <rect x="137" y="22" width="108" height="18" class="nonterminal"/> + <text class="nonterminal" x="141" y="34">reference_column_list</text></a><rect x="253" y="22" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="257" y="34">)</text> + <path class="line" d="m17 10 h2 m0 0 h4 m66 0 h4 m20 0 h10 m0 0 h146 m-176 0 h20 m156 0 h20 m-196 0 q10 0 10 10 m176 0 q0 -10 10 -10 m-186 10 v1 m176 0 v-1 m-176 1 q0 10 10 10 m156 0 q10 0 10 -10 m-166 10 h4 m12 0 h4 m0 0 h4 m108 0 h4 m0 0 h4 m12 0 h4 m23 -21 h-3"/> + <polygon points="299 10 307 6 307 14"/> + <polygon points="299 10 291 6 291 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#referenced-table-and-columns" title="referenced_table_and_columns" shape="rect">referenced_table_and_columns</a></div> + <div>         ::= <a href="#table-name" title="table_name" shape="rect">table_name</a> ( '(' <a href="#reference-column-list" title="reference_column_list" shape="rect">reference_column_list</a> ')' )?</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#references-specification" title="references-specification">references-specification</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + reference_column_list +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="139" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#column-name-list" xlink:title="column_name_list" shape="rect"> + <rect x="23" y="1" width="92" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">column_name_list</text></a><path class="line" d="m17 10 h2 m0 0 h4 m92 0 h4 m3 0 h-3"/> + <polygon points="129 10 137 6 137 14"/> + <polygon points="129 10 121 6 121 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#reference-column-list" title="reference_column_list" shape="rect">reference_column_list</a></div> + <div>         ::= <a href="#column-name-list" title="column_name_list" shape="rect">column_name_list</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#referenced-table-and-columns" title="referenced-table-and-columns">referenced-table-and-columns</a></li><li><a href="#referencing-columns" title="referencing-columns">referencing-columns</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + referential_triggered_action +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="259" height="91"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#update-rule" xlink:title="update_rule" shape="rect"> + <rect x="43" y="1" width="64" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">update_rule</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#delete-rule" xlink:title="delete_rule" shape="rect"> + <rect x="135" y="22" width="60" height="18" class="nonterminal"/> + <text class="nonterminal" x="139" y="34">delete_rule</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#delete-rule" xlink:title="delete_rule" shape="rect"> + <rect x="43" y="50" width="60" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="62">delete_rule</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#update-rule" xlink:title="update_rule" shape="rect"> + <rect x="131" y="71" width="64" height="18" class="nonterminal"/> + <text class="nonterminal" x="135" y="83">update_rule</text></a><path class="line" d="m17 10 h2 m20 0 h4 m64 0 h4 m20 0 h10 m0 0 h58 m-88 0 h20 m68 0 h20 m-108 0 q10 0 10 10 m88 0 q0 -10 10 -10 m-98 10 v1 m88 0 v-1 m-88 1 q0 10 10 10 m68 0 q10 0 10 -10 m-78 10 h4 m60 0 h4 m-180 -21 h20 m180 0 h20 m-220 0 q10 0 10 10 m200 0 q0 -10 10 -10 m-210 10 v29 m200 0 v-29 m-200 29 q0 10 10 10 m180 0 q10 0 10 -10 m-190 10 h4 m60 0 h4 m20 0 h10 m0 0 h62 m-92 0 h20 m72 0 h20 m-112 0 q10 0 10 10 m92 0 q0 -10 10 -10 m-102 10 v1 m92 0 v-1 m-92 1 q0 10 10 10 m72 0 q10 0 10 -10 m-82 10 h4 m64 0 h4 m43 -70 h-3"/> + <polygon points="249 10 257 6 257 14"/> + <polygon points="249 10 241 6 241 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#referential-triggered-action" title="referential_triggered_action" shape="rect">referential_triggered_action</a></div> + <div>         ::= <a href="#update-rule" title="update_rule" shape="rect">update_rule</a> <a href="#delete-rule" title="delete_rule" shape="rect">delete_rule</a>?</div> + <div>           | <a href="#delete-rule" title="delete_rule" shape="rect">delete_rule</a> <a href="#update-rule" title="update_rule" shape="rect">update_rule</a>?</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#references-specification" title="references-specification">references-specification</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + update_rule +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="215" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="22" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">ON</text> + <rect x="53" y="1" width="44" height="18" class="terminal" rx="4"/> + <text class="terminal" x="57" y="13">UPDATE</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#referential-action" xlink:title="referential_action" shape="rect"> + <rect x="105" y="1" width="86" height="18" class="nonterminal"/> + <text class="nonterminal" x="109" y="13">referential_action</text></a><path class="line" d="m17 10 h2 m0 0 h4 m22 0 h4 m0 0 h4 m44 0 h4 m0 0 h4 m86 0 h4 m3 0 h-3"/> + <polygon points="205 10 213 6 213 14"/> + <polygon points="205 10 197 6 197 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#update-rule" title="update_rule" shape="rect">update_rule</a></div> + <div>         ::= 'ON' 'UPDATE' <a href="#referential-action" title="referential_action" shape="rect">referential_action</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#referential-triggered-action" title="referential-triggered-action">referential-triggered-action</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + delete_rule +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="211" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="22" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">ON</text> + <rect x="53" y="1" width="40" height="18" class="terminal" rx="4"/> + <text class="terminal" x="57" y="13">DELETE</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#referential-action" xlink:title="referential_action" shape="rect"> + <rect x="101" y="1" width="86" height="18" class="nonterminal"/> + <text class="nonterminal" x="105" y="13">referential_action</text></a><path class="line" d="m17 10 h2 m0 0 h4 m22 0 h4 m0 0 h4 m40 0 h4 m0 0 h4 m86 0 h4 m3 0 h-3"/> + <polygon points="201 10 209 6 209 14"/> + <polygon points="201 10 193 6 193 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#delete-rule" title="delete_rule" shape="rect">delete_rule</a></div> + <div>         ::= 'ON' 'DELETE' <a href="#referential-action" title="referential_action" shape="rect">referential_action</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#referential-triggered-action" title="referential-triggered-action">referential-triggered-action</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + referential_action +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="207" height="133"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="43" y="1" width="50" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="13">CASCADE</text> + <rect x="43" y="29" width="24" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="41">SET</text> + <rect x="95" y="29" width="32" height="18" class="terminal" rx="4"/> + <text class="terminal" x="99" y="41">NULL</text> + <rect x="95" y="57" width="48" height="18" class="terminal" rx="4"/> + <text class="terminal" x="99" y="69">DEFAULT</text> + <rect x="43" y="85" width="52" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="97">RESTRICT</text> + <rect x="43" y="113" width="22" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="125">NO</text> + <rect x="73" y="113" width="44" height="18" class="terminal" rx="4"/> + <text class="terminal" x="77" y="125">ACTION</text> + <path class="line" d="m17 10 h2 m20 0 h4 m50 0 h4 m0 0 h70 m-148 0 h20 m128 0 h20 m-168 0 q10 0 10 10 m148 0 q0 -10 10 -10 m-158 10 v8 m148 0 v-8 m-148 8 q0 10 10 10 m128 0 q10 0 10 -10 m-138 10 h4 m24 0 h4 m20 0 h4 m32 0 h4 m0 0 h16 m-76 0 h20 m56 0 h20 m-96 0 q10 0 10 10 m76 0 q0 -10 10 -10 m-86 10 v8 m76 0 v-8 m-76 8 q0 10 10 10 m56 0 q10 0 10 -10 m-66 10 h4 m48 0 h4 m-118 -38 v20 m148 0 v-20 m-148 20 v36 m148 0 v-36 m-148 36 q0 10 10 10 m128 0 q10 0 10 -10 m-138 10 h4 m52 0 h4 m0 0 h68 m-138 -10 v20 m148 0 v-20 m-148 20 v8 m148 0 v-8 m-148 8 q0 10 10 10 m128 0 q10 0 10 -10 m-138 10 h4 m22 0 h4 m0 0 h4 m44 0 h4 m0 0 h46 m23 -112 h-3"/> + <polygon points="197 10 205 6 205 14"/> + <polygon points="197 10 189 6 189 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#referential-action" title="referential_action" shape="rect">referential_action</a></div> + <div>         ::= 'CASCADE'</div> + <div>           | 'SET' ( 'NULL' | 'DEFAULT' )</div> + <div>           | 'RESTRICT'</div> + <div>           | 'NO' 'ACTION'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#delete-rule" title="delete-rule">delete-rule</a></li><li><a href="#update-rule" title="update-rule">update-rule</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + check_constraint_definition +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="219" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="38" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">CHECK</text> + <rect x="69" y="1" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="73" y="13">(</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#search-condition" xlink:title="search_condition" shape="rect"> + <rect x="89" y="1" width="86" height="18" class="nonterminal"/> + <text class="nonterminal" x="93" y="13">search_condition</text></a><rect x="183" y="1" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="187" y="13">)</text> + <path class="line" d="m17 10 h2 m0 0 h4 m38 0 h4 m0 0 h4 m12 0 h4 m0 0 h4 m86 0 h4 m0 0 h4 m12 0 h4 m3 0 h-3"/> + <polygon points="209 10 217 6 217 14"/> + <polygon points="209 10 201 6 201 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#check-constraint-definition" title="check_constraint_definition" shape="rect">check_constraint_definition</a></div> + <div>         ::= 'CHECK' '(' <a href="#search-condition" title="search_condition" shape="rect">search_condition</a> ')'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#column-constraint" title="column-constraint">column-constraint</a></li><li><a href="#domain-constraint" title="domain-constraint">domain-constraint</a></li><li><a href="#table-constraint" title="table-constraint">table-constraint</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + alter_table_statement +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="299" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="36" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">ALTER</text> + <rect x="67" y="1" width="36" height="18" class="terminal" rx="4"/> + <text class="terminal" x="71" y="13">TABLE</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#table-name" xlink:title="table_name" shape="rect"> + <rect x="111" y="1" width="66" height="18" class="nonterminal"/> + <text class="nonterminal" x="115" y="13">table_name</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#alter-table-action" xlink:title="alter_table_action" shape="rect"> + <rect x="185" y="1" width="90" height="18" class="nonterminal"/> + <text class="nonterminal" x="189" y="13">alter_table_action</text></a><path class="line" d="m17 10 h2 m0 0 h4 m36 0 h4 m0 0 h4 m36 0 h4 m0 0 h4 m66 0 h4 m0 0 h4 m90 0 h4 m3 0 h-3"/> + <polygon points="289 10 297 6 297 14"/> + <polygon points="289 10 281 6 281 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#alter-table-statement" title="alter_table_statement" shape="rect">alter_table_statement</a></div> + <div>         ::= 'ALTER' 'TABLE' <a href="#table-name" title="table_name" shape="rect">table_name</a> <a href="#alter-table-action" title="alter_table_action" shape="rect">alter_table_action</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#sql-schema-manipulation-statement" title="sql-schema-manipulation-statement">sql-schema-manipulation-statement</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + alter_table_action +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="243" height="245"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#add-column-definition" xlink:title="add_column_definition" shape="rect"> + <rect x="43" y="1" width="112" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">add_column_definition</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#alter-column-definition" xlink:title="alter_column_definition" shape="rect"> + <rect x="43" y="29" width="114" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">alter_column_definition</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#drop-column-definition" xlink:title="drop_column_definition" shape="rect"> + <rect x="43" y="57" width="114" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="69">drop_column_definition</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#add-table-constraint-definition" xlink:title="add_table_constraint_definition" shape="rect"> + <rect x="43" y="85" width="150" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="97">add_table_constraint_definition</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#alter-table-constraint-definition" xlink:title="alter_table_constraint_definition" shape="rect"> + <rect x="43" y="113" width="152" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="125">alter_table_constraint_definition</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#drop-table-constraint-definition" xlink:title="drop_table_constraint_definition" shape="rect"> + <rect x="43" y="141" width="154" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="153">drop_table_constraint_definition</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#add-system-versioning-clause" xlink:title="add_system_versioning_clause" shape="rect"> + <rect x="43" y="169" width="154" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="181">add_system_versioning_clause</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#alter-system-versioning-clause" xlink:title="alter_system_versioning_clause" shape="rect"> + <rect x="43" y="197" width="154" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="209">alter_system_versioning_clause</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#drop-system-versioning-clause" xlink:title="drop_system_versioning_clause" shape="rect"> + <rect x="43" y="225" width="156" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="237">drop_system_versioning_clause</text></a><path class="line" d="m17 10 h2 m20 0 h4 m112 0 h4 m0 0 h44 m-184 0 h20 m164 0 h20 m-204 0 q10 0 10 10 m184 0 q0 -10 10 -10 m-194 10 v8 m184 0 v-8 m-184 8 q0 10 10 10 m164 0 q10 0 10 -10 m-174 10 h4 m114 0 h4 m0 0 h42 m-174 -10 v20 m184 0 v-20 m-184 20 v8 m184 0 v-8 m-184 8 q0 10 10 10 m164 0 q10 0 10 -10 m-174 10 h4 m114 0 h4 m0 0 h42 m-174 -10 v20 m184 0 v-20 m-184 20 v8 m184 0 v-8 m-184 8 q0 10 10 10 m164 0 q10 0 10 -10 m-174 10 h4 m150 0 h4 m0 0 h6 m-174 -10 v20 m184 0 v-20 m-184 20 v8 m184 0 v-8 m-184 8 q0 10 10 10 m164 0 q10 0 10 -10 m-174 10 h4 m152 0 h4 m0 0 h4 m-174 -10 v20 m184 0 v-20 m-184 20 v8 m184 0 v-8 m-184 8 q0 10 10 10 m164 0 q10 0 10 -10 m-174 10 h4 m154 0 h4 m0 0 h2 m-174 -10 v20 m184 0 v-20 m-184 20 v8 m184 0 v-8 m-184 8 q0 10 10 10 m164 0 q10 0 10 -10 m-174 10 h4 m154 0 h4 m0 0 h2 m-174 -10 v20 m184 0 v-20 m-184 20 v8 m184 0 v-8 m-184 8 q0 10 10 10 m164 0 q10 0 10 -10 m-174 10 h4 m154 0 h4 m0 0 h2 m-174 -10 v20 m184 0 v-20 m-184 20 v8 m184 0 v-8 m-184 8 q0 10 10 10 m164 0 q10 0 10 -10 m-174 10 h4 m156 0 h4 m23 -224 h-3"/> + <polygon points="233 10 241 6 241 14"/> + <polygon points="233 10 225 6 225 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#alter-table-action" title="alter_table_action" shape="rect">alter_table_action</a></div> + <div>         ::= <a href="#add-column-definition" title="add_column_definition" shape="rect">add_column_definition</a></div> + <div>           | <a href="#alter-column-definition" title="alter_column_definition" shape="rect">alter_column_definition</a></div> + <div>           | <a href="#drop-column-definition" title="drop_column_definition" shape="rect">drop_column_definition</a></div> + <div>           | <a href="#add-table-constraint-definition" title="add_table_constraint_definition" shape="rect">add_table_constraint_definition</a></div> + <div>           | <a href="#alter-table-constraint-definition" title="alter_table_constraint_definition" shape="rect">alter_table_constraint_definition</a></div> + <div>           | <a href="#drop-table-constraint-definition" title="drop_table_constraint_definition" shape="rect">drop_table_constraint_definition</a></div> + <div>           | <a href="#add-system-versioning-clause" title="add_system_versioning_clause" shape="rect">add_system_versioning_clause</a></div> + <div>           | <a href="#alter-system-versioning-clause" title="alter_system_versioning_clause" shape="rect">alter_system_versioning_clause</a></div> + <div>           | <a href="#drop-system-versioning-clause" title="drop_system_versioning_clause" shape="rect">drop_system_versioning_clause</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#alter-table-statement" title="alter-table-statement">alter-table-statement</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + add_column_definition +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="267" height="42"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="28" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">ADD</text> + <rect x="79" y="22" width="48" height="18" class="terminal" rx="4"/> + <text class="terminal" x="83" y="34">COLUMN</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#column-definition" xlink:title="column_definition" shape="rect"> + <rect x="155" y="1" width="88" height="18" class="nonterminal"/> + <text class="nonterminal" x="159" y="13">column_definition</text></a><path class="line" d="m17 10 h2 m0 0 h4 m28 0 h4 m20 0 h10 m0 0 h46 m-76 0 h20 m56 0 h20 m-96 0 q10 0 10 10 m76 0 q0 -10 10 -10 m-86 10 v1 m76 0 v-1 m-76 1 q0 10 10 10 m56 0 q10 0 10 -10 m-66 10 h4 m48 0 h4 m20 -21 h4 m88 0 h4 m3 0 h-3"/> + <polygon points="257 10 265 6 265 14"/> + <polygon points="257 10 249 6 249 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#add-column-definition" title="add_column_definition" shape="rect">add_column_definition</a></div> + <div>         ::= 'ADD' 'COLUMN'? <a href="#column-definition" title="column_definition" shape="rect">column_definition</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#alter-table-action" title="alter-table-action">alter-table-action</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + alter_column_definition +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="341" height="42"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="36" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">ALTER</text> + <rect x="87" y="22" width="48" height="18" class="terminal" rx="4"/> + <text class="terminal" x="91" y="34">COLUMN</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#identifier" xlink:title="identifier" shape="rect"> + <rect x="163" y="1" width="46" height="18" class="nonterminal"/> + <text class="nonterminal" x="167" y="13">identifier</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#alter-column-action" xlink:title="alter_column_action" shape="rect"> + <rect x="217" y="1" width="100" height="18" class="nonterminal"/> + <text class="nonterminal" x="221" y="13">alter_column_action</text></a><path class="line" d="m17 10 h2 m0 0 h4 m36 0 h4 m20 0 h10 m0 0 h46 m-76 0 h20 m56 0 h20 m-96 0 q10 0 10 10 m76 0 q0 -10 10 -10 m-86 10 v1 m76 0 v-1 m-76 1 q0 10 10 10 m56 0 q10 0 10 -10 m-66 10 h4 m48 0 h4 m20 -21 h4 m46 0 h4 m0 0 h4 m100 0 h4 m3 0 h-3"/> + <polygon points="331 10 339 6 339 14"/> + <polygon points="331 10 323 6 323 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#alter-column-definition" title="alter_column_definition" shape="rect">alter_column_definition</a></div> + <div>         ::= 'ALTER' 'COLUMN'? <a href="#identifier" title="identifier" shape="rect">identifier</a> <a href="#alter-column-action" title="alter_column_action" shape="rect">alter_column_action</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#alter-table-action" title="alter-table-action">alter-table-action</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + alter_column_action +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="303" height="273"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#set-column-default-clause" xlink:title="set_column_default_clause" shape="rect"> + <rect x="43" y="1" width="134" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">set_column_default_clause</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#drop-column-default-clause" xlink:title="drop_column_default_clause" shape="rect"> + <rect x="43" y="29" width="140" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">drop_column_default_clause</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#set-column-not-null-clause" xlink:title="set_column_not_null_clause" shape="rect"> + <rect x="43" y="57" width="138" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="69">set_column_not_null_clause</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#drop-column-not-null-clause" xlink:title="drop_column_not_null_clause" shape="rect"> + <rect x="43" y="85" width="146" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="97">drop_column_not_null_clause</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#add-column-scope-clause" xlink:title="add_column_scope_clause" shape="rect"> + <rect x="43" y="113" width="134" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="125">add_column_scope_clause</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#drop-column-scope-clause" xlink:title="drop_column_scope_clause" shape="rect"> + <rect x="43" y="141" width="138" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="153">drop_column_scope_clause</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#alter-column-data-type-clause" xlink:title="alter_column_data_type_clause" shape="rect"> + <rect x="43" y="169" width="156" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="181">alter_column_data_type_clause</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#alter-identity-column-specification" xlink:title="alter_identity_column_specification" shape="rect"> + <rect x="43" y="197" width="164" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="209">alter_identity_column_specification</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#drop-identity-property-clause" xlink:title="drop_identity_property_clause" shape="rect"> + <rect x="43" y="225" width="148" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="237">drop_identity_property_clause</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#drop-column-generation-expression-clause" xlink:title="drop_column_generation_expression_clause" shape="rect"> + <rect x="43" y="253" width="216" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="265">drop_column_generation_expression_clause</text></a><path class="line" d="m17 10 h2 m20 0 h4 m134 0 h4 m0 0 h82 m-244 0 h20 m224 0 h20 m-264 0 q10 0 10 10 m244 0 q0 -10 10 -10 m-254 10 v8 m244 0 v-8 m-244 8 q0 10 10 10 m224 0 q10 0 10 -10 m-234 10 h4 m140 0 h4 m0 0 h76 m-234 -10 v20 m244 0 v-20 m-244 20 v8 m244 0 v-8 m-244 8 q0 10 10 10 m224 0 q10 0 10 -10 m-234 10 h4 m138 0 h4 m0 0 h78 m-234 -10 v20 m244 0 v-20 m-244 20 v8 m244 0 v-8 m-244 8 q0 10 10 10 m224 0 q10 0 10 -10 m-234 10 h4 m146 0 h4 m0 0 h70 m-234 -10 v20 m244 0 v-20 m-244 20 v8 m244 0 v-8 m-244 8 q0 10 10 10 m224 0 q10 0 10 -10 m-234 10 h4 m134 0 h4 m0 0 h82 m-234 -10 v20 m244 0 v-20 m-244 20 v8 m244 0 v-8 m-244 8 q0 10 10 10 m224 0 q10 0 10 -10 m-234 10 h4 m138 0 h4 m0 0 h78 m-234 -10 v20 m244 0 v-20 m-244 20 v8 m244 0 v-8 m-244 8 q0 10 10 10 m224 0 q10 0 10 -10 m-234 10 h4 m156 0 h4 m0 0 h60 m-234 -10 v20 m244 0 v-20 m-244 20 v8 m244 0 v-8 m-244 8 q0 10 10 10 m224 0 q10 0 10 -10 m-234 10 h4 m164 0 h4 m0 0 h52 m-234 -10 v20 m244 0 v-20 m-244 20 v8 m244 0 v-8 m-244 8 q0 10 10 10 m224 0 q10 0 10 -10 m-234 10 h4 m148 0 h4 m0 0 h68 m-234 -10 v20 m244 0 v-20 m-244 20 v8 m244 0 v-8 m-244 8 q0 10 10 10 m224 0 q10 0 10 -10 m-234 10 h4 m216 0 h4 m23 -252 h-3"/> + <polygon points="293 10 301 6 301 14"/> + <polygon points="293 10 285 6 285 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#alter-column-action" title="alter_column_action" shape="rect">alter_column_action</a></div> + <div>         ::= <a href="#set-column-default-clause" title="set_column_default_clause" shape="rect">set_column_default_clause</a></div> + <div>           | <a href="#drop-column-default-clause" title="drop_column_default_clause" shape="rect">drop_column_default_clause</a></div> + <div>           | <a href="#set-column-not-null-clause" title="set_column_not_null_clause" shape="rect">set_column_not_null_clause</a></div> + <div>           | <a href="#drop-column-not-null-clause" title="drop_column_not_null_clause" shape="rect">drop_column_not_null_clause</a></div> + <div>           | <a href="#add-column-scope-clause" title="add_column_scope_clause" shape="rect">add_column_scope_clause</a></div> + <div>           | <a href="#drop-column-scope-clause" title="drop_column_scope_clause" shape="rect">drop_column_scope_clause</a></div> + <div>           | <a href="#alter-column-data-type-clause" title="alter_column_data_type_clause" shape="rect">alter_column_data_type_clause</a></div> + <div>           | <a href="#alter-identity-column-specification" title="alter_identity_column_specification" shape="rect">alter_identity_column_specification</a></div> + <div>           | <a href="#drop-identity-property-clause" title="drop_identity_property_clause" shape="rect">drop_identity_property_clause</a></div> + <div>           | <a href="#drop-column-generation-expression-clause" title="drop_column_generation_expression_clause" shape="rect">drop_column_generation_expression_clause</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#alter-column-definition" title="alter-column-definition">alter-column-definition</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + set_column_default_clause +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="153" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="24" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">SET</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#default-clause" xlink:title="default_clause" shape="rect"> + <rect x="55" y="1" width="74" height="18" class="nonterminal"/> + <text class="nonterminal" x="59" y="13">default_clause</text></a><path class="line" d="m17 10 h2 m0 0 h4 m24 0 h4 m0 0 h4 m74 0 h4 m3 0 h-3"/> + <polygon points="143 10 151 6 151 14"/> + <polygon points="143 10 135 6 135 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#set-column-default-clause" title="set_column_default_clause" shape="rect">set_column_default_clause</a></div> + <div>         ::= 'SET' <a href="#default-clause" title="default_clause" shape="rect">default_clause</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#alter-column-action" title="alter-column-action">alter-column-action</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + drop_column_default_clause +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="137" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="34" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">DROP</text> + <rect x="65" y="1" width="48" height="18" class="terminal" rx="4"/> + <text class="terminal" x="69" y="13">DEFAULT</text> + <path class="line" d="m17 10 h2 m0 0 h4 m34 0 h4 m0 0 h4 m48 0 h4 m3 0 h-3"/> + <polygon points="127 10 135 6 135 14"/> + <polygon points="127 10 119 6 119 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#drop-column-default-clause" title="drop_column_default_clause" shape="rect">drop_column_default_clause</a></div> + <div>         ::= 'DROP' 'DEFAULT'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#alter-column-action" title="alter-column-action">alter-column-action</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + set_column_not_null_clause +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="147" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="24" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">SET</text> + <rect x="55" y="1" width="28" height="18" class="terminal" rx="4"/> + <text class="terminal" x="59" y="13">NOT</text> + <rect x="91" y="1" width="32" height="18" class="terminal" rx="4"/> + <text class="terminal" x="95" y="13">NULL</text> + <path class="line" d="m17 10 h2 m0 0 h4 m24 0 h4 m0 0 h4 m28 0 h4 m0 0 h4 m32 0 h4 m3 0 h-3"/> + <polygon points="137 10 145 6 145 14"/> + <polygon points="137 10 129 6 129 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#set-column-not-null-clause" title="set_column_not_null_clause" shape="rect">set_column_not_null_clause</a></div> + <div>         ::= 'SET' 'NOT' 'NULL'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#alter-column-action" title="alter-column-action">alter-column-action</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + drop_column_not_null_clause +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="157" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="34" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">DROP</text> + <rect x="65" y="1" width="28" height="18" class="terminal" rx="4"/> + <text class="terminal" x="69" y="13">NOT</text> + <rect x="101" y="1" width="32" height="18" class="terminal" rx="4"/> + <text class="terminal" x="105" y="13">NULL</text> + <path class="line" d="m17 10 h2 m0 0 h4 m34 0 h4 m0 0 h4 m28 0 h4 m0 0 h4 m32 0 h4 m3 0 h-3"/> + <polygon points="147 10 155 6 155 14"/> + <polygon points="147 10 139 6 139 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#drop-column-not-null-clause" title="drop_column_not_null_clause" shape="rect">drop_column_not_null_clause</a></div> + <div>         ::= 'DROP' 'NOT' 'NULL'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#alter-column-action" title="alter-column-action">alter-column-action</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + add_column_scope_clause +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="155" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="28" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">ADD</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#scope-clause" xlink:title="scope_clause" shape="rect"> + <rect x="59" y="1" width="72" height="18" class="nonterminal"/> + <text class="nonterminal" x="63" y="13">scope_clause</text></a><path class="line" d="m17 10 h2 m0 0 h4 m28 0 h4 m0 0 h4 m72 0 h4 m3 0 h-3"/> + <polygon points="145 10 153 6 153 14"/> + <polygon points="145 10 137 6 137 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#add-column-scope-clause" title="add_column_scope_clause" shape="rect">add_column_scope_clause</a></div> + <div>         ::= 'ADD' <a href="#scope-clause" title="scope_clause" shape="rect">scope_clause</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#alter-column-action" title="alter-column-action">alter-column-action</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + drop_column_scope_clause +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="211" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="34" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">DROP</text> + <rect x="65" y="1" width="38" height="18" class="terminal" rx="4"/> + <text class="terminal" x="69" y="13">SCOPE</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#drop-behavior" xlink:title="drop_behavior" shape="rect"> + <rect x="111" y="1" width="76" height="18" class="nonterminal"/> + <text class="nonterminal" x="115" y="13">drop_behavior</text></a><path class="line" d="m17 10 h2 m0 0 h4 m34 0 h4 m0 0 h4 m38 0 h4 m0 0 h4 m76 0 h4 m3 0 h-3"/> + <polygon points="201 10 209 6 209 14"/> + <polygon points="201 10 193 6 193 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#drop-column-scope-clause" title="drop_column_scope_clause" shape="rect">drop_column_scope_clause</a></div> + <div>         ::= 'DROP' 'SCOPE' <a href="#drop-behavior" title="drop_behavior" shape="rect">drop_behavior</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#alter-column-action" title="alter-column-action">alter-column-action</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + alter_column_data_type_clause +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="213" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="24" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">SET</text> + <rect x="55" y="1" width="32" height="18" class="terminal" rx="4"/> + <text class="terminal" x="59" y="13">DATA</text> + <rect x="95" y="1" width="30" height="18" class="terminal" rx="4"/> + <text class="terminal" x="99" y="13">TYPE</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#data-type" xlink:title="data_type" shape="rect"> + <rect x="133" y="1" width="56" height="18" class="nonterminal"/> + <text class="nonterminal" x="137" y="13">data_type</text></a><path class="line" d="m17 10 h2 m0 0 h4 m24 0 h4 m0 0 h4 m32 0 h4 m0 0 h4 m30 0 h4 m0 0 h4 m56 0 h4 m3 0 h-3"/> + <polygon points="203 10 211 6 211 14"/> + <polygon points="203 10 195 6 195 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#alter-column-data-type-clause" title="alter_column_data_type_clause" shape="rect">alter_column_data_type_clause</a></div> + <div>         ::= 'SET' 'DATA' 'TYPE' <a href="#data-type" title="data_type" shape="rect">data_type</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#alter-column-action" title="alter-column-action">alter-column-action</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + alter_identity_column_specification +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="465" height="70"> + <polygon points="9 31 1 27 1 35"/> + <polygon points="17 31 9 27 9 35"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#set-identity-column-generation-clause" xlink:title="set_identity_column_generation_clause" shape="rect"> + <rect x="43" y="22" width="190" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="34">set_identity_column_generation_clause</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#alter-identity-column-option" xlink:title="alter_identity_column_option" shape="rect"> + <rect x="43" y="50" width="140" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="62">alter_identity_column_option</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#alter-identity-column-option" xlink:title="alter_identity_column_option" shape="rect"> + <rect x="281" y="1" width="140" height="18" class="nonterminal"/> + <text class="nonterminal" x="285" y="13">alter_identity_column_option</text></a><path class="line" d="m17 31 h2 m20 0 h4 m190 0 h4 m-218 0 h20 m198 0 h20 m-238 0 q10 0 10 10 m218 0 q0 -10 10 -10 m-228 10 v8 m218 0 v-8 m-218 8 q0 10 10 10 m198 0 q10 0 10 -10 m-208 10 h4 m140 0 h4 m0 0 h50 m40 -28 h10 m0 0 h138 m-168 0 l20 0 m-1 0 q-9 0 -9 -10 l0 -1 q0 -10 10 -10 m148 21 l20 0 m-20 0 q10 0 10 -10 l0 -1 q0 -10 -10 -10 m-148 0 h4 m140 0 h4 m23 21 h-3"/> + <polygon points="455 31 463 27 463 35"/> + <polygon points="455 31 447 27 447 35"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#alter-identity-column-specification" title="alter_identity_column_specification" shape="rect">alter_identity_column_specification</a></div> + <div>         ::= ( <a href="#set-identity-column-generation-clause" title="set_identity_column_generation_clause" shape="rect">set_identity_column_generation_clause</a> | <a href="#alter-identity-column-option" title="alter_identity_column_option" shape="rect">alter_identity_column_option</a> ) <a href="#alter-identity-column-option" title="alter_identity_column_option" shape="rect">alter_identity_column_option</a>*</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#alter-column-action" title="alter-column-action">alter-column-action</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + set_identity_column_generation_clause +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="265" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="24" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">SET</text> + <rect x="55" y="1" width="62" height="18" class="terminal" rx="4"/> + <text class="terminal" x="59" y="13">GENERATED</text> + <rect x="145" y="1" width="48" height="18" class="terminal" rx="4"/> + <text class="terminal" x="149" y="13">ALWAYS</text> + <rect x="145" y="29" width="20" height="18" class="terminal" rx="4"/> + <text class="terminal" x="149" y="41">BY</text> + <rect x="173" y="29" width="48" height="18" class="terminal" rx="4"/> + <text class="terminal" x="177" y="41">DEFAULT</text> + <path class="line" d="m17 10 h2 m0 0 h4 m24 0 h4 m0 0 h4 m62 0 h4 m20 0 h4 m48 0 h4 m0 0 h28 m-104 0 h20 m84 0 h20 m-124 0 q10 0 10 10 m104 0 q0 -10 10 -10 m-114 10 v8 m104 0 v-8 m-104 8 q0 10 10 10 m84 0 q10 0 10 -10 m-94 10 h4 m20 0 h4 m0 0 h4 m48 0 h4 m23 -28 h-3"/> + <polygon points="255 10 263 6 263 14"/> + <polygon points="255 10 247 6 247 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#set-identity-column-generation-clause" title="set_identity_column_generation_clause" shape="rect">set_identity_column_generation_clause</a></div> + <div>         ::= 'SET' 'GENERATED' ( 'ALWAYS' | 'BY' 'DEFAULT' )</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#alter-identity-column-specification" title="alter-identity-column-specification">alter-identity-column-specification</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + alter_identity_column_option +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="287" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#alter-sequence-generator-restart-option" xlink:title="alter_sequence_generator_restart_option" shape="rect"> + <rect x="43" y="1" width="200" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">alter_sequence_generator_restart_option</text></a><rect x="43" y="29" width="24" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="41">SET</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#basic-sequence-generator-option" xlink:title="basic_sequence_generator_option" shape="rect"> + <rect x="75" y="29" width="168" height="18" class="nonterminal"/> + <text class="nonterminal" x="79" y="41">basic_sequence_generator_option</text></a><path class="line" d="m17 10 h2 m20 0 h4 m200 0 h4 m-228 0 h20 m208 0 h20 m-248 0 q10 0 10 10 m228 0 q0 -10 10 -10 m-238 10 v8 m228 0 v-8 m-228 8 q0 10 10 10 m208 0 q10 0 10 -10 m-218 10 h4 m24 0 h4 m0 0 h4 m168 0 h4 m23 -28 h-3"/> + <polygon points="277 10 285 6 285 14"/> + <polygon points="277 10 269 6 269 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#alter-identity-column-option" title="alter_identity_column_option" shape="rect">alter_identity_column_option</a></div> + <div>         ::= <a href="#alter-sequence-generator-restart-option" title="alter_sequence_generator_restart_option" shape="rect">alter_sequence_generator_restart_option</a></div> + <div>           | 'SET' <a href="#basic-sequence-generator-option" title="basic_sequence_generator_option" shape="rect">basic_sequence_generator_option</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#alter-identity-column-specification" title="alter-identity-column-specification">alter-identity-column-specification</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + drop_identity_property_clause +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="139" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="34" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">DROP</text> + <rect x="65" y="1" width="50" height="18" class="terminal" rx="4"/> + <text class="terminal" x="69" y="13">IDENTITY</text> + <path class="line" d="m17 10 h2 m0 0 h4 m34 0 h4 m0 0 h4 m50 0 h4 m3 0 h-3"/> + <polygon points="129 10 137 6 137 14"/> + <polygon points="129 10 121 6 121 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#drop-identity-property-clause" title="drop_identity_property_clause" shape="rect">drop_identity_property_clause</a></div> + <div>         ::= 'DROP' 'IDENTITY'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#alter-column-action" title="alter-column-action">alter-column-action</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + drop_column_generation_expression_clause +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="157" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="34" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">DROP</text> + <rect x="65" y="1" width="68" height="18" class="terminal" rx="4"/> + <text class="terminal" x="69" y="13">EXPRESSION</text> + <path class="line" d="m17 10 h2 m0 0 h4 m34 0 h4 m0 0 h4 m68 0 h4 m3 0 h-3"/> + <polygon points="147 10 155 6 155 14"/> + <polygon points="147 10 139 6 139 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#drop-column-generation-expression-clause" title="drop_column_generation_expression_clause" shape="rect">drop_column_generation_expression_clause</a></div> + <div>         ::= 'DROP' 'EXPRESSION'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#alter-column-action" title="alter-column-action">alter-column-action</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + drop_column_definition +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="315" height="42"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="34" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">DROP</text> + <rect x="85" y="22" width="48" height="18" class="terminal" rx="4"/> + <text class="terminal" x="89" y="34">COLUMN</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#identifier" xlink:title="identifier" shape="rect"> + <rect x="161" y="1" width="46" height="18" class="nonterminal"/> + <text class="nonterminal" x="165" y="13">identifier</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#drop-behavior" xlink:title="drop_behavior" shape="rect"> + <rect x="215" y="1" width="76" height="18" class="nonterminal"/> + <text class="nonterminal" x="219" y="13">drop_behavior</text></a><path class="line" d="m17 10 h2 m0 0 h4 m34 0 h4 m20 0 h10 m0 0 h46 m-76 0 h20 m56 0 h20 m-96 0 q10 0 10 10 m76 0 q0 -10 10 -10 m-86 10 v1 m76 0 v-1 m-76 1 q0 10 10 10 m56 0 q10 0 10 -10 m-66 10 h4 m48 0 h4 m20 -21 h4 m46 0 h4 m0 0 h4 m76 0 h4 m3 0 h-3"/> + <polygon points="305 10 313 6 313 14"/> + <polygon points="305 10 297 6 297 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#drop-column-definition" title="drop_column_definition" shape="rect">drop_column_definition</a></div> + <div>         ::= 'DROP' 'COLUMN'? <a href="#identifier" title="identifier" shape="rect">identifier</a> <a href="#drop-behavior" title="drop_behavior" shape="rect">drop_behavior</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#alter-table-action" title="alter-table-action">alter-table-action</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + add_table_constraint_definition +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="209" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="28" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">ADD</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#table-constraint-definition" xlink:title="table_constraint_definition" shape="rect"> + <rect x="59" y="1" width="126" height="18" class="nonterminal"/> + <text class="nonterminal" x="63" y="13">table_constraint_definition</text></a><path class="line" d="m17 10 h2 m0 0 h4 m28 0 h4 m0 0 h4 m126 0 h4 m3 0 h-3"/> + <polygon points="199 10 207 6 207 14"/> + <polygon points="199 10 191 6 191 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#add-table-constraint-definition" title="add_table_constraint_definition" shape="rect">add_table_constraint_definition</a></div> + <div>         ::= 'ADD' <a href="#table-constraint-definition" title="table_constraint_definition" shape="rect">table_constraint_definition</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#alter-table-action" title="alter-table-action">alter-table-action</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + alter_table_constraint_definition +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="415" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="36" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">ALTER</text> + <rect x="67" y="1" width="68" height="18" class="terminal" rx="4"/> + <text class="terminal" x="71" y="13">CONSTRAINT</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#schema-qualified-name" xlink:title="schema_qualified_name" shape="rect"> + <rect x="143" y="1" width="122" height="18" class="nonterminal"/> + <text class="nonterminal" x="147" y="13">schema_qualified_name</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#constraint-enforcement" xlink:title="constraint_enforcement" shape="rect"> + <rect x="273" y="1" width="118" height="18" class="nonterminal"/> + <text class="nonterminal" x="277" y="13">constraint_enforcement</text></a><path class="line" d="m17 10 h2 m0 0 h4 m36 0 h4 m0 0 h4 m68 0 h4 m0 0 h4 m122 0 h4 m0 0 h4 m118 0 h4 m3 0 h-3"/> + <polygon points="405 10 413 6 413 14"/> + <polygon points="405 10 397 6 397 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#alter-table-constraint-definition" title="alter_table_constraint_definition" shape="rect">alter_table_constraint_definition</a></div> + <div>         ::= 'ALTER' 'CONSTRAINT' <a href="#schema-qualified-name" title="schema_qualified_name" shape="rect">schema_qualified_name</a> <a href="#constraint-enforcement" title="constraint_enforcement" shape="rect">constraint_enforcement</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#alter-table-action" title="alter-table-action">alter-table-action</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + drop_table_constraint_definition +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="371" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="34" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">DROP</text> + <rect x="65" y="1" width="68" height="18" class="terminal" rx="4"/> + <text class="terminal" x="69" y="13">CONSTRAINT</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#schema-qualified-name" xlink:title="schema_qualified_name" shape="rect"> + <rect x="141" y="1" width="122" height="18" class="nonterminal"/> + <text class="nonterminal" x="145" y="13">schema_qualified_name</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#drop-behavior" xlink:title="drop_behavior" shape="rect"> + <rect x="271" y="1" width="76" height="18" class="nonterminal"/> + <text class="nonterminal" x="275" y="13">drop_behavior</text></a><path class="line" d="m17 10 h2 m0 0 h4 m34 0 h4 m0 0 h4 m68 0 h4 m0 0 h4 m122 0 h4 m0 0 h4 m76 0 h4 m3 0 h-3"/> + <polygon points="361 10 369 6 369 14"/> + <polygon points="361 10 353 6 353 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#drop-table-constraint-definition" title="drop_table_constraint_definition" shape="rect">drop_table_constraint_definition</a></div> + <div>         ::= 'DROP' 'CONSTRAINT' <a href="#schema-qualified-name" title="schema_qualified_name" shape="rect">schema_qualified_name</a> <a href="#drop-behavior" title="drop_behavior" shape="rect">drop_behavior</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#alter-table-action" title="alter-table-action">alter-table-action</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + add_system_versioning_clause +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="383" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="28" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">ADD</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#system-versioning-clause" xlink:title="system_versioning_clause" shape="rect"> + <rect x="59" y="1" width="130" height="18" class="nonterminal"/> + <text class="nonterminal" x="63" y="13">system_versioning_clause</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#add-system-version-column-list" xlink:title="add_system_version_column_list" shape="rect"> + <rect x="197" y="1" width="162" height="18" class="nonterminal"/> + <text class="nonterminal" x="201" y="13">add_system_version_column_list</text></a><path class="line" d="m17 10 h2 m0 0 h4 m28 0 h4 m0 0 h4 m130 0 h4 m0 0 h4 m162 0 h4 m3 0 h-3"/> + <polygon points="373 10 381 6 381 14"/> + <polygon points="373 10 365 6 365 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#add-system-versioning-clause" title="add_system_versioning_clause" shape="rect">add_system_versioning_clause</a></div> + <div>         ::= 'ADD' <a href="#system-versioning-clause" title="system_versioning_clause" shape="rect">system_versioning_clause</a> <a href="#add-system-version-column-list" title="add_system_version_column_list" shape="rect">add_system_version_column_list</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#alter-table-action" title="alter-table-action">alter-table-action</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + add_system_version_column_list +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="519" height="42"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="28" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">ADD</text> + <rect x="79" y="22" width="48" height="18" class="terminal" rx="4"/> + <text class="terminal" x="83" y="34">COLUMN</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#column-definition-1" xlink:title="column_definition_1" shape="rect"> + <rect x="155" y="1" width="100" height="18" class="nonterminal"/> + <text class="nonterminal" x="159" y="13">column_definition_1</text></a><rect x="263" y="1" width="28" height="18" class="terminal" rx="4"/> + <text class="terminal" x="267" y="13">ADD</text> + <rect x="319" y="22" width="48" height="18" class="terminal" rx="4"/> + <text class="terminal" x="323" y="34">COLUMN</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#column-definition-2" xlink:title="column_definition_2" shape="rect"> + <rect x="395" y="1" width="100" height="18" class="nonterminal"/> + <text class="nonterminal" x="399" y="13">column_definition_2</text></a><path class="line" d="m17 10 h2 m0 0 h4 m28 0 h4 m20 0 h10 m0 0 h46 m-76 0 h20 m56 0 h20 m-96 0 q10 0 10 10 m76 0 q0 -10 10 -10 m-86 10 v1 m76 0 v-1 m-76 1 q0 10 10 10 m56 0 q10 0 10 -10 m-66 10 h4 m48 0 h4 m20 -21 h4 m100 0 h4 m0 0 h4 m28 0 h4 m20 0 h10 m0 0 h46 m-76 0 h20 m56 0 h20 m-96 0 q10 0 10 10 m76 0 q0 -10 10 -10 m-86 10 v1 m76 0 v-1 m-76 1 q0 10 10 10 m56 0 q10 0 10 -10 m-66 10 h4 m48 0 h4 m20 -21 h4 m100 0 h4 m3 0 h-3"/> + <polygon points="509 10 517 6 517 14"/> + <polygon points="509 10 501 6 501 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#add-system-version-column-list" title="add_system_version_column_list" shape="rect">add_system_version_column_list</a></div> + <div>         ::= 'ADD' 'COLUMN'? <a href="#column-definition-1" title="column_definition_1" shape="rect">column_definition_1</a> 'ADD' 'COLUMN'? <a href="#column-definition-2" title="column_definition_2" shape="rect">column_definition_2</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#add-system-versioning-clause" title="add-system-versioning-clause">add-system-versioning-clause</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + column_definition_1 +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="135" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#column-definition" xlink:title="column_definition" shape="rect"> + <rect x="23" y="1" width="88" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">column_definition</text></a><path class="line" d="m17 10 h2 m0 0 h4 m88 0 h4 m3 0 h-3"/> + <polygon points="125 10 133 6 133 14"/> + <polygon points="125 10 117 6 117 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#column-definition-1" title="column_definition_1" shape="rect">column_definition_1</a></div> + <div>         ::= <a href="#column-definition" title="column_definition" shape="rect">column_definition</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#add-system-version-column-list" title="add-system-version-column-list">add-system-version-column-list</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + column_definition_2 +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="135" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#column-definition" xlink:title="column_definition" shape="rect"> + <rect x="23" y="1" width="88" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">column_definition</text></a><path class="line" d="m17 10 h2 m0 0 h4 m88 0 h4 m3 0 h-3"/> + <polygon points="125 10 133 6 133 14"/> + <polygon points="125 10 117 6 117 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#column-definition-2" title="column_definition_2" shape="rect">column_definition_2</a></div> + <div>         ::= <a href="#column-definition" title="column_definition" shape="rect">column_definition</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#add-system-version-column-list" title="add-system-version-column-list">add-system-version-column-list</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + alter_system_versioning_clause +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="361" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="36" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">ALTER</text> + <rect x="67" y="1" width="44" height="18" class="terminal" rx="4"/> + <text class="terminal" x="71" y="13">SYSTEM</text> + <rect x="119" y="1" width="68" height="18" class="terminal" rx="4"/> + <text class="terminal" x="123" y="13">VERSIONING</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#retention-period-specification" xlink:title="retention_period_specification" shape="rect"> + <rect x="195" y="1" width="142" height="18" class="nonterminal"/> + <text class="nonterminal" x="199" y="13">retention_period_specification</text></a><path class="line" d="m17 10 h2 m0 0 h4 m36 0 h4 m0 0 h4 m44 0 h4 m0 0 h4 m68 0 h4 m0 0 h4 m142 0 h4 m3 0 h-3"/> + <polygon points="351 10 359 6 359 14"/> + <polygon points="351 10 343 6 343 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#alter-system-versioning-clause" title="alter_system_versioning_clause" shape="rect">alter_system_versioning_clause</a></div> + <div>         ::= 'ALTER' 'SYSTEM' 'VERSIONING' <a href="#retention-period-specification" title="retention_period_specification" shape="rect">retention_period_specification</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#alter-table-action" title="alter-table-action">alter-table-action</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + drop_system_versioning_clause +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="293" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="34" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">DROP</text> + <rect x="65" y="1" width="44" height="18" class="terminal" rx="4"/> + <text class="terminal" x="69" y="13">SYSTEM</text> + <rect x="117" y="1" width="68" height="18" class="terminal" rx="4"/> + <text class="terminal" x="121" y="13">VERSIONING</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#drop-behavior" xlink:title="drop_behavior" shape="rect"> + <rect x="193" y="1" width="76" height="18" class="nonterminal"/> + <text class="nonterminal" x="197" y="13">drop_behavior</text></a><path class="line" d="m17 10 h2 m0 0 h4 m34 0 h4 m0 0 h4 m44 0 h4 m0 0 h4 m68 0 h4 m0 0 h4 m76 0 h4 m3 0 h-3"/> + <polygon points="283 10 291 6 291 14"/> + <polygon points="283 10 275 6 275 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#drop-system-versioning-clause" title="drop_system_versioning_clause" shape="rect">drop_system_versioning_clause</a></div> + <div>         ::= 'DROP' 'SYSTEM' 'VERSIONING' <a href="#drop-behavior" title="drop_behavior" shape="rect">drop_behavior</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#alter-table-action" title="alter-table-action">alter-table-action</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + drop_table_statement +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="435" height="42"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="34" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">DROP</text> + <rect x="65" y="1" width="36" height="18" class="terminal" rx="4"/> + <text class="terminal" x="69" y="13">TABLE</text> + <rect x="129" y="22" width="16" height="18" class="terminal" rx="4"/> + <text class="terminal" x="133" y="34">IF</text> + <rect x="153" y="22" width="40" height="18" class="terminal" rx="4"/> + <text class="terminal" x="157" y="34">EXISTS</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#table-name" xlink:title="table_name" shape="rect"> + <rect x="221" y="1" width="66" height="18" class="nonterminal"/> + <text class="nonterminal" x="225" y="13">table_name</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#drop-behavior" xlink:title="drop_behavior" shape="rect"> + <rect x="315" y="22" width="76" height="18" class="nonterminal"/> + <text class="nonterminal" x="319" y="34">drop_behavior</text></a><path class="line" d="m17 10 h2 m0 0 h4 m34 0 h4 m0 0 h4 m36 0 h4 m20 0 h10 m0 0 h62 m-92 0 h20 m72 0 h20 m-112 0 q10 0 10 10 m92 0 q0 -10 10 -10 m-102 10 v1 m92 0 v-1 m-92 1 q0 10 10 10 m72 0 q10 0 10 -10 m-82 10 h4 m16 0 h4 m0 0 h4 m40 0 h4 m20 -21 h4 m66 0 h4 m20 0 h10 m0 0 h74 m-104 0 h20 m84 0 h20 m-124 0 q10 0 10 10 m104 0 q0 -10 10 -10 m-114 10 v1 m104 0 v-1 m-104 1 q0 10 10 10 m84 0 q10 0 10 -10 m-94 10 h4 m76 0 h4 m23 -21 h-3"/> + <polygon points="425 10 433 6 433 14"/> + <polygon points="425 10 417 6 417 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#drop-table-statement" title="drop_table_statement" shape="rect">drop_table_statement</a></div> + <div>         ::= 'DROP' 'TABLE' ( 'IF' 'EXISTS' )? <a href="#table-name" title="table_name" shape="rect">table_name</a> <a href="#drop-behavior" title="drop_behavior" shape="rect">drop_behavior</a>?</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#sql-schema-manipulation-statement" title="sql-schema-manipulation-statement">sql-schema-manipulation-statement</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + view_definition +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="637" height="121"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="42" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">CREATE</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#or-replace" xlink:title="or_replace" shape="rect"> + <rect x="93" y="22" width="58" height="18" class="nonterminal"/> + <text class="nonterminal" x="97" y="34">or_replace</text></a><rect x="199" y="22" width="60" height="18" class="terminal" rx="4"/> + <text class="terminal" x="203" y="34">RECURSIVE</text> + <rect x="287" y="1" width="34" height="18" class="terminal" rx="4"/> + <text class="terminal" x="291" y="13">VIEW</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#table-name" xlink:title="table_name" shape="rect"> + <rect x="329" y="1" width="66" height="18" class="nonterminal"/> + <text class="nonterminal" x="333" y="13">table_name</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#view-specification" xlink:title="view_specification" shape="rect"> + <rect x="403" y="1" width="88" height="18" class="nonterminal"/> + <text class="nonterminal" x="407" y="13">view_specification</text></a><rect x="499" y="1" width="20" height="18" class="terminal" rx="4"/> + <text class="terminal" x="503" y="13">AS</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#query-expression" xlink:title="query_expression" shape="rect"> + <rect x="527" y="1" width="92" height="18" class="nonterminal"/> + <text class="nonterminal" x="531" y="13">query_expression</text></a><rect x="343" y="80" width="34" height="18" class="terminal" rx="4"/> + <text class="terminal" x="347" y="92">WITH</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#levels-clause" xlink:title="levels_clause" shape="rect"> + <rect x="405" y="101" width="68" height="18" class="nonterminal"/> + <text class="nonterminal" x="409" y="113">levels_clause</text></a><rect x="501" y="80" width="38" height="18" class="terminal" rx="4"/> + <text class="terminal" x="505" y="92">CHECK</text> + <rect x="547" y="80" width="46" height="18" class="terminal" rx="4"/> + <text class="terminal" x="551" y="92">OPTION</text> + <path class="line" d="m17 10 h2 m0 0 h4 m42 0 h4 m20 0 h10 m0 0 h56 m-86 0 h20 m66 0 h20 m-106 0 q10 0 10 10 m86 0 q0 -10 10 -10 m-96 10 v1 m86 0 v-1 m-86 1 q0 10 10 10 m66 0 q10 0 10 -10 m-76 10 h4 m58 0 h4 m40 -21 h10 m0 0 h58 m-88 0 h20 m68 0 h20 m-108 0 q10 0 10 10 m88 0 q0 -10 10 -10 m-98 10 v1 m88 0 v-1 m-88 1 q0 10 10 10 m68 0 q10 0 10 -10 m-78 10 h4 m60 0 h4 m20 -21 h4 m34 0 h4 m0 0 h4 m66 0 h4 m0 0 h4 m88 0 h4 m0 0 h4 m20 0 h4 m0 0 h4 m92 0 h4 m2 0 l2 0 m2 0 l2 0 m2 0 l2 0 m-328 58 l2 0 m2 0 l2 0 m2 0 l2 0 m22 0 h10 m0 0 h248 m-278 0 h20 m258 0 h20 m-298 0 q10 0 10 10 m278 0 q0 -10 10 -10 m-288 10 v1 m278 0 v-1 m-278 1 q0 10 10 10 m258 0 q10 0 10 -10 m-268 10 h4 m34 0 h4 m20 0 h10 m0 0 h66 m-96 0 h20 m76 0 h20 m-116 0 q10 0 10 10 m96 0 q0 -10 10 -10 m-106 10 v1 m96 0 v-1 m-96 1 q0 10 10 10 m76 0 q10 0 10 -10 m-86 10 h4 m68 0 h4 m20 -21 h4 m38 0 h4 m0 0 h4 m46 0 h4 m23 -21 h-3"/> + <polygon points="627 68 635 64 635 72"/> + <polygon points="627 68 619 64 619 72"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#view-definition" title="view_definition" shape="rect">view_definition</a></div> + <div>         ::= 'CREATE' <a href="#or-replace" title="or_replace" shape="rect">or_replace</a>? 'RECURSIVE'? 'VIEW' <a href="#table-name" title="table_name" shape="rect">table_name</a> <a href="#view-specification" title="view_specification" shape="rect">view_specification</a> 'AS' <a href="#query-expression" title="query_expression" shape="rect">query_expression</a> ( 'WITH' <a href="#levels-clause" title="levels_clause" shape="rect">levels_clause</a>? 'CHECK' 'OPTION' )?</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#sql-schema-definition-statement" title="sql-schema-definition-statement">sql-schema-definition-statement</a></li><li><a href="#schema-element" title="schema-element">schema-element</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + view_specification +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="243" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#regular-view-specification" xlink:title="regular_view_specification" shape="rect"> + <rect x="43" y="1" width="126" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">regular_view_specification</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#referenceable-view-specification" xlink:title="referenceable_view_specification" shape="rect"> + <rect x="43" y="29" width="156" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">referenceable_view_specification</text></a><path class="line" d="m17 10 h2 m20 0 h4 m126 0 h4 m0 0 h30 m-184 0 h20 m164 0 h20 m-204 0 q10 0 10 10 m184 0 q0 -10 10 -10 m-194 10 v8 m184 0 v-8 m-184 8 q0 10 10 10 m164 0 q10 0 10 -10 m-174 10 h4 m156 0 h4 m23 -28 h-3"/> + <polygon points="233 10 241 6 241 14"/> + <polygon points="233 10 225 6 225 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#view-specification" title="view_specification" shape="rect">view_specification</a></div> + <div>         ::= <a href="#regular-view-specification" title="regular_view_specification" shape="rect">regular_view_specification</a></div> + <div>           | <a href="#referenceable-view-specification" title="referenceable_view_specification" shape="rect">referenceable_view_specification</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#view-definition" title="view-definition">view-definition</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + regular_view_specification +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="213" height="37"> + <polygon points="9 5 1 1 1 9"/> + <polygon points="17 5 9 1 9 9"/> + <rect x="43" y="17" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="29">(</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#view-column-list" xlink:title="view_column_list" shape="rect"> + <rect x="63" y="17" width="86" height="18" class="nonterminal"/> + <text class="nonterminal" x="67" y="29">view_column_list</text></a><rect x="157" y="17" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="161" y="29">)</text> + <path class="line" d="m17 5 h2 m20 0 h10 m0 0 h124 m-154 0 h20 m134 0 h20 m-174 0 q10 0 10 10 m154 0 q0 -10 10 -10 m-164 10 v1 m154 0 v-1 m-154 1 q0 10 10 10 m134 0 q10 0 10 -10 m-144 10 h4 m12 0 h4 m0 0 h4 m86 0 h4 m0 0 h4 m12 0 h4 m23 -21 h-3"/> + <polygon points="203 5 211 1 211 9"/> + <polygon points="203 5 195 1 195 9"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#regular-view-specification" title="regular_view_specification" shape="rect">regular_view_specification</a></div> + <div>         ::= ( '(' <a href="#view-column-list" title="view_column_list" shape="rect">view_column_list</a> ')' )?</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#view-specification" title="view-specification">view-specification</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + referenceable_view_specification +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="543" height="42"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="20" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">OF</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#path-resolved-user-defined-type-name" xlink:title="path_resolved_user_defined_type_name" shape="rect"> + <rect x="51" y="1" width="200" height="18" class="nonterminal"/> + <text class="nonterminal" x="55" y="13">path_resolved_user_defined_type_name</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#subview-clause" xlink:title="subview_clause" shape="rect"> + <rect x="279" y="22" width="82" height="18" class="nonterminal"/> + <text class="nonterminal" x="283" y="34">subview_clause</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#view-element-list" xlink:title="view_element_list" shape="rect"> + <rect x="409" y="22" width="90" height="18" class="nonterminal"/> + <text class="nonterminal" x="413" y="34">view_element_list</text></a><path class="line" d="m17 10 h2 m0 0 h4 m20 0 h4 m0 0 h4 m200 0 h4 m20 0 h10 m0 0 h80 m-110 0 h20 m90 0 h20 m-130 0 q10 0 10 10 m110 0 q0 -10 10 -10 m-120 10 v1 m110 0 v-1 m-110 1 q0 10 10 10 m90 0 q10 0 10 -10 m-100 10 h4 m82 0 h4 m40 -21 h10 m0 0 h88 m-118 0 h20 m98 0 h20 m-138 0 q10 0 10 10 m118 0 q0 -10 10 -10 m-128 10 v1 m118 0 v-1 m-118 1 q0 10 10 10 m98 0 q10 0 10 -10 m-108 10 h4 m90 0 h4 m23 -21 h-3"/> + <polygon points="533 10 541 6 541 14"/> + <polygon points="533 10 525 6 525 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#referenceable-view-specification" title="referenceable_view_specification" shape="rect">referenceable_view_specification</a></div> + <div>         ::= 'OF' <a href="#path-resolved-user-defined-type-name" title="path_resolved_user_defined_type_name" shape="rect">path_resolved_user_defined_type_name</a> <a href="#subview-clause" title="subview_clause" shape="rect">subview_clause</a>? <a href="#view-element-list" title="view_element_list" shape="rect">view_element_list</a>?</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#view-specification" title="view-specification">view-specification</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + subview_clause +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="161" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="40" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">UNDER</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#table-name" xlink:title="table_name" shape="rect"> + <rect x="71" y="1" width="66" height="18" class="nonterminal"/> + <text class="nonterminal" x="75" y="13">table_name</text></a><path class="line" d="m17 10 h2 m0 0 h4 m40 0 h4 m0 0 h4 m66 0 h4 m3 0 h-3"/> + <polygon points="151 10 159 6 159 14"/> + <polygon points="151 10 143 6 143 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#subview-clause" title="subview_clause" shape="rect">subview_clause</a></div> + <div>         ::= 'UNDER' <a href="#table-name" title="table_name" shape="rect">table_name</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#referenceable-view-specification" title="referenceable-view-specification">referenceable-view-specification</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + view_element_list +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="201" height="49"> + <polygon points="9 38 1 34 1 42"/> + <polygon points="17 38 9 34 9 42"/> + <rect x="23" y="29" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="41">(</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#view-element" xlink:title="view_element" shape="rect"> + <rect x="63" y="29" width="74" height="18" class="nonterminal"/> + <text class="nonterminal" x="67" y="41">view_element</text></a><rect x="63" y="1" width="8" height="18" class="terminal" rx="4"/> + <text class="terminal" x="67" y="13">,</text> + <rect x="165" y="29" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="169" y="41">)</text> + <path class="line" d="m17 38 h2 m0 0 h4 m12 0 h4 m20 0 h4 m74 0 h4 m-102 0 l20 0 m-1 0 q-9 0 -9 -10 l0 -8 q0 -10 10 -10 m82 28 l20 0 m-20 0 q10 0 10 -10 l0 -8 q0 -10 -10 -10 m-82 0 h4 m8 0 h4 m0 0 h66 m20 28 h4 m12 0 h4 m3 0 h-3"/> + <polygon points="191 38 199 34 199 42"/> + <polygon points="191 38 183 34 183 42"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#view-element-list" title="view_element_list" shape="rect">view_element_list</a></div> + <div>         ::= '(' <a href="#view-element" title="view_element" shape="rect">view_element</a> ( ',' <a href="#view-element" title="view_element" shape="rect">view_element</a> )* ')'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#referenceable-view-specification" title="referenceable-view-specification">referenceable-view-specification</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + view_element +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="265" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#self-referencing-column-specification" xlink:title="self_referencing_column_specification" shape="rect"> + <rect x="43" y="1" width="178" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">self_referencing_column_specification</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#view-column-option" xlink:title="view_column_option" shape="rect"> + <rect x="43" y="29" width="104" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">view_column_option</text></a><path class="line" d="m17 10 h2 m20 0 h4 m178 0 h4 m-206 0 h20 m186 0 h20 m-226 0 q10 0 10 10 m206 0 q0 -10 10 -10 m-216 10 v8 m206 0 v-8 m-206 8 q0 10 10 10 m186 0 q10 0 10 -10 m-196 10 h4 m104 0 h4 m0 0 h74 m23 -28 h-3"/> + <polygon points="255 10 263 6 263 14"/> + <polygon points="255 10 247 6 247 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#view-element" title="view_element" shape="rect">view_element</a></div> + <div>         ::= <a href="#self-referencing-column-specification" title="self_referencing_column_specification" shape="rect">self_referencing_column_specification</a></div> + <div>           | <a href="#view-column-option" title="view_column_option" shape="rect">view_column_option</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#view-element-list" title="view-element-list">view-element-list</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + view_column_option +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="275" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#identifier" xlink:title="identifier" shape="rect"> + <rect x="23" y="1" width="46" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">identifier</text></a><rect x="77" y="1" width="34" height="18" class="terminal" rx="4"/> + <text class="terminal" x="81" y="13">WITH</text> + <rect x="119" y="1" width="52" height="18" class="terminal" rx="4"/> + <text class="terminal" x="123" y="13">OPTIONS</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#scope-clause" xlink:title="scope_clause" shape="rect"> + <rect x="179" y="1" width="72" height="18" class="nonterminal"/> + <text class="nonterminal" x="183" y="13">scope_clause</text></a><path class="line" d="m17 10 h2 m0 0 h4 m46 0 h4 m0 0 h4 m34 0 h4 m0 0 h4 m52 0 h4 m0 0 h4 m72 0 h4 m3 0 h-3"/> + <polygon points="265 10 273 6 273 14"/> + <polygon points="265 10 257 6 257 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#view-column-option" title="view_column_option" shape="rect">view_column_option</a></div> + <div>         ::= <a href="#identifier" title="identifier" shape="rect">identifier</a> 'WITH' 'OPTIONS' <a href="#scope-clause" title="scope_clause" shape="rect">scope_clause</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#view-element" title="view-element">view-element</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + levels_clause +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="145" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="43" y="1" width="58" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="13">CASCADED</text> + <rect x="43" y="29" width="38" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="41">LOCAL</text> + <path class="line" d="m17 10 h2 m20 0 h4 m58 0 h4 m-86 0 h20 m66 0 h20 m-106 0 q10 0 10 10 m86 0 q0 -10 10 -10 m-96 10 v8 m86 0 v-8 m-86 8 q0 10 10 10 m66 0 q10 0 10 -10 m-76 10 h4 m38 0 h4 m0 0 h20 m23 -28 h-3"/> + <polygon points="135 10 143 6 143 14"/> + <polygon points="135 10 127 6 127 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#levels-clause" title="levels_clause" shape="rect">levels_clause</a></div> + <div>         ::= 'CASCADED'</div> + <div>           | 'LOCAL'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#view-definition" title="view-definition">view-definition</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + view_column_list +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="139" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#column-name-list" xlink:title="column_name_list" shape="rect"> + <rect x="23" y="1" width="92" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">column_name_list</text></a><path class="line" d="m17 10 h2 m0 0 h4 m92 0 h4 m3 0 h-3"/> + <polygon points="129 10 137 6 137 14"/> + <polygon points="129 10 121 6 121 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#view-column-list" title="view_column_list" shape="rect">view_column_list</a></div> + <div>         ::= <a href="#column-name-list" title="column_name_list" shape="rect">column_name_list</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#regular-view-specification" title="regular-view-specification">regular-view-specification</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + drop_view_statement +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="281" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="34" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">DROP</text> + <rect x="65" y="1" width="34" height="18" class="terminal" rx="4"/> + <text class="terminal" x="69" y="13">VIEW</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#table-name" xlink:title="table_name" shape="rect"> + <rect x="107" y="1" width="66" height="18" class="nonterminal"/> + <text class="nonterminal" x="111" y="13">table_name</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#drop-behavior" xlink:title="drop_behavior" shape="rect"> + <rect x="181" y="1" width="76" height="18" class="nonterminal"/> + <text class="nonterminal" x="185" y="13">drop_behavior</text></a><path class="line" d="m17 10 h2 m0 0 h4 m34 0 h4 m0 0 h4 m34 0 h4 m0 0 h4 m66 0 h4 m0 0 h4 m76 0 h4 m3 0 h-3"/> + <polygon points="271 10 279 6 279 14"/> + <polygon points="271 10 263 6 263 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#drop-view-statement" title="drop_view_statement" shape="rect">drop_view_statement</a></div> + <div>         ::= 'DROP' 'VIEW' <a href="#table-name" title="table_name" shape="rect">table_name</a> <a href="#drop-behavior" title="drop_behavior" shape="rect">drop_behavior</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#sql-schema-manipulation-statement" title="sql-schema-manipulation-statement">sql-schema-manipulation-statement</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + domain_definition +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="693" height="121"> + <polygon points="9 31 1 27 1 35"/> + <polygon points="17 31 9 27 9 35"/> + <rect x="23" y="22" width="42" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="34">CREATE</text> + <rect x="73" y="22" width="48" height="18" class="terminal" rx="4"/> + <text class="terminal" x="77" y="34">DOMAIN</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#schema-qualified-name" xlink:title="schema_qualified_name" shape="rect"> + <rect x="129" y="22" width="122" height="18" class="nonterminal"/> + <text class="nonterminal" x="133" y="34">schema_qualified_name</text></a><rect x="279" y="43" width="20" height="18" class="terminal" rx="4"/> + <text class="terminal" x="283" y="55">AS</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#predefined-type" xlink:title="predefined_type" shape="rect"> + <rect x="327" y="22" width="84" height="18" class="nonterminal"/> + <text class="nonterminal" x="331" y="34">predefined_type</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#default-clause" xlink:title="default_clause" shape="rect"> + <rect x="439" y="43" width="74" height="18" class="nonterminal"/> + <text class="nonterminal" x="443" y="55">default_clause</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#domain-constraint" xlink:title="domain_constraint" shape="rect"> + <rect x="561" y="1" width="94" height="18" class="nonterminal"/> + <text class="nonterminal" x="565" y="13">domain_constraint</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#collate-clause" xlink:title="collate_clause" shape="rect"> + <rect x="577" y="101" width="72" height="18" class="nonterminal"/> + <text class="nonterminal" x="581" y="113">collate_clause</text></a><path class="line" d="m17 31 h2 m0 0 h4 m42 0 h4 m0 0 h4 m48 0 h4 m0 0 h4 m122 0 h4 m20 0 h10 m0 0 h18 m-48 0 h20 m28 0 h20 m-68 0 q10 0 10 10 m48 0 q0 -10 10 -10 m-58 10 v1 m48 0 v-1 m-48 1 q0 10 10 10 m28 0 q10 0 10 -10 m-38 10 h4 m20 0 h4 m20 -21 h4 m84 0 h4 m20 0 h10 m0 0 h72 m-102 0 h20 m82 0 h20 m-122 0 q10 0 10 10 m102 0 q0 -10 10 -10 m-112 10 v1 m102 0 v-1 m-102 1 q0 10 10 10 m82 0 q10 0 10 -10 m-92 10 h4 m74 0 h4 m40 -21 h10 m0 0 h92 m-122 0 l20 0 m-1 0 q-9 0 -9 -10 l0 -1 q0 -10 10 -10 m102 21 l20 0 m-20 0 q10 0 10 -10 l0 -1 q0 -10 -10 -10 m-102 0 h4 m94 0 h4 m22 21 l2 0 m2 0 l2 0 m2 0 l2 0 m-150 58 l2 0 m2 0 l2 0 m2 0 l2 0 m22 0 h10 m0 0 h70 m-100 0 h20 m80 0 h20 m-120 0 q10 0 10 10 m100 0 q0 -10 10 -10 m-110 10 v1 m100 0 v-1 m-100 1 q0 10 10 10 m80 0 q10 0 10 -10 m-90 10 h4 m72 0 h4 m23 -21 h-3"/> + <polygon points="683 89 691 85 691 93"/> + <polygon points="683 89 675 85 675 93"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#domain-definition" title="domain_definition" shape="rect">domain_definition</a></div> + <div>         ::= 'CREATE' 'DOMAIN' <a href="#schema-qualified-name" title="schema_qualified_name" shape="rect">schema_qualified_name</a> 'AS'? <a href="#predefined-type" title="predefined_type" shape="rect">predefined_type</a> <a href="#default-clause" title="default_clause" shape="rect">default_clause</a>? <a href="#domain-constraint" title="domain_constraint" shape="rect">domain_constraint</a>* <a href="#collate-clause" title="collate_clause" shape="rect">collate_clause</a>?</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#sql-schema-definition-statement" title="sql-schema-definition-statement">sql-schema-definition-statement</a></li><li><a href="#schema-element" title="schema-element">schema-element</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + domain_constraint +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="525" height="42"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#constraint-name-definition" xlink:title="constraint_name_definition" shape="rect"> + <rect x="43" y="22" width="132" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="34">constraint_name_definition</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#check-constraint-definition" xlink:title="check_constraint_definition" shape="rect"> + <rect x="203" y="1" width="130" height="18" class="nonterminal"/> + <text class="nonterminal" x="207" y="13">check_constraint_definition</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#constraint-characteristics" xlink:title="constraint_characteristics" shape="rect"> + <rect x="361" y="22" width="120" height="18" class="nonterminal"/> + <text class="nonterminal" x="365" y="34">constraint_characteristics</text></a><path class="line" d="m17 10 h2 m20 0 h10 m0 0 h130 m-160 0 h20 m140 0 h20 m-180 0 q10 0 10 10 m160 0 q0 -10 10 -10 m-170 10 v1 m160 0 v-1 m-160 1 q0 10 10 10 m140 0 q10 0 10 -10 m-150 10 h4 m132 0 h4 m20 -21 h4 m130 0 h4 m20 0 h10 m0 0 h118 m-148 0 h20 m128 0 h20 m-168 0 q10 0 10 10 m148 0 q0 -10 10 -10 m-158 10 v1 m148 0 v-1 m-148 1 q0 10 10 10 m128 0 q10 0 10 -10 m-138 10 h4 m120 0 h4 m23 -21 h-3"/> + <polygon points="515 10 523 6 523 14"/> + <polygon points="515 10 507 6 507 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#domain-constraint" title="domain_constraint" shape="rect">domain_constraint</a></div> + <div>         ::= <a href="#constraint-name-definition" title="constraint_name_definition" shape="rect">constraint_name_definition</a>? <a href="#check-constraint-definition" title="check_constraint_definition" shape="rect">check_constraint_definition</a> <a href="#constraint-characteristics" title="constraint_characteristics" shape="rect">constraint_characteristics</a>?</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#add-domain-constraint-definition" title="add-domain-constraint-definition">add-domain-constraint-definition</a></li><li><a href="#domain-definition" title="domain-definition">domain-definition</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + alter_domain_statement +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="379" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="36" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">ALTER</text> + <rect x="67" y="1" width="48" height="18" class="terminal" rx="4"/> + <text class="terminal" x="71" y="13">DOMAIN</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#schema-qualified-name" xlink:title="schema_qualified_name" shape="rect"> + <rect x="123" y="1" width="122" height="18" class="nonterminal"/> + <text class="nonterminal" x="127" y="13">schema_qualified_name</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#alter-domain-action" xlink:title="alter_domain_action" shape="rect"> + <rect x="253" y="1" width="102" height="18" class="nonterminal"/> + <text class="nonterminal" x="257" y="13">alter_domain_action</text></a><path class="line" d="m17 10 h2 m0 0 h4 m36 0 h4 m0 0 h4 m48 0 h4 m0 0 h4 m122 0 h4 m0 0 h4 m102 0 h4 m3 0 h-3"/> + <polygon points="369 10 377 6 377 14"/> + <polygon points="369 10 361 6 361 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#alter-domain-statement" title="alter_domain_statement" shape="rect">alter_domain_statement</a></div> + <div>         ::= 'ALTER' 'DOMAIN' <a href="#schema-qualified-name" title="schema_qualified_name" shape="rect">schema_qualified_name</a> <a href="#alter-domain-action" title="alter_domain_action" shape="rect">alter_domain_action</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#sql-schema-manipulation-statement" title="sql-schema-manipulation-statement">sql-schema-manipulation-statement</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + alter_domain_action +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="253" height="105"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#set-domain-default-clause" xlink:title="set_domain_default_clause" shape="rect"> + <rect x="43" y="1" width="136" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">set_domain_default_clause</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#drop-domain-default-clause" xlink:title="drop_domain_default_clause" shape="rect"> + <rect x="43" y="29" width="142" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">drop_domain_default_clause</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#add-domain-constraint-definition" xlink:title="add_domain_constraint_definition" shape="rect"> + <rect x="43" y="57" width="164" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="69">add_domain_constraint_definition</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#drop-domain-constraint-definition" xlink:title="drop_domain_constraint_definition" shape="rect"> + <rect x="43" y="85" width="166" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="97">drop_domain_constraint_definition</text></a><path class="line" d="m17 10 h2 m20 0 h4 m136 0 h4 m0 0 h30 m-194 0 h20 m174 0 h20 m-214 0 q10 0 10 10 m194 0 q0 -10 10 -10 m-204 10 v8 m194 0 v-8 m-194 8 q0 10 10 10 m174 0 q10 0 10 -10 m-184 10 h4 m142 0 h4 m0 0 h24 m-184 -10 v20 m194 0 v-20 m-194 20 v8 m194 0 v-8 m-194 8 q0 10 10 10 m174 0 q10 0 10 -10 m-184 10 h4 m164 0 h4 m0 0 h2 m-184 -10 v20 m194 0 v-20 m-194 20 v8 m194 0 v-8 m-194 8 q0 10 10 10 m174 0 q10 0 10 -10 m-184 10 h4 m166 0 h4 m23 -84 h-3"/> + <polygon points="243 10 251 6 251 14"/> + <polygon points="243 10 235 6 235 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#alter-domain-action" title="alter_domain_action" shape="rect">alter_domain_action</a></div> + <div>         ::= <a href="#set-domain-default-clause" title="set_domain_default_clause" shape="rect">set_domain_default_clause</a></div> + <div>           | <a href="#drop-domain-default-clause" title="drop_domain_default_clause" shape="rect">drop_domain_default_clause</a></div> + <div>           | <a href="#add-domain-constraint-definition" title="add_domain_constraint_definition" shape="rect">add_domain_constraint_definition</a></div> + <div>           | <a href="#drop-domain-constraint-definition" title="drop_domain_constraint_definition" shape="rect">drop_domain_constraint_definition</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#alter-domain-statement" title="alter-domain-statement">alter-domain-statement</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + set_domain_default_clause +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="153" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="24" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">SET</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#default-clause" xlink:title="default_clause" shape="rect"> + <rect x="55" y="1" width="74" height="18" class="nonterminal"/> + <text class="nonterminal" x="59" y="13">default_clause</text></a><path class="line" d="m17 10 h2 m0 0 h4 m24 0 h4 m0 0 h4 m74 0 h4 m3 0 h-3"/> + <polygon points="143 10 151 6 151 14"/> + <polygon points="143 10 135 6 135 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#set-domain-default-clause" title="set_domain_default_clause" shape="rect">set_domain_default_clause</a></div> + <div>         ::= 'SET' <a href="#default-clause" title="default_clause" shape="rect">default_clause</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#alter-domain-action" title="alter-domain-action">alter-domain-action</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + drop_domain_default_clause +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="137" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="34" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">DROP</text> + <rect x="65" y="1" width="48" height="18" class="terminal" rx="4"/> + <text class="terminal" x="69" y="13">DEFAULT</text> + <path class="line" d="m17 10 h2 m0 0 h4 m34 0 h4 m0 0 h4 m48 0 h4 m3 0 h-3"/> + <polygon points="127 10 135 6 135 14"/> + <polygon points="127 10 119 6 119 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#drop-domain-default-clause" title="drop_domain_default_clause" shape="rect">drop_domain_default_clause</a></div> + <div>         ::= 'DROP' 'DEFAULT'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#alter-domain-action" title="alter-domain-action">alter-domain-action</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + add_domain_constraint_definition +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="177" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="28" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">ADD</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#domain-constraint" xlink:title="domain_constraint" shape="rect"> + <rect x="59" y="1" width="94" height="18" class="nonterminal"/> + <text class="nonterminal" x="63" y="13">domain_constraint</text></a><path class="line" d="m17 10 h2 m0 0 h4 m28 0 h4 m0 0 h4 m94 0 h4 m3 0 h-3"/> + <polygon points="167 10 175 6 175 14"/> + <polygon points="167 10 159 6 159 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#add-domain-constraint-definition" title="add_domain_constraint_definition" shape="rect">add_domain_constraint_definition</a></div> + <div>         ::= 'ADD' <a href="#domain-constraint" title="domain_constraint" shape="rect">domain_constraint</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#alter-domain-action" title="alter-domain-action">alter-domain-action</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + drop_domain_constraint_definition +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="287" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="34" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">DROP</text> + <rect x="65" y="1" width="68" height="18" class="terminal" rx="4"/> + <text class="terminal" x="69" y="13">CONSTRAINT</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#schema-qualified-name" xlink:title="schema_qualified_name" shape="rect"> + <rect x="141" y="1" width="122" height="18" class="nonterminal"/> + <text class="nonterminal" x="145" y="13">schema_qualified_name</text></a><path class="line" d="m17 10 h2 m0 0 h4 m34 0 h4 m0 0 h4 m68 0 h4 m0 0 h4 m122 0 h4 m3 0 h-3"/> + <polygon points="277 10 285 6 285 14"/> + <polygon points="277 10 269 6 269 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#drop-domain-constraint-definition" title="drop_domain_constraint_definition" shape="rect">drop_domain_constraint_definition</a></div> + <div>         ::= 'DROP' 'CONSTRAINT' <a href="#schema-qualified-name" title="schema_qualified_name" shape="rect">schema_qualified_name</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#alter-domain-action" title="alter-domain-action">alter-domain-action</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + drop_domain_statement +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="351" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="34" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">DROP</text> + <rect x="65" y="1" width="48" height="18" class="terminal" rx="4"/> + <text class="terminal" x="69" y="13">DOMAIN</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#schema-qualified-name" xlink:title="schema_qualified_name" shape="rect"> + <rect x="121" y="1" width="122" height="18" class="nonterminal"/> + <text class="nonterminal" x="125" y="13">schema_qualified_name</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#drop-behavior" xlink:title="drop_behavior" shape="rect"> + <rect x="251" y="1" width="76" height="18" class="nonterminal"/> + <text class="nonterminal" x="255" y="13">drop_behavior</text></a><path class="line" d="m17 10 h2 m0 0 h4 m34 0 h4 m0 0 h4 m48 0 h4 m0 0 h4 m122 0 h4 m0 0 h4 m76 0 h4 m3 0 h-3"/> + <polygon points="341 10 349 6 349 14"/> + <polygon points="341 10 333 6 333 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#drop-domain-statement" title="drop_domain_statement" shape="rect">drop_domain_statement</a></div> + <div>         ::= 'DROP' 'DOMAIN' <a href="#schema-qualified-name" title="schema_qualified_name" shape="rect">schema_qualified_name</a> <a href="#drop-behavior" title="drop_behavior" shape="rect">drop_behavior</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#sql-schema-manipulation-statement" title="sql-schema-manipulation-statement">sql-schema-manipulation-statement</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + character_set_definition +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="607" height="42"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="42" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">CREATE</text> + <rect x="73" y="1" width="62" height="18" class="terminal" rx="4"/> + <text class="terminal" x="77" y="13">CHARACTER</text> + <rect x="143" y="1" width="24" height="18" class="terminal" rx="4"/> + <text class="terminal" x="147" y="13">SET</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#character-set-name" xlink:title="character_set_name" shape="rect"> + <rect x="175" y="1" width="104" height="18" class="nonterminal"/> + <text class="nonterminal" x="179" y="13">character_set_name</text></a><rect x="307" y="22" width="20" height="18" class="terminal" rx="4"/> + <text class="terminal" x="311" y="34">AS</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#character-set-source" xlink:title="character_set_source" shape="rect"> + <rect x="355" y="1" width="108" height="18" class="nonterminal"/> + <text class="nonterminal" x="359" y="13">character_set_source</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#collate-clause" xlink:title="collate_clause" shape="rect"> + <rect x="491" y="22" width="72" height="18" class="nonterminal"/> + <text class="nonterminal" x="495" y="34">collate_clause</text></a><path class="line" d="m17 10 h2 m0 0 h4 m42 0 h4 m0 0 h4 m62 0 h4 m0 0 h4 m24 0 h4 m0 0 h4 m104 0 h4 m20 0 h10 m0 0 h18 m-48 0 h20 m28 0 h20 m-68 0 q10 0 10 10 m48 0 q0 -10 10 -10 m-58 10 v1 m48 0 v-1 m-48 1 q0 10 10 10 m28 0 q10 0 10 -10 m-38 10 h4 m20 0 h4 m20 -21 h4 m108 0 h4 m20 0 h10 m0 0 h70 m-100 0 h20 m80 0 h20 m-120 0 q10 0 10 10 m100 0 q0 -10 10 -10 m-110 10 v1 m100 0 v-1 m-100 1 q0 10 10 10 m80 0 q10 0 10 -10 m-90 10 h4 m72 0 h4 m23 -21 h-3"/> + <polygon points="597 10 605 6 605 14"/> + <polygon points="597 10 589 6 589 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#character-set-definition" title="character_set_definition" shape="rect">character_set_definition</a></div> + <div>         ::= 'CREATE' 'CHARACTER' 'SET' <a href="#character-set-name" title="character_set_name" shape="rect">character_set_name</a> 'AS'? <a href="#character-set-source" title="character_set_source" shape="rect">character_set_source</a> <a href="#collate-clause" title="collate_clause" shape="rect">collate_clause</a>?</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#sql-schema-definition-statement" title="sql-schema-definition-statement">sql-schema-definition-statement</a></li><li><a href="#schema-element" title="schema-element">schema-element</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + character_set_source +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="209" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="24" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">GET</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#character-set-specification" xlink:title="character_set_specification" shape="rect"> + <rect x="55" y="1" width="130" height="18" class="nonterminal"/> + <text class="nonterminal" x="59" y="13">character_set_specification</text></a><path class="line" d="m17 10 h2 m0 0 h4 m24 0 h4 m0 0 h4 m130 0 h4 m3 0 h-3"/> + <polygon points="199 10 207 6 207 14"/> + <polygon points="199 10 191 6 191 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#character-set-source" title="character_set_source" shape="rect">character_set_source</a></div> + <div>         ::= 'GET' <a href="#character-set-specification" title="character_set_specification" shape="rect">character_set_specification</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#character-set-definition" title="character-set-definition">character-set-definition</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + drop_character_set_statement +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="295" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="34" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">DROP</text> + <rect x="65" y="1" width="62" height="18" class="terminal" rx="4"/> + <text class="terminal" x="69" y="13">CHARACTER</text> + <rect x="135" y="1" width="24" height="18" class="terminal" rx="4"/> + <text class="terminal" x="139" y="13">SET</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#character-set-name" xlink:title="character_set_name" shape="rect"> + <rect x="167" y="1" width="104" height="18" class="nonterminal"/> + <text class="nonterminal" x="171" y="13">character_set_name</text></a><path class="line" d="m17 10 h2 m0 0 h4 m34 0 h4 m0 0 h4 m62 0 h4 m0 0 h4 m24 0 h4 m0 0 h4 m104 0 h4 m3 0 h-3"/> + <polygon points="285 10 293 6 293 14"/> + <polygon points="285 10 277 6 277 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#drop-character-set-statement" title="drop_character_set_statement" shape="rect">drop_character_set_statement</a></div> + <div>         ::= 'DROP' 'CHARACTER' 'SET' <a href="#character-set-name" title="character_set_name" shape="rect">character_set_name</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#sql-schema-manipulation-statement" title="sql-schema-manipulation-statement">sql-schema-manipulation-statement</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + collation_definition +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="773" height="42"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="42" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">CREATE</text> + <rect x="73" y="1" width="62" height="18" class="terminal" rx="4"/> + <text class="terminal" x="77" y="13">COLLATION</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#schema-qualified-name" xlink:title="schema_qualified_name" shape="rect"> + <rect x="143" y="1" width="122" height="18" class="nonterminal"/> + <text class="nonterminal" x="147" y="13">schema_qualified_name</text></a><rect x="273" y="1" width="26" height="18" class="terminal" rx="4"/> + <text class="terminal" x="277" y="13">FOR</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#character-set-specification" xlink:title="character_set_specification" shape="rect"> + <rect x="307" y="1" width="130" height="18" class="nonterminal"/> + <text class="nonterminal" x="311" y="13">character_set_specification</text></a><rect x="445" y="1" width="36" height="18" class="terminal" rx="4"/> + <text class="terminal" x="449" y="13">FROM</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#schema-qualified-name" xlink:title="schema_qualified_name" shape="rect"> + <rect x="489" y="1" width="122" height="18" class="nonterminal"/> + <text class="nonterminal" x="493" y="13">schema_qualified_name</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#pad-characteristic" xlink:title="pad_characteristic" shape="rect"> + <rect x="639" y="22" width="90" height="18" class="nonterminal"/> + <text class="nonterminal" x="643" y="34">pad_characteristic</text></a><path class="line" d="m17 10 h2 m0 0 h4 m42 0 h4 m0 0 h4 m62 0 h4 m0 0 h4 m122 0 h4 m0 0 h4 m26 0 h4 m0 0 h4 m130 0 h4 m0 0 h4 m36 0 h4 m0 0 h4 m122 0 h4 m20 0 h10 m0 0 h88 m-118 0 h20 m98 0 h20 m-138 0 q10 0 10 10 m118 0 q0 -10 10 -10 m-128 10 v1 m118 0 v-1 m-118 1 q0 10 10 10 m98 0 q10 0 10 -10 m-108 10 h4 m90 0 h4 m23 -21 h-3"/> + <polygon points="763 10 771 6 771 14"/> + <polygon points="763 10 755 6 755 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#collation-definition" title="collation_definition" shape="rect">collation_definition</a></div> + <div>         ::= 'CREATE' 'COLLATION' <a href="#schema-qualified-name" title="schema_qualified_name" shape="rect">schema_qualified_name</a> 'FOR' <a href="#character-set-specification" title="character_set_specification" shape="rect">character_set_specification</a> 'FROM' <a href="#schema-qualified-name" title="schema_qualified_name" shape="rect">schema_qualified_name</a> <a href="#pad-characteristic" title="pad_characteristic" shape="rect">pad_characteristic</a>?</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#sql-schema-definition-statement" title="sql-schema-definition-statement">sql-schema-definition-statement</a></li><li><a href="#schema-element" title="schema-element">schema-element</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + pad_characteristic +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="159" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="43" y="1" width="22" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="13">NO</text> + <rect x="73" y="1" width="26" height="18" class="terminal" rx="4"/> + <text class="terminal" x="77" y="13">PAD</text> + <rect x="43" y="29" width="26" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="41">PAD</text> + <rect x="77" y="29" width="38" height="18" class="terminal" rx="4"/> + <text class="terminal" x="81" y="41">SPACE</text> + <path class="line" d="m17 10 h2 m20 0 h4 m22 0 h4 m0 0 h4 m26 0 h4 m0 0 h16 m-100 0 h20 m80 0 h20 m-120 0 q10 0 10 10 m100 0 q0 -10 10 -10 m-110 10 v8 m100 0 v-8 m-100 8 q0 10 10 10 m80 0 q10 0 10 -10 m-90 10 h4 m26 0 h4 m0 0 h4 m38 0 h4 m23 -28 h-3"/> + <polygon points="149 10 157 6 157 14"/> + <polygon points="149 10 141 6 141 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#pad-characteristic" title="pad_characteristic" shape="rect">pad_characteristic</a></div> + <div>         ::= 'NO' 'PAD'</div> + <div>           | 'PAD' 'SPACE'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#collation-definition" title="collation-definition">collation-definition</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + drop_collation_statement +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="365" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="34" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">DROP</text> + <rect x="65" y="1" width="62" height="18" class="terminal" rx="4"/> + <text class="terminal" x="69" y="13">COLLATION</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#schema-qualified-name" xlink:title="schema_qualified_name" shape="rect"> + <rect x="135" y="1" width="122" height="18" class="nonterminal"/> + <text class="nonterminal" x="139" y="13">schema_qualified_name</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#drop-behavior" xlink:title="drop_behavior" shape="rect"> + <rect x="265" y="1" width="76" height="18" class="nonterminal"/> + <text class="nonterminal" x="269" y="13">drop_behavior</text></a><path class="line" d="m17 10 h2 m0 0 h4 m34 0 h4 m0 0 h4 m62 0 h4 m0 0 h4 m122 0 h4 m0 0 h4 m76 0 h4 m3 0 h-3"/> + <polygon points="355 10 363 6 363 14"/> + <polygon points="355 10 347 6 347 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#drop-collation-statement" title="drop_collation_statement" shape="rect">drop_collation_statement</a></div> + <div>         ::= 'DROP' 'COLLATION' <a href="#schema-qualified-name" title="schema_qualified_name" shape="rect">schema_qualified_name</a> <a href="#drop-behavior" title="drop_behavior" shape="rect">drop_behavior</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#sql-schema-manipulation-statement" title="sql-schema-manipulation-statement">sql-schema-manipulation-statement</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + transliteration_definition +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="745" height="63"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="42" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">CREATE</text> + <rect x="73" y="1" width="74" height="18" class="terminal" rx="4"/> + <text class="terminal" x="77" y="13">TRANSLATION</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#schema-qualified-name" xlink:title="schema_qualified_name" shape="rect"> + <rect x="155" y="1" width="122" height="18" class="nonterminal"/> + <text class="nonterminal" x="159" y="13">schema_qualified_name</text></a><rect x="285" y="1" width="26" height="18" class="terminal" rx="4"/> + <text class="terminal" x="289" y="13">FOR</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#source-character-set-specification" xlink:title="source_character_set_specification" shape="rect"> + <rect x="319" y="1" width="166" height="18" class="nonterminal"/> + <text class="nonterminal" x="323" y="13">source_character_set_specification</text></a><rect x="493" y="1" width="20" height="18" class="terminal" rx="4"/> + <text class="terminal" x="497" y="13">TO</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#target-character-set-specification" xlink:title="target_character_set_specification" shape="rect"> + <rect x="521" y="1" width="162" height="18" class="nonterminal"/> + <text class="nonterminal" x="525" y="13">target_character_set_specification</text></a><rect x="691" y="1" width="36" height="18" class="terminal" rx="4"/> + <text class="terminal" x="695" y="13">FROM</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#transliteration-source" xlink:title="transliteration_source" shape="rect"> + <rect x="615" y="43" width="106" height="18" class="nonterminal"/> + <text class="nonterminal" x="619" y="55">transliteration_source</text></a><path class="line" d="m17 10 h2 m0 0 h4 m42 0 h4 m0 0 h4 m74 0 h4 m0 0 h4 m122 0 h4 m0 0 h4 m26 0 h4 m0 0 h4 m166 0 h4 m0 0 h4 m20 0 h4 m0 0 h4 m162 0 h4 m0 0 h4 m36 0 h4 m2 0 l2 0 m2 0 l2 0 m2 0 l2 0 m-144 42 l2 0 m2 0 l2 0 m2 0 l2 0 m2 0 h4 m106 0 h4 m3 0 h-3"/> + <polygon points="735 52 743 48 743 56"/> + <polygon points="735 52 727 48 727 56"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#transliteration-definition" title="transliteration_definition" shape="rect">transliteration_definition</a></div> + <div>         ::= 'CREATE' 'TRANSLATION' <a href="#schema-qualified-name" title="schema_qualified_name" shape="rect">schema_qualified_name</a> 'FOR' <a href="#source-character-set-specification" title="source_character_set_specification" shape="rect">source_character_set_specification</a> 'TO' <a href="#target-character-set-specification" title="target_character_set_specification" shape="rect">target_character_set_specification</a> 'FROM' <a href="#transliteration-source" title="transliteration_source" shape="rect">transliteration_source</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#sql-schema-definition-statement" title="sql-schema-definition-statement">sql-schema-definition-statement</a></li><li><a href="#schema-element" title="schema-element">schema-element</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + source_character_set_specification +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="177" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#character-set-specification" xlink:title="character_set_specification" shape="rect"> + <rect x="23" y="1" width="130" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">character_set_specification</text></a><path class="line" d="m17 10 h2 m0 0 h4 m130 0 h4 m3 0 h-3"/> + <polygon points="167 10 175 6 175 14"/> + <polygon points="167 10 159 6 159 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#source-character-set-specification" title="source_character_set_specification" shape="rect">source_character_set_specification</a></div> + <div>         ::= <a href="#character-set-specification" title="character_set_specification" shape="rect">character_set_specification</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#transliteration-definition" title="transliteration-definition">transliteration-definition</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + target_character_set_specification +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="177" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#character-set-specification" xlink:title="character_set_specification" shape="rect"> + <rect x="23" y="1" width="130" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">character_set_specification</text></a><path class="line" d="m17 10 h2 m0 0 h4 m130 0 h4 m3 0 h-3"/> + <polygon points="167 10 175 6 175 14"/> + <polygon points="167 10 159 6 159 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#target-character-set-specification" title="target_character_set_specification" shape="rect">target_character_set_specification</a></div> + <div>         ::= <a href="#character-set-specification" title="character_set_specification" shape="rect">character_set_specification</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#transliteration-definition" title="transliteration-definition">transliteration-definition</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + transliteration_source +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="209" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#schema-qualified-name" xlink:title="schema_qualified_name" shape="rect"> + <rect x="43" y="1" width="122" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">schema_qualified_name</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#transliteration-routine" xlink:title="transliteration_routine" shape="rect"> + <rect x="43" y="29" width="108" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">transliteration_routine</text></a><path class="line" d="m17 10 h2 m20 0 h4 m122 0 h4 m-150 0 h20 m130 0 h20 m-170 0 q10 0 10 10 m150 0 q0 -10 10 -10 m-160 10 v8 m150 0 v-8 m-150 8 q0 10 10 10 m130 0 q10 0 10 -10 m-140 10 h4 m108 0 h4 m0 0 h14 m23 -28 h-3"/> + <polygon points="199 10 207 6 207 14"/> + <polygon points="199 10 191 6 191 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#transliteration-source" title="transliteration_source" shape="rect">transliteration_source</a></div> + <div>         ::= <a href="#schema-qualified-name" title="schema_qualified_name" shape="rect">schema_qualified_name</a></div> + <div>           | <a href="#transliteration-routine" title="transliteration_routine" shape="rect">transliteration_routine</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#transliteration-definition" title="transliteration-definition">transliteration-definition</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + transliteration_routine +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="179" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#specific-routine-designator" xlink:title="specific_routine_designator" shape="rect"> + <rect x="23" y="1" width="132" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">specific_routine_designator</text></a><path class="line" d="m17 10 h2 m0 0 h4 m132 0 h4 m3 0 h-3"/> + <polygon points="169 10 177 6 177 14"/> + <polygon points="169 10 161 6 161 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#transliteration-routine" title="transliteration_routine" shape="rect">transliteration_routine</a></div> + <div>         ::= <a href="#specific-routine-designator" title="specific_routine_designator" shape="rect">specific_routine_designator</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#transliteration-source" title="transliteration-source">transliteration-source</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + drop_transliteration_statement +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="293" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="34" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">DROP</text> + <rect x="65" y="1" width="74" height="18" class="terminal" rx="4"/> + <text class="terminal" x="69" y="13">TRANSLATION</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#schema-qualified-name" xlink:title="schema_qualified_name" shape="rect"> + <rect x="147" y="1" width="122" height="18" class="nonterminal"/> + <text class="nonterminal" x="151" y="13">schema_qualified_name</text></a><path class="line" d="m17 10 h2 m0 0 h4 m34 0 h4 m0 0 h4 m74 0 h4 m0 0 h4 m122 0 h4 m3 0 h-3"/> + <polygon points="283 10 291 6 291 14"/> + <polygon points="283 10 275 6 275 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#drop-transliteration-statement" title="drop_transliteration_statement" shape="rect">drop_transliteration_statement</a></div> + <div>         ::= 'DROP' 'TRANSLATION' <a href="#schema-qualified-name" title="schema_qualified_name" shape="rect">schema_qualified_name</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#sql-schema-manipulation-statement" title="sql-schema-manipulation-statement">sql-schema-manipulation-statement</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + assertion_definition +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="637" height="42"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="42" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">CREATE</text> + <rect x="73" y="1" width="62" height="18" class="terminal" rx="4"/> + <text class="terminal" x="77" y="13">ASSERTION</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#schema-qualified-name" xlink:title="schema_qualified_name" shape="rect"> + <rect x="143" y="1" width="122" height="18" class="nonterminal"/> + <text class="nonterminal" x="147" y="13">schema_qualified_name</text></a><rect x="273" y="1" width="38" height="18" class="terminal" rx="4"/> + <text class="terminal" x="277" y="13">CHECK</text> + <rect x="319" y="1" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="323" y="13">(</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#search-condition" xlink:title="search_condition" shape="rect"> + <rect x="339" y="1" width="86" height="18" class="nonterminal"/> + <text class="nonterminal" x="343" y="13">search_condition</text></a><rect x="433" y="1" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="437" y="13">)</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#constraint-characteristics" xlink:title="constraint_characteristics" shape="rect"> + <rect x="473" y="22" width="120" height="18" class="nonterminal"/> + <text class="nonterminal" x="477" y="34">constraint_characteristics</text></a><path class="line" d="m17 10 h2 m0 0 h4 m42 0 h4 m0 0 h4 m62 0 h4 m0 0 h4 m122 0 h4 m0 0 h4 m38 0 h4 m0 0 h4 m12 0 h4 m0 0 h4 m86 0 h4 m0 0 h4 m12 0 h4 m20 0 h10 m0 0 h118 m-148 0 h20 m128 0 h20 m-168 0 q10 0 10 10 m148 0 q0 -10 10 -10 m-158 10 v1 m148 0 v-1 m-148 1 q0 10 10 10 m128 0 q10 0 10 -10 m-138 10 h4 m120 0 h4 m23 -21 h-3"/> + <polygon points="627 10 635 6 635 14"/> + <polygon points="627 10 619 6 619 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#assertion-definition" title="assertion_definition" shape="rect">assertion_definition</a></div> + <div>         ::= 'CREATE' 'ASSERTION' <a href="#schema-qualified-name" title="schema_qualified_name" shape="rect">schema_qualified_name</a> 'CHECK' '(' <a href="#search-condition" title="search_condition" shape="rect">search_condition</a> ')' <a href="#constraint-characteristics" title="constraint_characteristics" shape="rect">constraint_characteristics</a>?</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#sql-schema-definition-statement" title="sql-schema-definition-statement">sql-schema-definition-statement</a></li><li><a href="#schema-element" title="schema-element">schema-element</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + drop_assertion_statement +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="405" height="42"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="34" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">DROP</text> + <rect x="65" y="1" width="62" height="18" class="terminal" rx="4"/> + <text class="terminal" x="69" y="13">ASSERTION</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#schema-qualified-name" xlink:title="schema_qualified_name" shape="rect"> + <rect x="135" y="1" width="122" height="18" class="nonterminal"/> + <text class="nonterminal" x="139" y="13">schema_qualified_name</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#drop-behavior" xlink:title="drop_behavior" shape="rect"> + <rect x="285" y="22" width="76" height="18" class="nonterminal"/> + <text class="nonterminal" x="289" y="34">drop_behavior</text></a><path class="line" d="m17 10 h2 m0 0 h4 m34 0 h4 m0 0 h4 m62 0 h4 m0 0 h4 m122 0 h4 m20 0 h10 m0 0 h74 m-104 0 h20 m84 0 h20 m-124 0 q10 0 10 10 m104 0 q0 -10 10 -10 m-114 10 v1 m104 0 v-1 m-104 1 q0 10 10 10 m84 0 q10 0 10 -10 m-94 10 h4 m76 0 h4 m23 -21 h-3"/> + <polygon points="395 10 403 6 403 14"/> + <polygon points="395 10 387 6 387 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#drop-assertion-statement" title="drop_assertion_statement" shape="rect">drop_assertion_statement</a></div> + <div>         ::= 'DROP' 'ASSERTION' <a href="#schema-qualified-name" title="schema_qualified_name" shape="rect">schema_qualified_name</a> <a href="#drop-behavior" title="drop_behavior" shape="rect">drop_behavior</a>?</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#sql-schema-manipulation-statement" title="sql-schema-manipulation-statement">sql-schema-manipulation-statement</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + trigger_definition +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="555" height="84"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="42" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">CREATE</text> + <rect x="73" y="1" width="48" height="18" class="terminal" rx="4"/> + <text class="terminal" x="77" y="13">TRIGGER</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#schema-qualified-name" xlink:title="schema_qualified_name" shape="rect"> + <rect x="129" y="1" width="122" height="18" class="nonterminal"/> + <text class="nonterminal" x="133" y="13">schema_qualified_name</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#trigger-action-time" xlink:title="trigger_action_time" shape="rect"> + <rect x="259" y="1" width="96" height="18" class="nonterminal"/> + <text class="nonterminal" x="263" y="13">trigger_action_time</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#trigger-event" xlink:title="trigger_event" shape="rect"> + <rect x="363" y="1" width="70" height="18" class="nonterminal"/> + <text class="nonterminal" x="367" y="13">trigger_event</text></a><rect x="441" y="1" width="22" height="18" class="terminal" rx="4"/> + <text class="terminal" x="445" y="13">ON</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#table-name" xlink:title="table_name" shape="rect"> + <rect x="471" y="1" width="66" height="18" class="nonterminal"/> + <text class="nonterminal" x="475" y="13">table_name</text></a><rect x="189" y="64" width="72" height="18" class="terminal" rx="4"/> + <text class="terminal" x="193" y="76">REFERENCING</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#transition-table-or-variable-list" xlink:title="transition_table_or_variable_list" shape="rect"> + <rect x="269" y="64" width="152" height="18" class="nonterminal"/> + <text class="nonterminal" x="273" y="76">transition_table_or_variable_list</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#triggered-action" xlink:title="triggered_action" shape="rect"> + <rect x="449" y="43" width="82" height="18" class="nonterminal"/> + <text class="nonterminal" x="453" y="55">triggered_action</text></a><path class="line" d="m17 10 h2 m0 0 h4 m42 0 h4 m0 0 h4 m48 0 h4 m0 0 h4 m122 0 h4 m0 0 h4 m96 0 h4 m0 0 h4 m70 0 h4 m0 0 h4 m22 0 h4 m0 0 h4 m66 0 h4 m2 0 l2 0 m2 0 l2 0 m2 0 l2 0 m-400 42 l2 0 m2 0 l2 0 m2 0 l2 0 m22 0 h10 m0 0 h230 m-260 0 h20 m240 0 h20 m-280 0 q10 0 10 10 m260 0 q0 -10 10 -10 m-270 10 v1 m260 0 v-1 m-260 1 q0 10 10 10 m240 0 q10 0 10 -10 m-250 10 h4 m72 0 h4 m0 0 h4 m152 0 h4 m20 -21 h4 m82 0 h4 m3 0 h-3"/> + <polygon points="545 52 553 48 553 56"/> + <polygon points="545 52 537 48 537 56"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#trigger-definition" title="trigger_definition" shape="rect">trigger_definition</a></div> + <div>         ::= 'CREATE' 'TRIGGER' <a href="#schema-qualified-name" title="schema_qualified_name" shape="rect">schema_qualified_name</a> <a href="#trigger-action-time" title="trigger_action_time" shape="rect">trigger_action_time</a> <a href="#trigger-event" title="trigger_event" shape="rect">trigger_event</a> 'ON' <a href="#table-name" title="table_name" shape="rect">table_name</a> ( 'REFERENCING' <a href="#transition-table-or-variable-list" title="transition_table_or_variable_list" shape="rect">transition_table_or_variable_list</a> )? <a href="#triggered-action" title="triggered_action" shape="rect">triggered_action</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#sql-schema-definition-statement" title="sql-schema-definition-statement">sql-schema-definition-statement</a></li><li><a href="#schema-element" title="schema-element">schema-element</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + trigger_action_time +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="163" height="77"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="43" y="1" width="44" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="13">BEFORE</text> + <rect x="43" y="29" width="36" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="41">AFTER</text> + <rect x="43" y="57" width="48" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="69">INSTEAD</text> + <rect x="99" y="57" width="20" height="18" class="terminal" rx="4"/> + <text class="terminal" x="103" y="69">OF</text> + <path class="line" d="m17 10 h2 m20 0 h4 m44 0 h4 m0 0 h32 m-104 0 h20 m84 0 h20 m-124 0 q10 0 10 10 m104 0 q0 -10 10 -10 m-114 10 v8 m104 0 v-8 m-104 8 q0 10 10 10 m84 0 q10 0 10 -10 m-94 10 h4 m36 0 h4 m0 0 h40 m-94 -10 v20 m104 0 v-20 m-104 20 v8 m104 0 v-8 m-104 8 q0 10 10 10 m84 0 q10 0 10 -10 m-94 10 h4 m48 0 h4 m0 0 h4 m20 0 h4 m23 -56 h-3"/> + <polygon points="153 10 161 6 161 14"/> + <polygon points="153 10 145 6 145 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#trigger-action-time" title="trigger_action_time" shape="rect">trigger_action_time</a></div> + <div>         ::= 'BEFORE'</div> + <div>           | 'AFTER'</div> + <div>           | 'INSTEAD' 'OF'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#trigger-definition" title="trigger-definition">trigger-definition</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + trigger_event +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="301" height="98"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="43" y="1" width="40" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="13">INSERT</text> + <rect x="43" y="29" width="40" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="41">DELETE</text> + <rect x="43" y="57" width="44" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="69">UPDATE</text> + <rect x="115" y="78" width="20" height="18" class="terminal" rx="4"/> + <text class="terminal" x="119" y="90">OF</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#trigger-column-list" xlink:title="trigger_column_list" shape="rect"> + <rect x="143" y="78" width="94" height="18" class="nonterminal"/> + <text class="nonterminal" x="147" y="90">trigger_column_list</text></a><path class="line" d="m17 10 h2 m20 0 h4 m40 0 h4 m0 0 h174 m-242 0 h20 m222 0 h20 m-262 0 q10 0 10 10 m242 0 q0 -10 10 -10 m-252 10 v8 m242 0 v-8 m-242 8 q0 10 10 10 m222 0 q10 0 10 -10 m-232 10 h4 m40 0 h4 m0 0 h174 m-232 -10 v20 m242 0 v-20 m-242 20 v8 m242 0 v-8 m-242 8 q0 10 10 10 m222 0 q10 0 10 -10 m-232 10 h4 m44 0 h4 m20 0 h10 m0 0 h120 m-150 0 h20 m130 0 h20 m-170 0 q10 0 10 10 m150 0 q0 -10 10 -10 m-160 10 v1 m150 0 v-1 m-150 1 q0 10 10 10 m130 0 q10 0 10 -10 m-140 10 h4 m20 0 h4 m0 0 h4 m94 0 h4 m43 -77 h-3"/> + <polygon points="291 10 299 6 299 14"/> + <polygon points="291 10 283 6 283 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#trigger-event" title="trigger_event" shape="rect">trigger_event</a></div> + <div>         ::= 'INSERT'</div> + <div>           | 'DELETE'</div> + <div>           | 'UPDATE' ( 'OF' <a href="#trigger-column-list" title="trigger_column_list" shape="rect">trigger_column_list</a> )?</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#trigger-definition" title="trigger-definition">trigger-definition</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + trigger_column_list +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="139" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#column-name-list" xlink:title="column_name_list" shape="rect"> + <rect x="23" y="1" width="92" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">column_name_list</text></a><path class="line" d="m17 10 h2 m0 0 h4 m92 0 h4 m3 0 h-3"/> + <polygon points="129 10 137 6 137 14"/> + <polygon points="129 10 121 6 121 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#trigger-column-list" title="trigger_column_list" shape="rect">trigger_column_list</a></div> + <div>         ::= <a href="#column-name-list" title="column_name_list" shape="rect">column_name_list</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#trigger-event" title="trigger-event">trigger-event</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + triggered_action +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="563" height="70"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="43" y="22" width="26" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="34">FOR</text> + <rect x="77" y="22" width="32" height="18" class="terminal" rx="4"/> + <text class="terminal" x="81" y="34">EACH</text> + <rect x="137" y="22" width="32" height="18" class="terminal" rx="4"/> + <text class="terminal" x="141" y="34">ROW</text> + <rect x="137" y="50" width="62" height="18" class="terminal" rx="4"/> + <text class="terminal" x="141" y="62">STATEMENT</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#triggered-when-clause" xlink:title="triggered_when_clause" shape="rect"> + <rect x="267" y="22" width="116" height="18" class="nonterminal"/> + <text class="nonterminal" x="271" y="34">triggered_when_clause</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#triggered-sql-statement" xlink:title="triggered_SQL_statement" shape="rect"> + <rect x="411" y="1" width="128" height="18" class="nonterminal"/> + <text class="nonterminal" x="415" y="13">triggered_SQL_statement</text></a><path class="line" d="m17 10 h2 m20 0 h10 m0 0 h174 m-204 0 h20 m184 0 h20 m-224 0 q10 0 10 10 m204 0 q0 -10 10 -10 m-214 10 v1 m204 0 v-1 m-204 1 q0 10 10 10 m184 0 q10 0 10 -10 m-194 10 h4 m26 0 h4 m0 0 h4 m32 0 h4 m20 0 h4 m32 0 h4 m0 0 h30 m-90 0 h20 m70 0 h20 m-110 0 q10 0 10 10 m90 0 q0 -10 10 -10 m-100 10 v8 m90 0 v-8 m-90 8 q0 10 10 10 m70 0 q10 0 10 -10 m-80 10 h4 m62 0 h4 m60 -49 h10 m0 0 h114 m-144 0 h20 m124 0 h20 m-164 0 q10 0 10 10 m144 0 q0 -10 10 -10 m-154 10 v1 m144 0 v-1 m-144 1 q0 10 10 10 m124 0 q10 0 10 -10 m-134 10 h4 m116 0 h4 m20 -21 h4 m128 0 h4 m3 0 h-3"/> + <polygon points="553 10 561 6 561 14"/> + <polygon points="553 10 545 6 545 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#triggered-action" title="triggered_action" shape="rect">triggered_action</a></div> + <div>         ::= ( 'FOR' 'EACH' ( 'ROW' | 'STATEMENT' ) )? <a href="#triggered-when-clause" title="triggered_when_clause" shape="rect">triggered_when_clause</a>? <a href="#triggered-sql-statement" title="triggered_SQL_statement" shape="rect">triggered_SQL_statement</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#trigger-definition" title="trigger-definition">trigger-definition</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + triggered_when_clause +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="219" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="38" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">WHEN</text> + <rect x="69" y="1" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="73" y="13">(</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#search-condition" xlink:title="search_condition" shape="rect"> + <rect x="89" y="1" width="86" height="18" class="nonterminal"/> + <text class="nonterminal" x="93" y="13">search_condition</text></a><rect x="183" y="1" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="187" y="13">)</text> + <path class="line" d="m17 10 h2 m0 0 h4 m38 0 h4 m0 0 h4 m12 0 h4 m0 0 h4 m86 0 h4 m0 0 h4 m12 0 h4 m3 0 h-3"/> + <polygon points="209 10 217 6 217 14"/> + <polygon points="209 10 201 6 201 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#triggered-when-clause" title="triggered_when_clause" shape="rect">triggered_when_clause</a></div> + <div>         ::= 'WHEN' '(' <a href="#search-condition" title="search_condition" shape="rect">search_condition</a> ')'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#triggered-action" title="triggered-action">triggered-action</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + triggered_SQL_statement +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="409" height="63"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#sql-procedure-statement" xlink:title="SQL_procedure_statement" shape="rect"> + <rect x="43" y="1" width="134" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">SQL_procedure_statement</text></a><rect x="43" y="43" width="36" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="55">BEGIN</text> + <rect x="87" y="43" width="44" height="18" class="terminal" rx="4"/> + <text class="terminal" x="91" y="55">ATOMIC</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#sql-procedure-statement" xlink:title="SQL_procedure_statement" shape="rect"> + <rect x="159" y="43" width="134" height="18" class="nonterminal"/> + <text class="nonterminal" x="163" y="55">SQL_procedure_statement</text></a><rect x="301" y="43" width="10" height="18" class="terminal" rx="4"/> + <text class="terminal" x="305" y="55">;</text> + <rect x="339" y="43" width="26" height="18" class="terminal" rx="4"/> + <text class="terminal" x="343" y="55">END</text> + <path class="line" d="m17 10 h2 m20 0 h4 m134 0 h4 m0 0 h188 m-350 0 h20 m330 0 h20 m-370 0 q10 0 10 10 m350 0 q0 -10 10 -10 m-360 10 v22 m350 0 v-22 m-350 22 q0 10 10 10 m330 0 q10 0 10 -10 m-340 10 h4 m36 0 h4 m0 0 h4 m44 0 h4 m20 0 h4 m134 0 h4 m0 0 h4 m10 0 h4 m-180 0 l20 0 m-1 0 q-9 0 -9 -10 l0 -1 q0 -10 10 -10 m160 21 l20 0 m-20 0 q10 0 10 -10 l0 -1 q0 -10 -10 -10 m-160 0 h10 m0 0 h150 m20 21 h4 m26 0 h4 m23 -42 h-3"/> + <polygon points="399 10 407 6 407 14"/> + <polygon points="399 10 391 6 391 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#triggered-sql-statement" title="triggered_SQL_statement" shape="rect">triggered_SQL_statement</a></div> + <div>         ::= <a href="#sql-procedure-statement" title="SQL_procedure_statement" shape="rect">SQL_procedure_statement</a></div> + <div>           | 'BEGIN' 'ATOMIC' ( <a href="#sql-procedure-statement" title="SQL_procedure_statement" shape="rect">SQL_procedure_statement</a> ';' )+ 'END'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#triggered-action" title="triggered-action">triggered-action</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + transition_table_or_variable_list +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="221" height="33"> + <polygon points="9 22 1 18 1 26"/> + <polygon points="17 22 9 18 9 26"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#transition-table-or-variable" xlink:title="transition_table_or_variable" shape="rect"> + <rect x="43" y="13" width="134" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="25">transition_table_or_variable</text></a><path class="line" d="m17 22 h2 m20 0 h4 m134 0 h4 m-162 0 l20 0 m-1 0 q-9 0 -9 -10 l0 -1 q0 -10 10 -10 m142 21 l20 0 m-20 0 q10 0 10 -10 l0 -1 q0 -10 -10 -10 m-142 0 h10 m0 0 h132 m23 21 h-3"/> + <polygon points="211 22 219 18 219 26"/> + <polygon points="211 22 203 18 203 26"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#transition-table-or-variable-list" title="transition_table_or_variable_list" shape="rect">transition_table_or_variable_list</a></div> + <div>         ::= <a href="#transition-table-or-variable" title="transition_table_or_variable" shape="rect">transition_table_or_variable</a>+</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#trigger-definition" title="trigger-definition">trigger-definition</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + transition_table_or_variable +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="323" height="70"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="43" y="1" width="28" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="13">OLD</text> + <rect x="43" y="29" width="30" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="41">NEW</text> + <rect x="121" y="22" width="32" height="18" class="terminal" rx="4"/> + <text class="terminal" x="125" y="34">ROW</text> + <rect x="121" y="50" width="36" height="18" class="terminal" rx="4"/> + <text class="terminal" x="125" y="62">TABLE</text> + <rect x="205" y="22" width="20" height="18" class="terminal" rx="4"/> + <text class="terminal" x="209" y="34">AS</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#identifier" xlink:title="identifier" shape="rect"> + <rect x="253" y="1" width="46" height="18" class="nonterminal"/> + <text class="nonterminal" x="257" y="13">identifier</text></a><path class="line" d="m17 10 h2 m20 0 h4 m28 0 h4 m0 0 h2 m-58 0 h20 m38 0 h20 m-78 0 q10 0 10 10 m58 0 q0 -10 10 -10 m-68 10 v8 m58 0 v-8 m-58 8 q0 10 10 10 m38 0 q10 0 10 -10 m-48 10 h4 m30 0 h4 m40 -28 h10 m0 0 h34 m-64 0 h20 m44 0 h20 m-84 0 q10 0 10 10 m64 0 q0 -10 10 -10 m-74 10 v1 m64 0 v-1 m-64 1 q0 10 10 10 m44 0 q10 0 10 -10 m-54 10 h4 m32 0 h4 m0 0 h4 m-54 -10 v20 m64 0 v-20 m-64 20 v8 m64 0 v-8 m-64 8 q0 10 10 10 m44 0 q10 0 10 -10 m-54 10 h4 m36 0 h4 m40 -49 h10 m0 0 h18 m-48 0 h20 m28 0 h20 m-68 0 q10 0 10 10 m48 0 q0 -10 10 -10 m-58 10 v1 m48 0 v-1 m-48 1 q0 10 10 10 m28 0 q10 0 10 -10 m-38 10 h4 m20 0 h4 m20 -21 h4 m46 0 h4 m3 0 h-3"/> + <polygon points="313 10 321 6 321 14"/> + <polygon points="313 10 305 6 305 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#transition-table-or-variable" title="transition_table_or_variable" shape="rect">transition_table_or_variable</a></div> + <div>         ::= ( 'OLD' | 'NEW' ) ( 'ROW' | 'TABLE' )? 'AS'? <a href="#identifier" title="identifier" shape="rect">identifier</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#transition-table-or-variable-list" title="transition-table-or-variable-list">transition-table-or-variable-list</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + drop_trigger_statement +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="267" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="34" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">DROP</text> + <rect x="65" y="1" width="48" height="18" class="terminal" rx="4"/> + <text class="terminal" x="69" y="13">TRIGGER</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#schema-qualified-name" xlink:title="schema_qualified_name" shape="rect"> + <rect x="121" y="1" width="122" height="18" class="nonterminal"/> + <text class="nonterminal" x="125" y="13">schema_qualified_name</text></a><path class="line" d="m17 10 h2 m0 0 h4 m34 0 h4 m0 0 h4 m48 0 h4 m0 0 h4 m122 0 h4 m3 0 h-3"/> + <polygon points="257 10 265 6 265 14"/> + <polygon points="257 10 249 6 249 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#drop-trigger-statement" title="drop_trigger_statement" shape="rect">drop_trigger_statement</a></div> + <div>         ::= 'DROP' 'TRIGGER' <a href="#schema-qualified-name" title="schema_qualified_name" shape="rect">schema_qualified_name</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#sql-schema-manipulation-statement" title="sql-schema-manipulation-statement">sql-schema-manipulation-statement</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + user_defined_type_definition +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="259" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="42" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">CREATE</text> + <rect x="73" y="1" width="30" height="18" class="terminal" rx="4"/> + <text class="terminal" x="77" y="13">TYPE</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#user-defined-type-body" xlink:title="user_defined_type_body" shape="rect"> + <rect x="111" y="1" width="124" height="18" class="nonterminal"/> + <text class="nonterminal" x="115" y="13">user_defined_type_body</text></a><path class="line" d="m17 10 h2 m0 0 h4 m42 0 h4 m0 0 h4 m30 0 h4 m0 0 h4 m124 0 h4 m3 0 h-3"/> + <polygon points="249 10 257 6 257 14"/> + <polygon points="249 10 241 6 241 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#user-defined-type-definition" title="user_defined_type_definition" shape="rect">user_defined_type_definition</a></div> + <div>         ::= 'CREATE' 'TYPE' <a href="#user-defined-type-body" title="user_defined_type_body" shape="rect">user_defined_type_body</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#sql-schema-definition-statement" title="sql-schema-definition-statement">sql-schema-definition-statement</a></li><li><a href="#schema-element" title="schema-element">schema-element</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + user_defined_type_body +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="733" height="100"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#schema-resolved-user-defined-type-name" xlink:title="schema_resolved_user_defined_type_name" shape="rect"> + <rect x="23" y="1" width="216" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">schema_resolved_user_defined_type_name</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#subtype-clause" xlink:title="subtype_clause" shape="rect"> + <rect x="267" y="22" width="82" height="18" class="nonterminal"/> + <text class="nonterminal" x="271" y="34">subtype_clause</text></a><rect x="397" y="22" width="20" height="18" class="terminal" rx="4"/> + <text class="terminal" x="401" y="34">AS</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#representation" xlink:title="representation" shape="rect"> + <rect x="425" y="22" width="76" height="18" class="nonterminal"/> + <text class="nonterminal" x="429" y="34">representation</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#user-defined-type-option-list" xlink:title="user_defined_type_option_list" shape="rect"> + <rect x="549" y="22" width="146" height="18" class="nonterminal"/> + <text class="nonterminal" x="553" y="34">user_defined_type_option_list</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#method-specification-list" xlink:title="method_specification_list" shape="rect"> + <rect x="567" y="80" width="122" height="18" class="nonterminal"/> + <text class="nonterminal" x="571" y="92">method_specification_list</text></a><path class="line" d="m17 10 h2 m0 0 h4 m216 0 h4 m20 0 h10 m0 0 h80 m-110 0 h20 m90 0 h20 m-130 0 q10 0 10 10 m110 0 q0 -10 10 -10 m-120 10 v1 m110 0 v-1 m-110 1 q0 10 10 10 m90 0 q10 0 10 -10 m-100 10 h4 m82 0 h4 m40 -21 h10 m0 0 h102 m-132 0 h20 m112 0 h20 m-152 0 q10 0 10 10 m132 0 q0 -10 10 -10 m-142 10 v1 m132 0 v-1 m-132 1 q0 10 10 10 m112 0 q10 0 10 -10 m-122 10 h4 m20 0 h4 m0 0 h4 m76 0 h4 m40 -21 h10 m0 0 h144 m-174 0 h20 m154 0 h20 m-194 0 q10 0 10 10 m174 0 q0 -10 10 -10 m-184 10 v1 m174 0 v-1 m-174 1 q0 10 10 10 m154 0 q10 0 10 -10 m-164 10 h4 m146 0 h4 m22 -21 l2 0 m2 0 l2 0 m2 0 l2 0 m-200 58 l2 0 m2 0 l2 0 m2 0 l2 0 m22 0 h10 m0 0 h120 m-150 0 h20 m130 0 h20 m-170 0 q10 0 10 10 m150 0 q0 -10 10 -10 m-160 10 v1 m150 0 v-1 m-150 1 q0 10 10 10 m130 0 q10 0 10 -10 m-140 10 h4 m122 0 h4 m23 -21 h-3"/> + <polygon points="723 68 731 64 731 72"/> + <polygon points="723 68 715 64 715 72"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#user-defined-type-body" title="user_defined_type_body" shape="rect">user_defined_type_body</a></div> + <div>         ::= <a href="#schema-resolved-user-defined-type-name" title="schema_resolved_user_defined_type_name" shape="rect">schema_resolved_user_defined_type_name</a> <a href="#subtype-clause" title="subtype_clause" shape="rect">subtype_clause</a>? ( 'AS' <a href="#representation" title="representation" shape="rect">representation</a> )? <a href="#user-defined-type-option-list" title="user_defined_type_option_list" shape="rect">user_defined_type_option_list</a>? <a href="#method-specification-list" title="method_specification_list" shape="rect">method_specification_list</a>?</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#user-defined-type-definition" title="user-defined-type-definition">user-defined-type-definition</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + user_defined_type_option_list +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="217" height="33"> + <polygon points="9 22 1 18 1 26"/> + <polygon points="17 22 9 18 9 26"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#user-defined-type-option" xlink:title="user_defined_type_option" shape="rect"> + <rect x="43" y="13" width="130" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="25">user_defined_type_option</text></a><path class="line" d="m17 22 h2 m20 0 h4 m130 0 h4 m-158 0 l20 0 m-1 0 q-9 0 -9 -10 l0 -1 q0 -10 10 -10 m138 21 l20 0 m-20 0 q10 0 10 -10 l0 -1 q0 -10 -10 -10 m-138 0 h10 m0 0 h128 m23 21 h-3"/> + <polygon points="207 22 215 18 215 26"/> + <polygon points="207 22 199 18 199 26"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#user-defined-type-option-list" title="user_defined_type_option_list" shape="rect">user_defined_type_option_list</a></div> + <div>         ::= <a href="#user-defined-type-option" title="user_defined_type_option" shape="rect">user_defined_type_option</a>+</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#user-defined-type-body" title="user-defined-type-body">user-defined-type-body</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + user_defined_type_option +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="223" height="189"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#instantiable-clause" xlink:title="instantiable_clause" shape="rect"> + <rect x="43" y="1" width="94" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">instantiable_clause</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#finality" xlink:title="finality" shape="rect"> + <rect x="43" y="29" width="36" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">finality</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#reference-type-specification" xlink:title="reference_type_specification" shape="rect"> + <rect x="43" y="57" width="136" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="69">reference_type_specification</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#cast-to-ref" xlink:title="cast_to_ref" shape="rect"> + <rect x="43" y="85" width="60" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="97">cast_to_ref</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#cast-to-type" xlink:title="cast_to_type" shape="rect"> + <rect x="43" y="113" width="68" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="125">cast_to_type</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#cast-to-distinct" xlink:title="cast_to_distinct" shape="rect"> + <rect x="43" y="141" width="78" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="153">cast_to_distinct</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#cast-to-source" xlink:title="cast_to_source" shape="rect"> + <rect x="43" y="169" width="80" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="181">cast_to_source</text></a><path class="line" d="m17 10 h2 m20 0 h4 m94 0 h4 m0 0 h42 m-164 0 h20 m144 0 h20 m-184 0 q10 0 10 10 m164 0 q0 -10 10 -10 m-174 10 v8 m164 0 v-8 m-164 8 q0 10 10 10 m144 0 q10 0 10 -10 m-154 10 h4 m36 0 h4 m0 0 h100 m-154 -10 v20 m164 0 v-20 m-164 20 v8 m164 0 v-8 m-164 8 q0 10 10 10 m144 0 q10 0 10 -10 m-154 10 h4 m136 0 h4 m-154 -10 v20 m164 0 v-20 m-164 20 v8 m164 0 v-8 m-164 8 q0 10 10 10 m144 0 q10 0 10 -10 m-154 10 h4 m60 0 h4 m0 0 h76 m-154 -10 v20 m164 0 v-20 m-164 20 v8 m164 0 v-8 m-164 8 q0 10 10 10 m144 0 q10 0 10 -10 m-154 10 h4 m68 0 h4 m0 0 h68 m-154 -10 v20 m164 0 v-20 m-164 20 v8 m164 0 v-8 m-164 8 q0 10 10 10 m144 0 q10 0 10 -10 m-154 10 h4 m78 0 h4 m0 0 h58 m-154 -10 v20 m164 0 v-20 m-164 20 v8 m164 0 v-8 m-164 8 q0 10 10 10 m144 0 q10 0 10 -10 m-154 10 h4 m80 0 h4 m0 0 h56 m23 -168 h-3"/> + <polygon points="213 10 221 6 221 14"/> + <polygon points="213 10 205 6 205 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#user-defined-type-option" title="user_defined_type_option" shape="rect">user_defined_type_option</a></div> + <div>         ::= <a href="#instantiable-clause" title="instantiable_clause" shape="rect">instantiable_clause</a></div> + <div>           | <a href="#finality" title="finality" shape="rect">finality</a></div> + <div>           | <a href="#reference-type-specification" title="reference_type_specification" shape="rect">reference_type_specification</a></div> + <div>           | <a href="#cast-to-ref" title="cast_to_ref" shape="rect">cast_to_ref</a></div> + <div>           | <a href="#cast-to-type" title="cast_to_type" shape="rect">cast_to_type</a></div> + <div>           | <a href="#cast-to-distinct" title="cast_to_distinct" shape="rect">cast_to_distinct</a></div> + <div>           | <a href="#cast-to-source" title="cast_to_source" shape="rect">cast_to_source</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#user-defined-type-option-list" title="user-defined-type-option-list">user-defined-type-option-list</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + subtype_clause +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="185" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="40" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">UNDER</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#supertype-name" xlink:title="supertype_name" shape="rect"> + <rect x="71" y="1" width="90" height="18" class="nonterminal"/> + <text class="nonterminal" x="75" y="13">supertype_name</text></a><path class="line" d="m17 10 h2 m0 0 h4 m40 0 h4 m0 0 h4 m90 0 h4 m3 0 h-3"/> + <polygon points="175 10 183 6 183 14"/> + <polygon points="175 10 167 6 167 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#subtype-clause" title="subtype_clause" shape="rect">subtype_clause</a></div> + <div>         ::= 'UNDER' <a href="#supertype-name" title="supertype_name" shape="rect">supertype_name</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#user-defined-type-body" title="user-defined-type-body">user-defined-type-body</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + supertype_name +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="247" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#path-resolved-user-defined-type-name" xlink:title="path_resolved_user_defined_type_name" shape="rect"> + <rect x="23" y="1" width="200" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">path_resolved_user_defined_type_name</text></a><path class="line" d="m17 10 h2 m0 0 h4 m200 0 h4 m3 0 h-3"/> + <polygon points="237 10 245 6 245 14"/> + <polygon points="237 10 229 6 229 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#supertype-name" title="supertype_name" shape="rect">supertype_name</a></div> + <div>         ::= <a href="#path-resolved-user-defined-type-name" title="path_resolved_user_defined_type_name" shape="rect">path_resolved_user_defined_type_name</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#subtype-clause" title="subtype-clause">subtype-clause</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + representation +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="171" height="77"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#predefined-type" xlink:title="predefined_type" shape="rect"> + <rect x="43" y="1" width="84" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">predefined_type</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#data-type" xlink:title="data_type" shape="rect"> + <rect x="43" y="29" width="56" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">data_type</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#member-list" xlink:title="member_list" shape="rect"> + <rect x="43" y="57" width="66" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="69">member_list</text></a><path class="line" d="m17 10 h2 m20 0 h4 m84 0 h4 m-112 0 h20 m92 0 h20 m-132 0 q10 0 10 10 m112 0 q0 -10 10 -10 m-122 10 v8 m112 0 v-8 m-112 8 q0 10 10 10 m92 0 q10 0 10 -10 m-102 10 h4 m56 0 h4 m0 0 h28 m-102 -10 v20 m112 0 v-20 m-112 20 v8 m112 0 v-8 m-112 8 q0 10 10 10 m92 0 q10 0 10 -10 m-102 10 h4 m66 0 h4 m0 0 h18 m23 -56 h-3"/> + <polygon points="161 10 169 6 169 14"/> + <polygon points="161 10 153 6 153 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#representation" title="representation" shape="rect">representation</a></div> + <div>         ::= <a href="#predefined-type" title="predefined_type" shape="rect">predefined_type</a></div> + <div>           | <a href="#data-type" title="data_type" shape="rect">data_type</a></div> + <div>           | <a href="#member-list" title="member_list" shape="rect">member_list</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#user-defined-type-body" title="user-defined-type-body">user-defined-type-body</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + member_list +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="177" height="49"> + <polygon points="9 38 1 34 1 42"/> + <polygon points="17 38 9 34 9 42"/> + <rect x="23" y="29" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="41">(</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#member" xlink:title="member" shape="rect"> + <rect x="63" y="29" width="50" height="18" class="nonterminal"/> + <text class="nonterminal" x="67" y="41">member</text></a><rect x="63" y="1" width="8" height="18" class="terminal" rx="4"/> + <text class="terminal" x="67" y="13">,</text> + <rect x="141" y="29" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="145" y="41">)</text> + <path class="line" d="m17 38 h2 m0 0 h4 m12 0 h4 m20 0 h4 m50 0 h4 m-78 0 l20 0 m-1 0 q-9 0 -9 -10 l0 -8 q0 -10 10 -10 m58 28 l20 0 m-20 0 q10 0 10 -10 l0 -8 q0 -10 -10 -10 m-58 0 h4 m8 0 h4 m0 0 h42 m20 28 h4 m12 0 h4 m3 0 h-3"/> + <polygon points="167 38 175 34 175 42"/> + <polygon points="167 38 159 34 159 42"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#member-list" title="member_list" shape="rect">member_list</a></div> + <div>         ::= '(' <a href="#member" title="member" shape="rect">member</a> ( ',' <a href="#member" title="member" shape="rect">member</a> )* ')'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#representation" title="representation">representation</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + member +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="139" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#attribute-definition" xlink:title="attribute_definition" shape="rect"> + <rect x="23" y="1" width="92" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">attribute_definition</text></a><path class="line" d="m17 10 h2 m0 0 h4 m92 0 h4 m3 0 h-3"/> + <polygon points="129 10 137 6 137 14"/> + <polygon points="129 10 121 6 121 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#member" title="member" shape="rect">member</a>   ::= <a href="#attribute-definition" title="attribute_definition" shape="rect">attribute_definition</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#member-list" title="member-list">member-list</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + instantiable_clause +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="197" height="42"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="43" y="22" width="28" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="34">NOT</text> + <rect x="99" y="1" width="74" height="18" class="terminal" rx="4"/> + <text class="terminal" x="103" y="13">INSTANTIABLE</text> + <path class="line" d="m17 10 h2 m20 0 h10 m0 0 h26 m-56 0 h20 m36 0 h20 m-76 0 q10 0 10 10 m56 0 q0 -10 10 -10 m-66 10 v1 m56 0 v-1 m-56 1 q0 10 10 10 m36 0 q10 0 10 -10 m-46 10 h4 m28 0 h4 m20 -21 h4 m74 0 h4 m3 0 h-3"/> + <polygon points="187 10 195 6 195 14"/> + <polygon points="187 10 179 6 179 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#instantiable-clause" title="instantiable_clause" shape="rect">instantiable_clause</a></div> + <div>         ::= 'NOT'? 'INSTANTIABLE'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#user-defined-type-option" title="user-defined-type-option">user-defined-type-option</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + finality +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="157" height="42"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="43" y="22" width="28" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="34">NOT</text> + <rect x="99" y="1" width="34" height="18" class="terminal" rx="4"/> + <text class="terminal" x="103" y="13">FINAL</text> + <path class="line" d="m17 10 h2 m20 0 h10 m0 0 h26 m-56 0 h20 m36 0 h20 m-76 0 q10 0 10 10 m56 0 q0 -10 10 -10 m-66 10 v1 m56 0 v-1 m-56 1 q0 10 10 10 m36 0 q10 0 10 -10 m-46 10 h4 m28 0 h4 m20 -21 h4 m34 0 h4 m3 0 h-3"/> + <polygon points="147 10 155 6 155 14"/> + <polygon points="147 10 139 6 139 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#finality" title="finality" shape="rect">finality</a> ::= 'NOT'? 'FINAL'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#user-defined-type-option" title="user-defined-type-option">user-defined-type-option</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + reference_type_specification +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="257" height="77"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#user-defined-representation" xlink:title="user_defined_representation" shape="rect"> + <rect x="43" y="1" width="142" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">user_defined_representation</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#derived-representation" xlink:title="derived_representation" shape="rect"> + <rect x="43" y="29" width="116" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">derived_representation</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#system-generated-representation" xlink:title="system_generated_representation" shape="rect"> + <rect x="43" y="57" width="170" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="69">system_generated_representation</text></a><path class="line" d="m17 10 h2 m20 0 h4 m142 0 h4 m0 0 h28 m-198 0 h20 m178 0 h20 m-218 0 q10 0 10 10 m198 0 q0 -10 10 -10 m-208 10 v8 m198 0 v-8 m-198 8 q0 10 10 10 m178 0 q10 0 10 -10 m-188 10 h4 m116 0 h4 m0 0 h54 m-188 -10 v20 m198 0 v-20 m-198 20 v8 m198 0 v-8 m-198 8 q0 10 10 10 m178 0 q10 0 10 -10 m-188 10 h4 m170 0 h4 m23 -56 h-3"/> + <polygon points="247 10 255 6 255 14"/> + <polygon points="247 10 239 6 239 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#reference-type-specification" title="reference_type_specification" shape="rect">reference_type_specification</a></div> + <div>         ::= <a href="#user-defined-representation" title="user_defined_representation" shape="rect">user_defined_representation</a></div> + <div>           | <a href="#derived-representation" title="derived_representation" shape="rect">derived_representation</a></div> + <div>           | <a href="#system-generated-representation" title="system_generated_representation" shape="rect">system_generated_representation</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#user-defined-type-option" title="user-defined-type-option">user-defined-type-option</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + user_defined_representation +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="209" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="24" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">REF</text> + <rect x="55" y="1" width="38" height="18" class="terminal" rx="4"/> + <text class="terminal" x="59" y="13">USING</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#predefined-type" xlink:title="predefined_type" shape="rect"> + <rect x="101" y="1" width="84" height="18" class="nonterminal"/> + <text class="nonterminal" x="105" y="13">predefined_type</text></a><path class="line" d="m17 10 h2 m0 0 h4 m24 0 h4 m0 0 h4 m38 0 h4 m0 0 h4 m84 0 h4 m3 0 h-3"/> + <polygon points="199 10 207 6 207 14"/> + <polygon points="199 10 191 6 191 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#user-defined-representation" title="user_defined_representation" shape="rect">user_defined_representation</a></div> + <div>         ::= 'REF' 'USING' <a href="#predefined-type" title="predefined_type" shape="rect">predefined_type</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#reference-type-specification" title="reference-type-specification">reference-type-specification</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + derived_representation +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="205" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="24" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">REF</text> + <rect x="55" y="1" width="36" height="18" class="terminal" rx="4"/> + <text class="terminal" x="59" y="13">FROM</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#list-of-attributes" xlink:title="list_of_attributes" shape="rect"> + <rect x="99" y="1" width="82" height="18" class="nonterminal"/> + <text class="nonterminal" x="103" y="13">list_of_attributes</text></a><path class="line" d="m17 10 h2 m0 0 h4 m24 0 h4 m0 0 h4 m36 0 h4 m0 0 h4 m82 0 h4 m3 0 h-3"/> + <polygon points="195 10 203 6 203 14"/> + <polygon points="195 10 187 6 187 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#derived-representation" title="derived_representation" shape="rect">derived_representation</a></div> + <div>         ::= 'REF' 'FROM' <a href="#list-of-attributes" title="list_of_attributes" shape="rect">list_of_attributes</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#reference-type-specification" title="reference-type-specification">reference-type-specification</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + system_generated_representation +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="219" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="24" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">REF</text> + <rect x="55" y="1" width="18" height="18" class="terminal" rx="4"/> + <text class="terminal" x="59" y="13">IS</text> + <rect x="81" y="1" width="44" height="18" class="terminal" rx="4"/> + <text class="terminal" x="85" y="13">SYSTEM</text> + <rect x="133" y="1" width="62" height="18" class="terminal" rx="4"/> + <text class="terminal" x="137" y="13">GENERATED</text> + <path class="line" d="m17 10 h2 m0 0 h4 m24 0 h4 m0 0 h4 m18 0 h4 m0 0 h4 m44 0 h4 m0 0 h4 m62 0 h4 m3 0 h-3"/> + <polygon points="209 10 217 6 217 14"/> + <polygon points="209 10 201 6 201 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#system-generated-representation" title="system_generated_representation" shape="rect">system_generated_representation</a></div> + <div>         ::= 'REF' 'IS' 'SYSTEM' 'GENERATED'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#reference-type-specification" title="reference-type-specification">reference-type-specification</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + cast_to_ref +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="329" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="32" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">CAST</text> + <rect x="63" y="1" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="67" y="13">(</text> + <rect x="83" y="1" width="46" height="18" class="terminal" rx="4"/> + <text class="terminal" x="87" y="13">SOURCE</text> + <rect x="137" y="1" width="20" height="18" class="terminal" rx="4"/> + <text class="terminal" x="141" y="13">AS</text> + <rect x="165" y="1" width="24" height="18" class="terminal" rx="4"/> + <text class="terminal" x="169" y="13">REF</text> + <rect x="197" y="1" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="201" y="13">)</text> + <rect x="217" y="1" width="34" height="18" class="terminal" rx="4"/> + <text class="terminal" x="221" y="13">WITH</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#identifier" xlink:title="identifier" shape="rect"> + <rect x="259" y="1" width="46" height="18" class="nonterminal"/> + <text class="nonterminal" x="263" y="13">identifier</text></a><path class="line" d="m17 10 h2 m0 0 h4 m32 0 h4 m0 0 h4 m12 0 h4 m0 0 h4 m46 0 h4 m0 0 h4 m20 0 h4 m0 0 h4 m24 0 h4 m0 0 h4 m12 0 h4 m0 0 h4 m34 0 h4 m0 0 h4 m46 0 h4 m3 0 h-3"/> + <polygon points="319 10 327 6 327 14"/> + <polygon points="319 10 311 6 311 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#cast-to-ref" title="cast_to_ref" shape="rect">cast_to_ref</a></div> + <div>         ::= 'CAST' '(' 'SOURCE' 'AS' 'REF' ')' 'WITH' <a href="#identifier" title="identifier" shape="rect">identifier</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#user-defined-type-option" title="user-defined-type-option">user-defined-type-option</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + cast_to_type +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="329" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="32" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">CAST</text> + <rect x="63" y="1" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="67" y="13">(</text> + <rect x="83" y="1" width="24" height="18" class="terminal" rx="4"/> + <text class="terminal" x="87" y="13">REF</text> + <rect x="115" y="1" width="20" height="18" class="terminal" rx="4"/> + <text class="terminal" x="119" y="13">AS</text> + <rect x="143" y="1" width="46" height="18" class="terminal" rx="4"/> + <text class="terminal" x="147" y="13">SOURCE</text> + <rect x="197" y="1" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="201" y="13">)</text> + <rect x="217" y="1" width="34" height="18" class="terminal" rx="4"/> + <text class="terminal" x="221" y="13">WITH</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#identifier" xlink:title="identifier" shape="rect"> + <rect x="259" y="1" width="46" height="18" class="nonterminal"/> + <text class="nonterminal" x="263" y="13">identifier</text></a><path class="line" d="m17 10 h2 m0 0 h4 m32 0 h4 m0 0 h4 m12 0 h4 m0 0 h4 m24 0 h4 m0 0 h4 m20 0 h4 m0 0 h4 m46 0 h4 m0 0 h4 m12 0 h4 m0 0 h4 m34 0 h4 m0 0 h4 m46 0 h4 m3 0 h-3"/> + <polygon points="319 10 327 6 327 14"/> + <polygon points="319 10 311 6 311 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#cast-to-type" title="cast_to_type" shape="rect">cast_to_type</a></div> + <div>         ::= 'CAST' '(' 'REF' 'AS' 'SOURCE' ')' 'WITH' <a href="#identifier" title="identifier" shape="rect">identifier</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#user-defined-type-option" title="user-defined-type-option">user-defined-type-option</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + list_of_attributes +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="173" height="49"> + <polygon points="9 38 1 34 1 42"/> + <polygon points="17 38 9 34 9 42"/> + <rect x="23" y="29" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="41">(</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#identifier" xlink:title="identifier" shape="rect"> + <rect x="63" y="29" width="46" height="18" class="nonterminal"/> + <text class="nonterminal" x="67" y="41">identifier</text></a><rect x="63" y="1" width="8" height="18" class="terminal" rx="4"/> + <text class="terminal" x="67" y="13">,</text> + <rect x="137" y="29" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="141" y="41">)</text> + <path class="line" d="m17 38 h2 m0 0 h4 m12 0 h4 m20 0 h4 m46 0 h4 m-74 0 l20 0 m-1 0 q-9 0 -9 -10 l0 -8 q0 -10 10 -10 m54 28 l20 0 m-20 0 q10 0 10 -10 l0 -8 q0 -10 -10 -10 m-54 0 h4 m8 0 h4 m0 0 h38 m20 28 h4 m12 0 h4 m3 0 h-3"/> + <polygon points="163 38 171 34 171 42"/> + <polygon points="163 38 155 34 155 42"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#list-of-attributes" title="list_of_attributes" shape="rect">list_of_attributes</a></div> + <div>         ::= '(' <a href="#identifier" title="identifier" shape="rect">identifier</a> ( ',' <a href="#identifier" title="identifier" shape="rect">identifier</a> )* ')'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#derived-representation" title="derived-representation">derived-representation</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + cast_to_distinct +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="355" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="32" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">CAST</text> + <rect x="63" y="1" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="67" y="13">(</text> + <rect x="83" y="1" width="46" height="18" class="terminal" rx="4"/> + <text class="terminal" x="87" y="13">SOURCE</text> + <rect x="137" y="1" width="20" height="18" class="terminal" rx="4"/> + <text class="terminal" x="141" y="13">AS</text> + <rect x="165" y="1" width="50" height="18" class="terminal" rx="4"/> + <text class="terminal" x="169" y="13">DISTINCT</text> + <rect x="223" y="1" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="227" y="13">)</text> + <rect x="243" y="1" width="34" height="18" class="terminal" rx="4"/> + <text class="terminal" x="247" y="13">WITH</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#identifier" xlink:title="identifier" shape="rect"> + <rect x="285" y="1" width="46" height="18" class="nonterminal"/> + <text class="nonterminal" x="289" y="13">identifier</text></a><path class="line" d="m17 10 h2 m0 0 h4 m32 0 h4 m0 0 h4 m12 0 h4 m0 0 h4 m46 0 h4 m0 0 h4 m20 0 h4 m0 0 h4 m50 0 h4 m0 0 h4 m12 0 h4 m0 0 h4 m34 0 h4 m0 0 h4 m46 0 h4 m3 0 h-3"/> + <polygon points="345 10 353 6 353 14"/> + <polygon points="345 10 337 6 337 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#cast-to-distinct" title="cast_to_distinct" shape="rect">cast_to_distinct</a></div> + <div>         ::= 'CAST' '(' 'SOURCE' 'AS' 'DISTINCT' ')' 'WITH' <a href="#identifier" title="identifier" shape="rect">identifier</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#user-defined-type-option" title="user-defined-type-option">user-defined-type-option</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + cast_to_source +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="355" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="32" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">CAST</text> + <rect x="63" y="1" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="67" y="13">(</text> + <rect x="83" y="1" width="50" height="18" class="terminal" rx="4"/> + <text class="terminal" x="87" y="13">DISTINCT</text> + <rect x="141" y="1" width="20" height="18" class="terminal" rx="4"/> + <text class="terminal" x="145" y="13">AS</text> + <rect x="169" y="1" width="46" height="18" class="terminal" rx="4"/> + <text class="terminal" x="173" y="13">SOURCE</text> + <rect x="223" y="1" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="227" y="13">)</text> + <rect x="243" y="1" width="34" height="18" class="terminal" rx="4"/> + <text class="terminal" x="247" y="13">WITH</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#identifier" xlink:title="identifier" shape="rect"> + <rect x="285" y="1" width="46" height="18" class="nonterminal"/> + <text class="nonterminal" x="289" y="13">identifier</text></a><path class="line" d="m17 10 h2 m0 0 h4 m32 0 h4 m0 0 h4 m12 0 h4 m0 0 h4 m50 0 h4 m0 0 h4 m20 0 h4 m0 0 h4 m46 0 h4 m0 0 h4 m12 0 h4 m0 0 h4 m34 0 h4 m0 0 h4 m46 0 h4 m3 0 h-3"/> + <polygon points="345 10 353 6 353 14"/> + <polygon points="345 10 337 6 337 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#cast-to-source" title="cast_to_source" shape="rect">cast_to_source</a></div> + <div>         ::= 'CAST' '(' 'DISTINCT' 'AS' 'SOURCE' ')' 'WITH' <a href="#identifier" title="identifier" shape="rect">identifier</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#user-defined-type-option" title="user-defined-type-option">user-defined-type-option</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + method_specification_list +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="191" height="49"> + <polygon points="9 38 1 34 1 42"/> + <polygon points="17 38 9 34 9 42"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#method-specification" xlink:title="method_specification" shape="rect"> + <rect x="43" y="29" width="104" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">method_specification</text></a><rect x="43" y="1" width="8" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="13">,</text> + <path class="line" d="m17 38 h2 m20 0 h4 m104 0 h4 m-132 0 l20 0 m-1 0 q-9 0 -9 -10 l0 -8 q0 -10 10 -10 m112 28 l20 0 m-20 0 q10 0 10 -10 l0 -8 q0 -10 -10 -10 m-112 0 h4 m8 0 h4 m0 0 h96 m23 28 h-3"/> + <polygon points="181 38 189 34 189 42"/> + <polygon points="181 38 173 34 173 42"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#method-specification-list" title="method_specification_list" shape="rect">method_specification_list</a></div> + <div>         ::= <a href="#method-specification" title="method_specification" shape="rect">method_specification</a> ( ',' <a href="#method-specification" title="method_specification" shape="rect">method_specification</a> )*</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#user-defined-type-body" title="user-defined-type-body">user-defined-type-body</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + method_specification +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="241" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#original-method-specification" xlink:title="original_method_specification" shape="rect"> + <rect x="43" y="1" width="142" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">original_method_specification</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#overriding-method-specification" xlink:title="overriding_method_specification" shape="rect"> + <rect x="43" y="29" width="154" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">overriding_method_specification</text></a><path class="line" d="m17 10 h2 m20 0 h4 m142 0 h4 m0 0 h12 m-182 0 h20 m162 0 h20 m-202 0 q10 0 10 10 m182 0 q0 -10 10 -10 m-192 10 v8 m182 0 v-8 m-182 8 q0 10 10 10 m162 0 q10 0 10 -10 m-172 10 h4 m154 0 h4 m23 -28 h-3"/> + <polygon points="231 10 239 6 239 14"/> + <polygon points="231 10 223 6 223 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#method-specification" title="method_specification" shape="rect">method_specification</a></div> + <div>         ::= <a href="#original-method-specification" title="original_method_specification" shape="rect">original_method_specification</a></div> + <div>           | <a href="#overriding-method-specification" title="overriding_method_specification" shape="rect">overriding_method_specification</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#method-specification-list" title="method-specification-list">method-specification-list</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + original_method_specification +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="665" height="42"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#partial-method-specification" xlink:title="partial_method_specification" shape="rect"> + <rect x="23" y="1" width="138" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">partial_method_specification</text></a><rect x="189" y="22" width="28" height="18" class="terminal" rx="4"/> + <text class="terminal" x="193" y="34">SELF</text> + <rect x="225" y="22" width="20" height="18" class="terminal" rx="4"/> + <text class="terminal" x="229" y="34">AS</text> + <rect x="253" y="22" width="42" height="18" class="terminal" rx="4"/> + <text class="terminal" x="257" y="34">RESULT</text> + <rect x="343" y="22" width="28" height="18" class="terminal" rx="4"/> + <text class="terminal" x="347" y="34">SELF</text> + <rect x="379" y="22" width="20" height="18" class="terminal" rx="4"/> + <text class="terminal" x="383" y="34">AS</text> + <rect x="407" y="22" width="52" height="18" class="terminal" rx="4"/> + <text class="terminal" x="411" y="34">LOCATOR</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#method-characteristics" xlink:title="method_characteristics" shape="rect"> + <rect x="507" y="22" width="114" height="18" class="nonterminal"/> + <text class="nonterminal" x="511" y="34">method_characteristics</text></a><path class="line" d="m17 10 h2 m0 0 h4 m138 0 h4 m20 0 h10 m0 0 h104 m-134 0 h20 m114 0 h20 m-154 0 q10 0 10 10 m134 0 q0 -10 10 -10 m-144 10 v1 m134 0 v-1 m-134 1 q0 10 10 10 m114 0 q10 0 10 -10 m-124 10 h4 m28 0 h4 m0 0 h4 m20 0 h4 m0 0 h4 m42 0 h4 m40 -21 h10 m0 0 h114 m-144 0 h20 m124 0 h20 m-164 0 q10 0 10 10 m144 0 q0 -10 10 -10 m-154 10 v1 m144 0 v-1 m-144 1 q0 10 10 10 m124 0 q10 0 10 -10 m-134 10 h4 m28 0 h4 m0 0 h4 m20 0 h4 m0 0 h4 m52 0 h4 m40 -21 h10 m0 0 h112 m-142 0 h20 m122 0 h20 m-162 0 q10 0 10 10 m142 0 q0 -10 10 -10 m-152 10 v1 m142 0 v-1 m-142 1 q0 10 10 10 m122 0 q10 0 10 -10 m-132 10 h4 m114 0 h4 m23 -21 h-3"/> + <polygon points="655 10 663 6 663 14"/> + <polygon points="655 10 647 6 647 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#original-method-specification" title="original_method_specification" shape="rect">original_method_specification</a></div> + <div>         ::= <a href="#partial-method-specification" title="partial_method_specification" shape="rect">partial_method_specification</a> ( 'SELF' 'AS' 'RESULT' )? ( 'SELF' 'AS' 'LOCATOR' )? <a href="#method-characteristics" title="method_characteristics" shape="rect">method_characteristics</a>?</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#add-original-method-specification" title="add-original-method-specification">add-original-method-specification</a></li><li><a href="#method-specification" title="method-specification">method-specification</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + overriding_method_specification +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="261" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="68" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">OVERRIDING</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#partial-method-specification" xlink:title="partial_method_specification" shape="rect"> + <rect x="99" y="1" width="138" height="18" class="nonterminal"/> + <text class="nonterminal" x="103" y="13">partial_method_specification</text></a><path class="line" d="m17 10 h2 m0 0 h4 m68 0 h4 m0 0 h4 m138 0 h4 m3 0 h-3"/> + <polygon points="251 10 259 6 259 14"/> + <polygon points="251 10 243 6 243 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#overriding-method-specification" title="overriding_method_specification" shape="rect">overriding_method_specification</a></div> + <div>         ::= 'OVERRIDING' <a href="#partial-method-specification" title="partial_method_specification" shape="rect">partial_method_specification</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#add-overriding-method-specification" title="add-overriding-method-specification">add-overriding-method-specification</a></li><li><a href="#method-specification" title="method-specification">method-specification</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + partial_method_specification +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="707" height="98"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="43" y="22" width="54" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="34">INSTANCE</text> + <rect x="43" y="50" width="40" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="62">STATIC</text> + <rect x="43" y="78" width="78" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="90">CONSTRUCTOR</text> + <rect x="149" y="1" width="48" height="18" class="terminal" rx="4"/> + <text class="terminal" x="153" y="13">METHOD</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#identifier" xlink:title="identifier" shape="rect"> + <rect x="205" y="1" width="46" height="18" class="nonterminal"/> + <text class="nonterminal" x="209" y="13">identifier</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#sql-parameter-declaration-list" xlink:title="SQL_parameter_declaration_list" shape="rect"> + <rect x="259" y="1" width="154" height="18" class="nonterminal"/> + <text class="nonterminal" x="263" y="13">SQL_parameter_declaration_list</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#returns-clause" xlink:title="returns_clause" shape="rect"> + <rect x="421" y="1" width="76" height="18" class="nonterminal"/> + <text class="nonterminal" x="425" y="13">returns_clause</text></a><rect x="525" y="22" width="48" height="18" class="terminal" rx="4"/> + <text class="terminal" x="529" y="34">SPECIFIC</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#specific-identifier" xlink:title="specific_identifier" shape="rect"> + <rect x="581" y="22" width="82" height="18" class="nonterminal"/> + <text class="nonterminal" x="585" y="34">specific_identifier</text></a><path class="line" d="m17 10 h2 m20 0 h10 m0 0 h76 m-106 0 h20 m86 0 h20 m-126 0 q10 0 10 10 m106 0 q0 -10 10 -10 m-116 10 v1 m106 0 v-1 m-106 1 q0 10 10 10 m86 0 q10 0 10 -10 m-96 10 h4 m54 0 h4 m0 0 h24 m-96 -10 v20 m106 0 v-20 m-106 20 v8 m106 0 v-8 m-106 8 q0 10 10 10 m86 0 q10 0 10 -10 m-96 10 h4 m40 0 h4 m0 0 h38 m-96 -10 v20 m106 0 v-20 m-106 20 v8 m106 0 v-8 m-106 8 q0 10 10 10 m86 0 q10 0 10 -10 m-96 10 h4 m78 0 h4 m20 -77 h4 m48 0 h4 m0 0 h4 m46 0 h4 m0 0 h4 m154 0 h4 m0 0 h4 m76 0 h4 m20 0 h10 m0 0 h136 m-166 0 h20 m146 0 h20 m-186 0 q10 0 10 10 m166 0 q0 -10 10 -10 m-176 10 v1 m166 0 v-1 m-166 1 q0 10 10 10 m146 0 q10 0 10 -10 m-156 10 h4 m48 0 h4 m0 0 h4 m82 0 h4 m23 -21 h-3"/> + <polygon points="697 10 705 6 705 14"/> + <polygon points="697 10 689 6 689 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#partial-method-specification" title="partial_method_specification" shape="rect">partial_method_specification</a></div> + <div>         ::= ( 'INSTANCE' | 'STATIC' | 'CONSTRUCTOR' )? 'METHOD' <a href="#identifier" title="identifier" shape="rect">identifier</a> <a href="#sql-parameter-declaration-list" title="SQL_parameter_declaration_list" shape="rect">SQL_parameter_declaration_list</a> <a href="#returns-clause" title="returns_clause" shape="rect">returns_clause</a> ( 'SPECIFIC' <a href="#specific-identifier" title="specific_identifier" shape="rect">specific_identifier</a> )?</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#original-method-specification" title="original-method-specification">original-method-specification</a></li><li><a href="#overriding-method-specification" title="overriding-method-specification">overriding-method-specification</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + specific_identifier +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="237" height="42"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#schema-name" xlink:title="schema_name" shape="rect"> + <rect x="43" y="22" width="80" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="34">schema_name</text></a><rect x="131" y="22" width="8" height="18" class="terminal" rx="4"/> + <text class="terminal" x="135" y="34">.</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#identifier" xlink:title="identifier" shape="rect"> + <rect x="167" y="1" width="46" height="18" class="nonterminal"/> + <text class="nonterminal" x="171" y="13">identifier</text></a><path class="line" d="m17 10 h2 m20 0 h10 m0 0 h94 m-124 0 h20 m104 0 h20 m-144 0 q10 0 10 10 m124 0 q0 -10 10 -10 m-134 10 v1 m124 0 v-1 m-124 1 q0 10 10 10 m104 0 q10 0 10 -10 m-114 10 h4 m80 0 h4 m0 0 h4 m8 0 h4 m20 -21 h4 m46 0 h4 m3 0 h-3"/> + <polygon points="227 10 235 6 235 14"/> + <polygon points="227 10 219 6 219 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#specific-identifier" title="specific_identifier" shape="rect">specific_identifier</a></div> + <div>         ::= ( <a href="#schema-name" title="schema_name" shape="rect">schema_name</a> '.' )? <a href="#identifier" title="identifier" shape="rect">identifier</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#method-specification-designator" title="method-specification-designator">method-specification-designator</a></li><li><a href="#partial-method-specification" title="partial-method-specification">partial-method-specification</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + method_characteristics +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="195" height="33"> + <polygon points="9 22 1 18 1 26"/> + <polygon points="17 22 9 18 9 26"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#method-characteristic" xlink:title="method_characteristic" shape="rect"> + <rect x="43" y="13" width="108" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="25">method_characteristic</text></a><path class="line" d="m17 22 h2 m20 0 h4 m108 0 h4 m-136 0 l20 0 m-1 0 q-9 0 -9 -10 l0 -1 q0 -10 10 -10 m116 21 l20 0 m-20 0 q10 0 10 -10 l0 -1 q0 -10 -10 -10 m-116 0 h10 m0 0 h106 m23 21 h-3"/> + <polygon points="185 22 193 18 193 26"/> + <polygon points="185 22 177 18 177 26"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#method-characteristics" title="method_characteristics" shape="rect">method_characteristics</a></div> + <div>         ::= <a href="#method-characteristic" title="method_characteristic" shape="rect">method_characteristic</a>+</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#original-method-specification" title="original-method-specification">original-method-specification</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + method_characteristic +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="225" height="133"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#language-clause" xlink:title="language_clause" shape="rect"> + <rect x="43" y="1" width="88" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">language_clause</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#parameter-style-clause" xlink:title="parameter_style_clause" shape="rect"> + <rect x="43" y="29" width="120" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">parameter_style_clause</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#deterministic-characteristic" xlink:title="deterministic_characteristic" shape="rect"> + <rect x="43" y="57" width="128" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="69">deterministic_characteristic</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#sql-data-access-indication" xlink:title="SQL_data_access_indication" shape="rect"> + <rect x="43" y="85" width="138" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="97">SQL_data_access_indication</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#null-call-clause" xlink:title="null_call_clause" shape="rect"> + <rect x="43" y="113" width="78" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="125">null_call_clause</text></a><path class="line" d="m17 10 h2 m20 0 h4 m88 0 h4 m0 0 h50 m-166 0 h20 m146 0 h20 m-186 0 q10 0 10 10 m166 0 q0 -10 10 -10 m-176 10 v8 m166 0 v-8 m-166 8 q0 10 10 10 m146 0 q10 0 10 -10 m-156 10 h4 m120 0 h4 m0 0 h18 m-156 -10 v20 m166 0 v-20 m-166 20 v8 m166 0 v-8 m-166 8 q0 10 10 10 m146 0 q10 0 10 -10 m-156 10 h4 m128 0 h4 m0 0 h10 m-156 -10 v20 m166 0 v-20 m-166 20 v8 m166 0 v-8 m-166 8 q0 10 10 10 m146 0 q10 0 10 -10 m-156 10 h4 m138 0 h4 m-156 -10 v20 m166 0 v-20 m-166 20 v8 m166 0 v-8 m-166 8 q0 10 10 10 m146 0 q10 0 10 -10 m-156 10 h4 m78 0 h4 m0 0 h60 m23 -112 h-3"/> + <polygon points="215 10 223 6 223 14"/> + <polygon points="215 10 207 6 207 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#method-characteristic" title="method_characteristic" shape="rect">method_characteristic</a></div> + <div>         ::= <a href="#language-clause" title="language_clause" shape="rect">language_clause</a></div> + <div>           | <a href="#parameter-style-clause" title="parameter_style_clause" shape="rect">parameter_style_clause</a></div> + <div>           | <a href="#deterministic-characteristic" title="deterministic_characteristic" shape="rect">deterministic_characteristic</a></div> + <div>           | <a href="#sql-data-access-indication" title="SQL_data_access_indication" shape="rect">SQL_data_access_indication</a></div> + <div>           | <a href="#null-call-clause" title="null_call_clause" shape="rect">null_call_clause</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#method-characteristics" title="method-characteristics">method-characteristics</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + attribute_definition +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="409" height="42"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#identifier" xlink:title="identifier" shape="rect"> + <rect x="23" y="1" width="46" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">identifier</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#data-type" xlink:title="data_type" shape="rect"> + <rect x="77" y="1" width="56" height="18" class="nonterminal"/> + <text class="nonterminal" x="81" y="13">data_type</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#attribute-default" xlink:title="attribute_default" shape="rect"> + <rect x="161" y="22" width="84" height="18" class="nonterminal"/> + <text class="nonterminal" x="165" y="34">attribute_default</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#collate-clause" xlink:title="collate_clause" shape="rect"> + <rect x="293" y="22" width="72" height="18" class="nonterminal"/> + <text class="nonterminal" x="297" y="34">collate_clause</text></a><path class="line" d="m17 10 h2 m0 0 h4 m46 0 h4 m0 0 h4 m56 0 h4 m20 0 h10 m0 0 h82 m-112 0 h20 m92 0 h20 m-132 0 q10 0 10 10 m112 0 q0 -10 10 -10 m-122 10 v1 m112 0 v-1 m-112 1 q0 10 10 10 m92 0 q10 0 10 -10 m-102 10 h4 m84 0 h4 m40 -21 h10 m0 0 h70 m-100 0 h20 m80 0 h20 m-120 0 q10 0 10 10 m100 0 q0 -10 10 -10 m-110 10 v1 m100 0 v-1 m-100 1 q0 10 10 10 m80 0 q10 0 10 -10 m-90 10 h4 m72 0 h4 m23 -21 h-3"/> + <polygon points="399 10 407 6 407 14"/> + <polygon points="399 10 391 6 391 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#attribute-definition" title="attribute_definition" shape="rect">attribute_definition</a></div> + <div>         ::= <a href="#identifier" title="identifier" shape="rect">identifier</a> <a href="#data-type" title="data_type" shape="rect">data_type</a> <a href="#attribute-default" title="attribute_default" shape="rect">attribute_default</a>? <a href="#collate-clause" title="collate_clause" shape="rect">collate_clause</a>?</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#add-attribute-definition" title="add-attribute-definition">add-attribute-definition</a></li><li><a href="#member" title="member">member</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + attribute_default +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="121" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#default-clause" xlink:title="default_clause" shape="rect"> + <rect x="23" y="1" width="74" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">default_clause</text></a><path class="line" d="m17 10 h2 m0 0 h4 m74 0 h4 m3 0 h-3"/> + <polygon points="111 10 119 6 119 14"/> + <polygon points="111 10 103 6 103 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#attribute-default" title="attribute_default" shape="rect">attribute_default</a></div> + <div>         ::= <a href="#default-clause" title="default_clause" shape="rect">default_clause</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#attribute-definition" title="attribute-definition">attribute-definition</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + alter_type_statement +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="441" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="36" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">ALTER</text> + <rect x="67" y="1" width="30" height="18" class="terminal" rx="4"/> + <text class="terminal" x="71" y="13">TYPE</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#schema-resolved-user-defined-type-name" xlink:title="schema_resolved_user_defined_type_name" shape="rect"> + <rect x="105" y="1" width="216" height="18" class="nonterminal"/> + <text class="nonterminal" x="109" y="13">schema_resolved_user_defined_type_name</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#alter-type-action" xlink:title="alter_type_action" shape="rect"> + <rect x="329" y="1" width="88" height="18" class="nonterminal"/> + <text class="nonterminal" x="333" y="13">alter_type_action</text></a><path class="line" d="m17 10 h2 m0 0 h4 m36 0 h4 m0 0 h4 m30 0 h4 m0 0 h4 m216 0 h4 m0 0 h4 m88 0 h4 m3 0 h-3"/> + <polygon points="431 10 439 6 439 14"/> + <polygon points="431 10 423 6 423 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#alter-type-statement" title="alter_type_statement" shape="rect">alter_type_statement</a></div> + <div>         ::= 'ALTER' 'TYPE' <a href="#schema-resolved-user-defined-type-name" title="schema_resolved_user_defined_type_name" shape="rect">schema_resolved_user_defined_type_name</a> <a href="#alter-type-action" title="alter_type_action" shape="rect">alter_type_action</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#sql-schema-manipulation-statement" title="sql-schema-manipulation-statement">sql-schema-manipulation-statement</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + alter_type_action +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="265" height="133"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#add-attribute-definition" xlink:title="add_attribute_definition" shape="rect"> + <rect x="43" y="1" width="116" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">add_attribute_definition</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#drop-attribute-definition" xlink:title="drop_attribute_definition" shape="rect"> + <rect x="43" y="29" width="120" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">drop_attribute_definition</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#add-original-method-specification" xlink:title="add_original_method_specification" shape="rect"> + <rect x="43" y="57" width="166" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="69">add_original_method_specification</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#add-overriding-method-specification" xlink:title="add_overriding_method_specification" shape="rect"> + <rect x="43" y="85" width="178" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="97">add_overriding_method_specification</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#drop-method-specification" xlink:title="drop_method_specification" shape="rect"> + <rect x="43" y="113" width="132" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="125">drop_method_specification</text></a><path class="line" d="m17 10 h2 m20 0 h4 m116 0 h4 m0 0 h62 m-206 0 h20 m186 0 h20 m-226 0 q10 0 10 10 m206 0 q0 -10 10 -10 m-216 10 v8 m206 0 v-8 m-206 8 q0 10 10 10 m186 0 q10 0 10 -10 m-196 10 h4 m120 0 h4 m0 0 h58 m-196 -10 v20 m206 0 v-20 m-206 20 v8 m206 0 v-8 m-206 8 q0 10 10 10 m186 0 q10 0 10 -10 m-196 10 h4 m166 0 h4 m0 0 h12 m-196 -10 v20 m206 0 v-20 m-206 20 v8 m206 0 v-8 m-206 8 q0 10 10 10 m186 0 q10 0 10 -10 m-196 10 h4 m178 0 h4 m-196 -10 v20 m206 0 v-20 m-206 20 v8 m206 0 v-8 m-206 8 q0 10 10 10 m186 0 q10 0 10 -10 m-196 10 h4 m132 0 h4 m0 0 h46 m23 -112 h-3"/> + <polygon points="255 10 263 6 263 14"/> + <polygon points="255 10 247 6 247 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#alter-type-action" title="alter_type_action" shape="rect">alter_type_action</a></div> + <div>         ::= <a href="#add-attribute-definition" title="add_attribute_definition" shape="rect">add_attribute_definition</a></div> + <div>           | <a href="#drop-attribute-definition" title="drop_attribute_definition" shape="rect">drop_attribute_definition</a></div> + <div>           | <a href="#add-original-method-specification" title="add_original_method_specification" shape="rect">add_original_method_specification</a></div> + <div>           | <a href="#add-overriding-method-specification" title="add_overriding_method_specification" shape="rect">add_overriding_method_specification</a></div> + <div>           | <a href="#drop-method-specification" title="drop_method_specification" shape="rect">drop_method_specification</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#alter-type-statement" title="alter-type-statement">alter-type-statement</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + add_attribute_definition +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="241" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="28" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">ADD</text> + <rect x="59" y="1" width="58" height="18" class="terminal" rx="4"/> + <text class="terminal" x="63" y="13">ATTRIBUTE</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#attribute-definition" xlink:title="attribute_definition" shape="rect"> + <rect x="125" y="1" width="92" height="18" class="nonterminal"/> + <text class="nonterminal" x="129" y="13">attribute_definition</text></a><path class="line" d="m17 10 h2 m0 0 h4 m28 0 h4 m0 0 h4 m58 0 h4 m0 0 h4 m92 0 h4 m3 0 h-3"/> + <polygon points="231 10 239 6 239 14"/> + <polygon points="231 10 223 6 223 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#add-attribute-definition" title="add_attribute_definition" shape="rect">add_attribute_definition</a></div> + <div>         ::= 'ADD' 'ATTRIBUTE' <a href="#attribute-definition" title="attribute_definition" shape="rect">attribute_definition</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#alter-type-action" title="alter-type-action">alter-type-action</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + drop_attribute_definition +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="261" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="34" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">DROP</text> + <rect x="65" y="1" width="58" height="18" class="terminal" rx="4"/> + <text class="terminal" x="69" y="13">ATTRIBUTE</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#identifier" xlink:title="identifier" shape="rect"> + <rect x="131" y="1" width="46" height="18" class="nonterminal"/> + <text class="nonterminal" x="135" y="13">identifier</text></a><rect x="185" y="1" width="52" height="18" class="terminal" rx="4"/> + <text class="terminal" x="189" y="13">RESTRICT</text> + <path class="line" d="m17 10 h2 m0 0 h4 m34 0 h4 m0 0 h4 m58 0 h4 m0 0 h4 m46 0 h4 m0 0 h4 m52 0 h4 m3 0 h-3"/> + <polygon points="251 10 259 6 259 14"/> + <polygon points="251 10 243 6 243 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#drop-attribute-definition" title="drop_attribute_definition" shape="rect">drop_attribute_definition</a></div> + <div>         ::= 'DROP' 'ATTRIBUTE' <a href="#identifier" title="identifier" shape="rect">identifier</a> 'RESTRICT'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#alter-type-action" title="alter-type-action">alter-type-action</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + add_original_method_specification +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="225" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="28" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">ADD</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#original-method-specification" xlink:title="original_method_specification" shape="rect"> + <rect x="59" y="1" width="142" height="18" class="nonterminal"/> + <text class="nonterminal" x="63" y="13">original_method_specification</text></a><path class="line" d="m17 10 h2 m0 0 h4 m28 0 h4 m0 0 h4 m142 0 h4 m3 0 h-3"/> + <polygon points="215 10 223 6 223 14"/> + <polygon points="215 10 207 6 207 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#add-original-method-specification" title="add_original_method_specification" shape="rect">add_original_method_specification</a></div> + <div>         ::= 'ADD' <a href="#original-method-specification" title="original_method_specification" shape="rect">original_method_specification</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#alter-type-action" title="alter-type-action">alter-type-action</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + add_overriding_method_specification +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="237" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="28" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">ADD</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#overriding-method-specification" xlink:title="overriding_method_specification" shape="rect"> + <rect x="59" y="1" width="154" height="18" class="nonterminal"/> + <text class="nonterminal" x="63" y="13">overriding_method_specification</text></a><path class="line" d="m17 10 h2 m0 0 h4 m28 0 h4 m0 0 h4 m154 0 h4 m3 0 h-3"/> + <polygon points="227 10 235 6 235 14"/> + <polygon points="227 10 219 6 219 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#add-overriding-method-specification" title="add_overriding_method_specification" shape="rect">add_overriding_method_specification</a></div> + <div>         ::= 'ADD' <a href="#overriding-method-specification" title="overriding_method_specification" shape="rect">overriding_method_specification</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#alter-type-action" title="alter-type-action">alter-type-action</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + drop_method_specification +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="345" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="34" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">DROP</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#specific-method-specification-designator" xlink:title="specific_method_specification_designator" shape="rect"> + <rect x="65" y="1" width="196" height="18" class="nonterminal"/> + <text class="nonterminal" x="69" y="13">specific_method_specification_designator</text></a><rect x="269" y="1" width="52" height="18" class="terminal" rx="4"/> + <text class="terminal" x="273" y="13">RESTRICT</text> + <path class="line" d="m17 10 h2 m0 0 h4 m34 0 h4 m0 0 h4 m196 0 h4 m0 0 h4 m52 0 h4 m3 0 h-3"/> + <polygon points="335 10 343 6 343 14"/> + <polygon points="335 10 327 6 327 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#drop-method-specification" title="drop_method_specification" shape="rect">drop_method_specification</a></div> + <div>         ::= 'DROP' <a href="#specific-method-specification-designator" title="specific_method_specification_designator" shape="rect">specific_method_specification_designator</a> 'RESTRICT'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#alter-type-action" title="alter-type-action">alter-type-action</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + specific_method_specification_designator +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="357" height="98"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="43" y="22" width="54" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="34">INSTANCE</text> + <rect x="43" y="50" width="40" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="62">STATIC</text> + <rect x="43" y="78" width="78" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="90">CONSTRUCTOR</text> + <rect x="149" y="1" width="48" height="18" class="terminal" rx="4"/> + <text class="terminal" x="153" y="13">METHOD</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#identifier" xlink:title="identifier" shape="rect"> + <rect x="205" y="1" width="46" height="18" class="nonterminal"/> + <text class="nonterminal" x="209" y="13">identifier</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#data-type-list" xlink:title="data_type_list" shape="rect"> + <rect x="259" y="1" width="74" height="18" class="nonterminal"/> + <text class="nonterminal" x="263" y="13">data_type_list</text></a><path class="line" d="m17 10 h2 m20 0 h10 m0 0 h76 m-106 0 h20 m86 0 h20 m-126 0 q10 0 10 10 m106 0 q0 -10 10 -10 m-116 10 v1 m106 0 v-1 m-106 1 q0 10 10 10 m86 0 q10 0 10 -10 m-96 10 h4 m54 0 h4 m0 0 h24 m-96 -10 v20 m106 0 v-20 m-106 20 v8 m106 0 v-8 m-106 8 q0 10 10 10 m86 0 q10 0 10 -10 m-96 10 h4 m40 0 h4 m0 0 h38 m-96 -10 v20 m106 0 v-20 m-106 20 v8 m106 0 v-8 m-106 8 q0 10 10 10 m86 0 q10 0 10 -10 m-96 10 h4 m78 0 h4 m20 -77 h4 m48 0 h4 m0 0 h4 m46 0 h4 m0 0 h4 m74 0 h4 m3 0 h-3"/> + <polygon points="347 10 355 6 355 14"/> + <polygon points="347 10 339 6 339 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#specific-method-specification-designator" title="specific_method_specification_designator" shape="rect">specific_method_specification_designator</a></div> + <div>         ::= ( 'INSTANCE' | 'STATIC' | 'CONSTRUCTOR' )? 'METHOD' <a href="#identifier" title="identifier" shape="rect">identifier</a> <a href="#data-type-list" title="data_type_list" shape="rect">data_type_list</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#drop-method-specification" title="drop-method-specification">drop-method-specification</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + drop_data_type_statement +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="427" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="34" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">DROP</text> + <rect x="65" y="1" width="30" height="18" class="terminal" rx="4"/> + <text class="terminal" x="69" y="13">TYPE</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#schema-resolved-user-defined-type-name" xlink:title="schema_resolved_user_defined_type_name" shape="rect"> + <rect x="103" y="1" width="216" height="18" class="nonterminal"/> + <text class="nonterminal" x="107" y="13">schema_resolved_user_defined_type_name</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#drop-behavior" xlink:title="drop_behavior" shape="rect"> + <rect x="327" y="1" width="76" height="18" class="nonterminal"/> + <text class="nonterminal" x="331" y="13">drop_behavior</text></a><path class="line" d="m17 10 h2 m0 0 h4 m34 0 h4 m0 0 h4 m30 0 h4 m0 0 h4 m216 0 h4 m0 0 h4 m76 0 h4 m3 0 h-3"/> + <polygon points="417 10 425 6 425 14"/> + <polygon points="417 10 409 6 409 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#drop-data-type-statement" title="drop_data_type_statement" shape="rect">drop_data_type_statement</a></div> + <div>         ::= 'DROP' 'TYPE' <a href="#schema-resolved-user-defined-type-name" title="schema_resolved_user_defined_type_name" shape="rect">schema_resolved_user_defined_type_name</a> <a href="#drop-behavior" title="drop_behavior" shape="rect">drop_behavior</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#sql-schema-manipulation-statement" title="sql-schema-manipulation-statement">sql-schema-manipulation-statement</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + SQL_invoked_routine +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="131" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#schema-routine" xlink:title="schema_routine" shape="rect"> + <rect x="23" y="1" width="84" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">schema_routine</text></a><path class="line" d="m17 10 h2 m0 0 h4 m84 0 h4 m3 0 h-3"/> + <polygon points="121 10 129 6 129 14"/> + <polygon points="121 10 113 6 113 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#sql-invoked-routine" title="SQL_invoked_routine" shape="rect">SQL_invoked_routine</a></div> + <div>         ::= <a href="#schema-routine" title="schema_routine" shape="rect">schema_routine</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#sql-schema-definition-statement" title="sql-schema-definition-statement">sql-schema-definition-statement</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + schema_routine +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="185" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#schema-procedure" xlink:title="schema_procedure" shape="rect"> + <rect x="43" y="1" width="98" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">schema_procedure</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#schema-function" xlink:title="schema_function" shape="rect"> + <rect x="43" y="29" width="88" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">schema_function</text></a><path class="line" d="m17 10 h2 m20 0 h4 m98 0 h4 m-126 0 h20 m106 0 h20 m-146 0 q10 0 10 10 m126 0 q0 -10 10 -10 m-136 10 v8 m126 0 v-8 m-126 8 q0 10 10 10 m106 0 q10 0 10 -10 m-116 10 h4 m88 0 h4 m0 0 h10 m23 -28 h-3"/> + <polygon points="175 10 183 6 183 14"/> + <polygon points="175 10 167 6 167 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#schema-routine" title="schema_routine" shape="rect">schema_routine</a></div> + <div>         ::= <a href="#schema-procedure" title="schema_procedure" shape="rect">schema_procedure</a></div> + <div>           | <a href="#schema-function" title="schema_function" shape="rect">schema_function</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#sql-invoked-routine" title="sql-invoked-routine">sql-invoked-routine</a></li><li><a href="#schema-element" title="schema-element">schema-element</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + schema_procedure +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="219" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="42" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">CREATE</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#sql-invoked-procedure" xlink:title="SQL_invoked_procedure" shape="rect"> + <rect x="73" y="1" width="122" height="18" class="nonterminal"/> + <text class="nonterminal" x="77" y="13">SQL_invoked_procedure</text></a><path class="line" d="m17 10 h2 m0 0 h4 m42 0 h4 m0 0 h4 m122 0 h4 m3 0 h-3"/> + <polygon points="209 10 217 6 217 14"/> + <polygon points="209 10 201 6 201 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#schema-procedure" title="schema_procedure" shape="rect">schema_procedure</a></div> + <div>         ::= 'CREATE' <a href="#sql-invoked-procedure" title="SQL_invoked_procedure" shape="rect">SQL_invoked_procedure</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#schema-routine" title="schema-routine">schema-routine</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + schema_function +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="313" height="42"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="42" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">CREATE</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#or-replace" xlink:title="or_replace" shape="rect"> + <rect x="93" y="22" width="58" height="18" class="nonterminal"/> + <text class="nonterminal" x="97" y="34">or_replace</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#sql-invoked-function" xlink:title="SQL_invoked_function" shape="rect"> + <rect x="179" y="1" width="110" height="18" class="nonterminal"/> + <text class="nonterminal" x="183" y="13">SQL_invoked_function</text></a><path class="line" d="m17 10 h2 m0 0 h4 m42 0 h4 m20 0 h10 m0 0 h56 m-86 0 h20 m66 0 h20 m-106 0 q10 0 10 10 m86 0 q0 -10 10 -10 m-96 10 v1 m86 0 v-1 m-86 1 q0 10 10 10 m66 0 q10 0 10 -10 m-76 10 h4 m58 0 h4 m20 -21 h4 m110 0 h4 m3 0 h-3"/> + <polygon points="303 10 311 6 311 14"/> + <polygon points="303 10 295 6 295 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#schema-function" title="schema_function" shape="rect">schema_function</a></div> + <div>         ::= 'CREATE' <a href="#or-replace" title="or_replace" shape="rect">or_replace</a>? <a href="#sql-invoked-function" title="SQL_invoked_function" shape="rect">SQL_invoked_function</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#schema-routine" title="schema-routine">schema-routine</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + SQL_invoked_procedure +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="597" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="64" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">PROCEDURE</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#schema-qualified-name" xlink:title="schema_qualified_name" shape="rect"> + <rect x="95" y="1" width="122" height="18" class="nonterminal"/> + <text class="nonterminal" x="99" y="13">schema_qualified_name</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#sql-parameter-declaration-list" xlink:title="SQL_parameter_declaration_list" shape="rect"> + <rect x="225" y="1" width="154" height="18" class="nonterminal"/> + <text class="nonterminal" x="229" y="13">SQL_parameter_declaration_list</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#routine-characteristics" xlink:title="routine_characteristics" shape="rect"> + <rect x="387" y="1" width="108" height="18" class="nonterminal"/> + <text class="nonterminal" x="391" y="13">routine_characteristics</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#routine-body" xlink:title="routine_body" shape="rect"> + <rect x="503" y="1" width="70" height="18" class="nonterminal"/> + <text class="nonterminal" x="507" y="13">routine_body</text></a><path class="line" d="m17 10 h2 m0 0 h4 m64 0 h4 m0 0 h4 m122 0 h4 m0 0 h4 m154 0 h4 m0 0 h4 m108 0 h4 m0 0 h4 m70 0 h4 m3 0 h-3"/> + <polygon points="587 10 595 6 595 14"/> + <polygon points="587 10 579 6 579 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#sql-invoked-procedure" title="SQL_invoked_procedure" shape="rect">SQL_invoked_procedure</a></div> + <div>         ::= 'PROCEDURE' <a href="#schema-qualified-name" title="schema_qualified_name" shape="rect">schema_qualified_name</a> <a href="#sql-parameter-declaration-list" title="SQL_parameter_declaration_list" shape="rect">SQL_parameter_declaration_list</a> <a href="#routine-characteristics" title="routine_characteristics" shape="rect">routine_characteristics</a> <a href="#routine-body" title="routine_body" shape="rect">routine_body</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#schema-procedure" title="schema-procedure">schema-procedure</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + SQL_invoked_function +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="325" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#function-specification" xlink:title="function_specification" shape="rect"> + <rect x="43" y="1" width="102" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">function_specification</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#method-specification-designator" xlink:title="method_specification_designator" shape="rect"> + <rect x="43" y="29" width="160" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">method_specification_designator</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#routine-body" xlink:title="routine_body" shape="rect"> + <rect x="231" y="1" width="70" height="18" class="nonterminal"/> + <text class="nonterminal" x="235" y="13">routine_body</text></a><path class="line" d="m17 10 h2 m20 0 h4 m102 0 h4 m0 0 h58 m-188 0 h20 m168 0 h20 m-208 0 q10 0 10 10 m188 0 q0 -10 10 -10 m-198 10 v8 m188 0 v-8 m-188 8 q0 10 10 10 m168 0 q10 0 10 -10 m-178 10 h4 m160 0 h4 m20 -28 h4 m70 0 h4 m3 0 h-3"/> + <polygon points="315 10 323 6 323 14"/> + <polygon points="315 10 307 6 307 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#sql-invoked-function" title="SQL_invoked_function" shape="rect">SQL_invoked_function</a></div> + <div>         ::= ( <a href="#function-specification" title="function_specification" shape="rect">function_specification</a> | <a href="#method-specification-designator" title="method_specification_designator" shape="rect">method_specification_designator</a> ) <a href="#routine-body" title="routine_body" shape="rect">routine_body</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#schema-function" title="schema-function">schema-function</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + SQL_parameter_declaration_list +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="305" height="61"> + <polygon points="9 38 1 34 1 42"/> + <polygon points="17 38 9 34 9 42"/> + <rect x="23" y="29" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="41">(</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#sql-parameter-declaration" xlink:title="SQL_parameter_declaration" shape="rect"> + <rect x="83" y="29" width="138" height="18" class="nonterminal"/> + <text class="nonterminal" x="87" y="41">SQL_parameter_declaration</text></a><rect x="83" y="1" width="8" height="18" class="terminal" rx="4"/> + <text class="terminal" x="87" y="13">,</text> + <rect x="269" y="29" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="273" y="41">)</text> + <path class="line" d="m17 38 h2 m0 0 h4 m12 0 h4 m40 0 h4 m138 0 h4 m-166 0 l20 0 m-1 0 q-9 0 -9 -10 l0 -8 q0 -10 10 -10 m146 28 l20 0 m-20 0 q10 0 10 -10 l0 -8 q0 -10 -10 -10 m-146 0 h4 m8 0 h4 m0 0 h130 m-186 28 h20 m186 0 h20 m-226 0 q10 0 10 10 m206 0 q0 -10 10 -10 m-216 10 v1 m206 0 v-1 m-206 1 q0 10 10 10 m186 0 q10 0 10 -10 m-196 10 h10 m0 0 h176 m20 -21 h4 m12 0 h4 m3 0 h-3"/> + <polygon points="295 38 303 34 303 42"/> + <polygon points="295 38 287 34 287 42"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#sql-parameter-declaration-list" title="SQL_parameter_declaration_list" shape="rect">SQL_parameter_declaration_list</a></div> + <div>         ::= '(' ( <a href="#sql-parameter-declaration" title="SQL_parameter_declaration" shape="rect">SQL_parameter_declaration</a> ( ',' <a href="#sql-parameter-declaration" title="SQL_parameter_declaration" shape="rect">SQL_parameter_declaration</a> )* )? ')'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#sql-invoked-procedure" title="sql-invoked-procedure">sql-invoked-procedure</a></li><li><a href="#function-specification" title="function-specification">function-specification</a></li><li><a href="#method-specification-designator" title="method-specification-designator">method-specification-designator</a></li><li><a href="#partial-method-specification" title="partial-method-specification">partial-method-specification</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + SQL_parameter_declaration +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="653" height="42"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#parameter-mode" xlink:title="parameter_mode" shape="rect"> + <rect x="43" y="22" width="92" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="34">parameter_mode</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#identifier" xlink:title="identifier" shape="rect"> + <rect x="183" y="22" width="46" height="18" class="nonterminal"/> + <text class="nonterminal" x="187" y="34">identifier</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#parameter-type" xlink:title="parameter_type" shape="rect"> + <rect x="257" y="1" width="84" height="18" class="nonterminal"/> + <text class="nonterminal" x="261" y="13">parameter_type</text></a><rect x="369" y="22" width="42" height="18" class="terminal" rx="4"/> + <text class="terminal" x="373" y="34">RESULT</text> + <rect x="459" y="22" width="48" height="18" class="terminal" rx="4"/> + <text class="terminal" x="463" y="34">DEFAULT</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#parameter-default" xlink:title="parameter_default" shape="rect"> + <rect x="515" y="22" width="94" height="18" class="nonterminal"/> + <text class="nonterminal" x="519" y="34">parameter_default</text></a><path class="line" d="m17 10 h2 m20 0 h10 m0 0 h90 m-120 0 h20 m100 0 h20 m-140 0 q10 0 10 10 m120 0 q0 -10 10 -10 m-130 10 v1 m120 0 v-1 m-120 1 q0 10 10 10 m100 0 q10 0 10 -10 m-110 10 h4 m92 0 h4 m40 -21 h10 m0 0 h44 m-74 0 h20 m54 0 h20 m-94 0 q10 0 10 10 m74 0 q0 -10 10 -10 m-84 10 v1 m74 0 v-1 m-74 1 q0 10 10 10 m54 0 q10 0 10 -10 m-64 10 h4 m46 0 h4 m20 -21 h4 m84 0 h4 m20 0 h10 m0 0 h40 m-70 0 h20 m50 0 h20 m-90 0 q10 0 10 10 m70 0 q0 -10 10 -10 m-80 10 v1 m70 0 v-1 m-70 1 q0 10 10 10 m50 0 q10 0 10 -10 m-60 10 h4 m42 0 h4 m40 -21 h10 m0 0 h148 m-178 0 h20 m158 0 h20 m-198 0 q10 0 10 10 m178 0 q0 -10 10 -10 m-188 10 v1 m178 0 v-1 m-178 1 q0 10 10 10 m158 0 q10 0 10 -10 m-168 10 h4 m48 0 h4 m0 0 h4 m94 0 h4 m23 -21 h-3"/> + <polygon points="643 10 651 6 651 14"/> + <polygon points="643 10 635 6 635 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#sql-parameter-declaration" title="SQL_parameter_declaration" shape="rect">SQL_parameter_declaration</a></div> + <div>         ::= <a href="#parameter-mode" title="parameter_mode" shape="rect">parameter_mode</a>? <a href="#identifier" title="identifier" shape="rect">identifier</a>? <a href="#parameter-type" title="parameter_type" shape="rect">parameter_type</a> 'RESULT'? ( 'DEFAULT' <a href="#parameter-default" title="parameter_default" shape="rect">parameter_default</a> )?</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#sql-parameter-declaration-list" title="sql-parameter-declaration-list">sql-parameter-declaration-list</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + parameter_default +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="271" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#value-expression" xlink:title="value_expression" shape="rect"> + <rect x="43" y="1" width="90" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">value_expression</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#contextually-typed-value-specification" xlink:title="contextually_typed_value_specification" shape="rect"> + <rect x="43" y="29" width="184" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">contextually_typed_value_specification</text></a><path class="line" d="m17 10 h2 m20 0 h4 m90 0 h4 m0 0 h94 m-212 0 h20 m192 0 h20 m-232 0 q10 0 10 10 m212 0 q0 -10 10 -10 m-222 10 v8 m212 0 v-8 m-212 8 q0 10 10 10 m192 0 q10 0 10 -10 m-202 10 h4 m184 0 h4 m23 -28 h-3"/> + <polygon points="261 10 269 6 269 14"/> + <polygon points="261 10 253 6 253 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#parameter-default" title="parameter_default" shape="rect">parameter_default</a></div> + <div>         ::= <a href="#value-expression" title="value_expression" shape="rect">value_expression</a></div> + <div>           | <a href="#contextually-typed-value-specification" title="contextually_typed_value_specification" shape="rect">contextually_typed_value_specification</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#sql-parameter-declaration" title="sql-parameter-declaration">sql-parameter-declaration</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + parameter_mode +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="125" height="77"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="43" y="1" width="18" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="13">IN</text> + <rect x="43" y="29" width="28" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="41">OUT</text> + <rect x="43" y="57" width="38" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="69">INOUT</text> + <path class="line" d="m17 10 h2 m20 0 h4 m18 0 h4 m0 0 h20 m-66 0 h20 m46 0 h20 m-86 0 q10 0 10 10 m66 0 q0 -10 10 -10 m-76 10 v8 m66 0 v-8 m-66 8 q0 10 10 10 m46 0 q10 0 10 -10 m-56 10 h4 m28 0 h4 m0 0 h10 m-56 -10 v20 m66 0 v-20 m-66 20 v8 m66 0 v-8 m-66 8 q0 10 10 10 m46 0 q10 0 10 -10 m-56 10 h4 m38 0 h4 m23 -56 h-3"/> + <polygon points="115 10 123 6 123 14"/> + <polygon points="115 10 107 6 107 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#parameter-mode" title="parameter_mode" shape="rect">parameter_mode</a></div> + <div>         ::= 'IN'</div> + <div>           | 'OUT'</div> + <div>           | 'INOUT'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#sql-parameter-declaration" title="sql-parameter-declaration">sql-parameter-declaration</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + parameter_type +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="237" height="42"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#data-type" xlink:title="data_type" shape="rect"> + <rect x="23" y="1" width="56" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">data_type</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#locator-indication" xlink:title="locator_indication" shape="rect"> + <rect x="107" y="22" width="86" height="18" class="nonterminal"/> + <text class="nonterminal" x="111" y="34">locator_indication</text></a><path class="line" d="m17 10 h2 m0 0 h4 m56 0 h4 m20 0 h10 m0 0 h84 m-114 0 h20 m94 0 h20 m-134 0 q10 0 10 10 m114 0 q0 -10 10 -10 m-124 10 v1 m114 0 v-1 m-114 1 q0 10 10 10 m94 0 q10 0 10 -10 m-104 10 h4 m86 0 h4 m23 -21 h-3"/> + <polygon points="227 10 235 6 235 14"/> + <polygon points="227 10 219 6 219 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#parameter-type" title="parameter_type" shape="rect">parameter_type</a></div> + <div>         ::= <a href="#data-type" title="data_type" shape="rect">data_type</a> <a href="#locator-indication" title="locator_indication" shape="rect">locator_indication</a>?</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#sql-parameter-declaration" title="sql-parameter-declaration">sql-parameter-declaration</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + locator_indication +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="127" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="20" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">AS</text> + <rect x="51" y="1" width="52" height="18" class="terminal" rx="4"/> + <text class="terminal" x="55" y="13">LOCATOR</text> + <path class="line" d="m17 10 h2 m0 0 h4 m20 0 h4 m0 0 h4 m52 0 h4 m3 0 h-3"/> + <polygon points="117 10 125 6 125 14"/> + <polygon points="117 10 109 6 109 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#locator-indication" title="locator_indication" shape="rect">locator_indication</a></div> + <div>         ::= 'AS' 'LOCATOR'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#host-parameter-data-type" title="host-parameter-data-type">host-parameter-data-type</a></li><li><a href="#parameter-type" title="parameter-type">parameter-type</a></li><li><a href="#result-cast-from-type" title="result-cast-from-type">result-cast-from-type</a></li><li><a href="#returns-data-type" title="returns-data-type">returns-data-type</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + function_specification +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="731" height="100"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="56" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">FUNCTION</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#schema-qualified-name" xlink:title="schema_qualified_name" shape="rect"> + <rect x="87" y="1" width="122" height="18" class="nonterminal"/> + <text class="nonterminal" x="91" y="13">schema_qualified_name</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#sql-parameter-declaration-list" xlink:title="SQL_parameter_declaration_list" shape="rect"> + <rect x="217" y="1" width="154" height="18" class="nonterminal"/> + <text class="nonterminal" x="221" y="13">SQL_parameter_declaration_list</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#returns-clause" xlink:title="returns_clause" shape="rect"> + <rect x="379" y="1" width="76" height="18" class="nonterminal"/> + <text class="nonterminal" x="383" y="13">returns_clause</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#routine-description" xlink:title="routine_description" shape="rect"> + <rect x="483" y="22" width="94" height="18" class="nonterminal"/> + <text class="nonterminal" x="487" y="34">routine_description</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#routine-characteristics" xlink:title="routine_characteristics" shape="rect"> + <rect x="605" y="1" width="108" height="18" class="nonterminal"/> + <text class="nonterminal" x="609" y="13">routine_characteristics</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#dispatch-clause" xlink:title="dispatch_clause" shape="rect"> + <rect x="605" y="80" width="82" height="18" class="nonterminal"/> + <text class="nonterminal" x="609" y="92">dispatch_clause</text></a><path class="line" d="m17 10 h2 m0 0 h4 m56 0 h4 m0 0 h4 m122 0 h4 m0 0 h4 m154 0 h4 m0 0 h4 m76 0 h4 m20 0 h10 m0 0 h92 m-122 0 h20 m102 0 h20 m-142 0 q10 0 10 10 m122 0 q0 -10 10 -10 m-132 10 v1 m122 0 v-1 m-122 1 q0 10 10 10 m102 0 q10 0 10 -10 m-112 10 h4 m94 0 h4 m20 -21 h4 m108 0 h4 m2 0 l2 0 m2 0 l2 0 m2 0 l2 0 m-160 58 l2 0 m2 0 l2 0 m2 0 l2 0 m22 0 h10 m0 0 h80 m-110 0 h20 m90 0 h20 m-130 0 q10 0 10 10 m110 0 q0 -10 10 -10 m-120 10 v1 m110 0 v-1 m-110 1 q0 10 10 10 m90 0 q10 0 10 -10 m-100 10 h4 m82 0 h4 m23 -21 h-3"/> + <polygon points="721 68 729 64 729 72"/> + <polygon points="721 68 713 64 713 72"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#function-specification" title="function_specification" shape="rect">function_specification</a></div> + <div>         ::= 'FUNCTION' <a href="#schema-qualified-name" title="schema_qualified_name" shape="rect">schema_qualified_name</a> <a href="#sql-parameter-declaration-list" title="SQL_parameter_declaration_list" shape="rect">SQL_parameter_declaration_list</a> <a href="#returns-clause" title="returns_clause" shape="rect">returns_clause</a> <a href="#routine-description" title="routine_description" shape="rect">routine_description</a>? <a href="#routine-characteristics" title="routine_characteristics" shape="rect">routine_characteristics</a> <a href="#dispatch-clause" title="dispatch_clause" shape="rect">dispatch_clause</a>?</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#sql-invoked-function" title="sql-invoked-function">sql-invoked-function</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + method_specification_designator +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="859" height="126"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="43" y="1" width="48" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="13">SPECIFIC</text> + <rect x="99" y="1" width="48" height="18" class="terminal" rx="4"/> + <text class="terminal" x="103" y="13">METHOD</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#specific-identifier" xlink:title="specific_identifier" shape="rect"> + <rect x="155" y="1" width="82" height="18" class="nonterminal"/> + <text class="nonterminal" x="159" y="13">specific_identifier</text></a><rect x="63" y="50" width="54" height="18" class="terminal" rx="4"/> + <text class="terminal" x="67" y="62">INSTANCE</text> + <rect x="63" y="78" width="40" height="18" class="terminal" rx="4"/> + <text class="terminal" x="67" y="90">STATIC</text> + <rect x="63" y="106" width="78" height="18" class="terminal" rx="4"/> + <text class="terminal" x="67" y="118">CONSTRUCTOR</text> + <rect x="169" y="29" width="48" height="18" class="terminal" rx="4"/> + <text class="terminal" x="173" y="41">METHOD</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#identifier" xlink:title="identifier" shape="rect"> + <rect x="225" y="29" width="46" height="18" class="nonterminal"/> + <text class="nonterminal" x="229" y="41">identifier</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#sql-parameter-declaration-list" xlink:title="SQL_parameter_declaration_list" shape="rect"> + <rect x="279" y="29" width="154" height="18" class="nonterminal"/> + <text class="nonterminal" x="283" y="41">SQL_parameter_declaration_list</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#returns-clause" xlink:title="returns_clause" shape="rect"> + <rect x="461" y="50" width="76" height="18" class="nonterminal"/> + <text class="nonterminal" x="465" y="62">returns_clause</text></a><rect x="565" y="29" width="26" height="18" class="terminal" rx="4"/> + <text class="terminal" x="569" y="41">FOR</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#schema-resolved-user-defined-type-name" xlink:title="schema_resolved_user_defined_type_name" shape="rect"> + <rect x="599" y="29" width="216" height="18" class="nonterminal"/> + <text class="nonterminal" x="603" y="41">schema_resolved_user_defined_type_name</text></a><path class="line" d="m17 10 h2 m20 0 h4 m48 0 h4 m0 0 h4 m48 0 h4 m0 0 h4 m82 0 h4 m0 0 h578 m-800 0 h20 m780 0 h20 m-820 0 q10 0 10 10 m800 0 q0 -10 10 -10 m-810 10 v8 m800 0 v-8 m-800 8 q0 10 10 10 m780 0 q10 0 10 -10 m-770 10 h10 m0 0 h76 m-106 0 h20 m86 0 h20 m-126 0 q10 0 10 10 m106 0 q0 -10 10 -10 m-116 10 v1 m106 0 v-1 m-106 1 q0 10 10 10 m86 0 q10 0 10 -10 m-96 10 h4 m54 0 h4 m0 0 h24 m-96 -10 v20 m106 0 v-20 m-106 20 v8 m106 0 v-8 m-106 8 q0 10 10 10 m86 0 q10 0 10 -10 m-96 10 h4 m40 0 h4 m0 0 h38 m-96 -10 v20 m106 0 v-20 m-106 20 v8 m106 0 v-8 m-106 8 q0 10 10 10 m86 0 q10 0 10 -10 m-96 10 h4 m78 0 h4 m20 -77 h4 m48 0 h4 m0 0 h4 m46 0 h4 m0 0 h4 m154 0 h4 m20 0 h10 m0 0 h74 m-104 0 h20 m84 0 h20 m-124 0 q10 0 10 10 m104 0 q0 -10 10 -10 m-114 10 v1 m104 0 v-1 m-104 1 q0 10 10 10 m84 0 q10 0 10 -10 m-94 10 h4 m76 0 h4 m20 -21 h4 m26 0 h4 m0 0 h4 m216 0 h4 m23 -28 h-3"/> + <polygon points="849 10 857 6 857 14"/> + <polygon points="849 10 841 6 841 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#method-specification-designator" title="method_specification_designator" shape="rect">method_specification_designator</a></div> + <div>         ::= 'SPECIFIC' 'METHOD' <a href="#specific-identifier" title="specific_identifier" shape="rect">specific_identifier</a></div> + <div>           | ( 'INSTANCE' | 'STATIC' | 'CONSTRUCTOR' )? 'METHOD' <a href="#identifier" title="identifier" shape="rect">identifier</a> <a href="#sql-parameter-declaration-list" title="SQL_parameter_declaration_list" shape="rect">SQL_parameter_declaration_list</a> <a href="#returns-clause" title="returns_clause" shape="rect">returns_clause</a>? 'FOR' <a href="#schema-resolved-user-defined-type-name" title="schema_resolved_user_defined_type_name" shape="rect">schema_resolved_user_defined_type_name</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#sql-invoked-function" title="sql-invoked-function">sql-invoked-function</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + routine_characteristics +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="191" height="37"> + <polygon points="9 31 1 27 1 35"/> + <polygon points="17 31 9 27 9 35"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#routine-characteristic" xlink:title="routine_characteristic" shape="rect"> + <rect x="43" y="1" width="104" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">routine_characteristic</text></a><path class="line" d="m17 31 h2 m20 0 h10 m0 0 h102 m-132 0 l20 0 m-1 0 q-9 0 -9 -10 l0 -1 q0 -10 10 -10 m112 21 l20 0 m-20 0 q10 0 10 -10 l0 -1 q0 -10 -10 -10 m-112 0 h4 m104 0 h4 m23 21 h-3"/> + <polygon points="181 31 189 27 189 35"/> + <polygon points="181 31 173 27 173 35"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#routine-characteristics" title="routine_characteristics" shape="rect">routine_characteristics</a></div> + <div>         ::= <a href="#routine-characteristic" title="routine_characteristic" shape="rect">routine_characteristic</a>*</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#sql-invoked-procedure" title="sql-invoked-procedure">sql-invoked-procedure</a></li><li><a href="#function-specification" title="function-specification">function-specification</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + routine_characteristic +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="265" height="217"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#language-clause" xlink:title="language_clause" shape="rect"> + <rect x="43" y="1" width="88" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">language_clause</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#parameter-style-clause" xlink:title="parameter_style_clause" shape="rect"> + <rect x="43" y="29" width="120" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">parameter_style_clause</text></a><rect x="43" y="57" width="48" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="69">SPECIFIC</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#schema-qualified-name" xlink:title="schema_qualified_name" shape="rect"> + <rect x="99" y="57" width="122" height="18" class="nonterminal"/> + <text class="nonterminal" x="103" y="69">schema_qualified_name</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#deterministic-characteristic" xlink:title="deterministic_characteristic" shape="rect"> + <rect x="43" y="85" width="128" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="97">deterministic_characteristic</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#sql-data-access-indication" xlink:title="SQL_data_access_indication" shape="rect"> + <rect x="43" y="113" width="138" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="125">SQL_data_access_indication</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#null-call-clause" xlink:title="null_call_clause" shape="rect"> + <rect x="43" y="141" width="78" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="153">null_call_clause</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#returned-result-sets-characteristic" xlink:title="returned_result_sets_characteristic" shape="rect"> + <rect x="43" y="169" width="166" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="181">returned_result_sets_characteristic</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#savepoint-level-indication" xlink:title="savepoint_level_indication" shape="rect"> + <rect x="43" y="197" width="126" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="209">savepoint_level_indication</text></a><path class="line" d="m17 10 h2 m20 0 h4 m88 0 h4 m0 0 h90 m-206 0 h20 m186 0 h20 m-226 0 q10 0 10 10 m206 0 q0 -10 10 -10 m-216 10 v8 m206 0 v-8 m-206 8 q0 10 10 10 m186 0 q10 0 10 -10 m-196 10 h4 m120 0 h4 m0 0 h58 m-196 -10 v20 m206 0 v-20 m-206 20 v8 m206 0 v-8 m-206 8 q0 10 10 10 m186 0 q10 0 10 -10 m-196 10 h4 m48 0 h4 m0 0 h4 m122 0 h4 m-196 -10 v20 m206 0 v-20 m-206 20 v8 m206 0 v-8 m-206 8 q0 10 10 10 m186 0 q10 0 10 -10 m-196 10 h4 m128 0 h4 m0 0 h50 m-196 -10 v20 m206 0 v-20 m-206 20 v8 m206 0 v-8 m-206 8 q0 10 10 10 m186 0 q10 0 10 -10 m-196 10 h4 m138 0 h4 m0 0 h40 m-196 -10 v20 m206 0 v-20 m-206 20 v8 m206 0 v-8 m-206 8 q0 10 10 10 m186 0 q10 0 10 -10 m-196 10 h4 m78 0 h4 m0 0 h100 m-196 -10 v20 m206 0 v-20 m-206 20 v8 m206 0 v-8 m-206 8 q0 10 10 10 m186 0 q10 0 10 -10 m-196 10 h4 m166 0 h4 m0 0 h12 m-196 -10 v20 m206 0 v-20 m-206 20 v8 m206 0 v-8 m-206 8 q0 10 10 10 m186 0 q10 0 10 -10 m-196 10 h4 m126 0 h4 m0 0 h52 m23 -196 h-3"/> + <polygon points="255 10 263 6 263 14"/> + <polygon points="255 10 247 6 247 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#routine-characteristic" title="routine_characteristic" shape="rect">routine_characteristic</a></div> + <div>         ::= <a href="#language-clause" title="language_clause" shape="rect">language_clause</a></div> + <div>           | <a href="#parameter-style-clause" title="parameter_style_clause" shape="rect">parameter_style_clause</a></div> + <div>           | 'SPECIFIC' <a href="#schema-qualified-name" title="schema_qualified_name" shape="rect">schema_qualified_name</a></div> + <div>           | <a href="#deterministic-characteristic" title="deterministic_characteristic" shape="rect">deterministic_characteristic</a></div> + <div>           | <a href="#sql-data-access-indication" title="SQL_data_access_indication" shape="rect">SQL_data_access_indication</a></div> + <div>           | <a href="#null-call-clause" title="null_call_clause" shape="rect">null_call_clause</a></div> + <div>           | <a href="#returned-result-sets-characteristic" title="returned_result_sets_characteristic" shape="rect">returned_result_sets_characteristic</a></div> + <div>           | <a href="#savepoint-level-indication" title="savepoint_level_indication" shape="rect">savepoint_level_indication</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#routine-characteristics" title="routine-characteristics">routine-characteristics</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + savepoint_level_indication +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="227" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="43" y="1" width="30" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="13">NEW</text> + <rect x="43" y="29" width="28" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="41">OLD</text> + <rect x="101" y="1" width="60" height="18" class="terminal" rx="4"/> + <text class="terminal" x="105" y="13">SAVEPOINT</text> + <rect x="169" y="1" width="34" height="18" class="terminal" rx="4"/> + <text class="terminal" x="173" y="13">LEVEL</text> + <path class="line" d="m17 10 h2 m20 0 h4 m30 0 h4 m-58 0 h20 m38 0 h20 m-78 0 q10 0 10 10 m58 0 q0 -10 10 -10 m-68 10 v8 m58 0 v-8 m-58 8 q0 10 10 10 m38 0 q10 0 10 -10 m-48 10 h4 m28 0 h4 m0 0 h2 m20 -28 h4 m60 0 h4 m0 0 h4 m34 0 h4 m3 0 h-3"/> + <polygon points="217 10 225 6 225 14"/> + <polygon points="217 10 209 6 209 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#savepoint-level-indication" title="savepoint_level_indication" shape="rect">savepoint_level_indication</a></div> + <div>         ::= ( 'NEW' | 'OLD' ) 'SAVEPOINT' 'LEVEL'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#routine-characteristic" title="routine-characteristic">routine-characteristic</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + returned_result_sets_characteristic +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="353" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="52" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">DYNAMIC</text> + <rect x="83" y="1" width="42" height="18" class="terminal" rx="4"/> + <text class="terminal" x="87" y="13">RESULT</text> + <rect x="133" y="1" width="30" height="18" class="terminal" rx="4"/> + <text class="terminal" x="137" y="13">SETS</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#maximum-returned-result-sets" xlink:title="maximum_returned_result_sets" shape="rect"> + <rect x="171" y="1" width="158" height="18" class="nonterminal"/> + <text class="nonterminal" x="175" y="13">maximum_returned_result_sets</text></a><path class="line" d="m17 10 h2 m0 0 h4 m52 0 h4 m0 0 h4 m42 0 h4 m0 0 h4 m30 0 h4 m0 0 h4 m158 0 h4 m3 0 h-3"/> + <polygon points="343 10 351 6 351 14"/> + <polygon points="343 10 335 6 335 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#returned-result-sets-characteristic" title="returned_result_sets_characteristic" shape="rect">returned_result_sets_characteristic</a></div> + <div>         ::= 'DYNAMIC' 'RESULT' 'SETS' <a href="#maximum-returned-result-sets" title="maximum_returned_result_sets" shape="rect">maximum_returned_result_sets</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#alter-routine-characteristic" title="alter-routine-characteristic">alter-routine-characteristic</a></li><li><a href="#routine-characteristic" title="routine-characteristic">routine-characteristic</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + parameter_style_clause +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="243" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="62" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">PARAMETER</text> + <rect x="93" y="1" width="34" height="18" class="terminal" rx="4"/> + <text class="terminal" x="97" y="13">STYLE</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#parameter-style" xlink:title="parameter_style" shape="rect"> + <rect x="135" y="1" width="84" height="18" class="nonterminal"/> + <text class="nonterminal" x="139" y="13">parameter_style</text></a><path class="line" d="m17 10 h2 m0 0 h4 m62 0 h4 m0 0 h4 m34 0 h4 m0 0 h4 m84 0 h4 m3 0 h-3"/> + <polygon points="233 10 241 6 241 14"/> + <polygon points="233 10 225 6 225 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#parameter-style-clause" title="parameter_style_clause" shape="rect">parameter_style_clause</a></div> + <div>         ::= 'PARAMETER' 'STYLE' <a href="#parameter-style" title="parameter_style" shape="rect">parameter_style</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#alter-routine-characteristic" title="alter-routine-characteristic">alter-routine-characteristic</a></li><li><a href="#external-body-reference" title="external-body-reference">external-body-reference</a></li><li><a href="#method-characteristic" title="method-characteristic">method-characteristic</a></li><li><a href="#routine-characteristic" title="routine-characteristic">routine-characteristic</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + dispatch_clause +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="149" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="40" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">STATIC</text> + <rect x="71" y="1" width="54" height="18" class="terminal" rx="4"/> + <text class="terminal" x="75" y="13">DISPATCH</text> + <path class="line" d="m17 10 h2 m0 0 h4 m40 0 h4 m0 0 h4 m54 0 h4 m3 0 h-3"/> + <polygon points="139 10 147 6 147 14"/> + <polygon points="139 10 131 6 131 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#dispatch-clause" title="dispatch_clause" shape="rect">dispatch_clause</a></div> + <div>         ::= 'STATIC' 'DISPATCH'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#function-specification" title="function-specification">function-specification</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + returns_clause +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="173" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="50" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">RETURNS</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#returns-type" xlink:title="returns_type" shape="rect"> + <rect x="81" y="1" width="68" height="18" class="nonterminal"/> + <text class="nonterminal" x="85" y="13">returns_type</text></a><path class="line" d="m17 10 h2 m0 0 h4 m50 0 h4 m0 0 h4 m68 0 h4 m3 0 h-3"/> + <polygon points="163 10 171 6 171 14"/> + <polygon points="163 10 155 6 155 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#returns-clause" title="returns_clause" shape="rect">returns_clause</a></div> + <div>         ::= 'RETURNS' <a href="#returns-type" title="returns_type" shape="rect">returns_type</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#function-specification" title="function-specification">function-specification</a></li><li><a href="#method-specification-designator" title="method-specification-designator">method-specification-designator</a></li><li><a href="#partial-method-specification" title="partial-method-specification">partial-method-specification</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + returns_type +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="287" height="70"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#returns-data-type" xlink:title="returns_data_type" shape="rect"> + <rect x="43" y="1" width="94" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">returns_data_type</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#result-cast" xlink:title="result_cast" shape="rect"> + <rect x="165" y="22" width="58" height="18" class="nonterminal"/> + <text class="nonterminal" x="169" y="34">result_cast</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#returns-table-type" xlink:title="returns_table_type" shape="rect"> + <rect x="43" y="50" width="96" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="62">returns_table_type</text></a><path class="line" d="m17 10 h2 m20 0 h4 m94 0 h4 m20 0 h10 m0 0 h56 m-86 0 h20 m66 0 h20 m-106 0 q10 0 10 10 m86 0 q0 -10 10 -10 m-96 10 v1 m86 0 v-1 m-86 1 q0 10 10 10 m66 0 q10 0 10 -10 m-76 10 h4 m58 0 h4 m-208 -21 h20 m208 0 h20 m-248 0 q10 0 10 10 m228 0 q0 -10 10 -10 m-238 10 v29 m228 0 v-29 m-228 29 q0 10 10 10 m208 0 q10 0 10 -10 m-218 10 h4 m96 0 h4 m0 0 h104 m23 -49 h-3"/> + <polygon points="277 10 285 6 285 14"/> + <polygon points="277 10 269 6 269 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#returns-type" title="returns_type" shape="rect">returns_type</a></div> + <div>         ::= <a href="#returns-data-type" title="returns_data_type" shape="rect">returns_data_type</a> <a href="#result-cast" title="result_cast" shape="rect">result_cast</a>?</div> + <div>           | <a href="#returns-table-type" title="returns_table_type" shape="rect">returns_table_type</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#returns-clause" title="returns-clause">returns-clause</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + returns_table_type +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="219" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="36" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">TABLE</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#table-function-column-list" xlink:title="table_function_column_list" shape="rect"> + <rect x="67" y="1" width="128" height="18" class="nonterminal"/> + <text class="nonterminal" x="71" y="13">table_function_column_list</text></a><path class="line" d="m17 10 h2 m0 0 h4 m36 0 h4 m0 0 h4 m128 0 h4 m3 0 h-3"/> + <polygon points="209 10 217 6 217 14"/> + <polygon points="209 10 201 6 201 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#returns-table-type" title="returns_table_type" shape="rect">returns_table_type</a></div> + <div>         ::= 'TABLE' <a href="#table-function-column-list" title="table_function_column_list" shape="rect">table_function_column_list</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#returns-type" title="returns-type">returns-type</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + table_function_column_list +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="299" height="49"> + <polygon points="9 38 1 34 1 42"/> + <polygon points="17 38 9 34 9 42"/> + <rect x="23" y="29" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="41">(</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#table-function-column-list-element" xlink:title="table_function_column_list_element" shape="rect"> + <rect x="63" y="29" width="172" height="18" class="nonterminal"/> + <text class="nonterminal" x="67" y="41">table_function_column_list_element</text></a><rect x="63" y="1" width="8" height="18" class="terminal" rx="4"/> + <text class="terminal" x="67" y="13">,</text> + <rect x="263" y="29" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="267" y="41">)</text> + <path class="line" d="m17 38 h2 m0 0 h4 m12 0 h4 m20 0 h4 m172 0 h4 m-200 0 l20 0 m-1 0 q-9 0 -9 -10 l0 -8 q0 -10 10 -10 m180 28 l20 0 m-20 0 q10 0 10 -10 l0 -8 q0 -10 -10 -10 m-180 0 h4 m8 0 h4 m0 0 h164 m20 28 h4 m12 0 h4 m3 0 h-3"/> + <polygon points="289 38 297 34 297 42"/> + <polygon points="289 38 281 34 281 42"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#table-function-column-list" title="table_function_column_list" shape="rect">table_function_column_list</a></div> + <div>         ::= '(' <a href="#table-function-column-list-element" title="table_function_column_list_element" shape="rect">table_function_column_list_element</a> ( ',' <a href="#table-function-column-list-element" title="table_function_column_list_element" shape="rect">table_function_column_list_element</a> )* ')'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#returns-table-type" title="returns-table-type">returns-table-type</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + table_function_column_list_element +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="157" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#identifier" xlink:title="identifier" shape="rect"> + <rect x="23" y="1" width="46" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">identifier</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#data-type" xlink:title="data_type" shape="rect"> + <rect x="77" y="1" width="56" height="18" class="nonterminal"/> + <text class="nonterminal" x="81" y="13">data_type</text></a><path class="line" d="m17 10 h2 m0 0 h4 m46 0 h4 m0 0 h4 m56 0 h4 m3 0 h-3"/> + <polygon points="147 10 155 6 155 14"/> + <polygon points="147 10 139 6 139 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#table-function-column-list-element" title="table_function_column_list_element" shape="rect">table_function_column_list_element</a></div> + <div>         ::= <a href="#identifier" title="identifier" shape="rect">identifier</a> <a href="#data-type" title="data_type" shape="rect">data_type</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#table-function-column-list" title="table-function-column-list">table-function-column-list</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + result_cast +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="243" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="32" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">CAST</text> + <rect x="63" y="1" width="36" height="18" class="terminal" rx="4"/> + <text class="terminal" x="67" y="13">FROM</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#result-cast-from-type" xlink:title="result_cast_from_type" shape="rect"> + <rect x="107" y="1" width="112" height="18" class="nonterminal"/> + <text class="nonterminal" x="111" y="13">result_cast_from_type</text></a><path class="line" d="m17 10 h2 m0 0 h4 m32 0 h4 m0 0 h4 m36 0 h4 m0 0 h4 m112 0 h4 m3 0 h-3"/> + <polygon points="233 10 241 6 241 14"/> + <polygon points="233 10 225 6 225 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#result-cast" title="result_cast" shape="rect">result_cast</a></div> + <div>         ::= 'CAST' 'FROM' <a href="#result-cast-from-type" title="result_cast_from_type" shape="rect">result_cast_from_type</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#returns-type" title="returns-type">returns-type</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + result_cast_from_type +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="237" height="42"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#data-type" xlink:title="data_type" shape="rect"> + <rect x="23" y="1" width="56" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">data_type</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#locator-indication" xlink:title="locator_indication" shape="rect"> + <rect x="107" y="22" width="86" height="18" class="nonterminal"/> + <text class="nonterminal" x="111" y="34">locator_indication</text></a><path class="line" d="m17 10 h2 m0 0 h4 m56 0 h4 m20 0 h10 m0 0 h84 m-114 0 h20 m94 0 h20 m-134 0 q10 0 10 10 m114 0 q0 -10 10 -10 m-124 10 v1 m114 0 v-1 m-114 1 q0 10 10 10 m94 0 q10 0 10 -10 m-104 10 h4 m86 0 h4 m23 -21 h-3"/> + <polygon points="227 10 235 6 235 14"/> + <polygon points="227 10 219 6 219 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#result-cast-from-type" title="result_cast_from_type" shape="rect">result_cast_from_type</a></div> + <div>         ::= <a href="#data-type" title="data_type" shape="rect">data_type</a> <a href="#locator-indication" title="locator_indication" shape="rect">locator_indication</a>?</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#result-cast" title="result-cast">result-cast</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + returns_data_type +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="237" height="42"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#data-type" xlink:title="data_type" shape="rect"> + <rect x="23" y="1" width="56" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">data_type</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#locator-indication" xlink:title="locator_indication" shape="rect"> + <rect x="107" y="22" width="86" height="18" class="nonterminal"/> + <text class="nonterminal" x="111" y="34">locator_indication</text></a><path class="line" d="m17 10 h2 m0 0 h4 m56 0 h4 m20 0 h10 m0 0 h84 m-114 0 h20 m94 0 h20 m-134 0 q10 0 10 10 m114 0 q0 -10 10 -10 m-124 10 v1 m114 0 v-1 m-114 1 q0 10 10 10 m94 0 q10 0 10 -10 m-104 10 h4 m86 0 h4 m23 -21 h-3"/> + <polygon points="227 10 235 6 235 14"/> + <polygon points="227 10 219 6 219 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#returns-data-type" title="returns_data_type" shape="rect">returns_data_type</a></div> + <div>         ::= <a href="#data-type" title="data_type" shape="rect">data_type</a> <a href="#locator-indication" title="locator_indication" shape="rect">locator_indication</a>?</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#returns-type" title="returns-type">returns-type</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + routine_body +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="211" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#sql-routine-spec" xlink:title="SQL_routine_spec" shape="rect"> + <rect x="43" y="1" width="92" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">SQL_routine_spec</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#external-body-reference" xlink:title="external_body_reference" shape="rect"> + <rect x="43" y="29" width="124" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">external_body_reference</text></a><path class="line" d="m17 10 h2 m20 0 h4 m92 0 h4 m0 0 h32 m-152 0 h20 m132 0 h20 m-172 0 q10 0 10 10 m152 0 q0 -10 10 -10 m-162 10 v8 m152 0 v-8 m-152 8 q0 10 10 10 m132 0 q10 0 10 -10 m-142 10 h4 m124 0 h4 m23 -28 h-3"/> + <polygon points="201 10 209 6 209 14"/> + <polygon points="201 10 193 6 193 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#routine-body" title="routine_body" shape="rect">routine_body</a></div> + <div>         ::= <a href="#sql-routine-spec" title="SQL_routine_spec" shape="rect">SQL_routine_spec</a></div> + <div>           | <a href="#external-body-reference" title="external_body_reference" shape="rect">external_body_reference</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#sql-invoked-function" title="sql-invoked-function">sql-invoked-function</a></li><li><a href="#sql-invoked-procedure" title="sql-invoked-procedure">sql-invoked-procedure</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + SQL_routine_spec +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="257" height="42"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#rights-clause" xlink:title="rights_clause" shape="rect"> + <rect x="43" y="22" width="68" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="34">rights_clause</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#sql-routine-body" xlink:title="SQL_routine_body" shape="rect"> + <rect x="139" y="1" width="94" height="18" class="nonterminal"/> + <text class="nonterminal" x="143" y="13">SQL_routine_body</text></a><path class="line" d="m17 10 h2 m20 0 h10 m0 0 h66 m-96 0 h20 m76 0 h20 m-116 0 q10 0 10 10 m96 0 q0 -10 10 -10 m-106 10 v1 m96 0 v-1 m-96 1 q0 10 10 10 m76 0 q10 0 10 -10 m-86 10 h4 m68 0 h4 m20 -21 h4 m94 0 h4 m3 0 h-3"/> + <polygon points="247 10 255 6 255 14"/> + <polygon points="247 10 239 6 239 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#sql-routine-spec" title="SQL_routine_spec" shape="rect">SQL_routine_spec</a></div> + <div>         ::= <a href="#rights-clause" title="rights_clause" shape="rect">rights_clause</a>? <a href="#sql-routine-body" title="SQL_routine_body" shape="rect">SQL_routine_body</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#routine-body" title="routine-body">routine-body</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + rights_clause +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="231" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="26" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">SQL</text> + <rect x="57" y="1" width="52" height="18" class="terminal" rx="4"/> + <text class="terminal" x="61" y="13">SECURITY</text> + <rect x="137" y="1" width="50" height="18" class="terminal" rx="4"/> + <text class="terminal" x="141" y="13">INVOKER</text> + <rect x="137" y="29" width="46" height="18" class="terminal" rx="4"/> + <text class="terminal" x="141" y="41">DEFINER</text> + <path class="line" d="m17 10 h2 m0 0 h4 m26 0 h4 m0 0 h4 m52 0 h4 m20 0 h4 m50 0 h4 m-78 0 h20 m58 0 h20 m-98 0 q10 0 10 10 m78 0 q0 -10 10 -10 m-88 10 v8 m78 0 v-8 m-78 8 q0 10 10 10 m58 0 q10 0 10 -10 m-68 10 h4 m46 0 h4 m0 0 h4 m23 -28 h-3"/> + <polygon points="221 10 229 6 229 14"/> + <polygon points="221 10 213 6 213 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#rights-clause" title="rights_clause" shape="rect">rights_clause</a></div> + <div>         ::= 'SQL' 'SECURITY' ( 'INVOKER' | 'DEFINER' )</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#sql-routine-spec" title="sql-routine-spec">sql-routine-spec</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + SQL_routine_body +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="181" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#sql-procedure-statement" xlink:title="SQL_procedure_statement" shape="rect"> + <rect x="23" y="1" width="134" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">SQL_procedure_statement</text></a><path class="line" d="m17 10 h2 m0 0 h4 m134 0 h4 m3 0 h-3"/> + <polygon points="171 10 179 6 179 14"/> + <polygon points="171 10 163 6 163 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#sql-routine-body" title="SQL_routine_body" shape="rect">SQL_routine_body</a></div> + <div>         ::= <a href="#sql-procedure-statement" title="SQL_procedure_statement" shape="rect">SQL_procedure_statement</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#sql-routine-spec" title="sql-routine-spec">sql-routine-spec</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + external_body_reference +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="665" height="100"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="54" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">EXTERNAL</text> + <rect x="105" y="22" width="34" height="18" class="terminal" rx="4"/> + <text class="terminal" x="109" y="34">NAME</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#external-routine-name" xlink:title="external_routine_name" shape="rect"> + <rect x="147" y="22" width="118" height="18" class="nonterminal"/> + <text class="nonterminal" x="151" y="34">external_routine_name</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#parameter-style-clause" xlink:title="parameter_style_clause" shape="rect"> + <rect x="313" y="22" width="120" height="18" class="nonterminal"/> + <text class="nonterminal" x="317" y="34">parameter_style_clause</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#transform-group-specification" xlink:title="transform_group_specification" shape="rect"> + <rect x="481" y="22" width="146" height="18" class="nonterminal"/> + <text class="nonterminal" x="485" y="34">transform_group_specification</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#external-security-clause" xlink:title="external_security_clause" shape="rect"> + <rect x="501" y="80" width="120" height="18" class="nonterminal"/> + <text class="nonterminal" x="505" y="92">external_security_clause</text></a><path class="line" d="m17 10 h2 m0 0 h4 m54 0 h4 m20 0 h10 m0 0 h158 m-188 0 h20 m168 0 h20 m-208 0 q10 0 10 10 m188 0 q0 -10 10 -10 m-198 10 v1 m188 0 v-1 m-188 1 q0 10 10 10 m168 0 q10 0 10 -10 m-178 10 h4 m34 0 h4 m0 0 h4 m118 0 h4 m40 -21 h10 m0 0 h118 m-148 0 h20 m128 0 h20 m-168 0 q10 0 10 10 m148 0 q0 -10 10 -10 m-158 10 v1 m148 0 v-1 m-148 1 q0 10 10 10 m128 0 q10 0 10 -10 m-138 10 h4 m120 0 h4 m40 -21 h10 m0 0 h144 m-174 0 h20 m154 0 h20 m-194 0 q10 0 10 10 m174 0 q0 -10 10 -10 m-184 10 v1 m174 0 v-1 m-174 1 q0 10 10 10 m154 0 q10 0 10 -10 m-164 10 h4 m146 0 h4 m22 -21 l2 0 m2 0 l2 0 m2 0 l2 0 m-198 58 l2 0 m2 0 l2 0 m2 0 l2 0 m22 0 h10 m0 0 h118 m-148 0 h20 m128 0 h20 m-168 0 q10 0 10 10 m148 0 q0 -10 10 -10 m-158 10 v1 m148 0 v-1 m-148 1 q0 10 10 10 m128 0 q10 0 10 -10 m-138 10 h4 m120 0 h4 m23 -21 h-3"/> + <polygon points="655 68 663 64 663 72"/> + <polygon points="655 68 647 64 647 72"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#external-body-reference" title="external_body_reference" shape="rect">external_body_reference</a></div> + <div>         ::= 'EXTERNAL' ( 'NAME' <a href="#external-routine-name" title="external_routine_name" shape="rect">external_routine_name</a> )? <a href="#parameter-style-clause" title="parameter_style_clause" shape="rect">parameter_style_clause</a>? <a href="#transform-group-specification" title="transform_group_specification" shape="rect">transform_group_specification</a>? <a href="#external-security-clause" title="external_security_clause" shape="rect">external_security_clause</a>?</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#routine-body" title="routine-body">routine-body</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + external_security_clause +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="357" height="77"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="54" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">EXTERNAL</text> + <rect x="85" y="1" width="52" height="18" class="terminal" rx="4"/> + <text class="terminal" x="89" y="13">SECURITY</text> + <rect x="165" y="1" width="46" height="18" class="terminal" rx="4"/> + <text class="terminal" x="169" y="13">DEFINER</text> + <rect x="165" y="29" width="50" height="18" class="terminal" rx="4"/> + <text class="terminal" x="169" y="41">INVOKER</text> + <rect x="165" y="57" width="92" height="18" class="terminal" rx="4"/> + <text class="terminal" x="169" y="69">IMPLEMENTATION</text> + <rect x="265" y="57" width="48" height="18" class="terminal" rx="4"/> + <text class="terminal" x="269" y="69">DEFINED</text> + <path class="line" d="m17 10 h2 m0 0 h4 m54 0 h4 m0 0 h4 m52 0 h4 m20 0 h4 m46 0 h4 m0 0 h102 m-176 0 h20 m156 0 h20 m-196 0 q10 0 10 10 m176 0 q0 -10 10 -10 m-186 10 v8 m176 0 v-8 m-176 8 q0 10 10 10 m156 0 q10 0 10 -10 m-166 10 h4 m50 0 h4 m0 0 h98 m-166 -10 v20 m176 0 v-20 m-176 20 v8 m176 0 v-8 m-176 8 q0 10 10 10 m156 0 q10 0 10 -10 m-166 10 h4 m92 0 h4 m0 0 h4 m48 0 h4 m23 -56 h-3"/> + <polygon points="347 10 355 6 355 14"/> + <polygon points="347 10 339 6 339 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#external-security-clause" title="external_security_clause" shape="rect">external_security_clause</a></div> + <div>         ::= 'EXTERNAL' 'SECURITY' ( 'DEFINER' | 'INVOKER' | 'IMPLEMENTATION' 'DEFINED' + )</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#external-body-reference" title="external-body-reference">external-body-reference</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + parameter_style +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="137" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="43" y="1" width="26" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="13">SQL</text> + <rect x="43" y="29" width="50" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="41">GENERAL</text> + <path class="line" d="m17 10 h2 m20 0 h4 m26 0 h4 m0 0 h24 m-78 0 h20 m58 0 h20 m-98 0 q10 0 10 10 m78 0 q0 -10 10 -10 m-88 10 v8 m78 0 v-8 m-78 8 q0 10 10 10 m58 0 q10 0 10 -10 m-68 10 h4 m50 0 h4 m23 -28 h-3"/> + <polygon points="127 10 135 6 135 14"/> + <polygon points="127 10 119 6 119 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#parameter-style" title="parameter_style" shape="rect">parameter_style</a></div> + <div>         ::= 'SQL'</div> + <div>           | 'GENERAL'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#parameter-style-clause" title="parameter-style-clause">parameter-style-clause</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + deterministic_characteristic +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="203" height="42"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="43" y="22" width="28" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="34">NOT</text> + <rect x="99" y="1" width="80" height="18" class="terminal" rx="4"/> + <text class="terminal" x="103" y="13">DETERMINISTIC</text> + <path class="line" d="m17 10 h2 m20 0 h10 m0 0 h26 m-56 0 h20 m36 0 h20 m-76 0 q10 0 10 10 m56 0 q0 -10 10 -10 m-66 10 v1 m56 0 v-1 m-56 1 q0 10 10 10 m36 0 q10 0 10 -10 m-46 10 h4 m28 0 h4 m20 -21 h4 m80 0 h4 m3 0 h-3"/> + <polygon points="193 10 201 6 201 14"/> + <polygon points="193 10 185 6 185 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#deterministic-characteristic" title="deterministic_characteristic" shape="rect">deterministic_characteristic</a></div> + <div>         ::= 'NOT'? 'DETERMINISTIC'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#method-characteristic" title="method-characteristic">method-characteristic</a></li><li><a href="#routine-characteristic" title="routine-characteristic">routine-characteristic</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + SQL_data_access_indication +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="255" height="105"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="63" y="1" width="22" height="18" class="terminal" rx="4"/> + <text class="terminal" x="67" y="13">NO</text> + <rect x="63" y="29" width="56" height="18" class="terminal" rx="4"/> + <text class="terminal" x="67" y="41">CONTAINS</text> + <rect x="147" y="1" width="26" height="18" class="terminal" rx="4"/> + <text class="terminal" x="151" y="13">SQL</text> + <rect x="63" y="57" width="38" height="18" class="terminal" rx="4"/> + <text class="terminal" x="67" y="69">READS</text> + <rect x="63" y="85" width="54" height="18" class="terminal" rx="4"/> + <text class="terminal" x="67" y="97">MODIFIES</text> + <rect x="145" y="57" width="26" height="18" class="terminal" rx="4"/> + <text class="terminal" x="149" y="69">SQL</text> + <rect x="179" y="57" width="32" height="18" class="terminal" rx="4"/> + <text class="terminal" x="183" y="69">DATA</text> + <path class="line" d="m17 10 h2 m40 0 h4 m22 0 h4 m0 0 h34 m-84 0 h20 m64 0 h20 m-104 0 q10 0 10 10 m84 0 q0 -10 10 -10 m-94 10 v8 m84 0 v-8 m-84 8 q0 10 10 10 m64 0 q10 0 10 -10 m-74 10 h4 m56 0 h4 m20 -28 h4 m26 0 h4 m0 0 h38 m-196 0 h20 m176 0 h20 m-216 0 q10 0 10 10 m196 0 q0 -10 10 -10 m-206 10 v36 m196 0 v-36 m-196 36 q0 10 10 10 m176 0 q10 0 10 -10 m-166 10 h4 m38 0 h4 m0 0 h16 m-82 0 h20 m62 0 h20 m-102 0 q10 0 10 10 m82 0 q0 -10 10 -10 m-92 10 v8 m82 0 v-8 m-82 8 q0 10 10 10 m62 0 q10 0 10 -10 m-72 10 h4 m54 0 h4 m20 -28 h4 m26 0 h4 m0 0 h4 m32 0 h4 m23 -56 h-3"/> + <polygon points="245 10 253 6 253 14"/> + <polygon points="245 10 237 6 237 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#sql-data-access-indication" title="SQL_data_access_indication" shape="rect">SQL_data_access_indication</a></div> + <div>         ::= ( 'NO' | 'CONTAINS' ) 'SQL'</div> + <div>           | ( 'READS' | 'MODIFIES' ) 'SQL' 'DATA'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#alter-routine-characteristic" title="alter-routine-characteristic">alter-routine-characteristic</a></li><li><a href="#method-characteristic" title="method-characteristic">method-characteristic</a></li><li><a href="#routine-characteristic" title="routine-characteristic">routine-characteristic</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + null_call_clause +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="291" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="43" y="1" width="50" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="13">RETURNS</text> + <rect x="101" y="1" width="32" height="18" class="terminal" rx="4"/> + <text class="terminal" x="105" y="13">NULL</text> + <rect x="43" y="29" width="42" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="41">CALLED</text> + <rect x="161" y="1" width="22" height="18" class="terminal" rx="4"/> + <text class="terminal" x="165" y="13">ON</text> + <rect x="191" y="1" width="32" height="18" class="terminal" rx="4"/> + <text class="terminal" x="195" y="13">NULL</text> + <rect x="231" y="1" width="36" height="18" class="terminal" rx="4"/> + <text class="terminal" x="235" y="13">INPUT</text> + <path class="line" d="m17 10 h2 m20 0 h4 m50 0 h4 m0 0 h4 m32 0 h4 m-118 0 h20 m98 0 h20 m-138 0 q10 0 10 10 m118 0 q0 -10 10 -10 m-128 10 v8 m118 0 v-8 m-118 8 q0 10 10 10 m98 0 q10 0 10 -10 m-108 10 h4 m42 0 h4 m0 0 h48 m20 -28 h4 m22 0 h4 m0 0 h4 m32 0 h4 m0 0 h4 m36 0 h4 m3 0 h-3"/> + <polygon points="281 10 289 6 289 14"/> + <polygon points="281 10 273 6 273 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#null-call-clause" title="null_call_clause" shape="rect">null_call_clause</a></div> + <div>         ::= ( 'RETURNS' 'NULL' | 'CALLED' ) 'ON' 'NULL' 'INPUT'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#alter-routine-characteristic" title="alter-routine-characteristic">alter-routine-characteristic</a></li><li><a href="#method-characteristic" title="method-characteristic">method-characteristic</a></li><li><a href="#routine-characteristic" title="routine-characteristic">routine-characteristic</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + maximum_returned_result_sets +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="137" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#unsigned-integer" xlink:title="unsigned_integer" shape="rect"> + <rect x="23" y="1" width="90" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">unsigned_integer</text></a><path class="line" d="m17 10 h2 m0 0 h4 m90 0 h4 m3 0 h-3"/> + <polygon points="127 10 135 6 135 14"/> + <polygon points="127 10 119 6 119 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#maximum-returned-result-sets" title="maximum_returned_result_sets" shape="rect">maximum_returned_result_sets</a></div> + <div>         ::= <a href="#unsigned-integer" title="unsigned_integer" shape="rect">unsigned_integer</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#returned-result-sets-characteristic" title="returned-result-sets-characteristic">returned-result-sets-characteristic</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + transform_group_specification +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="347" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="66" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">TRANSFORM</text> + <rect x="97" y="1" width="42" height="18" class="terminal" rx="4"/> + <text class="terminal" x="101" y="13">GROUP</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#single-group-specification" xlink:title="single_group_specification" shape="rect"> + <rect x="167" y="1" width="126" height="18" class="nonterminal"/> + <text class="nonterminal" x="171" y="13">single_group_specification</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#multiple-group-specification" xlink:title="multiple_group_specification" shape="rect"> + <rect x="167" y="29" width="136" height="18" class="nonterminal"/> + <text class="nonterminal" x="171" y="41">multiple_group_specification</text></a><path class="line" d="m17 10 h2 m0 0 h4 m66 0 h4 m0 0 h4 m42 0 h4 m20 0 h4 m126 0 h4 m0 0 h10 m-164 0 h20 m144 0 h20 m-184 0 q10 0 10 10 m164 0 q0 -10 10 -10 m-174 10 v8 m164 0 v-8 m-164 8 q0 10 10 10 m144 0 q10 0 10 -10 m-154 10 h4 m136 0 h4 m23 -28 h-3"/> + <polygon points="337 10 345 6 345 14"/> + <polygon points="337 10 329 6 329 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#transform-group-specification" title="transform_group_specification" shape="rect">transform_group_specification</a></div> + <div>         ::= 'TRANSFORM' 'GROUP' ( <a href="#single-group-specification" title="single_group_specification" shape="rect">single_group_specification</a> | <a href="#multiple-group-specification" title="multiple_group_specification" shape="rect">multiple_group_specification</a> )</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#external-body-reference" title="external-body-reference">external-body-reference</a></li><li><a href="#module-transform-group-specification" title="module-transform-group-specification">module-transform-group-specification</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + single_group_specification +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="93" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#identifier" xlink:title="identifier" shape="rect"> + <rect x="23" y="1" width="46" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">identifier</text></a><path class="line" d="m17 10 h2 m0 0 h4 m46 0 h4 m3 0 h-3"/> + <polygon points="83 10 91 6 91 14"/> + <polygon points="83 10 75 6 75 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#single-group-specification" title="single_group_specification" shape="rect">single_group_specification</a></div> + <div>         ::= <a href="#identifier" title="identifier" shape="rect">identifier</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#transform-group-specification" title="transform-group-specification">transform-group-specification</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + multiple_group_specification +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="183" height="49"> + <polygon points="9 38 1 34 1 42"/> + <polygon points="17 38 9 34 9 42"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#group-specification" xlink:title="group_specification" shape="rect"> + <rect x="43" y="29" width="96" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">group_specification</text></a><rect x="43" y="1" width="8" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="13">,</text> + <path class="line" d="m17 38 h2 m20 0 h4 m96 0 h4 m-124 0 l20 0 m-1 0 q-9 0 -9 -10 l0 -8 q0 -10 10 -10 m104 28 l20 0 m-20 0 q10 0 10 -10 l0 -8 q0 -10 -10 -10 m-104 0 h4 m8 0 h4 m0 0 h88 m23 28 h-3"/> + <polygon points="173 38 181 34 181 42"/> + <polygon points="173 38 165 34 165 42"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#multiple-group-specification" title="multiple_group_specification" shape="rect">multiple_group_specification</a></div> + <div>         ::= <a href="#group-specification" title="group_specification" shape="rect">group_specification</a> ( ',' <a href="#group-specification" title="group_specification" shape="rect">group_specification</a> )*</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#transform-group-specification" title="transform-group-specification">transform-group-specification</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + group_specification +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="373" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#identifier" xlink:title="identifier" shape="rect"> + <rect x="23" y="1" width="46" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">identifier</text></a><rect x="77" y="1" width="26" height="18" class="terminal" rx="4"/> + <text class="terminal" x="81" y="13">FOR</text> + <rect x="111" y="1" width="30" height="18" class="terminal" rx="4"/> + <text class="terminal" x="115" y="13">TYPE</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#path-resolved-user-defined-type-name" xlink:title="path_resolved_user_defined_type_name" shape="rect"> + <rect x="149" y="1" width="200" height="18" class="nonterminal"/> + <text class="nonterminal" x="153" y="13">path_resolved_user_defined_type_name</text></a><path class="line" d="m17 10 h2 m0 0 h4 m46 0 h4 m0 0 h4 m26 0 h4 m0 0 h4 m30 0 h4 m0 0 h4 m200 0 h4 m3 0 h-3"/> + <polygon points="363 10 371 6 371 14"/> + <polygon points="363 10 355 6 355 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#group-specification" title="group_specification" shape="rect">group_specification</a></div> + <div>         ::= <a href="#identifier" title="identifier" shape="rect">identifier</a> 'FOR' 'TYPE' <a href="#path-resolved-user-defined-type-name" title="path_resolved_user_defined_type_name" shape="rect">path_resolved_user_defined_type_name</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#multiple-group-specification" title="multiple-group-specification">multiple-group-specification</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + alter_routine_statement +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="425" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="36" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">ALTER</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#specific-routine-designator" xlink:title="specific_routine_designator" shape="rect"> + <rect x="67" y="1" width="132" height="18" class="nonterminal"/> + <text class="nonterminal" x="71" y="13">specific_routine_designator</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#alter-routine-characteristics" xlink:title="alter_routine_characteristics" shape="rect"> + <rect x="207" y="1" width="134" height="18" class="nonterminal"/> + <text class="nonterminal" x="211" y="13">alter_routine_characteristics</text></a><rect x="349" y="1" width="52" height="18" class="terminal" rx="4"/> + <text class="terminal" x="353" y="13">RESTRICT</text> + <path class="line" d="m17 10 h2 m0 0 h4 m36 0 h4 m0 0 h4 m132 0 h4 m0 0 h4 m134 0 h4 m0 0 h4 m52 0 h4 m3 0 h-3"/> + <polygon points="415 10 423 6 423 14"/> + <polygon points="415 10 407 6 407 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#alter-routine-statement" title="alter_routine_statement" shape="rect">alter_routine_statement</a></div> + <div>         ::= 'ALTER' <a href="#specific-routine-designator" title="specific_routine_designator" shape="rect">specific_routine_designator</a> <a href="#alter-routine-characteristics" title="alter_routine_characteristics" shape="rect">alter_routine_characteristics</a> 'RESTRICT'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#sql-schema-manipulation-statement" title="sql-schema-manipulation-statement">sql-schema-manipulation-statement</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + alter_routine_characteristics +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="215" height="33"> + <polygon points="9 22 1 18 1 26"/> + <polygon points="17 22 9 18 9 26"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#alter-routine-characteristic" xlink:title="alter_routine_characteristic" shape="rect"> + <rect x="43" y="13" width="128" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="25">alter_routine_characteristic</text></a><path class="line" d="m17 22 h2 m20 0 h4 m128 0 h4 m-156 0 l20 0 m-1 0 q-9 0 -9 -10 l0 -1 q0 -10 10 -10 m136 21 l20 0 m-20 0 q10 0 10 -10 l0 -1 q0 -10 -10 -10 m-136 0 h10 m0 0 h126 m23 21 h-3"/> + <polygon points="205 22 213 18 213 26"/> + <polygon points="205 22 197 18 197 26"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#alter-routine-characteristics" title="alter_routine_characteristics" shape="rect">alter_routine_characteristics</a></div> + <div>         ::= <a href="#alter-routine-characteristic" title="alter_routine_characteristic" shape="rect">alter_routine_characteristic</a>+</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#alter-routine-statement" title="alter-routine-statement">alter-routine-statement</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + alter_routine_characteristic +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="253" height="161"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#language-clause" xlink:title="language_clause" shape="rect"> + <rect x="43" y="1" width="88" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">language_clause</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#parameter-style-clause" xlink:title="parameter_style_clause" shape="rect"> + <rect x="43" y="29" width="120" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">parameter_style_clause</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#sql-data-access-indication" xlink:title="SQL_data_access_indication" shape="rect"> + <rect x="43" y="57" width="138" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="69">SQL_data_access_indication</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#null-call-clause" xlink:title="null_call_clause" shape="rect"> + <rect x="43" y="85" width="78" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="97">null_call_clause</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#returned-result-sets-characteristic" xlink:title="returned_result_sets_characteristic" shape="rect"> + <rect x="43" y="113" width="166" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="125">returned_result_sets_characteristic</text></a><rect x="43" y="141" width="34" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="153">NAME</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#external-routine-name" xlink:title="external_routine_name" shape="rect"> + <rect x="85" y="141" width="118" height="18" class="nonterminal"/> + <text class="nonterminal" x="89" y="153">external_routine_name</text></a><path class="line" d="m17 10 h2 m20 0 h4 m88 0 h4 m0 0 h78 m-194 0 h20 m174 0 h20 m-214 0 q10 0 10 10 m194 0 q0 -10 10 -10 m-204 10 v8 m194 0 v-8 m-194 8 q0 10 10 10 m174 0 q10 0 10 -10 m-184 10 h4 m120 0 h4 m0 0 h46 m-184 -10 v20 m194 0 v-20 m-194 20 v8 m194 0 v-8 m-194 8 q0 10 10 10 m174 0 q10 0 10 -10 m-184 10 h4 m138 0 h4 m0 0 h28 m-184 -10 v20 m194 0 v-20 m-194 20 v8 m194 0 v-8 m-194 8 q0 10 10 10 m174 0 q10 0 10 -10 m-184 10 h4 m78 0 h4 m0 0 h88 m-184 -10 v20 m194 0 v-20 m-194 20 v8 m194 0 v-8 m-194 8 q0 10 10 10 m174 0 q10 0 10 -10 m-184 10 h4 m166 0 h4 m-184 -10 v20 m194 0 v-20 m-194 20 v8 m194 0 v-8 m-194 8 q0 10 10 10 m174 0 q10 0 10 -10 m-184 10 h4 m34 0 h4 m0 0 h4 m118 0 h4 m0 0 h6 m23 -140 h-3"/> + <polygon points="243 10 251 6 251 14"/> + <polygon points="243 10 235 6 235 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#alter-routine-characteristic" title="alter_routine_characteristic" shape="rect">alter_routine_characteristic</a></div> + <div>         ::= <a href="#language-clause" title="language_clause" shape="rect">language_clause</a></div> + <div>           | <a href="#parameter-style-clause" title="parameter_style_clause" shape="rect">parameter_style_clause</a></div> + <div>           | <a href="#sql-data-access-indication" title="SQL_data_access_indication" shape="rect">SQL_data_access_indication</a></div> + <div>           | <a href="#null-call-clause" title="null_call_clause" shape="rect">null_call_clause</a></div> + <div>           | <a href="#returned-result-sets-characteristic" title="returned_result_sets_characteristic" shape="rect">returned_result_sets_characteristic</a></div> + <div>           | 'NAME' <a href="#external-routine-name" title="external_routine_name" shape="rect">external_routine_name</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#alter-routine-characteristics" title="alter-routine-characteristics">alter-routine-characteristics</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + drop_routine_statement +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="305" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="34" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">DROP</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#specific-routine-designator" xlink:title="specific_routine_designator" shape="rect"> + <rect x="65" y="1" width="132" height="18" class="nonterminal"/> + <text class="nonterminal" x="69" y="13">specific_routine_designator</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#drop-behavior" xlink:title="drop_behavior" shape="rect"> + <rect x="205" y="1" width="76" height="18" class="nonterminal"/> + <text class="nonterminal" x="209" y="13">drop_behavior</text></a><path class="line" d="m17 10 h2 m0 0 h4 m34 0 h4 m0 0 h4 m132 0 h4 m0 0 h4 m76 0 h4 m3 0 h-3"/> + <polygon points="295 10 303 6 303 14"/> + <polygon points="295 10 287 6 287 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#drop-routine-statement" title="drop_routine_statement" shape="rect">drop_routine_statement</a></div> + <div>         ::= 'DROP' <a href="#specific-routine-designator" title="specific_routine_designator" shape="rect">specific_routine_designator</a> <a href="#drop-behavior" title="drop_behavior" shape="rect">drop_behavior</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#sql-schema-manipulation-statement" title="sql-schema-manipulation-statement">sql-schema-manipulation-statement</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + user_defined_cast_definition +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="659" height="42"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="42" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">CREATE</text> + <rect x="73" y="1" width="32" height="18" class="terminal" rx="4"/> + <text class="terminal" x="77" y="13">CAST</text> + <rect x="113" y="1" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="117" y="13">(</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#source-data-type" xlink:title="source_data_type" shape="rect"> + <rect x="133" y="1" width="92" height="18" class="nonterminal"/> + <text class="nonterminal" x="137" y="13">source_data_type</text></a><rect x="233" y="1" width="20" height="18" class="terminal" rx="4"/> + <text class="terminal" x="237" y="13">AS</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#target-data-type" xlink:title="target_data_type" shape="rect"> + <rect x="261" y="1" width="90" height="18" class="nonterminal"/> + <text class="nonterminal" x="265" y="13">target_data_type</text></a><rect x="359" y="1" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="363" y="13">)</text> + <rect x="379" y="1" width="34" height="18" class="terminal" rx="4"/> + <text class="terminal" x="383" y="13">WITH</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#cast-function" xlink:title="cast_function" shape="rect"> + <rect x="421" y="1" width="68" height="18" class="nonterminal"/> + <text class="nonterminal" x="425" y="13">cast_function</text></a><rect x="517" y="22" width="20" height="18" class="terminal" rx="4"/> + <text class="terminal" x="521" y="34">AS</text> + <rect x="545" y="22" width="70" height="18" class="terminal" rx="4"/> + <text class="terminal" x="549" y="34">ASSIGNMENT</text> + <path class="line" d="m17 10 h2 m0 0 h4 m42 0 h4 m0 0 h4 m32 0 h4 m0 0 h4 m12 0 h4 m0 0 h4 m92 0 h4 m0 0 h4 m20 0 h4 m0 0 h4 m90 0 h4 m0 0 h4 m12 0 h4 m0 0 h4 m34 0 h4 m0 0 h4 m68 0 h4 m20 0 h10 m0 0 h96 m-126 0 h20 m106 0 h20 m-146 0 q10 0 10 10 m126 0 q0 -10 10 -10 m-136 10 v1 m126 0 v-1 m-126 1 q0 10 10 10 m106 0 q10 0 10 -10 m-116 10 h4 m20 0 h4 m0 0 h4 m70 0 h4 m23 -21 h-3"/> + <polygon points="649 10 657 6 657 14"/> + <polygon points="649 10 641 6 641 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#user-defined-cast-definition" title="user_defined_cast_definition" shape="rect">user_defined_cast_definition</a></div> + <div>         ::= 'CREATE' 'CAST' '(' <a href="#source-data-type" title="source_data_type" shape="rect">source_data_type</a> 'AS' <a href="#target-data-type" title="target_data_type" shape="rect">target_data_type</a> ')' 'WITH' <a href="#cast-function" title="cast_function" shape="rect">cast_function</a> ( 'AS' 'ASSIGNMENT' )?</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#sql-schema-definition-statement" title="sql-schema-definition-statement">sql-schema-definition-statement</a></li><li><a href="#schema-element" title="schema-element">schema-element</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + cast_function +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="179" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#specific-routine-designator" xlink:title="specific_routine_designator" shape="rect"> + <rect x="23" y="1" width="132" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">specific_routine_designator</text></a><path class="line" d="m17 10 h2 m0 0 h4 m132 0 h4 m3 0 h-3"/> + <polygon points="169 10 177 6 177 14"/> + <polygon points="169 10 161 6 161 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#cast-function" title="cast_function" shape="rect">cast_function</a></div> + <div>         ::= <a href="#specific-routine-designator" title="specific_routine_designator" shape="rect">specific_routine_designator</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#user-defined-cast-definition" title="user-defined-cast-definition">user-defined-cast-definition</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + source_data_type +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="103" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#data-type" xlink:title="data_type" shape="rect"> + <rect x="23" y="1" width="56" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">data_type</text></a><path class="line" d="m17 10 h2 m0 0 h4 m56 0 h4 m3 0 h-3"/> + <polygon points="93 10 101 6 101 14"/> + <polygon points="93 10 85 6 85 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#source-data-type" title="source_data_type" shape="rect">source_data_type</a></div> + <div>         ::= <a href="#data-type" title="data_type" shape="rect">data_type</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#drop-user-defined-cast-statement" title="drop-user-defined-cast-statement">drop-user-defined-cast-statement</a></li><li><a href="#user-defined-cast-definition" title="user-defined-cast-definition">user-defined-cast-definition</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + target_data_type +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="103" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#data-type" xlink:title="data_type" shape="rect"> + <rect x="23" y="1" width="56" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">data_type</text></a><path class="line" d="m17 10 h2 m0 0 h4 m56 0 h4 m3 0 h-3"/> + <polygon points="93 10 101 6 101 14"/> + <polygon points="93 10 85 6 85 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#target-data-type" title="target_data_type" shape="rect">target_data_type</a></div> + <div>         ::= <a href="#data-type" title="data_type" shape="rect">data_type</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#drop-user-defined-cast-statement" title="drop-user-defined-cast-statement">drop-user-defined-cast-statement</a></li><li><a href="#user-defined-cast-definition" title="user-defined-cast-definition">user-defined-cast-definition</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + drop_user_defined_cast_statement +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="471" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="34" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">DROP</text> + <rect x="65" y="1" width="32" height="18" class="terminal" rx="4"/> + <text class="terminal" x="69" y="13">CAST</text> + <rect x="105" y="1" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="109" y="13">(</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#source-data-type" xlink:title="source_data_type" shape="rect"> + <rect x="125" y="1" width="92" height="18" class="nonterminal"/> + <text class="nonterminal" x="129" y="13">source_data_type</text></a><rect x="225" y="1" width="20" height="18" class="terminal" rx="4"/> + <text class="terminal" x="229" y="13">AS</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#target-data-type" xlink:title="target_data_type" shape="rect"> + <rect x="253" y="1" width="90" height="18" class="nonterminal"/> + <text class="nonterminal" x="257" y="13">target_data_type</text></a><rect x="351" y="1" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="355" y="13">)</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#drop-behavior" xlink:title="drop_behavior" shape="rect"> + <rect x="371" y="1" width="76" height="18" class="nonterminal"/> + <text class="nonterminal" x="375" y="13">drop_behavior</text></a><path class="line" d="m17 10 h2 m0 0 h4 m34 0 h4 m0 0 h4 m32 0 h4 m0 0 h4 m12 0 h4 m0 0 h4 m92 0 h4 m0 0 h4 m20 0 h4 m0 0 h4 m90 0 h4 m0 0 h4 m12 0 h4 m0 0 h4 m76 0 h4 m3 0 h-3"/> + <polygon points="461 10 469 6 469 14"/> + <polygon points="461 10 453 6 453 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#drop-user-defined-cast-statement" title="drop_user_defined_cast_statement" shape="rect">drop_user_defined_cast_statement</a></div> + <div>         ::= 'DROP' 'CAST' '(' <a href="#source-data-type" title="source_data_type" shape="rect">source_data_type</a> 'AS' <a href="#target-data-type" title="target_data_type" shape="rect">target_data_type</a> ')' <a href="#drop-behavior" title="drop_behavior" shape="rect">drop_behavior</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#sql-schema-manipulation-statement" title="sql-schema-manipulation-statement">sql-schema-manipulation-statement</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + user_defined_ordering_definition +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="495" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="42" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">CREATE</text> + <rect x="73" y="1" width="58" height="18" class="terminal" rx="4"/> + <text class="terminal" x="77" y="13">ORDERING</text> + <rect x="139" y="1" width="26" height="18" class="terminal" rx="4"/> + <text class="terminal" x="143" y="13">FOR</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#schema-resolved-user-defined-type-name" xlink:title="schema_resolved_user_defined_type_name" shape="rect"> + <rect x="173" y="1" width="216" height="18" class="nonterminal"/> + <text class="nonterminal" x="177" y="13">schema_resolved_user_defined_type_name</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#ordering-form" xlink:title="ordering_form" shape="rect"> + <rect x="397" y="1" width="74" height="18" class="nonterminal"/> + <text class="nonterminal" x="401" y="13">ordering_form</text></a><path class="line" d="m17 10 h2 m0 0 h4 m42 0 h4 m0 0 h4 m58 0 h4 m0 0 h4 m26 0 h4 m0 0 h4 m216 0 h4 m0 0 h4 m74 0 h4 m3 0 h-3"/> + <polygon points="485 10 493 6 493 14"/> + <polygon points="485 10 477 6 477 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#user-defined-ordering-definition" title="user_defined_ordering_definition" shape="rect">user_defined_ordering_definition</a></div> + <div>         ::= 'CREATE' 'ORDERING' 'FOR' <a href="#schema-resolved-user-defined-type-name" title="schema_resolved_user_defined_type_name" shape="rect">schema_resolved_user_defined_type_name</a> <a href="#ordering-form" title="ordering_form" shape="rect">ordering_form</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#sql-schema-definition-statement" title="sql-schema-definition-statement">sql-schema-definition-statement</a></li><li><a href="#schema-element" title="schema-element">schema-element</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + ordering_form +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="197" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#equals-ordering-form" xlink:title="equals_ordering_form" shape="rect"> + <rect x="43" y="1" width="110" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">equals_ordering_form</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#full-ordering-form" xlink:title="full_ordering_form" shape="rect"> + <rect x="43" y="29" width="90" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">full_ordering_form</text></a><path class="line" d="m17 10 h2 m20 0 h4 m110 0 h4 m-138 0 h20 m118 0 h20 m-158 0 q10 0 10 10 m138 0 q0 -10 10 -10 m-148 10 v8 m138 0 v-8 m-138 8 q0 10 10 10 m118 0 q10 0 10 -10 m-128 10 h4 m90 0 h4 m0 0 h20 m23 -28 h-3"/> + <polygon points="187 10 195 6 195 14"/> + <polygon points="187 10 179 6 179 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#ordering-form" title="ordering_form" shape="rect">ordering_form</a></div> + <div>         ::= <a href="#equals-ordering-form" title="equals_ordering_form" shape="rect">equals_ordering_form</a></div> + <div>           | <a href="#full-ordering-form" title="full_ordering_form" shape="rect">full_ordering_form</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#user-defined-ordering-definition" title="user-defined-ordering-definition">user-defined-ordering-definition</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + equals_ordering_form +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="261" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="44" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">EQUALS</text> + <rect x="75" y="1" width="34" height="18" class="terminal" rx="4"/> + <text class="terminal" x="79" y="13">ONLY</text> + <rect x="117" y="1" width="20" height="18" class="terminal" rx="4"/> + <text class="terminal" x="121" y="13">BY</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#ordering-category" xlink:title="ordering_category" shape="rect"> + <rect x="145" y="1" width="92" height="18" class="nonterminal"/> + <text class="nonterminal" x="149" y="13">ordering_category</text></a><path class="line" d="m17 10 h2 m0 0 h4 m44 0 h4 m0 0 h4 m34 0 h4 m0 0 h4 m20 0 h4 m0 0 h4 m92 0 h4 m3 0 h-3"/> + <polygon points="251 10 259 6 259 14"/> + <polygon points="251 10 243 6 243 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#equals-ordering-form" title="equals_ordering_form" shape="rect">equals_ordering_form</a></div> + <div>         ::= 'EQUALS' 'ONLY' 'BY' <a href="#ordering-category" title="ordering_category" shape="rect">ordering_category</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#ordering-form" title="ordering-form">ordering-form</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + full_ordering_form +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="253" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="40" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">ORDER</text> + <rect x="71" y="1" width="30" height="18" class="terminal" rx="4"/> + <text class="terminal" x="75" y="13">FULL</text> + <rect x="109" y="1" width="20" height="18" class="terminal" rx="4"/> + <text class="terminal" x="113" y="13">BY</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#ordering-category" xlink:title="ordering_category" shape="rect"> + <rect x="137" y="1" width="92" height="18" class="nonterminal"/> + <text class="nonterminal" x="141" y="13">ordering_category</text></a><path class="line" d="m17 10 h2 m0 0 h4 m40 0 h4 m0 0 h4 m30 0 h4 m0 0 h4 m20 0 h4 m0 0 h4 m92 0 h4 m3 0 h-3"/> + <polygon points="243 10 251 6 251 14"/> + <polygon points="243 10 235 6 235 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#full-ordering-form" title="full_ordering_form" shape="rect">full_ordering_form</a></div> + <div>         ::= 'ORDER' 'FULL' 'BY' <a href="#ordering-category" title="ordering_category" shape="rect">ordering_category</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#ordering-form" title="ordering-form">ordering-form</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + ordering_category +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="173" height="77"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#relative-category" xlink:title="relative_category" shape="rect"> + <rect x="43" y="1" width="86" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">relative_category</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#map-category" xlink:title="map_category" shape="rect"> + <rect x="43" y="29" width="76" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">map_category</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#state-category" xlink:title="state_category" shape="rect"> + <rect x="43" y="57" width="78" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="69">state_category</text></a><path class="line" d="m17 10 h2 m20 0 h4 m86 0 h4 m-114 0 h20 m94 0 h20 m-134 0 q10 0 10 10 m114 0 q0 -10 10 -10 m-124 10 v8 m114 0 v-8 m-114 8 q0 10 10 10 m94 0 q10 0 10 -10 m-104 10 h4 m76 0 h4 m0 0 h10 m-104 -10 v20 m114 0 v-20 m-114 20 v8 m114 0 v-8 m-114 8 q0 10 10 10 m94 0 q10 0 10 -10 m-104 10 h4 m78 0 h4 m0 0 h8 m23 -56 h-3"/> + <polygon points="163 10 171 6 171 14"/> + <polygon points="163 10 155 6 155 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#ordering-category" title="ordering_category" shape="rect">ordering_category</a></div> + <div>         ::= <a href="#relative-category" title="relative_category" shape="rect">relative_category</a></div> + <div>           | <a href="#map-category" title="map_category" shape="rect">map_category</a></div> + <div>           | <a href="#state-category" title="state_category" shape="rect">state_category</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#equals-ordering-form" title="equals-ordering-form">equals-ordering-form</a></li><li><a href="#full-ordering-form" title="full-ordering-form">full-ordering-form</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + relative_category +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="287" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="50" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">RELATIVE</text> + <rect x="81" y="1" width="34" height="18" class="terminal" rx="4"/> + <text class="terminal" x="85" y="13">WITH</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#relative-function-specification" xlink:title="relative_function_specification" shape="rect"> + <rect x="123" y="1" width="140" height="18" class="nonterminal"/> + <text class="nonterminal" x="127" y="13">relative_function_specification</text></a><path class="line" d="m17 10 h2 m0 0 h4 m50 0 h4 m0 0 h4 m34 0 h4 m0 0 h4 m140 0 h4 m3 0 h-3"/> + <polygon points="277 10 285 6 285 14"/> + <polygon points="277 10 269 6 269 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#relative-category" title="relative_category" shape="rect">relative_category</a></div> + <div>         ::= 'RELATIVE' 'WITH' <a href="#relative-function-specification" title="relative_function_specification" shape="rect">relative_function_specification</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#ordering-category" title="ordering-category">ordering-category</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + map_category +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="255" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="28" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">MAP</text> + <rect x="59" y="1" width="34" height="18" class="terminal" rx="4"/> + <text class="terminal" x="63" y="13">WITH</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#map-function-specification" xlink:title="map_function_specification" shape="rect"> + <rect x="101" y="1" width="130" height="18" class="nonterminal"/> + <text class="nonterminal" x="105" y="13">map_function_specification</text></a><path class="line" d="m17 10 h2 m0 0 h4 m28 0 h4 m0 0 h4 m34 0 h4 m0 0 h4 m130 0 h4 m3 0 h-3"/> + <polygon points="245 10 253 6 253 14"/> + <polygon points="245 10 237 6 237 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#map-category" title="map_category" shape="rect">map_category</a></div> + <div>         ::= 'MAP' 'WITH' <a href="#map-function-specification" title="map_function_specification" shape="rect">map_function_specification</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#ordering-category" title="ordering-category">ordering-category</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + state_category +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="253" height="42"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="36" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">STATE</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#schema-qualified-name" xlink:title="schema_qualified_name" shape="rect"> + <rect x="87" y="22" width="122" height="18" class="nonterminal"/> + <text class="nonterminal" x="91" y="34">schema_qualified_name</text></a><path class="line" d="m17 10 h2 m0 0 h4 m36 0 h4 m20 0 h10 m0 0 h120 m-150 0 h20 m130 0 h20 m-170 0 q10 0 10 10 m150 0 q0 -10 10 -10 m-160 10 v1 m150 0 v-1 m-150 1 q0 10 10 10 m130 0 q10 0 10 -10 m-140 10 h4 m122 0 h4 m23 -21 h-3"/> + <polygon points="243 10 251 6 251 14"/> + <polygon points="243 10 235 6 235 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#state-category" title="state_category" shape="rect">state_category</a></div> + <div>         ::= 'STATE' <a href="#schema-qualified-name" title="schema_qualified_name" shape="rect">schema_qualified_name</a>?</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#ordering-category" title="ordering-category">ordering-category</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + relative_function_specification +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="179" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#specific-routine-designator" xlink:title="specific_routine_designator" shape="rect"> + <rect x="23" y="1" width="132" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">specific_routine_designator</text></a><path class="line" d="m17 10 h2 m0 0 h4 m132 0 h4 m3 0 h-3"/> + <polygon points="169 10 177 6 177 14"/> + <polygon points="169 10 161 6 161 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#relative-function-specification" title="relative_function_specification" shape="rect">relative_function_specification</a></div> + <div>         ::= <a href="#specific-routine-designator" title="specific_routine_designator" shape="rect">specific_routine_designator</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#relative-category" title="relative-category">relative-category</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + map_function_specification +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="179" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#specific-routine-designator" xlink:title="specific_routine_designator" shape="rect"> + <rect x="23" y="1" width="132" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">specific_routine_designator</text></a><path class="line" d="m17 10 h2 m0 0 h4 m132 0 h4 m3 0 h-3"/> + <polygon points="169 10 177 6 177 14"/> + <polygon points="169 10 161 6 161 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#map-function-specification" title="map_function_specification" shape="rect">map_function_specification</a></div> + <div>         ::= <a href="#specific-routine-designator" title="specific_routine_designator" shape="rect">specific_routine_designator</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#map-category" title="map-category">map-category</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + drop_user_defined_ordering_statement +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="489" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="34" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">DROP</text> + <rect x="65" y="1" width="58" height="18" class="terminal" rx="4"/> + <text class="terminal" x="69" y="13">ORDERING</text> + <rect x="131" y="1" width="26" height="18" class="terminal" rx="4"/> + <text class="terminal" x="135" y="13">FOR</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#schema-resolved-user-defined-type-name" xlink:title="schema_resolved_user_defined_type_name" shape="rect"> + <rect x="165" y="1" width="216" height="18" class="nonterminal"/> + <text class="nonterminal" x="169" y="13">schema_resolved_user_defined_type_name</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#drop-behavior" xlink:title="drop_behavior" shape="rect"> + <rect x="389" y="1" width="76" height="18" class="nonterminal"/> + <text class="nonterminal" x="393" y="13">drop_behavior</text></a><path class="line" d="m17 10 h2 m0 0 h4 m34 0 h4 m0 0 h4 m58 0 h4 m0 0 h4 m26 0 h4 m0 0 h4 m216 0 h4 m0 0 h4 m76 0 h4 m3 0 h-3"/> + <polygon points="479 10 487 6 487 14"/> + <polygon points="479 10 471 6 471 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#drop-user-defined-ordering-statement" title="drop_user_defined_ordering_statement" shape="rect">drop_user_defined_ordering_statement</a></div> + <div>         ::= 'DROP' 'ORDERING' 'FOR' <a href="#schema-resolved-user-defined-type-name" title="schema_resolved_user_defined_type_name" shape="rect">schema_resolved_user_defined_type_name</a> <a href="#drop-behavior" title="drop_behavior" shape="rect">drop_behavior</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#sql-schema-manipulation-statement" title="sql-schema-manipulation-statement">sql-schema-manipulation-statement</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + transform_definition +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="601" height="61"> + <polygon points="9 22 1 18 1 26"/> + <polygon points="17 22 9 18 9 26"/> + <rect x="23" y="13" width="42" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="25">CREATE</text> + <rect x="93" y="13" width="66" height="18" class="terminal" rx="4"/> + <text class="terminal" x="97" y="25">TRANSFORM</text> + <rect x="93" y="41" width="72" height="18" class="terminal" rx="4"/> + <text class="terminal" x="97" y="53">TRANSFORMS</text> + <rect x="193" y="13" width="26" height="18" class="terminal" rx="4"/> + <text class="terminal" x="197" y="25">FOR</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#schema-resolved-user-defined-type-name" xlink:title="schema_resolved_user_defined_type_name" shape="rect"> + <rect x="227" y="13" width="216" height="18" class="nonterminal"/> + <text class="nonterminal" x="231" y="25">schema_resolved_user_defined_type_name</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#transform-group" xlink:title="transform_group" shape="rect"> + <rect x="471" y="13" width="86" height="18" class="nonterminal"/> + <text class="nonterminal" x="475" y="25">transform_group</text></a><path class="line" d="m17 22 h2 m0 0 h4 m42 0 h4 m20 0 h4 m66 0 h4 m0 0 h6 m-100 0 h20 m80 0 h20 m-120 0 q10 0 10 10 m100 0 q0 -10 10 -10 m-110 10 v8 m100 0 v-8 m-100 8 q0 10 10 10 m80 0 q10 0 10 -10 m-90 10 h4 m72 0 h4 m20 -28 h4 m26 0 h4 m0 0 h4 m216 0 h4 m20 0 h4 m86 0 h4 m-114 0 l20 0 m-1 0 q-9 0 -9 -10 l0 -1 q0 -10 10 -10 m94 21 l20 0 m-20 0 q10 0 10 -10 l0 -1 q0 -10 -10 -10 m-94 0 h10 m0 0 h84 m23 21 h-3"/> + <polygon points="591 22 599 18 599 26"/> + <polygon points="591 22 583 18 583 26"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#transform-definition" title="transform_definition" shape="rect">transform_definition</a></div> + <div>         ::= 'CREATE' ( 'TRANSFORM' | 'TRANSFORMS' ) 'FOR' <a href="#schema-resolved-user-defined-type-name" title="schema_resolved_user_defined_type_name" shape="rect">schema_resolved_user_defined_type_name</a> <a href="#transform-group" title="transform_group" shape="rect">transform_group</a>+</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#sql-schema-definition-statement" title="sql-schema-definition-statement">sql-schema-definition-statement</a></li><li><a href="#schema-element" title="schema-element">schema-element</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + transform_group +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="255" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#identifier" xlink:title="identifier" shape="rect"> + <rect x="23" y="1" width="46" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">identifier</text></a><rect x="77" y="1" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="81" y="13">(</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#transform-element-list" xlink:title="transform_element_list" shape="rect"> + <rect x="97" y="1" width="114" height="18" class="nonterminal"/> + <text class="nonterminal" x="101" y="13">transform_element_list</text></a><rect x="219" y="1" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="223" y="13">)</text> + <path class="line" d="m17 10 h2 m0 0 h4 m46 0 h4 m0 0 h4 m12 0 h4 m0 0 h4 m114 0 h4 m0 0 h4 m12 0 h4 m3 0 h-3"/> + <polygon points="245 10 253 6 253 14"/> + <polygon points="245 10 237 6 237 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#transform-group" title="transform_group" shape="rect">transform_group</a></div> + <div>         ::= <a href="#identifier" title="identifier" shape="rect">identifier</a> '(' <a href="#transform-element-list" title="transform_element_list" shape="rect">transform_element_list</a> ')'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#transform-definition" title="transform-definition">transform-definition</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + transform_element_list +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="307" height="42"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#transform-element" xlink:title="transform_element" shape="rect"> + <rect x="23" y="1" width="98" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">transform_element</text></a><rect x="149" y="22" width="8" height="18" class="terminal" rx="4"/> + <text class="terminal" x="153" y="34">,</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#transform-element" xlink:title="transform_element" shape="rect"> + <rect x="165" y="22" width="98" height="18" class="nonterminal"/> + <text class="nonterminal" x="169" y="34">transform_element</text></a><path class="line" d="m17 10 h2 m0 0 h4 m98 0 h4 m20 0 h10 m0 0 h112 m-142 0 h20 m122 0 h20 m-162 0 q10 0 10 10 m142 0 q0 -10 10 -10 m-152 10 v1 m142 0 v-1 m-142 1 q0 10 10 10 m122 0 q10 0 10 -10 m-132 10 h4 m8 0 h4 m0 0 h4 m98 0 h4 m23 -21 h-3"/> + <polygon points="297 10 305 6 305 14"/> + <polygon points="297 10 289 6 289 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#transform-element-list" title="transform_element_list" shape="rect">transform_element_list</a></div> + <div>         ::= <a href="#transform-element" title="transform_element" shape="rect">transform_element</a> ( ',' <a href="#transform-element" title="transform_element" shape="rect">transform_element</a> )?</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#add-transform-element-list" title="add-transform-element-list">add-transform-element-list</a></li><li><a href="#transform-group" title="transform-group">transform-group</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + transform_element +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="135" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#to-sql" xlink:title="to_sql" shape="rect"> + <rect x="43" y="1" width="36" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">to_sql</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#from-sql" xlink:title="from_sql" shape="rect"> + <rect x="43" y="29" width="48" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">from_sql</text></a><path class="line" d="m17 10 h2 m20 0 h4 m36 0 h4 m0 0 h12 m-76 0 h20 m56 0 h20 m-96 0 q10 0 10 10 m76 0 q0 -10 10 -10 m-86 10 v8 m76 0 v-8 m-76 8 q0 10 10 10 m56 0 q10 0 10 -10 m-66 10 h4 m48 0 h4 m23 -28 h-3"/> + <polygon points="125 10 133 6 133 14"/> + <polygon points="125 10 117 6 117 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#transform-element" title="transform_element" shape="rect">transform_element</a></div> + <div>         ::= <a href="#to-sql" title="to_sql" shape="rect">to_sql</a></div> + <div>           | <a href="#from-sql" title="from_sql" shape="rect">from_sql</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#transform-element-list" title="transform-element-list">transform-element-list</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + to_sql +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="229" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="20" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">TO</text> + <rect x="51" y="1" width="26" height="18" class="terminal" rx="4"/> + <text class="terminal" x="55" y="13">SQL</text> + <rect x="85" y="1" width="34" height="18" class="terminal" rx="4"/> + <text class="terminal" x="89" y="13">WITH</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#to-sql-function" xlink:title="to_sql_function" shape="rect"> + <rect x="127" y="1" width="78" height="18" class="nonterminal"/> + <text class="nonterminal" x="131" y="13">to_sql_function</text></a><path class="line" d="m17 10 h2 m0 0 h4 m20 0 h4 m0 0 h4 m26 0 h4 m0 0 h4 m34 0 h4 m0 0 h4 m78 0 h4 m3 0 h-3"/> + <polygon points="219 10 227 6 227 14"/> + <polygon points="219 10 211 6 211 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#to-sql" title="to_sql" shape="rect">to_sql</a>   ::= 'TO' 'SQL' 'WITH' <a href="#to-sql-function" title="to_sql_function" shape="rect">to_sql_function</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#transform-element" title="transform-element">transform-element</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + from_sql +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="257" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="36" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">FROM</text> + <rect x="67" y="1" width="26" height="18" class="terminal" rx="4"/> + <text class="terminal" x="71" y="13">SQL</text> + <rect x="101" y="1" width="34" height="18" class="terminal" rx="4"/> + <text class="terminal" x="105" y="13">WITH</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#from-sql-function" xlink:title="from_sql_function" shape="rect"> + <rect x="143" y="1" width="90" height="18" class="nonterminal"/> + <text class="nonterminal" x="147" y="13">from_sql_function</text></a><path class="line" d="m17 10 h2 m0 0 h4 m36 0 h4 m0 0 h4 m26 0 h4 m0 0 h4 m34 0 h4 m0 0 h4 m90 0 h4 m3 0 h-3"/> + <polygon points="247 10 255 6 255 14"/> + <polygon points="247 10 239 6 239 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#from-sql" title="from_sql" shape="rect">from_sql</a> ::= 'FROM' 'SQL' 'WITH' <a href="#from-sql-function" title="from_sql_function" shape="rect">from_sql_function</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#transform-element" title="transform-element">transform-element</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + to_sql_function +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="179" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#specific-routine-designator" xlink:title="specific_routine_designator" shape="rect"> + <rect x="23" y="1" width="132" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">specific_routine_designator</text></a><path class="line" d="m17 10 h2 m0 0 h4 m132 0 h4 m3 0 h-3"/> + <polygon points="169 10 177 6 177 14"/> + <polygon points="169 10 161 6 161 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#to-sql-function" title="to_sql_function" shape="rect">to_sql_function</a></div> + <div>         ::= <a href="#specific-routine-designator" title="specific_routine_designator" shape="rect">specific_routine_designator</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#to-sql" title="to-sql">to-sql</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + from_sql_function +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="179" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#specific-routine-designator" xlink:title="specific_routine_designator" shape="rect"> + <rect x="23" y="1" width="132" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">specific_routine_designator</text></a><path class="line" d="m17 10 h2 m0 0 h4 m132 0 h4 m3 0 h-3"/> + <polygon points="169 10 177 6 177 14"/> + <polygon points="169 10 161 6 161 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#from-sql-function" title="from_sql_function" shape="rect">from_sql_function</a></div> + <div>         ::= <a href="#specific-routine-designator" title="specific_routine_designator" shape="rect">specific_routine_designator</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#from-sql" title="from-sql">from-sql</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + alter_transform_statement +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="571" height="61"> + <polygon points="9 22 1 18 1 26"/> + <polygon points="17 22 9 18 9 26"/> + <rect x="23" y="13" width="36" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="25">ALTER</text> + <rect x="87" y="13" width="66" height="18" class="terminal" rx="4"/> + <text class="terminal" x="91" y="25">TRANSFORM</text> + <rect x="87" y="41" width="72" height="18" class="terminal" rx="4"/> + <text class="terminal" x="91" y="53">TRANSFORMS</text> + <rect x="187" y="13" width="26" height="18" class="terminal" rx="4"/> + <text class="terminal" x="191" y="25">FOR</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#schema-resolved-user-defined-type-name" xlink:title="schema_resolved_user_defined_type_name" shape="rect"> + <rect x="221" y="13" width="216" height="18" class="nonterminal"/> + <text class="nonterminal" x="225" y="25">schema_resolved_user_defined_type_name</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#alter-group" xlink:title="alter_group" shape="rect"> + <rect x="465" y="13" width="62" height="18" class="nonterminal"/> + <text class="nonterminal" x="469" y="25">alter_group</text></a><path class="line" d="m17 22 h2 m0 0 h4 m36 0 h4 m20 0 h4 m66 0 h4 m0 0 h6 m-100 0 h20 m80 0 h20 m-120 0 q10 0 10 10 m100 0 q0 -10 10 -10 m-110 10 v8 m100 0 v-8 m-100 8 q0 10 10 10 m80 0 q10 0 10 -10 m-90 10 h4 m72 0 h4 m20 -28 h4 m26 0 h4 m0 0 h4 m216 0 h4 m20 0 h4 m62 0 h4 m-90 0 l20 0 m-1 0 q-9 0 -9 -10 l0 -1 q0 -10 10 -10 m70 21 l20 0 m-20 0 q10 0 10 -10 l0 -1 q0 -10 -10 -10 m-70 0 h10 m0 0 h60 m23 21 h-3"/> + <polygon points="561 22 569 18 569 26"/> + <polygon points="561 22 553 18 553 26"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#alter-transform-statement" title="alter_transform_statement" shape="rect">alter_transform_statement</a></div> + <div>         ::= 'ALTER' ( 'TRANSFORM' | 'TRANSFORMS' ) 'FOR' <a href="#schema-resolved-user-defined-type-name" title="schema_resolved_user_defined_type_name" shape="rect">schema_resolved_user_defined_type_name</a> <a href="#alter-group" title="alter_group" shape="rect">alter_group</a>+</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#sql-schema-manipulation-statement" title="sql-schema-manipulation-statement">sql-schema-manipulation-statement</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + alter_group +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="269" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#identifier" xlink:title="identifier" shape="rect"> + <rect x="23" y="1" width="46" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">identifier</text></a><rect x="77" y="1" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="81" y="13">(</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#alter-transform-action-list" xlink:title="alter_transform_action_list" shape="rect"> + <rect x="97" y="1" width="128" height="18" class="nonterminal"/> + <text class="nonterminal" x="101" y="13">alter_transform_action_list</text></a><rect x="233" y="1" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="237" y="13">)</text> + <path class="line" d="m17 10 h2 m0 0 h4 m46 0 h4 m0 0 h4 m12 0 h4 m0 0 h4 m128 0 h4 m0 0 h4 m12 0 h4 m3 0 h-3"/> + <polygon points="259 10 267 6 267 14"/> + <polygon points="259 10 251 6 251 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#alter-group" title="alter_group" shape="rect">alter_group</a></div> + <div>         ::= <a href="#identifier" title="identifier" shape="rect">identifier</a> '(' <a href="#alter-transform-action-list" title="alter_transform_action_list" shape="rect">alter_transform_action_list</a> ')'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#alter-transform-statement" title="alter-transform-statement">alter-transform-statement</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + alter_transform_action_list +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="199" height="49"> + <polygon points="9 38 1 34 1 42"/> + <polygon points="17 38 9 34 9 42"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#alter-transform-action" xlink:title="alter_transform_action" shape="rect"> + <rect x="43" y="29" width="112" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">alter_transform_action</text></a><rect x="43" y="1" width="8" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="13">,</text> + <path class="line" d="m17 38 h2 m20 0 h4 m112 0 h4 m-140 0 l20 0 m-1 0 q-9 0 -9 -10 l0 -8 q0 -10 10 -10 m120 28 l20 0 m-20 0 q10 0 10 -10 l0 -8 q0 -10 -10 -10 m-120 0 h4 m8 0 h4 m0 0 h104 m23 28 h-3"/> + <polygon points="189 38 197 34 197 42"/> + <polygon points="189 38 181 34 181 42"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#alter-transform-action-list" title="alter_transform_action_list" shape="rect">alter_transform_action_list</a></div> + <div>         ::= <a href="#alter-transform-action" title="alter_transform_action" shape="rect">alter_transform_action</a> ( ',' <a href="#alter-transform-action" title="alter_transform_action" shape="rect">alter_transform_action</a> )*</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#alter-group" title="alter-group">alter-group</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + alter_transform_action +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="229" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#add-transform-element-list" xlink:title="add_transform_element_list" shape="rect"> + <rect x="43" y="1" width="138" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">add_transform_element_list</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#drop-transform-element-list" xlink:title="drop_transform_element_list" shape="rect"> + <rect x="43" y="29" width="142" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">drop_transform_element_list</text></a><path class="line" d="m17 10 h2 m20 0 h4 m138 0 h4 m0 0 h4 m-170 0 h20 m150 0 h20 m-190 0 q10 0 10 10 m170 0 q0 -10 10 -10 m-180 10 v8 m170 0 v-8 m-170 8 q0 10 10 10 m150 0 q10 0 10 -10 m-160 10 h4 m142 0 h4 m23 -28 h-3"/> + <polygon points="219 10 227 6 227 14"/> + <polygon points="219 10 211 6 211 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#alter-transform-action" title="alter_transform_action" shape="rect">alter_transform_action</a></div> + <div>         ::= <a href="#add-transform-element-list" title="add_transform_element_list" shape="rect">add_transform_element_list</a></div> + <div>           | <a href="#drop-transform-element-list" title="drop_transform_element_list" shape="rect">drop_transform_element_list</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#alter-transform-action-list" title="alter-transform-action-list">alter-transform-action-list</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + add_transform_element_list +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="237" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="28" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">ADD</text> + <rect x="59" y="1" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="63" y="13">(</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#transform-element-list" xlink:title="transform_element_list" shape="rect"> + <rect x="79" y="1" width="114" height="18" class="nonterminal"/> + <text class="nonterminal" x="83" y="13">transform_element_list</text></a><rect x="201" y="1" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="205" y="13">)</text> + <path class="line" d="m17 10 h2 m0 0 h4 m28 0 h4 m0 0 h4 m12 0 h4 m0 0 h4 m114 0 h4 m0 0 h4 m12 0 h4 m3 0 h-3"/> + <polygon points="227 10 235 6 235 14"/> + <polygon points="227 10 219 6 219 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#add-transform-element-list" title="add_transform_element_list" shape="rect">add_transform_element_list</a></div> + <div>         ::= 'ADD' '(' <a href="#transform-element-list" title="transform_element_list" shape="rect">transform_element_list</a> ')'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#alter-transform-action" title="alter-transform-action">alter-transform-action</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + drop_transform_element_list +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="433" height="42"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="34" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">DROP</text> + <rect x="65" y="1" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="69" y="13">(</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#transform-kind" xlink:title="transform_kind" shape="rect"> + <rect x="85" y="1" width="78" height="18" class="nonterminal"/> + <text class="nonterminal" x="89" y="13">transform_kind</text></a><rect x="191" y="22" width="8" height="18" class="terminal" rx="4"/> + <text class="terminal" x="195" y="34">,</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#transform-kind" xlink:title="transform_kind" shape="rect"> + <rect x="207" y="22" width="78" height="18" class="nonterminal"/> + <text class="nonterminal" x="211" y="34">transform_kind</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#drop-behavior" xlink:title="drop_behavior" shape="rect"> + <rect x="313" y="1" width="76" height="18" class="nonterminal"/> + <text class="nonterminal" x="317" y="13">drop_behavior</text></a><rect x="397" y="1" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="401" y="13">)</text> + <path class="line" d="m17 10 h2 m0 0 h4 m34 0 h4 m0 0 h4 m12 0 h4 m0 0 h4 m78 0 h4 m20 0 h10 m0 0 h92 m-122 0 h20 m102 0 h20 m-142 0 q10 0 10 10 m122 0 q0 -10 10 -10 m-132 10 v1 m122 0 v-1 m-122 1 q0 10 10 10 m102 0 q10 0 10 -10 m-112 10 h4 m8 0 h4 m0 0 h4 m78 0 h4 m20 -21 h4 m76 0 h4 m0 0 h4 m12 0 h4 m3 0 h-3"/> + <polygon points="423 10 431 6 431 14"/> + <polygon points="423 10 415 6 415 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#drop-transform-element-list" title="drop_transform_element_list" shape="rect">drop_transform_element_list</a></div> + <div>         ::= 'DROP' '(' <a href="#transform-kind" title="transform_kind" shape="rect">transform_kind</a> ( ',' <a href="#transform-kind" title="transform_kind" shape="rect">transform_kind</a> )? <a href="#drop-behavior" title="drop_behavior" shape="rect">drop_behavior</a> ')'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#alter-transform-action" title="alter-transform-action">alter-transform-action</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + transform_kind +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="157" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="43" y="1" width="20" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="13">TO</text> + <rect x="43" y="29" width="36" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="41">FROM</text> + <rect x="107" y="1" width="26" height="18" class="terminal" rx="4"/> + <text class="terminal" x="111" y="13">SQL</text> + <path class="line" d="m17 10 h2 m20 0 h4 m20 0 h4 m0 0 h16 m-64 0 h20 m44 0 h20 m-84 0 q10 0 10 10 m64 0 q0 -10 10 -10 m-74 10 v8 m64 0 v-8 m-64 8 q0 10 10 10 m44 0 q10 0 10 -10 m-54 10 h4 m36 0 h4 m20 -28 h4 m26 0 h4 m3 0 h-3"/> + <polygon points="147 10 155 6 155 14"/> + <polygon points="147 10 139 6 139 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#transform-kind" title="transform_kind" shape="rect">transform_kind</a></div> + <div>         ::= ( 'TO' | 'FROM' ) 'SQL'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#drop-transform-element-list" title="drop-transform-element-list">drop-transform-element-list</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + drop_transform_statement +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="687" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="34" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">DROP</text> + <rect x="85" y="1" width="66" height="18" class="terminal" rx="4"/> + <text class="terminal" x="89" y="13">TRANSFORM</text> + <rect x="85" y="29" width="72" height="18" class="terminal" rx="4"/> + <text class="terminal" x="89" y="41">TRANSFORMS</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#transforms-to-be-dropped" xlink:title="transforms_to_be_dropped" shape="rect"> + <rect x="185" y="1" width="136" height="18" class="nonterminal"/> + <text class="nonterminal" x="189" y="13">transforms_to_be_dropped</text></a><rect x="329" y="1" width="26" height="18" class="terminal" rx="4"/> + <text class="terminal" x="333" y="13">FOR</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#schema-resolved-user-defined-type-name" xlink:title="schema_resolved_user_defined_type_name" shape="rect"> + <rect x="363" y="1" width="216" height="18" class="nonterminal"/> + <text class="nonterminal" x="367" y="13">schema_resolved_user_defined_type_name</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#drop-behavior" xlink:title="drop_behavior" shape="rect"> + <rect x="587" y="1" width="76" height="18" class="nonterminal"/> + <text class="nonterminal" x="591" y="13">drop_behavior</text></a><path class="line" d="m17 10 h2 m0 0 h4 m34 0 h4 m20 0 h4 m66 0 h4 m0 0 h6 m-100 0 h20 m80 0 h20 m-120 0 q10 0 10 10 m100 0 q0 -10 10 -10 m-110 10 v8 m100 0 v-8 m-100 8 q0 10 10 10 m80 0 q10 0 10 -10 m-90 10 h4 m72 0 h4 m20 -28 h4 m136 0 h4 m0 0 h4 m26 0 h4 m0 0 h4 m216 0 h4 m0 0 h4 m76 0 h4 m3 0 h-3"/> + <polygon points="677 10 685 6 685 14"/> + <polygon points="677 10 669 6 669 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#drop-transform-statement" title="drop_transform_statement" shape="rect">drop_transform_statement</a></div> + <div>         ::= 'DROP' ( 'TRANSFORM' | 'TRANSFORMS' ) <a href="#transforms-to-be-dropped" title="transforms_to_be_dropped" shape="rect">transforms_to_be_dropped</a> 'FOR' <a href="#schema-resolved-user-defined-type-name" title="schema_resolved_user_defined_type_name" shape="rect">schema_resolved_user_defined_type_name</a> <a href="#drop-behavior" title="drop_behavior" shape="rect">drop_behavior</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#sql-schema-manipulation-statement" title="sql-schema-manipulation-statement">sql-schema-manipulation-statement</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + transforms_to_be_dropped +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="217" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="43" y="1" width="24" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="13">ALL</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#transform-group-element" xlink:title="transform_group_element" shape="rect"> + <rect x="43" y="29" width="130" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">transform_group_element</text></a><path class="line" d="m17 10 h2 m20 0 h4 m24 0 h4 m0 0 h106 m-158 0 h20 m138 0 h20 m-178 0 q10 0 10 10 m158 0 q0 -10 10 -10 m-168 10 v8 m158 0 v-8 m-158 8 q0 10 10 10 m138 0 q10 0 10 -10 m-148 10 h4 m130 0 h4 m23 -28 h-3"/> + <polygon points="207 10 215 6 215 14"/> + <polygon points="207 10 199 6 199 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#transforms-to-be-dropped" title="transforms_to_be_dropped" shape="rect">transforms_to_be_dropped</a></div> + <div>         ::= 'ALL'</div> + <div>           | <a href="#transform-group-element" title="transform_group_element" shape="rect">transform_group_element</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#drop-transform-statement" title="drop-transform-statement">drop-transform-statement</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + transform_group_element +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="93" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#identifier" xlink:title="identifier" shape="rect"> + <rect x="23" y="1" width="46" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">identifier</text></a><path class="line" d="m17 10 h2 m0 0 h4 m46 0 h4 m3 0 h-3"/> + <polygon points="83 10 91 6 91 14"/> + <polygon points="83 10 75 6 75 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#transform-group-element" title="transform_group_element" shape="rect">transform_group_element</a></div> + <div>         ::= <a href="#identifier" title="identifier" shape="rect">identifier</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#transforms-to-be-dropped" title="transforms-to-be-dropped">transforms-to-be-dropped</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + sequence_generator_definition +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="477" height="42"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="42" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">CREATE</text> + <rect x="73" y="1" width="56" height="18" class="terminal" rx="4"/> + <text class="terminal" x="77" y="13">SEQUENCE</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#schema-qualified-name" xlink:title="schema_qualified_name" shape="rect"> + <rect x="137" y="1" width="122" height="18" class="nonterminal"/> + <text class="nonterminal" x="141" y="13">schema_qualified_name</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#sequence-generator-options" xlink:title="sequence_generator_options" shape="rect"> + <rect x="287" y="22" width="146" height="18" class="nonterminal"/> + <text class="nonterminal" x="291" y="34">sequence_generator_options</text></a><path class="line" d="m17 10 h2 m0 0 h4 m42 0 h4 m0 0 h4 m56 0 h4 m0 0 h4 m122 0 h4 m20 0 h10 m0 0 h144 m-174 0 h20 m154 0 h20 m-194 0 q10 0 10 10 m174 0 q0 -10 10 -10 m-184 10 v1 m174 0 v-1 m-174 1 q0 10 10 10 m154 0 q10 0 10 -10 m-164 10 h4 m146 0 h4 m23 -21 h-3"/> + <polygon points="467 10 475 6 475 14"/> + <polygon points="467 10 459 6 459 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#sequence-generator-definition" title="sequence_generator_definition" shape="rect">sequence_generator_definition</a></div> + <div>         ::= 'CREATE' 'SEQUENCE' <a href="#schema-qualified-name" title="schema_qualified_name" shape="rect">schema_qualified_name</a> <a href="#sequence-generator-options" title="sequence_generator_options" shape="rect">sequence_generator_options</a>?</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#sql-schema-definition-statement" title="sql-schema-definition-statement">sql-schema-definition-statement</a></li><li><a href="#schema-element" title="schema-element">schema-element</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + sequence_generator_options +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="227" height="33"> + <polygon points="9 22 1 18 1 26"/> + <polygon points="17 22 9 18 9 26"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#sequence-generator-option" xlink:title="sequence_generator_option" shape="rect"> + <rect x="43" y="13" width="140" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="25">sequence_generator_option</text></a><path class="line" d="m17 22 h2 m20 0 h4 m140 0 h4 m-168 0 l20 0 m-1 0 q-9 0 -9 -10 l0 -1 q0 -10 10 -10 m148 21 l20 0 m-20 0 q10 0 10 -10 l0 -1 q0 -10 -10 -10 m-148 0 h10 m0 0 h138 m23 21 h-3"/> + <polygon points="217 22 225 18 225 26"/> + <polygon points="217 22 209 18 209 26"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#sequence-generator-options" title="sequence_generator_options" shape="rect">sequence_generator_options</a></div> + <div>         ::= <a href="#sequence-generator-option" title="sequence_generator_option" shape="rect">sequence_generator_option</a>+</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#sequence-generator-definition" title="sequence-generator-definition">sequence-generator-definition</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + sequence_generator_option +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="281" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#sequence-generator-data-type-option" xlink:title="sequence_generator_data_type_option" shape="rect"> + <rect x="43" y="1" width="194" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">sequence_generator_data_type_option</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#common-sequence-generator-options" xlink:title="common_sequence_generator_options" shape="rect"> + <rect x="43" y="29" width="192" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">common_sequence_generator_options</text></a><path class="line" d="m17 10 h2 m20 0 h4 m194 0 h4 m-222 0 h20 m202 0 h20 m-242 0 q10 0 10 10 m222 0 q0 -10 10 -10 m-232 10 v8 m222 0 v-8 m-222 8 q0 10 10 10 m202 0 q10 0 10 -10 m-212 10 h4 m192 0 h4 m0 0 h2 m23 -28 h-3"/> + <polygon points="271 10 279 6 279 14"/> + <polygon points="271 10 263 6 263 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#sequence-generator-option" title="sequence_generator_option" shape="rect">sequence_generator_option</a></div> + <div>         ::= <a href="#sequence-generator-data-type-option" title="sequence_generator_data_type_option" shape="rect">sequence_generator_data_type_option</a></div> + <div>           | <a href="#common-sequence-generator-options" title="common_sequence_generator_options" shape="rect">common_sequence_generator_options</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#sequence-generator-options" title="sequence-generator-options">sequence-generator-options</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + common_sequence_generator_options +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="275" height="33"> + <polygon points="9 22 1 18 1 26"/> + <polygon points="17 22 9 18 9 26"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#common-sequence-generator-option" xlink:title="common_sequence_generator_option" shape="rect"> + <rect x="43" y="13" width="188" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="25">common_sequence_generator_option</text></a><path class="line" d="m17 22 h2 m20 0 h4 m188 0 h4 m-216 0 l20 0 m-1 0 q-9 0 -9 -10 l0 -1 q0 -10 10 -10 m196 21 l20 0 m-20 0 q10 0 10 -10 l0 -1 q0 -10 -10 -10 m-196 0 h10 m0 0 h186 m23 21 h-3"/> + <polygon points="265 22 273 18 273 26"/> + <polygon points="265 22 257 18 257 26"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#common-sequence-generator-options" title="common_sequence_generator_options" shape="rect">common_sequence_generator_options</a></div> + <div>         ::= <a href="#common-sequence-generator-option" title="common_sequence_generator_option" shape="rect">common_sequence_generator_option</a>+</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#identity-column-specification" title="identity-column-specification">identity-column-specification</a></li><li><a href="#sequence-generator-option" title="sequence-generator-option">sequence-generator-option</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + common_sequence_generator_option +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="277" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#sequence-generator-start-with-option" xlink:title="sequence_generator_start_with_option" shape="rect"> + <rect x="43" y="1" width="190" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">sequence_generator_start_with_option</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#basic-sequence-generator-option" xlink:title="basic_sequence_generator_option" shape="rect"> + <rect x="43" y="29" width="168" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">basic_sequence_generator_option</text></a><path class="line" d="m17 10 h2 m20 0 h4 m190 0 h4 m-218 0 h20 m198 0 h20 m-238 0 q10 0 10 10 m218 0 q0 -10 10 -10 m-228 10 v8 m218 0 v-8 m-218 8 q0 10 10 10 m198 0 q10 0 10 -10 m-208 10 h4 m168 0 h4 m0 0 h22 m23 -28 h-3"/> + <polygon points="267 10 275 6 275 14"/> + <polygon points="267 10 259 6 259 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#common-sequence-generator-option" title="common_sequence_generator_option" shape="rect">common_sequence_generator_option</a></div> + <div>         ::= <a href="#sequence-generator-start-with-option" title="sequence_generator_start_with_option" shape="rect">sequence_generator_start_with_option</a></div> + <div>           | <a href="#basic-sequence-generator-option" title="basic_sequence_generator_option" shape="rect">basic_sequence_generator_option</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#common-sequence-generator-options" title="common-sequence-generator-options">common-sequence-generator-options</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + basic_sequence_generator_option +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="295" height="105"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#sequence-generator-increment-by-option" xlink:title="sequence_generator_increment_by_option" shape="rect"> + <rect x="43" y="1" width="208" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">sequence_generator_increment_by_option</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#sequence-generator-maxvalue-option" xlink:title="sequence_generator_maxvalue_option" shape="rect"> + <rect x="43" y="29" width="192" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">sequence_generator_maxvalue_option</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#sequence-generator-minvalue-option" xlink:title="sequence_generator_minvalue_option" shape="rect"> + <rect x="43" y="57" width="188" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="69">sequence_generator_minvalue_option</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#sequence-generator-cycle-option" xlink:title="sequence_generator_cycle_option" shape="rect"> + <rect x="43" y="85" width="168" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="97">sequence_generator_cycle_option</text></a><path class="line" d="m17 10 h2 m20 0 h4 m208 0 h4 m-236 0 h20 m216 0 h20 m-256 0 q10 0 10 10 m236 0 q0 -10 10 -10 m-246 10 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m192 0 h4 m0 0 h16 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m188 0 h4 m0 0 h20 m-226 -10 v20 m236 0 v-20 m-236 20 v8 m236 0 v-8 m-236 8 q0 10 10 10 m216 0 q10 0 10 -10 m-226 10 h4 m168 0 h4 m0 0 h40 m23 -84 h-3"/> + <polygon points="285 10 293 6 293 14"/> + <polygon points="285 10 277 6 277 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#basic-sequence-generator-option" title="basic_sequence_generator_option" shape="rect">basic_sequence_generator_option</a></div> + <div>         ::= <a href="#sequence-generator-increment-by-option" title="sequence_generator_increment_by_option" shape="rect">sequence_generator_increment_by_option</a></div> + <div>           | <a href="#sequence-generator-maxvalue-option" title="sequence_generator_maxvalue_option" shape="rect">sequence_generator_maxvalue_option</a></div> + <div>           | <a href="#sequence-generator-minvalue-option" title="sequence_generator_minvalue_option" shape="rect">sequence_generator_minvalue_option</a></div> + <div>           | <a href="#sequence-generator-cycle-option" title="sequence_generator_cycle_option" shape="rect">sequence_generator_cycle_option</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#alter-identity-column-option" title="alter-identity-column-option">alter-identity-column-option</a></li><li><a href="#alter-sequence-generator-option" title="alter-sequence-generator-option">alter-sequence-generator-option</a></li><li><a href="#common-sequence-generator-option" title="common-sequence-generator-option">common-sequence-generator-option</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + sequence_generator_data_type_option +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="131" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="20" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">AS</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#data-type" xlink:title="data_type" shape="rect"> + <rect x="51" y="1" width="56" height="18" class="nonterminal"/> + <text class="nonterminal" x="55" y="13">data_type</text></a><path class="line" d="m17 10 h2 m0 0 h4 m20 0 h4 m0 0 h4 m56 0 h4 m3 0 h-3"/> + <polygon points="121 10 129 6 129 14"/> + <polygon points="121 10 113 6 113 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#sequence-generator-data-type-option" title="sequence_generator_data_type_option" shape="rect">sequence_generator_data_type_option</a></div> + <div>         ::= 'AS' <a href="#data-type" title="data_type" shape="rect">data_type</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#sequence-generator-option" title="sequence-generator-option">sequence-generator-option</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + sequence_generator_start_with_option +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="295" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="36" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">START</text> + <rect x="67" y="1" width="34" height="18" class="terminal" rx="4"/> + <text class="terminal" x="71" y="13">WITH</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#sequence-generator-start-value" xlink:title="sequence_generator_start_value" shape="rect"> + <rect x="109" y="1" width="162" height="18" class="nonterminal"/> + <text class="nonterminal" x="113" y="13">sequence_generator_start_value</text></a><path class="line" d="m17 10 h2 m0 0 h4 m36 0 h4 m0 0 h4 m34 0 h4 m0 0 h4 m162 0 h4 m3 0 h-3"/> + <polygon points="285 10 293 6 293 14"/> + <polygon points="285 10 277 6 277 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#sequence-generator-start-with-option" title="sequence_generator_start_with_option" shape="rect">sequence_generator_start_with_option</a></div> + <div>         ::= 'START' 'WITH' <a href="#sequence-generator-start-value" title="sequence_generator_start_value" shape="rect">sequence_generator_start_value</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#common-sequence-generator-option" title="common-sequence-generator-option">common-sequence-generator-option</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + sequence_generator_start_value +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="157" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#signed-numeric-literal" xlink:title="signed_numeric_literal" shape="rect"> + <rect x="23" y="1" width="110" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">signed_numeric_literal</text></a><path class="line" d="m17 10 h2 m0 0 h4 m110 0 h4 m3 0 h-3"/> + <polygon points="147 10 155 6 155 14"/> + <polygon points="147 10 139 6 139 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#sequence-generator-start-value" title="sequence_generator_start_value" shape="rect">sequence_generator_start_value</a></div> + <div>         ::= <a href="#signed-numeric-literal" title="signed_numeric_literal" shape="rect">signed_numeric_literal</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#sequence-generator-start-with-option" title="sequence-generator-start-with-option">sequence-generator-start-with-option</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + sequence_generator_increment_by_option +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="303" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="62" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">INCREMENT</text> + <rect x="93" y="1" width="20" height="18" class="terminal" rx="4"/> + <text class="terminal" x="97" y="13">BY</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#sequence-generator-increment" xlink:title="sequence_generator_increment" shape="rect"> + <rect x="121" y="1" width="158" height="18" class="nonterminal"/> + <text class="nonterminal" x="125" y="13">sequence_generator_increment</text></a><path class="line" d="m17 10 h2 m0 0 h4 m62 0 h4 m0 0 h4 m20 0 h4 m0 0 h4 m158 0 h4 m3 0 h-3"/> + <polygon points="293 10 301 6 301 14"/> + <polygon points="293 10 285 6 285 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#sequence-generator-increment-by-option" title="sequence_generator_increment_by_option" shape="rect">sequence_generator_increment_by_option</a></div> + <div>         ::= 'INCREMENT' 'BY' <a href="#sequence-generator-increment" title="sequence_generator_increment" shape="rect">sequence_generator_increment</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#basic-sequence-generator-option" title="basic-sequence-generator-option">basic-sequence-generator-option</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + sequence_generator_increment +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="157" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#signed-numeric-literal" xlink:title="signed_numeric_literal" shape="rect"> + <rect x="23" y="1" width="110" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">signed_numeric_literal</text></a><path class="line" d="m17 10 h2 m0 0 h4 m110 0 h4 m3 0 h-3"/> + <polygon points="147 10 155 6 155 14"/> + <polygon points="147 10 139 6 139 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#sequence-generator-increment" title="sequence_generator_increment" shape="rect">sequence_generator_increment</a></div> + <div>         ::= <a href="#signed-numeric-literal" title="signed_numeric_literal" shape="rect">signed_numeric_literal</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#sequence-generator-increment-by-option" title="sequence-generator-increment-by-option">sequence-generator-increment-by-option</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + sequence_generator_maxvalue_option +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="317" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="43" y="1" width="58" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="13">MAXVALUE</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#sequence-generator-max-value" xlink:title="sequence_generator_max_value" shape="rect"> + <rect x="109" y="1" width="164" height="18" class="nonterminal"/> + <text class="nonterminal" x="113" y="13">sequence_generator_max_value</text></a><rect x="43" y="29" width="22" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="41">NO</text> + <rect x="73" y="29" width="58" height="18" class="terminal" rx="4"/> + <text class="terminal" x="77" y="41">MAXVALUE</text> + <path class="line" d="m17 10 h2 m20 0 h4 m58 0 h4 m0 0 h4 m164 0 h4 m-258 0 h20 m238 0 h20 m-278 0 q10 0 10 10 m258 0 q0 -10 10 -10 m-268 10 v8 m258 0 v-8 m-258 8 q0 10 10 10 m238 0 q10 0 10 -10 m-248 10 h4 m22 0 h4 m0 0 h4 m58 0 h4 m0 0 h142 m23 -28 h-3"/> + <polygon points="307 10 315 6 315 14"/> + <polygon points="307 10 299 6 299 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#sequence-generator-maxvalue-option" title="sequence_generator_maxvalue_option" shape="rect">sequence_generator_maxvalue_option</a></div> + <div>         ::= 'MAXVALUE' <a href="#sequence-generator-max-value" title="sequence_generator_max_value" shape="rect">sequence_generator_max_value</a></div> + <div>           | 'NO' 'MAXVALUE'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#basic-sequence-generator-option" title="basic-sequence-generator-option">basic-sequence-generator-option</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + sequence_generator_max_value +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="157" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#signed-numeric-literal" xlink:title="signed_numeric_literal" shape="rect"> + <rect x="23" y="1" width="110" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">signed_numeric_literal</text></a><path class="line" d="m17 10 h2 m0 0 h4 m110 0 h4 m3 0 h-3"/> + <polygon points="147 10 155 6 155 14"/> + <polygon points="147 10 139 6 139 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#sequence-generator-max-value" title="sequence_generator_max_value" shape="rect">sequence_generator_max_value</a></div> + <div>         ::= <a href="#signed-numeric-literal" title="signed_numeric_literal" shape="rect">signed_numeric_literal</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#sequence-generator-maxvalue-option" title="sequence-generator-maxvalue-option">sequence-generator-maxvalue-option</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + sequence_generator_minvalue_option +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="311" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="43" y="1" width="56" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="13">MINVALUE</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#sequence-generator-min-value" xlink:title="sequence_generator_min_value" shape="rect"> + <rect x="107" y="1" width="160" height="18" class="nonterminal"/> + <text class="nonterminal" x="111" y="13">sequence_generator_min_value</text></a><rect x="43" y="29" width="22" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="41">NO</text> + <rect x="73" y="29" width="56" height="18" class="terminal" rx="4"/> + <text class="terminal" x="77" y="41">MINVALUE</text> + <path class="line" d="m17 10 h2 m20 0 h4 m56 0 h4 m0 0 h4 m160 0 h4 m-252 0 h20 m232 0 h20 m-272 0 q10 0 10 10 m252 0 q0 -10 10 -10 m-262 10 v8 m252 0 v-8 m-252 8 q0 10 10 10 m232 0 q10 0 10 -10 m-242 10 h4 m22 0 h4 m0 0 h4 m56 0 h4 m0 0 h138 m23 -28 h-3"/> + <polygon points="301 10 309 6 309 14"/> + <polygon points="301 10 293 6 293 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#sequence-generator-minvalue-option" title="sequence_generator_minvalue_option" shape="rect">sequence_generator_minvalue_option</a></div> + <div>         ::= 'MINVALUE' <a href="#sequence-generator-min-value" title="sequence_generator_min_value" shape="rect">sequence_generator_min_value</a></div> + <div>           | 'NO' 'MINVALUE'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#basic-sequence-generator-option" title="basic-sequence-generator-option">basic-sequence-generator-option</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + sequence_generator_min_value +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="157" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#signed-numeric-literal" xlink:title="signed_numeric_literal" shape="rect"> + <rect x="23" y="1" width="110" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">signed_numeric_literal</text></a><path class="line" d="m17 10 h2 m0 0 h4 m110 0 h4 m3 0 h-3"/> + <polygon points="147 10 155 6 155 14"/> + <polygon points="147 10 139 6 139 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#sequence-generator-min-value" title="sequence_generator_min_value" shape="rect">sequence_generator_min_value</a></div> + <div>         ::= <a href="#signed-numeric-literal" title="signed_numeric_literal" shape="rect">signed_numeric_literal</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#sequence-generator-minvalue-option" title="sequence-generator-minvalue-option">sequence-generator-minvalue-option</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + sequence_generator_cycle_option +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="153" height="42"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="43" y="22" width="22" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="34">NO</text> + <rect x="93" y="1" width="36" height="18" class="terminal" rx="4"/> + <text class="terminal" x="97" y="13">CYCLE</text> + <path class="line" d="m17 10 h2 m20 0 h10 m0 0 h20 m-50 0 h20 m30 0 h20 m-70 0 q10 0 10 10 m50 0 q0 -10 10 -10 m-60 10 v1 m50 0 v-1 m-50 1 q0 10 10 10 m30 0 q10 0 10 -10 m-40 10 h4 m22 0 h4 m20 -21 h4 m36 0 h4 m3 0 h-3"/> + <polygon points="143 10 151 6 151 14"/> + <polygon points="143 10 135 6 135 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#sequence-generator-cycle-option" title="sequence_generator_cycle_option" shape="rect">sequence_generator_cycle_option</a></div> + <div>         ::= 'NO'? 'CYCLE'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#basic-sequence-generator-option" title="basic-sequence-generator-option">basic-sequence-generator-option</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + alter_sequence_generator_statement +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="455" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="36" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">ALTER</text> + <rect x="67" y="1" width="56" height="18" class="terminal" rx="4"/> + <text class="terminal" x="71" y="13">SEQUENCE</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#schema-qualified-name" xlink:title="schema_qualified_name" shape="rect"> + <rect x="131" y="1" width="122" height="18" class="nonterminal"/> + <text class="nonterminal" x="135" y="13">schema_qualified_name</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#alter-sequence-generator-options" xlink:title="alter_sequence_generator_options" shape="rect"> + <rect x="261" y="1" width="170" height="18" class="nonterminal"/> + <text class="nonterminal" x="265" y="13">alter_sequence_generator_options</text></a><path class="line" d="m17 10 h2 m0 0 h4 m36 0 h4 m0 0 h4 m56 0 h4 m0 0 h4 m122 0 h4 m0 0 h4 m170 0 h4 m3 0 h-3"/> + <polygon points="445 10 453 6 453 14"/> + <polygon points="445 10 437 6 437 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#alter-sequence-generator-statement" title="alter_sequence_generator_statement" shape="rect">alter_sequence_generator_statement</a></div> + <div>         ::= 'ALTER' 'SEQUENCE' <a href="#schema-qualified-name" title="schema_qualified_name" shape="rect">schema_qualified_name</a> <a href="#alter-sequence-generator-options" title="alter_sequence_generator_options" shape="rect">alter_sequence_generator_options</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#sql-schema-manipulation-statement" title="sql-schema-manipulation-statement">sql-schema-manipulation-statement</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + alter_sequence_generator_options +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="253" height="33"> + <polygon points="9 22 1 18 1 26"/> + <polygon points="17 22 9 18 9 26"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#alter-sequence-generator-option" xlink:title="alter_sequence_generator_option" shape="rect"> + <rect x="43" y="13" width="166" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="25">alter_sequence_generator_option</text></a><path class="line" d="m17 22 h2 m20 0 h4 m166 0 h4 m-194 0 l20 0 m-1 0 q-9 0 -9 -10 l0 -1 q0 -10 10 -10 m174 21 l20 0 m-20 0 q10 0 10 -10 l0 -1 q0 -10 -10 -10 m-174 0 h10 m0 0 h164 m23 21 h-3"/> + <polygon points="243 22 251 18 251 26"/> + <polygon points="243 22 235 18 235 26"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#alter-sequence-generator-options" title="alter_sequence_generator_options" shape="rect">alter_sequence_generator_options</a></div> + <div>         ::= <a href="#alter-sequence-generator-option" title="alter_sequence_generator_option" shape="rect">alter_sequence_generator_option</a>+</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#alter-sequence-generator-statement" title="alter-sequence-generator-statement">alter-sequence-generator-statement</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + alter_sequence_generator_option +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="287" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#alter-sequence-generator-restart-option" xlink:title="alter_sequence_generator_restart_option" shape="rect"> + <rect x="43" y="1" width="200" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">alter_sequence_generator_restart_option</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#basic-sequence-generator-option" xlink:title="basic_sequence_generator_option" shape="rect"> + <rect x="43" y="29" width="168" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">basic_sequence_generator_option</text></a><path class="line" d="m17 10 h2 m20 0 h4 m200 0 h4 m-228 0 h20 m208 0 h20 m-248 0 q10 0 10 10 m228 0 q0 -10 10 -10 m-238 10 v8 m228 0 v-8 m-228 8 q0 10 10 10 m208 0 q10 0 10 -10 m-218 10 h4 m168 0 h4 m0 0 h32 m23 -28 h-3"/> + <polygon points="277 10 285 6 285 14"/> + <polygon points="277 10 269 6 269 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#alter-sequence-generator-option" title="alter_sequence_generator_option" shape="rect">alter_sequence_generator_option</a></div> + <div>         ::= <a href="#alter-sequence-generator-restart-option" title="alter_sequence_generator_restart_option" shape="rect">alter_sequence_generator_restart_option</a></div> + <div>           | <a href="#basic-sequence-generator-option" title="basic_sequence_generator_option" shape="rect">basic_sequence_generator_option</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#alter-sequence-generator-options" title="alter-sequence-generator-options">alter-sequence-generator-options</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + alter_sequence_generator_restart_option +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="357" height="42"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="48" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">RESTART</text> + <rect x="99" y="22" width="34" height="18" class="terminal" rx="4"/> + <text class="terminal" x="103" y="34">WITH</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#sequence-generator-restart-value" xlink:title="sequence_generator_restart_value" shape="rect"> + <rect x="141" y="22" width="172" height="18" class="nonterminal"/> + <text class="nonterminal" x="145" y="34">sequence_generator_restart_value</text></a><path class="line" d="m17 10 h2 m0 0 h4 m48 0 h4 m20 0 h10 m0 0 h212 m-242 0 h20 m222 0 h20 m-262 0 q10 0 10 10 m242 0 q0 -10 10 -10 m-252 10 v1 m242 0 v-1 m-242 1 q0 10 10 10 m222 0 q10 0 10 -10 m-232 10 h4 m34 0 h4 m0 0 h4 m172 0 h4 m23 -21 h-3"/> + <polygon points="347 10 355 6 355 14"/> + <polygon points="347 10 339 6 339 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#alter-sequence-generator-restart-option" title="alter_sequence_generator_restart_option" shape="rect">alter_sequence_generator_restart_option</a></div> + <div>         ::= 'RESTART' ( 'WITH' <a href="#sequence-generator-restart-value" title="sequence_generator_restart_value" shape="rect">sequence_generator_restart_value</a> )?</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#alter-identity-column-option" title="alter-identity-column-option">alter-identity-column-option</a></li><li><a href="#alter-sequence-generator-option" title="alter-sequence-generator-option">alter-sequence-generator-option</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + sequence_generator_restart_value +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="157" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#signed-numeric-literal" xlink:title="signed_numeric_literal" shape="rect"> + <rect x="23" y="1" width="110" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">signed_numeric_literal</text></a><path class="line" d="m17 10 h2 m0 0 h4 m110 0 h4 m3 0 h-3"/> + <polygon points="147 10 155 6 155 14"/> + <polygon points="147 10 139 6 139 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#sequence-generator-restart-value" title="sequence_generator_restart_value" shape="rect">sequence_generator_restart_value</a></div> + <div>         ::= <a href="#signed-numeric-literal" title="signed_numeric_literal" shape="rect">signed_numeric_literal</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#alter-sequence-generator-restart-option" title="alter-sequence-generator-restart-option">alter-sequence-generator-restart-option</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + drop_sequence_generator_statement +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="359" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="34" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">DROP</text> + <rect x="65" y="1" width="56" height="18" class="terminal" rx="4"/> + <text class="terminal" x="69" y="13">SEQUENCE</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#schema-qualified-name" xlink:title="schema_qualified_name" shape="rect"> + <rect x="129" y="1" width="122" height="18" class="nonterminal"/> + <text class="nonterminal" x="133" y="13">schema_qualified_name</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#drop-behavior" xlink:title="drop_behavior" shape="rect"> + <rect x="259" y="1" width="76" height="18" class="nonterminal"/> + <text class="nonterminal" x="263" y="13">drop_behavior</text></a><path class="line" d="m17 10 h2 m0 0 h4 m34 0 h4 m0 0 h4 m56 0 h4 m0 0 h4 m122 0 h4 m0 0 h4 m76 0 h4 m3 0 h-3"/> + <polygon points="349 10 357 6 357 14"/> + <polygon points="349 10 341 6 341 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#drop-sequence-generator-statement" title="drop_sequence_generator_statement" shape="rect">drop_sequence_generator_statement</a></div> + <div>         ::= 'DROP' 'SEQUENCE' <a href="#schema-qualified-name" title="schema_qualified_name" shape="rect">schema_qualified_name</a> <a href="#drop-behavior" title="drop_behavior" shape="rect">drop_behavior</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#sql-schema-manipulation-statement" title="sql-schema-manipulation-statement">sql-schema-manipulation-statement</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + grant_statement +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="217" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#grant-privilege-statement" xlink:title="grant_privilege_statement" shape="rect"> + <rect x="43" y="1" width="130" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">grant_privilege_statement</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#grant-role-statement" xlink:title="grant_role_statement" shape="rect"> + <rect x="43" y="29" width="110" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">grant_role_statement</text></a><path class="line" d="m17 10 h2 m20 0 h4 m130 0 h4 m-158 0 h20 m138 0 h20 m-178 0 q10 0 10 10 m158 0 q0 -10 10 -10 m-168 10 v8 m158 0 v-8 m-158 8 q0 10 10 10 m138 0 q10 0 10 -10 m-148 10 h4 m110 0 h4 m0 0 h20 m23 -28 h-3"/> + <polygon points="207 10 215 6 215 14"/> + <polygon points="207 10 199 6 199 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#grant-statement" title="grant_statement" shape="rect">grant_statement</a></div> + <div>         ::= <a href="#grant-privilege-statement" title="grant_privilege_statement" shape="rect">grant_privilege_statement</a></div> + <div>           | <a href="#grant-role-statement" title="grant_role_statement" shape="rect">grant_role_statement</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#sql-schema-definition-statement" title="sql-schema-definition-statement">sql-schema-definition-statement</a></li><li><a href="#schema-element" title="schema-element">schema-element</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + grant_privilege_statement +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="651" height="128"> + <polygon points="9 38 1 34 1 42"/> + <polygon points="17 38 9 34 9 42"/> + <rect x="23" y="29" width="40" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="41">GRANT</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#privileges" xlink:title="privileges" shape="rect"> + <rect x="71" y="29" width="50" height="18" class="nonterminal"/> + <text class="nonterminal" x="75" y="41">privileges</text></a><rect x="129" y="29" width="20" height="18" class="terminal" rx="4"/> + <text class="terminal" x="133" y="41">TO</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#grantee" xlink:title="grantee" shape="rect"> + <rect x="177" y="29" width="46" height="18" class="nonterminal"/> + <text class="nonterminal" x="181" y="41">grantee</text></a><rect x="177" y="1" width="8" height="18" class="terminal" rx="4"/> + <text class="terminal" x="181" y="13">,</text> + <rect x="271" y="50" width="34" height="18" class="terminal" rx="4"/> + <text class="terminal" x="275" y="62">WITH</text> + <rect x="313" y="50" width="62" height="18" class="terminal" rx="4"/> + <text class="terminal" x="317" y="62">HIERARCHY</text> + <rect x="383" y="50" width="46" height="18" class="terminal" rx="4"/> + <text class="terminal" x="387" y="62">OPTION</text> + <rect x="477" y="50" width="34" height="18" class="terminal" rx="4"/> + <text class="terminal" x="481" y="62">WITH</text> + <rect x="519" y="50" width="40" height="18" class="terminal" rx="4"/> + <text class="terminal" x="523" y="62">GRANT</text> + <rect x="567" y="50" width="46" height="18" class="terminal" rx="4"/> + <text class="terminal" x="571" y="62">OPTION</text> + <rect x="477" y="108" width="52" height="18" class="terminal" rx="4"/> + <text class="terminal" x="481" y="120">GRANTED</text> + <rect x="537" y="108" width="20" height="18" class="terminal" rx="4"/> + <text class="terminal" x="541" y="120">BY</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#grantor" xlink:title="grantor" shape="rect"> + <rect x="565" y="108" width="42" height="18" class="nonterminal"/> + <text class="nonterminal" x="569" y="120">grantor</text></a><path class="line" d="m17 38 h2 m0 0 h4 m40 0 h4 m0 0 h4 m50 0 h4 m0 0 h4 m20 0 h4 m20 0 h4 m46 0 h4 m-74 0 l20 0 m-1 0 q-9 0 -9 -10 l0 -8 q0 -10 10 -10 m54 28 l20 0 m-20 0 q10 0 10 -10 l0 -8 q0 -10 -10 -10 m-54 0 h4 m8 0 h4 m0 0 h38 m40 28 h10 m0 0 h156 m-186 0 h20 m166 0 h20 m-206 0 q10 0 10 10 m186 0 q0 -10 10 -10 m-196 10 v1 m186 0 v-1 m-186 1 q0 10 10 10 m166 0 q10 0 10 -10 m-176 10 h4 m34 0 h4 m0 0 h4 m62 0 h4 m0 0 h4 m46 0 h4 m40 -21 h10 m0 0 h134 m-164 0 h20 m144 0 h20 m-184 0 q10 0 10 10 m164 0 q0 -10 10 -10 m-174 10 v1 m164 0 v-1 m-164 1 q0 10 10 10 m144 0 q10 0 10 -10 m-154 10 h4 m34 0 h4 m0 0 h4 m40 0 h4 m0 0 h4 m46 0 h4 m22 -21 l2 0 m2 0 l2 0 m2 0 l2 0 m-208 58 l2 0 m2 0 l2 0 m2 0 l2 0 m22 0 h10 m0 0 h128 m-158 0 h20 m138 0 h20 m-178 0 q10 0 10 10 m158 0 q0 -10 10 -10 m-168 10 v1 m158 0 v-1 m-158 1 q0 10 10 10 m138 0 q10 0 10 -10 m-148 10 h4 m52 0 h4 m0 0 h4 m20 0 h4 m0 0 h4 m42 0 h4 m23 -21 h-3"/> + <polygon points="641 96 649 92 649 100"/> + <polygon points="641 96 633 92 633 100"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#grant-privilege-statement" title="grant_privilege_statement" shape="rect">grant_privilege_statement</a></div> + <div>         ::= 'GRANT' <a href="#privileges" title="privileges" shape="rect">privileges</a> 'TO' <a href="#grantee" title="grantee" shape="rect">grantee</a> ( ',' <a href="#grantee" title="grantee" shape="rect">grantee</a> )* ( 'WITH' 'HIERARCHY' 'OPTION' )? ( 'WITH' 'GRANT' 'OPTION' )? ( 'GRANTED' 'BY' + <a href="#grantor" title="grantor" shape="rect">grantor</a> )?</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#grant-statement" title="grant-statement">grant-statement</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + privileges +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="239" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#object-privileges" xlink:title="object_privileges" shape="rect"> + <rect x="23" y="1" width="84" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">object_privileges</text></a><rect x="115" y="1" width="22" height="18" class="terminal" rx="4"/> + <text class="terminal" x="119" y="13">ON</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#object-name" xlink:title="object_name" shape="rect"> + <rect x="145" y="1" width="70" height="18" class="nonterminal"/> + <text class="nonterminal" x="149" y="13">object_name</text></a><path class="line" d="m17 10 h2 m0 0 h4 m84 0 h4 m0 0 h4 m22 0 h4 m0 0 h4 m70 0 h4 m3 0 h-3"/> + <polygon points="229 10 237 6 237 14"/> + <polygon points="229 10 221 6 221 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#privileges" title="privileges" shape="rect">privileges</a></div> + <div>         ::= <a href="#object-privileges" title="object_privileges" shape="rect">object_privileges</a> 'ON' <a href="#object-name" title="object_name" shape="rect">object_name</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#grant-privilege-statement" title="grant-privilege-statement">grant-privilege-statement</a></li><li><a href="#revoke-privilege-statement" title="revoke-privilege-statement">revoke-privilege-statement</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + object_name +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="341" height="238"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="63" y="22" width="36" height="18" class="terminal" rx="4"/> + <text class="terminal" x="67" y="34">TABLE</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#table-name" xlink:title="table_name" shape="rect"> + <rect x="127" y="1" width="66" height="18" class="nonterminal"/> + <text class="nonterminal" x="131" y="13">table_name</text></a><rect x="63" y="50" width="48" height="18" class="terminal" rx="4"/> + <text class="terminal" x="67" y="62">DOMAIN</text> + <rect x="63" y="78" width="62" height="18" class="terminal" rx="4"/> + <text class="terminal" x="67" y="90">COLLATION</text> + <rect x="63" y="106" width="74" height="18" class="terminal" rx="4"/> + <text class="terminal" x="67" y="118">TRANSLATION</text> + <rect x="63" y="134" width="56" height="18" class="terminal" rx="4"/> + <text class="terminal" x="67" y="146">SEQUENCE</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#schema-qualified-name" xlink:title="schema_qualified_name" shape="rect"> + <rect x="165" y="50" width="122" height="18" class="nonterminal"/> + <text class="nonterminal" x="169" y="62">schema_qualified_name</text></a><rect x="43" y="162" width="62" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="174">CHARACTER</text> + <rect x="113" y="162" width="24" height="18" class="terminal" rx="4"/> + <text class="terminal" x="117" y="174">SET</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#character-set-name" xlink:title="character_set_name" shape="rect"> + <rect x="145" y="162" width="104" height="18" class="nonterminal"/> + <text class="nonterminal" x="149" y="174">character_set_name</text></a><rect x="43" y="190" width="30" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="202">TYPE</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#schema-resolved-user-defined-type-name" xlink:title="schema_resolved_user_defined_type_name" shape="rect"> + <rect x="81" y="190" width="216" height="18" class="nonterminal"/> + <text class="nonterminal" x="85" y="202">schema_resolved_user_defined_type_name</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#specific-routine-designator" xlink:title="specific_routine_designator" shape="rect"> + <rect x="43" y="218" width="132" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="230">specific_routine_designator</text></a><path class="line" d="m17 10 h2 m40 0 h10 m0 0 h34 m-64 0 h20 m44 0 h20 m-84 0 q10 0 10 10 m64 0 q0 -10 10 -10 m-74 10 v1 m64 0 v-1 m-64 1 q0 10 10 10 m44 0 q10 0 10 -10 m-54 10 h4 m36 0 h4 m20 -21 h4 m66 0 h4 m0 0 h104 m-282 0 h20 m262 0 h20 m-302 0 q10 0 10 10 m282 0 q0 -10 10 -10 m-292 10 v29 m282 0 v-29 m-282 29 q0 10 10 10 m262 0 q10 0 10 -10 m-252 10 h4 m48 0 h4 m0 0 h26 m-102 0 h20 m82 0 h20 m-122 0 q10 0 10 10 m102 0 q0 -10 10 -10 m-112 10 v8 m102 0 v-8 m-102 8 q0 10 10 10 m82 0 q10 0 10 -10 m-92 10 h4 m62 0 h4 m0 0 h12 m-92 -10 v20 m102 0 v-20 m-102 20 v8 m102 0 v-8 m-102 8 q0 10 10 10 m82 0 q10 0 10 -10 m-92 10 h4 m74 0 h4 m-92 -10 v20 m102 0 v-20 m-102 20 v8 m102 0 v-8 m-102 8 q0 10 10 10 m82 0 q10 0 10 -10 m-92 10 h4 m56 0 h4 m0 0 h18 m20 -84 h4 m122 0 h4 m0 0 h10 m-272 -10 v20 m282 0 v-20 m-282 20 v92 m282 0 v-92 m-282 92 q0 10 10 10 m262 0 q10 0 10 -10 m-272 10 h4 m62 0 h4 m0 0 h4 m24 0 h4 m0 0 h4 m104 0 h4 m0 0 h48 m-272 -10 v20 m282 0 v-20 m-282 20 v8 m282 0 v-8 m-282 8 q0 10 10 10 m262 0 q10 0 10 -10 m-272 10 h4 m30 0 h4 m0 0 h4 m216 0 h4 m-272 -10 v20 m282 0 v-20 m-282 20 v8 m282 0 v-8 m-282 8 q0 10 10 10 m262 0 q10 0 10 -10 m-272 10 h4 m132 0 h4 m0 0 h122 m23 -217 h-3"/> + <polygon points="331 10 339 6 339 14"/> + <polygon points="331 10 323 6 323 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#object-name" title="object_name" shape="rect">object_name</a></div> + <div>         ::= 'TABLE'? <a href="#table-name" title="table_name" shape="rect">table_name</a></div> + <div>           | ( 'DOMAIN' | 'COLLATION' | 'TRANSLATION' | 'SEQUENCE' ) <a href="#schema-qualified-name" title="schema_qualified_name" shape="rect">schema_qualified_name</a></div> + <div>           | 'CHARACTER' 'SET' <a href="#character-set-name" title="character_set_name" shape="rect">character_set_name</a></div> + <div>           | 'TYPE' <a href="#schema-resolved-user-defined-type-name" title="schema_resolved_user_defined_type_name" shape="rect">schema_resolved_user_defined_type_name</a></div> + <div>           | <a href="#specific-routine-designator" title="specific_routine_designator" shape="rect">specific_routine_designator</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#privileges" title="privileges">privileges</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + object_privileges +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="181" height="77"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="43" y="1" width="24" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="13">ALL</text> + <rect x="75" y="1" width="62" height="18" class="terminal" rx="4"/> + <text class="terminal" x="79" y="13">PRIVILEGES</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#action" xlink:title="action" shape="rect"> + <rect x="63" y="57" width="36" height="18" class="nonterminal"/> + <text class="nonterminal" x="67" y="69">action</text></a><rect x="63" y="29" width="8" height="18" class="terminal" rx="4"/> + <text class="terminal" x="67" y="41">,</text> + <path class="line" d="m17 10 h2 m20 0 h4 m24 0 h4 m0 0 h4 m62 0 h4 m-122 0 h20 m102 0 h20 m-142 0 q10 0 10 10 m122 0 q0 -10 10 -10 m-132 10 v36 m122 0 v-36 m-122 36 q0 10 10 10 m102 0 q10 0 10 -10 m-92 10 h4 m36 0 h4 m-64 0 l20 0 m-1 0 q-9 0 -9 -10 l0 -8 q0 -10 10 -10 m44 28 l20 0 m-20 0 q10 0 10 -10 l0 -8 q0 -10 -10 -10 m-44 0 h4 m8 0 h4 m0 0 h28 m20 28 h18 m23 -56 h-3"/> + <polygon points="171 10 179 6 179 14"/> + <polygon points="171 10 163 6 163 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#object-privileges" title="object_privileges" shape="rect">object_privileges</a></div> + <div>         ::= 'ALL' 'PRIVILEGES'</div> + <div>           | <a href="#action" title="action" shape="rect">action</a> ( ',' <a href="#action" title="action" shape="rect">action</a> )*</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#privileges" title="privileges">privileges</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + action +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="383" height="294"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="43" y="1" width="40" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="13">SELECT</text> + <rect x="111" y="22" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="115" y="34">(</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#privilege-column-list" xlink:title="privilege_column_list" shape="rect"> + <rect x="151" y="22" width="102" height="18" class="nonterminal"/> + <text class="nonterminal" x="155" y="34">privilege_column_list</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#privilege-method-list" xlink:title="privilege_method_list" shape="rect"> + <rect x="151" y="50" width="104" height="18" class="nonterminal"/> + <text class="nonterminal" x="155" y="62">privilege_method_list</text></a><rect x="283" y="22" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="287" y="34">)</text> + <rect x="43" y="78" width="40" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="90">DELETE</text> + <rect x="63" y="106" width="40" height="18" class="terminal" rx="4"/> + <text class="terminal" x="67" y="118">INSERT</text> + <rect x="63" y="134" width="44" height="18" class="terminal" rx="4"/> + <text class="terminal" x="67" y="146">UPDATE</text> + <rect x="63" y="162" width="66" height="18" class="terminal" rx="4"/> + <text class="terminal" x="67" y="174">REFERENCES</text> + <rect x="177" y="127" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="181" y="139">(</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#privilege-column-list" xlink:title="privilege_column_list" shape="rect"> + <rect x="197" y="127" width="102" height="18" class="nonterminal"/> + <text class="nonterminal" x="201" y="139">privilege_column_list</text></a><rect x="307" y="127" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="311" y="139">)</text> + <rect x="43" y="190" width="38" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="202">USAGE</text> + <rect x="43" y="218" width="48" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="230">TRIGGER</text> + <rect x="43" y="246" width="40" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="258">UNDER</text> + <rect x="43" y="274" width="48" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="286">EXECUTE</text> + <path class="line" d="m17 10 h2 m20 0 h4 m40 0 h4 m20 0 h10 m0 0 h182 m-212 0 h20 m192 0 h20 m-232 0 q10 0 10 10 m212 0 q0 -10 10 -10 m-222 10 v1 m212 0 v-1 m-212 1 q0 10 10 10 m192 0 q10 0 10 -10 m-202 10 h4 m12 0 h4 m20 0 h4 m102 0 h4 m0 0 h2 m-132 0 h20 m112 0 h20 m-152 0 q10 0 10 10 m132 0 q0 -10 10 -10 m-142 10 v8 m132 0 v-8 m-132 8 q0 10 10 10 m112 0 q10 0 10 -10 m-122 10 h4 m104 0 h4 m20 -28 h4 m12 0 h4 m20 -21 h24 m-324 0 h20 m304 0 h20 m-344 0 q10 0 10 10 m324 0 q0 -10 10 -10 m-334 10 v57 m324 0 v-57 m-324 57 q0 10 10 10 m304 0 q10 0 10 -10 m-314 10 h4 m40 0 h4 m0 0 h256 m-314 -10 v20 m324 0 v-20 m-324 20 v8 m324 0 v-8 m-324 8 q0 10 10 10 m304 0 q10 0 10 -10 m-294 10 h4 m40 0 h4 m0 0 h26 m-94 0 h20 m74 0 h20 m-114 0 q10 0 10 10 m94 0 q0 -10 10 -10 m-104 10 v8 m94 0 v-8 m-94 8 q0 10 10 10 m74 0 q10 0 10 -10 m-84 10 h4 m44 0 h4 m0 0 h22 m-84 -10 v20 m94 0 v-20 m-94 20 v8 m94 0 v-8 m-94 8 q0 10 10 10 m74 0 q10 0 10 -10 m-84 10 h4 m66 0 h4 m40 -56 h10 m0 0 h140 m-170 0 h20 m150 0 h20 m-190 0 q10 0 10 10 m170 0 q0 -10 10 -10 m-180 10 v1 m170 0 v-1 m-170 1 q0 10 10 10 m150 0 q10 0 10 -10 m-160 10 h4 m12 0 h4 m0 0 h4 m102 0 h4 m0 0 h4 m12 0 h4 m-294 -31 v20 m324 0 v-20 m-324 20 v64 m324 0 v-64 m-324 64 q0 10 10 10 m304 0 q10 0 10 -10 m-314 10 h4 m38 0 h4 m0 0 h258 m-314 -10 v20 m324 0 v-20 m-324 20 v8 m324 0 v-8 m-324 8 q0 10 10 10 m304 0 q10 0 10 -10 m-314 10 h4 m48 0 h4 m0 0 h248 m-314 -10 v20 m324 0 v-20 m-324 20 v8 m324 0 v-8 m-324 8 q0 10 10 10 m304 0 q10 0 10 -10 m-314 10 h4 m40 0 h4 m0 0 h256 m-314 -10 v20 m324 0 v-20 m-324 20 v8 m324 0 v-8 m-324 8 q0 10 10 10 m304 0 q10 0 10 -10 m-314 10 h4 m48 0 h4 m0 0 h248 m23 -273 h-3"/> + <polygon points="373 10 381 6 381 14"/> + <polygon points="373 10 365 6 365 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#action" title="action" shape="rect">action</a>   ::= 'SELECT' ( '(' ( <a href="#privilege-column-list" title="privilege_column_list" shape="rect">privilege_column_list</a> | <a href="#privilege-method-list" title="privilege_method_list" shape="rect">privilege_method_list</a> ) ')' )?</div> + <div>           | 'DELETE'</div> + <div>           | ( 'INSERT' | 'UPDATE' | 'REFERENCES' ) ( '(' <a href="#privilege-column-list" title="privilege_column_list" shape="rect">privilege_column_list</a> ')' )?</div> + <div>           | 'USAGE'</div> + <div>           | 'TRIGGER'</div> + <div>           | 'UNDER'</div> + <div>           | 'EXECUTE'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#object-privileges" title="object-privileges">object-privileges</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + privilege_method_list +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="219" height="49"> + <polygon points="9 38 1 34 1 42"/> + <polygon points="17 38 9 34 9 42"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#specific-routine-designator" xlink:title="specific_routine_designator" shape="rect"> + <rect x="43" y="29" width="132" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">specific_routine_designator</text></a><rect x="43" y="1" width="8" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="13">,</text> + <path class="line" d="m17 38 h2 m20 0 h4 m132 0 h4 m-160 0 l20 0 m-1 0 q-9 0 -9 -10 l0 -8 q0 -10 10 -10 m140 28 l20 0 m-20 0 q10 0 10 -10 l0 -8 q0 -10 -10 -10 m-140 0 h4 m8 0 h4 m0 0 h124 m23 28 h-3"/> + <polygon points="209 38 217 34 217 42"/> + <polygon points="209 38 201 34 201 42"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#privilege-method-list" title="privilege_method_list" shape="rect">privilege_method_list</a></div> + <div>         ::= <a href="#specific-routine-designator" title="specific_routine_designator" shape="rect">specific_routine_designator</a> ( ',' <a href="#specific-routine-designator" title="specific_routine_designator" shape="rect">specific_routine_designator</a> )*</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#action" title="action">action</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + privilege_column_list +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="139" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#column-name-list" xlink:title="column_name_list" shape="rect"> + <rect x="23" y="1" width="92" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">column_name_list</text></a><path class="line" d="m17 10 h2 m0 0 h4 m92 0 h4 m3 0 h-3"/> + <polygon points="129 10 137 6 137 14"/> + <polygon points="129 10 121 6 121 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#privilege-column-list" title="privilege_column_list" shape="rect">privilege_column_list</a></div> + <div>         ::= <a href="#column-name-list" title="column_name_list" shape="rect">column_name_list</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#action" title="action">action</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + grantee +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="133" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="43" y="1" width="40" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="13">PUBLIC</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#identifier" xlink:title="identifier" shape="rect"> + <rect x="43" y="29" width="46" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">identifier</text></a><path class="line" d="m17 10 h2 m20 0 h4 m40 0 h4 m0 0 h6 m-74 0 h20 m54 0 h20 m-94 0 q10 0 10 10 m74 0 q0 -10 10 -10 m-84 10 v8 m74 0 v-8 m-74 8 q0 10 10 10 m54 0 q10 0 10 -10 m-64 10 h4 m46 0 h4 m23 -28 h-3"/> + <polygon points="123 10 131 6 131 14"/> + <polygon points="123 10 115 6 115 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#grantee" title="grantee" shape="rect">grantee</a>  ::= 'PUBLIC'</div> + <div>           | <a href="#identifier" title="identifier" shape="rect">identifier</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#grant-privilege-statement" title="grant-privilege-statement">grant-privilege-statement</a></li><li><a href="#grant-role-statement" title="grant-role-statement">grant-role-statement</a></li><li><a href="#revoke-privilege-statement" title="revoke-privilege-statement">revoke-privilege-statement</a></li><li><a href="#revoke-role-statement" title="revoke-role-statement">revoke-role-statement</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + grantor +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="169" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="43" y="1" width="80" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="13">CURRENT_USER</text> + <rect x="43" y="29" width="82" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="41">CURRENT_ROLE</text> + <path class="line" d="m17 10 h2 m20 0 h4 m80 0 h4 m0 0 h2 m-110 0 h20 m90 0 h20 m-130 0 q10 0 10 10 m110 0 q0 -10 10 -10 m-120 10 v8 m110 0 v-8 m-110 8 q0 10 10 10 m90 0 q10 0 10 -10 m-100 10 h4 m82 0 h4 m23 -28 h-3"/> + <polygon points="159 10 167 6 167 14"/> + <polygon points="159 10 151 6 151 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#grantor" title="grantor" shape="rect">grantor</a>  ::= 'CURRENT_USER'</div> + <div>           | 'CURRENT_ROLE'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#grant-privilege-statement" title="grant-privilege-statement">grant-privilege-statement</a></li><li><a href="#grant-role-statement" title="grant-role-statement">grant-role-statement</a></li><li><a href="#revoke-privilege-statement" title="revoke-privilege-statement">revoke-privilege-statement</a></li><li><a href="#revoke-role-statement" title="revoke-role-statement">revoke-role-statement</a></li><li><a href="#role-definition" title="role-definition">role-definition</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + role_definition +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="363" height="42"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="42" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">CREATE</text> + <rect x="73" y="1" width="32" height="18" class="terminal" rx="4"/> + <text class="terminal" x="77" y="13">ROLE</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#identifier" xlink:title="identifier" shape="rect"> + <rect x="113" y="1" width="46" height="18" class="nonterminal"/> + <text class="nonterminal" x="117" y="13">identifier</text></a><rect x="187" y="22" width="34" height="18" class="terminal" rx="4"/> + <text class="terminal" x="191" y="34">WITH</text> + <rect x="229" y="22" width="40" height="18" class="terminal" rx="4"/> + <text class="terminal" x="233" y="34">ADMIN</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#grantor" xlink:title="grantor" shape="rect"> + <rect x="277" y="22" width="42" height="18" class="nonterminal"/> + <text class="nonterminal" x="281" y="34">grantor</text></a><path class="line" d="m17 10 h2 m0 0 h4 m42 0 h4 m0 0 h4 m32 0 h4 m0 0 h4 m46 0 h4 m20 0 h10 m0 0 h130 m-160 0 h20 m140 0 h20 m-180 0 q10 0 10 10 m160 0 q0 -10 10 -10 m-170 10 v1 m160 0 v-1 m-160 1 q0 10 10 10 m140 0 q10 0 10 -10 m-150 10 h4 m34 0 h4 m0 0 h4 m40 0 h4 m0 0 h4 m42 0 h4 m23 -21 h-3"/> + <polygon points="353 10 361 6 361 14"/> + <polygon points="353 10 345 6 345 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#role-definition" title="role_definition" shape="rect">role_definition</a></div> + <div>         ::= 'CREATE' 'ROLE' <a href="#identifier" title="identifier" shape="rect">identifier</a> ( 'WITH' 'ADMIN' <a href="#grantor" title="grantor" shape="rect">grantor</a> )?</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#sql-schema-definition-statement" title="sql-schema-definition-statement">sql-schema-definition-statement</a></li><li><a href="#schema-element" title="schema-element">schema-element</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + grant_role_statement +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="665" height="70"> + <polygon points="9 38 1 34 1 42"/> + <polygon points="17 38 9 34 9 42"/> + <rect x="23" y="29" width="40" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="41">GRANT</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#identifier" xlink:title="identifier" shape="rect"> + <rect x="91" y="29" width="46" height="18" class="nonterminal"/> + <text class="nonterminal" x="95" y="41">identifier</text></a><rect x="91" y="1" width="8" height="18" class="terminal" rx="4"/> + <text class="terminal" x="95" y="13">,</text> + <rect x="165" y="29" width="20" height="18" class="terminal" rx="4"/> + <text class="terminal" x="169" y="41">TO</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#grantee" xlink:title="grantee" shape="rect"> + <rect x="213" y="29" width="46" height="18" class="nonterminal"/> + <text class="nonterminal" x="217" y="41">grantee</text></a><rect x="213" y="1" width="8" height="18" class="terminal" rx="4"/> + <text class="terminal" x="217" y="13">,</text> + <rect x="307" y="50" width="34" height="18" class="terminal" rx="4"/> + <text class="terminal" x="311" y="62">WITH</text> + <rect x="349" y="50" width="40" height="18" class="terminal" rx="4"/> + <text class="terminal" x="353" y="62">ADMIN</text> + <rect x="397" y="50" width="46" height="18" class="terminal" rx="4"/> + <text class="terminal" x="401" y="62">OPTION</text> + <rect x="491" y="50" width="52" height="18" class="terminal" rx="4"/> + <text class="terminal" x="495" y="62">GRANTED</text> + <rect x="551" y="50" width="20" height="18" class="terminal" rx="4"/> + <text class="terminal" x="555" y="62">BY</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#grantor" xlink:title="grantor" shape="rect"> + <rect x="579" y="50" width="42" height="18" class="nonterminal"/> + <text class="nonterminal" x="583" y="62">grantor</text></a><path class="line" d="m17 38 h2 m0 0 h4 m40 0 h4 m20 0 h4 m46 0 h4 m-74 0 l20 0 m-1 0 q-9 0 -9 -10 l0 -8 q0 -10 10 -10 m54 28 l20 0 m-20 0 q10 0 10 -10 l0 -8 q0 -10 -10 -10 m-54 0 h4 m8 0 h4 m0 0 h38 m20 28 h4 m20 0 h4 m20 0 h4 m46 0 h4 m-74 0 l20 0 m-1 0 q-9 0 -9 -10 l0 -8 q0 -10 10 -10 m54 28 l20 0 m-20 0 q10 0 10 -10 l0 -8 q0 -10 -10 -10 m-54 0 h4 m8 0 h4 m0 0 h38 m40 28 h10 m0 0 h134 m-164 0 h20 m144 0 h20 m-184 0 q10 0 10 10 m164 0 q0 -10 10 -10 m-174 10 v1 m164 0 v-1 m-164 1 q0 10 10 10 m144 0 q10 0 10 -10 m-154 10 h4 m34 0 h4 m0 0 h4 m40 0 h4 m0 0 h4 m46 0 h4 m40 -21 h10 m0 0 h128 m-158 0 h20 m138 0 h20 m-178 0 q10 0 10 10 m158 0 q0 -10 10 -10 m-168 10 v1 m158 0 v-1 m-158 1 q0 10 10 10 m138 0 q10 0 10 -10 m-148 10 h4 m52 0 h4 m0 0 h4 m20 0 h4 m0 0 h4 m42 0 h4 m23 -21 h-3"/> + <polygon points="655 38 663 34 663 42"/> + <polygon points="655 38 647 34 647 42"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#grant-role-statement" title="grant_role_statement" shape="rect">grant_role_statement</a></div> + <div>         ::= 'GRANT' <a href="#identifier" title="identifier" shape="rect">identifier</a> ( ',' <a href="#identifier" title="identifier" shape="rect">identifier</a> )* 'TO' <a href="#grantee" title="grantee" shape="rect">grantee</a> ( ',' <a href="#grantee" title="grantee" shape="rect">grantee</a> )* ( 'WITH' 'ADMIN' 'OPTION' )? ( 'GRANTED' 'BY' <a href="#grantor" title="grantor" shape="rect">grantor</a> )?</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#grant-statement" title="grant-statement">grant-statement</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + drop_role_statement +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="175" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="34" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">DROP</text> + <rect x="65" y="1" width="32" height="18" class="terminal" rx="4"/> + <text class="terminal" x="69" y="13">ROLE</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#identifier" xlink:title="identifier" shape="rect"> + <rect x="105" y="1" width="46" height="18" class="nonterminal"/> + <text class="nonterminal" x="109" y="13">identifier</text></a><path class="line" d="m17 10 h2 m0 0 h4 m34 0 h4 m0 0 h4 m32 0 h4 m0 0 h4 m46 0 h4 m3 0 h-3"/> + <polygon points="165 10 173 6 173 14"/> + <polygon points="165 10 157 6 157 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#drop-role-statement" title="drop_role_statement" shape="rect">drop_role_statement</a></div> + <div>         ::= 'DROP' 'ROLE' <a href="#identifier" title="identifier" shape="rect">identifier</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#sql-schema-manipulation-statement" title="sql-schema-manipulation-statement">sql-schema-manipulation-statement</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + revoke_statement +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="223" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#revoke-privilege-statement" xlink:title="revoke_privilege_statement" shape="rect"> + <rect x="43" y="1" width="136" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">revoke_privilege_statement</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#revoke-role-statement" xlink:title="revoke_role_statement" shape="rect"> + <rect x="43" y="29" width="116" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">revoke_role_statement</text></a><path class="line" d="m17 10 h2 m20 0 h4 m136 0 h4 m-164 0 h20 m144 0 h20 m-184 0 q10 0 10 10 m164 0 q0 -10 10 -10 m-174 10 v8 m164 0 v-8 m-164 8 q0 10 10 10 m144 0 q10 0 10 -10 m-154 10 h4 m116 0 h4 m0 0 h20 m23 -28 h-3"/> + <polygon points="213 10 221 6 221 14"/> + <polygon points="213 10 205 6 205 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#revoke-statement" title="revoke_statement" shape="rect">revoke_statement</a></div> + <div>         ::= <a href="#revoke-privilege-statement" title="revoke_privilege_statement" shape="rect">revoke_privilege_statement</a></div> + <div>           | <a href="#revoke-role-statement" title="revoke_role_statement" shape="rect">revoke_role_statement</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#sql-schema-manipulation-statement" title="sql-schema-manipulation-statement">sql-schema-manipulation-statement</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + revoke_privilege_statement +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="723" height="70"> + <polygon points="9 38 1 34 1 42"/> + <polygon points="17 38 9 34 9 42"/> + <rect x="23" y="29" width="44" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="41">REVOKE</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#revoke-option-extension" xlink:title="revoke_option_extension" shape="rect"> + <rect x="95" y="50" width="126" height="18" class="nonterminal"/> + <text class="nonterminal" x="99" y="62">revoke_option_extension</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#privileges" xlink:title="privileges" shape="rect"> + <rect x="249" y="29" width="50" height="18" class="nonterminal"/> + <text class="nonterminal" x="253" y="41">privileges</text></a><rect x="307" y="29" width="36" height="18" class="terminal" rx="4"/> + <text class="terminal" x="311" y="41">FROM</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#grantee" xlink:title="grantee" shape="rect"> + <rect x="371" y="29" width="46" height="18" class="nonterminal"/> + <text class="nonterminal" x="375" y="41">grantee</text></a><rect x="371" y="1" width="8" height="18" class="terminal" rx="4"/> + <text class="terminal" x="375" y="13">,</text> + <rect x="465" y="50" width="52" height="18" class="terminal" rx="4"/> + <text class="terminal" x="469" y="62">GRANTED</text> + <rect x="525" y="50" width="20" height="18" class="terminal" rx="4"/> + <text class="terminal" x="529" y="62">BY</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#grantor" xlink:title="grantor" shape="rect"> + <rect x="553" y="50" width="42" height="18" class="nonterminal"/> + <text class="nonterminal" x="557" y="62">grantor</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#drop-behavior" xlink:title="drop_behavior" shape="rect"> + <rect x="623" y="29" width="76" height="18" class="nonterminal"/> + <text class="nonterminal" x="627" y="41">drop_behavior</text></a><path class="line" d="m17 38 h2 m0 0 h4 m44 0 h4 m20 0 h10 m0 0 h124 m-154 0 h20 m134 0 h20 m-174 0 q10 0 10 10 m154 0 q0 -10 10 -10 m-164 10 v1 m154 0 v-1 m-154 1 q0 10 10 10 m134 0 q10 0 10 -10 m-144 10 h4 m126 0 h4 m20 -21 h4 m50 0 h4 m0 0 h4 m36 0 h4 m20 0 h4 m46 0 h4 m-74 0 l20 0 m-1 0 q-9 0 -9 -10 l0 -8 q0 -10 10 -10 m54 28 l20 0 m-20 0 q10 0 10 -10 l0 -8 q0 -10 -10 -10 m-54 0 h4 m8 0 h4 m0 0 h38 m40 28 h10 m0 0 h128 m-158 0 h20 m138 0 h20 m-178 0 q10 0 10 10 m158 0 q0 -10 10 -10 m-168 10 v1 m158 0 v-1 m-158 1 q0 10 10 10 m138 0 q10 0 10 -10 m-148 10 h4 m52 0 h4 m0 0 h4 m20 0 h4 m0 0 h4 m42 0 h4 m20 -21 h4 m76 0 h4 m3 0 h-3"/> + <polygon points="713 38 721 34 721 42"/> + <polygon points="713 38 705 34 705 42"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#revoke-privilege-statement" title="revoke_privilege_statement" shape="rect">revoke_privilege_statement</a></div> + <div>         ::= 'REVOKE' <a href="#revoke-option-extension" title="revoke_option_extension" shape="rect">revoke_option_extension</a>? <a href="#privileges" title="privileges" shape="rect">privileges</a> 'FROM' <a href="#grantee" title="grantee" shape="rect">grantee</a> ( ',' <a href="#grantee" title="grantee" shape="rect">grantee</a> )* ( 'GRANTED' 'BY' <a href="#grantor" title="grantor" shape="rect">grantor</a> )? <a href="#drop-behavior" title="drop_behavior" shape="rect">drop_behavior</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#revoke-statement" title="revoke-statement">revoke-statement</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + revoke_option_extension +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="237" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="43" y="1" width="40" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="13">GRANT</text> + <rect x="43" y="29" width="62" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="41">HIERARCHY</text> + <rect x="133" y="1" width="46" height="18" class="terminal" rx="4"/> + <text class="terminal" x="137" y="13">OPTION</text> + <rect x="187" y="1" width="26" height="18" class="terminal" rx="4"/> + <text class="terminal" x="191" y="13">FOR</text> + <path class="line" d="m17 10 h2 m20 0 h4 m40 0 h4 m0 0 h22 m-90 0 h20 m70 0 h20 m-110 0 q10 0 10 10 m90 0 q0 -10 10 -10 m-100 10 v8 m90 0 v-8 m-90 8 q0 10 10 10 m70 0 q10 0 10 -10 m-80 10 h4 m62 0 h4 m20 -28 h4 m46 0 h4 m0 0 h4 m26 0 h4 m3 0 h-3"/> + <polygon points="227 10 235 6 235 14"/> + <polygon points="227 10 219 6 219 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#revoke-option-extension" title="revoke_option_extension" shape="rect">revoke_option_extension</a></div> + <div>         ::= ( 'GRANT' | 'HIERARCHY' ) 'OPTION' 'FOR'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#revoke-privilege-statement" title="revoke-privilege-statement">revoke-privilege-statement</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + revoke_role_statement +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="761" height="70"> + <polygon points="9 38 1 34 1 42"/> + <polygon points="17 38 9 34 9 42"/> + <rect x="23" y="29" width="44" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="41">REVOKE</text> + <rect x="95" y="50" width="40" height="18" class="terminal" rx="4"/> + <text class="terminal" x="99" y="62">ADMIN</text> + <rect x="143" y="50" width="46" height="18" class="terminal" rx="4"/> + <text class="terminal" x="147" y="62">OPTION</text> + <rect x="197" y="50" width="26" height="18" class="terminal" rx="4"/> + <text class="terminal" x="201" y="62">FOR</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#identifier" xlink:title="identifier" shape="rect"> + <rect x="271" y="29" width="46" height="18" class="nonterminal"/> + <text class="nonterminal" x="275" y="41">identifier</text></a><rect x="271" y="1" width="8" height="18" class="terminal" rx="4"/> + <text class="terminal" x="275" y="13">,</text> + <rect x="345" y="29" width="36" height="18" class="terminal" rx="4"/> + <text class="terminal" x="349" y="41">FROM</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#grantee" xlink:title="grantee" shape="rect"> + <rect x="409" y="29" width="46" height="18" class="nonterminal"/> + <text class="nonterminal" x="413" y="41">grantee</text></a><rect x="409" y="1" width="8" height="18" class="terminal" rx="4"/> + <text class="terminal" x="413" y="13">,</text> + <rect x="503" y="50" width="52" height="18" class="terminal" rx="4"/> + <text class="terminal" x="507" y="62">GRANTED</text> + <rect x="563" y="50" width="20" height="18" class="terminal" rx="4"/> + <text class="terminal" x="567" y="62">BY</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#grantor" xlink:title="grantor" shape="rect"> + <rect x="591" y="50" width="42" height="18" class="nonterminal"/> + <text class="nonterminal" x="595" y="62">grantor</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#drop-behavior" xlink:title="drop_behavior" shape="rect"> + <rect x="661" y="29" width="76" height="18" class="nonterminal"/> + <text class="nonterminal" x="665" y="41">drop_behavior</text></a><path class="line" d="m17 38 h2 m0 0 h4 m44 0 h4 m20 0 h10 m0 0 h126 m-156 0 h20 m136 0 h20 m-176 0 q10 0 10 10 m156 0 q0 -10 10 -10 m-166 10 v1 m156 0 v-1 m-156 1 q0 10 10 10 m136 0 q10 0 10 -10 m-146 10 h4 m40 0 h4 m0 0 h4 m46 0 h4 m0 0 h4 m26 0 h4 m40 -21 h4 m46 0 h4 m-74 0 l20 0 m-1 0 q-9 0 -9 -10 l0 -8 q0 -10 10 -10 m54 28 l20 0 m-20 0 q10 0 10 -10 l0 -8 q0 -10 -10 -10 m-54 0 h4 m8 0 h4 m0 0 h38 m20 28 h4 m36 0 h4 m20 0 h4 m46 0 h4 m-74 0 l20 0 m-1 0 q-9 0 -9 -10 l0 -8 q0 -10 10 -10 m54 28 l20 0 m-20 0 q10 0 10 -10 l0 -8 q0 -10 -10 -10 m-54 0 h4 m8 0 h4 m0 0 h38 m40 28 h10 m0 0 h128 m-158 0 h20 m138 0 h20 m-178 0 q10 0 10 10 m158 0 q0 -10 10 -10 m-168 10 v1 m158 0 v-1 m-158 1 q0 10 10 10 m138 0 q10 0 10 -10 m-148 10 h4 m52 0 h4 m0 0 h4 m20 0 h4 m0 0 h4 m42 0 h4 m20 -21 h4 m76 0 h4 m3 0 h-3"/> + <polygon points="751 38 759 34 759 42"/> + <polygon points="751 38 743 34 743 42"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#revoke-role-statement" title="revoke_role_statement" shape="rect">revoke_role_statement</a></div> + <div>         ::= 'REVOKE' ( 'ADMIN' 'OPTION' 'FOR' )? <a href="#identifier" title="identifier" shape="rect">identifier</a> ( ',' <a href="#identifier" title="identifier" shape="rect">identifier</a> )* 'FROM' <a href="#grantee" title="grantee" shape="rect">grantee</a> ( ',' <a href="#grantee" title="grantee" shape="rect">grantee</a> )* ( 'GRANTED' 'BY' <a href="#grantor" title="grantor" shape="rect">grantor</a> )? <a href="#drop-behavior" title="drop_behavior" shape="rect">drop_behavior</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#revoke-statement" title="revoke-statement">revoke-statement</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + SQL_client_module_definition +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="731" height="126"> + <polygon points="11 10 3 6 3 14"/> + <polygon points="19 10 11 6 11 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#module-name-clause" xlink:title="module_name_clause" shape="rect"> + <rect x="25" y="1" width="112" height="18" class="nonterminal"/> + <text class="nonterminal" x="29" y="13">module_name_clause</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#language-clause" xlink:title="language_clause" shape="rect"> + <rect x="145" y="1" width="88" height="18" class="nonterminal"/> + <text class="nonterminal" x="149" y="13">language_clause</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#module-authorization-clause" xlink:title="module_authorization_clause" shape="rect"> + <rect x="241" y="1" width="144" height="18" class="nonterminal"/> + <text class="nonterminal" x="245" y="13">module_authorization_clause</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#module-path-specification" xlink:title="module_path_specification" shape="rect"> + <rect x="413" y="22" width="130" height="18" class="nonterminal"/> + <text class="nonterminal" x="417" y="34">module_path_specification</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#module-transform-group-specification" xlink:title="module_transform_group_specification" shape="rect"> + <rect x="37" y="106" width="186" height="18" class="nonterminal"/> + <text class="nonterminal" x="41" y="118">module_transform_group_specification</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#module-collations" xlink:title="module_collations" shape="rect"> + <rect x="271" y="106" width="90" height="18" class="nonterminal"/> + <text class="nonterminal" x="275" y="118">module_collations</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#temporary-table-declaration" xlink:title="temporary_table_declaration" shape="rect"> + <rect x="409" y="64" width="140" height="18" class="nonterminal"/> + <text class="nonterminal" x="413" y="76">temporary_table_declaration</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#module-contents" xlink:title="module_contents" shape="rect"> + <rect x="597" y="85" width="90" height="18" class="nonterminal"/> + <text class="nonterminal" x="601" y="97">module_contents</text></a><path class="line" d="m19 10 h2 m0 0 h4 m112 0 h4 m0 0 h4 m88 0 h4 m0 0 h4 m144 0 h4 m20 0 h10 m0 0 h128 m-158 0 h20 m138 0 h20 m-178 0 q10 0 10 10 m158 0 q0 -10 10 -10 m-168 10 v1 m158 0 v-1 m-158 1 q0 10 10 10 m138 0 q10 0 10 -10 m-148 10 h4 m130 0 h4 m22 -21 l2 0 m2 0 l2 0 m2 0 l2 0 m-578 84 l2 0 m2 0 l2 0 m2 0 l2 0 m22 0 h10 m0 0 h184 m-214 0 h20 m194 0 h20 m-234 0 q10 0 10 10 m214 0 q0 -10 10 -10 m-224 10 v1 m214 0 v-1 m-214 1 q0 10 10 10 m194 0 q10 0 10 -10 m-204 10 h4 m186 0 h4 m40 -21 h10 m0 0 h88 m-118 0 h20 m98 0 h20 m-138 0 q10 0 10 10 m118 0 q0 -10 10 -10 m-128 10 v1 m118 0 v-1 m-118 1 q0 10 10 10 m98 0 q10 0 10 -10 m-108 10 h4 m90 0 h4 m40 -21 h10 m0 0 h138 m-168 0 l20 0 m-1 0 q-9 0 -9 -10 l0 -1 q0 -10 10 -10 m148 21 l20 0 m-20 0 q10 0 10 -10 l0 -1 q0 -10 -10 -10 m-148 0 h4 m140 0 h4 m40 21 h4 m90 0 h4 m-118 0 l20 0 m-1 0 q-9 0 -9 -10 l0 -1 q0 -10 10 -10 m98 21 l20 0 m-20 0 q10 0 10 -10 l0 -1 q0 -10 -10 -10 m-98 0 h10 m0 0 h88 m23 21 h-3"/> + <polygon points="721 94 729 90 729 98"/> + <polygon points="721 94 713 90 713 98"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#sql-client-module-definition" title="SQL_client_module_definition" shape="rect">SQL_client_module_definition</a></div> + <div>         ::= <a href="#module-name-clause" title="module_name_clause" shape="rect">module_name_clause</a> <a href="#language-clause" title="language_clause" shape="rect">language_clause</a> <a href="#module-authorization-clause" title="module_authorization_clause" shape="rect">module_authorization_clause</a> <a href="#module-path-specification" title="module_path_specification" shape="rect">module_path_specification</a>? <a href="#module-transform-group-specification" title="module_transform_group_specification" shape="rect">module_transform_group_specification</a>? <a href="#module-collations" title="module_collations" shape="rect">module_collations</a>? <a href="#temporary-table-declaration" title="temporary_table_declaration" shape="rect">temporary_table_declaration</a>* <a href="#module-contents" title="module_contents" shape="rect">module_contents</a>+</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Not referenced by any. + </div></td></tr></tbody></table> + + +====================================================================================================================== + module_authorization_clause +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="667" height="168"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="43" y="1" width="46" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="13">SCHEMA</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#schema-name" xlink:title="schema_name" shape="rect"> + <rect x="97" y="1" width="80" height="18" class="nonterminal"/> + <text class="nonterminal" x="101" y="13">schema_name</text></a><rect x="205" y="22" width="86" height="18" class="terminal" rx="4"/> + <text class="terminal" x="209" y="34">AUTHORIZATION</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#identifier" xlink:title="identifier" shape="rect"> + <rect x="299" y="22" width="46" height="18" class="nonterminal"/> + <text class="nonterminal" x="303" y="34">identifier</text></a><rect x="373" y="43" width="26" height="18" class="terminal" rx="4"/> + <text class="terminal" x="377" y="55">FOR</text> + <rect x="407" y="43" width="40" height="18" class="terminal" rx="4"/> + <text class="terminal" x="411" y="55">STATIC</text> + <rect x="475" y="43" width="34" height="18" class="terminal" rx="4"/> + <text class="terminal" x="479" y="55">ONLY</text> + <rect x="475" y="71" width="28" height="18" class="terminal" rx="4"/> + <text class="terminal" x="479" y="83">AND</text> + <rect x="511" y="71" width="52" height="18" class="terminal" rx="4"/> + <text class="terminal" x="515" y="83">DYNAMIC</text> + <rect x="43" y="99" width="86" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="111">AUTHORIZATION</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#identifier" xlink:title="identifier" shape="rect"> + <rect x="137" y="99" width="46" height="18" class="nonterminal"/> + <text class="nonterminal" x="141" y="111">identifier</text></a><rect x="211" y="120" width="26" height="18" class="terminal" rx="4"/> + <text class="terminal" x="215" y="132">FOR</text> + <rect x="245" y="120" width="40" height="18" class="terminal" rx="4"/> + <text class="terminal" x="249" y="132">STATIC</text> + <rect x="313" y="120" width="34" height="18" class="terminal" rx="4"/> + <text class="terminal" x="317" y="132">ONLY</text> + <rect x="313" y="148" width="28" height="18" class="terminal" rx="4"/> + <text class="terminal" x="317" y="160">AND</text> + <rect x="349" y="148" width="52" height="18" class="terminal" rx="4"/> + <text class="terminal" x="353" y="160">DYNAMIC</text> + <path class="line" d="m17 10 h2 m20 0 h4 m46 0 h4 m0 0 h4 m80 0 h4 m20 0 h10 m0 0 h396 m-426 0 h20 m406 0 h20 m-446 0 q10 0 10 10 m426 0 q0 -10 10 -10 m-436 10 v1 m426 0 v-1 m-426 1 q0 10 10 10 m406 0 q10 0 10 -10 m-416 10 h4 m86 0 h4 m0 0 h4 m46 0 h4 m20 0 h10 m0 0 h208 m-238 0 h20 m218 0 h20 m-258 0 q10 0 10 10 m238 0 q0 -10 10 -10 m-248 10 v1 m238 0 v-1 m-238 1 q0 10 10 10 m218 0 q10 0 10 -10 m-228 10 h4 m26 0 h4 m0 0 h4 m40 0 h4 m20 0 h4 m34 0 h4 m0 0 h54 m-116 0 h20 m96 0 h20 m-136 0 q10 0 10 10 m116 0 q0 -10 10 -10 m-126 10 v8 m116 0 v-8 m-116 8 q0 10 10 10 m96 0 q10 0 10 -10 m-106 10 h4 m28 0 h4 m0 0 h4 m52 0 h4 m-548 -70 h20 m588 0 h20 m-628 0 q10 0 10 10 m608 0 q0 -10 10 -10 m-618 10 v78 m608 0 v-78 m-608 78 q0 10 10 10 m588 0 q10 0 10 -10 m-598 10 h4 m86 0 h4 m0 0 h4 m46 0 h4 m20 0 h10 m0 0 h208 m-238 0 h20 m218 0 h20 m-258 0 q10 0 10 10 m238 0 q0 -10 10 -10 m-248 10 v1 m238 0 v-1 m-238 1 q0 10 10 10 m218 0 q10 0 10 -10 m-228 10 h4 m26 0 h4 m0 0 h4 m40 0 h4 m20 0 h4 m34 0 h4 m0 0 h54 m-116 0 h20 m96 0 h20 m-136 0 q10 0 10 10 m116 0 q0 -10 10 -10 m-126 10 v8 m116 0 v-8 m-116 8 q0 10 10 10 m96 0 q10 0 10 -10 m-106 10 h4 m28 0 h4 m0 0 h4 m52 0 h4 m40 -49 h182 m23 -98 h-3"/> + <polygon points="657 10 665 6 665 14"/> + <polygon points="657 10 649 6 649 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#module-authorization-clause" title="module_authorization_clause" shape="rect">module_authorization_clause</a></div> + <div>         ::= 'SCHEMA' <a href="#schema-name" title="schema_name" shape="rect">schema_name</a> ( 'AUTHORIZATION' <a href="#identifier" title="identifier" shape="rect">identifier</a> ( 'FOR' 'STATIC' ( 'ONLY' | 'AND' 'DYNAMIC' ) )? )?</div> + <div>           | 'AUTHORIZATION' <a href="#identifier" title="identifier" shape="rect">identifier</a> ( 'FOR' 'STATIC' ( 'ONLY' | 'AND' 'DYNAMIC' ) )?</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#sql-client-module-definition" title="sql-client-module-definition">sql-client-module-definition</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + module_path_specification +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="137" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#path-specification" xlink:title="path_specification" shape="rect"> + <rect x="23" y="1" width="90" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">path_specification</text></a><path class="line" d="m17 10 h2 m0 0 h4 m90 0 h4 m3 0 h-3"/> + <polygon points="127 10 135 6 135 14"/> + <polygon points="127 10 119 6 119 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#module-path-specification" title="module_path_specification" shape="rect">module_path_specification</a></div> + <div>         ::= <a href="#path-specification" title="path_specification" shape="rect">path_specification</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#sql-client-module-definition" title="sql-client-module-definition">sql-client-module-definition</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + module_transform_group_specification +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="193" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#transform-group-specification" xlink:title="transform_group_specification" shape="rect"> + <rect x="23" y="1" width="146" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">transform_group_specification</text></a><path class="line" d="m17 10 h2 m0 0 h4 m146 0 h4 m3 0 h-3"/> + <polygon points="183 10 191 6 191 14"/> + <polygon points="183 10 175 6 175 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#module-transform-group-specification" title="module_transform_group_specification" shape="rect">module_transform_group_specification</a></div> + <div>         ::= <a href="#transform-group-specification" title="transform_group_specification" shape="rect">transform_group_specification</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#sql-client-module-definition" title="sql-client-module-definition">sql-client-module-definition</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + module_collations +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="231" height="33"> + <polygon points="9 22 1 18 1 26"/> + <polygon points="17 22 9 18 9 26"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#module-collation-specification" xlink:title="module_collation_specification" shape="rect"> + <rect x="43" y="13" width="144" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="25">module_collation_specification</text></a><path class="line" d="m17 22 h2 m20 0 h4 m144 0 h4 m-172 0 l20 0 m-1 0 q-9 0 -9 -10 l0 -1 q0 -10 10 -10 m152 21 l20 0 m-20 0 q10 0 10 -10 l0 -1 q0 -10 -10 -10 m-152 0 h10 m0 0 h142 m23 21 h-3"/> + <polygon points="221 22 229 18 229 26"/> + <polygon points="221 22 213 18 213 26"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#module-collations" title="module_collations" shape="rect">module_collations</a></div> + <div>         ::= <a href="#module-collation-specification" title="module_collation_specification" shape="rect">module_collation_specification</a>+</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#sql-client-module-definition" title="sql-client-module-definition">sql-client-module-definition</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + module_collation_specification +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="467" height="42"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="62" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">COLLATION</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#schema-qualified-name" xlink:title="schema_qualified_name" shape="rect"> + <rect x="93" y="1" width="122" height="18" class="nonterminal"/> + <text class="nonterminal" x="97" y="13">schema_qualified_name</text></a><rect x="243" y="22" width="26" height="18" class="terminal" rx="4"/> + <text class="terminal" x="247" y="34">FOR</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#character-set-specification-list" xlink:title="character_set_specification_list" shape="rect"> + <rect x="277" y="22" width="146" height="18" class="nonterminal"/> + <text class="nonterminal" x="281" y="34">character_set_specification_list</text></a><path class="line" d="m17 10 h2 m0 0 h4 m62 0 h4 m0 0 h4 m122 0 h4 m20 0 h10 m0 0 h178 m-208 0 h20 m188 0 h20 m-228 0 q10 0 10 10 m208 0 q0 -10 10 -10 m-218 10 v1 m208 0 v-1 m-208 1 q0 10 10 10 m188 0 q10 0 10 -10 m-198 10 h4 m26 0 h4 m0 0 h4 m146 0 h4 m23 -21 h-3"/> + <polygon points="457 10 465 6 465 14"/> + <polygon points="457 10 449 6 449 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#module-collation-specification" title="module_collation_specification" shape="rect">module_collation_specification</a></div> + <div>         ::= 'COLLATION' <a href="#schema-qualified-name" title="schema_qualified_name" shape="rect">schema_qualified_name</a> ( 'FOR' <a href="#character-set-specification-list" title="character_set_specification_list" shape="rect">character_set_specification_list</a> )?</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#module-collations" title="module-collations">module-collations</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + character_set_specification_list +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="217" height="49"> + <polygon points="9 38 1 34 1 42"/> + <polygon points="17 38 9 34 9 42"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#character-set-specification" xlink:title="character_set_specification" shape="rect"> + <rect x="43" y="29" width="130" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">character_set_specification</text></a><rect x="43" y="1" width="8" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="13">,</text> + <path class="line" d="m17 38 h2 m20 0 h4 m130 0 h4 m-158 0 l20 0 m-1 0 q-9 0 -9 -10 l0 -8 q0 -10 10 -10 m138 28 l20 0 m-20 0 q10 0 10 -10 l0 -8 q0 -10 -10 -10 m-138 0 h4 m8 0 h4 m0 0 h122 m23 28 h-3"/> + <polygon points="207 38 215 34 215 42"/> + <polygon points="207 38 199 34 199 42"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#character-set-specification-list" title="character_set_specification_list" shape="rect">character_set_specification_list</a></div> + <div>         ::= <a href="#character-set-specification" title="character_set_specification" shape="rect">character_set_specification</a> ( ',' <a href="#character-set-specification" title="character_set_specification" shape="rect">character_set_specification</a> )*</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#module-collation-specification" title="module-collation-specification">module-collation-specification</a></li><li><a href="#set-session-collation-statement" title="set-session-collation-statement">set-session-collation-statement</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + module_contents +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="233" height="77"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#declare-cursor" xlink:title="declare_cursor" shape="rect"> + <rect x="43" y="1" width="76" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">declare_cursor</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#dynamic-declare-cursor" xlink:title="dynamic_declare_cursor" shape="rect"> + <rect x="43" y="29" width="120" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">dynamic_declare_cursor</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#externally-invoked-procedure" xlink:title="externally_invoked_procedure" shape="rect"> + <rect x="43" y="57" width="146" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="69">externally_invoked_procedure</text></a><path class="line" d="m17 10 h2 m20 0 h4 m76 0 h4 m0 0 h70 m-174 0 h20 m154 0 h20 m-194 0 q10 0 10 10 m174 0 q0 -10 10 -10 m-184 10 v8 m174 0 v-8 m-174 8 q0 10 10 10 m154 0 q10 0 10 -10 m-164 10 h4 m120 0 h4 m0 0 h26 m-164 -10 v20 m174 0 v-20 m-174 20 v8 m174 0 v-8 m-174 8 q0 10 10 10 m154 0 q10 0 10 -10 m-164 10 h4 m146 0 h4 m23 -56 h-3"/> + <polygon points="223 10 231 6 231 14"/> + <polygon points="223 10 215 6 215 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#module-contents" title="module_contents" shape="rect">module_contents</a></div> + <div>         ::= <a href="#declare-cursor" title="declare_cursor" shape="rect">declare_cursor</a></div> + <div>           | <a href="#dynamic-declare-cursor" title="dynamic_declare_cursor" shape="rect">dynamic_declare_cursor</a></div> + <div>           | <a href="#externally-invoked-procedure" title="externally_invoked_procedure" shape="rect">externally_invoked_procedure</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#sql-client-module-definition" title="sql-client-module-definition">sql-client-module-definition</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + module_name_clause +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="407" height="42"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="48" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">MODULE</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#identifier" xlink:title="identifier" shape="rect"> + <rect x="99" y="22" width="46" height="18" class="nonterminal"/> + <text class="nonterminal" x="103" y="34">identifier</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#module-character-set-specification" xlink:title="module_character_set_specification" shape="rect"> + <rect x="193" y="22" width="170" height="18" class="nonterminal"/> + <text class="nonterminal" x="197" y="34">module_character_set_specification</text></a><path class="line" d="m17 10 h2 m0 0 h4 m48 0 h4 m20 0 h10 m0 0 h44 m-74 0 h20 m54 0 h20 m-94 0 q10 0 10 10 m74 0 q0 -10 10 -10 m-84 10 v1 m74 0 v-1 m-74 1 q0 10 10 10 m54 0 q10 0 10 -10 m-64 10 h4 m46 0 h4 m40 -21 h10 m0 0 h168 m-198 0 h20 m178 0 h20 m-218 0 q10 0 10 10 m198 0 q0 -10 10 -10 m-208 10 v1 m198 0 v-1 m-198 1 q0 10 10 10 m178 0 q10 0 10 -10 m-188 10 h4 m170 0 h4 m23 -21 h-3"/> + <polygon points="397 10 405 6 405 14"/> + <polygon points="397 10 389 6 389 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#module-name-clause" title="module_name_clause" shape="rect">module_name_clause</a></div> + <div>         ::= 'MODULE' <a href="#identifier" title="identifier" shape="rect">identifier</a>? <a href="#module-character-set-specification" title="module_character_set_specification" shape="rect">module_character_set_specification</a>?</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#sql-client-module-definition" title="sql-client-module-definition">sql-client-module-definition</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + module_character_set_specification +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="259" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="40" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">NAMES</text> + <rect x="71" y="1" width="26" height="18" class="terminal" rx="4"/> + <text class="terminal" x="75" y="13">ARE</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#character-set-specification" xlink:title="character_set_specification" shape="rect"> + <rect x="105" y="1" width="130" height="18" class="nonterminal"/> + <text class="nonterminal" x="109" y="13">character_set_specification</text></a><path class="line" d="m17 10 h2 m0 0 h4 m40 0 h4 m0 0 h4 m26 0 h4 m0 0 h4 m130 0 h4 m3 0 h-3"/> + <polygon points="249 10 257 6 257 14"/> + <polygon points="249 10 241 6 241 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#module-character-set-specification" title="module_character_set_specification" shape="rect">module_character_set_specification</a></div> + <div>         ::= 'NAMES' 'ARE' <a href="#character-set-specification" title="character_set_specification" shape="rect">character_set_specification</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#module-name-clause" title="module-name-clause">module-name-clause</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + externally_invoked_procedure +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="507" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="64" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">PROCEDURE</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#identifier" xlink:title="identifier" shape="rect"> + <rect x="95" y="1" width="46" height="18" class="nonterminal"/> + <text class="nonterminal" x="99" y="13">identifier</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#host-parameter-declaration-list" xlink:title="host_parameter_declaration_list" shape="rect"> + <rect x="149" y="1" width="156" height="18" class="nonterminal"/> + <text class="nonterminal" x="153" y="13">host_parameter_declaration_list</text></a><rect x="313" y="1" width="10" height="18" class="terminal" rx="4"/> + <text class="terminal" x="317" y="13">;</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#sql-procedure-statement" xlink:title="SQL_procedure_statement" shape="rect"> + <rect x="331" y="1" width="134" height="18" class="nonterminal"/> + <text class="nonterminal" x="335" y="13">SQL_procedure_statement</text></a><rect x="473" y="1" width="10" height="18" class="terminal" rx="4"/> + <text class="terminal" x="477" y="13">;</text> + <path class="line" d="m17 10 h2 m0 0 h4 m64 0 h4 m0 0 h4 m46 0 h4 m0 0 h4 m156 0 h4 m0 0 h4 m10 0 h4 m0 0 h4 m134 0 h4 m0 0 h4 m10 0 h4 m3 0 h-3"/> + <polygon points="497 10 505 6 505 14"/> + <polygon points="497 10 489 6 489 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#externally-invoked-procedure" title="externally_invoked_procedure" shape="rect">externally_invoked_procedure</a></div> + <div>         ::= 'PROCEDURE' <a href="#identifier" title="identifier" shape="rect">identifier</a> <a href="#host-parameter-declaration-list" title="host_parameter_declaration_list" shape="rect">host_parameter_declaration_list</a> ';' <a href="#sql-procedure-statement" title="SQL_procedure_statement" shape="rect">SQL_procedure_statement</a> ';'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#module-contents" title="module-contents">module-contents</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + host_parameter_declaration_list +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="267" height="49"> + <polygon points="9 38 1 34 1 42"/> + <polygon points="17 38 9 34 9 42"/> + <rect x="23" y="29" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="41">(</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#host-parameter-declaration" xlink:title="host_parameter_declaration" shape="rect"> + <rect x="63" y="29" width="140" height="18" class="nonterminal"/> + <text class="nonterminal" x="67" y="41">host_parameter_declaration</text></a><rect x="63" y="1" width="8" height="18" class="terminal" rx="4"/> + <text class="terminal" x="67" y="13">,</text> + <rect x="231" y="29" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="235" y="41">)</text> + <path class="line" d="m17 38 h2 m0 0 h4 m12 0 h4 m20 0 h4 m140 0 h4 m-168 0 l20 0 m-1 0 q-9 0 -9 -10 l0 -8 q0 -10 10 -10 m148 28 l20 0 m-20 0 q10 0 10 -10 l0 -8 q0 -10 -10 -10 m-148 0 h4 m8 0 h4 m0 0 h132 m20 28 h4 m12 0 h4 m3 0 h-3"/> + <polygon points="257 38 265 34 265 42"/> + <polygon points="257 38 249 34 249 42"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#host-parameter-declaration-list" title="host_parameter_declaration_list" shape="rect">host_parameter_declaration_list</a></div> + <div>         ::= '(' <a href="#host-parameter-declaration" title="host_parameter_declaration" shape="rect">host_parameter_declaration</a> ( ',' <a href="#host-parameter-declaration" title="host_parameter_declaration" shape="rect">host_parameter_declaration</a> )* ')'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#externally-invoked-procedure" title="externally-invoked-procedure">externally-invoked-procedure</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + host_parameter_declaration +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="351" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#host-parameter-name" xlink:title="host_parameter_name" shape="rect"> + <rect x="43" y="1" width="118" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">host_parameter_name</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#host-parameter-data-type" xlink:title="host_parameter_data_type" shape="rect"> + <rect x="169" y="1" width="138" height="18" class="nonterminal"/> + <text class="nonterminal" x="173" y="13">host_parameter_data_type</text></a><rect x="43" y="29" width="54" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="41">SQLSTATE</text> + <path class="line" d="m17 10 h2 m20 0 h4 m118 0 h4 m0 0 h4 m138 0 h4 m-292 0 h20 m272 0 h20 m-312 0 q10 0 10 10 m292 0 q0 -10 10 -10 m-302 10 v8 m292 0 v-8 m-292 8 q0 10 10 10 m272 0 q10 0 10 -10 m-282 10 h4 m54 0 h4 m0 0 h210 m23 -28 h-3"/> + <polygon points="341 10 349 6 349 14"/> + <polygon points="341 10 333 6 333 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#host-parameter-declaration" title="host_parameter_declaration" shape="rect">host_parameter_declaration</a></div> + <div>         ::= <a href="#host-parameter-name" title="host_parameter_name" shape="rect">host_parameter_name</a> <a href="#host-parameter-data-type" title="host_parameter_data_type" shape="rect">host_parameter_data_type</a></div> + <div>           | 'SQLSTATE'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#host-parameter-declaration-list" title="host-parameter-declaration-list">host-parameter-declaration-list</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + host_parameter_data_type +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="237" height="42"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#data-type" xlink:title="data_type" shape="rect"> + <rect x="23" y="1" width="56" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">data_type</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#locator-indication" xlink:title="locator_indication" shape="rect"> + <rect x="107" y="22" width="86" height="18" class="nonterminal"/> + <text class="nonterminal" x="111" y="34">locator_indication</text></a><path class="line" d="m17 10 h2 m0 0 h4 m56 0 h4 m20 0 h10 m0 0 h84 m-114 0 h20 m94 0 h20 m-134 0 q10 0 10 10 m114 0 q0 -10 10 -10 m-124 10 v1 m114 0 v-1 m-114 1 q0 10 10 10 m94 0 q10 0 10 -10 m-104 10 h4 m86 0 h4 m23 -21 h-3"/> + <polygon points="227 10 235 6 235 14"/> + <polygon points="227 10 219 6 219 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#host-parameter-data-type" title="host_parameter_data_type" shape="rect">host_parameter_data_type</a></div> + <div>         ::= <a href="#data-type" title="data_type" shape="rect">data_type</a> <a href="#locator-indication" title="locator_indication" shape="rect">locator_indication</a>?</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#host-parameter-declaration" title="host-parameter-declaration">host-parameter-declaration</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + SQL_procedure_statement +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="185" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#sql-executable-statement" xlink:title="SQL_executable_statement" shape="rect"> + <rect x="23" y="1" width="138" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">SQL_executable_statement</text></a><path class="line" d="m17 10 h2 m0 0 h4 m138 0 h4 m3 0 h-3"/> + <polygon points="175 10 183 6 183 14"/> + <polygon points="175 10 167 6 167 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#sql-procedure-statement" title="SQL_procedure_statement" shape="rect">SQL_procedure_statement</a></div> + <div>         ::= <a href="#sql-executable-statement" title="SQL_executable_statement" shape="rect">SQL_executable_statement</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#sql-routine-body" title="sql-routine-body">sql-routine-body</a></li><li><a href="#externally-invoked-procedure" title="externally-invoked-procedure">externally-invoked-procedure</a></li><li><a href="#triggered-sql-statement" title="triggered-sql-statement">triggered-sql-statement</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + SQL_executable_statement +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="225" height="217"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#sql-schema-statement" xlink:title="SQL_schema_statement" shape="rect"> + <rect x="43" y="1" width="124" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">SQL_schema_statement</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#sql-data-statement" xlink:title="SQL_data_statement" shape="rect"> + <rect x="43" y="29" width="108" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">SQL_data_statement</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#sql-control-statement" xlink:title="SQL_control_statement" shape="rect"> + <rect x="43" y="57" width="118" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="69">SQL_control_statement</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#sql-transaction-statement" xlink:title="SQL_transaction_statement" shape="rect"> + <rect x="43" y="85" width="138" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="97">SQL_transaction_statement</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#sql-connection-statement" xlink:title="SQL_connection_statement" shape="rect"> + <rect x="43" y="113" width="136" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="125">SQL_connection_statement</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#sql-session-statement" xlink:title="SQL_session_statement" shape="rect"> + <rect x="43" y="141" width="122" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="153">SQL_session_statement</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#sql-diagnostics-statement" xlink:title="SQL_diagnostics_statement" shape="rect"> + <rect x="43" y="169" width="138" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="181">SQL_diagnostics_statement</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#sql-dynamic-statement" xlink:title="SQL_dynamic_statement" shape="rect"> + <rect x="43" y="197" width="126" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="209">SQL_dynamic_statement</text></a><path class="line" d="m17 10 h2 m20 0 h4 m124 0 h4 m0 0 h14 m-166 0 h20 m146 0 h20 m-186 0 q10 0 10 10 m166 0 q0 -10 10 -10 m-176 10 v8 m166 0 v-8 m-166 8 q0 10 10 10 m146 0 q10 0 10 -10 m-156 10 h4 m108 0 h4 m0 0 h30 m-156 -10 v20 m166 0 v-20 m-166 20 v8 m166 0 v-8 m-166 8 q0 10 10 10 m146 0 q10 0 10 -10 m-156 10 h4 m118 0 h4 m0 0 h20 m-156 -10 v20 m166 0 v-20 m-166 20 v8 m166 0 v-8 m-166 8 q0 10 10 10 m146 0 q10 0 10 -10 m-156 10 h4 m138 0 h4 m-156 -10 v20 m166 0 v-20 m-166 20 v8 m166 0 v-8 m-166 8 q0 10 10 10 m146 0 q10 0 10 -10 m-156 10 h4 m136 0 h4 m0 0 h2 m-156 -10 v20 m166 0 v-20 m-166 20 v8 m166 0 v-8 m-166 8 q0 10 10 10 m146 0 q10 0 10 -10 m-156 10 h4 m122 0 h4 m0 0 h16 m-156 -10 v20 m166 0 v-20 m-166 20 v8 m166 0 v-8 m-166 8 q0 10 10 10 m146 0 q10 0 10 -10 m-156 10 h4 m138 0 h4 m-156 -10 v20 m166 0 v-20 m-166 20 v8 m166 0 v-8 m-166 8 q0 10 10 10 m146 0 q10 0 10 -10 m-156 10 h4 m126 0 h4 m0 0 h12 m23 -196 h-3"/> + <polygon points="215 10 223 6 223 14"/> + <polygon points="215 10 207 6 207 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#sql-executable-statement" title="SQL_executable_statement" shape="rect">SQL_executable_statement</a></div> + <div>         ::= <a href="#sql-schema-statement" title="SQL_schema_statement" shape="rect">SQL_schema_statement</a></div> + <div>           | <a href="#sql-data-statement" title="SQL_data_statement" shape="rect">SQL_data_statement</a></div> + <div>           | <a href="#sql-control-statement" title="SQL_control_statement" shape="rect">SQL_control_statement</a></div> + <div>           | <a href="#sql-transaction-statement" title="SQL_transaction_statement" shape="rect">SQL_transaction_statement</a></div> + <div>           | <a href="#sql-connection-statement" title="SQL_connection_statement" shape="rect">SQL_connection_statement</a></div> + <div>           | <a href="#sql-session-statement" title="SQL_session_statement" shape="rect">SQL_session_statement</a></div> + <div>           | <a href="#sql-diagnostics-statement" title="SQL_diagnostics_statement" shape="rect">SQL_diagnostics_statement</a></div> + <div>           | <a href="#sql-dynamic-statement" title="SQL_dynamic_statement" shape="rect">SQL_dynamic_statement</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#sql-procedure-statement" title="sql-procedure-statement">sql-procedure-statement</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + SQL_schema_statement +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="275" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#sql-schema-definition-statement" xlink:title="SQL_schema_definition_statement" shape="rect"> + <rect x="43" y="1" width="170" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">SQL_schema_definition_statement</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#sql-schema-manipulation-statement" xlink:title="SQL_schema_manipulation_statement" shape="rect"> + <rect x="43" y="29" width="188" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">SQL_schema_manipulation_statement</text></a><path class="line" d="m17 10 h2 m20 0 h4 m170 0 h4 m0 0 h18 m-216 0 h20 m196 0 h20 m-236 0 q10 0 10 10 m216 0 q0 -10 10 -10 m-226 10 v8 m216 0 v-8 m-216 8 q0 10 10 10 m196 0 q10 0 10 -10 m-206 10 h4 m188 0 h4 m23 -28 h-3"/> + <polygon points="265 10 273 6 273 14"/> + <polygon points="265 10 257 6 257 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#sql-schema-statement" title="SQL_schema_statement" shape="rect">SQL_schema_statement</a></div> + <div>         ::= <a href="#sql-schema-definition-statement" title="SQL_schema_definition_statement" shape="rect">SQL_schema_definition_statement</a></div> + <div>           | <a href="#sql-schema-manipulation-statement" title="SQL_schema_manipulation_statement" shape="rect">SQL_schema_manipulation_statement</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#sql-executable-statement" title="sql-executable-statement">sql-executable-statement</a></li><li><a href="#directly-executable-statement" title="directly-executable-statement">directly-executable-statement</a></li><li><a href="#preparable-sql-schema-statement" title="preparable-sql-schema-statement">preparable-sql-schema-statement</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + SQL_schema_definition_statement +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="245" height="469"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#schema-definition" xlink:title="schema_definition" shape="rect"> + <rect x="43" y="1" width="92" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">schema_definition</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#table-definition" xlink:title="table_definition" shape="rect"> + <rect x="43" y="29" width="76" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">table_definition</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#view-definition" xlink:title="view_definition" shape="rect"> + <rect x="43" y="57" width="74" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="69">view_definition</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#sql-invoked-routine" xlink:title="SQL_invoked_routine" shape="rect"> + <rect x="43" y="85" width="106" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="97">SQL_invoked_routine</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#grant-statement" xlink:title="grant_statement" shape="rect"> + <rect x="43" y="113" width="88" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="125">grant_statement</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#role-definition" xlink:title="role_definition" shape="rect"> + <rect x="43" y="141" width="72" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="153">role_definition</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#domain-definition" xlink:title="domain_definition" shape="rect"> + <rect x="43" y="169" width="90" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="181">domain_definition</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#character-set-definition" xlink:title="character_set_definition" shape="rect"> + <rect x="43" y="197" width="116" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="209">character_set_definition</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#collation-definition" xlink:title="collation_definition" shape="rect"> + <rect x="43" y="225" width="90" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="237">collation_definition</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#transliteration-definition" xlink:title="transliteration_definition" shape="rect"> + <rect x="43" y="253" width="114" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="265">transliteration_definition</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#assertion-definition" xlink:title="assertion_definition" shape="rect"> + <rect x="43" y="281" width="96" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="293">assertion_definition</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#trigger-definition" xlink:title="trigger_definition" shape="rect"> + <rect x="43" y="309" width="84" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="321">trigger_definition</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#user-defined-type-definition" xlink:title="user_defined_type_definition" shape="rect"> + <rect x="43" y="337" width="140" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="349">user_defined_type_definition</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#user-defined-cast-definition" xlink:title="user_defined_cast_definition" shape="rect"> + <rect x="43" y="365" width="138" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="377">user_defined_cast_definition</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#user-defined-ordering-definition" xlink:title="user_defined_ordering_definition" shape="rect"> + <rect x="43" y="393" width="158" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="405">user_defined_ordering_definition</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#transform-definition" xlink:title="transform_definition" shape="rect"> + <rect x="43" y="421" width="98" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="433">transform_definition</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#sequence-generator-definition" xlink:title="sequence_generator_definition" shape="rect"> + <rect x="43" y="449" width="152" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="461">sequence_generator_definition</text></a><path class="line" d="m17 10 h2 m20 0 h4 m92 0 h4 m0 0 h66 m-186 0 h20 m166 0 h20 m-206 0 q10 0 10 10 m186 0 q0 -10 10 -10 m-196 10 v8 m186 0 v-8 m-186 8 q0 10 10 10 m166 0 q10 0 10 -10 m-176 10 h4 m76 0 h4 m0 0 h82 m-176 -10 v20 m186 0 v-20 m-186 20 v8 m186 0 v-8 m-186 8 q0 10 10 10 m166 0 q10 0 10 -10 m-176 10 h4 m74 0 h4 m0 0 h84 m-176 -10 v20 m186 0 v-20 m-186 20 v8 m186 0 v-8 m-186 8 q0 10 10 10 m166 0 q10 0 10 -10 m-176 10 h4 m106 0 h4 m0 0 h52 m-176 -10 v20 m186 0 v-20 m-186 20 v8 m186 0 v-8 m-186 8 q0 10 10 10 m166 0 q10 0 10 -10 m-176 10 h4 m88 0 h4 m0 0 h70 m-176 -10 v20 m186 0 v-20 m-186 20 v8 m186 0 v-8 m-186 8 q0 10 10 10 m166 0 q10 0 10 -10 m-176 10 h4 m72 0 h4 m0 0 h86 m-176 -10 v20 m186 0 v-20 m-186 20 v8 m186 0 v-8 m-186 8 q0 10 10 10 m166 0 q10 0 10 -10 m-176 10 h4 m90 0 h4 m0 0 h68 m-176 -10 v20 m186 0 v-20 m-186 20 v8 m186 0 v-8 m-186 8 q0 10 10 10 m166 0 q10 0 10 -10 m-176 10 h4 m116 0 h4 m0 0 h42 m-176 -10 v20 m186 0 v-20 m-186 20 v8 m186 0 v-8 m-186 8 q0 10 10 10 m166 0 q10 0 10 -10 m-176 10 h4 m90 0 h4 m0 0 h68 m-176 -10 v20 m186 0 v-20 m-186 20 v8 m186 0 v-8 m-186 8 q0 10 10 10 m166 0 q10 0 10 -10 m-176 10 h4 m114 0 h4 m0 0 h44 m-176 -10 v20 m186 0 v-20 m-186 20 v8 m186 0 v-8 m-186 8 q0 10 10 10 m166 0 q10 0 10 -10 m-176 10 h4 m96 0 h4 m0 0 h62 m-176 -10 v20 m186 0 v-20 m-186 20 v8 m186 0 v-8 m-186 8 q0 10 10 10 m166 0 q10 0 10 -10 m-176 10 h4 m84 0 h4 m0 0 h74 m-176 -10 v20 m186 0 v-20 m-186 20 v8 m186 0 v-8 m-186 8 q0 10 10 10 m166 0 q10 0 10 -10 m-176 10 h4 m140 0 h4 m0 0 h18 m-176 -10 v20 m186 0 v-20 m-186 20 v8 m186 0 v-8 m-186 8 q0 10 10 10 m166 0 q10 0 10 -10 m-176 10 h4 m138 0 h4 m0 0 h20 m-176 -10 v20 m186 0 v-20 m-186 20 v8 m186 0 v-8 m-186 8 q0 10 10 10 m166 0 q10 0 10 -10 m-176 10 h4 m158 0 h4 m-176 -10 v20 m186 0 v-20 m-186 20 v8 m186 0 v-8 m-186 8 q0 10 10 10 m166 0 q10 0 10 -10 m-176 10 h4 m98 0 h4 m0 0 h60 m-176 -10 v20 m186 0 v-20 m-186 20 v8 m186 0 v-8 m-186 8 q0 10 10 10 m166 0 q10 0 10 -10 m-176 10 h4 m152 0 h4 m0 0 h6 m23 -448 h-3"/> + <polygon points="235 10 243 6 243 14"/> + <polygon points="235 10 227 6 227 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#sql-schema-definition-statement" title="SQL_schema_definition_statement" shape="rect">SQL_schema_definition_statement</a></div> + <div>         ::= <a href="#schema-definition" title="schema_definition" shape="rect">schema_definition</a></div> + <div>           | <a href="#table-definition" title="table_definition" shape="rect">table_definition</a></div> + <div>           | <a href="#view-definition" title="view_definition" shape="rect">view_definition</a></div> + <div>           | <a href="#sql-invoked-routine" title="SQL_invoked_routine" shape="rect">SQL_invoked_routine</a></div> + <div>           | <a href="#grant-statement" title="grant_statement" shape="rect">grant_statement</a></div> + <div>           | <a href="#role-definition" title="role_definition" shape="rect">role_definition</a></div> + <div>           | <a href="#domain-definition" title="domain_definition" shape="rect">domain_definition</a></div> + <div>           | <a href="#character-set-definition" title="character_set_definition" shape="rect">character_set_definition</a></div> + <div>           | <a href="#collation-definition" title="collation_definition" shape="rect">collation_definition</a></div> + <div>           | <a href="#transliteration-definition" title="transliteration_definition" shape="rect">transliteration_definition</a></div> + <div>           | <a href="#assertion-definition" title="assertion_definition" shape="rect">assertion_definition</a></div> + <div>           | <a href="#trigger-definition" title="trigger_definition" shape="rect">trigger_definition</a></div> + <div>           | <a href="#user-defined-type-definition" title="user_defined_type_definition" shape="rect">user_defined_type_definition</a></div> + <div>           | <a href="#user-defined-cast-definition" title="user_defined_cast_definition" shape="rect">user_defined_cast_definition</a></div> + <div>           | <a href="#user-defined-ordering-definition" title="user_defined_ordering_definition" shape="rect">user_defined_ordering_definition</a></div> + <div>           | <a href="#transform-definition" title="transform_definition" shape="rect">transform_definition</a></div> + <div>           | <a href="#sequence-generator-definition" title="sequence_generator_definition" shape="rect">sequence_generator_definition</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#sql-schema-statement" title="sql-schema-statement">sql-schema-statement</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + SQL_schema_manipulation_statement +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="281" height="637"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#drop-schema-statement" xlink:title="drop_schema_statement" shape="rect"> + <rect x="43" y="1" width="128" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">drop_schema_statement</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#alter-table-statement" xlink:title="alter_table_statement" shape="rect"> + <rect x="43" y="29" width="110" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">alter_table_statement</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#drop-table-statement" xlink:title="drop_table_statement" shape="rect"> + <rect x="43" y="57" width="112" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="69">drop_table_statement</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#drop-view-statement" xlink:title="drop_view_statement" shape="rect"> + <rect x="43" y="85" width="110" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="97">drop_view_statement</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#alter-routine-statement" xlink:title="alter_routine_statement" shape="rect"> + <rect x="43" y="113" width="120" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="125">alter_routine_statement</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#drop-routine-statement" xlink:title="drop_routine_statement" shape="rect"> + <rect x="43" y="141" width="122" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="153">drop_routine_statement</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#drop-user-defined-cast-statement" xlink:title="drop_user_defined_cast_statement" shape="rect"> + <rect x="43" y="169" width="174" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="181">drop_user_defined_cast_statement</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#revoke-statement" xlink:title="revoke_statement" shape="rect"> + <rect x="43" y="197" width="94" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="209">revoke_statement</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#drop-role-statement" xlink:title="drop_role_statement" shape="rect"> + <rect x="43" y="225" width="106" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="237">drop_role_statement</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#alter-domain-statement" xlink:title="alter_domain_statement" shape="rect"> + <rect x="43" y="253" width="124" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="265">alter_domain_statement</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#drop-domain-statement" xlink:title="drop_domain_statement" shape="rect"> + <rect x="43" y="281" width="126" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="293">drop_domain_statement</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#drop-character-set-statement" xlink:title="drop_character_set_statement" shape="rect"> + <rect x="43" y="309" width="152" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="321">drop_character_set_statement</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#drop-collation-statement" xlink:title="drop_collation_statement" shape="rect"> + <rect x="43" y="337" width="126" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="349">drop_collation_statement</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#drop-transliteration-statement" xlink:title="drop_transliteration_statement" shape="rect"> + <rect x="43" y="365" width="150" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="377">drop_transliteration_statement</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#drop-assertion-statement" xlink:title="drop_assertion_statement" shape="rect"> + <rect x="43" y="393" width="132" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="405">drop_assertion_statement</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#drop-trigger-statement" xlink:title="drop_trigger_statement" shape="rect"> + <rect x="43" y="421" width="118" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="433">drop_trigger_statement</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#alter-type-statement" xlink:title="alter_type_statement" shape="rect"> + <rect x="43" y="449" width="108" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="461">alter_type_statement</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#drop-data-type-statement" xlink:title="drop_data_type_statement" shape="rect"> + <rect x="43" y="477" width="138" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="489">drop_data_type_statement</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#drop-user-defined-ordering-statement" xlink:title="drop_user_defined_ordering_statement" shape="rect"> + <rect x="43" y="505" width="194" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="517">drop_user_defined_ordering_statement</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#alter-transform-statement" xlink:title="alter_transform_statement" shape="rect"> + <rect x="43" y="533" width="132" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="545">alter_transform_statement</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#drop-transform-statement" xlink:title="drop_transform_statement" shape="rect"> + <rect x="43" y="561" width="134" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="573">drop_transform_statement</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#alter-sequence-generator-statement" xlink:title="alter_sequence_generator_statement" shape="rect"> + <rect x="43" y="589" width="184" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="601">alter_sequence_generator_statement</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#drop-sequence-generator-statement" xlink:title="drop_sequence_generator_statement" shape="rect"> + <rect x="43" y="617" width="186" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="629">drop_sequence_generator_statement</text></a><path class="line" d="m17 10 h2 m20 0 h4 m128 0 h4 m0 0 h66 m-222 0 h20 m202 0 h20 m-242 0 q10 0 10 10 m222 0 q0 -10 10 -10 m-232 10 v8 m222 0 v-8 m-222 8 q0 10 10 10 m202 0 q10 0 10 -10 m-212 10 h4 m110 0 h4 m0 0 h84 m-212 -10 v20 m222 0 v-20 m-222 20 v8 m222 0 v-8 m-222 8 q0 10 10 10 m202 0 q10 0 10 -10 m-212 10 h4 m112 0 h4 m0 0 h82 m-212 -10 v20 m222 0 v-20 m-222 20 v8 m222 0 v-8 m-222 8 q0 10 10 10 m202 0 q10 0 10 -10 m-212 10 h4 m110 0 h4 m0 0 h84 m-212 -10 v20 m222 0 v-20 m-222 20 v8 m222 0 v-8 m-222 8 q0 10 10 10 m202 0 q10 0 10 -10 m-212 10 h4 m120 0 h4 m0 0 h74 m-212 -10 v20 m222 0 v-20 m-222 20 v8 m222 0 v-8 m-222 8 q0 10 10 10 m202 0 q10 0 10 -10 m-212 10 h4 m122 0 h4 m0 0 h72 m-212 -10 v20 m222 0 v-20 m-222 20 v8 m222 0 v-8 m-222 8 q0 10 10 10 m202 0 q10 0 10 -10 m-212 10 h4 m174 0 h4 m0 0 h20 m-212 -10 v20 m222 0 v-20 m-222 20 v8 m222 0 v-8 m-222 8 q0 10 10 10 m202 0 q10 0 10 -10 m-212 10 h4 m94 0 h4 m0 0 h100 m-212 -10 v20 m222 0 v-20 m-222 20 v8 m222 0 v-8 m-222 8 q0 10 10 10 m202 0 q10 0 10 -10 m-212 10 h4 m106 0 h4 m0 0 h88 m-212 -10 v20 m222 0 v-20 m-222 20 v8 m222 0 v-8 m-222 8 q0 10 10 10 m202 0 q10 0 10 -10 m-212 10 h4 m124 0 h4 m0 0 h70 m-212 -10 v20 m222 0 v-20 m-222 20 v8 m222 0 v-8 m-222 8 q0 10 10 10 m202 0 q10 0 10 -10 m-212 10 h4 m126 0 h4 m0 0 h68 m-212 -10 v20 m222 0 v-20 m-222 20 v8 m222 0 v-8 m-222 8 q0 10 10 10 m202 0 q10 0 10 -10 m-212 10 h4 m152 0 h4 m0 0 h42 m-212 -10 v20 m222 0 v-20 m-222 20 v8 m222 0 v-8 m-222 8 q0 10 10 10 m202 0 q10 0 10 -10 m-212 10 h4 m126 0 h4 m0 0 h68 m-212 -10 v20 m222 0 v-20 m-222 20 v8 m222 0 v-8 m-222 8 q0 10 10 10 m202 0 q10 0 10 -10 m-212 10 h4 m150 0 h4 m0 0 h44 m-212 -10 v20 m222 0 v-20 m-222 20 v8 m222 0 v-8 m-222 8 q0 10 10 10 m202 0 q10 0 10 -10 m-212 10 h4 m132 0 h4 m0 0 h62 m-212 -10 v20 m222 0 v-20 m-222 20 v8 m222 0 v-8 m-222 8 q0 10 10 10 m202 0 q10 0 10 -10 m-212 10 h4 m118 0 h4 m0 0 h76 m-212 -10 v20 m222 0 v-20 m-222 20 v8 m222 0 v-8 m-222 8 q0 10 10 10 m202 0 q10 0 10 -10 m-212 10 h4 m108 0 h4 m0 0 h86 m-212 -10 v20 m222 0 v-20 m-222 20 v8 m222 0 v-8 m-222 8 q0 10 10 10 m202 0 q10 0 10 -10 m-212 10 h4 m138 0 h4 m0 0 h56 m-212 -10 v20 m222 0 v-20 m-222 20 v8 m222 0 v-8 m-222 8 q0 10 10 10 m202 0 q10 0 10 -10 m-212 10 h4 m194 0 h4 m-212 -10 v20 m222 0 v-20 m-222 20 v8 m222 0 v-8 m-222 8 q0 10 10 10 m202 0 q10 0 10 -10 m-212 10 h4 m132 0 h4 m0 0 h62 m-212 -10 v20 m222 0 v-20 m-222 20 v8 m222 0 v-8 m-222 8 q0 10 10 10 m202 0 q10 0 10 -10 m-212 10 h4 m134 0 h4 m0 0 h60 m-212 -10 v20 m222 0 v-20 m-222 20 v8 m222 0 v-8 m-222 8 q0 10 10 10 m202 0 q10 0 10 -10 m-212 10 h4 m184 0 h4 m0 0 h10 m-212 -10 v20 m222 0 v-20 m-222 20 v8 m222 0 v-8 m-222 8 q0 10 10 10 m202 0 q10 0 10 -10 m-212 10 h4 m186 0 h4 m0 0 h8 m23 -616 h-3"/> + <polygon points="271 10 279 6 279 14"/> + <polygon points="271 10 263 6 263 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#sql-schema-manipulation-statement" title="SQL_schema_manipulation_statement" shape="rect">SQL_schema_manipulation_statement</a></div> + <div>         ::= <a href="#drop-schema-statement" title="drop_schema_statement" shape="rect">drop_schema_statement</a></div> + <div>           | <a href="#alter-table-statement" title="alter_table_statement" shape="rect">alter_table_statement</a></div> + <div>           | <a href="#drop-table-statement" title="drop_table_statement" shape="rect">drop_table_statement</a></div> + <div>           | <a href="#drop-view-statement" title="drop_view_statement" shape="rect">drop_view_statement</a></div> + <div>           | <a href="#alter-routine-statement" title="alter_routine_statement" shape="rect">alter_routine_statement</a></div> + <div>           | <a href="#drop-routine-statement" title="drop_routine_statement" shape="rect">drop_routine_statement</a></div> + <div>           | <a href="#drop-user-defined-cast-statement" title="drop_user_defined_cast_statement" shape="rect">drop_user_defined_cast_statement</a></div> + <div>           | <a href="#revoke-statement" title="revoke_statement" shape="rect">revoke_statement</a></div> + <div>           | <a href="#drop-role-statement" title="drop_role_statement" shape="rect">drop_role_statement</a></div> + <div>           | <a href="#alter-domain-statement" title="alter_domain_statement" shape="rect">alter_domain_statement</a></div> + <div>           | <a href="#drop-domain-statement" title="drop_domain_statement" shape="rect">drop_domain_statement</a></div> + <div>           | <a href="#drop-character-set-statement" title="drop_character_set_statement" shape="rect">drop_character_set_statement</a></div> + <div>           | <a href="#drop-collation-statement" title="drop_collation_statement" shape="rect">drop_collation_statement</a></div> + <div>           | <a href="#drop-transliteration-statement" title="drop_transliteration_statement" shape="rect">drop_transliteration_statement</a></div> + <div>           | <a href="#drop-assertion-statement" title="drop_assertion_statement" shape="rect">drop_assertion_statement</a></div> + <div>           | <a href="#drop-trigger-statement" title="drop_trigger_statement" shape="rect">drop_trigger_statement</a></div> + <div>           | <a href="#alter-type-statement" title="alter_type_statement" shape="rect">alter_type_statement</a></div> + <div>           | <a href="#drop-data-type-statement" title="drop_data_type_statement" shape="rect">drop_data_type_statement</a></div> + <div>           | <a href="#drop-user-defined-ordering-statement" title="drop_user_defined_ordering_statement" shape="rect">drop_user_defined_ordering_statement</a></div> + <div>           | <a href="#alter-transform-statement" title="alter_transform_statement" shape="rect">alter_transform_statement</a></div> + <div>           | <a href="#drop-transform-statement" title="drop_transform_statement" shape="rect">drop_transform_statement</a></div> + <div>           | <a href="#alter-sequence-generator-statement" title="alter_sequence_generator_statement" shape="rect">alter_sequence_generator_statement</a></div> + <div>           | <a href="#drop-sequence-generator-statement" title="drop_sequence_generator_statement" shape="rect">drop_sequence_generator_statement</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#sql-schema-statement" title="sql-schema-statement">sql-schema-statement</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + SQL_data_statement +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="235" height="133"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#open-statement" xlink:title="open_statement" shape="rect"> + <rect x="43" y="1" width="88" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">open_statement</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#fetch-statement" xlink:title="fetch_statement" shape="rect"> + <rect x="43" y="29" width="84" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">fetch_statement</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#close-statement" xlink:title="close_statement" shape="rect"> + <rect x="43" y="57" width="86" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="69">close_statement</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#select-statement-single-row" xlink:title="select_statement_single_row" shape="rect"> + <rect x="43" y="85" width="144" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="97">select_statement_single_row</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#sql-data-change-statement" xlink:title="SQL_data_change_statement" shape="rect"> + <rect x="43" y="113" width="148" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="125">SQL_data_change_statement</text></a><path class="line" d="m17 10 h2 m20 0 h4 m88 0 h4 m0 0 h60 m-176 0 h20 m156 0 h20 m-196 0 q10 0 10 10 m176 0 q0 -10 10 -10 m-186 10 v8 m176 0 v-8 m-176 8 q0 10 10 10 m156 0 q10 0 10 -10 m-166 10 h4 m84 0 h4 m0 0 h64 m-166 -10 v20 m176 0 v-20 m-176 20 v8 m176 0 v-8 m-176 8 q0 10 10 10 m156 0 q10 0 10 -10 m-166 10 h4 m86 0 h4 m0 0 h62 m-166 -10 v20 m176 0 v-20 m-176 20 v8 m176 0 v-8 m-176 8 q0 10 10 10 m156 0 q10 0 10 -10 m-166 10 h4 m144 0 h4 m0 0 h4 m-166 -10 v20 m176 0 v-20 m-176 20 v8 m176 0 v-8 m-176 8 q0 10 10 10 m156 0 q10 0 10 -10 m-166 10 h4 m148 0 h4 m23 -112 h-3"/> + <polygon points="225 10 233 6 233 14"/> + <polygon points="225 10 217 6 217 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#sql-data-statement" title="SQL_data_statement" shape="rect">SQL_data_statement</a></div> + <div>         ::= <a href="#open-statement" title="open_statement" shape="rect">open_statement</a></div> + <div>           | <a href="#fetch-statement" title="fetch_statement" shape="rect">fetch_statement</a></div> + <div>           | <a href="#close-statement" title="close_statement" shape="rect">close_statement</a></div> + <div>           | <a href="#select-statement-single-row" title="select_statement_single_row" shape="rect">select_statement_single_row</a></div> + <div>           | <a href="#sql-data-change-statement" title="SQL_data_change_statement" shape="rect">SQL_data_change_statement</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#sql-executable-statement" title="sql-executable-statement">sql-executable-statement</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + SQL_data_change_statement +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="235" height="189"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#delete-statement-positioned" xlink:title="delete_statement_positioned" shape="rect"> + <rect x="43" y="1" width="144" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">delete_statement_positioned</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#delete-statement-searched" xlink:title="delete_statement_searched" shape="rect"> + <rect x="43" y="29" width="140" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">delete_statement_searched</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#insert-statement" xlink:title="insert_statement" shape="rect"> + <rect x="43" y="57" width="88" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="69">insert_statement</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#update-statement-positioned" xlink:title="update_statement_positioned" shape="rect"> + <rect x="43" y="85" width="148" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="97">update_statement_positioned</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#update-statement-searched" xlink:title="update_statement_searched" shape="rect"> + <rect x="43" y="113" width="144" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="125">update_statement_searched</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#truncate-table-statement" xlink:title="truncate_table_statement" shape="rect"> + <rect x="43" y="141" width="128" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="153">truncate_table_statement</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#merge-statement" xlink:title="merge_statement" shape="rect"> + <rect x="43" y="169" width="94" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="181">merge_statement</text></a><path class="line" d="m17 10 h2 m20 0 h4 m144 0 h4 m0 0 h4 m-176 0 h20 m156 0 h20 m-196 0 q10 0 10 10 m176 0 q0 -10 10 -10 m-186 10 v8 m176 0 v-8 m-176 8 q0 10 10 10 m156 0 q10 0 10 -10 m-166 10 h4 m140 0 h4 m0 0 h8 m-166 -10 v20 m176 0 v-20 m-176 20 v8 m176 0 v-8 m-176 8 q0 10 10 10 m156 0 q10 0 10 -10 m-166 10 h4 m88 0 h4 m0 0 h60 m-166 -10 v20 m176 0 v-20 m-176 20 v8 m176 0 v-8 m-176 8 q0 10 10 10 m156 0 q10 0 10 -10 m-166 10 h4 m148 0 h4 m-166 -10 v20 m176 0 v-20 m-176 20 v8 m176 0 v-8 m-176 8 q0 10 10 10 m156 0 q10 0 10 -10 m-166 10 h4 m144 0 h4 m0 0 h4 m-166 -10 v20 m176 0 v-20 m-176 20 v8 m176 0 v-8 m-176 8 q0 10 10 10 m156 0 q10 0 10 -10 m-166 10 h4 m128 0 h4 m0 0 h20 m-166 -10 v20 m176 0 v-20 m-176 20 v8 m176 0 v-8 m-176 8 q0 10 10 10 m156 0 q10 0 10 -10 m-166 10 h4 m94 0 h4 m0 0 h54 m23 -168 h-3"/> + <polygon points="225 10 233 6 233 14"/> + <polygon points="225 10 217 6 217 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#sql-data-change-statement" title="SQL_data_change_statement" shape="rect">SQL_data_change_statement</a></div> + <div>         ::= <a href="#delete-statement-positioned" title="delete_statement_positioned" shape="rect">delete_statement_positioned</a></div> + <div>           | <a href="#delete-statement-searched" title="delete_statement_searched" shape="rect">delete_statement_searched</a></div> + <div>           | <a href="#insert-statement" title="insert_statement" shape="rect">insert_statement</a></div> + <div>           | <a href="#update-statement-positioned" title="update_statement_positioned" shape="rect">update_statement_positioned</a></div> + <div>           | <a href="#update-statement-searched" title="update_statement_searched" shape="rect">update_statement_searched</a></div> + <div>           | <a href="#truncate-table-statement" title="truncate_table_statement" shape="rect">truncate_table_statement</a></div> + <div>           | <a href="#merge-statement" title="merge_statement" shape="rect">merge_statement</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#sql-data-statement" title="sql-data-statement">sql-data-statement</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + SQL_control_statement +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="177" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#call-statement" xlink:title="call_statement" shape="rect"> + <rect x="43" y="1" width="76" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">call_statement</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#return-statement" xlink:title="return_statement" shape="rect"> + <rect x="43" y="29" width="90" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">return_statement</text></a><path class="line" d="m17 10 h2 m20 0 h4 m76 0 h4 m0 0 h14 m-118 0 h20 m98 0 h20 m-138 0 q10 0 10 10 m118 0 q0 -10 10 -10 m-128 10 v8 m118 0 v-8 m-118 8 q0 10 10 10 m98 0 q10 0 10 -10 m-108 10 h4 m90 0 h4 m23 -28 h-3"/> + <polygon points="167 10 175 6 175 14"/> + <polygon points="167 10 159 6 159 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#sql-control-statement" title="SQL_control_statement" shape="rect">SQL_control_statement</a></div> + <div>         ::= <a href="#call-statement" title="call_statement" shape="rect">call_statement</a></div> + <div>           | <a href="#return-statement" title="return_statement" shape="rect">return_statement</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#sql-executable-statement" title="sql-executable-statement">sql-executable-statement</a></li><li><a href="#preparable-sql-control-statement" title="preparable-sql-control-statement">preparable-sql-control-statement</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + SQL_transaction_statement +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="253" height="189"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#start-transaction-statement" xlink:title="start_transaction_statement" shape="rect"> + <rect x="43" y="1" width="138" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">start_transaction_statement</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#set-transaction-statement" xlink:title="set_transaction_statement" shape="rect"> + <rect x="43" y="29" width="132" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">set_transaction_statement</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#set-constraints-mode-statement" xlink:title="set_constraints_mode_statement" shape="rect"> + <rect x="43" y="57" width="166" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="69">set_constraints_mode_statement</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#savepoint-statement" xlink:title="savepoint_statement" shape="rect"> + <rect x="43" y="85" width="108" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="97">savepoint_statement</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#release-savepoint-statement" xlink:title="release_savepoint_statement" shape="rect"> + <rect x="43" y="113" width="146" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="125">release_savepoint_statement</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#commit-statement" xlink:title="commit_statement" shape="rect"> + <rect x="43" y="141" width="96" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="153">commit_statement</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#rollback-statement" xlink:title="rollback_statement" shape="rect"> + <rect x="43" y="169" width="96" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="181">rollback_statement</text></a><path class="line" d="m17 10 h2 m20 0 h4 m138 0 h4 m0 0 h28 m-194 0 h20 m174 0 h20 m-214 0 q10 0 10 10 m194 0 q0 -10 10 -10 m-204 10 v8 m194 0 v-8 m-194 8 q0 10 10 10 m174 0 q10 0 10 -10 m-184 10 h4 m132 0 h4 m0 0 h34 m-184 -10 v20 m194 0 v-20 m-194 20 v8 m194 0 v-8 m-194 8 q0 10 10 10 m174 0 q10 0 10 -10 m-184 10 h4 m166 0 h4 m-184 -10 v20 m194 0 v-20 m-194 20 v8 m194 0 v-8 m-194 8 q0 10 10 10 m174 0 q10 0 10 -10 m-184 10 h4 m108 0 h4 m0 0 h58 m-184 -10 v20 m194 0 v-20 m-194 20 v8 m194 0 v-8 m-194 8 q0 10 10 10 m174 0 q10 0 10 -10 m-184 10 h4 m146 0 h4 m0 0 h20 m-184 -10 v20 m194 0 v-20 m-194 20 v8 m194 0 v-8 m-194 8 q0 10 10 10 m174 0 q10 0 10 -10 m-184 10 h4 m96 0 h4 m0 0 h70 m-184 -10 v20 m194 0 v-20 m-194 20 v8 m194 0 v-8 m-194 8 q0 10 10 10 m174 0 q10 0 10 -10 m-184 10 h4 m96 0 h4 m0 0 h70 m23 -168 h-3"/> + <polygon points="243 10 251 6 251 14"/> + <polygon points="243 10 235 6 235 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#sql-transaction-statement" title="SQL_transaction_statement" shape="rect">SQL_transaction_statement</a></div> + <div>         ::= <a href="#start-transaction-statement" title="start_transaction_statement" shape="rect">start_transaction_statement</a></div> + <div>           | <a href="#set-transaction-statement" title="set_transaction_statement" shape="rect">set_transaction_statement</a></div> + <div>           | <a href="#set-constraints-mode-statement" title="set_constraints_mode_statement" shape="rect">set_constraints_mode_statement</a></div> + <div>           | <a href="#savepoint-statement" title="savepoint_statement" shape="rect">savepoint_statement</a></div> + <div>           | <a href="#release-savepoint-statement" title="release_savepoint_statement" shape="rect">release_savepoint_statement</a></div> + <div>           | <a href="#commit-statement" title="commit_statement" shape="rect">commit_statement</a></div> + <div>           | <a href="#rollback-statement" title="rollback_statement" shape="rect">rollback_statement</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#sql-executable-statement" title="sql-executable-statement">sql-executable-statement</a></li><li><a href="#directly-executable-statement" title="directly-executable-statement">directly-executable-statement</a></li><li><a href="#preparable-sql-transaction-statement" title="preparable-sql-transaction-statement">preparable-sql-transaction-statement</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + SQL_connection_statement +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="219" height="77"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#connect-statement" xlink:title="connect_statement" shape="rect"> + <rect x="43" y="1" width="98" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">connect_statement</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#set-connection-statement" xlink:title="set_connection_statement" shape="rect"> + <rect x="43" y="29" width="132" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">set_connection_statement</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#disconnect-statement" xlink:title="disconnect_statement" shape="rect"> + <rect x="43" y="57" width="110" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="69">disconnect_statement</text></a><path class="line" d="m17 10 h2 m20 0 h4 m98 0 h4 m0 0 h34 m-160 0 h20 m140 0 h20 m-180 0 q10 0 10 10 m160 0 q0 -10 10 -10 m-170 10 v8 m160 0 v-8 m-160 8 q0 10 10 10 m140 0 q10 0 10 -10 m-150 10 h4 m132 0 h4 m-150 -10 v20 m160 0 v-20 m-160 20 v8 m160 0 v-8 m-160 8 q0 10 10 10 m140 0 q10 0 10 -10 m-150 10 h4 m110 0 h4 m0 0 h22 m23 -56 h-3"/> + <polygon points="209 10 217 6 217 14"/> + <polygon points="209 10 201 6 201 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#sql-connection-statement" title="SQL_connection_statement" shape="rect">SQL_connection_statement</a></div> + <div>         ::= <a href="#connect-statement" title="connect_statement" shape="rect">connect_statement</a></div> + <div>           | <a href="#set-connection-statement" title="set_connection_statement" shape="rect">set_connection_statement</a></div> + <div>           | <a href="#disconnect-statement" title="disconnect_statement" shape="rect">disconnect_statement</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#sql-executable-statement" title="sql-executable-statement">sql-executable-statement</a></li><li><a href="#directly-executable-statement" title="directly-executable-statement">directly-executable-statement</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + SQL_session_statement +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="273" height="273"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#set-session-user-identifier-statement" xlink:title="set_session_user_identifier_statement" shape="rect"> + <rect x="43" y="1" width="186" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">set_session_user_identifier_statement</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#set-role-statement" xlink:title="set_role_statement" shape="rect"> + <rect x="43" y="29" width="100" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">set_role_statement</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#set-local-time-zone-statement" xlink:title="set_local_time_zone_statement" shape="rect"> + <rect x="43" y="57" width="156" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="69">set_local_time_zone_statement</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#set-session-characteristics-statement" xlink:title="set_session_characteristics_statement" shape="rect"> + <rect x="43" y="85" width="184" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="97">set_session_characteristics_statement</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#set-catalog-statement" xlink:title="set_catalog_statement" shape="rect"> + <rect x="43" y="113" width="116" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="125">set_catalog_statement</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#set-schema-statement" xlink:title="set_schema_statement" shape="rect"> + <rect x="43" y="141" width="120" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="153">set_schema_statement</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#set-names-statement" xlink:title="set_names_statement" shape="rect"> + <rect x="43" y="169" width="116" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="181">set_names_statement</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#set-path-statement" xlink:title="set_path_statement" shape="rect"> + <rect x="43" y="197" width="104" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="209">set_path_statement</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#set-transform-group-statement" xlink:title="set_transform_group_statement" shape="rect"> + <rect x="43" y="225" width="160" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="237">set_transform_group_statement</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#set-session-collation-statement" xlink:title="set_session_collation_statement" shape="rect"> + <rect x="43" y="253" width="158" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="265">set_session_collation_statement</text></a><path class="line" d="m17 10 h2 m20 0 h4 m186 0 h4 m-214 0 h20 m194 0 h20 m-234 0 q10 0 10 10 m214 0 q0 -10 10 -10 m-224 10 v8 m214 0 v-8 m-214 8 q0 10 10 10 m194 0 q10 0 10 -10 m-204 10 h4 m100 0 h4 m0 0 h86 m-204 -10 v20 m214 0 v-20 m-214 20 v8 m214 0 v-8 m-214 8 q0 10 10 10 m194 0 q10 0 10 -10 m-204 10 h4 m156 0 h4 m0 0 h30 m-204 -10 v20 m214 0 v-20 m-214 20 v8 m214 0 v-8 m-214 8 q0 10 10 10 m194 0 q10 0 10 -10 m-204 10 h4 m184 0 h4 m0 0 h2 m-204 -10 v20 m214 0 v-20 m-214 20 v8 m214 0 v-8 m-214 8 q0 10 10 10 m194 0 q10 0 10 -10 m-204 10 h4 m116 0 h4 m0 0 h70 m-204 -10 v20 m214 0 v-20 m-214 20 v8 m214 0 v-8 m-214 8 q0 10 10 10 m194 0 q10 0 10 -10 m-204 10 h4 m120 0 h4 m0 0 h66 m-204 -10 v20 m214 0 v-20 m-214 20 v8 m214 0 v-8 m-214 8 q0 10 10 10 m194 0 q10 0 10 -10 m-204 10 h4 m116 0 h4 m0 0 h70 m-204 -10 v20 m214 0 v-20 m-214 20 v8 m214 0 v-8 m-214 8 q0 10 10 10 m194 0 q10 0 10 -10 m-204 10 h4 m104 0 h4 m0 0 h82 m-204 -10 v20 m214 0 v-20 m-214 20 v8 m214 0 v-8 m-214 8 q0 10 10 10 m194 0 q10 0 10 -10 m-204 10 h4 m160 0 h4 m0 0 h26 m-204 -10 v20 m214 0 v-20 m-214 20 v8 m214 0 v-8 m-214 8 q0 10 10 10 m194 0 q10 0 10 -10 m-204 10 h4 m158 0 h4 m0 0 h28 m23 -252 h-3"/> + <polygon points="263 10 271 6 271 14"/> + <polygon points="263 10 255 6 255 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#sql-session-statement" title="SQL_session_statement" shape="rect">SQL_session_statement</a></div> + <div>         ::= <a href="#set-session-user-identifier-statement" title="set_session_user_identifier_statement" shape="rect">set_session_user_identifier_statement</a></div> + <div>           | <a href="#set-role-statement" title="set_role_statement" shape="rect">set_role_statement</a></div> + <div>           | <a href="#set-local-time-zone-statement" title="set_local_time_zone_statement" shape="rect">set_local_time_zone_statement</a></div> + <div>           | <a href="#set-session-characteristics-statement" title="set_session_characteristics_statement" shape="rect">set_session_characteristics_statement</a></div> + <div>           | <a href="#set-catalog-statement" title="set_catalog_statement" shape="rect">set_catalog_statement</a></div> + <div>           | <a href="#set-schema-statement" title="set_schema_statement" shape="rect">set_schema_statement</a></div> + <div>           | <a href="#set-names-statement" title="set_names_statement" shape="rect">set_names_statement</a></div> + <div>           | <a href="#set-path-statement" title="set_path_statement" shape="rect">set_path_statement</a></div> + <div>           | <a href="#set-transform-group-statement" title="set_transform_group_statement" shape="rect">set_transform_group_statement</a></div> + <div>           | <a href="#set-session-collation-statement" title="set_session_collation_statement" shape="rect">set_session_collation_statement</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#sql-executable-statement" title="sql-executable-statement">sql-executable-statement</a></li><li><a href="#directly-executable-statement" title="directly-executable-statement">directly-executable-statement</a></li><li><a href="#preparable-sql-session-statement" title="preparable-sql-session-statement">preparable-sql-session-statement</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + SQL_diagnostics_statement +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="181" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#get-diagnostics-statement" xlink:title="get_diagnostics_statement" shape="rect"> + <rect x="23" y="1" width="134" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">get_diagnostics_statement</text></a><path class="line" d="m17 10 h2 m0 0 h4 m134 0 h4 m3 0 h-3"/> + <polygon points="171 10 179 6 179 14"/> + <polygon points="171 10 163 6 163 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#sql-diagnostics-statement" title="SQL_diagnostics_statement" shape="rect">SQL_diagnostics_statement</a></div> + <div>         ::= <a href="#get-diagnostics-statement" title="get_diagnostics_statement" shape="rect">get_diagnostics_statement</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#sql-executable-statement" title="sql-executable-statement">sql-executable-statement</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + SQL_dynamic_statement +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="245" height="189"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#sql-descriptor-statement" xlink:title="SQL_descriptor_statement" shape="rect"> + <rect x="43" y="1" width="132" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">SQL_descriptor_statement</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#prepare-statement" xlink:title="prepare_statement" shape="rect"> + <rect x="43" y="29" width="100" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">prepare_statement</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#deallocate-prepared-statement" xlink:title="deallocate_prepared_statement" shape="rect"> + <rect x="43" y="57" width="158" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="69">deallocate_prepared_statement</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#describe-statement" xlink:title="describe_statement" shape="rect"> + <rect x="43" y="85" width="100" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="97">describe_statement</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#execute-statement" xlink:title="execute_statement" shape="rect"> + <rect x="43" y="113" width="100" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="125">execute_statement</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#execute-immediate-statement" xlink:title="execute_immediate_statement" shape="rect"> + <rect x="43" y="141" width="154" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="153">execute_immediate_statement</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#sql-dynamic-data-statement" xlink:title="SQL_dynamic_data_statement" shape="rect"> + <rect x="43" y="169" width="152" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="181">SQL_dynamic_data_statement</text></a><path class="line" d="m17 10 h2 m20 0 h4 m132 0 h4 m0 0 h26 m-186 0 h20 m166 0 h20 m-206 0 q10 0 10 10 m186 0 q0 -10 10 -10 m-196 10 v8 m186 0 v-8 m-186 8 q0 10 10 10 m166 0 q10 0 10 -10 m-176 10 h4 m100 0 h4 m0 0 h58 m-176 -10 v20 m186 0 v-20 m-186 20 v8 m186 0 v-8 m-186 8 q0 10 10 10 m166 0 q10 0 10 -10 m-176 10 h4 m158 0 h4 m-176 -10 v20 m186 0 v-20 m-186 20 v8 m186 0 v-8 m-186 8 q0 10 10 10 m166 0 q10 0 10 -10 m-176 10 h4 m100 0 h4 m0 0 h58 m-176 -10 v20 m186 0 v-20 m-186 20 v8 m186 0 v-8 m-186 8 q0 10 10 10 m166 0 q10 0 10 -10 m-176 10 h4 m100 0 h4 m0 0 h58 m-176 -10 v20 m186 0 v-20 m-186 20 v8 m186 0 v-8 m-186 8 q0 10 10 10 m166 0 q10 0 10 -10 m-176 10 h4 m154 0 h4 m0 0 h4 m-176 -10 v20 m186 0 v-20 m-186 20 v8 m186 0 v-8 m-186 8 q0 10 10 10 m166 0 q10 0 10 -10 m-176 10 h4 m152 0 h4 m0 0 h6 m23 -168 h-3"/> + <polygon points="235 10 243 6 243 14"/> + <polygon points="235 10 227 6 227 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#sql-dynamic-statement" title="SQL_dynamic_statement" shape="rect">SQL_dynamic_statement</a></div> + <div>         ::= <a href="#sql-descriptor-statement" title="SQL_descriptor_statement" shape="rect">SQL_descriptor_statement</a></div> + <div>           | <a href="#prepare-statement" title="prepare_statement" shape="rect">prepare_statement</a></div> + <div>           | <a href="#deallocate-prepared-statement" title="deallocate_prepared_statement" shape="rect">deallocate_prepared_statement</a></div> + <div>           | <a href="#describe-statement" title="describe_statement" shape="rect">describe_statement</a></div> + <div>           | <a href="#execute-statement" title="execute_statement" shape="rect">execute_statement</a></div> + <div>           | <a href="#execute-immediate-statement" title="execute_immediate_statement" shape="rect">execute_immediate_statement</a></div> + <div>           | <a href="#sql-dynamic-data-statement" title="SQL_dynamic_data_statement" shape="rect">SQL_dynamic_data_statement</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#sql-executable-statement" title="sql-executable-statement">sql-executable-statement</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + SQL_dynamic_data_statement +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="279" height="161"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#allocate-cursor-statement" xlink:title="allocate_cursor_statement" shape="rect"> + <rect x="43" y="1" width="130" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">allocate_cursor_statement</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#dynamic-open-statement" xlink:title="dynamic_open_statement" shape="rect"> + <rect x="43" y="29" width="132" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">dynamic_open_statement</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#dynamic-fetch-statement" xlink:title="dynamic_fetch_statement" shape="rect"> + <rect x="43" y="57" width="128" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="69">dynamic_fetch_statement</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#dynamic-close-statement" xlink:title="dynamic_close_statement" shape="rect"> + <rect x="43" y="85" width="130" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="97">dynamic_close_statement</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#dynamic-delete-statement-positioned" xlink:title="dynamic_delete_statement_positioned" shape="rect"> + <rect x="43" y="113" width="188" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="125">dynamic_delete_statement_positioned</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#dynamic-update-statement-positioned" xlink:title="dynamic_update_statement_positioned" shape="rect"> + <rect x="43" y="141" width="192" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="153">dynamic_update_statement_positioned</text></a><path class="line" d="m17 10 h2 m20 0 h4 m130 0 h4 m0 0 h62 m-220 0 h20 m200 0 h20 m-240 0 q10 0 10 10 m220 0 q0 -10 10 -10 m-230 10 v8 m220 0 v-8 m-220 8 q0 10 10 10 m200 0 q10 0 10 -10 m-210 10 h4 m132 0 h4 m0 0 h60 m-210 -10 v20 m220 0 v-20 m-220 20 v8 m220 0 v-8 m-220 8 q0 10 10 10 m200 0 q10 0 10 -10 m-210 10 h4 m128 0 h4 m0 0 h64 m-210 -10 v20 m220 0 v-20 m-220 20 v8 m220 0 v-8 m-220 8 q0 10 10 10 m200 0 q10 0 10 -10 m-210 10 h4 m130 0 h4 m0 0 h62 m-210 -10 v20 m220 0 v-20 m-220 20 v8 m220 0 v-8 m-220 8 q0 10 10 10 m200 0 q10 0 10 -10 m-210 10 h4 m188 0 h4 m0 0 h4 m-210 -10 v20 m220 0 v-20 m-220 20 v8 m220 0 v-8 m-220 8 q0 10 10 10 m200 0 q10 0 10 -10 m-210 10 h4 m192 0 h4 m23 -140 h-3"/> + <polygon points="269 10 277 6 277 14"/> + <polygon points="269 10 261 6 261 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#sql-dynamic-data-statement" title="SQL_dynamic_data_statement" shape="rect">SQL_dynamic_data_statement</a></div> + <div>         ::= <a href="#allocate-cursor-statement" title="allocate_cursor_statement" shape="rect">allocate_cursor_statement</a></div> + <div>           | <a href="#dynamic-open-statement" title="dynamic_open_statement" shape="rect">dynamic_open_statement</a></div> + <div>           | <a href="#dynamic-fetch-statement" title="dynamic_fetch_statement" shape="rect">dynamic_fetch_statement</a></div> + <div>           | <a href="#dynamic-close-statement" title="dynamic_close_statement" shape="rect">dynamic_close_statement</a></div> + <div>           | <a href="#dynamic-delete-statement-positioned" title="dynamic_delete_statement_positioned" shape="rect">dynamic_delete_statement_positioned</a></div> + <div>           | <a href="#dynamic-update-statement-positioned" title="dynamic_update_statement_positioned" shape="rect">dynamic_update_statement_positioned</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#sql-dynamic-statement" title="sql-dynamic-statement">sql-dynamic-statement</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + SQL_descriptor_statement +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="245" height="105"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#allocate-descriptor-statement" xlink:title="allocate_descriptor_statement" shape="rect"> + <rect x="43" y="1" width="146" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">allocate_descriptor_statement</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#deallocate-descriptor-statement" xlink:title="deallocate_descriptor_statement" shape="rect"> + <rect x="43" y="29" width="158" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">deallocate_descriptor_statement</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#set-descriptor-statement" xlink:title="set_descriptor_statement" shape="rect"> + <rect x="43" y="57" width="126" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="69">set_descriptor_statement</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#get-descriptor-statement" xlink:title="get_descriptor_statement" shape="rect"> + <rect x="43" y="85" width="128" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="97">get_descriptor_statement</text></a><path class="line" d="m17 10 h2 m20 0 h4 m146 0 h4 m0 0 h12 m-186 0 h20 m166 0 h20 m-206 0 q10 0 10 10 m186 0 q0 -10 10 -10 m-196 10 v8 m186 0 v-8 m-186 8 q0 10 10 10 m166 0 q10 0 10 -10 m-176 10 h4 m158 0 h4 m-176 -10 v20 m186 0 v-20 m-186 20 v8 m186 0 v-8 m-186 8 q0 10 10 10 m166 0 q10 0 10 -10 m-176 10 h4 m126 0 h4 m0 0 h32 m-176 -10 v20 m186 0 v-20 m-186 20 v8 m186 0 v-8 m-186 8 q0 10 10 10 m166 0 q10 0 10 -10 m-176 10 h4 m128 0 h4 m0 0 h30 m23 -84 h-3"/> + <polygon points="235 10 243 6 243 14"/> + <polygon points="235 10 227 6 227 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#sql-descriptor-statement" title="SQL_descriptor_statement" shape="rect">SQL_descriptor_statement</a></div> + <div>         ::= <a href="#allocate-descriptor-statement" title="allocate_descriptor_statement" shape="rect">allocate_descriptor_statement</a></div> + <div>           | <a href="#deallocate-descriptor-statement" title="deallocate_descriptor_statement" shape="rect">deallocate_descriptor_statement</a></div> + <div>           | <a href="#set-descriptor-statement" title="set_descriptor_statement" shape="rect">set_descriptor_statement</a></div> + <div>           | <a href="#get-descriptor-statement" title="get_descriptor_statement" shape="rect">get_descriptor_statement</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#sql-dynamic-statement" title="sql-dynamic-statement">sql-dynamic-statement</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + declare_cursor +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="407" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="48" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">DECLARE</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#cursor-name" xlink:title="cursor_name" shape="rect"> + <rect x="79" y="1" width="70" height="18" class="nonterminal"/> + <text class="nonterminal" x="83" y="13">cursor_name</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#cursor-properties" xlink:title="cursor_properties" shape="rect"> + <rect x="157" y="1" width="88" height="18" class="nonterminal"/> + <text class="nonterminal" x="161" y="13">cursor_properties</text></a><rect x="253" y="1" width="26" height="18" class="terminal" rx="4"/> + <text class="terminal" x="257" y="13">FOR</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#cursor-specification" xlink:title="cursor_specification" shape="rect"> + <rect x="287" y="1" width="96" height="18" class="nonterminal"/> + <text class="nonterminal" x="291" y="13">cursor_specification</text></a><path class="line" d="m17 10 h2 m0 0 h4 m48 0 h4 m0 0 h4 m70 0 h4 m0 0 h4 m88 0 h4 m0 0 h4 m26 0 h4 m0 0 h4 m96 0 h4 m3 0 h-3"/> + <polygon points="397 10 405 6 405 14"/> + <polygon points="397 10 389 6 389 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#declare-cursor" title="declare_cursor" shape="rect">declare_cursor</a></div> + <div>         ::= 'DECLARE' <a href="#cursor-name" title="cursor_name" shape="rect">cursor_name</a> <a href="#cursor-properties" title="cursor_properties" shape="rect">cursor_properties</a> 'FOR' <a href="#cursor-specification" title="cursor_specification" shape="rect">cursor_specification</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#module-contents" title="module-contents">module-contents</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + cursor_properties +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="641" height="42"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#cursor-sensitivity" xlink:title="cursor_sensitivity" shape="rect"> + <rect x="43" y="22" width="86" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="34">cursor_sensitivity</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#cursor-scrollability" xlink:title="cursor_scrollability" shape="rect"> + <rect x="177" y="22" width="88" height="18" class="nonterminal"/> + <text class="nonterminal" x="181" y="34">cursor_scrollability</text></a><rect x="293" y="1" width="48" height="18" class="terminal" rx="4"/> + <text class="terminal" x="297" y="13">CURSOR</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#cursor-holdability" xlink:title="cursor_holdability" shape="rect"> + <rect x="369" y="22" width="86" height="18" class="nonterminal"/> + <text class="nonterminal" x="373" y="34">cursor_holdability</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#cursor-returnability" xlink:title="cursor_returnability" shape="rect"> + <rect x="503" y="22" width="94" height="18" class="nonterminal"/> + <text class="nonterminal" x="507" y="34">cursor_returnability</text></a><path class="line" d="m17 10 h2 m20 0 h10 m0 0 h84 m-114 0 h20 m94 0 h20 m-134 0 q10 0 10 10 m114 0 q0 -10 10 -10 m-124 10 v1 m114 0 v-1 m-114 1 q0 10 10 10 m94 0 q10 0 10 -10 m-104 10 h4 m86 0 h4 m40 -21 h10 m0 0 h86 m-116 0 h20 m96 0 h20 m-136 0 q10 0 10 10 m116 0 q0 -10 10 -10 m-126 10 v1 m116 0 v-1 m-116 1 q0 10 10 10 m96 0 q10 0 10 -10 m-106 10 h4 m88 0 h4 m20 -21 h4 m48 0 h4 m20 0 h10 m0 0 h84 m-114 0 h20 m94 0 h20 m-134 0 q10 0 10 10 m114 0 q0 -10 10 -10 m-124 10 v1 m114 0 v-1 m-114 1 q0 10 10 10 m94 0 q10 0 10 -10 m-104 10 h4 m86 0 h4 m40 -21 h10 m0 0 h92 m-122 0 h20 m102 0 h20 m-142 0 q10 0 10 10 m122 0 q0 -10 10 -10 m-132 10 v1 m122 0 v-1 m-122 1 q0 10 10 10 m102 0 q10 0 10 -10 m-112 10 h4 m94 0 h4 m23 -21 h-3"/> + <polygon points="631 10 639 6 639 14"/> + <polygon points="631 10 623 6 623 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#cursor-properties" title="cursor_properties" shape="rect">cursor_properties</a></div> + <div>         ::= <a href="#cursor-sensitivity" title="cursor_sensitivity" shape="rect">cursor_sensitivity</a>? <a href="#cursor-scrollability" title="cursor_scrollability" shape="rect">cursor_scrollability</a>? 'CURSOR' <a href="#cursor-holdability" title="cursor_holdability" shape="rect">cursor_holdability</a>? <a href="#cursor-returnability" title="cursor_returnability" shape="rect">cursor_returnability</a>?</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#declare-cursor" title="declare-cursor">declare-cursor</a></li><li><a href="#dynamic-declare-cursor" title="dynamic-declare-cursor">dynamic-declare-cursor</a></li><li><a href="#statement-cursor" title="statement-cursor">statement-cursor</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + cursor_sensitivity +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="153" height="77"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="43" y="1" width="56" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="13">SENSITIVE</text> + <rect x="43" y="29" width="66" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="41">INSENSITIVE</text> + <rect x="43" y="57" width="62" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="69">ASENSITIVE</text> + <path class="line" d="m17 10 h2 m20 0 h4 m56 0 h4 m0 0 h10 m-94 0 h20 m74 0 h20 m-114 0 q10 0 10 10 m94 0 q0 -10 10 -10 m-104 10 v8 m94 0 v-8 m-94 8 q0 10 10 10 m74 0 q10 0 10 -10 m-84 10 h4 m66 0 h4 m-84 -10 v20 m94 0 v-20 m-94 20 v8 m94 0 v-8 m-94 8 q0 10 10 10 m74 0 q10 0 10 -10 m-84 10 h4 m62 0 h4 m0 0 h4 m23 -56 h-3"/> + <polygon points="143 10 151 6 151 14"/> + <polygon points="143 10 135 6 135 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#cursor-sensitivity" title="cursor_sensitivity" shape="rect">cursor_sensitivity</a></div> + <div>         ::= 'SENSITIVE'</div> + <div>           | 'INSENSITIVE'</div> + <div>           | 'ASENSITIVE'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#cursor-attribute" title="cursor-attribute">cursor-attribute</a></li><li><a href="#cursor-properties" title="cursor-properties">cursor-properties</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + cursor_scrollability +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="161" height="42"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="43" y="22" width="22" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="34">NO</text> + <rect x="93" y="1" width="44" height="18" class="terminal" rx="4"/> + <text class="terminal" x="97" y="13">SCROLL</text> + <path class="line" d="m17 10 h2 m20 0 h10 m0 0 h20 m-50 0 h20 m30 0 h20 m-70 0 q10 0 10 10 m50 0 q0 -10 10 -10 m-60 10 v1 m50 0 v-1 m-50 1 q0 10 10 10 m30 0 q10 0 10 -10 m-40 10 h4 m22 0 h4 m20 -21 h4 m44 0 h4 m3 0 h-3"/> + <polygon points="151 10 159 6 159 14"/> + <polygon points="151 10 143 6 143 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#cursor-scrollability" title="cursor_scrollability" shape="rect">cursor_scrollability</a></div> + <div>         ::= 'NO'? 'SCROLL'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#cursor-attribute" title="cursor-attribute">cursor-attribute</a></li><li><a href="#cursor-properties" title="cursor-properties">cursor-properties</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + cursor_holdability +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="183" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="43" y="1" width="34" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="13">WITH</text> + <rect x="43" y="29" width="54" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="41">WITHOUT</text> + <rect x="125" y="1" width="34" height="18" class="terminal" rx="4"/> + <text class="terminal" x="129" y="13">HOLD</text> + <path class="line" d="m17 10 h2 m20 0 h4 m34 0 h4 m0 0 h20 m-82 0 h20 m62 0 h20 m-102 0 q10 0 10 10 m82 0 q0 -10 10 -10 m-92 10 v8 m82 0 v-8 m-82 8 q0 10 10 10 m62 0 q10 0 10 -10 m-72 10 h4 m54 0 h4 m20 -28 h4 m34 0 h4 m3 0 h-3"/> + <polygon points="173 10 181 6 181 14"/> + <polygon points="173 10 165 6 165 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#cursor-holdability" title="cursor_holdability" shape="rect">cursor_holdability</a></div> + <div>         ::= ( 'WITH' | 'WITHOUT' ) 'HOLD'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#cursor-attribute" title="cursor-attribute">cursor-attribute</a></li><li><a href="#cursor-properties" title="cursor-properties">cursor-properties</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + cursor_returnability +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="193" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="43" y="1" width="34" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="13">WITH</text> + <rect x="43" y="29" width="54" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="41">WITHOUT</text> + <rect x="125" y="1" width="44" height="18" class="terminal" rx="4"/> + <text class="terminal" x="129" y="13">RETURN</text> + <path class="line" d="m17 10 h2 m20 0 h4 m34 0 h4 m0 0 h20 m-82 0 h20 m62 0 h20 m-102 0 q10 0 10 10 m82 0 q0 -10 10 -10 m-92 10 v8 m82 0 v-8 m-82 8 q0 10 10 10 m62 0 q10 0 10 -10 m-72 10 h4 m54 0 h4 m20 -28 h4 m44 0 h4 m3 0 h-3"/> + <polygon points="183 10 191 6 191 14"/> + <polygon points="183 10 175 6 175 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#cursor-returnability" title="cursor_returnability" shape="rect">cursor_returnability</a></div> + <div>         ::= ( 'WITH' | 'WITHOUT' ) 'RETURN'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#cursor-attribute" title="cursor-attribute">cursor-attribute</a></li><li><a href="#cursor-properties" title="cursor-properties">cursor-properties</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + cursor_specification +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="283" height="42"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#query-expression" xlink:title="query_expression" shape="rect"> + <rect x="23" y="1" width="92" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">query_expression</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#updatability-clause" xlink:title="updatability_clause" shape="rect"> + <rect x="143" y="22" width="96" height="18" class="nonterminal"/> + <text class="nonterminal" x="147" y="34">updatability_clause</text></a><path class="line" d="m17 10 h2 m0 0 h4 m92 0 h4 m20 0 h10 m0 0 h94 m-124 0 h20 m104 0 h20 m-144 0 q10 0 10 10 m124 0 q0 -10 10 -10 m-134 10 v1 m124 0 v-1 m-124 1 q0 10 10 10 m104 0 q10 0 10 -10 m-114 10 h4 m96 0 h4 m23 -21 h-3"/> + <polygon points="273 10 281 6 281 14"/> + <polygon points="273 10 265 6 265 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#cursor-specification" title="cursor_specification" shape="rect">cursor_specification</a></div> + <div>         ::= <a href="#query-expression" title="query_expression" shape="rect">query_expression</a> <a href="#updatability-clause" title="updatability_clause" shape="rect">updatability_clause</a>?</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#declare-cursor" title="declare-cursor">declare-cursor</a></li><li><a href="#direct-select-statement-multiple-rows" title="direct-select-statement-multiple-rows">direct-select-statement-multiple-rows</a></li><li><a href="#dynamic-select-statement" title="dynamic-select-statement">dynamic-select-statement</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + updatability_clause +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="333" height="70"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="26" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">FOR</text> + <rect x="77" y="1" width="32" height="18" class="terminal" rx="4"/> + <text class="terminal" x="81" y="13">READ</text> + <rect x="117" y="1" width="34" height="18" class="terminal" rx="4"/> + <text class="terminal" x="121" y="13">ONLY</text> + <rect x="77" y="29" width="44" height="18" class="terminal" rx="4"/> + <text class="terminal" x="81" y="41">UPDATE</text> + <rect x="149" y="50" width="20" height="18" class="terminal" rx="4"/> + <text class="terminal" x="153" y="62">OF</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#column-name-list" xlink:title="column_name_list" shape="rect"> + <rect x="177" y="50" width="92" height="18" class="nonterminal"/> + <text class="nonterminal" x="181" y="62">column_name_list</text></a><path class="line" d="m17 10 h2 m0 0 h4 m26 0 h4 m20 0 h4 m32 0 h4 m0 0 h4 m34 0 h4 m0 0 h138 m-240 0 h20 m220 0 h20 m-260 0 q10 0 10 10 m240 0 q0 -10 10 -10 m-250 10 v8 m240 0 v-8 m-240 8 q0 10 10 10 m220 0 q10 0 10 -10 m-230 10 h4 m44 0 h4 m20 0 h10 m0 0 h118 m-148 0 h20 m128 0 h20 m-168 0 q10 0 10 10 m148 0 q0 -10 10 -10 m-158 10 v1 m148 0 v-1 m-148 1 q0 10 10 10 m128 0 q10 0 10 -10 m-138 10 h4 m20 0 h4 m0 0 h4 m92 0 h4 m43 -49 h-3"/> + <polygon points="323 10 331 6 331 14"/> + <polygon points="323 10 315 6 315 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#updatability-clause" title="updatability_clause" shape="rect">updatability_clause</a></div> + <div>         ::= 'FOR' ( 'READ' 'ONLY' | 'UPDATE' ( 'OF' <a href="#column-name-list" title="column_name_list" shape="rect">column_name_list</a> )? )</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#cursor-specification" title="cursor-specification">cursor-specification</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + open_statement +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="159" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="34" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">OPEN</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#cursor-name" xlink:title="cursor_name" shape="rect"> + <rect x="65" y="1" width="70" height="18" class="nonterminal"/> + <text class="nonterminal" x="69" y="13">cursor_name</text></a><path class="line" d="m17 10 h2 m0 0 h4 m34 0 h4 m0 0 h4 m70 0 h4 m3 0 h-3"/> + <polygon points="149 10 157 6 157 14"/> + <polygon points="149 10 141 6 141 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#open-statement" title="open_statement" shape="rect">open_statement</a></div> + <div>         ::= 'OPEN' <a href="#cursor-name" title="cursor_name" shape="rect">cursor_name</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#sql-data-statement" title="sql-data-statement">sql-data-statement</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + fetch_statement +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="505" height="63"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="36" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">FETCH</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#fetch-orientation" xlink:title="fetch_orientation" shape="rect"> + <rect x="107" y="43" width="84" height="18" class="nonterminal"/> + <text class="nonterminal" x="111" y="55">fetch_orientation</text></a><rect x="219" y="22" width="36" height="18" class="terminal" rx="4"/> + <text class="terminal" x="223" y="34">FROM</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#cursor-name" xlink:title="cursor_name" shape="rect"> + <rect x="283" y="1" width="70" height="18" class="nonterminal"/> + <text class="nonterminal" x="287" y="13">cursor_name</text></a><rect x="361" y="1" width="32" height="18" class="terminal" rx="4"/> + <text class="terminal" x="365" y="13">INTO</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#fetch-target-list" xlink:title="fetch_target_list" shape="rect"> + <rect x="401" y="1" width="80" height="18" class="nonterminal"/> + <text class="nonterminal" x="405" y="13">fetch_target_list</text></a><path class="line" d="m17 10 h2 m0 0 h4 m36 0 h4 m20 0 h10 m0 0 h166 m-196 0 h20 m176 0 h20 m-216 0 q10 0 10 10 m196 0 q0 -10 10 -10 m-206 10 v1 m196 0 v-1 m-196 1 q0 10 10 10 m176 0 q10 0 10 -10 m-166 10 h10 m0 0 h82 m-112 0 h20 m92 0 h20 m-132 0 q10 0 10 10 m112 0 q0 -10 10 -10 m-122 10 v1 m112 0 v-1 m-112 1 q0 10 10 10 m92 0 q10 0 10 -10 m-102 10 h4 m84 0 h4 m20 -21 h4 m36 0 h4 m20 -21 h4 m70 0 h4 m0 0 h4 m32 0 h4 m0 0 h4 m80 0 h4 m3 0 h-3"/> + <polygon points="495 10 503 6 503 14"/> + <polygon points="495 10 487 6 487 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#fetch-statement" title="fetch_statement" shape="rect">fetch_statement</a></div> + <div>         ::= 'FETCH' ( <a href="#fetch-orientation" title="fetch_orientation" shape="rect">fetch_orientation</a>? 'FROM' )? <a href="#cursor-name" title="cursor_name" shape="rect">cursor_name</a> 'INTO' <a href="#fetch-target-list" title="fetch_target_list" shape="rect">fetch_target_list</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#sql-data-statement" title="sql-data-statement">sql-data-statement</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + fetch_orientation +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="319" height="161"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="43" y="1" width="32" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="13">NEXT</text> + <rect x="43" y="29" width="38" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="41">PRIOR</text> + <rect x="43" y="57" width="34" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="69">FIRST</text> + <rect x="43" y="85" width="30" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="97">LAST</text> + <rect x="63" y="113" width="56" height="18" class="terminal" rx="4"/> + <text class="terminal" x="67" y="125">ABSOLUTE</text> + <rect x="63" y="141" width="50" height="18" class="terminal" rx="4"/> + <text class="terminal" x="67" y="153">RELATIVE</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#simple-value-specification" xlink:title="simple_value_specification" shape="rect"> + <rect x="147" y="113" width="128" height="18" class="nonterminal"/> + <text class="nonterminal" x="151" y="125">simple_value_specification</text></a><path class="line" d="m17 10 h2 m20 0 h4 m32 0 h4 m0 0 h200 m-260 0 h20 m240 0 h20 m-280 0 q10 0 10 10 m260 0 q0 -10 10 -10 m-270 10 v8 m260 0 v-8 m-260 8 q0 10 10 10 m240 0 q10 0 10 -10 m-250 10 h4 m38 0 h4 m0 0 h194 m-250 -10 v20 m260 0 v-20 m-260 20 v8 m260 0 v-8 m-260 8 q0 10 10 10 m240 0 q10 0 10 -10 m-250 10 h4 m34 0 h4 m0 0 h198 m-250 -10 v20 m260 0 v-20 m-260 20 v8 m260 0 v-8 m-260 8 q0 10 10 10 m240 0 q10 0 10 -10 m-250 10 h4 m30 0 h4 m0 0 h202 m-250 -10 v20 m260 0 v-20 m-260 20 v8 m260 0 v-8 m-260 8 q0 10 10 10 m240 0 q10 0 10 -10 m-230 10 h4 m56 0 h4 m-84 0 h20 m64 0 h20 m-104 0 q10 0 10 10 m84 0 q0 -10 10 -10 m-94 10 v8 m84 0 v-8 m-84 8 q0 10 10 10 m64 0 q10 0 10 -10 m-74 10 h4 m50 0 h4 m0 0 h6 m20 -28 h4 m128 0 h4 m23 -112 h-3"/> + <polygon points="309 10 317 6 317 14"/> + <polygon points="309 10 301 6 301 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#fetch-orientation" title="fetch_orientation" shape="rect">fetch_orientation</a></div> + <div>         ::= 'NEXT'</div> + <div>           | 'PRIOR'</div> + <div>           | 'FIRST'</div> + <div>           | 'LAST'</div> + <div>           | ( 'ABSOLUTE' | 'RELATIVE' ) <a href="#simple-value-specification" title="simple_value_specification" shape="rect">simple_value_specification</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#dynamic-fetch-statement" title="dynamic-fetch-statement">dynamic-fetch-statement</a></li><li><a href="#fetch-statement" title="fetch-statement">fetch-statement</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + fetch_target_list +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="183" height="49"> + <polygon points="9 38 1 34 1 42"/> + <polygon points="17 38 9 34 9 42"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#target-specification" xlink:title="target_specification" shape="rect"> + <rect x="43" y="29" width="96" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">target_specification</text></a><rect x="43" y="1" width="8" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="13">,</text> + <path class="line" d="m17 38 h2 m20 0 h4 m96 0 h4 m-124 0 l20 0 m-1 0 q-9 0 -9 -10 l0 -8 q0 -10 10 -10 m104 28 l20 0 m-20 0 q10 0 10 -10 l0 -8 q0 -10 -10 -10 m-104 0 h4 m8 0 h4 m0 0 h88 m23 28 h-3"/> + <polygon points="173 38 181 34 181 42"/> + <polygon points="173 38 165 34 165 42"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#fetch-target-list" title="fetch_target_list" shape="rect">fetch_target_list</a></div> + <div>         ::= <a href="#target-specification" title="target_specification" shape="rect">target_specification</a> ( ',' <a href="#target-specification" title="target_specification" shape="rect">target_specification</a> )*</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#fetch-statement" title="fetch-statement">fetch-statement</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + close_statement +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="163" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="38" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">CLOSE</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#cursor-name" xlink:title="cursor_name" shape="rect"> + <rect x="69" y="1" width="70" height="18" class="nonterminal"/> + <text class="nonterminal" x="73" y="13">cursor_name</text></a><path class="line" d="m17 10 h2 m0 0 h4 m38 0 h4 m0 0 h4 m70 0 h4 m3 0 h-3"/> + <polygon points="153 10 161 6 161 14"/> + <polygon points="153 10 145 6 145 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#close-statement" title="close_statement" shape="rect">close_statement</a></div> + <div>         ::= 'CLOSE' <a href="#cursor-name" title="cursor_name" shape="rect">cursor_name</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#sql-data-statement" title="sql-data-statement">sql-data-statement</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + select_statement_single_row +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="573" height="42"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="40" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">SELECT</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#set-quantifier" xlink:title="set_quantifier" shape="rect"> + <rect x="91" y="22" width="70" height="18" class="nonterminal"/> + <text class="nonterminal" x="95" y="34">set_quantifier</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#select-list" xlink:title="select_list" shape="rect"> + <rect x="189" y="1" width="52" height="18" class="nonterminal"/> + <text class="nonterminal" x="193" y="13">select_list</text></a><rect x="269" y="22" width="32" height="18" class="terminal" rx="4"/> + <text class="terminal" x="273" y="34">INTO</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#select-target-list" xlink:title="select_target_list" shape="rect"> + <rect x="309" y="22" width="84" height="18" class="nonterminal"/> + <text class="nonterminal" x="313" y="34">select_target_list</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#table-expression" xlink:title="table_expression" shape="rect"> + <rect x="441" y="22" width="88" height="18" class="nonterminal"/> + <text class="nonterminal" x="445" y="34">table_expression</text></a><path class="line" d="m17 10 h2 m0 0 h4 m40 0 h4 m20 0 h10 m0 0 h68 m-98 0 h20 m78 0 h20 m-118 0 q10 0 10 10 m98 0 q0 -10 10 -10 m-108 10 v1 m98 0 v-1 m-98 1 q0 10 10 10 m78 0 q10 0 10 -10 m-88 10 h4 m70 0 h4 m20 -21 h4 m52 0 h4 m20 0 h10 m0 0 h122 m-152 0 h20 m132 0 h20 m-172 0 q10 0 10 10 m152 0 q0 -10 10 -10 m-162 10 v1 m152 0 v-1 m-152 1 q0 10 10 10 m132 0 q10 0 10 -10 m-142 10 h4 m32 0 h4 m0 0 h4 m84 0 h4 m40 -21 h10 m0 0 h86 m-116 0 h20 m96 0 h20 m-136 0 q10 0 10 10 m116 0 q0 -10 10 -10 m-126 10 v1 m116 0 v-1 m-116 1 q0 10 10 10 m96 0 q10 0 10 -10 m-106 10 h4 m88 0 h4 m23 -21 h-3"/> + <polygon points="563 10 571 6 571 14"/> + <polygon points="563 10 555 6 555 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#select-statement-single-row" title="select_statement_single_row" shape="rect">select_statement_single_row</a></div> + <div>         ::= 'SELECT' <a href="#set-quantifier" title="set_quantifier" shape="rect">set_quantifier</a>? <a href="#select-list" title="select_list" shape="rect">select_list</a> ( 'INTO' <a href="#select-target-list" title="select_target_list" shape="rect">select_target_list</a> )? <a href="#table-expression" title="table_expression" shape="rect">table_expression</a>?</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#sql-data-statement" title="sql-data-statement">sql-data-statement</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + select_target_list +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="183" height="49"> + <polygon points="9 38 1 34 1 42"/> + <polygon points="17 38 9 34 9 42"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#target-specification" xlink:title="target_specification" shape="rect"> + <rect x="43" y="29" width="96" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">target_specification</text></a><rect x="43" y="1" width="8" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="13">,</text> + <path class="line" d="m17 38 h2 m20 0 h4 m96 0 h4 m-124 0 l20 0 m-1 0 q-9 0 -9 -10 l0 -8 q0 -10 10 -10 m104 28 l20 0 m-20 0 q10 0 10 -10 l0 -8 q0 -10 -10 -10 m-104 0 h4 m8 0 h4 m0 0 h88 m23 28 h-3"/> + <polygon points="173 38 181 34 181 42"/> + <polygon points="173 38 165 34 165 42"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#select-target-list" title="select_target_list" shape="rect">select_target_list</a></div> + <div>         ::= <a href="#target-specification" title="target_specification" shape="rect">target_specification</a> ( ',' <a href="#target-specification" title="target_specification" shape="rect">target_specification</a> )*</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#select-statement-single-row" title="select-statement-single-row">select-statement-single-row</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + delete_statement_positioned +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="579" height="63"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="40" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">DELETE</text> + <rect x="71" y="1" width="36" height="18" class="terminal" rx="4"/> + <text class="terminal" x="75" y="13">FROM</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#target-table" xlink:title="target_table" shape="rect"> + <rect x="115" y="1" width="64" height="18" class="nonterminal"/> + <text class="nonterminal" x="119" y="13">target_table</text></a><rect x="227" y="43" width="20" height="18" class="terminal" rx="4"/> + <text class="terminal" x="231" y="55">AS</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#identifier" xlink:title="identifier" shape="rect"> + <rect x="275" y="22" width="46" height="18" class="nonterminal"/> + <text class="nonterminal" x="279" y="34">identifier</text></a><rect x="349" y="1" width="42" height="18" class="terminal" rx="4"/> + <text class="terminal" x="353" y="13">WHERE</text> + <rect x="399" y="1" width="50" height="18" class="terminal" rx="4"/> + <text class="terminal" x="403" y="13">CURRENT</text> + <rect x="457" y="1" width="20" height="18" class="terminal" rx="4"/> + <text class="terminal" x="461" y="13">OF</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#cursor-name" xlink:title="cursor_name" shape="rect"> + <rect x="485" y="1" width="70" height="18" class="nonterminal"/> + <text class="nonterminal" x="489" y="13">cursor_name</text></a><path class="line" d="m17 10 h2 m0 0 h4 m40 0 h4 m0 0 h4 m36 0 h4 m0 0 h4 m64 0 h4 m20 0 h10 m0 0 h112 m-142 0 h20 m122 0 h20 m-162 0 q10 0 10 10 m142 0 q0 -10 10 -10 m-152 10 v1 m142 0 v-1 m-142 1 q0 10 10 10 m122 0 q10 0 10 -10 m-112 10 h10 m0 0 h18 m-48 0 h20 m28 0 h20 m-68 0 q10 0 10 10 m48 0 q0 -10 10 -10 m-58 10 v1 m48 0 v-1 m-48 1 q0 10 10 10 m28 0 q10 0 10 -10 m-38 10 h4 m20 0 h4 m20 -21 h4 m46 0 h4 m20 -21 h4 m42 0 h4 m0 0 h4 m50 0 h4 m0 0 h4 m20 0 h4 m0 0 h4 m70 0 h4 m3 0 h-3"/> + <polygon points="569 10 577 6 577 14"/> + <polygon points="569 10 561 6 561 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#delete-statement-positioned" title="delete_statement_positioned" shape="rect">delete_statement_positioned</a></div> + <div>         ::= 'DELETE' 'FROM' <a href="#target-table" title="target_table" shape="rect">target_table</a> ( 'AS'? <a href="#identifier" title="identifier" shape="rect">identifier</a> )? 'WHERE' 'CURRENT' 'OF' <a href="#cursor-name" title="cursor_name" shape="rect">cursor_name</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#sql-data-change-statement" title="sql-data-change-statement">sql-data-change-statement</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + target_table +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="235" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#table-name" xlink:title="table_name" shape="rect"> + <rect x="43" y="1" width="66" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">table_name</text></a><rect x="43" y="29" width="34" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="41">ONLY</text> + <rect x="85" y="29" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="89" y="41">(</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#table-name" xlink:title="table_name" shape="rect"> + <rect x="105" y="29" width="66" height="18" class="nonterminal"/> + <text class="nonterminal" x="109" y="41">table_name</text></a><rect x="179" y="29" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="183" y="41">)</text> + <path class="line" d="m17 10 h2 m20 0 h4 m66 0 h4 m0 0 h82 m-176 0 h20 m156 0 h20 m-196 0 q10 0 10 10 m176 0 q0 -10 10 -10 m-186 10 v8 m176 0 v-8 m-176 8 q0 10 10 10 m156 0 q10 0 10 -10 m-166 10 h4 m34 0 h4 m0 0 h4 m12 0 h4 m0 0 h4 m66 0 h4 m0 0 h4 m12 0 h4 m23 -28 h-3"/> + <polygon points="225 10 233 6 233 14"/> + <polygon points="225 10 217 6 217 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#target-table" title="target_table" shape="rect">target_table</a></div> + <div>         ::= <a href="#table-name" title="table_name" shape="rect">table_name</a></div> + <div>           | 'ONLY' '(' <a href="#table-name" title="table_name" shape="rect">table_name</a> ')'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#delete-statement-positioned" title="delete-statement-positioned">delete-statement-positioned</a></li><li><a href="#delete-statement-searched" title="delete-statement-searched">delete-statement-searched</a></li><li><a href="#dynamic-delete-statement-positioned" title="dynamic-delete-statement-positioned">dynamic-delete-statement-positioned</a></li><li><a href="#dynamic-update-statement-positioned" title="dynamic-update-statement-positioned">dynamic-update-statement-positioned</a></li><li><a href="#merge-statement" title="merge-statement">merge-statement</a></li><li><a href="#preparable-dynamic-delete-statement-positioned" title="preparable-dynamic-delete-statement-positioned">preparable-dynamic-delete-statement-positioned</a></li><li><a href="#preparable-dynamic-update-statement-positioned" title="preparable-dynamic-update-statement-positioned">preparable-dynamic-update-statement-positioned</a></li><li><a href="#truncate-table-statement" title="truncate-table-statement">truncate-table-statement</a></li><li><a href="#update-statement-positioned" title="update-statement-positioned">update-statement-positioned</a></li><li><a href="#update-statement-searched" title="update-statement-searched">update-statement-searched</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + delete_statement_searched +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="549" height="63"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="40" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">DELETE</text> + <rect x="71" y="1" width="36" height="18" class="terminal" rx="4"/> + <text class="terminal" x="75" y="13">FROM</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#target-table" xlink:title="target_table" shape="rect"> + <rect x="115" y="1" width="64" height="18" class="nonterminal"/> + <text class="nonterminal" x="119" y="13">target_table</text></a><rect x="227" y="43" width="20" height="18" class="terminal" rx="4"/> + <text class="terminal" x="231" y="55">AS</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#identifier" xlink:title="identifier" shape="rect"> + <rect x="275" y="22" width="46" height="18" class="nonterminal"/> + <text class="nonterminal" x="279" y="34">identifier</text></a><rect x="369" y="22" width="42" height="18" class="terminal" rx="4"/> + <text class="terminal" x="373" y="34">WHERE</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#search-condition" xlink:title="search_condition" shape="rect"> + <rect x="419" y="22" width="86" height="18" class="nonterminal"/> + <text class="nonterminal" x="423" y="34">search_condition</text></a><path class="line" d="m17 10 h2 m0 0 h4 m40 0 h4 m0 0 h4 m36 0 h4 m0 0 h4 m64 0 h4 m20 0 h10 m0 0 h112 m-142 0 h20 m122 0 h20 m-162 0 q10 0 10 10 m142 0 q0 -10 10 -10 m-152 10 v1 m142 0 v-1 m-142 1 q0 10 10 10 m122 0 q10 0 10 -10 m-112 10 h10 m0 0 h18 m-48 0 h20 m28 0 h20 m-68 0 q10 0 10 10 m48 0 q0 -10 10 -10 m-58 10 v1 m48 0 v-1 m-48 1 q0 10 10 10 m28 0 q10 0 10 -10 m-38 10 h4 m20 0 h4 m20 -21 h4 m46 0 h4 m40 -21 h10 m0 0 h134 m-164 0 h20 m144 0 h20 m-184 0 q10 0 10 10 m164 0 q0 -10 10 -10 m-174 10 v1 m164 0 v-1 m-164 1 q0 10 10 10 m144 0 q10 0 10 -10 m-154 10 h4 m42 0 h4 m0 0 h4 m86 0 h4 m23 -21 h-3"/> + <polygon points="539 10 547 6 547 14"/> + <polygon points="539 10 531 6 531 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#delete-statement-searched" title="delete_statement_searched" shape="rect">delete_statement_searched</a></div> + <div>         ::= 'DELETE' 'FROM' <a href="#target-table" title="target_table" shape="rect">target_table</a> ( 'AS'? <a href="#identifier" title="identifier" shape="rect">identifier</a> )? ( 'WHERE' <a href="#search-condition" title="search_condition" shape="rect">search_condition</a> )?</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#sql-data-change-statement" title="sql-data-change-statement">sql-data-change-statement</a></li><li><a href="#data-change-statement" title="data-change-statement">data-change-statement</a></li><li><a href="#direct-sql-data-statement" title="direct-sql-data-statement">direct-sql-data-statement</a></li><li><a href="#preparable-sql-data-statement" title="preparable-sql-data-statement">preparable-sql-data-statement</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + truncate_table_statement +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="417" height="42"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="56" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">TRUNCATE</text> + <rect x="87" y="1" width="36" height="18" class="terminal" rx="4"/> + <text class="terminal" x="91" y="13">TABLE</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#target-table" xlink:title="target_table" shape="rect"> + <rect x="131" y="1" width="64" height="18" class="nonterminal"/> + <text class="nonterminal" x="135" y="13">target_table</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#identity-column-restart-option" xlink:title="identity_column_restart_option" shape="rect"> + <rect x="223" y="22" width="150" height="18" class="nonterminal"/> + <text class="nonterminal" x="227" y="34">identity_column_restart_option</text></a><path class="line" d="m17 10 h2 m0 0 h4 m56 0 h4 m0 0 h4 m36 0 h4 m0 0 h4 m64 0 h4 m20 0 h10 m0 0 h148 m-178 0 h20 m158 0 h20 m-198 0 q10 0 10 10 m178 0 q0 -10 10 -10 m-188 10 v1 m178 0 v-1 m-178 1 q0 10 10 10 m158 0 q10 0 10 -10 m-168 10 h4 m150 0 h4 m23 -21 h-3"/> + <polygon points="407 10 415 6 415 14"/> + <polygon points="407 10 399 6 399 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#truncate-table-statement" title="truncate_table_statement" shape="rect">truncate_table_statement</a></div> + <div>         ::= 'TRUNCATE' 'TABLE' <a href="#target-table" title="target_table" shape="rect">target_table</a> <a href="#identity-column-restart-option" title="identity_column_restart_option" shape="rect">identity_column_restart_option</a>?</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#sql-data-change-statement" title="sql-data-change-statement">sql-data-change-statement</a></li><li><a href="#direct-sql-data-statement" title="direct-sql-data-statement">direct-sql-data-statement</a></li><li><a href="#preparable-sql-data-statement" title="preparable-sql-data-statement">preparable-sql-data-statement</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + identity_column_restart_option +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="201" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="43" y="1" width="56" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="13">CONTINUE</text> + <rect x="43" y="29" width="48" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="41">RESTART</text> + <rect x="127" y="1" width="50" height="18" class="terminal" rx="4"/> + <text class="terminal" x="131" y="13">IDENTITY</text> + <path class="line" d="m17 10 h2 m20 0 h4 m56 0 h4 m-84 0 h20 m64 0 h20 m-104 0 q10 0 10 10 m84 0 q0 -10 10 -10 m-94 10 v8 m84 0 v-8 m-84 8 q0 10 10 10 m64 0 q10 0 10 -10 m-74 10 h4 m48 0 h4 m0 0 h8 m20 -28 h4 m50 0 h4 m3 0 h-3"/> + <polygon points="191 10 199 6 199 14"/> + <polygon points="191 10 183 6 183 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#identity-column-restart-option" title="identity_column_restart_option" shape="rect">identity_column_restart_option</a></div> + <div>         ::= ( 'CONTINUE' | 'RESTART' ) 'IDENTITY'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#truncate-table-statement" title="truncate-table-statement">truncate-table-statement</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + insert_statement +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="361" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="40" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">INSERT</text> + <rect x="71" y="1" width="32" height="18" class="terminal" rx="4"/> + <text class="terminal" x="75" y="13">INTO</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#insertion-target" xlink:title="insertion_target" shape="rect"> + <rect x="111" y="1" width="80" height="18" class="nonterminal"/> + <text class="nonterminal" x="115" y="13">insertion_target</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#insert-columns-and-source" xlink:title="insert_columns_and_source" shape="rect"> + <rect x="199" y="1" width="138" height="18" class="nonterminal"/> + <text class="nonterminal" x="203" y="13">insert_columns_and_source</text></a><path class="line" d="m17 10 h2 m0 0 h4 m40 0 h4 m0 0 h4 m32 0 h4 m0 0 h4 m80 0 h4 m0 0 h4 m138 0 h4 m3 0 h-3"/> + <polygon points="351 10 359 6 359 14"/> + <polygon points="351 10 343 6 343 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#insert-statement" title="insert_statement" shape="rect">insert_statement</a></div> + <div>         ::= 'INSERT' 'INTO' <a href="#insertion-target" title="insertion_target" shape="rect">insertion_target</a> <a href="#insert-columns-and-source" title="insert_columns_and_source" shape="rect">insert_columns_and_source</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#sql-data-change-statement" title="sql-data-change-statement">sql-data-change-statement</a></li><li><a href="#data-change-statement" title="data-change-statement">data-change-statement</a></li><li><a href="#direct-sql-data-statement" title="direct-sql-data-statement">direct-sql-data-statement</a></li><li><a href="#preparable-sql-data-statement" title="preparable-sql-data-statement">preparable-sql-data-statement</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + insertion_target +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="113" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#table-name" xlink:title="table_name" shape="rect"> + <rect x="23" y="1" width="66" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">table_name</text></a><path class="line" d="m17 10 h2 m0 0 h4 m66 0 h4 m3 0 h-3"/> + <polygon points="103 10 111 6 111 14"/> + <polygon points="103 10 95 6 95 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#insertion-target" title="insertion_target" shape="rect">insertion_target</a></div> + <div>         ::= <a href="#table-name" title="table_name" shape="rect">table_name</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#insert-statement" title="insert-statement">insert-statement</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + insert_columns_and_source +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="173" height="77"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#from-subquery" xlink:title="from_subquery" shape="rect"> + <rect x="43" y="1" width="80" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">from_subquery</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#from-constructor" xlink:title="from_constructor" shape="rect"> + <rect x="43" y="29" width="86" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">from_constructor</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#from-default" xlink:title="from_default" shape="rect"> + <rect x="43" y="57" width="66" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="69">from_default</text></a><path class="line" d="m17 10 h2 m20 0 h4 m80 0 h4 m0 0 h6 m-114 0 h20 m94 0 h20 m-134 0 q10 0 10 10 m114 0 q0 -10 10 -10 m-124 10 v8 m114 0 v-8 m-114 8 q0 10 10 10 m94 0 q10 0 10 -10 m-104 10 h4 m86 0 h4 m-104 -10 v20 m114 0 v-20 m-114 20 v8 m114 0 v-8 m-114 8 q0 10 10 10 m94 0 q10 0 10 -10 m-104 10 h4 m66 0 h4 m0 0 h20 m23 -56 h-3"/> + <polygon points="163 10 171 6 171 14"/> + <polygon points="163 10 155 6 155 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#insert-columns-and-source" title="insert_columns_and_source" shape="rect">insert_columns_and_source</a></div> + <div>         ::= <a href="#from-subquery" title="from_subquery" shape="rect">from_subquery</a></div> + <div>           | <a href="#from-constructor" title="from_constructor" shape="rect">from_constructor</a></div> + <div>           | <a href="#from-default" title="from_default" shape="rect">from_default</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#insert-statement" title="insert-statement">insert-statement</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + from_subquery +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="445" height="42"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="43" y="22" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="34">(</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#insert-column-list" xlink:title="insert_column_list" shape="rect"> + <rect x="63" y="22" width="90" height="18" class="nonterminal"/> + <text class="nonterminal" x="67" y="34">insert_column_list</text></a><rect x="161" y="22" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="165" y="34">)</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#override-clause" xlink:title="override_clause" shape="rect"> + <rect x="221" y="22" width="80" height="18" class="nonterminal"/> + <text class="nonterminal" x="225" y="34">override_clause</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#query-expression" xlink:title="query_expression" shape="rect"> + <rect x="329" y="1" width="92" height="18" class="nonterminal"/> + <text class="nonterminal" x="333" y="13">query_expression</text></a><path class="line" d="m17 10 h2 m20 0 h10 m0 0 h128 m-158 0 h20 m138 0 h20 m-178 0 q10 0 10 10 m158 0 q0 -10 10 -10 m-168 10 v1 m158 0 v-1 m-158 1 q0 10 10 10 m138 0 q10 0 10 -10 m-148 10 h4 m12 0 h4 m0 0 h4 m90 0 h4 m0 0 h4 m12 0 h4 m40 -21 h10 m0 0 h78 m-108 0 h20 m88 0 h20 m-128 0 q10 0 10 10 m108 0 q0 -10 10 -10 m-118 10 v1 m108 0 v-1 m-108 1 q0 10 10 10 m88 0 q10 0 10 -10 m-98 10 h4 m80 0 h4 m20 -21 h4 m92 0 h4 m3 0 h-3"/> + <polygon points="435 10 443 6 443 14"/> + <polygon points="435 10 427 6 427 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#from-subquery" title="from_subquery" shape="rect">from_subquery</a></div> + <div>         ::= ( '(' <a href="#insert-column-list" title="insert_column_list" shape="rect">insert_column_list</a> ')' )? <a href="#override-clause" title="override_clause" shape="rect">override_clause</a>? <a href="#query-expression" title="query_expression" shape="rect">query_expression</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#insert-columns-and-source" title="insert-columns-and-source">insert-columns-and-source</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + from_constructor +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="561" height="42"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="43" y="22" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="34">(</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#insert-column-list" xlink:title="insert_column_list" shape="rect"> + <rect x="63" y="22" width="90" height="18" class="nonterminal"/> + <text class="nonterminal" x="67" y="34">insert_column_list</text></a><rect x="161" y="22" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="165" y="34">)</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#override-clause" xlink:title="override_clause" shape="rect"> + <rect x="221" y="22" width="80" height="18" class="nonterminal"/> + <text class="nonterminal" x="225" y="34">override_clause</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#contextually-typed-table-value-constructor" xlink:title="contextually_typed_table_value_constructor" shape="rect"> + <rect x="329" y="1" width="208" height="18" class="nonterminal"/> + <text class="nonterminal" x="333" y="13">contextually_typed_table_value_constructor</text></a><path class="line" d="m17 10 h2 m20 0 h10 m0 0 h128 m-158 0 h20 m138 0 h20 m-178 0 q10 0 10 10 m158 0 q0 -10 10 -10 m-168 10 v1 m158 0 v-1 m-158 1 q0 10 10 10 m138 0 q10 0 10 -10 m-148 10 h4 m12 0 h4 m0 0 h4 m90 0 h4 m0 0 h4 m12 0 h4 m40 -21 h10 m0 0 h78 m-108 0 h20 m88 0 h20 m-128 0 q10 0 10 10 m108 0 q0 -10 10 -10 m-118 10 v1 m108 0 v-1 m-108 1 q0 10 10 10 m88 0 q10 0 10 -10 m-98 10 h4 m80 0 h4 m20 -21 h4 m208 0 h4 m3 0 h-3"/> + <polygon points="551 10 559 6 559 14"/> + <polygon points="551 10 543 6 543 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#from-constructor" title="from_constructor" shape="rect">from_constructor</a></div> + <div>         ::= ( '(' <a href="#insert-column-list" title="insert_column_list" shape="rect">insert_column_list</a> ')' )? <a href="#override-clause" title="override_clause" shape="rect">override_clause</a>? <a href="#contextually-typed-table-value-constructor" title="contextually_typed_table_value_constructor" shape="rect">contextually_typed_table_value_constructor</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#insert-columns-and-source" title="insert-columns-and-source">insert-columns-and-source</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + override_clause +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="251" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="68" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">OVERRIDING</text> + <rect x="119" y="1" width="32" height="18" class="terminal" rx="4"/> + <text class="terminal" x="123" y="13">USER</text> + <rect x="119" y="29" width="44" height="18" class="terminal" rx="4"/> + <text class="terminal" x="123" y="41">SYSTEM</text> + <rect x="191" y="1" width="36" height="18" class="terminal" rx="4"/> + <text class="terminal" x="195" y="13">VALUE</text> + <path class="line" d="m17 10 h2 m0 0 h4 m68 0 h4 m20 0 h4 m32 0 h4 m0 0 h12 m-72 0 h20 m52 0 h20 m-92 0 q10 0 10 10 m72 0 q0 -10 10 -10 m-82 10 v8 m72 0 v-8 m-72 8 q0 10 10 10 m52 0 q10 0 10 -10 m-62 10 h4 m44 0 h4 m20 -28 h4 m36 0 h4 m3 0 h-3"/> + <polygon points="241 10 249 6 249 14"/> + <polygon points="241 10 233 6 233 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#override-clause" title="override_clause" shape="rect">override_clause</a></div> + <div>         ::= 'OVERRIDING' ( 'USER' | 'SYSTEM' ) 'VALUE'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#from-constructor" title="from-constructor">from-constructor</a></li><li><a href="#from-subquery" title="from-subquery">from-subquery</a></li><li><a href="#merge-insert-specification" title="merge-insert-specification">merge-insert-specification</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + from_default +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="145" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="48" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">DEFAULT</text> + <rect x="79" y="1" width="42" height="18" class="terminal" rx="4"/> + <text class="terminal" x="83" y="13">VALUES</text> + <path class="line" d="m17 10 h2 m0 0 h4 m48 0 h4 m0 0 h4 m42 0 h4 m3 0 h-3"/> + <polygon points="135 10 143 6 143 14"/> + <polygon points="135 10 127 6 127 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#from-default" title="from_default" shape="rect">from_default</a></div> + <div>         ::= 'DEFAULT' 'VALUES'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#insert-columns-and-source" title="insert-columns-and-source">insert-columns-and-source</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + insert_column_list +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="139" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#column-name-list" xlink:title="column_name_list" shape="rect"> + <rect x="23" y="1" width="92" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">column_name_list</text></a><path class="line" d="m17 10 h2 m0 0 h4 m92 0 h4 m3 0 h-3"/> + <polygon points="129 10 137 6 137 14"/> + <polygon points="129 10 121 6 121 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#insert-column-list" title="insert_column_list" shape="rect">insert_column_list</a></div> + <div>         ::= <a href="#column-name-list" title="column_name_list" shape="rect">column_name_list</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#from-constructor" title="from-constructor">from-constructor</a></li><li><a href="#from-subquery" title="from-subquery">from-subquery</a></li><li><a href="#merge-insert-specification" title="merge-insert-specification">merge-insert-specification</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + merge_statement +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="775" height="63"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="40" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">MERGE</text> + <rect x="71" y="1" width="32" height="18" class="terminal" rx="4"/> + <text class="terminal" x="75" y="13">INTO</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#target-table" xlink:title="target_table" shape="rect"> + <rect x="111" y="1" width="64" height="18" class="nonterminal"/> + <text class="nonterminal" x="115" y="13">target_table</text></a><rect x="223" y="43" width="20" height="18" class="terminal" rx="4"/> + <text class="terminal" x="227" y="55">AS</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#identifier" xlink:title="identifier" shape="rect"> + <rect x="271" y="22" width="46" height="18" class="nonterminal"/> + <text class="nonterminal" x="275" y="34">identifier</text></a><rect x="345" y="1" width="38" height="18" class="terminal" rx="4"/> + <text class="terminal" x="349" y="13">USING</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#table-reference" xlink:title="table_reference" shape="rect"> + <rect x="391" y="1" width="80" height="18" class="nonterminal"/> + <text class="nonterminal" x="395" y="13">table_reference</text></a><rect x="479" y="1" width="22" height="18" class="terminal" rx="4"/> + <text class="terminal" x="483" y="13">ON</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#search-condition" xlink:title="search_condition" shape="rect"> + <rect x="509" y="1" width="86" height="18" class="nonterminal"/> + <text class="nonterminal" x="513" y="13">search_condition</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#merge-operation-specification" xlink:title="merge_operation_specification" shape="rect"> + <rect x="603" y="1" width="148" height="18" class="nonterminal"/> + <text class="nonterminal" x="607" y="13">merge_operation_specification</text></a><path class="line" d="m17 10 h2 m0 0 h4 m40 0 h4 m0 0 h4 m32 0 h4 m0 0 h4 m64 0 h4 m20 0 h10 m0 0 h112 m-142 0 h20 m122 0 h20 m-162 0 q10 0 10 10 m142 0 q0 -10 10 -10 m-152 10 v1 m142 0 v-1 m-142 1 q0 10 10 10 m122 0 q10 0 10 -10 m-112 10 h10 m0 0 h18 m-48 0 h20 m28 0 h20 m-68 0 q10 0 10 10 m48 0 q0 -10 10 -10 m-58 10 v1 m48 0 v-1 m-48 1 q0 10 10 10 m28 0 q10 0 10 -10 m-38 10 h4 m20 0 h4 m20 -21 h4 m46 0 h4 m20 -21 h4 m38 0 h4 m0 0 h4 m80 0 h4 m0 0 h4 m22 0 h4 m0 0 h4 m86 0 h4 m0 0 h4 m148 0 h4 m3 0 h-3"/> + <polygon points="765 10 773 6 773 14"/> + <polygon points="765 10 757 6 757 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#merge-statement" title="merge_statement" shape="rect">merge_statement</a></div> + <div>         ::= 'MERGE' 'INTO' <a href="#target-table" title="target_table" shape="rect">target_table</a> ( 'AS'? <a href="#identifier" title="identifier" shape="rect">identifier</a> )? 'USING' <a href="#table-reference" title="table_reference" shape="rect">table_reference</a> 'ON' <a href="#search-condition" title="search_condition" shape="rect">search_condition</a> <a href="#merge-operation-specification" title="merge_operation_specification" shape="rect">merge_operation_specification</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#sql-data-change-statement" title="sql-data-change-statement">sql-data-change-statement</a></li><li><a href="#data-change-statement" title="data-change-statement">data-change-statement</a></li><li><a href="#direct-sql-data-statement" title="direct-sql-data-statement">direct-sql-data-statement</a></li><li><a href="#preparable-sql-data-statement" title="preparable-sql-data-statement">preparable-sql-data-statement</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + merge_operation_specification +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="193" height="33"> + <polygon points="9 22 1 18 1 26"/> + <polygon points="17 22 9 18 9 26"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#merge-when-clause" xlink:title="merge_when_clause" shape="rect"> + <rect x="43" y="13" width="106" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="25">merge_when_clause</text></a><path class="line" d="m17 22 h2 m20 0 h4 m106 0 h4 m-134 0 l20 0 m-1 0 q-9 0 -9 -10 l0 -1 q0 -10 10 -10 m114 21 l20 0 m-20 0 q10 0 10 -10 l0 -1 q0 -10 -10 -10 m-114 0 h10 m0 0 h104 m23 21 h-3"/> + <polygon points="183 22 191 18 191 26"/> + <polygon points="183 22 175 18 175 26"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#merge-operation-specification" title="merge_operation_specification" shape="rect">merge_operation_specification</a></div> + <div>         ::= <a href="#merge-when-clause" title="merge_when_clause" shape="rect">merge_when_clause</a>+</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#merge-statement" title="merge-statement">merge-statement</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + merge_when_clause +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="261" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#merge-when-matched-clause" xlink:title="merge_when_matched_clause" shape="rect"> + <rect x="43" y="1" width="154" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">merge_when_matched_clause</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#merge-when-not-matched-clause" xlink:title="merge_when_not_matched_clause" shape="rect"> + <rect x="43" y="29" width="174" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">merge_when_not_matched_clause</text></a><path class="line" d="m17 10 h2 m20 0 h4 m154 0 h4 m0 0 h20 m-202 0 h20 m182 0 h20 m-222 0 q10 0 10 10 m202 0 q0 -10 10 -10 m-212 10 v8 m202 0 v-8 m-202 8 q0 10 10 10 m182 0 q10 0 10 -10 m-192 10 h4 m174 0 h4 m23 -28 h-3"/> + <polygon points="251 10 259 6 259 14"/> + <polygon points="251 10 243 6 243 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#merge-when-clause" title="merge_when_clause" shape="rect">merge_when_clause</a></div> + <div>         ::= <a href="#merge-when-matched-clause" title="merge_when_matched_clause" shape="rect">merge_when_matched_clause</a></div> + <div>           | <a href="#merge-when-not-matched-clause" title="merge_when_not_matched_clause" shape="rect">merge_when_not_matched_clause</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#merge-operation-specification" title="merge-operation-specification">merge-operation-specification</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + merge_when_matched_clause +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="551" height="42"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="38" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">WHEN</text> + <rect x="69" y="1" width="52" height="18" class="terminal" rx="4"/> + <text class="terminal" x="73" y="13">MATCHED</text> + <rect x="149" y="22" width="28" height="18" class="terminal" rx="4"/> + <text class="terminal" x="153" y="34">AND</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#search-condition" xlink:title="search_condition" shape="rect"> + <rect x="185" y="22" width="86" height="18" class="nonterminal"/> + <text class="nonterminal" x="189" y="34">search_condition</text></a><rect x="299" y="1" width="32" height="18" class="terminal" rx="4"/> + <text class="terminal" x="303" y="13">THEN</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#merge-update-or-delete-specification" xlink:title="merge_update_or_delete_specification" shape="rect"> + <rect x="339" y="1" width="188" height="18" class="nonterminal"/> + <text class="nonterminal" x="343" y="13">merge_update_or_delete_specification</text></a><path class="line" d="m17 10 h2 m0 0 h4 m38 0 h4 m0 0 h4 m52 0 h4 m20 0 h10 m0 0 h120 m-150 0 h20 m130 0 h20 m-170 0 q10 0 10 10 m150 0 q0 -10 10 -10 m-160 10 v1 m150 0 v-1 m-150 1 q0 10 10 10 m130 0 q10 0 10 -10 m-140 10 h4 m28 0 h4 m0 0 h4 m86 0 h4 m20 -21 h4 m32 0 h4 m0 0 h4 m188 0 h4 m3 0 h-3"/> + <polygon points="541 10 549 6 549 14"/> + <polygon points="541 10 533 6 533 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#merge-when-matched-clause" title="merge_when_matched_clause" shape="rect">merge_when_matched_clause</a></div> + <div>         ::= 'WHEN' 'MATCHED' ( 'AND' <a href="#search-condition" title="search_condition" shape="rect">search_condition</a> )? 'THEN' <a href="#merge-update-or-delete-specification" title="merge_update_or_delete_specification" shape="rect">merge_update_or_delete_specification</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#merge-when-clause" title="merge-when-clause">merge-when-clause</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + merge_update_or_delete_specification +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="225" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#merge-update-specification" xlink:title="merge_update_specification" shape="rect"> + <rect x="43" y="1" width="138" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">merge_update_specification</text></a><rect x="43" y="29" width="40" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="41">DELETE</text> + <path class="line" d="m17 10 h2 m20 0 h4 m138 0 h4 m-166 0 h20 m146 0 h20 m-186 0 q10 0 10 10 m166 0 q0 -10 10 -10 m-176 10 v8 m166 0 v-8 m-166 8 q0 10 10 10 m146 0 q10 0 10 -10 m-156 10 h4 m40 0 h4 m0 0 h98 m23 -28 h-3"/> + <polygon points="215 10 223 6 223 14"/> + <polygon points="215 10 207 6 207 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#merge-update-or-delete-specification" title="merge_update_or_delete_specification" shape="rect">merge_update_or_delete_specification</a></div> + <div>         ::= <a href="#merge-update-specification" title="merge_update_specification" shape="rect">merge_update_specification</a></div> + <div>           | 'DELETE'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#merge-when-matched-clause" title="merge-when-matched-clause">merge-when-matched-clause</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + merge_when_not_matched_clause +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="529" height="42"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="38" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">WHEN</text> + <rect x="69" y="1" width="28" height="18" class="terminal" rx="4"/> + <text class="terminal" x="73" y="13">NOT</text> + <rect x="105" y="1" width="52" height="18" class="terminal" rx="4"/> + <text class="terminal" x="109" y="13">MATCHED</text> + <rect x="185" y="22" width="28" height="18" class="terminal" rx="4"/> + <text class="terminal" x="189" y="34">AND</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#search-condition" xlink:title="search_condition" shape="rect"> + <rect x="221" y="22" width="86" height="18" class="nonterminal"/> + <text class="nonterminal" x="225" y="34">search_condition</text></a><rect x="335" y="1" width="32" height="18" class="terminal" rx="4"/> + <text class="terminal" x="339" y="13">THEN</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#merge-insert-specification" xlink:title="merge_insert_specification" shape="rect"> + <rect x="375" y="1" width="130" height="18" class="nonterminal"/> + <text class="nonterminal" x="379" y="13">merge_insert_specification</text></a><path class="line" d="m17 10 h2 m0 0 h4 m38 0 h4 m0 0 h4 m28 0 h4 m0 0 h4 m52 0 h4 m20 0 h10 m0 0 h120 m-150 0 h20 m130 0 h20 m-170 0 q10 0 10 10 m150 0 q0 -10 10 -10 m-160 10 v1 m150 0 v-1 m-150 1 q0 10 10 10 m130 0 q10 0 10 -10 m-140 10 h4 m28 0 h4 m0 0 h4 m86 0 h4 m20 -21 h4 m32 0 h4 m0 0 h4 m130 0 h4 m3 0 h-3"/> + <polygon points="519 10 527 6 527 14"/> + <polygon points="519 10 511 6 511 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#merge-when-not-matched-clause" title="merge_when_not_matched_clause" shape="rect">merge_when_not_matched_clause</a></div> + <div>         ::= 'WHEN' 'NOT' 'MATCHED' ( 'AND' <a href="#search-condition" title="search_condition" shape="rect">search_condition</a> )? 'THEN' <a href="#merge-insert-specification" title="merge_insert_specification" shape="rect">merge_insert_specification</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#merge-when-clause" title="merge-when-clause">merge-when-clause</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + merge_update_specification +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="205" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="44" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">UPDATE</text> + <rect x="75" y="1" width="24" height="18" class="terminal" rx="4"/> + <text class="terminal" x="79" y="13">SET</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#set-clause-list" xlink:title="set_clause_list" shape="rect"> + <rect x="107" y="1" width="74" height="18" class="nonterminal"/> + <text class="nonterminal" x="111" y="13">set_clause_list</text></a><path class="line" d="m17 10 h2 m0 0 h4 m44 0 h4 m0 0 h4 m24 0 h4 m0 0 h4 m74 0 h4 m3 0 h-3"/> + <polygon points="195 10 203 6 203 14"/> + <polygon points="195 10 187 6 187 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#merge-update-specification" title="merge_update_specification" shape="rect">merge_update_specification</a></div> + <div>         ::= 'UPDATE' 'SET' <a href="#set-clause-list" title="set_clause_list" shape="rect">set_clause_list</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#merge-update-or-delete-specification" title="merge-update-or-delete-specification">merge-update-or-delete-specification</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + merge_insert_specification +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="569" height="42"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="40" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">INSERT</text> + <rect x="91" y="22" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="95" y="34">(</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#insert-column-list" xlink:title="insert_column_list" shape="rect"> + <rect x="111" y="22" width="90" height="18" class="nonterminal"/> + <text class="nonterminal" x="115" y="34">insert_column_list</text></a><rect x="209" y="22" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="213" y="34">)</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#override-clause" xlink:title="override_clause" shape="rect"> + <rect x="269" y="22" width="80" height="18" class="nonterminal"/> + <text class="nonterminal" x="273" y="34">override_clause</text></a><rect x="377" y="1" width="42" height="18" class="terminal" rx="4"/> + <text class="terminal" x="381" y="13">VALUES</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#merge-insert-value-list" xlink:title="merge_insert_value_list" shape="rect"> + <rect x="427" y="1" width="118" height="18" class="nonterminal"/> + <text class="nonterminal" x="431" y="13">merge_insert_value_list</text></a><path class="line" d="m17 10 h2 m0 0 h4 m40 0 h4 m20 0 h10 m0 0 h128 m-158 0 h20 m138 0 h20 m-178 0 q10 0 10 10 m158 0 q0 -10 10 -10 m-168 10 v1 m158 0 v-1 m-158 1 q0 10 10 10 m138 0 q10 0 10 -10 m-148 10 h4 m12 0 h4 m0 0 h4 m90 0 h4 m0 0 h4 m12 0 h4 m40 -21 h10 m0 0 h78 m-108 0 h20 m88 0 h20 m-128 0 q10 0 10 10 m108 0 q0 -10 10 -10 m-118 10 v1 m108 0 v-1 m-108 1 q0 10 10 10 m88 0 q10 0 10 -10 m-98 10 h4 m80 0 h4 m20 -21 h4 m42 0 h4 m0 0 h4 m118 0 h4 m3 0 h-3"/> + <polygon points="559 10 567 6 567 14"/> + <polygon points="559 10 551 6 551 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#merge-insert-specification" title="merge_insert_specification" shape="rect">merge_insert_specification</a></div> + <div>         ::= 'INSERT' ( '(' <a href="#insert-column-list" title="insert_column_list" shape="rect">insert_column_list</a> ')' )? <a href="#override-clause" title="override_clause" shape="rect">override_clause</a>? 'VALUES' <a href="#merge-insert-value-list" title="merge_insert_value_list" shape="rect">merge_insert_value_list</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#merge-when-not-matched-clause" title="merge-when-not-matched-clause">merge-when-not-matched-clause</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + merge_insert_value_list +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="271" height="49"> + <polygon points="9 38 1 34 1 42"/> + <polygon points="17 38 9 34 9 42"/> + <rect x="23" y="29" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="41">(</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#merge-insert-value-element" xlink:title="merge_insert_value_element" shape="rect"> + <rect x="63" y="29" width="144" height="18" class="nonterminal"/> + <text class="nonterminal" x="67" y="41">merge_insert_value_element</text></a><rect x="63" y="1" width="8" height="18" class="terminal" rx="4"/> + <text class="terminal" x="67" y="13">,</text> + <rect x="235" y="29" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="239" y="41">)</text> + <path class="line" d="m17 38 h2 m0 0 h4 m12 0 h4 m20 0 h4 m144 0 h4 m-172 0 l20 0 m-1 0 q-9 0 -9 -10 l0 -8 q0 -10 10 -10 m152 28 l20 0 m-20 0 q10 0 10 -10 l0 -8 q0 -10 -10 -10 m-152 0 h4 m8 0 h4 m0 0 h136 m20 28 h4 m12 0 h4 m3 0 h-3"/> + <polygon points="261 38 269 34 269 42"/> + <polygon points="261 38 253 34 253 42"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#merge-insert-value-list" title="merge_insert_value_list" shape="rect">merge_insert_value_list</a></div> + <div>         ::= '(' <a href="#merge-insert-value-element" title="merge_insert_value_element" shape="rect">merge_insert_value_element</a> ( ',' <a href="#merge-insert-value-element" title="merge_insert_value_element" shape="rect">merge_insert_value_element</a> )* ')'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#merge-insert-specification" title="merge-insert-specification">merge-insert-specification</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + merge_insert_value_element +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="271" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#value-expression" xlink:title="value_expression" shape="rect"> + <rect x="43" y="1" width="90" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">value_expression</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#contextually-typed-value-specification" xlink:title="contextually_typed_value_specification" shape="rect"> + <rect x="43" y="29" width="184" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">contextually_typed_value_specification</text></a><path class="line" d="m17 10 h2 m20 0 h4 m90 0 h4 m0 0 h94 m-212 0 h20 m192 0 h20 m-232 0 q10 0 10 10 m212 0 q0 -10 10 -10 m-222 10 v8 m212 0 v-8 m-212 8 q0 10 10 10 m192 0 q10 0 10 -10 m-202 10 h4 m184 0 h4 m23 -28 h-3"/> + <polygon points="261 10 269 6 269 14"/> + <polygon points="261 10 253 6 253 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#merge-insert-value-element" title="merge_insert_value_element" shape="rect">merge_insert_value_element</a></div> + <div>         ::= <a href="#value-expression" title="value_expression" shape="rect">value_expression</a></div> + <div>           | <a href="#contextually-typed-value-specification" title="contextually_typed_value_specification" shape="rect">contextually_typed_value_specification</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#merge-insert-value-list" title="merge-insert-value-list">merge-insert-value-list</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + update_statement_positioned +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="653" height="63"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="44" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">UPDATE</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#target-table" xlink:title="target_table" shape="rect"> + <rect x="75" y="1" width="64" height="18" class="nonterminal"/> + <text class="nonterminal" x="79" y="13">target_table</text></a><rect x="187" y="43" width="20" height="18" class="terminal" rx="4"/> + <text class="terminal" x="191" y="55">AS</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#identifier" xlink:title="identifier" shape="rect"> + <rect x="235" y="22" width="46" height="18" class="nonterminal"/> + <text class="nonterminal" x="239" y="34">identifier</text></a><rect x="309" y="1" width="24" height="18" class="terminal" rx="4"/> + <text class="terminal" x="313" y="13">SET</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#set-clause-list" xlink:title="set_clause_list" shape="rect"> + <rect x="341" y="1" width="74" height="18" class="nonterminal"/> + <text class="nonterminal" x="345" y="13">set_clause_list</text></a><rect x="423" y="1" width="42" height="18" class="terminal" rx="4"/> + <text class="terminal" x="427" y="13">WHERE</text> + <rect x="473" y="1" width="50" height="18" class="terminal" rx="4"/> + <text class="terminal" x="477" y="13">CURRENT</text> + <rect x="531" y="1" width="20" height="18" class="terminal" rx="4"/> + <text class="terminal" x="535" y="13">OF</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#cursor-name" xlink:title="cursor_name" shape="rect"> + <rect x="559" y="1" width="70" height="18" class="nonterminal"/> + <text class="nonterminal" x="563" y="13">cursor_name</text></a><path class="line" d="m17 10 h2 m0 0 h4 m44 0 h4 m0 0 h4 m64 0 h4 m20 0 h10 m0 0 h112 m-142 0 h20 m122 0 h20 m-162 0 q10 0 10 10 m142 0 q0 -10 10 -10 m-152 10 v1 m142 0 v-1 m-142 1 q0 10 10 10 m122 0 q10 0 10 -10 m-112 10 h10 m0 0 h18 m-48 0 h20 m28 0 h20 m-68 0 q10 0 10 10 m48 0 q0 -10 10 -10 m-58 10 v1 m48 0 v-1 m-48 1 q0 10 10 10 m28 0 q10 0 10 -10 m-38 10 h4 m20 0 h4 m20 -21 h4 m46 0 h4 m20 -21 h4 m24 0 h4 m0 0 h4 m74 0 h4 m0 0 h4 m42 0 h4 m0 0 h4 m50 0 h4 m0 0 h4 m20 0 h4 m0 0 h4 m70 0 h4 m3 0 h-3"/> + <polygon points="643 10 651 6 651 14"/> + <polygon points="643 10 635 6 635 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#update-statement-positioned" title="update_statement_positioned" shape="rect">update_statement_positioned</a></div> + <div>         ::= 'UPDATE' <a href="#target-table" title="target_table" shape="rect">target_table</a> ( 'AS'? <a href="#identifier" title="identifier" shape="rect">identifier</a> )? 'SET' <a href="#set-clause-list" title="set_clause_list" shape="rect">set_clause_list</a> 'WHERE' 'CURRENT' 'OF' <a href="#cursor-name" title="cursor_name" shape="rect">cursor_name</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#sql-data-change-statement" title="sql-data-change-statement">sql-data-change-statement</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + update_statement_searched +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="623" height="63"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="44" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">UPDATE</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#target-table" xlink:title="target_table" shape="rect"> + <rect x="75" y="1" width="64" height="18" class="nonterminal"/> + <text class="nonterminal" x="79" y="13">target_table</text></a><rect x="187" y="43" width="20" height="18" class="terminal" rx="4"/> + <text class="terminal" x="191" y="55">AS</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#identifier" xlink:title="identifier" shape="rect"> + <rect x="235" y="22" width="46" height="18" class="nonterminal"/> + <text class="nonterminal" x="239" y="34">identifier</text></a><rect x="309" y="1" width="24" height="18" class="terminal" rx="4"/> + <text class="terminal" x="313" y="13">SET</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#set-clause-list" xlink:title="set_clause_list" shape="rect"> + <rect x="341" y="1" width="74" height="18" class="nonterminal"/> + <text class="nonterminal" x="345" y="13">set_clause_list</text></a><rect x="443" y="22" width="42" height="18" class="terminal" rx="4"/> + <text class="terminal" x="447" y="34">WHERE</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#search-condition" xlink:title="search_condition" shape="rect"> + <rect x="493" y="22" width="86" height="18" class="nonterminal"/> + <text class="nonterminal" x="497" y="34">search_condition</text></a><path class="line" d="m17 10 h2 m0 0 h4 m44 0 h4 m0 0 h4 m64 0 h4 m20 0 h10 m0 0 h112 m-142 0 h20 m122 0 h20 m-162 0 q10 0 10 10 m142 0 q0 -10 10 -10 m-152 10 v1 m142 0 v-1 m-142 1 q0 10 10 10 m122 0 q10 0 10 -10 m-112 10 h10 m0 0 h18 m-48 0 h20 m28 0 h20 m-68 0 q10 0 10 10 m48 0 q0 -10 10 -10 m-58 10 v1 m48 0 v-1 m-48 1 q0 10 10 10 m28 0 q10 0 10 -10 m-38 10 h4 m20 0 h4 m20 -21 h4 m46 0 h4 m20 -21 h4 m24 0 h4 m0 0 h4 m74 0 h4 m20 0 h10 m0 0 h134 m-164 0 h20 m144 0 h20 m-184 0 q10 0 10 10 m164 0 q0 -10 10 -10 m-174 10 v1 m164 0 v-1 m-164 1 q0 10 10 10 m144 0 q10 0 10 -10 m-154 10 h4 m42 0 h4 m0 0 h4 m86 0 h4 m23 -21 h-3"/> + <polygon points="613 10 621 6 621 14"/> + <polygon points="613 10 605 6 605 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#update-statement-searched" title="update_statement_searched" shape="rect">update_statement_searched</a></div> + <div>         ::= 'UPDATE' <a href="#target-table" title="target_table" shape="rect">target_table</a> ( 'AS'? <a href="#identifier" title="identifier" shape="rect">identifier</a> )? 'SET' <a href="#set-clause-list" title="set_clause_list" shape="rect">set_clause_list</a> ( 'WHERE' <a href="#search-condition" title="search_condition" shape="rect">search_condition</a> )?</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#sql-data-change-statement" title="sql-data-change-statement">sql-data-change-statement</a></li><li><a href="#data-change-statement" title="data-change-statement">data-change-statement</a></li><li><a href="#direct-sql-data-statement" title="direct-sql-data-statement">direct-sql-data-statement</a></li><li><a href="#preparable-sql-data-statement" title="preparable-sql-data-statement">preparable-sql-data-statement</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + set_clause_list +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="145" height="49"> + <polygon points="9 38 1 34 1 42"/> + <polygon points="17 38 9 34 9 42"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#set-clause" xlink:title="set_clause" shape="rect"> + <rect x="43" y="29" width="58" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">set_clause</text></a><rect x="43" y="1" width="8" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="13">,</text> + <path class="line" d="m17 38 h2 m20 0 h4 m58 0 h4 m-86 0 l20 0 m-1 0 q-9 0 -9 -10 l0 -8 q0 -10 10 -10 m66 28 l20 0 m-20 0 q10 0 10 -10 l0 -8 q0 -10 -10 -10 m-66 0 h4 m8 0 h4 m0 0 h50 m23 28 h-3"/> + <polygon points="135 38 143 34 143 42"/> + <polygon points="135 38 127 34 127 42"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#set-clause-list" title="set_clause_list" shape="rect">set_clause_list</a></div> + <div>         ::= <a href="#set-clause" title="set_clause" shape="rect">set_clause</a> ( ',' <a href="#set-clause" title="set_clause" shape="rect">set_clause</a> )*</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#dynamic-update-statement-positioned" title="dynamic-update-statement-positioned">dynamic-update-statement-positioned</a></li><li><a href="#merge-update-specification" title="merge-update-specification">merge-update-specification</a></li><li><a href="#preparable-dynamic-update-statement-positioned" title="preparable-dynamic-update-statement-positioned">preparable-dynamic-update-statement-positioned</a></li><li><a href="#update-statement-positioned" title="update-statement-positioned">update-statement-positioned</a></li><li><a href="#update-statement-searched" title="update-statement-searched">update-statement-searched</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + set_clause +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="251" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#multiple-column-assignment" xlink:title="multiple_column_assignment" shape="rect"> + <rect x="43" y="1" width="144" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">multiple_column_assignment</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#set-target" xlink:title="set_target" shape="rect"> + <rect x="43" y="29" width="56" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">set_target</text></a><rect x="107" y="29" width="14" height="18" class="terminal" rx="4"/> + <text class="terminal" x="111" y="41">=</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#update-source" xlink:title="update_source" shape="rect"> + <rect x="129" y="29" width="78" height="18" class="nonterminal"/> + <text class="nonterminal" x="133" y="41">update_source</text></a><path class="line" d="m17 10 h2 m20 0 h4 m144 0 h4 m0 0 h20 m-192 0 h20 m172 0 h20 m-212 0 q10 0 10 10 m192 0 q0 -10 10 -10 m-202 10 v8 m192 0 v-8 m-192 8 q0 10 10 10 m172 0 q10 0 10 -10 m-182 10 h4 m56 0 h4 m0 0 h4 m14 0 h4 m0 0 h4 m78 0 h4 m23 -28 h-3"/> + <polygon points="241 10 249 6 249 14"/> + <polygon points="241 10 233 6 233 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#set-clause" title="set_clause" shape="rect">set_clause</a></div> + <div>         ::= <a href="#multiple-column-assignment" title="multiple_column_assignment" shape="rect">multiple_column_assignment</a></div> + <div>           | <a href="#set-target" title="set_target" shape="rect">set_target</a> '=' <a href="#update-source" title="update_source" shape="rect">update_source</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#set-clause-list" title="set-clause-list">set-clause-list</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + set_target +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="191" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#update-target" xlink:title="update_target" shape="rect"> + <rect x="43" y="1" width="76" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">update_target</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#mutated-set-clause" xlink:title="mutated_set_clause" shape="rect"> + <rect x="43" y="29" width="104" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">mutated_set_clause</text></a><path class="line" d="m17 10 h2 m20 0 h4 m76 0 h4 m0 0 h28 m-132 0 h20 m112 0 h20 m-152 0 q10 0 10 10 m132 0 q0 -10 10 -10 m-142 10 v8 m132 0 v-8 m-132 8 q0 10 10 10 m112 0 q10 0 10 -10 m-122 10 h4 m104 0 h4 m23 -28 h-3"/> + <polygon points="181 10 189 6 189 14"/> + <polygon points="181 10 173 6 173 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#set-target" title="set_target" shape="rect">set_target</a></div> + <div>         ::= <a href="#update-target" title="update_target" shape="rect">update_target</a></div> + <div>           | <a href="#mutated-set-clause" title="mutated_set_clause" shape="rect">mutated_set_clause</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#set-clause" title="set-clause">set-clause</a></li><li><a href="#set-target-list" title="set-target-list">set-target-list</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + multiple_column_assignment +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="225" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#set-target-list" xlink:title="set_target_list" shape="rect"> + <rect x="23" y="1" width="74" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">set_target_list</text></a><rect x="105" y="1" width="14" height="18" class="terminal" rx="4"/> + <text class="terminal" x="109" y="13">=</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#assigned-row" xlink:title="assigned_row" shape="rect"> + <rect x="127" y="1" width="74" height="18" class="nonterminal"/> + <text class="nonterminal" x="131" y="13">assigned_row</text></a><path class="line" d="m17 10 h2 m0 0 h4 m74 0 h4 m0 0 h4 m14 0 h4 m0 0 h4 m74 0 h4 m3 0 h-3"/> + <polygon points="215 10 223 6 223 14"/> + <polygon points="215 10 207 6 207 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#multiple-column-assignment" title="multiple_column_assignment" shape="rect">multiple_column_assignment</a></div> + <div>         ::= <a href="#set-target-list" title="set_target_list" shape="rect">set_target_list</a> '=' <a href="#assigned-row" title="assigned_row" shape="rect">assigned_row</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#set-clause" title="set-clause">set-clause</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + set_target_list +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="183" height="49"> + <polygon points="9 38 1 34 1 42"/> + <polygon points="17 38 9 34 9 42"/> + <rect x="23" y="29" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="41">(</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#set-target" xlink:title="set_target" shape="rect"> + <rect x="63" y="29" width="56" height="18" class="nonterminal"/> + <text class="nonterminal" x="67" y="41">set_target</text></a><rect x="63" y="1" width="8" height="18" class="terminal" rx="4"/> + <text class="terminal" x="67" y="13">,</text> + <rect x="147" y="29" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="151" y="41">)</text> + <path class="line" d="m17 38 h2 m0 0 h4 m12 0 h4 m20 0 h4 m56 0 h4 m-84 0 l20 0 m-1 0 q-9 0 -9 -10 l0 -8 q0 -10 10 -10 m64 28 l20 0 m-20 0 q10 0 10 -10 l0 -8 q0 -10 -10 -10 m-64 0 h4 m8 0 h4 m0 0 h48 m20 28 h4 m12 0 h4 m3 0 h-3"/> + <polygon points="173 38 181 34 181 42"/> + <polygon points="173 38 165 34 165 42"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#set-target-list" title="set_target_list" shape="rect">set_target_list</a></div> + <div>         ::= '(' <a href="#set-target" title="set_target" shape="rect">set_target</a> ( ',' <a href="#set-target" title="set_target" shape="rect">set_target</a> )* ')'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#multiple-column-assignment" title="multiple-column-assignment">multiple-column-assignment</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + assigned_row +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="251" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#contextually-typed-row-value-expression" xlink:title="contextually_typed_row_value_expression" shape="rect"> + <rect x="23" y="1" width="204" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">contextually_typed_row_value_expression</text></a><path class="line" d="m17 10 h2 m0 0 h4 m204 0 h4 m3 0 h-3"/> + <polygon points="241 10 249 6 249 14"/> + <polygon points="241 10 233 6 233 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#assigned-row" title="assigned_row" shape="rect">assigned_row</a></div> + <div>         ::= <a href="#contextually-typed-row-value-expression" title="contextually_typed_row_value_expression" shape="rect">contextually_typed_row_value_expression</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#multiple-column-assignment" title="multiple-column-assignment">multiple-column-assignment</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + update_target +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="527" height="42"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#identifier" xlink:title="identifier" shape="rect"> + <rect x="23" y="1" width="46" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">identifier</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#left-bracket-or-trigraph" xlink:title="left_bracket_or_trigraph" shape="rect"> + <rect x="97" y="22" width="118" height="18" class="nonterminal"/> + <text class="nonterminal" x="101" y="34">left_bracket_or_trigraph</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#simple-value-specification" xlink:title="simple_value_specification" shape="rect"> + <rect x="223" y="22" width="128" height="18" class="nonterminal"/> + <text class="nonterminal" x="227" y="34">simple_value_specification</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#right-bracket-or-trigraph" xlink:title="right_bracket_or_trigraph" shape="rect"> + <rect x="359" y="22" width="124" height="18" class="nonterminal"/> + <text class="nonterminal" x="363" y="34">right_bracket_or_trigraph</text></a><path class="line" d="m17 10 h2 m0 0 h4 m46 0 h4 m20 0 h10 m0 0 h384 m-414 0 h20 m394 0 h20 m-434 0 q10 0 10 10 m414 0 q0 -10 10 -10 m-424 10 v1 m414 0 v-1 m-414 1 q0 10 10 10 m394 0 q10 0 10 -10 m-404 10 h4 m118 0 h4 m0 0 h4 m128 0 h4 m0 0 h4 m124 0 h4 m23 -21 h-3"/> + <polygon points="517 10 525 6 525 14"/> + <polygon points="517 10 509 6 509 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#update-target" title="update_target" shape="rect">update_target</a></div> + <div>         ::= <a href="#identifier" title="identifier" shape="rect">identifier</a> ( <a href="#left-bracket-or-trigraph" title="left_bracket_or_trigraph" shape="rect">left_bracket_or_trigraph</a> <a href="#simple-value-specification" title="simple_value_specification" shape="rect">simple_value_specification</a> <a href="#right-bracket-or-trigraph" title="right_bracket_or_trigraph" shape="rect">right_bracket_or_trigraph</a> )?</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#set-target" title="set-target">set-target</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + mutated_set_clause +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="203" height="33"> + <polygon points="9 22 1 18 1 26"/> + <polygon points="17 22 9 18 9 26"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#identifier" xlink:title="identifier" shape="rect"> + <rect x="23" y="13" width="46" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="25">identifier</text></a><rect x="97" y="13" width="8" height="18" class="terminal" rx="4"/> + <text class="terminal" x="101" y="25">.</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#identifier" xlink:title="identifier" shape="rect"> + <rect x="113" y="13" width="46" height="18" class="nonterminal"/> + <text class="nonterminal" x="117" y="25">identifier</text></a><path class="line" d="m17 22 h2 m0 0 h4 m46 0 h4 m20 0 h4 m8 0 h4 m0 0 h4 m46 0 h4 m-90 0 l20 0 m-1 0 q-9 0 -9 -10 l0 -1 q0 -10 10 -10 m70 21 l20 0 m-20 0 q10 0 10 -10 l0 -1 q0 -10 -10 -10 m-70 0 h10 m0 0 h60 m23 21 h-3"/> + <polygon points="193 22 201 18 201 26"/> + <polygon points="193 22 185 18 185 26"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#mutated-set-clause" title="mutated_set_clause" shape="rect">mutated_set_clause</a></div> + <div>         ::= <a href="#identifier" title="identifier" shape="rect">identifier</a> ( '.' <a href="#identifier" title="identifier" shape="rect">identifier</a> )+</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#mutated-target" title="mutated-target">mutated-target</a></li><li><a href="#set-target" title="set-target">set-target</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + mutated_target +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="191" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#identifier" xlink:title="identifier" shape="rect"> + <rect x="43" y="1" width="46" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">identifier</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#mutated-set-clause" xlink:title="mutated_set_clause" shape="rect"> + <rect x="43" y="29" width="104" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">mutated_set_clause</text></a><path class="line" d="m17 10 h2 m20 0 h4 m46 0 h4 m0 0 h58 m-132 0 h20 m112 0 h20 m-152 0 q10 0 10 10 m132 0 q0 -10 10 -10 m-142 10 v8 m132 0 v-8 m-132 8 q0 10 10 10 m112 0 q10 0 10 -10 m-122 10 h4 m104 0 h4 m23 -28 h-3"/> + <polygon points="181 10 189 6 189 14"/> + <polygon points="181 10 173 6 173 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#mutated-target" title="mutated_target" shape="rect">mutated_target</a></div> + <div>         ::= <a href="#identifier" title="identifier" shape="rect">identifier</a></div> + <div>           | <a href="#mutated-set-clause" title="mutated_set_clause" shape="rect">mutated_set_clause</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Not referenced by any. + </div></td></tr></tbody></table> + + +====================================================================================================================== + update_source +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="271" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#value-expression" xlink:title="value_expression" shape="rect"> + <rect x="43" y="1" width="90" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">value_expression</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#contextually-typed-value-specification" xlink:title="contextually_typed_value_specification" shape="rect"> + <rect x="43" y="29" width="184" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">contextually_typed_value_specification</text></a><path class="line" d="m17 10 h2 m20 0 h4 m90 0 h4 m0 0 h94 m-212 0 h20 m192 0 h20 m-232 0 q10 0 10 10 m212 0 q0 -10 10 -10 m-222 10 v8 m212 0 v-8 m-212 8 q0 10 10 10 m192 0 q10 0 10 -10 m-202 10 h4 m184 0 h4 m23 -28 h-3"/> + <polygon points="261 10 269 6 269 14"/> + <polygon points="261 10 253 6 253 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#update-source" title="update_source" shape="rect">update_source</a></div> + <div>         ::= <a href="#value-expression" title="value_expression" shape="rect">value_expression</a></div> + <div>           | <a href="#contextually-typed-value-specification" title="contextually_typed_value_specification" shape="rect">contextually_typed_value_specification</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#set-clause" title="set-clause">set-clause</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + temporary_table_declaration +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="717" height="42"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="48" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">DECLARE</text> + <rect x="79" y="1" width="38" height="18" class="terminal" rx="4"/> + <text class="terminal" x="83" y="13">LOCAL</text> + <rect x="125" y="1" width="66" height="18" class="terminal" rx="4"/> + <text class="terminal" x="129" y="13">TEMPORARY</text> + <rect x="199" y="1" width="36" height="18" class="terminal" rx="4"/> + <text class="terminal" x="203" y="13">TABLE</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#table-name" xlink:title="table_name" shape="rect"> + <rect x="243" y="1" width="66" height="18" class="nonterminal"/> + <text class="nonterminal" x="247" y="13">table_name</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#table-element-list" xlink:title="table_element_list" shape="rect"> + <rect x="317" y="1" width="92" height="18" class="nonterminal"/> + <text class="nonterminal" x="321" y="13">table_element_list</text></a><rect x="437" y="22" width="22" height="18" class="terminal" rx="4"/> + <text class="terminal" x="441" y="34">ON</text> + <rect x="467" y="22" width="48" height="18" class="terminal" rx="4"/> + <text class="terminal" x="471" y="34">COMMIT</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#table-commit-action" xlink:title="table_commit_action" shape="rect"> + <rect x="523" y="22" width="104" height="18" class="nonterminal"/> + <text class="nonterminal" x="527" y="34">table_commit_action</text></a><rect x="635" y="22" width="38" height="18" class="terminal" rx="4"/> + <text class="terminal" x="639" y="34">ROWS</text> + <path class="line" d="m17 10 h2 m0 0 h4 m48 0 h4 m0 0 h4 m38 0 h4 m0 0 h4 m66 0 h4 m0 0 h4 m36 0 h4 m0 0 h4 m66 0 h4 m0 0 h4 m92 0 h4 m20 0 h10 m0 0 h234 m-264 0 h20 m244 0 h20 m-284 0 q10 0 10 10 m264 0 q0 -10 10 -10 m-274 10 v1 m264 0 v-1 m-264 1 q0 10 10 10 m244 0 q10 0 10 -10 m-254 10 h4 m22 0 h4 m0 0 h4 m48 0 h4 m0 0 h4 m104 0 h4 m0 0 h4 m38 0 h4 m23 -21 h-3"/> + <polygon points="707 10 715 6 715 14"/> + <polygon points="707 10 699 6 699 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#temporary-table-declaration" title="temporary_table_declaration" shape="rect">temporary_table_declaration</a></div> + <div>         ::= 'DECLARE' 'LOCAL' 'TEMPORARY' 'TABLE' <a href="#table-name" title="table_name" shape="rect">table_name</a> <a href="#table-element-list" title="table_element_list" shape="rect">table_element_list</a> ( 'ON' 'COMMIT' <a href="#table-commit-action" title="table_commit_action" shape="rect">table_commit_action</a> 'ROWS' )?</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#sql-client-module-definition" title="sql-client-module-definition">sql-client-module-definition</a></li><li><a href="#direct-sql-data-statement" title="direct-sql-data-statement">direct-sql-data-statement</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + call_statement +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="177" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="30" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">CALL</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#routine-invocation" xlink:title="routine_invocation" shape="rect"> + <rect x="61" y="1" width="92" height="18" class="nonterminal"/> + <text class="nonterminal" x="65" y="13">routine_invocation</text></a><path class="line" d="m17 10 h2 m0 0 h4 m30 0 h4 m0 0 h4 m92 0 h4 m3 0 h-3"/> + <polygon points="167 10 175 6 175 14"/> + <polygon points="167 10 159 6 159 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#call-statement" title="call_statement" shape="rect">call_statement</a></div> + <div>         ::= 'CALL' <a href="#routine-invocation" title="routine_invocation" shape="rect">routine_invocation</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#sql-control-statement" title="sql-control-statement">sql-control-statement</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + return_statement +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="167" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="44" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">RETURN</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#return-value" xlink:title="return_value" shape="rect"> + <rect x="75" y="1" width="68" height="18" class="nonterminal"/> + <text class="nonterminal" x="79" y="13">return_value</text></a><path class="line" d="m17 10 h2 m0 0 h4 m44 0 h4 m0 0 h4 m68 0 h4 m3 0 h-3"/> + <polygon points="157 10 165 6 165 14"/> + <polygon points="157 10 149 6 149 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#return-statement" title="return_statement" shape="rect">return_statement</a></div> + <div>         ::= 'RETURN' <a href="#return-value" title="return_value" shape="rect">return_value</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#sql-control-statement" title="sql-control-statement">sql-control-statement</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + return_value +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="177" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#value-expression" xlink:title="value_expression" shape="rect"> + <rect x="43" y="1" width="90" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">value_expression</text></a><rect x="43" y="29" width="32" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="41">NULL</text> + <path class="line" d="m17 10 h2 m20 0 h4 m90 0 h4 m-118 0 h20 m98 0 h20 m-138 0 q10 0 10 10 m118 0 q0 -10 10 -10 m-128 10 v8 m118 0 v-8 m-118 8 q0 10 10 10 m98 0 q10 0 10 -10 m-108 10 h4 m32 0 h4 m0 0 h58 m23 -28 h-3"/> + <polygon points="167 10 175 6 175 14"/> + <polygon points="167 10 159 6 159 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#return-value" title="return_value" shape="rect">return_value</a></div> + <div>         ::= <a href="#value-expression" title="value_expression" shape="rect">value_expression</a></div> + <div>           | 'NULL'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#return-statement" title="return-statement">return-statement</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + start_transaction_statement +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="339" height="42"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="36" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">START</text> + <rect x="67" y="1" width="74" height="18" class="terminal" rx="4"/> + <text class="terminal" x="71" y="13">TRANSACTION</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#transaction-characteristics" xlink:title="transaction_characteristics" shape="rect"> + <rect x="169" y="22" width="126" height="18" class="nonterminal"/> + <text class="nonterminal" x="173" y="34">transaction_characteristics</text></a><path class="line" d="m17 10 h2 m0 0 h4 m36 0 h4 m0 0 h4 m74 0 h4 m20 0 h10 m0 0 h124 m-154 0 h20 m134 0 h20 m-174 0 q10 0 10 10 m154 0 q0 -10 10 -10 m-164 10 v1 m154 0 v-1 m-154 1 q0 10 10 10 m134 0 q10 0 10 -10 m-144 10 h4 m126 0 h4 m23 -21 h-3"/> + <polygon points="329 10 337 6 337 14"/> + <polygon points="329 10 321 6 321 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#start-transaction-statement" title="start_transaction_statement" shape="rect">start_transaction_statement</a></div> + <div>         ::= 'START' 'TRANSACTION' <a href="#transaction-characteristics" title="transaction_characteristics" shape="rect">transaction_characteristics</a>?</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#sql-transaction-statement" title="sql-transaction-statement">sql-transaction-statement</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + set_transaction_statement +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="413" height="42"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="24" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">SET</text> + <rect x="75" y="22" width="38" height="18" class="terminal" rx="4"/> + <text class="terminal" x="79" y="34">LOCAL</text> + <rect x="141" y="1" width="74" height="18" class="terminal" rx="4"/> + <text class="terminal" x="145" y="13">TRANSACTION</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#transaction-characteristics" xlink:title="transaction_characteristics" shape="rect"> + <rect x="243" y="22" width="126" height="18" class="nonterminal"/> + <text class="nonterminal" x="247" y="34">transaction_characteristics</text></a><path class="line" d="m17 10 h2 m0 0 h4 m24 0 h4 m20 0 h10 m0 0 h36 m-66 0 h20 m46 0 h20 m-86 0 q10 0 10 10 m66 0 q0 -10 10 -10 m-76 10 v1 m66 0 v-1 m-66 1 q0 10 10 10 m46 0 q10 0 10 -10 m-56 10 h4 m38 0 h4 m20 -21 h4 m74 0 h4 m20 0 h10 m0 0 h124 m-154 0 h20 m134 0 h20 m-174 0 q10 0 10 10 m154 0 q0 -10 10 -10 m-164 10 v1 m154 0 v-1 m-154 1 q0 10 10 10 m134 0 q10 0 10 -10 m-144 10 h4 m126 0 h4 m23 -21 h-3"/> + <polygon points="403 10 411 6 411 14"/> + <polygon points="403 10 395 6 395 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#set-transaction-statement" title="set_transaction_statement" shape="rect">set_transaction_statement</a></div> + <div>         ::= 'SET' 'LOCAL'? 'TRANSACTION' <a href="#transaction-characteristics" title="transaction_characteristics" shape="rect">transaction_characteristics</a>?</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#sql-transaction-statement" title="sql-transaction-statement">sql-transaction-statement</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + transaction_characteristics +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="179" height="49"> + <polygon points="9 38 1 34 1 42"/> + <polygon points="17 38 9 34 9 42"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#transaction-mode" xlink:title="transaction_mode" shape="rect"> + <rect x="43" y="29" width="92" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">transaction_mode</text></a><rect x="43" y="1" width="8" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="13">,</text> + <path class="line" d="m17 38 h2 m20 0 h4 m92 0 h4 m-120 0 l20 0 m-1 0 q-9 0 -9 -10 l0 -8 q0 -10 10 -10 m100 28 l20 0 m-20 0 q10 0 10 -10 l0 -8 q0 -10 -10 -10 m-100 0 h4 m8 0 h4 m0 0 h84 m23 28 h-3"/> + <polygon points="169 38 177 34 177 42"/> + <polygon points="169 38 161 34 161 42"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#transaction-characteristics" title="transaction_characteristics" shape="rect">transaction_characteristics</a></div> + <div>         ::= <a href="#transaction-mode" title="transaction_mode" shape="rect">transaction_mode</a> ( ',' <a href="#transaction-mode" title="transaction_mode" shape="rect">transaction_mode</a> )*</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#set-transaction-statement" title="set-transaction-statement">set-transaction-statement</a></li><li><a href="#start-transaction-statement" title="start-transaction-statement">start-transaction-statement</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + transaction_mode +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="217" height="77"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#isolation-level" xlink:title="isolation_level" shape="rect"> + <rect x="43" y="1" width="72" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">isolation_level</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#transaction-access-mode" xlink:title="transaction_access_mode" shape="rect"> + <rect x="43" y="29" width="130" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">transaction_access_mode</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#diagnostics-size" xlink:title="diagnostics_size" shape="rect"> + <rect x="43" y="57" width="82" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="69">diagnostics_size</text></a><path class="line" d="m17 10 h2 m20 0 h4 m72 0 h4 m0 0 h58 m-158 0 h20 m138 0 h20 m-178 0 q10 0 10 10 m158 0 q0 -10 10 -10 m-168 10 v8 m158 0 v-8 m-158 8 q0 10 10 10 m138 0 q10 0 10 -10 m-148 10 h4 m130 0 h4 m-148 -10 v20 m158 0 v-20 m-158 20 v8 m158 0 v-8 m-158 8 q0 10 10 10 m138 0 q10 0 10 -10 m-148 10 h4 m82 0 h4 m0 0 h48 m23 -56 h-3"/> + <polygon points="207 10 215 6 215 14"/> + <polygon points="207 10 199 6 199 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#transaction-mode" title="transaction_mode" shape="rect">transaction_mode</a></div> + <div>         ::= <a href="#isolation-level" title="isolation_level" shape="rect">isolation_level</a></div> + <div>           | <a href="#transaction-access-mode" title="transaction_access_mode" shape="rect">transaction_access_mode</a></div> + <div>           | <a href="#diagnostics-size" title="diagnostics_size" shape="rect">diagnostics_size</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#session-transaction-characteristics" title="session-transaction-characteristics">session-transaction-characteristics</a></li><li><a href="#transaction-characteristics" title="transaction-characteristics">transaction-characteristics</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + transaction_access_mode +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="165" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="32" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">READ</text> + <rect x="83" y="1" width="34" height="18" class="terminal" rx="4"/> + <text class="terminal" x="87" y="13">ONLY</text> + <rect x="83" y="29" width="38" height="18" class="terminal" rx="4"/> + <text class="terminal" x="87" y="41">WRITE</text> + <path class="line" d="m17 10 h2 m0 0 h4 m32 0 h4 m20 0 h4 m34 0 h4 m0 0 h4 m-66 0 h20 m46 0 h20 m-86 0 q10 0 10 10 m66 0 q0 -10 10 -10 m-76 10 v8 m66 0 v-8 m-66 8 q0 10 10 10 m46 0 q10 0 10 -10 m-56 10 h4 m38 0 h4 m23 -28 h-3"/> + <polygon points="155 10 163 6 163 14"/> + <polygon points="155 10 147 6 147 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#transaction-access-mode" title="transaction_access_mode" shape="rect">transaction_access_mode</a></div> + <div>         ::= 'READ' ( 'ONLY' | 'WRITE' )</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#transaction-mode" title="transaction-mode">transaction-mode</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + isolation_level +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="243" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="60" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">ISOLATION</text> + <rect x="91" y="1" width="34" height="18" class="terminal" rx="4"/> + <text class="terminal" x="95" y="13">LEVEL</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#level-of-isolation" xlink:title="level_of_isolation" shape="rect"> + <rect x="133" y="1" width="86" height="18" class="nonterminal"/> + <text class="nonterminal" x="137" y="13">level_of_isolation</text></a><path class="line" d="m17 10 h2 m0 0 h4 m60 0 h4 m0 0 h4 m34 0 h4 m0 0 h4 m86 0 h4 m3 0 h-3"/> + <polygon points="233 10 241 6 241 14"/> + <polygon points="233 10 225 6 225 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#isolation-level" title="isolation_level" shape="rect">isolation_level</a></div> + <div>         ::= 'ISOLATION' 'LEVEL' <a href="#level-of-isolation" title="level_of_isolation" shape="rect">level_of_isolation</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#transaction-mode" title="transaction-mode">transaction-mode</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + level_of_isolation +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="245" height="105"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="43" y="1" width="32" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="13">READ</text> + <rect x="103" y="1" width="78" height="18" class="terminal" rx="4"/> + <text class="terminal" x="107" y="13">UNCOMMITTED</text> + <rect x="103" y="29" width="64" height="18" class="terminal" rx="4"/> + <text class="terminal" x="107" y="41">COMMITTED</text> + <rect x="43" y="57" width="64" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="69">REPEATABLE</text> + <rect x="115" y="57" width="32" height="18" class="terminal" rx="4"/> + <text class="terminal" x="119" y="69">READ</text> + <rect x="43" y="85" width="72" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="97">SERIALIZABLE</text> + <path class="line" d="m17 10 h2 m20 0 h4 m32 0 h4 m20 0 h4 m78 0 h4 m-106 0 h20 m86 0 h20 m-126 0 q10 0 10 10 m106 0 q0 -10 10 -10 m-116 10 v8 m106 0 v-8 m-106 8 q0 10 10 10 m86 0 q10 0 10 -10 m-96 10 h4 m64 0 h4 m0 0 h14 m-166 -28 h20 m166 0 h20 m-206 0 q10 0 10 10 m186 0 q0 -10 10 -10 m-196 10 v36 m186 0 v-36 m-186 36 q0 10 10 10 m166 0 q10 0 10 -10 m-176 10 h4 m64 0 h4 m0 0 h4 m32 0 h4 m0 0 h54 m-176 -10 v20 m186 0 v-20 m-186 20 v8 m186 0 v-8 m-186 8 q0 10 10 10 m166 0 q10 0 10 -10 m-176 10 h4 m72 0 h4 m0 0 h86 m23 -84 h-3"/> + <polygon points="235 10 243 6 243 14"/> + <polygon points="235 10 227 6 227 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#level-of-isolation" title="level_of_isolation" shape="rect">level_of_isolation</a></div> + <div>         ::= 'READ' ( 'UNCOMMITTED' | 'COMMITTED' )</div> + <div>           | 'REPEATABLE' 'READ'</div> + <div>           | 'SERIALIZABLE'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#isolation-level" title="isolation-level">isolation-level</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + diagnostics_size +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="291" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="72" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">DIAGNOSTICS</text> + <rect x="103" y="1" width="28" height="18" class="terminal" rx="4"/> + <text class="terminal" x="107" y="13">SIZE</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#simple-value-specification" xlink:title="simple_value_specification" shape="rect"> + <rect x="139" y="1" width="128" height="18" class="nonterminal"/> + <text class="nonterminal" x="143" y="13">simple_value_specification</text></a><path class="line" d="m17 10 h2 m0 0 h4 m72 0 h4 m0 0 h4 m28 0 h4 m0 0 h4 m128 0 h4 m3 0 h-3"/> + <polygon points="281 10 289 6 289 14"/> + <polygon points="281 10 273 6 273 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#diagnostics-size" title="diagnostics_size" shape="rect">diagnostics_size</a></div> + <div>         ::= 'DIAGNOSTICS' 'SIZE' <a href="#simple-value-specification" title="simple_value_specification" shape="rect">simple_value_specification</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#transaction-mode" title="transaction-mode">transaction-mode</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + set_constraints_mode_statement +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="373" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="24" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">SET</text> + <rect x="55" y="1" width="74" height="18" class="terminal" rx="4"/> + <text class="terminal" x="59" y="13">CONSTRAINTS</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#constraint-name-list" xlink:title="constraint_name_list" shape="rect"> + <rect x="137" y="1" width="104" height="18" class="nonterminal"/> + <text class="nonterminal" x="141" y="13">constraint_name_list</text></a><rect x="269" y="1" width="54" height="18" class="terminal" rx="4"/> + <text class="terminal" x="273" y="13">DEFERRED</text> + <rect x="269" y="29" width="60" height="18" class="terminal" rx="4"/> + <text class="terminal" x="273" y="41">IMMEDIATE</text> + <path class="line" d="m17 10 h2 m0 0 h4 m24 0 h4 m0 0 h4 m74 0 h4 m0 0 h4 m104 0 h4 m20 0 h4 m54 0 h4 m0 0 h6 m-88 0 h20 m68 0 h20 m-108 0 q10 0 10 10 m88 0 q0 -10 10 -10 m-98 10 v8 m88 0 v-8 m-88 8 q0 10 10 10 m68 0 q10 0 10 -10 m-78 10 h4 m60 0 h4 m23 -28 h-3"/> + <polygon points="363 10 371 6 371 14"/> + <polygon points="363 10 355 6 355 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#set-constraints-mode-statement" title="set_constraints_mode_statement" shape="rect">set_constraints_mode_statement</a></div> + <div>         ::= 'SET' 'CONSTRAINTS' <a href="#constraint-name-list" title="constraint_name_list" shape="rect">constraint_name_list</a> ( 'DEFERRED' | 'IMMEDIATE' )</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#sql-transaction-statement" title="sql-transaction-statement">sql-transaction-statement</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + constraint_name_list +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="249" height="77"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="43" y="1" width="24" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="13">ALL</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#schema-qualified-name" xlink:title="schema_qualified_name" shape="rect"> + <rect x="63" y="57" width="122" height="18" class="nonterminal"/> + <text class="nonterminal" x="67" y="69">schema_qualified_name</text></a><rect x="63" y="29" width="8" height="18" class="terminal" rx="4"/> + <text class="terminal" x="67" y="41">,</text> + <path class="line" d="m17 10 h2 m20 0 h4 m24 0 h4 m0 0 h138 m-190 0 h20 m170 0 h20 m-210 0 q10 0 10 10 m190 0 q0 -10 10 -10 m-200 10 v36 m190 0 v-36 m-190 36 q0 10 10 10 m170 0 q10 0 10 -10 m-160 10 h4 m122 0 h4 m-150 0 l20 0 m-1 0 q-9 0 -9 -10 l0 -8 q0 -10 10 -10 m130 28 l20 0 m-20 0 q10 0 10 -10 l0 -8 q0 -10 -10 -10 m-130 0 h4 m8 0 h4 m0 0 h114 m43 -28 h-3"/> + <polygon points="239 10 247 6 247 14"/> + <polygon points="239 10 231 6 231 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#constraint-name-list" title="constraint_name_list" shape="rect">constraint_name_list</a></div> + <div>         ::= 'ALL'</div> + <div>           | <a href="#schema-qualified-name" title="schema_qualified_name" shape="rect">schema_qualified_name</a> ( ',' <a href="#schema-qualified-name" title="schema_qualified_name" shape="rect">schema_qualified_name</a> )*</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#set-constraints-mode-statement" title="set-constraints-mode-statement">set-constraints-mode-statement</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + savepoint_statement +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="211" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="60" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">SAVEPOINT</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#savepoint-specifier" xlink:title="savepoint_specifier" shape="rect"> + <rect x="91" y="1" width="96" height="18" class="nonterminal"/> + <text class="nonterminal" x="95" y="13">savepoint_specifier</text></a><path class="line" d="m17 10 h2 m0 0 h4 m60 0 h4 m0 0 h4 m96 0 h4 m3 0 h-3"/> + <polygon points="201 10 209 6 209 14"/> + <polygon points="201 10 193 6 193 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#savepoint-statement" title="savepoint_statement" shape="rect">savepoint_statement</a></div> + <div>         ::= 'SAVEPOINT' <a href="#savepoint-specifier" title="savepoint_specifier" shape="rect">savepoint_specifier</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#sql-transaction-statement" title="sql-transaction-statement">sql-transaction-statement</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + savepoint_specifier +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="93" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#identifier" xlink:title="identifier" shape="rect"> + <rect x="23" y="1" width="46" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">identifier</text></a><path class="line" d="m17 10 h2 m0 0 h4 m46 0 h4 m3 0 h-3"/> + <polygon points="83 10 91 6 91 14"/> + <polygon points="83 10 75 6 75 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#savepoint-specifier" title="savepoint_specifier" shape="rect">savepoint_specifier</a></div> + <div>         ::= <a href="#identifier" title="identifier" shape="rect">identifier</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#release-savepoint-statement" title="release-savepoint-statement">release-savepoint-statement</a></li><li><a href="#savepoint-clause" title="savepoint-clause">savepoint-clause</a></li><li><a href="#savepoint-statement" title="savepoint-statement">savepoint-statement</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + release_savepoint_statement +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="265" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="46" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">RELEASE</text> + <rect x="77" y="1" width="60" height="18" class="terminal" rx="4"/> + <text class="terminal" x="81" y="13">SAVEPOINT</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#savepoint-specifier" xlink:title="savepoint_specifier" shape="rect"> + <rect x="145" y="1" width="96" height="18" class="nonterminal"/> + <text class="nonterminal" x="149" y="13">savepoint_specifier</text></a><path class="line" d="m17 10 h2 m0 0 h4 m46 0 h4 m0 0 h4 m60 0 h4 m0 0 h4 m96 0 h4 m3 0 h-3"/> + <polygon points="255 10 263 6 263 14"/> + <polygon points="255 10 247 6 247 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#release-savepoint-statement" title="release_savepoint_statement" shape="rect">release_savepoint_statement</a></div> + <div>         ::= 'RELEASE' 'SAVEPOINT' <a href="#savepoint-specifier" title="savepoint_specifier" shape="rect">savepoint_specifier</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#sql-transaction-statement" title="sql-transaction-statement">sql-transaction-statement</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + commit_statement +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="375" height="63"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="48" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">COMMIT</text> + <rect x="99" y="22" width="40" height="18" class="terminal" rx="4"/> + <text class="terminal" x="103" y="34">WORK</text> + <rect x="187" y="22" width="28" height="18" class="terminal" rx="4"/> + <text class="terminal" x="191" y="34">AND</text> + <rect x="243" y="43" width="22" height="18" class="terminal" rx="4"/> + <text class="terminal" x="247" y="55">NO</text> + <rect x="293" y="22" width="38" height="18" class="terminal" rx="4"/> + <text class="terminal" x="297" y="34">CHAIN</text> + <path class="line" d="m17 10 h2 m0 0 h4 m48 0 h4 m20 0 h10 m0 0 h38 m-68 0 h20 m48 0 h20 m-88 0 q10 0 10 10 m68 0 q0 -10 10 -10 m-78 10 v1 m68 0 v-1 m-68 1 q0 10 10 10 m48 0 q10 0 10 -10 m-58 10 h4 m40 0 h4 m40 -21 h10 m0 0 h142 m-172 0 h20 m152 0 h20 m-192 0 q10 0 10 10 m172 0 q0 -10 10 -10 m-182 10 v1 m172 0 v-1 m-172 1 q0 10 10 10 m152 0 q10 0 10 -10 m-162 10 h4 m28 0 h4 m20 0 h10 m0 0 h20 m-50 0 h20 m30 0 h20 m-70 0 q10 0 10 10 m50 0 q0 -10 10 -10 m-60 10 v1 m50 0 v-1 m-50 1 q0 10 10 10 m30 0 q10 0 10 -10 m-40 10 h4 m22 0 h4 m20 -21 h4 m38 0 h4 m23 -21 h-3"/> + <polygon points="365 10 373 6 373 14"/> + <polygon points="365 10 357 6 357 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#commit-statement" title="commit_statement" shape="rect">commit_statement</a></div> + <div>         ::= 'COMMIT' 'WORK'? ( 'AND' 'NO'? 'CHAIN' )?</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#sql-transaction-statement" title="sql-transaction-statement">sql-transaction-statement</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + rollback_statement +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="519" height="63"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="56" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">ROLLBACK</text> + <rect x="107" y="22" width="40" height="18" class="terminal" rx="4"/> + <text class="terminal" x="111" y="34">WORK</text> + <rect x="195" y="22" width="28" height="18" class="terminal" rx="4"/> + <text class="terminal" x="199" y="34">AND</text> + <rect x="251" y="43" width="22" height="18" class="terminal" rx="4"/> + <text class="terminal" x="255" y="55">NO</text> + <rect x="301" y="22" width="38" height="18" class="terminal" rx="4"/> + <text class="terminal" x="305" y="34">CHAIN</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#savepoint-clause" xlink:title="savepoint_clause" shape="rect"> + <rect x="387" y="22" width="88" height="18" class="nonterminal"/> + <text class="nonterminal" x="391" y="34">savepoint_clause</text></a><path class="line" d="m17 10 h2 m0 0 h4 m56 0 h4 m20 0 h10 m0 0 h38 m-68 0 h20 m48 0 h20 m-88 0 q10 0 10 10 m68 0 q0 -10 10 -10 m-78 10 v1 m68 0 v-1 m-68 1 q0 10 10 10 m48 0 q10 0 10 -10 m-58 10 h4 m40 0 h4 m40 -21 h10 m0 0 h142 m-172 0 h20 m152 0 h20 m-192 0 q10 0 10 10 m172 0 q0 -10 10 -10 m-182 10 v1 m172 0 v-1 m-172 1 q0 10 10 10 m152 0 q10 0 10 -10 m-162 10 h4 m28 0 h4 m20 0 h10 m0 0 h20 m-50 0 h20 m30 0 h20 m-70 0 q10 0 10 10 m50 0 q0 -10 10 -10 m-60 10 v1 m50 0 v-1 m-50 1 q0 10 10 10 m30 0 q10 0 10 -10 m-40 10 h4 m22 0 h4 m20 -21 h4 m38 0 h4 m40 -21 h10 m0 0 h86 m-116 0 h20 m96 0 h20 m-136 0 q10 0 10 10 m116 0 q0 -10 10 -10 m-126 10 v1 m116 0 v-1 m-116 1 q0 10 10 10 m96 0 q10 0 10 -10 m-106 10 h4 m88 0 h4 m23 -21 h-3"/> + <polygon points="509 10 517 6 517 14"/> + <polygon points="509 10 501 6 501 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#rollback-statement" title="rollback_statement" shape="rect">rollback_statement</a></div> + <div>         ::= 'ROLLBACK' 'WORK'? ( 'AND' 'NO'? 'CHAIN' )? <a href="#savepoint-clause" title="savepoint_clause" shape="rect">savepoint_clause</a>?</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#sql-transaction-statement" title="sql-transaction-statement">sql-transaction-statement</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + savepoint_clause +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="239" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="20" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">TO</text> + <rect x="51" y="1" width="60" height="18" class="terminal" rx="4"/> + <text class="terminal" x="55" y="13">SAVEPOINT</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#savepoint-specifier" xlink:title="savepoint_specifier" shape="rect"> + <rect x="119" y="1" width="96" height="18" class="nonterminal"/> + <text class="nonterminal" x="123" y="13">savepoint_specifier</text></a><path class="line" d="m17 10 h2 m0 0 h4 m20 0 h4 m0 0 h4 m60 0 h4 m0 0 h4 m96 0 h4 m3 0 h-3"/> + <polygon points="229 10 237 6 237 14"/> + <polygon points="229 10 221 6 221 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#savepoint-clause" title="savepoint_clause" shape="rect">savepoint_clause</a></div> + <div>         ::= 'TO' 'SAVEPOINT' <a href="#savepoint-specifier" title="savepoint_specifier" shape="rect">savepoint_specifier</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#rollback-statement" title="rollback-statement">rollback-statement</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + connect_statement +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="227" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="52" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">CONNECT</text> + <rect x="83" y="1" width="20" height="18" class="terminal" rx="4"/> + <text class="terminal" x="87" y="13">TO</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#connection-target" xlink:title="connection_target" shape="rect"> + <rect x="111" y="1" width="92" height="18" class="nonterminal"/> + <text class="nonterminal" x="115" y="13">connection_target</text></a><path class="line" d="m17 10 h2 m0 0 h4 m52 0 h4 m0 0 h4 m20 0 h4 m0 0 h4 m92 0 h4 m3 0 h-3"/> + <polygon points="217 10 225 6 225 14"/> + <polygon points="217 10 209 6 209 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#connect-statement" title="connect_statement" shape="rect">connect_statement</a></div> + <div>         ::= 'CONNECT' 'TO' <a href="#connection-target" title="connection_target" shape="rect">connection_target</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#sql-connection-statement" title="sql-connection-statement">sql-connection-statement</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + connection_target +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="635" height="70"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#simple-value-specification" xlink:title="simple_value_specification" shape="rect"> + <rect x="43" y="1" width="128" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">simple_value_specification</text></a><rect x="199" y="22" width="20" height="18" class="terminal" rx="4"/> + <text class="terminal" x="203" y="34">AS</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#simple-value-specification" xlink:title="simple_value_specification" shape="rect"> + <rect x="227" y="22" width="128" height="18" class="nonterminal"/> + <text class="nonterminal" x="231" y="34">simple_value_specification</text></a><rect x="403" y="22" width="32" height="18" class="terminal" rx="4"/> + <text class="terminal" x="407" y="34">USER</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#simple-value-specification" xlink:title="simple_value_specification" shape="rect"> + <rect x="443" y="22" width="128" height="18" class="nonterminal"/> + <text class="nonterminal" x="447" y="34">simple_value_specification</text></a><rect x="43" y="50" width="48" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="62">DEFAULT</text> + <path class="line" d="m17 10 h2 m20 0 h4 m128 0 h4 m20 0 h10 m0 0 h154 m-184 0 h20 m164 0 h20 m-204 0 q10 0 10 10 m184 0 q0 -10 10 -10 m-194 10 v1 m184 0 v-1 m-184 1 q0 10 10 10 m164 0 q10 0 10 -10 m-174 10 h4 m20 0 h4 m0 0 h4 m128 0 h4 m40 -21 h10 m0 0 h166 m-196 0 h20 m176 0 h20 m-216 0 q10 0 10 10 m196 0 q0 -10 10 -10 m-206 10 v1 m196 0 v-1 m-196 1 q0 10 10 10 m176 0 q10 0 10 -10 m-186 10 h4 m32 0 h4 m0 0 h4 m128 0 h4 m-556 -21 h20 m556 0 h20 m-596 0 q10 0 10 10 m576 0 q0 -10 10 -10 m-586 10 v29 m576 0 v-29 m-576 29 q0 10 10 10 m556 0 q10 0 10 -10 m-566 10 h4 m48 0 h4 m0 0 h500 m23 -49 h-3"/> + <polygon points="625 10 633 6 633 14"/> + <polygon points="625 10 617 6 617 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#connection-target" title="connection_target" shape="rect">connection_target</a></div> + <div>         ::= <a href="#simple-value-specification" title="simple_value_specification" shape="rect">simple_value_specification</a> ( 'AS' <a href="#simple-value-specification" title="simple_value_specification" shape="rect">simple_value_specification</a> )? ( 'USER' <a href="#simple-value-specification" title="simple_value_specification" shape="rect">simple_value_specification</a> )?</div> + <div>           | 'DEFAULT'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#connect-statement" title="connect-statement">connect-statement</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + set_connection_statement +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="249" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="24" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">SET</text> + <rect x="55" y="1" width="70" height="18" class="terminal" rx="4"/> + <text class="terminal" x="59" y="13">CONNECTION</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#connection-object" xlink:title="connection_object" shape="rect"> + <rect x="133" y="1" width="92" height="18" class="nonterminal"/> + <text class="nonterminal" x="137" y="13">connection_object</text></a><path class="line" d="m17 10 h2 m0 0 h4 m24 0 h4 m0 0 h4 m70 0 h4 m0 0 h4 m92 0 h4 m3 0 h-3"/> + <polygon points="239 10 247 6 247 14"/> + <polygon points="239 10 231 6 231 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#set-connection-statement" title="set_connection_statement" shape="rect">set_connection_statement</a></div> + <div>         ::= 'SET' 'CONNECTION' <a href="#connection-object" title="connection_object" shape="rect">connection_object</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#sql-connection-statement" title="sql-connection-statement">sql-connection-statement</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + connection_object +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="215" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="43" y="1" width="48" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="13">DEFAULT</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#simple-value-specification" xlink:title="simple_value_specification" shape="rect"> + <rect x="43" y="29" width="128" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">simple_value_specification</text></a><path class="line" d="m17 10 h2 m20 0 h4 m48 0 h4 m0 0 h80 m-156 0 h20 m136 0 h20 m-176 0 q10 0 10 10 m156 0 q0 -10 10 -10 m-166 10 v8 m156 0 v-8 m-156 8 q0 10 10 10 m136 0 q10 0 10 -10 m-146 10 h4 m128 0 h4 m23 -28 h-3"/> + <polygon points="205 10 213 6 213 14"/> + <polygon points="205 10 197 6 197 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#connection-object" title="connection_object" shape="rect">connection_object</a></div> + <div>         ::= 'DEFAULT'</div> + <div>           | <a href="#simple-value-specification" title="simple_value_specification" shape="rect">simple_value_specification</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#disconnect-object" title="disconnect-object">disconnect-object</a></li><li><a href="#set-connection-statement" title="set-connection-statement">set-connection-statement</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + disconnect_statement +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="213" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="68" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">DISCONNECT</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#disconnect-object" xlink:title="disconnect_object" shape="rect"> + <rect x="99" y="1" width="90" height="18" class="nonterminal"/> + <text class="nonterminal" x="103" y="13">disconnect_object</text></a><path class="line" d="m17 10 h2 m0 0 h4 m68 0 h4 m0 0 h4 m90 0 h4 m3 0 h-3"/> + <polygon points="203 10 211 6 211 14"/> + <polygon points="203 10 195 6 195 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#disconnect-statement" title="disconnect_statement" shape="rect">disconnect_statement</a></div> + <div>         ::= 'DISCONNECT' <a href="#disconnect-object" title="disconnect_object" shape="rect">disconnect_object</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#sql-connection-statement" title="sql-connection-statement">sql-connection-statement</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + disconnect_object +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="179" height="77"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#connection-object" xlink:title="connection_object" shape="rect"> + <rect x="43" y="1" width="92" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">connection_object</text></a><rect x="43" y="29" width="24" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="41">ALL</text> + <rect x="43" y="57" width="50" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="69">CURRENT</text> + <path class="line" d="m17 10 h2 m20 0 h4 m92 0 h4 m-120 0 h20 m100 0 h20 m-140 0 q10 0 10 10 m120 0 q0 -10 10 -10 m-130 10 v8 m120 0 v-8 m-120 8 q0 10 10 10 m100 0 q10 0 10 -10 m-110 10 h4 m24 0 h4 m0 0 h68 m-110 -10 v20 m120 0 v-20 m-120 20 v8 m120 0 v-8 m-120 8 q0 10 10 10 m100 0 q10 0 10 -10 m-110 10 h4 m50 0 h4 m0 0 h42 m23 -56 h-3"/> + <polygon points="169 10 177 6 177 14"/> + <polygon points="169 10 161 6 161 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#disconnect-object" title="disconnect_object" shape="rect">disconnect_object</a></div> + <div>         ::= <a href="#connection-object" title="connection_object" shape="rect">connection_object</a></div> + <div>           | 'ALL'</div> + <div>           | 'CURRENT'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#disconnect-statement" title="disconnect-statement">disconnect-statement</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + set_session_characteristics_statement +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="387" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="24" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">SET</text> + <rect x="55" y="1" width="50" height="18" class="terminal" rx="4"/> + <text class="terminal" x="59" y="13">SESSION</text> + <rect x="113" y="1" width="92" height="18" class="terminal" rx="4"/> + <text class="terminal" x="117" y="13">CHARACTERISTICS</text> + <rect x="213" y="1" width="20" height="18" class="terminal" rx="4"/> + <text class="terminal" x="217" y="13">AS</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#session-characteristic-list" xlink:title="session_characteristic_list" shape="rect"> + <rect x="241" y="1" width="122" height="18" class="nonterminal"/> + <text class="nonterminal" x="245" y="13">session_characteristic_list</text></a><path class="line" d="m17 10 h2 m0 0 h4 m24 0 h4 m0 0 h4 m50 0 h4 m0 0 h4 m92 0 h4 m0 0 h4 m20 0 h4 m0 0 h4 m122 0 h4 m3 0 h-3"/> + <polygon points="377 10 385 6 385 14"/> + <polygon points="377 10 369 6 369 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#set-session-characteristics-statement" title="set_session_characteristics_statement" shape="rect">set_session_characteristics_statement</a></div> + <div>         ::= 'SET' 'SESSION' 'CHARACTERISTICS' 'AS' <a href="#session-characteristic-list" title="session_characteristic_list" shape="rect">session_characteristic_list</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#sql-session-statement" title="sql-session-statement">sql-session-statement</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + session_characteristic_list +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="193" height="49"> + <polygon points="9 38 1 34 1 42"/> + <polygon points="17 38 9 34 9 42"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#session-characteristic" xlink:title="session_characteristic" shape="rect"> + <rect x="43" y="29" width="106" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">session_characteristic</text></a><rect x="43" y="1" width="8" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="13">,</text> + <path class="line" d="m17 38 h2 m20 0 h4 m106 0 h4 m-134 0 l20 0 m-1 0 q-9 0 -9 -10 l0 -8 q0 -10 10 -10 m114 28 l20 0 m-20 0 q10 0 10 -10 l0 -8 q0 -10 -10 -10 m-114 0 h4 m8 0 h4 m0 0 h98 m23 28 h-3"/> + <polygon points="183 38 191 34 191 42"/> + <polygon points="183 38 175 34 175 42"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#session-characteristic-list" title="session_characteristic_list" shape="rect">session_characteristic_list</a></div> + <div>         ::= <a href="#session-characteristic" title="session_characteristic" shape="rect">session_characteristic</a> ( ',' <a href="#session-characteristic" title="session_characteristic" shape="rect">session_characteristic</a> )*</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#set-session-characteristics-statement" title="set-session-characteristics-statement">set-session-characteristics-statement</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + session_characteristic +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="213" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#session-transaction-characteristics" xlink:title="session_transaction_characteristics" shape="rect"> + <rect x="23" y="1" width="166" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">session_transaction_characteristics</text></a><path class="line" d="m17 10 h2 m0 0 h4 m166 0 h4 m3 0 h-3"/> + <polygon points="203 10 211 6 211 14"/> + <polygon points="203 10 195 6 195 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#session-characteristic" title="session_characteristic" shape="rect">session_characteristic</a></div> + <div>         ::= <a href="#session-transaction-characteristics" title="session_transaction_characteristics" shape="rect">session_transaction_characteristics</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#session-characteristic-list" title="session-characteristic-list">session-characteristic-list</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + session_transaction_characteristics +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="261" height="49"> + <polygon points="9 38 1 34 1 42"/> + <polygon points="17 38 9 34 9 42"/> + <rect x="23" y="29" width="74" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="41">TRANSACTION</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#transaction-mode" xlink:title="transaction_mode" shape="rect"> + <rect x="125" y="29" width="92" height="18" class="nonterminal"/> + <text class="nonterminal" x="129" y="41">transaction_mode</text></a><rect x="125" y="1" width="8" height="18" class="terminal" rx="4"/> + <text class="terminal" x="129" y="13">,</text> + <path class="line" d="m17 38 h2 m0 0 h4 m74 0 h4 m20 0 h4 m92 0 h4 m-120 0 l20 0 m-1 0 q-9 0 -9 -10 l0 -8 q0 -10 10 -10 m100 28 l20 0 m-20 0 q10 0 10 -10 l0 -8 q0 -10 -10 -10 m-100 0 h4 m8 0 h4 m0 0 h84 m23 28 h-3"/> + <polygon points="251 38 259 34 259 42"/> + <polygon points="251 38 243 34 243 42"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#session-transaction-characteristics" title="session_transaction_characteristics" shape="rect">session_transaction_characteristics</a></div> + <div>         ::= 'TRANSACTION' <a href="#transaction-mode" title="transaction_mode" shape="rect">transaction_mode</a> ( ',' <a href="#transaction-mode" title="transaction_mode" shape="rect">transaction_mode</a> )*</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#session-characteristic" title="session-characteristic">session-characteristic</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + set_session_user_identifier_statement +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="323" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="24" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">SET</text> + <rect x="55" y="1" width="50" height="18" class="terminal" rx="4"/> + <text class="terminal" x="59" y="13">SESSION</text> + <rect x="113" y="1" width="86" height="18" class="terminal" rx="4"/> + <text class="terminal" x="117" y="13">AUTHORIZATION</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#value-specification" xlink:title="value_specification" shape="rect"> + <rect x="207" y="1" width="92" height="18" class="nonterminal"/> + <text class="nonterminal" x="211" y="13">value_specification</text></a><path class="line" d="m17 10 h2 m0 0 h4 m24 0 h4 m0 0 h4 m50 0 h4 m0 0 h4 m86 0 h4 m0 0 h4 m92 0 h4 m3 0 h-3"/> + <polygon points="313 10 321 6 321 14"/> + <polygon points="313 10 305 6 305 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#set-session-user-identifier-statement" title="set_session_user_identifier_statement" shape="rect">set_session_user_identifier_statement</a></div> + <div>         ::= 'SET' 'SESSION' 'AUTHORIZATION' <a href="#value-specification" title="value_specification" shape="rect">value_specification</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#sql-session-statement" title="sql-session-statement">sql-session-statement</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + set_role_statement +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="203" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="24" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">SET</text> + <rect x="55" y="1" width="32" height="18" class="terminal" rx="4"/> + <text class="terminal" x="59" y="13">ROLE</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#role-specification" xlink:title="role_specification" shape="rect"> + <rect x="95" y="1" width="84" height="18" class="nonterminal"/> + <text class="nonterminal" x="99" y="13">role_specification</text></a><path class="line" d="m17 10 h2 m0 0 h4 m24 0 h4 m0 0 h4 m32 0 h4 m0 0 h4 m84 0 h4 m3 0 h-3"/> + <polygon points="193 10 201 6 201 14"/> + <polygon points="193 10 185 6 185 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#set-role-statement" title="set_role_statement" shape="rect">set_role_statement</a></div> + <div>         ::= 'SET' 'ROLE' <a href="#role-specification" title="role_specification" shape="rect">role_specification</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#sql-session-statement" title="sql-session-statement">sql-session-statement</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + role_specification +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="179" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#value-specification" xlink:title="value_specification" shape="rect"> + <rect x="43" y="1" width="92" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">value_specification</text></a><rect x="43" y="29" width="34" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="41">NONE</text> + <path class="line" d="m17 10 h2 m20 0 h4 m92 0 h4 m-120 0 h20 m100 0 h20 m-140 0 q10 0 10 10 m120 0 q0 -10 10 -10 m-130 10 v8 m120 0 v-8 m-120 8 q0 10 10 10 m100 0 q10 0 10 -10 m-110 10 h4 m34 0 h4 m0 0 h58 m23 -28 h-3"/> + <polygon points="169 10 177 6 177 14"/> + <polygon points="169 10 161 6 161 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#role-specification" title="role_specification" shape="rect">role_specification</a></div> + <div>         ::= <a href="#value-specification" title="value_specification" shape="rect">value_specification</a></div> + <div>           | 'NONE'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#set-role-statement" title="set-role-statement">set-role-statement</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + set_local_time_zone_statement +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="267" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="24" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">SET</text> + <rect x="55" y="1" width="30" height="18" class="terminal" rx="4"/> + <text class="terminal" x="59" y="13">TIME</text> + <rect x="93" y="1" width="34" height="18" class="terminal" rx="4"/> + <text class="terminal" x="97" y="13">ZONE</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#set-time-zone-value" xlink:title="set_time_zone_value" shape="rect"> + <rect x="135" y="1" width="108" height="18" class="nonterminal"/> + <text class="nonterminal" x="139" y="13">set_time_zone_value</text></a><path class="line" d="m17 10 h2 m0 0 h4 m24 0 h4 m0 0 h4 m30 0 h4 m0 0 h4 m34 0 h4 m0 0 h4 m108 0 h4 m3 0 h-3"/> + <polygon points="257 10 265 6 265 14"/> + <polygon points="257 10 249 6 249 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#set-local-time-zone-statement" title="set_local_time_zone_statement" shape="rect">set_local_time_zone_statement</a></div> + <div>         ::= 'SET' 'TIME' 'ZONE' <a href="#set-time-zone-value" title="set_time_zone_value" shape="rect">set_time_zone_value</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#sql-session-statement" title="sql-session-statement">sql-session-statement</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + set_time_zone_value +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="215" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#interval-value-expression" xlink:title="interval_value_expression" shape="rect"> + <rect x="43" y="1" width="128" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">interval_value_expression</text></a><rect x="43" y="29" width="38" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="41">LOCAL</text> + <path class="line" d="m17 10 h2 m20 0 h4 m128 0 h4 m-156 0 h20 m136 0 h20 m-176 0 q10 0 10 10 m156 0 q0 -10 10 -10 m-166 10 v8 m156 0 v-8 m-156 8 q0 10 10 10 m136 0 q10 0 10 -10 m-146 10 h4 m38 0 h4 m0 0 h90 m23 -28 h-3"/> + <polygon points="205 10 213 6 213 14"/> + <polygon points="205 10 197 6 197 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#set-time-zone-value" title="set_time_zone_value" shape="rect">set_time_zone_value</a></div> + <div>         ::= <a href="#interval-value-expression" title="interval_value_expression" shape="rect">interval_value_expression</a></div> + <div>           | 'LOCAL'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#set-local-time-zone-statement" title="set-local-time-zone-statement">set-local-time-zone-statement</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + set_catalog_statement +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="217" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="24" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">SET</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#catalog-name-characteristic" xlink:title="catalog_name_characteristic" shape="rect"> + <rect x="55" y="1" width="138" height="18" class="nonterminal"/> + <text class="nonterminal" x="59" y="13">catalog_name_characteristic</text></a><path class="line" d="m17 10 h2 m0 0 h4 m24 0 h4 m0 0 h4 m138 0 h4 m3 0 h-3"/> + <polygon points="207 10 215 6 215 14"/> + <polygon points="207 10 199 6 199 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#set-catalog-statement" title="set_catalog_statement" shape="rect">set_catalog_statement</a></div> + <div>         ::= 'SET' <a href="#catalog-name-characteristic" title="catalog_name_characteristic" shape="rect">catalog_name_characteristic</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#sql-session-statement" title="sql-session-statement">sql-session-statement</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + catalog_name_characteristic +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="199" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="52" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">CATALOG</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#value-specification" xlink:title="value_specification" shape="rect"> + <rect x="83" y="1" width="92" height="18" class="nonterminal"/> + <text class="nonterminal" x="87" y="13">value_specification</text></a><path class="line" d="m17 10 h2 m0 0 h4 m52 0 h4 m0 0 h4 m92 0 h4 m3 0 h-3"/> + <polygon points="189 10 197 6 197 14"/> + <polygon points="189 10 181 6 181 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#catalog-name-characteristic" title="catalog_name_characteristic" shape="rect">catalog_name_characteristic</a></div> + <div>         ::= 'CATALOG' <a href="#value-specification" title="value_specification" shape="rect">value_specification</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#set-catalog-statement" title="set-catalog-statement">set-catalog-statement</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + set_schema_statement +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="221" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="24" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">SET</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#schema-name-characteristic" xlink:title="schema_name_characteristic" shape="rect"> + <rect x="55" y="1" width="142" height="18" class="nonterminal"/> + <text class="nonterminal" x="59" y="13">schema_name_characteristic</text></a><path class="line" d="m17 10 h2 m0 0 h4 m24 0 h4 m0 0 h4 m142 0 h4 m3 0 h-3"/> + <polygon points="211 10 219 6 219 14"/> + <polygon points="211 10 203 6 203 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#set-schema-statement" title="set_schema_statement" shape="rect">set_schema_statement</a></div> + <div>         ::= 'SET' <a href="#schema-name-characteristic" title="schema_name_characteristic" shape="rect">schema_name_characteristic</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#sql-session-statement" title="sql-session-statement">sql-session-statement</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + schema_name_characteristic +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="193" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="46" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">SCHEMA</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#value-specification" xlink:title="value_specification" shape="rect"> + <rect x="77" y="1" width="92" height="18" class="nonterminal"/> + <text class="nonterminal" x="81" y="13">value_specification</text></a><path class="line" d="m17 10 h2 m0 0 h4 m46 0 h4 m0 0 h4 m92 0 h4 m3 0 h-3"/> + <polygon points="183 10 191 6 191 14"/> + <polygon points="183 10 175 6 175 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#schema-name-characteristic" title="schema_name_characteristic" shape="rect">schema_name_characteristic</a></div> + <div>         ::= 'SCHEMA' <a href="#value-specification" title="value_specification" shape="rect">value_specification</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#set-schema-statement" title="set-schema-statement">set-schema-statement</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + set_names_statement +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="247" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="24" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">SET</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#character-set-name-characteristic" xlink:title="character_set_name_characteristic" shape="rect"> + <rect x="55" y="1" width="168" height="18" class="nonterminal"/> + <text class="nonterminal" x="59" y="13">character_set_name_characteristic</text></a><path class="line" d="m17 10 h2 m0 0 h4 m24 0 h4 m0 0 h4 m168 0 h4 m3 0 h-3"/> + <polygon points="237 10 245 6 245 14"/> + <polygon points="237 10 229 6 229 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#set-names-statement" title="set_names_statement" shape="rect">set_names_statement</a></div> + <div>         ::= 'SET' <a href="#character-set-name-characteristic" title="character_set_name_characteristic" shape="rect">character_set_name_characteristic</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#sql-session-statement" title="sql-session-statement">sql-session-statement</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + character_set_name_characteristic +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="187" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="40" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">NAMES</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#value-specification" xlink:title="value_specification" shape="rect"> + <rect x="71" y="1" width="92" height="18" class="nonterminal"/> + <text class="nonterminal" x="75" y="13">value_specification</text></a><path class="line" d="m17 10 h2 m0 0 h4 m40 0 h4 m0 0 h4 m92 0 h4 m3 0 h-3"/> + <polygon points="177 10 185 6 185 14"/> + <polygon points="177 10 169 6 169 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#character-set-name-characteristic" title="character_set_name_characteristic" shape="rect">character_set_name_characteristic</a></div> + <div>         ::= 'NAMES' <a href="#value-specification" title="value_specification" shape="rect">value_specification</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#set-names-statement" title="set-names-statement">set-names-statement</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + set_path_statement +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="197" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="24" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">SET</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#sql-path-characteristic" xlink:title="SQL_path_characteristic" shape="rect"> + <rect x="55" y="1" width="118" height="18" class="nonterminal"/> + <text class="nonterminal" x="59" y="13">SQL_path_characteristic</text></a><path class="line" d="m17 10 h2 m0 0 h4 m24 0 h4 m0 0 h4 m118 0 h4 m3 0 h-3"/> + <polygon points="187 10 195 6 195 14"/> + <polygon points="187 10 179 6 179 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#set-path-statement" title="set_path_statement" shape="rect">set_path_statement</a></div> + <div>         ::= 'SET' <a href="#sql-path-characteristic" title="SQL_path_characteristic" shape="rect">SQL_path_characteristic</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#sql-session-statement" title="sql-session-statement">sql-session-statement</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + SQL_path_characteristic +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="179" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="32" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">PATH</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#value-specification" xlink:title="value_specification" shape="rect"> + <rect x="63" y="1" width="92" height="18" class="nonterminal"/> + <text class="nonterminal" x="67" y="13">value_specification</text></a><path class="line" d="m17 10 h2 m0 0 h4 m32 0 h4 m0 0 h4 m92 0 h4 m3 0 h-3"/> + <polygon points="169 10 177 6 177 14"/> + <polygon points="169 10 161 6 161 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#sql-path-characteristic" title="SQL_path_characteristic" shape="rect">SQL_path_characteristic</a></div> + <div>         ::= 'PATH' <a href="#value-specification" title="value_specification" shape="rect">value_specification</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#set-path-statement" title="set-path-statement">set-path-statement</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + set_transform_group_statement +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="229" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="24" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">SET</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#transform-group-characteristic" xlink:title="transform_group_characteristic" shape="rect"> + <rect x="55" y="1" width="150" height="18" class="nonterminal"/> + <text class="nonterminal" x="59" y="13">transform_group_characteristic</text></a><path class="line" d="m17 10 h2 m0 0 h4 m24 0 h4 m0 0 h4 m150 0 h4 m3 0 h-3"/> + <polygon points="219 10 227 6 227 14"/> + <polygon points="219 10 211 6 211 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#set-transform-group-statement" title="set_transform_group_statement" shape="rect">set_transform_group_statement</a></div> + <div>         ::= 'SET' <a href="#transform-group-characteristic" title="transform_group_characteristic" shape="rect">transform_group_characteristic</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#sql-session-statement" title="sql-session-statement">sql-session-statement</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + transform_group_characteristic +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="583" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="43" y="1" width="48" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="13">DEFAULT</text> + <rect x="99" y="1" width="66" height="18" class="terminal" rx="4"/> + <text class="terminal" x="103" y="13">TRANSFORM</text> + <rect x="173" y="1" width="42" height="18" class="terminal" rx="4"/> + <text class="terminal" x="177" y="13">GROUP</text> + <rect x="43" y="29" width="66" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="41">TRANSFORM</text> + <rect x="117" y="29" width="42" height="18" class="terminal" rx="4"/> + <text class="terminal" x="121" y="41">GROUP</text> + <rect x="167" y="29" width="26" height="18" class="terminal" rx="4"/> + <text class="terminal" x="171" y="41">FOR</text> + <rect x="201" y="29" width="30" height="18" class="terminal" rx="4"/> + <text class="terminal" x="205" y="41">TYPE</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#path-resolved-user-defined-type-name" xlink:title="path_resolved_user_defined_type_name" shape="rect"> + <rect x="239" y="29" width="200" height="18" class="nonterminal"/> + <text class="nonterminal" x="243" y="41">path_resolved_user_defined_type_name</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#value-specification" xlink:title="value_specification" shape="rect"> + <rect x="467" y="1" width="92" height="18" class="nonterminal"/> + <text class="nonterminal" x="471" y="13">value_specification</text></a><path class="line" d="m17 10 h2 m20 0 h4 m48 0 h4 m0 0 h4 m66 0 h4 m0 0 h4 m42 0 h4 m0 0 h224 m-424 0 h20 m404 0 h20 m-444 0 q10 0 10 10 m424 0 q0 -10 10 -10 m-434 10 v8 m424 0 v-8 m-424 8 q0 10 10 10 m404 0 q10 0 10 -10 m-414 10 h4 m66 0 h4 m0 0 h4 m42 0 h4 m0 0 h4 m26 0 h4 m0 0 h4 m30 0 h4 m0 0 h4 m200 0 h4 m20 -28 h4 m92 0 h4 m3 0 h-3"/> + <polygon points="573 10 581 6 581 14"/> + <polygon points="573 10 565 6 565 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#transform-group-characteristic" title="transform_group_characteristic" shape="rect">transform_group_characteristic</a></div> + <div>         ::= ( 'DEFAULT' 'TRANSFORM' 'GROUP' | 'TRANSFORM' 'GROUP' 'FOR' 'TYPE' <a href="#path-resolved-user-defined-type-name" title="path_resolved_user_defined_type_name" shape="rect">path_resolved_user_defined_type_name</a> ) <a href="#value-specification" title="value_specification" shape="rect">value_specification</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#set-transform-group-statement" title="set-transform-group-statement">set-transform-group-statement</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + set_session_collation_statement +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="521" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="24" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">SET</text> + <rect x="75" y="1" width="62" height="18" class="terminal" rx="4"/> + <text class="terminal" x="79" y="13">COLLATION</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#collation-specification" xlink:title="collation_specification" shape="rect"> + <rect x="145" y="1" width="104" height="18" class="nonterminal"/> + <text class="nonterminal" x="149" y="13">collation_specification</text></a><rect x="75" y="29" width="22" height="18" class="terminal" rx="4"/> + <text class="terminal" x="79" y="41">NO</text> + <rect x="105" y="29" width="62" height="18" class="terminal" rx="4"/> + <text class="terminal" x="109" y="41">COLLATION</text> + <rect x="297" y="22" width="26" height="18" class="terminal" rx="4"/> + <text class="terminal" x="301" y="34">FOR</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#character-set-specification-list" xlink:title="character_set_specification_list" shape="rect"> + <rect x="331" y="22" width="146" height="18" class="nonterminal"/> + <text class="nonterminal" x="335" y="34">character_set_specification_list</text></a><path class="line" d="m17 10 h2 m0 0 h4 m24 0 h4 m20 0 h4 m62 0 h4 m0 0 h4 m104 0 h4 m-202 0 h20 m182 0 h20 m-222 0 q10 0 10 10 m202 0 q0 -10 10 -10 m-212 10 v8 m202 0 v-8 m-202 8 q0 10 10 10 m182 0 q10 0 10 -10 m-192 10 h4 m22 0 h4 m0 0 h4 m62 0 h4 m0 0 h82 m40 -28 h10 m0 0 h178 m-208 0 h20 m188 0 h20 m-228 0 q10 0 10 10 m208 0 q0 -10 10 -10 m-218 10 v1 m208 0 v-1 m-208 1 q0 10 10 10 m188 0 q10 0 10 -10 m-198 10 h4 m26 0 h4 m0 0 h4 m146 0 h4 m23 -21 h-3"/> + <polygon points="511 10 519 6 519 14"/> + <polygon points="511 10 503 6 503 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#set-session-collation-statement" title="set_session_collation_statement" shape="rect">set_session_collation_statement</a></div> + <div>         ::= 'SET' ( 'COLLATION' <a href="#collation-specification" title="collation_specification" shape="rect">collation_specification</a> | 'NO' 'COLLATION' ) ( 'FOR' <a href="#character-set-specification-list" title="character_set_specification_list" shape="rect">character_set_specification_list</a> )?</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#sql-session-statement" title="sql-session-statement">sql-session-statement</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + collation_specification +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="139" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#value-specification" xlink:title="value_specification" shape="rect"> + <rect x="23" y="1" width="92" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">value_specification</text></a><path class="line" d="m17 10 h2 m0 0 h4 m92 0 h4 m3 0 h-3"/> + <polygon points="129 10 137 6 137 14"/> + <polygon points="129 10 121 6 121 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#collation-specification" title="collation_specification" shape="rect">collation_specification</a></div> + <div>         ::= <a href="#value-specification" title="value_specification" shape="rect">value_specification</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#set-session-collation-statement" title="set-session-collation-statement">set-session-collation-statement</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + allocate_descriptor_statement +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="599" height="42"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="54" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">ALLOCATE</text> + <rect x="105" y="22" width="26" height="18" class="terminal" rx="4"/> + <text class="terminal" x="109" y="34">SQL</text> + <rect x="159" y="1" width="68" height="18" class="terminal" rx="4"/> + <text class="terminal" x="163" y="13">DESCRIPTOR</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#descriptor-name" xlink:title="descriptor_name" shape="rect"> + <rect x="235" y="1" width="86" height="18" class="nonterminal"/> + <text class="nonterminal" x="239" y="13">descriptor_name</text></a><rect x="349" y="22" width="34" height="18" class="terminal" rx="4"/> + <text class="terminal" x="353" y="34">WITH</text> + <rect x="391" y="22" width="28" height="18" class="terminal" rx="4"/> + <text class="terminal" x="395" y="34">MAX</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#simple-value-specification" xlink:title="simple_value_specification" shape="rect"> + <rect x="427" y="22" width="128" height="18" class="nonterminal"/> + <text class="nonterminal" x="431" y="34">simple_value_specification</text></a><path class="line" d="m17 10 h2 m0 0 h4 m54 0 h4 m20 0 h10 m0 0 h24 m-54 0 h20 m34 0 h20 m-74 0 q10 0 10 10 m54 0 q0 -10 10 -10 m-64 10 v1 m54 0 v-1 m-54 1 q0 10 10 10 m34 0 q10 0 10 -10 m-44 10 h4 m26 0 h4 m20 -21 h4 m68 0 h4 m0 0 h4 m86 0 h4 m20 0 h10 m0 0 h204 m-234 0 h20 m214 0 h20 m-254 0 q10 0 10 10 m234 0 q0 -10 10 -10 m-244 10 v1 m234 0 v-1 m-234 1 q0 10 10 10 m214 0 q10 0 10 -10 m-224 10 h4 m34 0 h4 m0 0 h4 m28 0 h4 m0 0 h4 m128 0 h4 m23 -21 h-3"/> + <polygon points="589 10 597 6 597 14"/> + <polygon points="589 10 581 6 581 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#allocate-descriptor-statement" title="allocate_descriptor_statement" shape="rect">allocate_descriptor_statement</a></div> + <div>         ::= 'ALLOCATE' 'SQL'? 'DESCRIPTOR' <a href="#descriptor-name" title="descriptor_name" shape="rect">descriptor_name</a> ( 'WITH' 'MAX' <a href="#simple-value-specification" title="simple_value_specification" shape="rect">simple_value_specification</a> )?</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#sql-descriptor-statement" title="sql-descriptor-statement">sql-descriptor-statement</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + deallocate_descriptor_statement +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="357" height="42"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="66" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">DEALLOCATE</text> + <rect x="117" y="22" width="26" height="18" class="terminal" rx="4"/> + <text class="terminal" x="121" y="34">SQL</text> + <rect x="171" y="1" width="68" height="18" class="terminal" rx="4"/> + <text class="terminal" x="175" y="13">DESCRIPTOR</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#descriptor-name" xlink:title="descriptor_name" shape="rect"> + <rect x="247" y="1" width="86" height="18" class="nonterminal"/> + <text class="nonterminal" x="251" y="13">descriptor_name</text></a><path class="line" d="m17 10 h2 m0 0 h4 m66 0 h4 m20 0 h10 m0 0 h24 m-54 0 h20 m34 0 h20 m-74 0 q10 0 10 10 m54 0 q0 -10 10 -10 m-64 10 v1 m54 0 v-1 m-54 1 q0 10 10 10 m34 0 q10 0 10 -10 m-44 10 h4 m26 0 h4 m20 -21 h4 m68 0 h4 m0 0 h4 m86 0 h4 m3 0 h-3"/> + <polygon points="347 10 355 6 355 14"/> + <polygon points="347 10 339 6 339 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#deallocate-descriptor-statement" title="deallocate_descriptor_statement" shape="rect">deallocate_descriptor_statement</a></div> + <div>         ::= 'DEALLOCATE' 'SQL'? 'DESCRIPTOR' <a href="#descriptor-name" title="descriptor_name" shape="rect">descriptor_name</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#sql-descriptor-statement" title="sql-descriptor-statement">sql-descriptor-statement</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + get_descriptor_statement +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="453" height="42"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="24" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">GET</text> + <rect x="75" y="22" width="26" height="18" class="terminal" rx="4"/> + <text class="terminal" x="79" y="34">SQL</text> + <rect x="129" y="1" width="68" height="18" class="terminal" rx="4"/> + <text class="terminal" x="133" y="13">DESCRIPTOR</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#descriptor-name" xlink:title="descriptor_name" shape="rect"> + <rect x="205" y="1" width="86" height="18" class="nonterminal"/> + <text class="nonterminal" x="209" y="13">descriptor_name</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#get-descriptor-information" xlink:title="get_descriptor_information" shape="rect"> + <rect x="299" y="1" width="130" height="18" class="nonterminal"/> + <text class="nonterminal" x="303" y="13">get_descriptor_information</text></a><path class="line" d="m17 10 h2 m0 0 h4 m24 0 h4 m20 0 h10 m0 0 h24 m-54 0 h20 m34 0 h20 m-74 0 q10 0 10 10 m54 0 q0 -10 10 -10 m-64 10 v1 m54 0 v-1 m-54 1 q0 10 10 10 m34 0 q10 0 10 -10 m-44 10 h4 m26 0 h4 m20 -21 h4 m68 0 h4 m0 0 h4 m86 0 h4 m0 0 h4 m130 0 h4 m3 0 h-3"/> + <polygon points="443 10 451 6 451 14"/> + <polygon points="443 10 435 6 435 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#get-descriptor-statement" title="get_descriptor_statement" shape="rect">get_descriptor_statement</a></div> + <div>         ::= 'GET' 'SQL'? 'DESCRIPTOR' <a href="#descriptor-name" title="descriptor_name" shape="rect">descriptor_name</a> <a href="#get-descriptor-information" title="get_descriptor_information" shape="rect">get_descriptor_information</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#sql-descriptor-statement" title="sql-descriptor-statement">sql-descriptor-statement</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + get_descriptor_information +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="413" height="105"> + <polygon points="9 38 1 34 1 42"/> + <polygon points="17 38 9 34 9 42"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#get-header-information" xlink:title="get_header_information" shape="rect"> + <rect x="63" y="29" width="120" height="18" class="nonterminal"/> + <text class="nonterminal" x="67" y="41">get_header_information</text></a><rect x="63" y="1" width="8" height="18" class="terminal" rx="4"/> + <text class="terminal" x="67" y="13">,</text> + <rect x="43" y="85" width="36" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="97">VALUE</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#simple-value-specification" xlink:title="simple_value_specification" shape="rect"> + <rect x="87" y="85" width="128" height="18" class="nonterminal"/> + <text class="nonterminal" x="91" y="97">simple_value_specification</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#get-item-information" xlink:title="get_item_information" shape="rect"> + <rect x="243" y="85" width="106" height="18" class="nonterminal"/> + <text class="nonterminal" x="247" y="97">get_item_information</text></a><rect x="243" y="57" width="8" height="18" class="terminal" rx="4"/> + <text class="terminal" x="247" y="69">,</text> + <path class="line" d="m17 38 h2 m40 0 h4 m120 0 h4 m-148 0 l20 0 m-1 0 q-9 0 -9 -10 l0 -8 q0 -10 10 -10 m128 28 l20 0 m-20 0 q10 0 10 -10 l0 -8 q0 -10 -10 -10 m-128 0 h4 m8 0 h4 m0 0 h112 m20 28 h166 m-354 0 h20 m334 0 h20 m-374 0 q10 0 10 10 m354 0 q0 -10 10 -10 m-364 10 v36 m354 0 v-36 m-354 36 q0 10 10 10 m334 0 q10 0 10 -10 m-344 10 h4 m36 0 h4 m0 0 h4 m128 0 h4 m20 0 h4 m106 0 h4 m-134 0 l20 0 m-1 0 q-9 0 -9 -10 l0 -8 q0 -10 10 -10 m114 28 l20 0 m-20 0 q10 0 10 -10 l0 -8 q0 -10 -10 -10 m-114 0 h4 m8 0 h4 m0 0 h98 m43 -28 h-3"/> + <polygon points="403 38 411 34 411 42"/> + <polygon points="403 38 395 34 395 42"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#get-descriptor-information" title="get_descriptor_information" shape="rect">get_descriptor_information</a></div> + <div>         ::= <a href="#get-header-information" title="get_header_information" shape="rect">get_header_information</a> ( ',' <a href="#get-header-information" title="get_header_information" shape="rect">get_header_information</a> )*</div> + <div>           | 'VALUE' <a href="#simple-value-specification" title="simple_value_specification" shape="rect">simple_value_specification</a> <a href="#get-item-information" title="get_item_information" shape="rect">get_item_information</a> ( ',' <a href="#get-item-information" title="get_item_information" shape="rect">get_item_information</a> )*</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#get-descriptor-statement" title="get-descriptor-statement">get-descriptor-statement</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + get_header_information +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="321" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#simple-target-specification-1" xlink:title="simple_target_specification_1" shape="rect"> + <rect x="23" y="1" width="142" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">simple_target_specification_1</text></a><rect x="173" y="1" width="14" height="18" class="terminal" rx="4"/> + <text class="terminal" x="177" y="13">=</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#header-item-name" xlink:title="header_item_name" shape="rect"> + <rect x="195" y="1" width="102" height="18" class="nonterminal"/> + <text class="nonterminal" x="199" y="13">header_item_name</text></a><path class="line" d="m17 10 h2 m0 0 h4 m142 0 h4 m0 0 h4 m14 0 h4 m0 0 h4 m102 0 h4 m3 0 h-3"/> + <polygon points="311 10 319 6 319 14"/> + <polygon points="311 10 303 6 303 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#get-header-information" title="get_header_information" shape="rect">get_header_information</a></div> + <div>         ::= <a href="#simple-target-specification-1" title="simple_target_specification_1" shape="rect">simple_target_specification_1</a> '=' <a href="#header-item-name" title="header_item_name" shape="rect">header_item_name</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#get-descriptor-information" title="get-descriptor-information">get-descriptor-information</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + header_item_name +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="225" height="133"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="43" y="1" width="40" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="13">COUNT</text> + <rect x="43" y="29" width="52" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="41">KEY_TYPE</text> + <rect x="43" y="57" width="106" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="69">DYNAMIC_FUNCTION</text> + <rect x="43" y="85" width="138" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="97">DYNAMIC_FUNCTION_CODE</text> + <rect x="43" y="113" width="98" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="125">TOP_LEVEL_COUNT</text> + <path class="line" d="m17 10 h2 m20 0 h4 m40 0 h4 m0 0 h98 m-166 0 h20 m146 0 h20 m-186 0 q10 0 10 10 m166 0 q0 -10 10 -10 m-176 10 v8 m166 0 v-8 m-166 8 q0 10 10 10 m146 0 q10 0 10 -10 m-156 10 h4 m52 0 h4 m0 0 h86 m-156 -10 v20 m166 0 v-20 m-166 20 v8 m166 0 v-8 m-166 8 q0 10 10 10 m146 0 q10 0 10 -10 m-156 10 h4 m106 0 h4 m0 0 h32 m-156 -10 v20 m166 0 v-20 m-166 20 v8 m166 0 v-8 m-166 8 q0 10 10 10 m146 0 q10 0 10 -10 m-156 10 h4 m138 0 h4 m-156 -10 v20 m166 0 v-20 m-166 20 v8 m166 0 v-8 m-166 8 q0 10 10 10 m146 0 q10 0 10 -10 m-156 10 h4 m98 0 h4 m0 0 h40 m23 -112 h-3"/> + <polygon points="215 10 223 6 223 14"/> + <polygon points="215 10 207 6 207 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#header-item-name" title="header_item_name" shape="rect">header_item_name</a></div> + <div>         ::= 'COUNT'</div> + <div>           | 'KEY_TYPE'</div> + <div>           | 'DYNAMIC_FUNCTION'</div> + <div>           | 'DYNAMIC_FUNCTION_CODE'</div> + <div>           | 'TOP_LEVEL_COUNT'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#get-header-information" title="get-header-information">get-header-information</a></li><li><a href="#set-header-information" title="set-header-information">set-header-information</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + get_item_information +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="331" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#simple-target-specification-2" xlink:title="simple_target_specification_2" shape="rect"> + <rect x="23" y="1" width="142" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">simple_target_specification_2</text></a><rect x="173" y="1" width="14" height="18" class="terminal" rx="4"/> + <text class="terminal" x="177" y="13">=</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#descriptor-item-name" xlink:title="descriptor_item_name" shape="rect"> + <rect x="195" y="1" width="112" height="18" class="nonterminal"/> + <text class="nonterminal" x="199" y="13">descriptor_item_name</text></a><path class="line" d="m17 10 h2 m0 0 h4 m142 0 h4 m0 0 h4 m14 0 h4 m0 0 h4 m112 0 h4 m3 0 h-3"/> + <polygon points="321 10 329 6 329 14"/> + <polygon points="321 10 313 6 313 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#get-item-information" title="get_item_information" shape="rect">get_item_information</a></div> + <div>         ::= <a href="#simple-target-specification-2" title="simple_target_specification_2" shape="rect">simple_target_specification_2</a> '=' <a href="#descriptor-item-name" title="descriptor_item_name" shape="rect">descriptor_item_name</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#get-descriptor-information" title="get-descriptor-information">get-descriptor-information</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + simple_target_specification_1 +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="177" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#simple-target-specification" xlink:title="simple_target_specification" shape="rect"> + <rect x="23" y="1" width="130" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">simple_target_specification</text></a><path class="line" d="m17 10 h2 m0 0 h4 m130 0 h4 m3 0 h-3"/> + <polygon points="167 10 175 6 175 14"/> + <polygon points="167 10 159 6 159 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#simple-target-specification-1" title="simple_target_specification_1" shape="rect">simple_target_specification_1</a></div> + <div>         ::= <a href="#simple-target-specification" title="simple_target_specification" shape="rect">simple_target_specification</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#get-header-information" title="get-header-information">get-header-information</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + simple_target_specification_2 +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="177" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#simple-target-specification" xlink:title="simple_target_specification" shape="rect"> + <rect x="23" y="1" width="130" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">simple_target_specification</text></a><path class="line" d="m17 10 h2 m0 0 h4 m130 0 h4 m3 0 h-3"/> + <polygon points="167 10 175 6 175 14"/> + <polygon points="167 10 159 6 159 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#simple-target-specification-2" title="simple_target_specification_2" shape="rect">simple_target_specification_2</a></div> + <div>         ::= <a href="#simple-target-specification" title="simple_target_specification" shape="rect">simple_target_specification</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#get-item-information" title="get-item-information">get-item-information</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + descriptor_item_name +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="253" height="1029"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="43" y="1" width="70" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="13">CARDINALITY</text> + <rect x="43" y="29" width="134" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="41">CHARACTER_SET_CATALOG</text> + <rect x="43" y="57" width="118" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="69">CHARACTER_SET_NAME</text> + <rect x="43" y="85" width="130" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="97">CHARACTER_SET_SCHEMA</text> + <rect x="43" y="113" width="112" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="125">COLLATION_CATALOG</text> + <rect x="43" y="141" width="94" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="153">COLLATION_NAME</text> + <rect x="43" y="169" width="106" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="181">COLLATION_SCHEMA</text> + <rect x="43" y="197" width="32" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="209">DATA</text> + <rect x="43" y="225" width="136" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="237">DATETIME_INTERVAL_CODE</text> + <rect x="43" y="253" width="162" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="265">DATETIME_INTERVAL_PRECISION</text> + <rect x="43" y="281" width="44" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="293">DEGREE</text> + <rect x="43" y="309" width="60" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="321">INDICATOR</text> + <rect x="43" y="337" width="70" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="349">KEY_MEMBER</text> + <rect x="43" y="365" width="44" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="377">LENGTH</text> + <rect x="43" y="393" width="34" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="405">LEVEL</text> + <rect x="43" y="421" width="34" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="433">NAME</text> + <rect x="43" y="449" width="54" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="461">NULLABLE</text> + <rect x="43" y="477" width="80" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="489">OCTET_LENGTH</text> + <rect x="43" y="505" width="98" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="517">PARAMETER_MODE</text> + <rect x="43" y="533" width="166" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="545">PARAMETER_ORDINAL_POSITION</text> + <rect x="43" y="561" width="160" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="573">PARAMETER_SPECIFIC_CATALOG</text> + <rect x="43" y="589" width="144" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="601">PARAMETER_SPECIFIC_NAME</text> + <rect x="43" y="617" width="156" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="629">PARAMETER_SPECIFIC_SCHEMA</text> + <rect x="43" y="645" width="60" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="657">PRECISION</text> + <rect x="43" y="673" width="124" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="685">RETURNED_CARDINALITY</text> + <rect x="43" y="701" width="98" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="713">RETURNED_LENGTH</text> + <rect x="43" y="729" width="134" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="741">RETURNED_OCTET_LENGTH</text> + <rect x="43" y="757" width="36" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="769">SCALE</text> + <rect x="43" y="785" width="88" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="797">SCOPE_CATALOG</text> + <rect x="43" y="813" width="72" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="825">SCOPE_NAME</text> + <rect x="43" y="841" width="84" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="853">SCOPE_SCHEMA</text> + <rect x="43" y="869" width="30" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="881">TYPE</text> + <rect x="43" y="897" width="56" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="909">UNNAMED</text> + <rect x="43" y="925" width="156" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="937">USER_DEFINED_TYPE_CATALOG</text> + <rect x="43" y="953" width="138" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="965">USER_DEFINED_TYPE_NAME</text> + <rect x="43" y="981" width="150" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="993">USER_DEFINED_TYPE_SCHEMA</text> + <rect x="43" y="1009" width="138" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="1021">USER_DEFINED_TYPE_CODE</text> + <path class="line" d="m17 10 h2 m20 0 h4 m70 0 h4 m0 0 h96 m-194 0 h20 m174 0 h20 m-214 0 q10 0 10 10 m194 0 q0 -10 10 -10 m-204 10 v8 m194 0 v-8 m-194 8 q0 10 10 10 m174 0 q10 0 10 -10 m-184 10 h4 m134 0 h4 m0 0 h32 m-184 -10 v20 m194 0 v-20 m-194 20 v8 m194 0 v-8 m-194 8 q0 10 10 10 m174 0 q10 0 10 -10 m-184 10 h4 m118 0 h4 m0 0 h48 m-184 -10 v20 m194 0 v-20 m-194 20 v8 m194 0 v-8 m-194 8 q0 10 10 10 m174 0 q10 0 10 -10 m-184 10 h4 m130 0 h4 m0 0 h36 m-184 -10 v20 m194 0 v-20 m-194 20 v8 m194 0 v-8 m-194 8 q0 10 10 10 m174 0 q10 0 10 -10 m-184 10 h4 m112 0 h4 m0 0 h54 m-184 -10 v20 m194 0 v-20 m-194 20 v8 m194 0 v-8 m-194 8 q0 10 10 10 m174 0 q10 0 10 -10 m-184 10 h4 m94 0 h4 m0 0 h72 m-184 -10 v20 m194 0 v-20 m-194 20 v8 m194 0 v-8 m-194 8 q0 10 10 10 m174 0 q10 0 10 -10 m-184 10 h4 m106 0 h4 m0 0 h60 m-184 -10 v20 m194 0 v-20 m-194 20 v8 m194 0 v-8 m-194 8 q0 10 10 10 m174 0 q10 0 10 -10 m-184 10 h4 m32 0 h4 m0 0 h134 m-184 -10 v20 m194 0 v-20 m-194 20 v8 m194 0 v-8 m-194 8 q0 10 10 10 m174 0 q10 0 10 -10 m-184 10 h4 m136 0 h4 m0 0 h30 m-184 -10 v20 m194 0 v-20 m-194 20 v8 m194 0 v-8 m-194 8 q0 10 10 10 m174 0 q10 0 10 -10 m-184 10 h4 m162 0 h4 m0 0 h4 m-184 -10 v20 m194 0 v-20 m-194 20 v8 m194 0 v-8 m-194 8 q0 10 10 10 m174 0 q10 0 10 -10 m-184 10 h4 m44 0 h4 m0 0 h122 m-184 -10 v20 m194 0 v-20 m-194 20 v8 m194 0 v-8 m-194 8 q0 10 10 10 m174 0 q10 0 10 -10 m-184 10 h4 m60 0 h4 m0 0 h106 m-184 -10 v20 m194 0 v-20 m-194 20 v8 m194 0 v-8 m-194 8 q0 10 10 10 m174 0 q10 0 10 -10 m-184 10 h4 m70 0 h4 m0 0 h96 m-184 -10 v20 m194 0 v-20 m-194 20 v8 m194 0 v-8 m-194 8 q0 10 10 10 m174 0 q10 0 10 -10 m-184 10 h4 m44 0 h4 m0 0 h122 m-184 -10 v20 m194 0 v-20 m-194 20 v8 m194 0 v-8 m-194 8 q0 10 10 10 m174 0 q10 0 10 -10 m-184 10 h4 m34 0 h4 m0 0 h132 m-184 -10 v20 m194 0 v-20 m-194 20 v8 m194 0 v-8 m-194 8 q0 10 10 10 m174 0 q10 0 10 -10 m-184 10 h4 m34 0 h4 m0 0 h132 m-184 -10 v20 m194 0 v-20 m-194 20 v8 m194 0 v-8 m-194 8 q0 10 10 10 m174 0 q10 0 10 -10 m-184 10 h4 m54 0 h4 m0 0 h112 m-184 -10 v20 m194 0 v-20 m-194 20 v8 m194 0 v-8 m-194 8 q0 10 10 10 m174 0 q10 0 10 -10 m-184 10 h4 m80 0 h4 m0 0 h86 m-184 -10 v20 m194 0 v-20 m-194 20 v8 m194 0 v-8 m-194 8 q0 10 10 10 m174 0 q10 0 10 -10 m-184 10 h4 m98 0 h4 m0 0 h68 m-184 -10 v20 m194 0 v-20 m-194 20 v8 m194 0 v-8 m-194 8 q0 10 10 10 m174 0 q10 0 10 -10 m-184 10 h4 m166 0 h4 m-184 -10 v20 m194 0 v-20 m-194 20 v8 m194 0 v-8 m-194 8 q0 10 10 10 m174 0 q10 0 10 -10 m-184 10 h4 m160 0 h4 m0 0 h6 m-184 -10 v20 m194 0 v-20 m-194 20 v8 m194 0 v-8 m-194 8 q0 10 10 10 m174 0 q10 0 10 -10 m-184 10 h4 m144 0 h4 m0 0 h22 m-184 -10 v20 m194 0 v-20 m-194 20 v8 m194 0 v-8 m-194 8 q0 10 10 10 m174 0 q10 0 10 -10 m-184 10 h4 m156 0 h4 m0 0 h10 m-184 -10 v20 m194 0 v-20 m-194 20 v8 m194 0 v-8 m-194 8 q0 10 10 10 m174 0 q10 0 10 -10 m-184 10 h4 m60 0 h4 m0 0 h106 m-184 -10 v20 m194 0 v-20 m-194 20 v8 m194 0 v-8 m-194 8 q0 10 10 10 m174 0 q10 0 10 -10 m-184 10 h4 m124 0 h4 m0 0 h42 m-184 -10 v20 m194 0 v-20 m-194 20 v8 m194 0 v-8 m-194 8 q0 10 10 10 m174 0 q10 0 10 -10 m-184 10 h4 m98 0 h4 m0 0 h68 m-184 -10 v20 m194 0 v-20 m-194 20 v8 m194 0 v-8 m-194 8 q0 10 10 10 m174 0 q10 0 10 -10 m-184 10 h4 m134 0 h4 m0 0 h32 m-184 -10 v20 m194 0 v-20 m-194 20 v8 m194 0 v-8 m-194 8 q0 10 10 10 m174 0 q10 0 10 -10 m-184 10 h4 m36 0 h4 m0 0 h130 m-184 -10 v20 m194 0 v-20 m-194 20 v8 m194 0 v-8 m-194 8 q0 10 10 10 m174 0 q10 0 10 -10 m-184 10 h4 m88 0 h4 m0 0 h78 m-184 -10 v20 m194 0 v-20 m-194 20 v8 m194 0 v-8 m-194 8 q0 10 10 10 m174 0 q10 0 10 -10 m-184 10 h4 m72 0 h4 m0 0 h94 m-184 -10 v20 m194 0 v-20 m-194 20 v8 m194 0 v-8 m-194 8 q0 10 10 10 m174 0 q10 0 10 -10 m-184 10 h4 m84 0 h4 m0 0 h82 m-184 -10 v20 m194 0 v-20 m-194 20 v8 m194 0 v-8 m-194 8 q0 10 10 10 m174 0 q10 0 10 -10 m-184 10 h4 m30 0 h4 m0 0 h136 m-184 -10 v20 m194 0 v-20 m-194 20 v8 m194 0 v-8 m-194 8 q0 10 10 10 m174 0 q10 0 10 -10 m-184 10 h4 m56 0 h4 m0 0 h110 m-184 -10 v20 m194 0 v-20 m-194 20 v8 m194 0 v-8 m-194 8 q0 10 10 10 m174 0 q10 0 10 -10 m-184 10 h4 m156 0 h4 m0 0 h10 m-184 -10 v20 m194 0 v-20 m-194 20 v8 m194 0 v-8 m-194 8 q0 10 10 10 m174 0 q10 0 10 -10 m-184 10 h4 m138 0 h4 m0 0 h28 m-184 -10 v20 m194 0 v-20 m-194 20 v8 m194 0 v-8 m-194 8 q0 10 10 10 m174 0 q10 0 10 -10 m-184 10 h4 m150 0 h4 m0 0 h16 m-184 -10 v20 m194 0 v-20 m-194 20 v8 m194 0 v-8 m-194 8 q0 10 10 10 m174 0 q10 0 10 -10 m-184 10 h4 m138 0 h4 m0 0 h28 m23 -1008 h-3"/> + <polygon points="243 10 251 6 251 14"/> + <polygon points="243 10 235 6 235 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#descriptor-item-name" title="descriptor_item_name" shape="rect">descriptor_item_name</a></div> + <div>         ::= 'CARDINALITY'</div> + <div>           | 'CHARACTER_SET_CATALOG'</div> + <div>           | 'CHARACTER_SET_NAME'</div> + <div>           | 'CHARACTER_SET_SCHEMA'</div> + <div>           | 'COLLATION_CATALOG'</div> + <div>           | 'COLLATION_NAME'</div> + <div>           | 'COLLATION_SCHEMA'</div> + <div>           | 'DATA'</div> + <div>           | 'DATETIME_INTERVAL_CODE'</div> + <div>           | 'DATETIME_INTERVAL_PRECISION'</div> + <div>           | 'DEGREE'</div> + <div>           | 'INDICATOR'</div> + <div>           | 'KEY_MEMBER'</div> + <div>           | 'LENGTH'</div> + <div>           | 'LEVEL'</div> + <div>           | 'NAME'</div> + <div>           | 'NULLABLE'</div> + <div>           | 'OCTET_LENGTH'</div> + <div>           | 'PARAMETER_MODE'</div> + <div>           | 'PARAMETER_ORDINAL_POSITION'</div> + <div>           | 'PARAMETER_SPECIFIC_CATALOG'</div> + <div>           | 'PARAMETER_SPECIFIC_NAME'</div> + <div>           | 'PARAMETER_SPECIFIC_SCHEMA'</div> + <div>           | 'PRECISION'</div> + <div>           | 'RETURNED_CARDINALITY'</div> + <div>           | 'RETURNED_LENGTH'</div> + <div>           | 'RETURNED_OCTET_LENGTH'</div> + <div>           | 'SCALE'</div> + <div>           | 'SCOPE_CATALOG'</div> + <div>           | 'SCOPE_NAME'</div> + <div>           | 'SCOPE_SCHEMA'</div> + <div>           | 'TYPE'</div> + <div>           | 'UNNAMED'</div> + <div>           | 'USER_DEFINED_TYPE_CATALOG'</div> + <div>           | 'USER_DEFINED_TYPE_NAME'</div> + <div>           | 'USER_DEFINED_TYPE_SCHEMA'</div> + <div>           | 'USER_DEFINED_TYPE_CODE'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#get-item-information" title="get-item-information">get-item-information</a></li><li><a href="#set-item-information" title="set-item-information">set-item-information</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + set_descriptor_statement +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="453" height="42"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="24" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">SET</text> + <rect x="75" y="22" width="26" height="18" class="terminal" rx="4"/> + <text class="terminal" x="79" y="34">SQL</text> + <rect x="129" y="1" width="68" height="18" class="terminal" rx="4"/> + <text class="terminal" x="133" y="13">DESCRIPTOR</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#descriptor-name" xlink:title="descriptor_name" shape="rect"> + <rect x="205" y="1" width="86" height="18" class="nonterminal"/> + <text class="nonterminal" x="209" y="13">descriptor_name</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#set-descriptor-information" xlink:title="set_descriptor_information" shape="rect"> + <rect x="299" y="1" width="130" height="18" class="nonterminal"/> + <text class="nonterminal" x="303" y="13">set_descriptor_information</text></a><path class="line" d="m17 10 h2 m0 0 h4 m24 0 h4 m20 0 h10 m0 0 h24 m-54 0 h20 m34 0 h20 m-74 0 q10 0 10 10 m54 0 q0 -10 10 -10 m-64 10 v1 m54 0 v-1 m-54 1 q0 10 10 10 m34 0 q10 0 10 -10 m-44 10 h4 m26 0 h4 m20 -21 h4 m68 0 h4 m0 0 h4 m86 0 h4 m0 0 h4 m130 0 h4 m3 0 h-3"/> + <polygon points="443 10 451 6 451 14"/> + <polygon points="443 10 435 6 435 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#set-descriptor-statement" title="set_descriptor_statement" shape="rect">set_descriptor_statement</a></div> + <div>         ::= 'SET' 'SQL'? 'DESCRIPTOR' <a href="#descriptor-name" title="descriptor_name" shape="rect">descriptor_name</a> <a href="#set-descriptor-information" title="set_descriptor_information" shape="rect">set_descriptor_information</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#sql-descriptor-statement" title="sql-descriptor-statement">sql-descriptor-statement</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + set_descriptor_information +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="413" height="105"> + <polygon points="9 38 1 34 1 42"/> + <polygon points="17 38 9 34 9 42"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#set-header-information" xlink:title="set_header_information" shape="rect"> + <rect x="63" y="29" width="120" height="18" class="nonterminal"/> + <text class="nonterminal" x="67" y="41">set_header_information</text></a><rect x="63" y="1" width="8" height="18" class="terminal" rx="4"/> + <text class="terminal" x="67" y="13">,</text> + <rect x="43" y="85" width="36" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="97">VALUE</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#simple-value-specification" xlink:title="simple_value_specification" shape="rect"> + <rect x="87" y="85" width="128" height="18" class="nonterminal"/> + <text class="nonterminal" x="91" y="97">simple_value_specification</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#set-item-information" xlink:title="set_item_information" shape="rect"> + <rect x="243" y="85" width="106" height="18" class="nonterminal"/> + <text class="nonterminal" x="247" y="97">set_item_information</text></a><rect x="243" y="57" width="8" height="18" class="terminal" rx="4"/> + <text class="terminal" x="247" y="69">,</text> + <path class="line" d="m17 38 h2 m40 0 h4 m120 0 h4 m-148 0 l20 0 m-1 0 q-9 0 -9 -10 l0 -8 q0 -10 10 -10 m128 28 l20 0 m-20 0 q10 0 10 -10 l0 -8 q0 -10 -10 -10 m-128 0 h4 m8 0 h4 m0 0 h112 m20 28 h166 m-354 0 h20 m334 0 h20 m-374 0 q10 0 10 10 m354 0 q0 -10 10 -10 m-364 10 v36 m354 0 v-36 m-354 36 q0 10 10 10 m334 0 q10 0 10 -10 m-344 10 h4 m36 0 h4 m0 0 h4 m128 0 h4 m20 0 h4 m106 0 h4 m-134 0 l20 0 m-1 0 q-9 0 -9 -10 l0 -8 q0 -10 10 -10 m114 28 l20 0 m-20 0 q10 0 10 -10 l0 -8 q0 -10 -10 -10 m-114 0 h4 m8 0 h4 m0 0 h98 m43 -28 h-3"/> + <polygon points="403 38 411 34 411 42"/> + <polygon points="403 38 395 34 395 42"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#set-descriptor-information" title="set_descriptor_information" shape="rect">set_descriptor_information</a></div> + <div>         ::= <a href="#set-header-information" title="set_header_information" shape="rect">set_header_information</a> ( ',' <a href="#set-header-information" title="set_header_information" shape="rect">set_header_information</a> )*</div> + <div>           | 'VALUE' <a href="#simple-value-specification" title="simple_value_specification" shape="rect">simple_value_specification</a> <a href="#set-item-information" title="set_item_information" shape="rect">set_item_information</a> ( ',' <a href="#set-item-information" title="set_item_information" shape="rect">set_item_information</a> )*</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#set-descriptor-statement" title="set-descriptor-statement">set-descriptor-statement</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + set_header_information +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="307" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#header-item-name" xlink:title="header_item_name" shape="rect"> + <rect x="23" y="1" width="102" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">header_item_name</text></a><rect x="133" y="1" width="14" height="18" class="terminal" rx="4"/> + <text class="terminal" x="137" y="13">=</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#simple-value-specification" xlink:title="simple_value_specification" shape="rect"> + <rect x="155" y="1" width="128" height="18" class="nonterminal"/> + <text class="nonterminal" x="159" y="13">simple_value_specification</text></a><path class="line" d="m17 10 h2 m0 0 h4 m102 0 h4 m0 0 h4 m14 0 h4 m0 0 h4 m128 0 h4 m3 0 h-3"/> + <polygon points="297 10 305 6 305 14"/> + <polygon points="297 10 289 6 289 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#set-header-information" title="set_header_information" shape="rect">set_header_information</a></div> + <div>         ::= <a href="#header-item-name" title="header_item_name" shape="rect">header_item_name</a> '=' <a href="#simple-value-specification" title="simple_value_specification" shape="rect">simple_value_specification</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#set-descriptor-information" title="set-descriptor-information">set-descriptor-information</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + set_item_information +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="317" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#descriptor-item-name" xlink:title="descriptor_item_name" shape="rect"> + <rect x="23" y="1" width="112" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">descriptor_item_name</text></a><rect x="143" y="1" width="14" height="18" class="terminal" rx="4"/> + <text class="terminal" x="147" y="13">=</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#simple-value-specification" xlink:title="simple_value_specification" shape="rect"> + <rect x="165" y="1" width="128" height="18" class="nonterminal"/> + <text class="nonterminal" x="169" y="13">simple_value_specification</text></a><path class="line" d="m17 10 h2 m0 0 h4 m112 0 h4 m0 0 h4 m14 0 h4 m0 0 h4 m128 0 h4 m3 0 h-3"/> + <polygon points="307 10 315 6 315 14"/> + <polygon points="307 10 299 6 299 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#set-item-information" title="set_item_information" shape="rect">set_item_information</a></div> + <div>         ::= <a href="#descriptor-item-name" title="descriptor_item_name" shape="rect">descriptor_item_name</a> '=' <a href="#simple-value-specification" title="simple_value_specification" shape="rect">simple_value_specification</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#set-descriptor-information" title="set-descriptor-information">set-descriptor-information</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + prepare_statement +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="513" height="42"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="50" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">PREPARE</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#sql-identifier" xlink:title="SQL_identifier" shape="rect"> + <rect x="81" y="1" width="70" height="18" class="nonterminal"/> + <text class="nonterminal" x="85" y="13">SQL_identifier</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#attributes-specification" xlink:title="attributes_specification" shape="rect"> + <rect x="179" y="22" width="110" height="18" class="nonterminal"/> + <text class="nonterminal" x="183" y="34">attributes_specification</text></a><rect x="317" y="1" width="36" height="18" class="terminal" rx="4"/> + <text class="terminal" x="321" y="13">FROM</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#simple-value-specification" xlink:title="simple_value_specification" shape="rect"> + <rect x="361" y="1" width="128" height="18" class="nonterminal"/> + <text class="nonterminal" x="365" y="13">simple_value_specification</text></a><path class="line" d="m17 10 h2 m0 0 h4 m50 0 h4 m0 0 h4 m70 0 h4 m20 0 h10 m0 0 h108 m-138 0 h20 m118 0 h20 m-158 0 q10 0 10 10 m138 0 q0 -10 10 -10 m-148 10 v1 m138 0 v-1 m-138 1 q0 10 10 10 m118 0 q10 0 10 -10 m-128 10 h4 m110 0 h4 m20 -21 h4 m36 0 h4 m0 0 h4 m128 0 h4 m3 0 h-3"/> + <polygon points="503 10 511 6 511 14"/> + <polygon points="503 10 495 6 495 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#prepare-statement" title="prepare_statement" shape="rect">prepare_statement</a></div> + <div>         ::= 'PREPARE' <a href="#sql-identifier" title="SQL_identifier" shape="rect">SQL_identifier</a> <a href="#attributes-specification" title="attributes_specification" shape="rect">attributes_specification</a>? 'FROM' <a href="#simple-value-specification" title="simple_value_specification" shape="rect">simple_value_specification</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#sql-dynamic-statement" title="sql-dynamic-statement">sql-dynamic-statement</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + attributes_specification +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="247" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="64" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">ATTRIBUTES</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#simple-value-specification" xlink:title="simple_value_specification" shape="rect"> + <rect x="95" y="1" width="128" height="18" class="nonterminal"/> + <text class="nonterminal" x="99" y="13">simple_value_specification</text></a><path class="line" d="m17 10 h2 m0 0 h4 m64 0 h4 m0 0 h4 m128 0 h4 m3 0 h-3"/> + <polygon points="237 10 245 6 245 14"/> + <polygon points="237 10 229 6 229 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#attributes-specification" title="attributes_specification" shape="rect">attributes_specification</a></div> + <div>         ::= 'ATTRIBUTES' <a href="#simple-value-specification" title="simple_value_specification" shape="rect">simple_value_specification</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#prepare-statement" title="prepare-statement">prepare-statement</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + preparable_statement +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="317" height="161"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#preparable-sql-data-statement" xlink:title="preparable_SQL_data_statement" shape="rect"> + <rect x="43" y="1" width="164" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">preparable_SQL_data_statement</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#preparable-sql-schema-statement" xlink:title="preparable_SQL_schema_statement" shape="rect"> + <rect x="43" y="29" width="180" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">preparable_SQL_schema_statement</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#preparable-sql-transaction-statement" xlink:title="preparable_SQL_transaction_statement" shape="rect"> + <rect x="43" y="57" width="192" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="69">preparable_SQL_transaction_statement</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#preparable-sql-control-statement" xlink:title="preparable_SQL_control_statement" shape="rect"> + <rect x="43" y="85" width="172" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="97">preparable_SQL_control_statement</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#preparable-sql-session-statement" xlink:title="preparable_SQL_session_statement" shape="rect"> + <rect x="43" y="113" width="178" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="125">preparable_SQL_session_statement</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#preparable-implementation-defined-statement" xlink:title="preparable_implementation_defined_statement" shape="rect"> + <rect x="43" y="141" width="230" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="153">preparable_implementation_defined_statement</text></a><path class="line" d="m17 10 h2 m20 0 h4 m164 0 h4 m0 0 h66 m-258 0 h20 m238 0 h20 m-278 0 q10 0 10 10 m258 0 q0 -10 10 -10 m-268 10 v8 m258 0 v-8 m-258 8 q0 10 10 10 m238 0 q10 0 10 -10 m-248 10 h4 m180 0 h4 m0 0 h50 m-248 -10 v20 m258 0 v-20 m-258 20 v8 m258 0 v-8 m-258 8 q0 10 10 10 m238 0 q10 0 10 -10 m-248 10 h4 m192 0 h4 m0 0 h38 m-248 -10 v20 m258 0 v-20 m-258 20 v8 m258 0 v-8 m-258 8 q0 10 10 10 m238 0 q10 0 10 -10 m-248 10 h4 m172 0 h4 m0 0 h58 m-248 -10 v20 m258 0 v-20 m-258 20 v8 m258 0 v-8 m-258 8 q0 10 10 10 m238 0 q10 0 10 -10 m-248 10 h4 m178 0 h4 m0 0 h52 m-248 -10 v20 m258 0 v-20 m-258 20 v8 m258 0 v-8 m-258 8 q0 10 10 10 m238 0 q10 0 10 -10 m-248 10 h4 m230 0 h4 m23 -140 h-3"/> + <polygon points="307 10 315 6 315 14"/> + <polygon points="307 10 299 6 299 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#preparable-statement" title="preparable_statement" shape="rect">preparable_statement</a></div> + <div>         ::= <a href="#preparable-sql-data-statement" title="preparable_SQL_data_statement" shape="rect">preparable_SQL_data_statement</a></div> + <div>           | <a href="#preparable-sql-schema-statement" title="preparable_SQL_schema_statement" shape="rect">preparable_SQL_schema_statement</a></div> + <div>           | <a href="#preparable-sql-transaction-statement" title="preparable_SQL_transaction_statement" shape="rect">preparable_SQL_transaction_statement</a></div> + <div>           | <a href="#preparable-sql-control-statement" title="preparable_SQL_control_statement" shape="rect">preparable_SQL_control_statement</a></div> + <div>           | <a href="#preparable-sql-session-statement" title="preparable_SQL_session_statement" shape="rect">preparable_SQL_session_statement</a></div> + <div>           | <a href="#preparable-implementation-defined-statement" title="preparable_implementation_defined_statement" shape="rect">preparable_implementation_defined_statement</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Not referenced by any. + </div></td></tr></tbody></table> + + +====================================================================================================================== + preparable_SQL_data_statement +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="335" height="245"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#delete-statement-searched" xlink:title="delete_statement_searched" shape="rect"> + <rect x="43" y="1" width="140" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">delete_statement_searched</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#dynamic-single-row-select-statement" xlink:title="dynamic_single_row_select_statement" shape="rect"> + <rect x="43" y="29" width="188" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">dynamic_single_row_select_statement</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#insert-statement" xlink:title="insert_statement" shape="rect"> + <rect x="43" y="57" width="88" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="69">insert_statement</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#dynamic-select-statement" xlink:title="dynamic_select_statement" shape="rect"> + <rect x="43" y="85" width="132" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="97">dynamic_select_statement</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#update-statement-searched" xlink:title="update_statement_searched" shape="rect"> + <rect x="43" y="113" width="144" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="125">update_statement_searched</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#truncate-table-statement" xlink:title="truncate_table_statement" shape="rect"> + <rect x="43" y="141" width="128" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="153">truncate_table_statement</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#merge-statement" xlink:title="merge_statement" shape="rect"> + <rect x="43" y="169" width="94" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="181">merge_statement</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#preparable-dynamic-delete-statement-positioned" xlink:title="preparable_dynamic_delete_statement_positioned" shape="rect"> + <rect x="43" y="197" width="244" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="209">preparable_dynamic_delete_statement_positioned</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#preparable-dynamic-update-statement-positioned" xlink:title="preparable_dynamic_update_statement_positioned" shape="rect"> + <rect x="43" y="225" width="248" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="237">preparable_dynamic_update_statement_positioned</text></a><path class="line" d="m17 10 h2 m20 0 h4 m140 0 h4 m0 0 h108 m-276 0 h20 m256 0 h20 m-296 0 q10 0 10 10 m276 0 q0 -10 10 -10 m-286 10 v8 m276 0 v-8 m-276 8 q0 10 10 10 m256 0 q10 0 10 -10 m-266 10 h4 m188 0 h4 m0 0 h60 m-266 -10 v20 m276 0 v-20 m-276 20 v8 m276 0 v-8 m-276 8 q0 10 10 10 m256 0 q10 0 10 -10 m-266 10 h4 m88 0 h4 m0 0 h160 m-266 -10 v20 m276 0 v-20 m-276 20 v8 m276 0 v-8 m-276 8 q0 10 10 10 m256 0 q10 0 10 -10 m-266 10 h4 m132 0 h4 m0 0 h116 m-266 -10 v20 m276 0 v-20 m-276 20 v8 m276 0 v-8 m-276 8 q0 10 10 10 m256 0 q10 0 10 -10 m-266 10 h4 m144 0 h4 m0 0 h104 m-266 -10 v20 m276 0 v-20 m-276 20 v8 m276 0 v-8 m-276 8 q0 10 10 10 m256 0 q10 0 10 -10 m-266 10 h4 m128 0 h4 m0 0 h120 m-266 -10 v20 m276 0 v-20 m-276 20 v8 m276 0 v-8 m-276 8 q0 10 10 10 m256 0 q10 0 10 -10 m-266 10 h4 m94 0 h4 m0 0 h154 m-266 -10 v20 m276 0 v-20 m-276 20 v8 m276 0 v-8 m-276 8 q0 10 10 10 m256 0 q10 0 10 -10 m-266 10 h4 m244 0 h4 m0 0 h4 m-266 -10 v20 m276 0 v-20 m-276 20 v8 m276 0 v-8 m-276 8 q0 10 10 10 m256 0 q10 0 10 -10 m-266 10 h4 m248 0 h4 m23 -224 h-3"/> + <polygon points="325 10 333 6 333 14"/> + <polygon points="325 10 317 6 317 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#preparable-sql-data-statement" title="preparable_SQL_data_statement" shape="rect">preparable_SQL_data_statement</a></div> + <div>         ::= <a href="#delete-statement-searched" title="delete_statement_searched" shape="rect">delete_statement_searched</a></div> + <div>           | <a href="#dynamic-single-row-select-statement" title="dynamic_single_row_select_statement" shape="rect">dynamic_single_row_select_statement</a></div> + <div>           | <a href="#insert-statement" title="insert_statement" shape="rect">insert_statement</a></div> + <div>           | <a href="#dynamic-select-statement" title="dynamic_select_statement" shape="rect">dynamic_select_statement</a></div> + <div>           | <a href="#update-statement-searched" title="update_statement_searched" shape="rect">update_statement_searched</a></div> + <div>           | <a href="#truncate-table-statement" title="truncate_table_statement" shape="rect">truncate_table_statement</a></div> + <div>           | <a href="#merge-statement" title="merge_statement" shape="rect">merge_statement</a></div> + <div>           | <a href="#preparable-dynamic-delete-statement-positioned" title="preparable_dynamic_delete_statement_positioned" shape="rect">preparable_dynamic_delete_statement_positioned</a></div> + <div>           | <a href="#preparable-dynamic-update-statement-positioned" title="preparable_dynamic_update_statement_positioned" shape="rect">preparable_dynamic_update_statement_positioned</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#preparable-statement" title="preparable-statement">preparable-statement</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + preparable_SQL_schema_statement +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="171" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#sql-schema-statement" xlink:title="SQL_schema_statement" shape="rect"> + <rect x="23" y="1" width="124" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">SQL_schema_statement</text></a><path class="line" d="m17 10 h2 m0 0 h4 m124 0 h4 m3 0 h-3"/> + <polygon points="161 10 169 6 169 14"/> + <polygon points="161 10 153 6 153 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#preparable-sql-schema-statement" title="preparable_SQL_schema_statement" shape="rect">preparable_SQL_schema_statement</a></div> + <div>         ::= <a href="#sql-schema-statement" title="SQL_schema_statement" shape="rect">SQL_schema_statement</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#preparable-statement" title="preparable-statement">preparable-statement</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + preparable_SQL_transaction_statement +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="185" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#sql-transaction-statement" xlink:title="SQL_transaction_statement" shape="rect"> + <rect x="23" y="1" width="138" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">SQL_transaction_statement</text></a><path class="line" d="m17 10 h2 m0 0 h4 m138 0 h4 m3 0 h-3"/> + <polygon points="175 10 183 6 183 14"/> + <polygon points="175 10 167 6 167 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#preparable-sql-transaction-statement" title="preparable_SQL_transaction_statement" shape="rect">preparable_SQL_transaction_statement</a></div> + <div>         ::= <a href="#sql-transaction-statement" title="SQL_transaction_statement" shape="rect">SQL_transaction_statement</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#preparable-statement" title="preparable-statement">preparable-statement</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + preparable_SQL_control_statement +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="165" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#sql-control-statement" xlink:title="SQL_control_statement" shape="rect"> + <rect x="23" y="1" width="118" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">SQL_control_statement</text></a><path class="line" d="m17 10 h2 m0 0 h4 m118 0 h4 m3 0 h-3"/> + <polygon points="155 10 163 6 163 14"/> + <polygon points="155 10 147 6 147 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#preparable-sql-control-statement" title="preparable_SQL_control_statement" shape="rect">preparable_SQL_control_statement</a></div> + <div>         ::= <a href="#sql-control-statement" title="SQL_control_statement" shape="rect">SQL_control_statement</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#preparable-statement" title="preparable-statement">preparable-statement</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + preparable_SQL_session_statement +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="169" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#sql-session-statement" xlink:title="SQL_session_statement" shape="rect"> + <rect x="23" y="1" width="122" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">SQL_session_statement</text></a><path class="line" d="m17 10 h2 m0 0 h4 m122 0 h4 m3 0 h-3"/> + <polygon points="159 10 167 6 167 14"/> + <polygon points="159 10 151 6 151 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#preparable-sql-session-statement" title="preparable_SQL_session_statement" shape="rect">preparable_SQL_session_statement</a></div> + <div>         ::= <a href="#sql-session-statement" title="SQL_session_statement" shape="rect">SQL_session_statement</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#preparable-statement" title="preparable-statement">preparable-statement</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + dynamic_select_statement +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="143" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#cursor-specification" xlink:title="cursor_specification" shape="rect"> + <rect x="23" y="1" width="96" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">cursor_specification</text></a><path class="line" d="m17 10 h2 m0 0 h4 m96 0 h4 m3 0 h-3"/> + <polygon points="133 10 141 6 141 14"/> + <polygon points="133 10 125 6 125 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#dynamic-select-statement" title="dynamic_select_statement" shape="rect">dynamic_select_statement</a></div> + <div>         ::= <a href="#cursor-specification" title="cursor_specification" shape="rect">cursor_specification</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#preparable-sql-data-statement" title="preparable-sql-data-statement">preparable-sql-data-statement</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + preparable_implementation_defined_statement +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="157" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#character-string-literal" xlink:title="character_string_literal" shape="rect"> + <rect x="23" y="1" width="110" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">character_string_literal</text></a><path class="line" d="m17 10 h2 m0 0 h4 m110 0 h4 m3 0 h-3"/> + <polygon points="147 10 155 6 155 14"/> + <polygon points="147 10 139 6 139 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#preparable-implementation-defined-statement" title="preparable_implementation_defined_statement" shape="rect">preparable_implementation_defined_statement</a></div> + <div>         ::= <a href="#character-string-literal" title="character_string_literal" shape="rect">character_string_literal</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#preparable-statement" title="preparable-statement">preparable-statement</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + cursor_attributes +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="167" height="33"> + <polygon points="9 22 1 18 1 26"/> + <polygon points="17 22 9 18 9 26"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#cursor-attribute" xlink:title="cursor_attribute" shape="rect"> + <rect x="43" y="13" width="80" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="25">cursor_attribute</text></a><path class="line" d="m17 22 h2 m20 0 h4 m80 0 h4 m-108 0 l20 0 m-1 0 q-9 0 -9 -10 l0 -1 q0 -10 10 -10 m88 21 l20 0 m-20 0 q10 0 10 -10 l0 -1 q0 -10 -10 -10 m-88 0 h10 m0 0 h78 m23 21 h-3"/> + <polygon points="157 22 165 18 165 26"/> + <polygon points="157 22 149 18 149 26"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#cursor-attributes" title="cursor_attributes" shape="rect">cursor_attributes</a></div> + <div>         ::= <a href="#cursor-attribute" title="cursor_attribute" shape="rect">cursor_attribute</a>+</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Not referenced by any. + </div></td></tr></tbody></table> + + +====================================================================================================================== + cursor_attribute +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="181" height="105"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#cursor-sensitivity" xlink:title="cursor_sensitivity" shape="rect"> + <rect x="43" y="1" width="86" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">cursor_sensitivity</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#cursor-scrollability" xlink:title="cursor_scrollability" shape="rect"> + <rect x="43" y="29" width="88" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">cursor_scrollability</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#cursor-holdability" xlink:title="cursor_holdability" shape="rect"> + <rect x="43" y="57" width="86" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="69">cursor_holdability</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#cursor-returnability" xlink:title="cursor_returnability" shape="rect"> + <rect x="43" y="85" width="94" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="97">cursor_returnability</text></a><path class="line" d="m17 10 h2 m20 0 h4 m86 0 h4 m0 0 h8 m-122 0 h20 m102 0 h20 m-142 0 q10 0 10 10 m122 0 q0 -10 10 -10 m-132 10 v8 m122 0 v-8 m-122 8 q0 10 10 10 m102 0 q10 0 10 -10 m-112 10 h4 m88 0 h4 m0 0 h6 m-112 -10 v20 m122 0 v-20 m-122 20 v8 m122 0 v-8 m-122 8 q0 10 10 10 m102 0 q10 0 10 -10 m-112 10 h4 m86 0 h4 m0 0 h8 m-112 -10 v20 m122 0 v-20 m-122 20 v8 m122 0 v-8 m-122 8 q0 10 10 10 m102 0 q10 0 10 -10 m-112 10 h4 m94 0 h4 m23 -84 h-3"/> + <polygon points="171 10 179 6 179 14"/> + <polygon points="171 10 163 6 163 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#cursor-attribute" title="cursor_attribute" shape="rect">cursor_attribute</a></div> + <div>         ::= <a href="#cursor-sensitivity" title="cursor_sensitivity" shape="rect">cursor_sensitivity</a></div> + <div>           | <a href="#cursor-scrollability" title="cursor_scrollability" shape="rect">cursor_scrollability</a></div> + <div>           | <a href="#cursor-holdability" title="cursor_holdability" shape="rect">cursor_holdability</a></div> + <div>           | <a href="#cursor-returnability" title="cursor_returnability" shape="rect">cursor_returnability</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#cursor-attributes" title="cursor-attributes">cursor-attributes</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + deallocate_prepared_statement +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="249" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="66" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">DEALLOCATE</text> + <rect x="97" y="1" width="50" height="18" class="terminal" rx="4"/> + <text class="terminal" x="101" y="13">PREPARE</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#sql-identifier" xlink:title="SQL_identifier" shape="rect"> + <rect x="155" y="1" width="70" height="18" class="nonterminal"/> + <text class="nonterminal" x="159" y="13">SQL_identifier</text></a><path class="line" d="m17 10 h2 m0 0 h4 m66 0 h4 m0 0 h4 m50 0 h4 m0 0 h4 m70 0 h4 m3 0 h-3"/> + <polygon points="239 10 247 6 247 14"/> + <polygon points="239 10 231 6 231 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#deallocate-prepared-statement" title="deallocate_prepared_statement" shape="rect">deallocate_prepared_statement</a></div> + <div>         ::= 'DEALLOCATE' 'PREPARE' <a href="#sql-identifier" title="SQL_identifier" shape="rect">SQL_identifier</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#sql-dynamic-statement" title="sql-dynamic-statement">sql-dynamic-statement</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + describe_statement +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="223" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#describe-input-statement" xlink:title="describe_input_statement" shape="rect"> + <rect x="43" y="1" width="130" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">describe_input_statement</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#describe-output-statement" xlink:title="describe_output_statement" shape="rect"> + <rect x="43" y="29" width="136" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">describe_output_statement</text></a><path class="line" d="m17 10 h2 m20 0 h4 m130 0 h4 m0 0 h6 m-164 0 h20 m144 0 h20 m-184 0 q10 0 10 10 m164 0 q0 -10 10 -10 m-174 10 v8 m164 0 v-8 m-164 8 q0 10 10 10 m144 0 q10 0 10 -10 m-154 10 h4 m136 0 h4 m23 -28 h-3"/> + <polygon points="213 10 221 6 221 14"/> + <polygon points="213 10 205 6 205 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#describe-statement" title="describe_statement" shape="rect">describe_statement</a></div> + <div>         ::= <a href="#describe-input-statement" title="describe_input_statement" shape="rect">describe_input_statement</a></div> + <div>           | <a href="#describe-output-statement" title="describe_output_statement" shape="rect">describe_output_statement</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#sql-dynamic-statement" title="sql-dynamic-statement">sql-dynamic-statement</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + describe_input_statement +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="439" height="42"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="52" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">DESCRIBE</text> + <rect x="83" y="1" width="36" height="18" class="terminal" rx="4"/> + <text class="terminal" x="87" y="13">INPUT</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#sql-identifier" xlink:title="SQL_identifier" shape="rect"> + <rect x="127" y="1" width="70" height="18" class="nonterminal"/> + <text class="nonterminal" x="131" y="13">SQL_identifier</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#using-descriptor" xlink:title="using_descriptor" shape="rect"> + <rect x="205" y="1" width="84" height="18" class="nonterminal"/> + <text class="nonterminal" x="209" y="13">using_descriptor</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#nesting-option" xlink:title="nesting_option" shape="rect"> + <rect x="317" y="22" width="78" height="18" class="nonterminal"/> + <text class="nonterminal" x="321" y="34">nesting_option</text></a><path class="line" d="m17 10 h2 m0 0 h4 m52 0 h4 m0 0 h4 m36 0 h4 m0 0 h4 m70 0 h4 m0 0 h4 m84 0 h4 m20 0 h10 m0 0 h76 m-106 0 h20 m86 0 h20 m-126 0 q10 0 10 10 m106 0 q0 -10 10 -10 m-116 10 v1 m106 0 v-1 m-106 1 q0 10 10 10 m86 0 q10 0 10 -10 m-96 10 h4 m78 0 h4 m23 -21 h-3"/> + <polygon points="429 10 437 6 437 14"/> + <polygon points="429 10 421 6 421 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#describe-input-statement" title="describe_input_statement" shape="rect">describe_input_statement</a></div> + <div>         ::= 'DESCRIBE' 'INPUT' <a href="#sql-identifier" title="SQL_identifier" shape="rect">SQL_identifier</a> <a href="#using-descriptor" title="using_descriptor" shape="rect">using_descriptor</a> <a href="#nesting-option" title="nesting_option" shape="rect">nesting_option</a>?</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#describe-statement" title="describe-statement">describe-statement</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + describe_output_statement +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="505" height="42"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="52" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">DESCRIBE</text> + <rect x="103" y="22" width="46" height="18" class="terminal" rx="4"/> + <text class="terminal" x="107" y="34">OUTPUT</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#described-object" xlink:title="described_object" shape="rect"> + <rect x="177" y="1" width="86" height="18" class="nonterminal"/> + <text class="nonterminal" x="181" y="13">described_object</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#using-descriptor" xlink:title="using_descriptor" shape="rect"> + <rect x="271" y="1" width="84" height="18" class="nonterminal"/> + <text class="nonterminal" x="275" y="13">using_descriptor</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#nesting-option" xlink:title="nesting_option" shape="rect"> + <rect x="383" y="22" width="78" height="18" class="nonterminal"/> + <text class="nonterminal" x="387" y="34">nesting_option</text></a><path class="line" d="m17 10 h2 m0 0 h4 m52 0 h4 m20 0 h10 m0 0 h44 m-74 0 h20 m54 0 h20 m-94 0 q10 0 10 10 m74 0 q0 -10 10 -10 m-84 10 v1 m74 0 v-1 m-74 1 q0 10 10 10 m54 0 q10 0 10 -10 m-64 10 h4 m46 0 h4 m20 -21 h4 m86 0 h4 m0 0 h4 m84 0 h4 m20 0 h10 m0 0 h76 m-106 0 h20 m86 0 h20 m-126 0 q10 0 10 10 m106 0 q0 -10 10 -10 m-116 10 v1 m106 0 v-1 m-106 1 q0 10 10 10 m86 0 q10 0 10 -10 m-96 10 h4 m78 0 h4 m23 -21 h-3"/> + <polygon points="495 10 503 6 503 14"/> + <polygon points="495 10 487 6 487 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#describe-output-statement" title="describe_output_statement" shape="rect">describe_output_statement</a></div> + <div>         ::= 'DESCRIBE' 'OUTPUT'? <a href="#described-object" title="described_object" shape="rect">described_object</a> <a href="#using-descriptor" title="using_descriptor" shape="rect">using_descriptor</a> <a href="#nesting-option" title="nesting_option" shape="rect">nesting_option</a>?</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#describe-statement" title="describe-statement">describe-statement</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + nesting_option +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="197" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="43" y="1" width="34" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="13">WITH</text> + <rect x="43" y="29" width="54" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="41">WITHOUT</text> + <rect x="125" y="1" width="48" height="18" class="terminal" rx="4"/> + <text class="terminal" x="129" y="13">NESTING</text> + <path class="line" d="m17 10 h2 m20 0 h4 m34 0 h4 m0 0 h20 m-82 0 h20 m62 0 h20 m-102 0 q10 0 10 10 m82 0 q0 -10 10 -10 m-92 10 v8 m82 0 v-8 m-82 8 q0 10 10 10 m62 0 q10 0 10 -10 m-72 10 h4 m54 0 h4 m20 -28 h4 m48 0 h4 m3 0 h-3"/> + <polygon points="187 10 195 6 195 14"/> + <polygon points="187 10 179 6 179 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#nesting-option" title="nesting_option" shape="rect">nesting_option</a></div> + <div>         ::= ( 'WITH' | 'WITHOUT' ) 'NESTING'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#describe-input-statement" title="describe-input-statement">describe-input-statement</a></li><li><a href="#describe-output-statement" title="describe-output-statement">describe-output-statement</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + using_descriptor +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="329" height="42"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="38" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">USING</text> + <rect x="89" y="22" width="26" height="18" class="terminal" rx="4"/> + <text class="terminal" x="93" y="34">SQL</text> + <rect x="143" y="1" width="68" height="18" class="terminal" rx="4"/> + <text class="terminal" x="147" y="13">DESCRIPTOR</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#descriptor-name" xlink:title="descriptor_name" shape="rect"> + <rect x="219" y="1" width="86" height="18" class="nonterminal"/> + <text class="nonterminal" x="223" y="13">descriptor_name</text></a><path class="line" d="m17 10 h2 m0 0 h4 m38 0 h4 m20 0 h10 m0 0 h24 m-54 0 h20 m34 0 h20 m-74 0 q10 0 10 10 m54 0 q0 -10 10 -10 m-64 10 v1 m54 0 v-1 m-54 1 q0 10 10 10 m34 0 q10 0 10 -10 m-44 10 h4 m26 0 h4 m20 -21 h4 m68 0 h4 m0 0 h4 m86 0 h4 m3 0 h-3"/> + <polygon points="319 10 327 6 327 14"/> + <polygon points="319 10 311 6 311 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#using-descriptor" title="using_descriptor" shape="rect">using_descriptor</a></div> + <div>         ::= 'USING' 'SQL'? 'DESCRIPTOR' <a href="#descriptor-name" title="descriptor_name" shape="rect">descriptor_name</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#describe-input-statement" title="describe-input-statement">describe-input-statement</a></li><li><a href="#describe-output-statement" title="describe-output-statement">describe-output-statement</a></li><li><a href="#using-input-descriptor" title="using-input-descriptor">using-input-descriptor</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + described_object +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="333" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#sql-identifier" xlink:title="SQL_identifier" shape="rect"> + <rect x="43" y="1" width="70" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">SQL_identifier</text></a><rect x="43" y="29" width="48" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="41">CURSOR</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#extended-cursor-name" xlink:title="extended_cursor_name" shape="rect"> + <rect x="99" y="29" width="120" height="18" class="nonterminal"/> + <text class="nonterminal" x="103" y="41">extended_cursor_name</text></a><rect x="227" y="29" width="62" height="18" class="terminal" rx="4"/> + <text class="terminal" x="231" y="41">STRUCTURE</text> + <path class="line" d="m17 10 h2 m20 0 h4 m70 0 h4 m0 0 h176 m-274 0 h20 m254 0 h20 m-294 0 q10 0 10 10 m274 0 q0 -10 10 -10 m-284 10 v8 m274 0 v-8 m-274 8 q0 10 10 10 m254 0 q10 0 10 -10 m-264 10 h4 m48 0 h4 m0 0 h4 m120 0 h4 m0 0 h4 m62 0 h4 m23 -28 h-3"/> + <polygon points="323 10 331 6 331 14"/> + <polygon points="323 10 315 6 315 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#described-object" title="described_object" shape="rect">described_object</a></div> + <div>         ::= <a href="#sql-identifier" title="SQL_identifier" shape="rect">SQL_identifier</a></div> + <div>           | 'CURSOR' <a href="#extended-cursor-name" title="extended_cursor_name" shape="rect">extended_cursor_name</a> 'STRUCTURE'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#describe-output-statement" title="describe-output-statement">describe-output-statement</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + input_using_clause +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="199" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#using-arguments" xlink:title="using_arguments" shape="rect"> + <rect x="43" y="1" width="90" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">using_arguments</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#using-input-descriptor" xlink:title="using_input_descriptor" shape="rect"> + <rect x="43" y="29" width="112" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">using_input_descriptor</text></a><path class="line" d="m17 10 h2 m20 0 h4 m90 0 h4 m0 0 h22 m-140 0 h20 m120 0 h20 m-160 0 q10 0 10 10 m140 0 q0 -10 10 -10 m-150 10 v8 m140 0 v-8 m-140 8 q0 10 10 10 m120 0 q10 0 10 -10 m-130 10 h4 m112 0 h4 m23 -28 h-3"/> + <polygon points="189 10 197 6 197 14"/> + <polygon points="189 10 181 6 181 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#input-using-clause" title="input_using_clause" shape="rect">input_using_clause</a></div> + <div>         ::= <a href="#using-arguments" title="using_arguments" shape="rect">using_arguments</a></div> + <div>           | <a href="#using-input-descriptor" title="using_input_descriptor" shape="rect">using_input_descriptor</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#dynamic-open-statement" title="dynamic-open-statement">dynamic-open-statement</a></li><li><a href="#parameter-using-clause" title="parameter-using-clause">parameter-using-clause</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + using_arguments +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="219" height="49"> + <polygon points="9 38 1 34 1 42"/> + <polygon points="17 38 9 34 9 42"/> + <rect x="23" y="29" width="38" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="41">USING</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#using-argument" xlink:title="using_argument" shape="rect"> + <rect x="89" y="29" width="86" height="18" class="nonterminal"/> + <text class="nonterminal" x="93" y="41">using_argument</text></a><rect x="89" y="1" width="8" height="18" class="terminal" rx="4"/> + <text class="terminal" x="93" y="13">,</text> + <path class="line" d="m17 38 h2 m0 0 h4 m38 0 h4 m20 0 h4 m86 0 h4 m-114 0 l20 0 m-1 0 q-9 0 -9 -10 l0 -8 q0 -10 10 -10 m94 28 l20 0 m-20 0 q10 0 10 -10 l0 -8 q0 -10 -10 -10 m-94 0 h4 m8 0 h4 m0 0 h78 m23 28 h-3"/> + <polygon points="209 38 217 34 217 42"/> + <polygon points="209 38 201 34 201 42"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#using-arguments" title="using_arguments" shape="rect">using_arguments</a></div> + <div>         ::= 'USING' <a href="#using-argument" title="using_argument" shape="rect">using_argument</a> ( ',' <a href="#using-argument" title="using_argument" shape="rect">using_argument</a> )*</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#input-using-clause" title="input-using-clause">input-using-clause</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + using_argument +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="179" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#general-value-specification" xlink:title="general_value_specification" shape="rect"> + <rect x="23" y="1" width="132" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">general_value_specification</text></a><path class="line" d="m17 10 h2 m0 0 h4 m132 0 h4 m3 0 h-3"/> + <polygon points="169 10 177 6 177 14"/> + <polygon points="169 10 161 6 161 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#using-argument" title="using_argument" shape="rect">using_argument</a></div> + <div>         ::= <a href="#general-value-specification" title="general_value_specification" shape="rect">general_value_specification</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#using-arguments" title="using-arguments">using-arguments</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + using_input_descriptor +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="131" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#using-descriptor" xlink:title="using_descriptor" shape="rect"> + <rect x="23" y="1" width="84" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">using_descriptor</text></a><path class="line" d="m17 10 h2 m0 0 h4 m84 0 h4 m3 0 h-3"/> + <polygon points="121 10 129 6 129 14"/> + <polygon points="121 10 113 6 113 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#using-input-descriptor" title="using_input_descriptor" shape="rect">using_input_descriptor</a></div> + <div>         ::= <a href="#using-descriptor" title="using_descriptor" shape="rect">using_descriptor</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#input-using-clause" title="input-using-clause">input-using-clause</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + output_using_clause +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="169" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#into-arguments" xlink:title="into_arguments" shape="rect"> + <rect x="43" y="1" width="82" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">into_arguments</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#into-descriptor" xlink:title="into_descriptor" shape="rect"> + <rect x="43" y="29" width="76" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">into_descriptor</text></a><path class="line" d="m17 10 h2 m20 0 h4 m82 0 h4 m-110 0 h20 m90 0 h20 m-130 0 q10 0 10 10 m110 0 q0 -10 10 -10 m-120 10 v8 m110 0 v-8 m-110 8 q0 10 10 10 m90 0 q10 0 10 -10 m-100 10 h4 m76 0 h4 m0 0 h6 m23 -28 h-3"/> + <polygon points="159 10 167 6 167 14"/> + <polygon points="159 10 151 6 151 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#output-using-clause" title="output_using_clause" shape="rect">output_using_clause</a></div> + <div>         ::= <a href="#into-arguments" title="into_arguments" shape="rect">into_arguments</a></div> + <div>           | <a href="#into-descriptor" title="into_descriptor" shape="rect">into_descriptor</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#dynamic-fetch-statement" title="dynamic-fetch-statement">dynamic-fetch-statement</a></li><li><a href="#result-using-clause" title="result-using-clause">result-using-clause</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + into_arguments +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="205" height="49"> + <polygon points="9 38 1 34 1 42"/> + <polygon points="17 38 9 34 9 42"/> + <rect x="23" y="29" width="32" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="41">INTO</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#into-argument" xlink:title="into_argument" shape="rect"> + <rect x="83" y="29" width="78" height="18" class="nonterminal"/> + <text class="nonterminal" x="87" y="41">into_argument</text></a><rect x="83" y="1" width="8" height="18" class="terminal" rx="4"/> + <text class="terminal" x="87" y="13">,</text> + <path class="line" d="m17 38 h2 m0 0 h4 m32 0 h4 m20 0 h4 m78 0 h4 m-106 0 l20 0 m-1 0 q-9 0 -9 -10 l0 -8 q0 -10 10 -10 m86 28 l20 0 m-20 0 q10 0 10 -10 l0 -8 q0 -10 -10 -10 m-86 0 h4 m8 0 h4 m0 0 h70 m23 28 h-3"/> + <polygon points="195 38 203 34 203 42"/> + <polygon points="195 38 187 34 187 42"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#into-arguments" title="into_arguments" shape="rect">into_arguments</a></div> + <div>         ::= 'INTO' <a href="#into-argument" title="into_argument" shape="rect">into_argument</a> ( ',' <a href="#into-argument" title="into_argument" shape="rect">into_argument</a> )*</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#output-using-clause" title="output-using-clause">output-using-clause</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + into_argument +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="143" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#target-specification" xlink:title="target_specification" shape="rect"> + <rect x="23" y="1" width="96" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">target_specification</text></a><path class="line" d="m17 10 h2 m0 0 h4 m96 0 h4 m3 0 h-3"/> + <polygon points="133 10 141 6 141 14"/> + <polygon points="133 10 125 6 125 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#into-argument" title="into_argument" shape="rect">into_argument</a></div> + <div>         ::= <a href="#target-specification" title="target_specification" shape="rect">target_specification</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#into-arguments" title="into-arguments">into-arguments</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + into_descriptor +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="323" height="42"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="32" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">INTO</text> + <rect x="83" y="22" width="26" height="18" class="terminal" rx="4"/> + <text class="terminal" x="87" y="34">SQL</text> + <rect x="137" y="1" width="68" height="18" class="terminal" rx="4"/> + <text class="terminal" x="141" y="13">DESCRIPTOR</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#descriptor-name" xlink:title="descriptor_name" shape="rect"> + <rect x="213" y="1" width="86" height="18" class="nonterminal"/> + <text class="nonterminal" x="217" y="13">descriptor_name</text></a><path class="line" d="m17 10 h2 m0 0 h4 m32 0 h4 m20 0 h10 m0 0 h24 m-54 0 h20 m34 0 h20 m-74 0 q10 0 10 10 m54 0 q0 -10 10 -10 m-64 10 v1 m54 0 v-1 m-54 1 q0 10 10 10 m34 0 q10 0 10 -10 m-44 10 h4 m26 0 h4 m20 -21 h4 m68 0 h4 m0 0 h4 m86 0 h4 m3 0 h-3"/> + <polygon points="313 10 321 6 321 14"/> + <polygon points="313 10 305 6 305 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#into-descriptor" title="into_descriptor" shape="rect">into_descriptor</a></div> + <div>         ::= 'INTO' 'SQL'? 'DESCRIPTOR' <a href="#descriptor-name" title="descriptor_name" shape="rect">descriptor_name</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#output-using-clause" title="output-using-clause">output-using-clause</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + execute_statement +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="491" height="42"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="48" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">EXECUTE</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#sql-identifier" xlink:title="SQL_identifier" shape="rect"> + <rect x="79" y="1" width="70" height="18" class="nonterminal"/> + <text class="nonterminal" x="83" y="13">SQL_identifier</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#result-using-clause" xlink:title="result_using_clause" shape="rect"> + <rect x="177" y="22" width="98" height="18" class="nonterminal"/> + <text class="nonterminal" x="181" y="34">result_using_clause</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#parameter-using-clause" xlink:title="parameter_using_clause" shape="rect"> + <rect x="323" y="22" width="124" height="18" class="nonterminal"/> + <text class="nonterminal" x="327" y="34">parameter_using_clause</text></a><path class="line" d="m17 10 h2 m0 0 h4 m48 0 h4 m0 0 h4 m70 0 h4 m20 0 h10 m0 0 h96 m-126 0 h20 m106 0 h20 m-146 0 q10 0 10 10 m126 0 q0 -10 10 -10 m-136 10 v1 m126 0 v-1 m-126 1 q0 10 10 10 m106 0 q10 0 10 -10 m-116 10 h4 m98 0 h4 m40 -21 h10 m0 0 h122 m-152 0 h20 m132 0 h20 m-172 0 q10 0 10 10 m152 0 q0 -10 10 -10 m-162 10 v1 m152 0 v-1 m-152 1 q0 10 10 10 m132 0 q10 0 10 -10 m-142 10 h4 m124 0 h4 m23 -21 h-3"/> + <polygon points="481 10 489 6 489 14"/> + <polygon points="481 10 473 6 473 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#execute-statement" title="execute_statement" shape="rect">execute_statement</a></div> + <div>         ::= 'EXECUTE' <a href="#sql-identifier" title="SQL_identifier" shape="rect">SQL_identifier</a> <a href="#result-using-clause" title="result_using_clause" shape="rect">result_using_clause</a>? <a href="#parameter-using-clause" title="parameter_using_clause" shape="rect">parameter_using_clause</a>?</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#sql-dynamic-statement" title="sql-dynamic-statement">sql-dynamic-statement</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + result_using_clause +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="151" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#output-using-clause" xlink:title="output_using_clause" shape="rect"> + <rect x="23" y="1" width="104" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">output_using_clause</text></a><path class="line" d="m17 10 h2 m0 0 h4 m104 0 h4 m3 0 h-3"/> + <polygon points="141 10 149 6 149 14"/> + <polygon points="141 10 133 6 133 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#result-using-clause" title="result_using_clause" shape="rect">result_using_clause</a></div> + <div>         ::= <a href="#output-using-clause" title="output_using_clause" shape="rect">output_using_clause</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#execute-statement" title="execute-statement">execute-statement</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + parameter_using_clause +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="143" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#input-using-clause" xlink:title="input_using_clause" shape="rect"> + <rect x="23" y="1" width="96" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">input_using_clause</text></a><path class="line" d="m17 10 h2 m0 0 h4 m96 0 h4 m3 0 h-3"/> + <polygon points="133 10 141 6 141 14"/> + <polygon points="133 10 125 6 125 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#parameter-using-clause" title="parameter_using_clause" shape="rect">parameter_using_clause</a></div> + <div>         ::= <a href="#input-using-clause" title="input_using_clause" shape="rect">input_using_clause</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#execute-statement" title="execute-statement">execute-statement</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + execute_immediate_statement +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="299" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="48" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">EXECUTE</text> + <rect x="79" y="1" width="60" height="18" class="terminal" rx="4"/> + <text class="terminal" x="83" y="13">IMMEDIATE</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#simple-value-specification" xlink:title="simple_value_specification" shape="rect"> + <rect x="147" y="1" width="128" height="18" class="nonterminal"/> + <text class="nonterminal" x="151" y="13">simple_value_specification</text></a><path class="line" d="m17 10 h2 m0 0 h4 m48 0 h4 m0 0 h4 m60 0 h4 m0 0 h4 m128 0 h4 m3 0 h-3"/> + <polygon points="289 10 297 6 297 14"/> + <polygon points="289 10 281 6 281 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#execute-immediate-statement" title="execute_immediate_statement" shape="rect">execute_immediate_statement</a></div> + <div>         ::= 'EXECUTE' 'IMMEDIATE' <a href="#simple-value-specification" title="simple_value_specification" shape="rect">simple_value_specification</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#sql-dynamic-statement" title="sql-dynamic-statement">sql-dynamic-statement</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + dynamic_declare_cursor +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="357" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="48" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">DECLARE</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#cursor-name" xlink:title="cursor_name" shape="rect"> + <rect x="79" y="1" width="70" height="18" class="nonterminal"/> + <text class="nonterminal" x="83" y="13">cursor_name</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#cursor-properties" xlink:title="cursor_properties" shape="rect"> + <rect x="157" y="1" width="88" height="18" class="nonterminal"/> + <text class="nonterminal" x="161" y="13">cursor_properties</text></a><rect x="253" y="1" width="26" height="18" class="terminal" rx="4"/> + <text class="terminal" x="257" y="13">FOR</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#identifier" xlink:title="identifier" shape="rect"> + <rect x="287" y="1" width="46" height="18" class="nonterminal"/> + <text class="nonterminal" x="291" y="13">identifier</text></a><path class="line" d="m17 10 h2 m0 0 h4 m48 0 h4 m0 0 h4 m70 0 h4 m0 0 h4 m88 0 h4 m0 0 h4 m26 0 h4 m0 0 h4 m46 0 h4 m3 0 h-3"/> + <polygon points="347 10 355 6 355 14"/> + <polygon points="347 10 339 6 339 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#dynamic-declare-cursor" title="dynamic_declare_cursor" shape="rect">dynamic_declare_cursor</a></div> + <div>         ::= 'DECLARE' <a href="#cursor-name" title="cursor_name" shape="rect">cursor_name</a> <a href="#cursor-properties" title="cursor_properties" shape="rect">cursor_properties</a> 'FOR' <a href="#identifier" title="identifier" shape="rect">identifier</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#module-contents" title="module-contents">module-contents</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + allocate_cursor_statement +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="305" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="54" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">ALLOCATE</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#extended-cursor-name" xlink:title="extended_cursor_name" shape="rect"> + <rect x="85" y="1" width="120" height="18" class="nonterminal"/> + <text class="nonterminal" x="89" y="13">extended_cursor_name</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#cursor-intent" xlink:title="cursor_intent" shape="rect"> + <rect x="213" y="1" width="68" height="18" class="nonterminal"/> + <text class="nonterminal" x="217" y="13">cursor_intent</text></a><path class="line" d="m17 10 h2 m0 0 h4 m54 0 h4 m0 0 h4 m120 0 h4 m0 0 h4 m68 0 h4 m3 0 h-3"/> + <polygon points="295 10 303 6 303 14"/> + <polygon points="295 10 287 6 287 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#allocate-cursor-statement" title="allocate_cursor_statement" shape="rect">allocate_cursor_statement</a></div> + <div>         ::= 'ALLOCATE' <a href="#extended-cursor-name" title="extended_cursor_name" shape="rect">extended_cursor_name</a> <a href="#cursor-intent" title="cursor_intent" shape="rect">cursor_intent</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#sql-dynamic-data-statement" title="sql-dynamic-data-statement">sql-dynamic-data-statement</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + cursor_intent +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="177" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#statement-cursor" xlink:title="statement_cursor" shape="rect"> + <rect x="43" y="1" width="90" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">statement_cursor</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#result-set-cursor" xlink:title="result_set_cursor" shape="rect"> + <rect x="43" y="29" width="88" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">result_set_cursor</text></a><path class="line" d="m17 10 h2 m20 0 h4 m90 0 h4 m-118 0 h20 m98 0 h20 m-138 0 q10 0 10 10 m118 0 q0 -10 10 -10 m-128 10 v8 m118 0 v-8 m-118 8 q0 10 10 10 m98 0 q10 0 10 -10 m-108 10 h4 m88 0 h4 m0 0 h2 m23 -28 h-3"/> + <polygon points="167 10 175 6 175 14"/> + <polygon points="167 10 159 6 159 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#cursor-intent" title="cursor_intent" shape="rect">cursor_intent</a></div> + <div>         ::= <a href="#statement-cursor" title="statement_cursor" shape="rect">statement_cursor</a></div> + <div>           | <a href="#result-set-cursor" title="result_set_cursor" shape="rect">result_set_cursor</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#allocate-cursor-statement" title="allocate-cursor-statement">allocate-cursor-statement</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + statement_cursor +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="273" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#cursor-properties" xlink:title="cursor_properties" shape="rect"> + <rect x="23" y="1" width="88" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">cursor_properties</text></a><rect x="119" y="1" width="26" height="18" class="terminal" rx="4"/> + <text class="terminal" x="123" y="13">FOR</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#extended-identifier" xlink:title="extended_identifier" shape="rect"> + <rect x="153" y="1" width="96" height="18" class="nonterminal"/> + <text class="nonterminal" x="157" y="13">extended_identifier</text></a><path class="line" d="m17 10 h2 m0 0 h4 m88 0 h4 m0 0 h4 m26 0 h4 m0 0 h4 m96 0 h4 m3 0 h-3"/> + <polygon points="263 10 271 6 271 14"/> + <polygon points="263 10 255 6 255 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#statement-cursor" title="statement_cursor" shape="rect">statement_cursor</a></div> + <div>         ::= <a href="#cursor-properties" title="cursor_properties" shape="rect">cursor_properties</a> 'FOR' <a href="#extended-identifier" title="extended_identifier" shape="rect">extended_identifier</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#cursor-intent" title="cursor-intent">cursor-intent</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + result_set_cursor +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="381" height="42"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="43" y="22" width="48" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="34">CURSOR</text> + <rect x="119" y="1" width="26" height="18" class="terminal" rx="4"/> + <text class="terminal" x="123" y="13">FOR</text> + <rect x="153" y="1" width="64" height="18" class="terminal" rx="4"/> + <text class="terminal" x="157" y="13">PROCEDURE</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#specific-routine-designator" xlink:title="specific_routine_designator" shape="rect"> + <rect x="225" y="1" width="132" height="18" class="nonterminal"/> + <text class="nonterminal" x="229" y="13">specific_routine_designator</text></a><path class="line" d="m17 10 h2 m20 0 h10 m0 0 h46 m-76 0 h20 m56 0 h20 m-96 0 q10 0 10 10 m76 0 q0 -10 10 -10 m-86 10 v1 m76 0 v-1 m-76 1 q0 10 10 10 m56 0 q10 0 10 -10 m-66 10 h4 m48 0 h4 m20 -21 h4 m26 0 h4 m0 0 h4 m64 0 h4 m0 0 h4 m132 0 h4 m3 0 h-3"/> + <polygon points="371 10 379 6 379 14"/> + <polygon points="371 10 363 6 363 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#result-set-cursor" title="result_set_cursor" shape="rect">result_set_cursor</a></div> + <div>         ::= 'CURSOR'? 'FOR' 'PROCEDURE' <a href="#specific-routine-designator" title="specific_routine_designator" shape="rect">specific_routine_designator</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#cursor-intent" title="cursor-intent">cursor-intent</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + dynamic_open_statement +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="347" height="42"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="34" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">OPEN</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#dynamic-cursor-name" xlink:title="dynamic_cursor_name" shape="rect"> + <rect x="65" y="1" width="114" height="18" class="nonterminal"/> + <text class="nonterminal" x="69" y="13">dynamic_cursor_name</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#input-using-clause" xlink:title="input_using_clause" shape="rect"> + <rect x="207" y="22" width="96" height="18" class="nonterminal"/> + <text class="nonterminal" x="211" y="34">input_using_clause</text></a><path class="line" d="m17 10 h2 m0 0 h4 m34 0 h4 m0 0 h4 m114 0 h4 m20 0 h10 m0 0 h94 m-124 0 h20 m104 0 h20 m-144 0 q10 0 10 10 m124 0 q0 -10 10 -10 m-134 10 v1 m124 0 v-1 m-124 1 q0 10 10 10 m104 0 q10 0 10 -10 m-114 10 h4 m96 0 h4 m23 -21 h-3"/> + <polygon points="337 10 345 6 345 14"/> + <polygon points="337 10 329 6 329 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#dynamic-open-statement" title="dynamic_open_statement" shape="rect">dynamic_open_statement</a></div> + <div>         ::= 'OPEN' <a href="#dynamic-cursor-name" title="dynamic_cursor_name" shape="rect">dynamic_cursor_name</a> <a href="#input-using-clause" title="input_using_clause" shape="rect">input_using_clause</a>?</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#sql-dynamic-data-statement" title="sql-dynamic-data-statement">sql-dynamic-data-statement</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + dynamic_fetch_statement +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="533" height="63"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="36" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">FETCH</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#fetch-orientation" xlink:title="fetch_orientation" shape="rect"> + <rect x="107" y="43" width="84" height="18" class="nonterminal"/> + <text class="nonterminal" x="111" y="55">fetch_orientation</text></a><rect x="219" y="22" width="36" height="18" class="terminal" rx="4"/> + <text class="terminal" x="223" y="34">FROM</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#dynamic-cursor-name" xlink:title="dynamic_cursor_name" shape="rect"> + <rect x="283" y="1" width="114" height="18" class="nonterminal"/> + <text class="nonterminal" x="287" y="13">dynamic_cursor_name</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#output-using-clause" xlink:title="output_using_clause" shape="rect"> + <rect x="405" y="1" width="104" height="18" class="nonterminal"/> + <text class="nonterminal" x="409" y="13">output_using_clause</text></a><path class="line" d="m17 10 h2 m0 0 h4 m36 0 h4 m20 0 h10 m0 0 h166 m-196 0 h20 m176 0 h20 m-216 0 q10 0 10 10 m196 0 q0 -10 10 -10 m-206 10 v1 m196 0 v-1 m-196 1 q0 10 10 10 m176 0 q10 0 10 -10 m-166 10 h10 m0 0 h82 m-112 0 h20 m92 0 h20 m-132 0 q10 0 10 10 m112 0 q0 -10 10 -10 m-122 10 v1 m112 0 v-1 m-112 1 q0 10 10 10 m92 0 q10 0 10 -10 m-102 10 h4 m84 0 h4 m20 -21 h4 m36 0 h4 m20 -21 h4 m114 0 h4 m0 0 h4 m104 0 h4 m3 0 h-3"/> + <polygon points="523 10 531 6 531 14"/> + <polygon points="523 10 515 6 515 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#dynamic-fetch-statement" title="dynamic_fetch_statement" shape="rect">dynamic_fetch_statement</a></div> + <div>         ::= 'FETCH' ( <a href="#fetch-orientation" title="fetch_orientation" shape="rect">fetch_orientation</a>? 'FROM' )? <a href="#dynamic-cursor-name" title="dynamic_cursor_name" shape="rect">dynamic_cursor_name</a> <a href="#output-using-clause" title="output_using_clause" shape="rect">output_using_clause</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#sql-dynamic-data-statement" title="sql-dynamic-data-statement">sql-dynamic-data-statement</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + dynamic_single_row_select_statement +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="141" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#query-specification" xlink:title="query_specification" shape="rect"> + <rect x="23" y="1" width="94" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">query_specification</text></a><path class="line" d="m17 10 h2 m0 0 h4 m94 0 h4 m3 0 h-3"/> + <polygon points="131 10 139 6 139 14"/> + <polygon points="131 10 123 6 123 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#dynamic-single-row-select-statement" title="dynamic_single_row_select_statement" shape="rect">dynamic_single_row_select_statement</a></div> + <div>         ::= <a href="#query-specification" title="query_specification" shape="rect">query_specification</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#preparable-sql-data-statement" title="preparable-sql-data-statement">preparable-sql-data-statement</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + dynamic_close_statement +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="207" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="38" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">CLOSE</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#dynamic-cursor-name" xlink:title="dynamic_cursor_name" shape="rect"> + <rect x="69" y="1" width="114" height="18" class="nonterminal"/> + <text class="nonterminal" x="73" y="13">dynamic_cursor_name</text></a><path class="line" d="m17 10 h2 m0 0 h4 m38 0 h4 m0 0 h4 m114 0 h4 m3 0 h-3"/> + <polygon points="197 10 205 6 205 14"/> + <polygon points="197 10 189 6 189 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#dynamic-close-statement" title="dynamic_close_statement" shape="rect">dynamic_close_statement</a></div> + <div>         ::= 'CLOSE' <a href="#dynamic-cursor-name" title="dynamic_cursor_name" shape="rect">dynamic_cursor_name</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#sql-dynamic-data-statement" title="sql-dynamic-data-statement">sql-dynamic-data-statement</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + dynamic_delete_statement_positioned +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="461" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="40" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">DELETE</text> + <rect x="71" y="1" width="36" height="18" class="terminal" rx="4"/> + <text class="terminal" x="75" y="13">FROM</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#target-table" xlink:title="target_table" shape="rect"> + <rect x="115" y="1" width="64" height="18" class="nonterminal"/> + <text class="nonterminal" x="119" y="13">target_table</text></a><rect x="187" y="1" width="42" height="18" class="terminal" rx="4"/> + <text class="terminal" x="191" y="13">WHERE</text> + <rect x="237" y="1" width="50" height="18" class="terminal" rx="4"/> + <text class="terminal" x="241" y="13">CURRENT</text> + <rect x="295" y="1" width="20" height="18" class="terminal" rx="4"/> + <text class="terminal" x="299" y="13">OF</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#dynamic-cursor-name" xlink:title="dynamic_cursor_name" shape="rect"> + <rect x="323" y="1" width="114" height="18" class="nonterminal"/> + <text class="nonterminal" x="327" y="13">dynamic_cursor_name</text></a><path class="line" d="m17 10 h2 m0 0 h4 m40 0 h4 m0 0 h4 m36 0 h4 m0 0 h4 m64 0 h4 m0 0 h4 m42 0 h4 m0 0 h4 m50 0 h4 m0 0 h4 m20 0 h4 m0 0 h4 m114 0 h4 m3 0 h-3"/> + <polygon points="451 10 459 6 459 14"/> + <polygon points="451 10 443 6 443 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#dynamic-delete-statement-positioned" title="dynamic_delete_statement_positioned" shape="rect">dynamic_delete_statement_positioned</a></div> + <div>         ::= 'DELETE' 'FROM' <a href="#target-table" title="target_table" shape="rect">target_table</a> 'WHERE' 'CURRENT' 'OF' <a href="#dynamic-cursor-name" title="dynamic_cursor_name" shape="rect">dynamic_cursor_name</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#sql-dynamic-data-statement" title="sql-dynamic-data-statement">sql-dynamic-data-statement</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + dynamic_update_statement_positioned +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="535" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="44" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">UPDATE</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#target-table" xlink:title="target_table" shape="rect"> + <rect x="75" y="1" width="64" height="18" class="nonterminal"/> + <text class="nonterminal" x="79" y="13">target_table</text></a><rect x="147" y="1" width="24" height="18" class="terminal" rx="4"/> + <text class="terminal" x="151" y="13">SET</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#set-clause-list" xlink:title="set_clause_list" shape="rect"> + <rect x="179" y="1" width="74" height="18" class="nonterminal"/> + <text class="nonterminal" x="183" y="13">set_clause_list</text></a><rect x="261" y="1" width="42" height="18" class="terminal" rx="4"/> + <text class="terminal" x="265" y="13">WHERE</text> + <rect x="311" y="1" width="50" height="18" class="terminal" rx="4"/> + <text class="terminal" x="315" y="13">CURRENT</text> + <rect x="369" y="1" width="20" height="18" class="terminal" rx="4"/> + <text class="terminal" x="373" y="13">OF</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#dynamic-cursor-name" xlink:title="dynamic_cursor_name" shape="rect"> + <rect x="397" y="1" width="114" height="18" class="nonterminal"/> + <text class="nonterminal" x="401" y="13">dynamic_cursor_name</text></a><path class="line" d="m17 10 h2 m0 0 h4 m44 0 h4 m0 0 h4 m64 0 h4 m0 0 h4 m24 0 h4 m0 0 h4 m74 0 h4 m0 0 h4 m42 0 h4 m0 0 h4 m50 0 h4 m0 0 h4 m20 0 h4 m0 0 h4 m114 0 h4 m3 0 h-3"/> + <polygon points="525 10 533 6 533 14"/> + <polygon points="525 10 517 6 517 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#dynamic-update-statement-positioned" title="dynamic_update_statement_positioned" shape="rect">dynamic_update_statement_positioned</a></div> + <div>         ::= 'UPDATE' <a href="#target-table" title="target_table" shape="rect">target_table</a> 'SET' <a href="#set-clause-list" title="set_clause_list" shape="rect">set_clause_list</a> 'WHERE' 'CURRENT' 'OF' <a href="#dynamic-cursor-name" title="dynamic_cursor_name" shape="rect">dynamic_cursor_name</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#sql-dynamic-data-statement" title="sql-dynamic-data-statement">sql-dynamic-data-statement</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + preparable_dynamic_delete_statement_positioned +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="557" height="42"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="40" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">DELETE</text> + <rect x="91" y="22" width="36" height="18" class="terminal" rx="4"/> + <text class="terminal" x="95" y="34">FROM</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#target-table" xlink:title="target_table" shape="rect"> + <rect x="135" y="22" width="64" height="18" class="nonterminal"/> + <text class="nonterminal" x="139" y="34">target_table</text></a><rect x="227" y="1" width="42" height="18" class="terminal" rx="4"/> + <text class="terminal" x="231" y="13">WHERE</text> + <rect x="277" y="1" width="50" height="18" class="terminal" rx="4"/> + <text class="terminal" x="281" y="13">CURRENT</text> + <rect x="335" y="1" width="20" height="18" class="terminal" rx="4"/> + <text class="terminal" x="339" y="13">OF</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#preparable-dynamic-cursor-name" xlink:title="preparable_dynamic_cursor_name" shape="rect"> + <rect x="363" y="1" width="170" height="18" class="nonterminal"/> + <text class="nonterminal" x="367" y="13">preparable_dynamic_cursor_name</text></a><path class="line" d="m17 10 h2 m0 0 h4 m40 0 h4 m20 0 h10 m0 0 h106 m-136 0 h20 m116 0 h20 m-156 0 q10 0 10 10 m136 0 q0 -10 10 -10 m-146 10 v1 m136 0 v-1 m-136 1 q0 10 10 10 m116 0 q10 0 10 -10 m-126 10 h4 m36 0 h4 m0 0 h4 m64 0 h4 m20 -21 h4 m42 0 h4 m0 0 h4 m50 0 h4 m0 0 h4 m20 0 h4 m0 0 h4 m170 0 h4 m3 0 h-3"/> + <polygon points="547 10 555 6 555 14"/> + <polygon points="547 10 539 6 539 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#preparable-dynamic-delete-statement-positioned" title="preparable_dynamic_delete_statement_positioned" shape="rect">preparable_dynamic_delete_statement_positioned</a></div> + <div>         ::= 'DELETE' ( 'FROM' <a href="#target-table" title="target_table" shape="rect">target_table</a> )? 'WHERE' 'CURRENT' 'OF' <a href="#preparable-dynamic-cursor-name" title="preparable_dynamic_cursor_name" shape="rect">preparable_dynamic_cursor_name</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#preparable-sql-data-statement" title="preparable-sql-data-statement">preparable-sql-data-statement</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + preparable_dynamic_cursor_name +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="237" height="42"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#scope-option" xlink:title="scope_option" shape="rect"> + <rect x="43" y="22" width="72" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="34">scope_option</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#cursor-name" xlink:title="cursor_name" shape="rect"> + <rect x="143" y="1" width="70" height="18" class="nonterminal"/> + <text class="nonterminal" x="147" y="13">cursor_name</text></a><path class="line" d="m17 10 h2 m20 0 h10 m0 0 h70 m-100 0 h20 m80 0 h20 m-120 0 q10 0 10 10 m100 0 q0 -10 10 -10 m-110 10 v1 m100 0 v-1 m-100 1 q0 10 10 10 m80 0 q10 0 10 -10 m-90 10 h4 m72 0 h4 m20 -21 h4 m70 0 h4 m3 0 h-3"/> + <polygon points="227 10 235 6 235 14"/> + <polygon points="227 10 219 6 219 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#preparable-dynamic-cursor-name" title="preparable_dynamic_cursor_name" shape="rect">preparable_dynamic_cursor_name</a></div> + <div>         ::= <a href="#scope-option" title="scope_option" shape="rect">scope_option</a>? <a href="#cursor-name" title="cursor_name" shape="rect">cursor_name</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#preparable-dynamic-delete-statement-positioned" title="preparable-dynamic-delete-statement-positioned">preparable-dynamic-delete-statement-positioned</a></li><li><a href="#preparable-dynamic-update-statement-positioned" title="preparable-dynamic-update-statement-positioned">preparable-dynamic-update-statement-positioned</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + preparable_dynamic_update_statement_positioned +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="631" height="42"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="44" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">UPDATE</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#target-table" xlink:title="target_table" shape="rect"> + <rect x="95" y="22" width="64" height="18" class="nonterminal"/> + <text class="nonterminal" x="99" y="34">target_table</text></a><rect x="187" y="1" width="24" height="18" class="terminal" rx="4"/> + <text class="terminal" x="191" y="13">SET</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#set-clause-list" xlink:title="set_clause_list" shape="rect"> + <rect x="219" y="1" width="74" height="18" class="nonterminal"/> + <text class="nonterminal" x="223" y="13">set_clause_list</text></a><rect x="301" y="1" width="42" height="18" class="terminal" rx="4"/> + <text class="terminal" x="305" y="13">WHERE</text> + <rect x="351" y="1" width="50" height="18" class="terminal" rx="4"/> + <text class="terminal" x="355" y="13">CURRENT</text> + <rect x="409" y="1" width="20" height="18" class="terminal" rx="4"/> + <text class="terminal" x="413" y="13">OF</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#preparable-dynamic-cursor-name" xlink:title="preparable_dynamic_cursor_name" shape="rect"> + <rect x="437" y="1" width="170" height="18" class="nonterminal"/> + <text class="nonterminal" x="441" y="13">preparable_dynamic_cursor_name</text></a><path class="line" d="m17 10 h2 m0 0 h4 m44 0 h4 m20 0 h10 m0 0 h62 m-92 0 h20 m72 0 h20 m-112 0 q10 0 10 10 m92 0 q0 -10 10 -10 m-102 10 v1 m92 0 v-1 m-92 1 q0 10 10 10 m72 0 q10 0 10 -10 m-82 10 h4 m64 0 h4 m20 -21 h4 m24 0 h4 m0 0 h4 m74 0 h4 m0 0 h4 m42 0 h4 m0 0 h4 m50 0 h4 m0 0 h4 m20 0 h4 m0 0 h4 m170 0 h4 m3 0 h-3"/> + <polygon points="621 10 629 6 629 14"/> + <polygon points="621 10 613 6 613 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#preparable-dynamic-update-statement-positioned" title="preparable_dynamic_update_statement_positioned" shape="rect">preparable_dynamic_update_statement_positioned</a></div> + <div>         ::= 'UPDATE' <a href="#target-table" title="target_table" shape="rect">target_table</a>? 'SET' <a href="#set-clause-list" title="set_clause_list" shape="rect">set_clause_list</a> 'WHERE' 'CURRENT' 'OF' <a href="#preparable-dynamic-cursor-name" title="preparable_dynamic_cursor_name" shape="rect">preparable_dynamic_cursor_name</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#preparable-sql-data-statement" title="preparable-sql-data-statement">preparable-sql-data-statement</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + direct_SQL_statement +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="213" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#directly-executable-statement" xlink:title="directly_executable_statement" shape="rect"> + <rect x="23" y="1" width="148" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">directly_executable_statement</text></a><rect x="179" y="1" width="10" height="18" class="terminal" rx="4"/> + <text class="terminal" x="183" y="13">;</text> + <path class="line" d="m17 10 h2 m0 0 h4 m148 0 h4 m0 0 h4 m10 0 h4 m3 0 h-3"/> + <polygon points="203 10 211 6 211 14"/> + <polygon points="203 10 195 6 195 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#direct-sql-statement" title="direct_SQL_statement" shape="rect">direct_SQL_statement</a></div> + <div>         ::= <a href="#directly-executable-statement" title="directly_executable_statement" shape="rect">directly_executable_statement</a> ';'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#compilationunit" title="compilationunit">compilationunit</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + directly_executable_statement +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="291" height="189"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#direct-sql-data-statement" xlink:title="direct_SQL_data_statement" shape="rect"> + <rect x="43" y="1" width="138" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">direct_SQL_data_statement</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#sql-schema-statement" xlink:title="SQL_schema_statement" shape="rect"> + <rect x="43" y="29" width="124" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">SQL_schema_statement</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#sql-transaction-statement" xlink:title="SQL_transaction_statement" shape="rect"> + <rect x="43" y="57" width="138" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="69">SQL_transaction_statement</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#sql-connection-statement" xlink:title="SQL_connection_statement" shape="rect"> + <rect x="43" y="85" width="136" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="97">SQL_connection_statement</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#sql-session-statement" xlink:title="SQL_session_statement" shape="rect"> + <rect x="43" y="113" width="122" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="125">SQL_session_statement</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#direct-implementation-defined-statement" xlink:title="direct_implementation_defined_statement" shape="rect"> + <rect x="43" y="141" width="204" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="153">direct_implementation_defined_statement</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#use-statement" xlink:title="use_statement" shape="rect"> + <rect x="43" y="169" width="80" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="181">use_statement</text></a><path class="line" d="m17 10 h2 m20 0 h4 m138 0 h4 m0 0 h66 m-232 0 h20 m212 0 h20 m-252 0 q10 0 10 10 m232 0 q0 -10 10 -10 m-242 10 v8 m232 0 v-8 m-232 8 q0 10 10 10 m212 0 q10 0 10 -10 m-222 10 h4 m124 0 h4 m0 0 h80 m-222 -10 v20 m232 0 v-20 m-232 20 v8 m232 0 v-8 m-232 8 q0 10 10 10 m212 0 q10 0 10 -10 m-222 10 h4 m138 0 h4 m0 0 h66 m-222 -10 v20 m232 0 v-20 m-232 20 v8 m232 0 v-8 m-232 8 q0 10 10 10 m212 0 q10 0 10 -10 m-222 10 h4 m136 0 h4 m0 0 h68 m-222 -10 v20 m232 0 v-20 m-232 20 v8 m232 0 v-8 m-232 8 q0 10 10 10 m212 0 q10 0 10 -10 m-222 10 h4 m122 0 h4 m0 0 h82 m-222 -10 v20 m232 0 v-20 m-232 20 v8 m232 0 v-8 m-232 8 q0 10 10 10 m212 0 q10 0 10 -10 m-222 10 h4 m204 0 h4 m-222 -10 v20 m232 0 v-20 m-232 20 v8 m232 0 v-8 m-232 8 q0 10 10 10 m212 0 q10 0 10 -10 m-222 10 h4 m80 0 h4 m0 0 h124 m23 -168 h-3"/> + <polygon points="281 10 289 6 289 14"/> + <polygon points="281 10 273 6 273 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#directly-executable-statement" title="directly_executable_statement" shape="rect">directly_executable_statement</a></div> + <div>         ::= <a href="#direct-sql-data-statement" title="direct_SQL_data_statement" shape="rect">direct_SQL_data_statement</a></div> + <div>           | <a href="#sql-schema-statement" title="SQL_schema_statement" shape="rect">SQL_schema_statement</a></div> + <div>           | <a href="#sql-transaction-statement" title="SQL_transaction_statement" shape="rect">SQL_transaction_statement</a></div> + <div>           | <a href="#sql-connection-statement" title="SQL_connection_statement" shape="rect">SQL_connection_statement</a></div> + <div>           | <a href="#sql-session-statement" title="SQL_session_statement" shape="rect">SQL_session_statement</a></div> + <div>           | <a href="#direct-implementation-defined-statement" title="direct_implementation_defined_statement" shape="rect">direct_implementation_defined_statement</a></div> + <div>           | <a href="#use-statement" title="use_statement" shape="rect">use_statement</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#direct-sql-statement" title="direct-sql-statement">direct-sql-statement</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + direct_SQL_data_statement +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="273" height="189"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#delete-statement-searched" xlink:title="delete_statement_searched" shape="rect"> + <rect x="43" y="1" width="140" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">delete_statement_searched</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#direct-select-statement-multiple-rows" xlink:title="direct_select_statement_multiple_rows" shape="rect"> + <rect x="43" y="29" width="186" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">direct_select_statement_multiple_rows</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#insert-statement" xlink:title="insert_statement" shape="rect"> + <rect x="43" y="57" width="88" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="69">insert_statement</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#update-statement-searched" xlink:title="update_statement_searched" shape="rect"> + <rect x="43" y="85" width="144" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="97">update_statement_searched</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#truncate-table-statement" xlink:title="truncate_table_statement" shape="rect"> + <rect x="43" y="113" width="128" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="125">truncate_table_statement</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#merge-statement" xlink:title="merge_statement" shape="rect"> + <rect x="43" y="141" width="94" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="153">merge_statement</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#temporary-table-declaration" xlink:title="temporary_table_declaration" shape="rect"> + <rect x="43" y="169" width="140" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="181">temporary_table_declaration</text></a><path class="line" d="m17 10 h2 m20 0 h4 m140 0 h4 m0 0 h46 m-214 0 h20 m194 0 h20 m-234 0 q10 0 10 10 m214 0 q0 -10 10 -10 m-224 10 v8 m214 0 v-8 m-214 8 q0 10 10 10 m194 0 q10 0 10 -10 m-204 10 h4 m186 0 h4 m-204 -10 v20 m214 0 v-20 m-214 20 v8 m214 0 v-8 m-214 8 q0 10 10 10 m194 0 q10 0 10 -10 m-204 10 h4 m88 0 h4 m0 0 h98 m-204 -10 v20 m214 0 v-20 m-214 20 v8 m214 0 v-8 m-214 8 q0 10 10 10 m194 0 q10 0 10 -10 m-204 10 h4 m144 0 h4 m0 0 h42 m-204 -10 v20 m214 0 v-20 m-214 20 v8 m214 0 v-8 m-214 8 q0 10 10 10 m194 0 q10 0 10 -10 m-204 10 h4 m128 0 h4 m0 0 h58 m-204 -10 v20 m214 0 v-20 m-214 20 v8 m214 0 v-8 m-214 8 q0 10 10 10 m194 0 q10 0 10 -10 m-204 10 h4 m94 0 h4 m0 0 h92 m-204 -10 v20 m214 0 v-20 m-214 20 v8 m214 0 v-8 m-214 8 q0 10 10 10 m194 0 q10 0 10 -10 m-204 10 h4 m140 0 h4 m0 0 h46 m23 -168 h-3"/> + <polygon points="263 10 271 6 271 14"/> + <polygon points="263 10 255 6 255 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#direct-sql-data-statement" title="direct_SQL_data_statement" shape="rect">direct_SQL_data_statement</a></div> + <div>         ::= <a href="#delete-statement-searched" title="delete_statement_searched" shape="rect">delete_statement_searched</a></div> + <div>           | <a href="#direct-select-statement-multiple-rows" title="direct_select_statement_multiple_rows" shape="rect">direct_select_statement_multiple_rows</a></div> + <div>           | <a href="#insert-statement" title="insert_statement" shape="rect">insert_statement</a></div> + <div>           | <a href="#update-statement-searched" title="update_statement_searched" shape="rect">update_statement_searched</a></div> + <div>           | <a href="#truncate-table-statement" title="truncate_table_statement" shape="rect">truncate_table_statement</a></div> + <div>           | <a href="#merge-statement" title="merge_statement" shape="rect">merge_statement</a></div> + <div>           | <a href="#temporary-table-declaration" title="temporary_table_declaration" shape="rect">temporary_table_declaration</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#directly-executable-statement" title="directly-executable-statement">directly-executable-statement</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + direct_implementation_defined_statement +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="157" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#character-string-literal" xlink:title="character_string_literal" shape="rect"> + <rect x="23" y="1" width="110" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">character_string_literal</text></a><path class="line" d="m17 10 h2 m0 0 h4 m110 0 h4 m3 0 h-3"/> + <polygon points="147 10 155 6 155 14"/> + <polygon points="147 10 139 6 139 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#direct-implementation-defined-statement" title="direct_implementation_defined_statement" shape="rect">direct_implementation_defined_statement</a></div> + <div>         ::= <a href="#character-string-literal" title="character_string_literal" shape="rect">character_string_literal</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#directly-executable-statement" title="directly-executable-statement">directly-executable-statement</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + direct_select_statement_multiple_rows +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="143" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#cursor-specification" xlink:title="cursor_specification" shape="rect"> + <rect x="23" y="1" width="96" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">cursor_specification</text></a><path class="line" d="m17 10 h2 m0 0 h4 m96 0 h4 m3 0 h-3"/> + <polygon points="133 10 141 6 141 14"/> + <polygon points="133 10 125 6 125 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#direct-select-statement-multiple-rows" title="direct_select_statement_multiple_rows" shape="rect">direct_select_statement_multiple_rows</a></div> + <div>         ::= <a href="#cursor-specification" title="cursor_specification" shape="rect">cursor_specification</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#direct-sql-data-statement" title="direct-sql-data-statement">direct-sql-data-statement</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + get_diagnostics_statement +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="299" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="24" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">GET</text> + <rect x="55" y="1" width="72" height="18" class="terminal" rx="4"/> + <text class="terminal" x="59" y="13">DIAGNOSTICS</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#sql-diagnostics-information" xlink:title="SQL_diagnostics_information" shape="rect"> + <rect x="135" y="1" width="140" height="18" class="nonterminal"/> + <text class="nonterminal" x="139" y="13">SQL_diagnostics_information</text></a><path class="line" d="m17 10 h2 m0 0 h4 m24 0 h4 m0 0 h4 m72 0 h4 m0 0 h4 m140 0 h4 m3 0 h-3"/> + <polygon points="289 10 297 6 297 14"/> + <polygon points="289 10 281 6 281 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#get-diagnostics-statement" title="get_diagnostics_statement" shape="rect">get_diagnostics_statement</a></div> + <div>         ::= 'GET' 'DIAGNOSTICS' <a href="#sql-diagnostics-information" title="SQL_diagnostics_information" shape="rect">SQL_diagnostics_information</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#sql-diagnostics-statement" title="sql-diagnostics-statement">sql-diagnostics-statement</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + SQL_diagnostics_information +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="201" height="77"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#statement-information" xlink:title="statement_information" shape="rect"> + <rect x="43" y="1" width="114" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">statement_information</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#condition-information" xlink:title="condition_information" shape="rect"> + <rect x="43" y="29" width="106" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">condition_information</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#all-information" xlink:title="all_information" shape="rect"> + <rect x="43" y="57" width="74" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="69">all_information</text></a><path class="line" d="m17 10 h2 m20 0 h4 m114 0 h4 m-142 0 h20 m122 0 h20 m-162 0 q10 0 10 10 m142 0 q0 -10 10 -10 m-152 10 v8 m142 0 v-8 m-142 8 q0 10 10 10 m122 0 q10 0 10 -10 m-132 10 h4 m106 0 h4 m0 0 h8 m-132 -10 v20 m142 0 v-20 m-142 20 v8 m142 0 v-8 m-142 8 q0 10 10 10 m122 0 q10 0 10 -10 m-132 10 h4 m74 0 h4 m0 0 h40 m23 -56 h-3"/> + <polygon points="191 10 199 6 199 14"/> + <polygon points="191 10 183 6 183 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#sql-diagnostics-information" title="SQL_diagnostics_information" shape="rect">SQL_diagnostics_information</a></div> + <div>         ::= <a href="#statement-information" title="statement_information" shape="rect">statement_information</a></div> + <div>           | <a href="#condition-information" title="condition_information" shape="rect">condition_information</a></div> + <div>           | <a href="#all-information" title="all_information" shape="rect">all_information</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#get-diagnostics-statement" title="get-diagnostics-statement">get-diagnostics-statement</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + statement_information +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="227" height="49"> + <polygon points="9 38 1 34 1 42"/> + <polygon points="17 38 9 34 9 42"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#statement-information-item" xlink:title="statement_information_item" shape="rect"> + <rect x="43" y="29" width="140" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">statement_information_item</text></a><rect x="43" y="1" width="8" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="13">,</text> + <path class="line" d="m17 38 h2 m20 0 h4 m140 0 h4 m-168 0 l20 0 m-1 0 q-9 0 -9 -10 l0 -8 q0 -10 10 -10 m148 28 l20 0 m-20 0 q10 0 10 -10 l0 -8 q0 -10 -10 -10 m-148 0 h4 m8 0 h4 m0 0 h132 m23 28 h-3"/> + <polygon points="217 38 225 34 225 42"/> + <polygon points="217 38 209 34 209 42"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#statement-information" title="statement_information" shape="rect">statement_information</a></div> + <div>         ::= <a href="#statement-information-item" title="statement_information_item" shape="rect">statement_information_item</a> ( ',' <a href="#statement-information-item" title="statement_information_item" shape="rect">statement_information_item</a> )*</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#sql-diagnostics-information" title="sql-diagnostics-information">sql-diagnostics-information</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + statement_information_item +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="381" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#simple-target-specification" xlink:title="simple_target_specification" shape="rect"> + <rect x="23" y="1" width="130" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">simple_target_specification</text></a><rect x="161" y="1" width="14" height="18" class="terminal" rx="4"/> + <text class="terminal" x="165" y="13">=</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#statement-information-item-name" xlink:title="statement_information_item_name" shape="rect"> + <rect x="183" y="1" width="174" height="18" class="nonterminal"/> + <text class="nonterminal" x="187" y="13">statement_information_item_name</text></a><path class="line" d="m17 10 h2 m0 0 h4 m130 0 h4 m0 0 h4 m14 0 h4 m0 0 h4 m174 0 h4 m3 0 h-3"/> + <polygon points="371 10 379 6 379 14"/> + <polygon points="371 10 363 6 363 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#statement-information-item" title="statement_information_item" shape="rect">statement_information_item</a></div> + <div>         ::= <a href="#simple-target-specification" title="simple_target_specification" shape="rect">simple_target_specification</a> '=' <a href="#statement-information-item-name" title="statement_information_item_name" shape="rect">statement_information_item_name</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#statement-information" title="statement-information">statement-information</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + statement_information_item_name +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="241" height="273"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="43" y="1" width="48" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="13">NUMBER</text> + <rect x="43" y="29" width="36" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="41">MORE</text> + <rect x="43" y="57" width="114" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="69">COMMAND_FUNCTION</text> + <rect x="43" y="85" width="146" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="97">COMMAND_FUNCTION_CODE</text> + <rect x="43" y="113" width="106" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="125">DYNAMIC_FUNCTION</text> + <rect x="43" y="141" width="138" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="153">DYNAMIC_FUNCTION_CODE</text> + <rect x="43" y="169" width="72" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="181">ROW_COUNT</text> + <rect x="43" y="197" width="144" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="209">TRANSACTIONS_COMMITTED</text> + <rect x="43" y="225" width="154" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="237">TRANSACTIONS_ROLLED_BACK</text> + <rect x="43" y="253" width="112" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="265">TRANSACTION_ACTIVE</text> + <path class="line" d="m17 10 h2 m20 0 h4 m48 0 h4 m0 0 h106 m-182 0 h20 m162 0 h20 m-202 0 q10 0 10 10 m182 0 q0 -10 10 -10 m-192 10 v8 m182 0 v-8 m-182 8 q0 10 10 10 m162 0 q10 0 10 -10 m-172 10 h4 m36 0 h4 m0 0 h118 m-172 -10 v20 m182 0 v-20 m-182 20 v8 m182 0 v-8 m-182 8 q0 10 10 10 m162 0 q10 0 10 -10 m-172 10 h4 m114 0 h4 m0 0 h40 m-172 -10 v20 m182 0 v-20 m-182 20 v8 m182 0 v-8 m-182 8 q0 10 10 10 m162 0 q10 0 10 -10 m-172 10 h4 m146 0 h4 m0 0 h8 m-172 -10 v20 m182 0 v-20 m-182 20 v8 m182 0 v-8 m-182 8 q0 10 10 10 m162 0 q10 0 10 -10 m-172 10 h4 m106 0 h4 m0 0 h48 m-172 -10 v20 m182 0 v-20 m-182 20 v8 m182 0 v-8 m-182 8 q0 10 10 10 m162 0 q10 0 10 -10 m-172 10 h4 m138 0 h4 m0 0 h16 m-172 -10 v20 m182 0 v-20 m-182 20 v8 m182 0 v-8 m-182 8 q0 10 10 10 m162 0 q10 0 10 -10 m-172 10 h4 m72 0 h4 m0 0 h82 m-172 -10 v20 m182 0 v-20 m-182 20 v8 m182 0 v-8 m-182 8 q0 10 10 10 m162 0 q10 0 10 -10 m-172 10 h4 m144 0 h4 m0 0 h10 m-172 -10 v20 m182 0 v-20 m-182 20 v8 m182 0 v-8 m-182 8 q0 10 10 10 m162 0 q10 0 10 -10 m-172 10 h4 m154 0 h4 m-172 -10 v20 m182 0 v-20 m-182 20 v8 m182 0 v-8 m-182 8 q0 10 10 10 m162 0 q10 0 10 -10 m-172 10 h4 m112 0 h4 m0 0 h42 m23 -252 h-3"/> + <polygon points="231 10 239 6 239 14"/> + <polygon points="231 10 223 6 223 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#statement-information-item-name" title="statement_information_item_name" shape="rect">statement_information_item_name</a></div> + <div>         ::= 'NUMBER'</div> + <div>           | 'MORE'</div> + <div>           | 'COMMAND_FUNCTION'</div> + <div>           | 'COMMAND_FUNCTION_CODE'</div> + <div>           | 'DYNAMIC_FUNCTION'</div> + <div>           | 'DYNAMIC_FUNCTION_CODE'</div> + <div>           | 'ROW_COUNT'</div> + <div>           | 'TRANSACTIONS_COMMITTED'</div> + <div>           | 'TRANSACTIONS_ROLLED_BACK'</div> + <div>           | 'TRANSACTION_ACTIVE'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#statement-information-item" title="statement-information-item">statement-information-item</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + condition_information +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="425" height="49"> + <polygon points="9 38 1 34 1 42"/> + <polygon points="17 38 9 34 9 42"/> + <rect x="23" y="29" width="62" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="41">CONDITION</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#simple-value-specification" xlink:title="simple_value_specification" shape="rect"> + <rect x="93" y="29" width="128" height="18" class="nonterminal"/> + <text class="nonterminal" x="97" y="41">simple_value_specification</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#condition-information-item" xlink:title="condition_information_item" shape="rect"> + <rect x="249" y="29" width="132" height="18" class="nonterminal"/> + <text class="nonterminal" x="253" y="41">condition_information_item</text></a><rect x="249" y="1" width="8" height="18" class="terminal" rx="4"/> + <text class="terminal" x="253" y="13">,</text> + <path class="line" d="m17 38 h2 m0 0 h4 m62 0 h4 m0 0 h4 m128 0 h4 m20 0 h4 m132 0 h4 m-160 0 l20 0 m-1 0 q-9 0 -9 -10 l0 -8 q0 -10 10 -10 m140 28 l20 0 m-20 0 q10 0 10 -10 l0 -8 q0 -10 -10 -10 m-140 0 h4 m8 0 h4 m0 0 h124 m23 28 h-3"/> + <polygon points="415 38 423 34 423 42"/> + <polygon points="415 38 407 34 407 42"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#condition-information" title="condition_information" shape="rect">condition_information</a></div> + <div>         ::= 'CONDITION' <a href="#simple-value-specification" title="simple_value_specification" shape="rect">simple_value_specification</a> <a href="#condition-information-item" title="condition_information_item" shape="rect">condition_information_item</a> ( ',' <a href="#condition-information-item" title="condition_information_item" shape="rect">condition_information_item</a> )*</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#sql-diagnostics-information" title="sql-diagnostics-information">sql-diagnostics-information</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + condition_information_item +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="373" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#simple-target-specification" xlink:title="simple_target_specification" shape="rect"> + <rect x="23" y="1" width="130" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">simple_target_specification</text></a><rect x="161" y="1" width="14" height="18" class="terminal" rx="4"/> + <text class="terminal" x="165" y="13">=</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#condition-information-item-name" xlink:title="condition_information_item_name" shape="rect"> + <rect x="183" y="1" width="166" height="18" class="nonterminal"/> + <text class="nonterminal" x="187" y="13">condition_information_item_name</text></a><path class="line" d="m17 10 h2 m0 0 h4 m130 0 h4 m0 0 h4 m14 0 h4 m0 0 h4 m166 0 h4 m3 0 h-3"/> + <polygon points="363 10 371 6 371 14"/> + <polygon points="363 10 355 6 355 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#condition-information-item" title="condition_information_item" shape="rect">condition_information_item</a></div> + <div>         ::= <a href="#simple-target-specification" title="simple_target_specification" shape="rect">simple_target_specification</a> '=' <a href="#condition-information-item-name" title="condition_information_item_name" shape="rect">condition_information_item_name</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#condition-information" title="condition-information">condition-information</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + condition_information_item_name +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="253" height="749"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="43" y="1" width="84" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="13">CATALOG_NAME</text> + <rect x="43" y="29" width="78" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="41">CLASS_ORIGIN</text> + <rect x="43" y="57" width="82" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="69">COLUMN_NAME</text> + <rect x="43" y="85" width="108" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="97">CONDITION_NUMBER</text> + <rect x="43" y="113" width="104" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="125">CONNECTION_NAME</text> + <rect x="43" y="141" width="118" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="153">CONSTRAINT_CATALOG</text> + <rect x="43" y="169" width="102" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="181">CONSTRAINT_NAME</text> + <rect x="43" y="197" width="114" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="209">CONSTRAINT_SCHEMA</text> + <rect x="43" y="225" width="80" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="237">CURSOR_NAME</text> + <rect x="43" y="253" width="94" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="265">MESSAGE_LENGTH</text> + <rect x="43" y="281" width="130" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="293">MESSAGE_OCTET_LENGTH</text> + <rect x="43" y="309" width="80" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="321">MESSAGE_TEXT</text> + <rect x="43" y="337" width="98" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="349">PARAMETER_MODE</text> + <rect x="43" y="365" width="96" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="377">PARAMETER_NAME</text> + <rect x="43" y="393" width="166" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="405">PARAMETER_ORDINAL_POSITION</text> + <rect x="43" y="421" width="110" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="433">RETURNED_SQLSTATE</text> + <rect x="43" y="449" width="100" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="461">ROUTINE_CATALOG</text> + <rect x="43" y="477" width="82" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="489">ROUTINE_NAME</text> + <rect x="43" y="505" width="94" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="517">ROUTINE_SCHEMA</text> + <rect x="43" y="533" width="80" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="545">SCHEMA_NAME</text> + <rect x="43" y="561" width="76" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="573">SERVER_NAME</text> + <rect x="43" y="589" width="82" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="601">SPECIFIC_NAME</text> + <rect x="43" y="617" width="96" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="629">SUBCLASS_ORIGIN</text> + <rect x="43" y="645" width="68" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="657">TABLE_NAME</text> + <rect x="43" y="673" width="98" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="685">TRIGGER_CATALOG</text> + <rect x="43" y="701" width="80" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="713">TRIGGER_NAME</text> + <rect x="43" y="729" width="92" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="741">TRIGGER_SCHEMA</text> + <path class="line" d="m17 10 h2 m20 0 h4 m84 0 h4 m0 0 h82 m-194 0 h20 m174 0 h20 m-214 0 q10 0 10 10 m194 0 q0 -10 10 -10 m-204 10 v8 m194 0 v-8 m-194 8 q0 10 10 10 m174 0 q10 0 10 -10 m-184 10 h4 m78 0 h4 m0 0 h88 m-184 -10 v20 m194 0 v-20 m-194 20 v8 m194 0 v-8 m-194 8 q0 10 10 10 m174 0 q10 0 10 -10 m-184 10 h4 m82 0 h4 m0 0 h84 m-184 -10 v20 m194 0 v-20 m-194 20 v8 m194 0 v-8 m-194 8 q0 10 10 10 m174 0 q10 0 10 -10 m-184 10 h4 m108 0 h4 m0 0 h58 m-184 -10 v20 m194 0 v-20 m-194 20 v8 m194 0 v-8 m-194 8 q0 10 10 10 m174 0 q10 0 10 -10 m-184 10 h4 m104 0 h4 m0 0 h62 m-184 -10 v20 m194 0 v-20 m-194 20 v8 m194 0 v-8 m-194 8 q0 10 10 10 m174 0 q10 0 10 -10 m-184 10 h4 m118 0 h4 m0 0 h48 m-184 -10 v20 m194 0 v-20 m-194 20 v8 m194 0 v-8 m-194 8 q0 10 10 10 m174 0 q10 0 10 -10 m-184 10 h4 m102 0 h4 m0 0 h64 m-184 -10 v20 m194 0 v-20 m-194 20 v8 m194 0 v-8 m-194 8 q0 10 10 10 m174 0 q10 0 10 -10 m-184 10 h4 m114 0 h4 m0 0 h52 m-184 -10 v20 m194 0 v-20 m-194 20 v8 m194 0 v-8 m-194 8 q0 10 10 10 m174 0 q10 0 10 -10 m-184 10 h4 m80 0 h4 m0 0 h86 m-184 -10 v20 m194 0 v-20 m-194 20 v8 m194 0 v-8 m-194 8 q0 10 10 10 m174 0 q10 0 10 -10 m-184 10 h4 m94 0 h4 m0 0 h72 m-184 -10 v20 m194 0 v-20 m-194 20 v8 m194 0 v-8 m-194 8 q0 10 10 10 m174 0 q10 0 10 -10 m-184 10 h4 m130 0 h4 m0 0 h36 m-184 -10 v20 m194 0 v-20 m-194 20 v8 m194 0 v-8 m-194 8 q0 10 10 10 m174 0 q10 0 10 -10 m-184 10 h4 m80 0 h4 m0 0 h86 m-184 -10 v20 m194 0 v-20 m-194 20 v8 m194 0 v-8 m-194 8 q0 10 10 10 m174 0 q10 0 10 -10 m-184 10 h4 m98 0 h4 m0 0 h68 m-184 -10 v20 m194 0 v-20 m-194 20 v8 m194 0 v-8 m-194 8 q0 10 10 10 m174 0 q10 0 10 -10 m-184 10 h4 m96 0 h4 m0 0 h70 m-184 -10 v20 m194 0 v-20 m-194 20 v8 m194 0 v-8 m-194 8 q0 10 10 10 m174 0 q10 0 10 -10 m-184 10 h4 m166 0 h4 m-184 -10 v20 m194 0 v-20 m-194 20 v8 m194 0 v-8 m-194 8 q0 10 10 10 m174 0 q10 0 10 -10 m-184 10 h4 m110 0 h4 m0 0 h56 m-184 -10 v20 m194 0 v-20 m-194 20 v8 m194 0 v-8 m-194 8 q0 10 10 10 m174 0 q10 0 10 -10 m-184 10 h4 m100 0 h4 m0 0 h66 m-184 -10 v20 m194 0 v-20 m-194 20 v8 m194 0 v-8 m-194 8 q0 10 10 10 m174 0 q10 0 10 -10 m-184 10 h4 m82 0 h4 m0 0 h84 m-184 -10 v20 m194 0 v-20 m-194 20 v8 m194 0 v-8 m-194 8 q0 10 10 10 m174 0 q10 0 10 -10 m-184 10 h4 m94 0 h4 m0 0 h72 m-184 -10 v20 m194 0 v-20 m-194 20 v8 m194 0 v-8 m-194 8 q0 10 10 10 m174 0 q10 0 10 -10 m-184 10 h4 m80 0 h4 m0 0 h86 m-184 -10 v20 m194 0 v-20 m-194 20 v8 m194 0 v-8 m-194 8 q0 10 10 10 m174 0 q10 0 10 -10 m-184 10 h4 m76 0 h4 m0 0 h90 m-184 -10 v20 m194 0 v-20 m-194 20 v8 m194 0 v-8 m-194 8 q0 10 10 10 m174 0 q10 0 10 -10 m-184 10 h4 m82 0 h4 m0 0 h84 m-184 -10 v20 m194 0 v-20 m-194 20 v8 m194 0 v-8 m-194 8 q0 10 10 10 m174 0 q10 0 10 -10 m-184 10 h4 m96 0 h4 m0 0 h70 m-184 -10 v20 m194 0 v-20 m-194 20 v8 m194 0 v-8 m-194 8 q0 10 10 10 m174 0 q10 0 10 -10 m-184 10 h4 m68 0 h4 m0 0 h98 m-184 -10 v20 m194 0 v-20 m-194 20 v8 m194 0 v-8 m-194 8 q0 10 10 10 m174 0 q10 0 10 -10 m-184 10 h4 m98 0 h4 m0 0 h68 m-184 -10 v20 m194 0 v-20 m-194 20 v8 m194 0 v-8 m-194 8 q0 10 10 10 m174 0 q10 0 10 -10 m-184 10 h4 m80 0 h4 m0 0 h86 m-184 -10 v20 m194 0 v-20 m-194 20 v8 m194 0 v-8 m-194 8 q0 10 10 10 m174 0 q10 0 10 -10 m-184 10 h4 m92 0 h4 m0 0 h74 m23 -728 h-3"/> + <polygon points="243 10 251 6 251 14"/> + <polygon points="243 10 235 6 235 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#condition-information-item-name" title="condition_information_item_name" shape="rect">condition_information_item_name</a></div> + <div>         ::= 'CATALOG_NAME'</div> + <div>           | 'CLASS_ORIGIN'</div> + <div>           | 'COLUMN_NAME'</div> + <div>           | 'CONDITION_NUMBER'</div> + <div>           | 'CONNECTION_NAME'</div> + <div>           | 'CONSTRAINT_CATALOG'</div> + <div>           | 'CONSTRAINT_NAME'</div> + <div>           | 'CONSTRAINT_SCHEMA'</div> + <div>           | 'CURSOR_NAME'</div> + <div>           | 'MESSAGE_LENGTH'</div> + <div>           | 'MESSAGE_OCTET_LENGTH'</div> + <div>           | 'MESSAGE_TEXT'</div> + <div>           | 'PARAMETER_MODE'</div> + <div>           | 'PARAMETER_NAME'</div> + <div>           | 'PARAMETER_ORDINAL_POSITION'</div> + <div>           | 'RETURNED_SQLSTATE'</div> + <div>           | 'ROUTINE_CATALOG'</div> + <div>           | 'ROUTINE_NAME'</div> + <div>           | 'ROUTINE_SCHEMA'</div> + <div>           | 'SCHEMA_NAME'</div> + <div>           | 'SERVER_NAME'</div> + <div>           | 'SPECIFIC_NAME'</div> + <div>           | 'SUBCLASS_ORIGIN'</div> + <div>           | 'TABLE_NAME'</div> + <div>           | 'TRIGGER_CATALOG'</div> + <div>           | 'TRIGGER_NAME'</div> + <div>           | 'TRIGGER_SCHEMA'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#condition-information-item" title="condition-information-item">condition-information-item</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + all_information +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="279" height="42"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#all-info-target" xlink:title="all_info_target" shape="rect"> + <rect x="23" y="1" width="72" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">all_info_target</text></a><rect x="103" y="1" width="14" height="18" class="terminal" rx="4"/> + <text class="terminal" x="107" y="13">=</text> + <rect x="125" y="1" width="24" height="18" class="terminal" rx="4"/> + <text class="terminal" x="129" y="13">ALL</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#all-qualifier" xlink:title="all_qualifier" shape="rect"> + <rect x="177" y="22" width="58" height="18" class="nonterminal"/> + <text class="nonterminal" x="181" y="34">all_qualifier</text></a><path class="line" d="m17 10 h2 m0 0 h4 m72 0 h4 m0 0 h4 m14 0 h4 m0 0 h4 m24 0 h4 m20 0 h10 m0 0 h56 m-86 0 h20 m66 0 h20 m-106 0 q10 0 10 10 m86 0 q0 -10 10 -10 m-96 10 v1 m86 0 v-1 m-86 1 q0 10 10 10 m66 0 q10 0 10 -10 m-76 10 h4 m58 0 h4 m23 -21 h-3"/> + <polygon points="269 10 277 6 277 14"/> + <polygon points="269 10 261 6 261 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#all-information" title="all_information" shape="rect">all_information</a></div> + <div>         ::= <a href="#all-info-target" title="all_info_target" shape="rect">all_info_target</a> '=' 'ALL' <a href="#all-qualifier" title="all_qualifier" shape="rect">all_qualifier</a>?</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#sql-diagnostics-information" title="sql-diagnostics-information">sql-diagnostics-information</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + all_info_target +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="177" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#simple-target-specification" xlink:title="simple_target_specification" shape="rect"> + <rect x="23" y="1" width="130" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">simple_target_specification</text></a><path class="line" d="m17 10 h2 m0 0 h4 m130 0 h4 m3 0 h-3"/> + <polygon points="167 10 175 6 175 14"/> + <polygon points="167 10 159 6 159 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#all-info-target" title="all_info_target" shape="rect">all_info_target</a></div> + <div>         ::= <a href="#simple-target-specification" title="simple_target_specification" shape="rect">simple_target_specification</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#all-information" title="all-information">all-information</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + all_qualifier +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="325" height="70"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="43" y="1" width="62" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="13">STATEMENT</text> + <rect x="43" y="29" width="62" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="41">CONDITION</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#simple-value-specification" xlink:title="simple_value_specification" shape="rect"> + <rect x="133" y="50" width="128" height="18" class="nonterminal"/> + <text class="nonterminal" x="137" y="62">simple_value_specification</text></a><path class="line" d="m17 10 h2 m20 0 h4 m62 0 h4 m0 0 h176 m-266 0 h20 m246 0 h20 m-286 0 q10 0 10 10 m266 0 q0 -10 10 -10 m-276 10 v8 m266 0 v-8 m-266 8 q0 10 10 10 m246 0 q10 0 10 -10 m-256 10 h4 m62 0 h4 m20 0 h10 m0 0 h126 m-156 0 h20 m136 0 h20 m-176 0 q10 0 10 10 m156 0 q0 -10 10 -10 m-166 10 v1 m156 0 v-1 m-156 1 q0 10 10 10 m136 0 q10 0 10 -10 m-146 10 h4 m128 0 h4 m43 -49 h-3"/> + <polygon points="315 10 323 6 323 14"/> + <polygon points="315 10 307 6 307 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#all-qualifier" title="all_qualifier" shape="rect">all_qualifier</a></div> + <div>         ::= 'STATEMENT'</div> + <div>           | 'CONDITION' <a href="#simple-value-specification" title="simple_value_specification" shape="rect">simple_value_specification</a>?</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#all-information" title="all-information">all-information</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + use_statement +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="157" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="26" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">USE</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#identifier-chain" xlink:title="identifier_chain" shape="rect"> + <rect x="57" y="1" width="76" height="18" class="nonterminal"/> + <text class="nonterminal" x="61" y="13">identifier_chain</text></a><path class="line" d="m17 10 h2 m0 0 h4 m26 0 h4 m0 0 h4 m76 0 h4 m3 0 h-3"/> + <polygon points="147 10 155 6 155 14"/> + <polygon points="147 10 139 6 139 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#use-statement" title="use_statement" shape="rect">use_statement</a></div> + <div>         ::= 'USE' <a href="#identifier-chain" title="identifier_chain" shape="rect">identifier_chain</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#directly-executable-statement" title="directly-executable-statement">directly-executable-statement</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + lambda +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="215" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#lambda-params" xlink:title="lambda_params" shape="rect"> + <rect x="23" y="1" width="86" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">lambda_params</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#lambda-body" xlink:title="lambda_body" shape="rect"> + <rect x="117" y="1" width="74" height="18" class="nonterminal"/> + <text class="nonterminal" x="121" y="13">lambda_body</text></a><path class="line" d="m17 10 h2 m0 0 h4 m86 0 h4 m0 0 h4 m74 0 h4 m3 0 h-3"/> + <polygon points="205 10 213 6 213 14"/> + <polygon points="205 10 197 6 197 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#lambda" title="lambda" shape="rect">lambda</a>   ::= <a href="#lambda-params" title="lambda_params" shape="rect">lambda_params</a> <a href="#lambda-body" title="lambda_body" shape="rect">lambda_body</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#sql-argument" title="sql-argument">sql-argument</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + lambda_body +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="163" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="18" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">-></text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#value-expression" xlink:title="value_expression" shape="rect"> + <rect x="49" y="1" width="90" height="18" class="nonterminal"/> + <text class="nonterminal" x="53" y="13">value_expression</text></a><path class="line" d="m17 10 h2 m0 0 h4 m18 0 h4 m0 0 h4 m90 0 h4 m3 0 h-3"/> + <polygon points="153 10 161 6 161 14"/> + <polygon points="153 10 145 6 145 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#lambda-body" title="lambda_body" shape="rect">lambda_body</a></div> + <div>         ::= '->' <a href="#value-expression" title="value_expression" shape="rect">value_expression</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#attribute-or-method-reference" title="attribute-or-method-reference">attribute-or-method-reference</a></li><li><a href="#lambda" title="lambda">lambda</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + lambda_params +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="285" height="89"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#actual-identifier" xlink:title="actual_identifier" shape="rect"> + <rect x="43" y="1" width="78" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">actual_identifier</text></a><rect x="43" y="57" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="69">(</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#actual-identifier" xlink:title="actual_identifier" shape="rect"> + <rect x="103" y="57" width="78" height="18" class="nonterminal"/> + <text class="nonterminal" x="107" y="69">actual_identifier</text></a><rect x="103" y="29" width="8" height="18" class="terminal" rx="4"/> + <text class="terminal" x="107" y="41">,</text> + <rect x="229" y="57" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="233" y="69">)</text> + <path class="line" d="m17 10 h2 m20 0 h4 m78 0 h4 m0 0 h120 m-226 0 h20 m206 0 h20 m-246 0 q10 0 10 10 m226 0 q0 -10 10 -10 m-236 10 v36 m226 0 v-36 m-226 36 q0 10 10 10 m206 0 q10 0 10 -10 m-216 10 h4 m12 0 h4 m40 0 h4 m78 0 h4 m-106 0 l20 0 m-1 0 q-9 0 -9 -10 l0 -8 q0 -10 10 -10 m86 28 l20 0 m-20 0 q10 0 10 -10 l0 -8 q0 -10 -10 -10 m-86 0 h4 m8 0 h4 m0 0 h70 m-126 28 h20 m126 0 h20 m-166 0 q10 0 10 10 m146 0 q0 -10 10 -10 m-156 10 v1 m146 0 v-1 m-146 1 q0 10 10 10 m126 0 q10 0 10 -10 m-136 10 h10 m0 0 h116 m20 -21 h4 m12 0 h4 m23 -56 h-3"/> + <polygon points="275 10 283 6 283 14"/> + <polygon points="275 10 267 6 267 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#lambda-params" title="lambda_params" shape="rect">lambda_params</a></div> + <div>         ::= <a href="#actual-identifier" title="actual_identifier" shape="rect">actual_identifier</a></div> + <div>           | '(' ( <a href="#actual-identifier" title="actual_identifier" shape="rect">actual_identifier</a> ( ',' <a href="#actual-identifier" title="actual_identifier" shape="rect">actual_identifier</a> )* )? ')'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#lambda" title="lambda">lambda</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + if_not_exists +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="147" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="16" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">IF</text> + <rect x="47" y="1" width="28" height="18" class="terminal" rx="4"/> + <text class="terminal" x="51" y="13">NOT</text> + <rect x="83" y="1" width="40" height="18" class="terminal" rx="4"/> + <text class="terminal" x="87" y="13">EXISTS</text> + <path class="line" d="m17 10 h2 m0 0 h4 m16 0 h4 m0 0 h4 m28 0 h4 m0 0 h4 m40 0 h4 m3 0 h-3"/> + <polygon points="137 10 145 6 145 14"/> + <polygon points="137 10 129 6 129 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#if-not-exists" title="if_not_exists" shape="rect">if_not_exists</a></div> + <div>         ::= 'IF' 'NOT' 'EXISTS'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#schema-definition" title="schema-definition">schema-definition</a></li><li><a href="#table-definition" title="table-definition">table-definition</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + identifier_suffix_chain +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="269" height="61"> + <polygon points="9 22 1 18 1 26"/> + <polygon points="17 22 9 18 9 26"/> + <rect x="63" y="13" width="16" height="18" class="terminal" rx="4"/> + <text class="terminal" x="67" y="25">@</text> + <rect x="63" y="41" width="10" height="18" class="terminal" rx="4"/> + <text class="terminal" x="67" y="53">:</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#actual-identifier" xlink:title="actual_identifier" shape="rect"> + <rect x="127" y="34" width="78" height="18" class="nonterminal"/> + <text class="nonterminal" x="131" y="46">actual_identifier</text></a><path class="line" d="m17 22 h2 m40 0 h4 m16 0 h4 m-44 0 h20 m24 0 h20 m-64 0 q10 0 10 10 m44 0 q0 -10 10 -10 m-54 10 v8 m44 0 v-8 m-44 8 q0 10 10 10 m24 0 q10 0 10 -10 m-34 10 h4 m10 0 h4 m0 0 h6 m40 -28 h10 m0 0 h76 m-106 0 h20 m86 0 h20 m-126 0 q10 0 10 10 m106 0 q0 -10 10 -10 m-116 10 v1 m106 0 v-1 m-106 1 q0 10 10 10 m86 0 q10 0 10 -10 m-96 10 h4 m78 0 h4 m-190 -21 l20 0 m-1 0 q-9 0 -9 -10 l0 -1 q0 -10 10 -10 m190 21 l20 0 m-20 0 q10 0 10 -10 l0 -1 q0 -10 -10 -10 m-190 0 h10 m0 0 h180 m23 21 h-3"/> + <polygon points="259 22 267 18 267 26"/> + <polygon points="259 22 251 18 251 26"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#identifier-suffix-chain" title="identifier_suffix_chain" shape="rect">identifier_suffix_chain</a></div> + <div>         ::= ( ( '@' | ':' ) <a href="#actual-identifier" title="actual_identifier" shape="rect">actual_identifier</a>? )+</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#alias" title="alias">alias</a></li><li><a href="#identifier" title="identifier">identifier</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + limit_clause +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="219" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="34" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">LIMIT</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#unsigned-integer" xlink:title="unsigned_integer" shape="rect"> + <rect x="85" y="1" width="90" height="18" class="nonterminal"/> + <text class="nonterminal" x="89" y="13">unsigned_integer</text></a><rect x="85" y="29" width="24" height="18" class="terminal" rx="4"/> + <text class="terminal" x="89" y="41">ALL</text> + <path class="line" d="m17 10 h2 m0 0 h4 m34 0 h4 m20 0 h4 m90 0 h4 m-118 0 h20 m98 0 h20 m-138 0 q10 0 10 10 m118 0 q0 -10 10 -10 m-128 10 v8 m118 0 v-8 m-118 8 q0 10 10 10 m98 0 q10 0 10 -10 m-108 10 h4 m24 0 h4 m0 0 h66 m23 -28 h-3"/> + <polygon points="209 10 217 6 217 14"/> + <polygon points="209 10 201 6 201 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#limit-clause" title="limit_clause" shape="rect">limit_clause</a></div> + <div>         ::= 'LIMIT' ( <a href="#unsigned-integer" title="unsigned_integer" shape="rect">unsigned_integer</a> | 'ALL' )</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#query-expression" title="query-expression">query-expression</a></li><li><a href="#query-primary" title="query-primary">query-primary</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + presto_generic_type +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="315" height="105"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#presto-array-type" xlink:title="presto_array_type" shape="rect"> + <rect x="43" y="1" width="94" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">presto_array_type</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#presto-map-type" xlink:title="presto_map_type" shape="rect"> + <rect x="43" y="29" width="92" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">presto_map_type</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#regular-identifier" xlink:title="regular_identifier" shape="rect"> + <rect x="43" y="85" width="84" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="97">regular_identifier</text></a><rect x="135" y="85" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="139" y="97">(</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#data-type" xlink:title="data_type" shape="rect"> + <rect x="175" y="85" width="56" height="18" class="nonterminal"/> + <text class="nonterminal" x="179" y="97">data_type</text></a><rect x="175" y="57" width="8" height="18" class="terminal" rx="4"/> + <text class="terminal" x="179" y="69">,</text> + <rect x="259" y="85" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="263" y="97">)</text> + <path class="line" d="m17 10 h2 m20 0 h4 m94 0 h4 m0 0 h134 m-256 0 h20 m236 0 h20 m-276 0 q10 0 10 10 m256 0 q0 -10 10 -10 m-266 10 v8 m256 0 v-8 m-256 8 q0 10 10 10 m236 0 q10 0 10 -10 m-246 10 h4 m92 0 h4 m0 0 h136 m-246 -10 v20 m256 0 v-20 m-256 20 v36 m256 0 v-36 m-256 36 q0 10 10 10 m236 0 q10 0 10 -10 m-246 10 h4 m84 0 h4 m0 0 h4 m12 0 h4 m20 0 h4 m56 0 h4 m-84 0 l20 0 m-1 0 q-9 0 -9 -10 l0 -8 q0 -10 10 -10 m64 28 l20 0 m-20 0 q10 0 10 -10 l0 -8 q0 -10 -10 -10 m-64 0 h4 m8 0 h4 m0 0 h48 m20 28 h4 m12 0 h4 m23 -84 h-3"/> + <polygon points="305 10 313 6 313 14"/> + <polygon points="305 10 297 6 297 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#presto-generic-type" title="presto_generic_type" shape="rect">presto_generic_type</a></div> + <div>         ::= <a href="#presto-array-type" title="presto_array_type" shape="rect">presto_array_type</a></div> + <div>           | <a href="#presto-map-type" title="presto_map_type" shape="rect">presto_map_type</a></div> + <div>           | <a href="#regular-identifier" title="regular_identifier" shape="rect">regular_identifier</a> '(' <a href="#data-type" title="data_type" shape="rect">data_type</a> ( ',' <a href="#data-type" title="data_type" shape="rect">data_type</a> )* ')'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#data-type" title="data-type">data-type</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + presto_array_type +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="233" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="38" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">ARRAY</text> + <rect x="89" y="1" width="14" height="18" class="terminal" rx="4"/> + <text class="terminal" x="93" y="13"><</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#data-type" xlink:title="data_type" shape="rect"> + <rect x="111" y="1" width="56" height="18" class="nonterminal"/> + <text class="nonterminal" x="115" y="13">data_type</text></a><rect x="175" y="1" width="14" height="18" class="terminal" rx="4"/> + <text class="terminal" x="179" y="13">></text> + <rect x="89" y="29" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="93" y="41">(</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#data-type" xlink:title="data_type" shape="rect"> + <rect x="109" y="29" width="56" height="18" class="nonterminal"/> + <text class="nonterminal" x="113" y="41">data_type</text></a><rect x="173" y="29" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="177" y="41">)</text> + <path class="line" d="m17 10 h2 m0 0 h4 m38 0 h4 m20 0 h4 m14 0 h4 m0 0 h4 m56 0 h4 m0 0 h4 m14 0 h4 m-128 0 h20 m108 0 h20 m-148 0 q10 0 10 10 m128 0 q0 -10 10 -10 m-138 10 v8 m128 0 v-8 m-128 8 q0 10 10 10 m108 0 q10 0 10 -10 m-118 10 h4 m12 0 h4 m0 0 h4 m56 0 h4 m0 0 h4 m12 0 h4 m0 0 h4 m23 -28 h-3"/> + <polygon points="223 10 231 6 231 14"/> + <polygon points="223 10 215 6 215 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#presto-array-type" title="presto_array_type" shape="rect">presto_array_type</a></div> + <div>         ::= 'ARRAY' ( '<' <a href="#data-type" title="data_type" shape="rect">data_type</a> '>' | '(' <a href="#data-type" title="data_type" shape="rect">data_type</a> ')' )</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#presto-generic-type" title="presto-generic-type">presto-generic-type</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + presto_map_type +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="303" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="28" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">MAP</text> + <rect x="79" y="1" width="14" height="18" class="terminal" rx="4"/> + <text class="terminal" x="83" y="13"><</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#data-type" xlink:title="data_type" shape="rect"> + <rect x="101" y="1" width="56" height="18" class="nonterminal"/> + <text class="nonterminal" x="105" y="13">data_type</text></a><rect x="165" y="1" width="8" height="18" class="terminal" rx="4"/> + <text class="terminal" x="169" y="13">,</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#data-type" xlink:title="data_type" shape="rect"> + <rect x="181" y="1" width="56" height="18" class="nonterminal"/> + <text class="nonterminal" x="185" y="13">data_type</text></a><rect x="245" y="1" width="14" height="18" class="terminal" rx="4"/> + <text class="terminal" x="249" y="13">></text> + <rect x="79" y="29" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="83" y="41">(</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#data-type" xlink:title="data_type" shape="rect"> + <rect x="99" y="29" width="56" height="18" class="nonterminal"/> + <text class="nonterminal" x="103" y="41">data_type</text></a><rect x="163" y="29" width="8" height="18" class="terminal" rx="4"/> + <text class="terminal" x="167" y="41">,</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#data-type" xlink:title="data_type" shape="rect"> + <rect x="179" y="29" width="56" height="18" class="nonterminal"/> + <text class="nonterminal" x="183" y="41">data_type</text></a><rect x="243" y="29" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="247" y="41">)</text> + <path class="line" d="m17 10 h2 m0 0 h4 m28 0 h4 m20 0 h4 m14 0 h4 m0 0 h4 m56 0 h4 m0 0 h4 m8 0 h4 m0 0 h4 m56 0 h4 m0 0 h4 m14 0 h4 m-208 0 h20 m188 0 h20 m-228 0 q10 0 10 10 m208 0 q0 -10 10 -10 m-218 10 v8 m208 0 v-8 m-208 8 q0 10 10 10 m188 0 q10 0 10 -10 m-198 10 h4 m12 0 h4 m0 0 h4 m56 0 h4 m0 0 h4 m8 0 h4 m0 0 h4 m56 0 h4 m0 0 h4 m12 0 h4 m0 0 h4 m23 -28 h-3"/> + <polygon points="293 10 301 6 301 14"/> + <polygon points="293 10 285 6 285 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#presto-map-type" title="presto_map_type" shape="rect">presto_map_type</a></div> + <div>         ::= 'MAP' ( '<' <a href="#data-type" title="data_type" shape="rect">data_type</a> ',' <a href="#data-type" title="data_type" shape="rect">data_type</a> '>' | '(' <a href="#data-type" title="data_type" shape="rect">data_type</a> ',' <a href="#data-type" title="data_type" shape="rect">data_type</a> ')' )</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#presto-generic-type" title="presto-generic-type">presto-generic-type</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + grouping_expression +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="137" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#value-expression" xlink:title="value_expression" shape="rect"> + <rect x="23" y="1" width="90" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">value_expression</text></a><path class="line" d="m17 10 h2 m0 0 h4 m90 0 h4 m3 0 h-3"/> + <polygon points="127 10 135 6 135 14"/> + <polygon points="127 10 119 6 119 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#grouping-expression" title="grouping_expression" shape="rect">grouping_expression</a></div> + <div>         ::= <a href="#value-expression" title="value_expression" shape="rect">value_expression</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#grouping-column-reference" title="grouping-column-reference">grouping-column-reference</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + count +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="431" height="98"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="43" y="1" width="40" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="13">COUNT</text> + <rect x="91" y="1" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="95" y="13">(</text> + <rect x="43" y="29" width="48" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="41">"COUNT"</text> + <rect x="99" y="29" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="103" y="41">(</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#set-quantifier" xlink:title="set_quantifier" shape="rect"> + <rect x="139" y="50" width="70" height="18" class="nonterminal"/> + <text class="nonterminal" x="143" y="62">set_quantifier</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#value-expression" xlink:title="value_expression" shape="rect"> + <rect x="257" y="50" width="90" height="18" class="nonterminal"/> + <text class="nonterminal" x="261" y="62">value_expression</text></a><rect x="257" y="78" width="14" height="18" class="terminal" rx="4"/> + <text class="terminal" x="261" y="90">*</text> + <rect x="395" y="1" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="399" y="13">)</text> + <path class="line" d="m17 10 h2 m20 0 h4 m40 0 h4 m0 0 h4 m12 0 h4 m0 0 h264 m-352 0 h20 m332 0 h20 m-372 0 q10 0 10 10 m352 0 q0 -10 10 -10 m-362 10 v8 m352 0 v-8 m-352 8 q0 10 10 10 m332 0 q10 0 10 -10 m-342 10 h4 m48 0 h4 m0 0 h4 m12 0 h4 m20 0 h10 m0 0 h68 m-98 0 h20 m78 0 h20 m-118 0 q10 0 10 10 m98 0 q0 -10 10 -10 m-108 10 v1 m98 0 v-1 m-98 1 q0 10 10 10 m78 0 q10 0 10 -10 m-88 10 h4 m70 0 h4 m40 -21 h10 m0 0 h88 m-118 0 h20 m98 0 h20 m-138 0 q10 0 10 10 m118 0 q0 -10 10 -10 m-128 10 v1 m118 0 v-1 m-118 1 q0 10 10 10 m98 0 q10 0 10 -10 m-108 10 h4 m90 0 h4 m-108 -10 v20 m118 0 v-20 m-118 20 v8 m118 0 v-8 m-118 8 q0 10 10 10 m98 0 q10 0 10 -10 m-108 10 h4 m14 0 h4 m0 0 h76 m40 -77 h4 m12 0 h4 m3 0 h-3"/> + <polygon points="421 10 429 6 429 14"/> + <polygon points="421 10 413 6 413 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#count" title="count" shape="rect">count</a>    ::= ( 'COUNT' '(' | '"COUNT"' '(' <a href="#set-quantifier" title="set_quantifier" shape="rect">set_quantifier</a>? ( <a href="#value-expression" title="value_expression" shape="rect">value_expression</a> | '*' )? ) ')'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#aggregate-function" title="aggregate-function">aggregate-function</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + table_description +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="221" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="56" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">COMMENT</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#character-string-literal" xlink:title="character_string_literal" shape="rect"> + <rect x="87" y="1" width="110" height="18" class="nonterminal"/> + <text class="nonterminal" x="91" y="13">character_string_literal</text></a><path class="line" d="m17 10 h2 m0 0 h4 m56 0 h4 m0 0 h4 m110 0 h4 m3 0 h-3"/> + <polygon points="211 10 219 6 219 14"/> + <polygon points="211 10 203 6 203 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#table-description" title="table_description" shape="rect">table_description</a></div> + <div>         ::= 'COMMENT' <a href="#character-string-literal" title="character_string_literal" shape="rect">character_string_literal</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#table-definition" title="table-definition">table-definition</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + routine_description +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="221" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="56" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">COMMENT</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#character-string-literal" xlink:title="character_string_literal" shape="rect"> + <rect x="87" y="1" width="110" height="18" class="nonterminal"/> + <text class="nonterminal" x="91" y="13">character_string_literal</text></a><path class="line" d="m17 10 h2 m0 0 h4 m56 0 h4 m0 0 h4 m110 0 h4 m3 0 h-3"/> + <polygon points="211 10 219 6 219 14"/> + <polygon points="211 10 203 6 203 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#routine-description" title="routine_description" shape="rect">routine_description</a></div> + <div>         ::= 'COMMENT' <a href="#character-string-literal" title="character_string_literal" shape="rect">character_string_literal</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#function-specification" title="function-specification">function-specification</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + column_description +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="221" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="56" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">COMMENT</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#character-string-literal" xlink:title="character_string_literal" shape="rect"> + <rect x="87" y="1" width="110" height="18" class="nonterminal"/> + <text class="nonterminal" x="91" y="13">character_string_literal</text></a><path class="line" d="m17 10 h2 m0 0 h4 m56 0 h4 m0 0 h4 m110 0 h4 m3 0 h-3"/> + <polygon points="211 10 219 6 219 14"/> + <polygon points="211 10 203 6 203 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#column-description" title="column_description" shape="rect">column_description</a></div> + <div>         ::= 'COMMENT' <a href="#character-string-literal" title="character_string_literal" shape="rect">character_string_literal</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#column-definition" title="column-definition">column-definition</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + presto_aggregation_function +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="201" height="161"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="43" y="1" width="114" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="13">NUMERIC_HISTOGRAM</text> + <rect x="43" y="29" width="66" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="41">HISTOGRAM</text> + <rect x="43" y="57" width="112" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="69">APPROEX_PERCENTILE</text> + <rect x="43" y="85" width="54" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="97">MAP_AGG</text> + <rect x="43" y="113" width="50" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="125">SET_AGG</text> + <rect x="43" y="141" width="66" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="153">MAP_UNION</text> + <path class="line" d="m17 10 h2 m20 0 h4 m114 0 h4 m-142 0 h20 m122 0 h20 m-162 0 q10 0 10 10 m142 0 q0 -10 10 -10 m-152 10 v8 m142 0 v-8 m-142 8 q0 10 10 10 m122 0 q10 0 10 -10 m-132 10 h4 m66 0 h4 m0 0 h48 m-132 -10 v20 m142 0 v-20 m-142 20 v8 m142 0 v-8 m-142 8 q0 10 10 10 m122 0 q10 0 10 -10 m-132 10 h4 m112 0 h4 m0 0 h2 m-132 -10 v20 m142 0 v-20 m-142 20 v8 m142 0 v-8 m-142 8 q0 10 10 10 m122 0 q10 0 10 -10 m-132 10 h4 m54 0 h4 m0 0 h60 m-132 -10 v20 m142 0 v-20 m-142 20 v8 m142 0 v-8 m-142 8 q0 10 10 10 m122 0 q10 0 10 -10 m-132 10 h4 m50 0 h4 m0 0 h64 m-132 -10 v20 m142 0 v-20 m-142 20 v8 m142 0 v-8 m-142 8 q0 10 10 10 m122 0 q10 0 10 -10 m-132 10 h4 m66 0 h4 m0 0 h48 m23 -140 h-3"/> + <polygon points="191 10 199 6 199 14"/> + <polygon points="191 10 183 6 183 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#presto-aggregation-function" title="presto_aggregation_function" shape="rect">presto_aggregation_function</a></div> + <div>         ::= 'NUMERIC_HISTOGRAM'</div> + <div>           | 'HISTOGRAM'</div> + <div>           | 'APPROEX_PERCENTILE'</div> + <div>           | 'MAP_AGG'</div> + <div>           | 'SET_AGG'</div> + <div>           | 'MAP_UNION'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#presto-aggregations" title="presto-aggregations">presto-aggregations</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + presto_aggregations +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="523" height="82"> + <polygon points="9 38 1 34 1 42"/> + <polygon points="17 38 9 34 9 42"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#presto-aggregation-function" xlink:title="presto_aggregation_function" shape="rect"> + <rect x="23" y="29" width="140" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="41">presto_aggregation_function</text></a><rect x="171" y="29" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="175" y="41">(</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#set-quantifier" xlink:title="set_quantifier" shape="rect"> + <rect x="231" y="50" width="70" height="18" class="nonterminal"/> + <text class="nonterminal" x="235" y="62">set_quantifier</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#value-expression" xlink:title="value_expression" shape="rect"> + <rect x="349" y="29" width="90" height="18" class="nonterminal"/> + <text class="nonterminal" x="353" y="41">value_expression</text></a><rect x="349" y="1" width="8" height="18" class="terminal" rx="4"/> + <text class="terminal" x="353" y="13">,</text> + <rect x="487" y="29" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="491" y="41">)</text> + <path class="line" d="m17 38 h2 m0 0 h4 m140 0 h4 m0 0 h4 m12 0 h4 m40 0 h10 m0 0 h68 m-98 0 h20 m78 0 h20 m-118 0 q10 0 10 10 m98 0 q0 -10 10 -10 m-108 10 v1 m98 0 v-1 m-98 1 q0 10 10 10 m78 0 q10 0 10 -10 m-88 10 h4 m70 0 h4 m40 -21 h4 m90 0 h4 m-118 0 l20 0 m-1 0 q-9 0 -9 -10 l0 -8 q0 -10 10 -10 m98 28 l20 0 m-20 0 q10 0 10 -10 l0 -8 q0 -10 -10 -10 m-98 0 h4 m8 0 h4 m0 0 h82 m-256 28 h20 m256 0 h20 m-296 0 q10 0 10 10 m276 0 q0 -10 10 -10 m-286 10 v22 m276 0 v-22 m-276 22 q0 10 10 10 m256 0 q10 0 10 -10 m-266 10 h10 m0 0 h246 m20 -42 h4 m12 0 h4 m3 0 h-3"/> + <polygon points="513 38 521 34 521 42"/> + <polygon points="513 38 505 34 505 42"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#presto-aggregations" title="presto_aggregations" shape="rect">presto_aggregations</a></div> + <div>         ::= <a href="#presto-aggregation-function" title="presto_aggregation_function" shape="rect">presto_aggregation_function</a> '(' ( <a href="#set-quantifier" title="set_quantifier" shape="rect">set_quantifier</a>? <a href="#value-expression" title="value_expression" shape="rect">value_expression</a> ( ',' <a href="#value-expression" title="value_expression" shape="rect">value_expression</a> )* )? ')'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#aggregate-function" title="aggregate-function">aggregate-function</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + try_cast +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="317" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="54" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">TRY_CAST</text> + <rect x="85" y="1" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="89" y="13">(</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#cast-operand" xlink:title="cast_operand" shape="rect"> + <rect x="105" y="1" width="72" height="18" class="nonterminal"/> + <text class="nonterminal" x="109" y="13">cast_operand</text></a><rect x="185" y="1" width="20" height="18" class="terminal" rx="4"/> + <text class="terminal" x="189" y="13">AS</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#cast-target" xlink:title="cast_target" shape="rect"> + <rect x="213" y="1" width="60" height="18" class="nonterminal"/> + <text class="nonterminal" x="217" y="13">cast_target</text></a><rect x="281" y="1" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="285" y="13">)</text> + <path class="line" d="m17 10 h2 m0 0 h4 m54 0 h4 m0 0 h4 m12 0 h4 m0 0 h4 m72 0 h4 m0 0 h4 m20 0 h4 m0 0 h4 m60 0 h4 m0 0 h4 m12 0 h4 m3 0 h-3"/> + <polygon points="307 10 315 6 315 14"/> + <polygon points="307 10 299 6 299 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#try-cast" title="try_cast" shape="rect">try_cast</a> ::= 'TRY_CAST' '(' <a href="#cast-operand" title="cast_operand" shape="rect">cast_operand</a> 'AS' <a href="#cast-target" title="cast_target" shape="rect">cast_target</a> ')'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#cast-specification" title="cast-specification">cast-specification</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + table_attributes +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="325" height="49"> + <polygon points="9 38 1 34 1 42"/> + <polygon points="17 38 9 34 9 42"/> + <rect x="23" y="29" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="41">(</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#actual-identifier" xlink:title="actual_identifier" shape="rect"> + <rect x="63" y="29" width="78" height="18" class="nonterminal"/> + <text class="nonterminal" x="67" y="41">actual_identifier</text></a><rect x="149" y="29" width="14" height="18" class="terminal" rx="4"/> + <text class="terminal" x="153" y="41">=</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#value-expression" xlink:title="value_expression" shape="rect"> + <rect x="171" y="29" width="90" height="18" class="nonterminal"/> + <text class="nonterminal" x="175" y="41">value_expression</text></a><rect x="63" y="1" width="8" height="18" class="terminal" rx="4"/> + <text class="terminal" x="67" y="13">,</text> + <rect x="289" y="29" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="293" y="41">)</text> + <path class="line" d="m17 38 h2 m0 0 h4 m12 0 h4 m20 0 h4 m78 0 h4 m0 0 h4 m14 0 h4 m0 0 h4 m90 0 h4 m-226 0 l20 0 m-1 0 q-9 0 -9 -10 l0 -8 q0 -10 10 -10 m206 28 l20 0 m-20 0 q10 0 10 -10 l0 -8 q0 -10 -10 -10 m-206 0 h4 m8 0 h4 m0 0 h190 m20 28 h4 m12 0 h4 m3 0 h-3"/> + <polygon points="315 38 323 34 323 42"/> + <polygon points="315 38 307 34 307 42"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#table-attributes" title="table_attributes" shape="rect">table_attributes</a></div> + <div>         ::= '(' <a href="#actual-identifier" title="actual_identifier" shape="rect">actual_identifier</a> '=' <a href="#value-expression" title="value_expression" shape="rect">value_expression</a> ( ',' <a href="#actual-identifier" title="actual_identifier" shape="rect">actual_identifier</a> '=' <a href="#value-expression" title="value_expression" shape="rect">value_expression</a> )* ')'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#as-subquery-clause" title="as-subquery-clause">as-subquery-clause</a></li><li><a href="#table-definition" title="table-definition">table-definition</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + or_replace +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="125" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="22" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">OR</text> + <rect x="53" y="1" width="48" height="18" class="terminal" rx="4"/> + <text class="terminal" x="57" y="13">REPLACE</text> + <path class="line" d="m17 10 h2 m0 0 h4 m22 0 h4 m0 0 h4 m48 0 h4 m3 0 h-3"/> + <polygon points="115 10 123 6 123 14"/> + <polygon points="115 10 107 6 107 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#or-replace" title="or_replace" shape="rect">or_replace</a></div> + <div>         ::= 'OR' 'REPLACE'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#schema-function" title="schema-function">schema-function</a></li><li><a href="#view-definition" title="view-definition">view-definition</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + udaf_filter +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="107" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#filter-clause" xlink:title="filter_clause" shape="rect"> + <rect x="23" y="1" width="60" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">filter_clause</text></a><path class="line" d="m17 10 h2 m0 0 h4 m60 0 h4 m3 0 h-3"/> + <polygon points="97 10 105 6 105 14"/> + <polygon points="97 10 89 6 89 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#udaf-filter" title="udaf_filter" shape="rect">udaf_filter</a></div> + <div>         ::= <a href="#filter-clause" title="filter_clause" shape="rect">filter_clause</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#method-invocation" title="method-invocation">method-invocation</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + extra_args_to_agg +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="193" height="33"> + <polygon points="9 22 1 18 1 26"/> + <polygon points="17 22 9 18 9 26"/> + <rect x="43" y="13" width="8" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="25">,</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#value-expression" xlink:title="value_expression" shape="rect"> + <rect x="59" y="13" width="90" height="18" class="nonterminal"/> + <text class="nonterminal" x="63" y="25">value_expression</text></a><path class="line" d="m17 22 h2 m20 0 h4 m8 0 h4 m0 0 h4 m90 0 h4 m-134 0 l20 0 m-1 0 q-9 0 -9 -10 l0 -1 q0 -10 10 -10 m114 21 l20 0 m-20 0 q10 0 10 -10 l0 -1 q0 -10 -10 -10 m-114 0 h10 m0 0 h104 m23 21 h-3"/> + <polygon points="183 22 191 18 191 26"/> + <polygon points="183 22 175 18 175 26"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#extra-args-to-agg" title="extra_args_to_agg" shape="rect">extra_args_to_agg</a></div> + <div>         ::= ( ',' <a href="#value-expression" title="value_expression" shape="rect">value_expression</a> )+</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#general-set-function" title="general-set-function">general-set-function</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + identifier_starting_with_underscore +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="233" height="54"> + <polygon points="9 22 1 18 1 26"/> + <polygon points="17 22 9 18 9 26"/> + <rect x="43" y="13" width="14" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="25">_</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#regular-identifier" xlink:title="regular_identifier" shape="rect"> + <rect x="105" y="34" width="84" height="18" class="nonterminal"/> + <text class="nonterminal" x="109" y="46">regular_identifier</text></a><path class="line" d="m17 22 h2 m20 0 h4 m14 0 h4 m-42 0 l20 0 m-1 0 q-9 0 -9 -10 l0 -1 q0 -10 10 -10 m22 21 l20 0 m-20 0 q10 0 10 -10 l0 -1 q0 -10 -10 -10 m-22 0 h10 m0 0 h12 m40 21 h10 m0 0 h82 m-112 0 h20 m92 0 h20 m-132 0 q10 0 10 10 m112 0 q0 -10 10 -10 m-122 10 v1 m112 0 v-1 m-112 1 q0 10 10 10 m92 0 q10 0 10 -10 m-102 10 h4 m84 0 h4 m23 -21 h-3"/> + <polygon points="223 22 231 18 231 26"/> + <polygon points="223 22 215 18 215 26"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#identifier-starting-with-underscore" title="identifier_starting_with_underscore" shape="rect">identifier_starting_with_underscore</a></div> + <div>         ::= '_'+ <a href="#regular-identifier" title="regular_identifier" shape="rect">regular_identifier</a>?</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Not referenced by any. + </div></td></tr></tbody></table> + + +====================================================================================================================== + generic_unicode +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="249" height="73"> + <polygon points="9 22 1 18 1 26"/> + <polygon points="17 22 9 18 9 26"/> + <rect x="23" y="13" width="22" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="25">U&'</text> + <polygon points="113 22 116 13 146 13 149 22 146 31 116 31" class="regexp"/> + <text class="regexp" x="124" y="25">[^']</text> + <rect x="113" y="41" width="10" height="18" class="terminal" rx="4"/> + <text class="terminal" x="117" y="53">''</text> + <rect x="217" y="13" width="8" height="18" class="terminal" rx="4"/> + <text class="terminal" x="221" y="25">'</text> + <path class="line" d="m17 22 h2 m0 0 h4 m22 0 h4 m60 0 h4 m36 0 h4 m-64 0 h20 m44 0 h20 m-84 0 q10 0 10 10 m64 0 q0 -10 10 -10 m-74 10 v8 m64 0 v-8 m-64 8 q0 10 10 10 m44 0 q10 0 10 -10 m-54 10 h4 m10 0 h4 m0 0 h26 m-84 -28 l20 0 m-1 0 q-9 0 -9 -10 l0 -1 q0 -10 10 -10 m84 21 l20 0 m-20 0 q10 0 10 -10 l0 -1 q0 -10 -10 -10 m-84 0 h10 m0 0 h74 m-124 21 h20 m124 0 h20 m-164 0 q10 0 10 10 m144 0 q0 -10 10 -10 m-154 10 v29 m144 0 v-29 m-144 29 q0 10 10 10 m124 0 q10 0 10 -10 m-134 10 h10 m0 0 h114 m20 -49 h4 m8 0 h4 m3 0 h-3"/> + <polygon points="239 22 247 18 247 26"/> + <polygon points="239 22 231 18 231 26"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#generic-unicode" title="generic_unicode" shape="rect">generic_unicode</a></div> + <div>         ::= "U&'" ( [^'] | "''" )* "'"</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Not referenced by any. + </div></td></tr></tbody></table> + + +====================================================================================================================== + regular_identifier +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="121" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#identifier-body" xlink:title="identifier_body" shape="rect"> + <rect x="23" y="1" width="74" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">identifier_body</text></a><path class="line" d="m17 10 h2 m0 0 h4 m74 0 h4 m3 0 h-3"/> + <polygon points="111 10 119 6 119 14"/> + <polygon points="111 10 103 6 103 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#regular-identifier" title="regular_identifier" shape="rect">regular_identifier</a></div> + <div>         ::= <a href="#identifier-body" title="identifier_body" shape="rect">identifier_body</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#actual-identifier" title="actual-identifier">actual-identifier</a></li><li><a href="#identifier-starting-with-underscore" title="identifier-starting-with-underscore">identifier-starting-with-underscore</a></li><li><a href="#presto-generic-type" title="presto-generic-type">presto-generic-type</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + identifier_body +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="237" height="42"> + <polygon points="9 31 1 27 1 35"/> + <polygon points="17 31 9 27 9 35"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#identifier-start" xlink:title="identifier_start" shape="rect"> + <rect x="23" y="22" width="72" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="34">identifier_start</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#identifier-part" xlink:title="identifier_part" shape="rect"> + <rect x="123" y="1" width="70" height="18" class="nonterminal"/> + <text class="nonterminal" x="127" y="13">identifier_part</text></a><path class="line" d="m17 31 h2 m0 0 h4 m72 0 h4 m20 0 h10 m0 0 h68 m-98 0 l20 0 m-1 0 q-9 0 -9 -10 l0 -1 q0 -10 10 -10 m78 21 l20 0 m-20 0 q10 0 10 -10 l0 -1 q0 -10 -10 -10 m-78 0 h4 m70 0 h4 m23 21 h-3"/> + <polygon points="227 31 235 27 235 35"/> + <polygon points="227 31 219 27 219 35"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#identifier-body" title="identifier_body" shape="rect">identifier_body</a></div> + <div>         ::= <a href="#identifier-start" title="identifier_start" shape="rect">identifier_start</a> <a href="#identifier-part" title="identifier_part" shape="rect">identifier_part</a>*</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#regular-identifier" title="regular-identifier">regular-identifier</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + identifier_part +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="171" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#identifier-start" xlink:title="identifier_start" shape="rect"> + <rect x="43" y="1" width="72" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">identifier_start</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#identifier-extend" xlink:title="identifier_extend" shape="rect"> + <rect x="43" y="29" width="84" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">identifier_extend</text></a><path class="line" d="m17 10 h2 m20 0 h4 m72 0 h4 m0 0 h12 m-112 0 h20 m92 0 h20 m-132 0 q10 0 10 10 m112 0 q0 -10 10 -10 m-122 10 v8 m112 0 v-8 m-112 8 q0 10 10 10 m92 0 q10 0 10 -10 m-102 10 h4 m84 0 h4 m23 -28 h-3"/> + <polygon points="161 10 169 6 169 14"/> + <polygon points="161 10 153 6 153 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#identifier-part" title="identifier_part" shape="rect">identifier_part</a></div> + <div>         ::= <a href="#identifier-start" title="identifier_start" shape="rect">identifier_start</a></div> + <div>           | <a href="#identifier-extend" title="identifier_extend" shape="rect">identifier_extend</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#identifier-body" title="identifier-body">identifier-body</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + identifier_start +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="87" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <polygon points="23 10 26 1 60 1 63 10 60 19 26 19" class="regexp"/> + <text class="regexp" x="34" y="13">[a-z]</text> + <path class="line" d="m17 10 h2 m0 0 h4 m40 0 h4 m3 0 h-3"/> + <polygon points="77 10 85 6 85 14"/> + <polygon points="77 10 69 6 69 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#identifier-start" title="identifier_start" shape="rect">identifier_start</a></div> + <div>         ::= [a-z]</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#identifier-body" title="identifier-body">identifier-body</a></li><li><a href="#identifier-part" title="identifier-part">identifier-part</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + identifier_extend +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="139" height="77"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <polygon points="43 10 46 1 82 1 85 10 82 19 46 19" class="regexp"/> + <text class="regexp" x="54" y="13">[0-9]</text> + <rect x="43" y="29" width="14" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="41">_</text> + <polygon points="43 66 46 57 92 57 95 66 92 75 46 75" class="regexp"/> + <text class="regexp" x="54" y="69">[#xB7]</text> + <path class="line" d="m17 10 h2 m20 0 h4 m42 0 h4 m0 0 h10 m-80 0 h20 m60 0 h20 m-100 0 q10 0 10 10 m80 0 q0 -10 10 -10 m-90 10 v8 m80 0 v-8 m-80 8 q0 10 10 10 m60 0 q10 0 10 -10 m-70 10 h4 m14 0 h4 m0 0 h38 m-70 -10 v20 m80 0 v-20 m-80 20 v8 m80 0 v-8 m-80 8 q0 10 10 10 m60 0 q10 0 10 -10 m-70 10 h4 m52 0 h4 m23 -56 h-3"/> + <polygon points="129 10 137 6 137 14"/> + <polygon points="129 10 121 6 121 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#identifier-extend" title="identifier_extend" shape="rect">identifier_extend</a></div> + <div>         ::= [0-9_#xB7]</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#identifier-part" title="identifier-part">identifier-part</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + large_object_length_token +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="171" height="33"> + <polygon points="9 22 1 18 1 26"/> + <polygon points="17 22 9 18 9 26"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#digit" xlink:title="digit" shape="rect"> + <rect x="43" y="13" width="28" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="25">digit</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#multiplier" xlink:title="multiplier" shape="rect"> + <rect x="99" y="13" width="48" height="18" class="nonterminal"/> + <text class="nonterminal" x="103" y="25">multiplier</text></a><path class="line" d="m17 22 h2 m20 0 h4 m28 0 h4 m-56 0 l20 0 m-1 0 q-9 0 -9 -10 l0 -1 q0 -10 10 -10 m36 21 l20 0 m-20 0 q10 0 10 -10 l0 -1 q0 -10 -10 -10 m-36 0 h10 m0 0 h26 m20 21 h4 m48 0 h4 m3 0 h-3"/> + <polygon points="161 22 169 18 169 26"/> + <polygon points="161 22 153 18 153 26"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#large-object-length-token" title="large_object_length_token" shape="rect">large_object_length_token</a></div> + <div>         ::= <a href="#digit" title="digit" shape="rect">digit</a>+ <a href="#multiplier" title="multiplier" shape="rect">multiplier</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#large-object-length" title="large-object-length">large-object-length</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + multiplier +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="103" height="133"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="43" y="1" width="14" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="13">K</text> + <rect x="43" y="29" width="16" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="41">M</text> + <rect x="43" y="57" width="14" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="69">G</text> + <rect x="43" y="85" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="97">T</text> + <rect x="43" y="113" width="14" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="125">P</text> + <path class="line" d="m17 10 h2 m20 0 h4 m14 0 h4 m0 0 h2 m-44 0 h20 m24 0 h20 m-64 0 q10 0 10 10 m44 0 q0 -10 10 -10 m-54 10 v8 m44 0 v-8 m-44 8 q0 10 10 10 m24 0 q10 0 10 -10 m-34 10 h4 m16 0 h4 m-34 -10 v20 m44 0 v-20 m-44 20 v8 m44 0 v-8 m-44 8 q0 10 10 10 m24 0 q10 0 10 -10 m-34 10 h4 m14 0 h4 m0 0 h2 m-34 -10 v20 m44 0 v-20 m-44 20 v8 m44 0 v-8 m-44 8 q0 10 10 10 m24 0 q10 0 10 -10 m-34 10 h4 m12 0 h4 m0 0 h4 m-34 -10 v20 m44 0 v-20 m-44 20 v8 m44 0 v-8 m-44 8 q0 10 10 10 m24 0 q10 0 10 -10 m-34 10 h4 m14 0 h4 m0 0 h2 m23 -112 h-3"/> + <polygon points="93 10 101 6 101 14"/> + <polygon points="93 10 85 6 85 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#multiplier" title="multiplier" shape="rect">multiplier</a></div> + <div>         ::= [KMGTP]</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#large-object-length" title="large-object-length">large-object-length</a></li><li><a href="#large-object-length-token" title="large-object-length-token">large-object-length-token</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + delimited_identifier +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="249" height="42"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">"</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#delimited-identifier-body" xlink:title="delimited_identifier_body" shape="rect"> + <rect x="63" y="22" width="122" height="18" class="nonterminal"/> + <text class="nonterminal" x="67" y="34">delimited_identifier_body</text></a><rect x="213" y="1" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="217" y="13">"</text> + <path class="line" d="m17 10 h2 m0 0 h4 m12 0 h4 m20 0 h10 m0 0 h120 m-150 0 h20 m130 0 h20 m-170 0 q10 0 10 10 m150 0 q0 -10 10 -10 m-160 10 v1 m150 0 v-1 m-150 1 q0 10 10 10 m130 0 q10 0 10 -10 m-140 10 h4 m122 0 h4 m20 -21 h4 m12 0 h4 m3 0 h-3"/> + <polygon points="239 10 247 6 247 14"/> + <polygon points="239 10 231 6 231 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#delimited-identifier" title="delimited_identifier" shape="rect">delimited_identifier</a></div> + <div>         ::= '"' <a href="#delimited-identifier-body" title="delimited_identifier_body" shape="rect">delimited_identifier_body</a>? '"'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#actual-identifier" title="actual-identifier">actual-identifier</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + delimited_identifier_body +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="203" height="33"> + <polygon points="9 22 1 18 1 26"/> + <polygon points="17 22 9 18 9 26"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#delimited-identifier-part" xlink:title="delimited_identifier_part" shape="rect"> + <rect x="43" y="13" width="116" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="25">delimited_identifier_part</text></a><path class="line" d="m17 22 h2 m20 0 h4 m116 0 h4 m-144 0 l20 0 m-1 0 q-9 0 -9 -10 l0 -1 q0 -10 10 -10 m124 21 l20 0 m-20 0 q10 0 10 -10 l0 -1 q0 -10 -10 -10 m-124 0 h10 m0 0 h114 m23 21 h-3"/> + <polygon points="193 22 201 18 201 26"/> + <polygon points="193 22 185 18 185 26"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#delimited-identifier-body" title="delimited_identifier_body" shape="rect">delimited_identifier_body</a></div> + <div>         ::= <a href="#delimited-identifier-part" title="delimited_identifier_part" shape="rect">delimited_identifier_part</a>+</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#delimited-identifier" title="delimited-identifier">delimited-identifier</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + delimited_identifier_part +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="221" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#nondoublequote-character" xlink:title="nondoublequote_character" shape="rect"> + <rect x="43" y="1" width="134" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">nondoublequote_character</text></a><rect x="43" y="29" width="16" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="41">""</text> + <path class="line" d="m17 10 h2 m20 0 h4 m134 0 h4 m-162 0 h20 m142 0 h20 m-182 0 q10 0 10 10 m162 0 q0 -10 10 -10 m-172 10 v8 m162 0 v-8 m-162 8 q0 10 10 10 m142 0 q10 0 10 -10 m-152 10 h4 m16 0 h4 m0 0 h118 m23 -28 h-3"/> + <polygon points="211 10 219 6 219 14"/> + <polygon points="211 10 203 6 203 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#delimited-identifier-part" title="delimited_identifier_part" shape="rect">delimited_identifier_part</a></div> + <div>         ::= <a href="#nondoublequote-character" title="nondoublequote_character" shape="rect">nondoublequote_character</a></div> + <div>           | '""'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#unicode-identifier-part" title="unicode-identifier-part">unicode-identifier-part</a></li><li><a href="#delimited-identifier-body" title="delimited-identifier-body">delimited-identifier-body</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + Unicode_delimited_identifier +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="423" height="42"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="14" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">U</text> + <rect x="45" y="1" width="14" height="18" class="terminal" rx="4"/> + <text class="terminal" x="49" y="13">&</text> + <rect x="67" y="1" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="71" y="13">"</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#unicode-delimiter-body" xlink:title="Unicode_delimiter_body" shape="rect"> + <rect x="87" y="1" width="118" height="18" class="nonterminal"/> + <text class="nonterminal" x="91" y="13">Unicode_delimiter_body</text></a><rect x="213" y="1" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="217" y="13">"</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#unicode-escape-specifier" xlink:title="Unicode_escape_specifier" shape="rect"> + <rect x="253" y="22" width="126" height="18" class="nonterminal"/> + <text class="nonterminal" x="257" y="34">Unicode_escape_specifier</text></a><path class="line" d="m17 10 h2 m0 0 h4 m14 0 h4 m0 0 h4 m14 0 h4 m0 0 h4 m12 0 h4 m0 0 h4 m118 0 h4 m0 0 h4 m12 0 h4 m20 0 h10 m0 0 h124 m-154 0 h20 m134 0 h20 m-174 0 q10 0 10 10 m154 0 q0 -10 10 -10 m-164 10 v1 m154 0 v-1 m-154 1 q0 10 10 10 m134 0 q10 0 10 -10 m-144 10 h4 m126 0 h4 m23 -21 h-3"/> + <polygon points="413 10 421 6 421 14"/> + <polygon points="413 10 405 6 405 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#unicode-delimited-identifier" title="Unicode_delimited_identifier" shape="rect">Unicode_delimited_identifier</a></div> + <div>         ::= 'U' '&' '"' <a href="#unicode-delimiter-body" title="Unicode_delimiter_body" shape="rect">Unicode_delimiter_body</a> '"' <a href="#unicode-escape-specifier" title="Unicode_escape_specifier" shape="rect">Unicode_escape_specifier</a>?</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#actual-identifier" title="actual-identifier">actual-identifier</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + Unicode_escape_specifier +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="267" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="23" y="1" width="48" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="13">UESCAPE</text> + <rect x="79" y="1" width="8" height="18" class="terminal" rx="4"/> + <text class="terminal" x="83" y="13">'</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#unicode-escape-character" xlink:title="Unicode_escape_character" shape="rect"> + <rect x="95" y="1" width="132" height="18" class="nonterminal"/> + <text class="nonterminal" x="99" y="13">Unicode_escape_character</text></a><rect x="235" y="1" width="8" height="18" class="terminal" rx="4"/> + <text class="terminal" x="239" y="13">'</text> + <path class="line" d="m17 10 h2 m0 0 h4 m48 0 h4 m0 0 h4 m8 0 h4 m0 0 h4 m132 0 h4 m0 0 h4 m8 0 h4 m3 0 h-3"/> + <polygon points="257 10 265 6 265 14"/> + <polygon points="257 10 249 6 249 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#unicode-escape-specifier" title="Unicode_escape_specifier" shape="rect">Unicode_escape_specifier</a></div> + <div>         ::= 'UESCAPE' "'" <a href="#unicode-escape-character" title="Unicode_escape_character" shape="rect">Unicode_escape_character</a> "'"</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#unicode-delimited-identifier" title="unicode-delimited-identifier">unicode-delimited-identifier</a></li><li><a href="#unicode-literal" title="unicode-literal">unicode-literal</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + Unicode_delimiter_body +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="199" height="33"> + <polygon points="9 22 1 18 1 26"/> + <polygon points="17 22 9 18 9 26"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#unicode-identifier-part" xlink:title="Unicode_identifier_part" shape="rect"> + <rect x="43" y="13" width="112" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="25">Unicode_identifier_part</text></a><path class="line" d="m17 22 h2 m20 0 h4 m112 0 h4 m-140 0 l20 0 m-1 0 q-9 0 -9 -10 l0 -1 q0 -10 10 -10 m120 21 l20 0 m-20 0 q10 0 10 -10 l0 -1 q0 -10 -10 -10 m-120 0 h10 m0 0 h110 m23 21 h-3"/> + <polygon points="189 22 197 18 197 26"/> + <polygon points="189 22 181 18 181 26"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#unicode-delimiter-body" title="Unicode_delimiter_body" shape="rect">Unicode_delimiter_body</a></div> + <div>         ::= <a href="#unicode-identifier-part" title="Unicode_identifier_part" shape="rect">Unicode_identifier_part</a>+</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#unicode-delimited-identifier" title="unicode-delimited-identifier">unicode-delimited-identifier</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + Unicode_identifier_part +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="203" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#delimited-identifier-part" xlink:title="delimited_identifier_part" shape="rect"> + <rect x="43" y="1" width="116" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">delimited_identifier_part</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#unicode-escape-value" xlink:title="Unicode_escape_value" shape="rect"> + <rect x="43" y="29" width="116" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">Unicode_escape_value</text></a><path class="line" d="m17 10 h2 m20 0 h4 m116 0 h4 m-144 0 h20 m124 0 h20 m-164 0 q10 0 10 10 m144 0 q0 -10 10 -10 m-154 10 v8 m144 0 v-8 m-144 8 q0 10 10 10 m124 0 q10 0 10 -10 m-134 10 h4 m116 0 h4 m23 -28 h-3"/> + <polygon points="193 10 201 6 201 14"/> + <polygon points="193 10 185 6 185 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#unicode-identifier-part" title="Unicode_identifier_part" shape="rect">Unicode_identifier_part</a></div> + <div>         ::= <a href="#delimited-identifier-part" title="delimited_identifier_part" shape="rect">delimited_identifier_part</a></div> + <div>           | <a href="#unicode-escape-value" title="Unicode_escape_value" shape="rect">Unicode_escape_value</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#unicode-delimiter-body" title="unicode-delimiter-body">unicode-delimiter-body</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + Unicode_escape_value +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="251" height="77"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#unicode-4-digit-escape-value" xlink:title="Unicode_4_digit_escape_value" shape="rect"> + <rect x="43" y="1" width="152" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">Unicode_4_digit_escape_value</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#unicode-6-digit-escape-value" xlink:title="Unicode_6_digit_escape_value" shape="rect"> + <rect x="43" y="29" width="152" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">Unicode_6_digit_escape_value</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#unicode-character-escape-value" xlink:title="Unicode_character_escape_value" shape="rect"> + <rect x="43" y="57" width="164" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="69">Unicode_character_escape_value</text></a><path class="line" d="m17 10 h2 m20 0 h4 m152 0 h4 m0 0 h12 m-192 0 h20 m172 0 h20 m-212 0 q10 0 10 10 m192 0 q0 -10 10 -10 m-202 10 v8 m192 0 v-8 m-192 8 q0 10 10 10 m172 0 q10 0 10 -10 m-182 10 h4 m152 0 h4 m0 0 h12 m-182 -10 v20 m192 0 v-20 m-192 20 v8 m192 0 v-8 m-192 8 q0 10 10 10 m172 0 q10 0 10 -10 m-182 10 h4 m164 0 h4 m23 -56 h-3"/> + <polygon points="241 10 249 6 249 14"/> + <polygon points="241 10 233 6 233 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#unicode-escape-value" title="Unicode_escape_value" shape="rect">Unicode_escape_value</a></div> + <div>         ::= <a href="#unicode-4-digit-escape-value" title="Unicode_4_digit_escape_value" shape="rect">Unicode_4_digit_escape_value</a></div> + <div>           | <a href="#unicode-6-digit-escape-value" title="Unicode_6_digit_escape_value" shape="rect">Unicode_6_digit_escape_value</a></div> + <div>           | <a href="#unicode-character-escape-value" title="Unicode_character_escape_value" shape="rect">Unicode_character_escape_value</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#unicode-identifier-part" title="unicode-identifier-part">unicode-identifier-part</a></li><li><a href="#unicode-representation" title="unicode-representation">unicode-representation</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + Unicode_4_digit_escape_value +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="331" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#unicode-escape-character" xlink:title="Unicode_escape_character" shape="rect"> + <rect x="23" y="1" width="132" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">Unicode_escape_character</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#hexit" xlink:title="hexit" shape="rect"> + <rect x="163" y="1" width="30" height="18" class="nonterminal"/> + <text class="nonterminal" x="167" y="13">hexit</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#hexit" xlink:title="hexit" shape="rect"> + <rect x="201" y="1" width="30" height="18" class="nonterminal"/> + <text class="nonterminal" x="205" y="13">hexit</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#hexit" xlink:title="hexit" shape="rect"> + <rect x="239" y="1" width="30" height="18" class="nonterminal"/> + <text class="nonterminal" x="243" y="13">hexit</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#hexit" xlink:title="hexit" shape="rect"> + <rect x="277" y="1" width="30" height="18" class="nonterminal"/> + <text class="nonterminal" x="281" y="13">hexit</text></a><path class="line" d="m17 10 h2 m0 0 h4 m132 0 h4 m0 0 h4 m30 0 h4 m0 0 h4 m30 0 h4 m0 0 h4 m30 0 h4 m0 0 h4 m30 0 h4 m3 0 h-3"/> + <polygon points="321 10 329 6 329 14"/> + <polygon points="321 10 313 6 313 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#unicode-4-digit-escape-value" title="Unicode_4_digit_escape_value" shape="rect">Unicode_4_digit_escape_value</a></div> + <div>         ::= <a href="#unicode-escape-character" title="Unicode_escape_character" shape="rect">Unicode_escape_character</a> <a href="#hexit" title="hexit" shape="rect">hexit</a> <a href="#hexit" title="hexit" shape="rect">hexit</a> <a href="#hexit" title="hexit" shape="rect">hexit</a> <a href="#hexit" title="hexit" shape="rect">hexit</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#unicode-escape-value" title="unicode-escape-value">unicode-escape-value</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + Unicode_6_digit_escape_value +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="429" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#unicode-escape-character" xlink:title="Unicode_escape_character" shape="rect"> + <rect x="23" y="1" width="132" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">Unicode_escape_character</text></a><rect x="163" y="1" width="14" height="18" class="terminal" rx="4"/> + <text class="terminal" x="167" y="13">+</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#hexit" xlink:title="hexit" shape="rect"> + <rect x="185" y="1" width="30" height="18" class="nonterminal"/> + <text class="nonterminal" x="189" y="13">hexit</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#hexit" xlink:title="hexit" shape="rect"> + <rect x="223" y="1" width="30" height="18" class="nonterminal"/> + <text class="nonterminal" x="227" y="13">hexit</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#hexit" xlink:title="hexit" shape="rect"> + <rect x="261" y="1" width="30" height="18" class="nonterminal"/> + <text class="nonterminal" x="265" y="13">hexit</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#hexit" xlink:title="hexit" shape="rect"> + <rect x="299" y="1" width="30" height="18" class="nonterminal"/> + <text class="nonterminal" x="303" y="13">hexit</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#hexit" xlink:title="hexit" shape="rect"> + <rect x="337" y="1" width="30" height="18" class="nonterminal"/> + <text class="nonterminal" x="341" y="13">hexit</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#hexit" xlink:title="hexit" shape="rect"> + <rect x="375" y="1" width="30" height="18" class="nonterminal"/> + <text class="nonterminal" x="379" y="13">hexit</text></a><path class="line" d="m17 10 h2 m0 0 h4 m132 0 h4 m0 0 h4 m14 0 h4 m0 0 h4 m30 0 h4 m0 0 h4 m30 0 h4 m0 0 h4 m30 0 h4 m0 0 h4 m30 0 h4 m0 0 h4 m30 0 h4 m0 0 h4 m30 0 h4 m3 0 h-3"/> + <polygon points="419 10 427 6 427 14"/> + <polygon points="419 10 411 6 411 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#unicode-6-digit-escape-value" title="Unicode_6_digit_escape_value" shape="rect">Unicode_6_digit_escape_value</a></div> + <div>         ::= <a href="#unicode-escape-character" title="Unicode_escape_character" shape="rect">Unicode_escape_character</a> '+' <a href="#hexit" title="hexit" shape="rect">hexit</a> <a href="#hexit" title="hexit" shape="rect">hexit</a> <a href="#hexit" title="hexit" shape="rect">hexit</a> <a href="#hexit" title="hexit" shape="rect">hexit</a> <a href="#hexit" title="hexit" shape="rect">hexit</a> <a href="#hexit" title="hexit" shape="rect">hexit</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#unicode-escape-value" title="unicode-escape-value">unicode-escape-value</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + Unicode_character_escape_value +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="319" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#unicode-escape-character" xlink:title="Unicode_escape_character" shape="rect"> + <rect x="23" y="1" width="132" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">Unicode_escape_character</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#unicode-escape-character" xlink:title="Unicode_escape_character" shape="rect"> + <rect x="163" y="1" width="132" height="18" class="nonterminal"/> + <text class="nonterminal" x="167" y="13">Unicode_escape_character</text></a><path class="line" d="m17 10 h2 m0 0 h4 m132 0 h4 m0 0 h4 m132 0 h4 m3 0 h-3"/> + <polygon points="309 10 317 6 317 14"/> + <polygon points="309 10 301 6 301 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#unicode-character-escape-value" title="Unicode_character_escape_value" shape="rect">Unicode_character_escape_value</a></div> + <div>         ::= <a href="#unicode-escape-character" title="Unicode_escape_character" shape="rect">Unicode_escape_character</a> <a href="#unicode-escape-character" title="Unicode_escape_character" shape="rect">Unicode_escape_character</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#unicode-escape-value" title="unicode-escape-value">unicode-escape-value</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + Unicode_escape_character +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="163" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <polygon points="23 10 26 1 136 1 139 10 136 19 26 19" class="regexp"/> + <text class="regexp" x="34" y="13">[^a-z0-9+'" #xA#x9]</text> + <path class="line" d="m17 10 h2 m0 0 h4 m116 0 h4 m3 0 h-3"/> + <polygon points="153 10 161 6 161 14"/> + <polygon points="153 10 145 6 145 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#unicode-escape-character" title="Unicode_escape_character" shape="rect">Unicode_escape_character</a></div> + <div>         ::= [^a-z0-9+'" #xA#x9]</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#unicode-4-digit-escape-value" title="unicode-4-digit-escape-value">unicode-4-digit-escape-value</a></li><li><a href="#unicode-6-digit-escape-value" title="unicode-6-digit-escape-value">unicode-6-digit-escape-value</a></li><li><a href="#unicode-character-escape-value" title="unicode-character-escape-value">unicode-character-escape-value</a></li><li><a href="#unicode-escape-specifier" title="unicode-escape-specifier">unicode-escape-specifier</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + nondoublequote_character +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="85" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <polygon points="23 10 26 1 58 1 61 10 58 19 26 19" class="regexp"/> + <text class="regexp" x="34" y="13">[^"]</text> + <path class="line" d="m17 10 h2 m0 0 h4 m38 0 h4 m3 0 h-3"/> + <polygon points="75 10 83 6 83 14"/> + <polygon points="75 10 67 6 67 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#nondoublequote-character" title="nondoublequote_character" shape="rect">nondoublequote_character</a></div> + <div>         ::= [^"]</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#delimited-identifier-part" title="delimited-identifier-part">delimited-identifier-part</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + white_space +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="133" height="77"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#newline" xlink:title="newline" shape="rect"> + <rect x="43" y="1" width="44" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">newline</text></a><rect x="43" y="29" width="8" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="41"/> + <polygon points="43 66 46 57 86 57 89 66 86 75 46 75" class="regexp"/> + <text class="regexp" x="54" y="69">[#x9]</text> + <path class="line" d="m17 10 h2 m20 0 h4 m44 0 h4 m0 0 h2 m-74 0 h20 m54 0 h20 m-94 0 q10 0 10 10 m74 0 q0 -10 10 -10 m-84 10 v8 m74 0 v-8 m-74 8 q0 10 10 10 m54 0 q10 0 10 -10 m-64 10 h4 m8 0 h4 m0 0 h38 m-64 -10 v20 m74 0 v-20 m-74 20 v8 m74 0 v-8 m-74 8 q0 10 10 10 m54 0 q10 0 10 -10 m-64 10 h4 m46 0 h4 m23 -56 h-3"/> + <polygon points="123 10 131 6 131 14"/> + <polygon points="123 10 115 6 115 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#white-space" title="white_space" shape="rect">white_space</a></div> + <div>         ::= <a href="#newline" title="newline" shape="rect">newline</a></div> + <div>           | [ #x9]</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#separator" title="separator">separator</a></li><li><a href="#skip-separator" title="skip-separator">skip-separator</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + newline +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="173" height="61"> + <polygon points="9 22 1 18 1 26"/> + <polygon points="17 22 9 18 9 26"/> + <polygon points="63 22 66 13 106 13 109 22 106 31 66 31" class="regexp"/> + <text class="regexp" x="74" y="25">[#xA]</text> + <polygon points="63 50 66 41 106 41 109 50 106 59 66 59" class="regexp"/> + <text class="regexp" x="74" y="53">[#xD]</text> + <path class="line" d="m17 22 h2 m40 0 h4 m46 0 h4 m-74 0 h20 m54 0 h20 m-94 0 q10 0 10 10 m74 0 q0 -10 10 -10 m-84 10 v8 m74 0 v-8 m-74 8 q0 10 10 10 m54 0 q10 0 10 -10 m-64 10 h4 m46 0 h4 m-94 -28 l20 0 m-1 0 q-9 0 -9 -10 l0 -1 q0 -10 10 -10 m94 21 l20 0 m-20 0 q10 0 10 -10 l0 -1 q0 -10 -10 -10 m-94 0 h10 m0 0 h84 m23 21 h-3"/> + <polygon points="163 22 171 18 171 26"/> + <polygon points="163 22 155 18 155 26"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#newline" title="newline" shape="rect">newline</a>  ::= [#xA#xD]+</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#simple-comment" title="simple-comment">simple-comment</a></li><li><a href="#white-space" title="white-space">white-space</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + comment +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="137" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#simple-comment" xlink:title="simple_comment" shape="rect"> + <rect x="23" y="1" width="90" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">simple_comment</text></a><path class="line" d="m17 10 h2 m0 0 h4 m90 0 h4 m3 0 h-3"/> + <polygon points="127 10 135 6 135 14"/> + <polygon points="127 10 119 6 119 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#comment" title="comment" shape="rect">comment</a>  ::= <a href="#simple-comment" title="simple_comment" shape="rect">simple_comment</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Not referenced by any. + </div></td></tr></tbody></table> + + +====================================================================================================================== + simple_comment +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="303" height="63"> + <polygon points="9 31 1 27 1 35"/> + <polygon points="17 31 9 27 9 35"/> + <rect x="23" y="22" width="14" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="34">--</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#comment-character" xlink:title="comment_character" shape="rect"> + <rect x="65" y="1" width="102" height="18" class="nonterminal"/> + <text class="nonterminal" x="69" y="13">comment_character</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#newline" xlink:title="newline" shape="rect"> + <rect x="215" y="43" width="44" height="18" class="nonterminal"/> + <text class="nonterminal" x="219" y="55">newline</text></a><path class="line" d="m17 31 h2 m0 0 h4 m14 0 h4 m20 0 h10 m0 0 h100 m-130 0 l20 0 m-1 0 q-9 0 -9 -10 l0 -1 q0 -10 10 -10 m110 21 l20 0 m-20 0 q10 0 10 -10 l0 -1 q0 -10 -10 -10 m-110 0 h4 m102 0 h4 m40 21 h10 m0 0 h42 m-72 0 h20 m52 0 h20 m-92 0 q10 0 10 10 m72 0 q0 -10 10 -10 m-82 10 v1 m72 0 v-1 m-72 1 q0 10 10 10 m52 0 q10 0 10 -10 m-62 10 h4 m44 0 h4 m23 -21 h-3"/> + <polygon points="293 31 301 27 301 35"/> + <polygon points="293 31 285 27 285 35"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#simple-comment" title="simple_comment" shape="rect">simple_comment</a></div> + <div>         ::= '--' <a href="#comment-character" title="comment_character" shape="rect">comment_character</a>* <a href="#newline" title="newline" shape="rect">newline</a>?</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#comment" title="comment">comment</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + comment_character +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="161" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <polygon points="43 10 46 1 114 1 117 10 114 19 46 19" class="regexp"/> + <text class="regexp" x="54" y="13">[^#xA#xD]</text> + <rect x="43" y="29" width="8" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="41">'</text> + <path class="line" d="m17 10 h2 m20 0 h4 m74 0 h4 m-102 0 h20 m82 0 h20 m-122 0 q10 0 10 10 m102 0 q0 -10 10 -10 m-112 10 v8 m102 0 v-8 m-102 8 q0 10 10 10 m82 0 q10 0 10 -10 m-92 10 h4 m8 0 h4 m0 0 h66 m23 -28 h-3"/> + <polygon points="151 10 159 6 159 14"/> + <polygon points="151 10 143 6 143 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#comment-character" title="comment_character" shape="rect">comment_character</a></div> + <div>         ::= [^#xA#xD]</div> + <div>           | "'"</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#simple-comment" title="simple-comment">simple-comment</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + skip_separator +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="153" height="33"> + <polygon points="9 22 1 18 1 26"/> + <polygon points="17 22 9 18 9 26"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#white-space" xlink:title="white_space" shape="rect"> + <rect x="43" y="13" width="66" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="25">white_space</text></a><path class="line" d="m17 22 h2 m20 0 h4 m66 0 h4 m-94 0 l20 0 m-1 0 q-9 0 -9 -10 l0 -1 q0 -10 10 -10 m74 21 l20 0 m-20 0 q10 0 10 -10 l0 -1 q0 -10 -10 -10 m-74 0 h10 m0 0 h64 m23 21 h-3"/> + <polygon points="143 22 151 18 151 26"/> + <polygon points="143 22 135 18 135 26"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#skip-separator" title="skip_separator" shape="rect">skip_separator</a></div> + <div>         ::= <a href="#white-space" title="white_space" shape="rect">white_space</a>+</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Not referenced by any. + </div></td></tr></tbody></table> + + +====================================================================================================================== + separator +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="153" height="33"> + <polygon points="9 22 1 18 1 26"/> + <polygon points="17 22 9 18 9 26"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#white-space" xlink:title="white_space" shape="rect"> + <rect x="43" y="13" width="66" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="25">white_space</text></a><path class="line" d="m17 22 h2 m20 0 h4 m66 0 h4 m-94 0 l20 0 m-1 0 q-9 0 -9 -10 l0 -1 q0 -10 10 -10 m74 21 l20 0 m-20 0 q10 0 10 -10 l0 -1 q0 -10 -10 -10 m-74 0 h10 m0 0 h64 m23 21 h-3"/> + <polygon points="143 22 151 18 151 26"/> + <polygon points="143 22 135 18 135 26"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#separator" title="separator" shape="rect">separator</a></div> + <div>         ::= <a href="#white-space" title="white_space" shape="rect">white_space</a>+</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#binary-string-literal" title="binary-string-literal">binary-string-literal</a></li><li><a href="#national-character-string-literal" title="national-character-string-literal">national-character-string-literal</a></li><li><a href="#unicode-literal" title="unicode-literal">unicode-literal</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + digit +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="89" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <polygon points="23 10 26 1 62 1 65 10 62 19 26 19" class="regexp"/> + <text class="regexp" x="34" y="13">[0-9]</text> + <path class="line" d="m17 10 h2 m0 0 h4 m42 0 h4 m3 0 h-3"/> + <polygon points="79 10 87 6 87 14"/> + <polygon points="79 10 71 6 71 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#digit" title="digit" shape="rect">digit</a>    ::= [0-9]</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#sql-language-identifier-part" title="sql-language-identifier-part">sql-language-identifier-part</a></li><li><a href="#large-object-length-token" title="large-object-length-token">large-object-length-token</a></li><li><a href="#unsigned-integer" title="unsigned-integer">unsigned-integer</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + character_representation +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="189" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#nonquote-character" xlink:title="nonquote_character" shape="rect"> + <rect x="43" y="1" width="102" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">nonquote_character</text></a><rect x="43" y="29" width="10" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="41">''</text> + <path class="line" d="m17 10 h2 m20 0 h4 m102 0 h4 m-130 0 h20 m110 0 h20 m-150 0 q10 0 10 10 m130 0 q0 -10 10 -10 m-140 10 v8 m130 0 v-8 m-130 8 q0 10 10 10 m110 0 q10 0 10 -10 m-120 10 h4 m10 0 h4 m0 0 h92 m23 -28 h-3"/> + <polygon points="179 10 187 6 187 14"/> + <polygon points="179 10 171 6 171 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#character-representation" title="character_representation" shape="rect">character_representation</a></div> + <div>         ::= <a href="#nonquote-character" title="nonquote_character" shape="rect">nonquote_character</a></div> + <div>           | "''"</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#unicode-representation" title="unicode-representation">unicode-representation</a></li><li><a href="#national-character-string-literal" title="national-character-string-literal">national-character-string-literal</a></li><li><a href="#quoted-string" title="quoted-string">quoted-string</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + nonquote_character +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="83" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <polygon points="23 10 26 1 56 1 59 10 56 19 26 19" class="regexp"/> + <text class="regexp" x="34" y="13">[^']</text> + <path class="line" d="m17 10 h2 m0 0 h4 m36 0 h4 m3 0 h-3"/> + <polygon points="73 10 81 6 81 14"/> + <polygon points="73 10 65 6 65 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#nonquote-character" title="nonquote_character" shape="rect">nonquote_character</a></div> + <div>         ::= [^']</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#character-representation" title="character-representation">character-representation</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + quoted_string +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="243" height="42"> + <polygon points="9 31 1 27 1 35"/> + <polygon points="17 31 9 27 9 35"/> + <rect x="23" y="22" width="8" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="34">'</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#character-representation" xlink:title="character_representation" shape="rect"> + <rect x="59" y="1" width="124" height="18" class="nonterminal"/> + <text class="nonterminal" x="63" y="13">character_representation</text></a><rect x="211" y="22" width="8" height="18" class="terminal" rx="4"/> + <text class="terminal" x="215" y="34">'</text> + <path class="line" d="m17 31 h2 m0 0 h4 m8 0 h4 m20 0 h10 m0 0 h122 m-152 0 l20 0 m-1 0 q-9 0 -9 -10 l0 -1 q0 -10 10 -10 m132 21 l20 0 m-20 0 q10 0 10 -10 l0 -1 q0 -10 -10 -10 m-132 0 h4 m124 0 h4 m20 21 h4 m8 0 h4 m3 0 h-3"/> + <polygon points="233 31 241 27 241 35"/> + <polygon points="233 31 225 27 225 35"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#quoted-string" title="quoted_string" shape="rect">quoted_string</a></div> + <div>         ::= "'" <a href="#character-representation" title="character_representation" shape="rect">character_representation</a>* "'"</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#character-string-literal" title="character-string-literal">character-string-literal</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + national_character_string_literal +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="305" height="70"> + <polygon points="9 59 1 55 1 63"/> + <polygon points="17 59 9 55 9 63"/> + <rect x="23" y="50" width="14" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="62">N</text> + <rect x="65" y="50" width="8" height="18" class="terminal" rx="4"/> + <text class="terminal" x="69" y="62">'</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#character-representation" xlink:title="character_representation" shape="rect"> + <rect x="101" y="29" width="124" height="18" class="nonterminal"/> + <text class="nonterminal" x="105" y="41">character_representation</text></a><rect x="253" y="50" width="8" height="18" class="terminal" rx="4"/> + <text class="terminal" x="257" y="62">'</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#separator" xlink:title="separator" shape="rect"> + <rect x="65" y="1" width="54" height="18" class="nonterminal"/> + <text class="nonterminal" x="69" y="13">separator</text></a><path class="line" d="m17 59 h2 m0 0 h4 m14 0 h4 m20 0 h4 m8 0 h4 m20 0 h10 m0 0 h122 m-152 0 l20 0 m-1 0 q-9 0 -9 -10 l0 -1 q0 -10 10 -10 m132 21 l20 0 m-20 0 q10 0 10 -10 l0 -1 q0 -10 -10 -10 m-132 0 h4 m124 0 h4 m20 21 h4 m8 0 h4 m-224 0 l20 0 m-1 0 q-9 0 -9 -10 l0 -29 q0 -10 10 -10 m204 49 l20 0 m-20 0 q10 0 10 -10 l0 -29 q0 -10 -10 -10 m-204 0 h4 m54 0 h4 m0 0 h142 m23 49 h-3"/> + <polygon points="295 59 303 55 303 63"/> + <polygon points="295 59 287 55 287 63"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#national-character-string-literal" title="national_character_string_literal" shape="rect">national_character_string_literal</a></div> + <div>         ::= 'N' "'" <a href="#character-representation" title="character_representation" shape="rect">character_representation</a>* "'" ( <a href="#separator" title="separator" shape="rect">separator</a> "'" <a href="#character-representation" title="character_representation" shape="rect">character_representation</a>* "'" )*</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#general-literal" title="general-literal">general-literal</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + unicode_literal +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="455" height="70"> + <polygon points="9 59 1 55 1 63"/> + <polygon points="17 59 9 55 9 63"/> + <rect x="23" y="50" width="14" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="62">U</text> + <rect x="45" y="50" width="14" height="18" class="terminal" rx="4"/> + <text class="terminal" x="49" y="62">&</text> + <rect x="87" y="50" width="8" height="18" class="terminal" rx="4"/> + <text class="terminal" x="91" y="62">'</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#unicode-representation" xlink:title="Unicode_representation" shape="rect"> + <rect x="123" y="29" width="118" height="18" class="nonterminal"/> + <text class="nonterminal" x="127" y="41">Unicode_representation</text></a><rect x="269" y="50" width="8" height="18" class="terminal" rx="4"/> + <text class="terminal" x="273" y="62">'</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#separator" xlink:title="separator" shape="rect"> + <rect x="87" y="1" width="54" height="18" class="nonterminal"/> + <text class="nonterminal" x="91" y="13">separator</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#unicode-escape-specifier" xlink:title="Unicode_escape_specifier" shape="rect"> + <rect x="305" y="50" width="126" height="18" class="nonterminal"/> + <text class="nonterminal" x="309" y="62">Unicode_escape_specifier</text></a><path class="line" d="m17 59 h2 m0 0 h4 m14 0 h4 m0 0 h4 m14 0 h4 m20 0 h4 m8 0 h4 m20 0 h10 m0 0 h116 m-146 0 l20 0 m-1 0 q-9 0 -9 -10 l0 -1 q0 -10 10 -10 m126 21 l20 0 m-20 0 q10 0 10 -10 l0 -1 q0 -10 -10 -10 m-126 0 h4 m118 0 h4 m20 21 h4 m8 0 h4 m-218 0 l20 0 m-1 0 q-9 0 -9 -10 l0 -29 q0 -10 10 -10 m198 49 l20 0 m-20 0 q10 0 10 -10 l0 -29 q0 -10 -10 -10 m-198 0 h4 m54 0 h4 m0 0 h136 m20 49 h4 m126 0 h4 m3 0 h-3"/> + <polygon points="445 59 453 55 453 63"/> + <polygon points="445 59 437 55 437 63"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#unicode-literal" title="unicode_literal" shape="rect">unicode_literal</a></div> + <div>         ::= 'U' '&' "'" <a href="#unicode-representation" title="Unicode_representation" shape="rect">Unicode_representation</a>* "'" ( <a href="#separator" title="separator" shape="rect">separator</a> "'" <a href="#unicode-representation" title="Unicode_representation" shape="rect">Unicode_representation</a>* "'" )* <a href="#unicode-escape-specifier" title="Unicode_escape_specifier" shape="rect">Unicode_escape_specifier</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#unicode-character-string-literal" title="unicode-character-string-literal">unicode-character-string-literal</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + Unicode_representation +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="211" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#character-representation" xlink:title="character_representation" shape="rect"> + <rect x="43" y="1" width="124" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">character_representation</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#unicode-escape-value" xlink:title="Unicode_escape_value" shape="rect"> + <rect x="43" y="29" width="116" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">Unicode_escape_value</text></a><path class="line" d="m17 10 h2 m20 0 h4 m124 0 h4 m-152 0 h20 m132 0 h20 m-172 0 q10 0 10 10 m152 0 q0 -10 10 -10 m-162 10 v8 m152 0 v-8 m-152 8 q0 10 10 10 m132 0 q10 0 10 -10 m-142 10 h4 m116 0 h4 m0 0 h8 m23 -28 h-3"/> + <polygon points="201 10 209 6 209 14"/> + <polygon points="201 10 193 6 193 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#unicode-representation" title="Unicode_representation" shape="rect">Unicode_representation</a></div> + <div>         ::= <a href="#character-representation" title="character_representation" shape="rect">character_representation</a></div> + <div>           | <a href="#unicode-escape-value" title="Unicode_escape_value" shape="rect">Unicode_escape_value</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#unicode-literal" title="unicode-literal">unicode-literal</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + binary_string_literal +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="305" height="119"> + <polygon points="9 108 1 104 1 112"/> + <polygon points="17 108 9 104 9 112"/> + <rect x="23" y="99" width="14" height="18" class="terminal" rx="4"/> + <text class="terminal" x="27" y="111">X</text> + <rect x="65" y="99" width="8" height="18" class="terminal" rx="4"/> + <text class="terminal" x="69" y="111">'</text> + <rect x="121" y="78" width="8" height="18" class="terminal" rx="4"/> + <text class="terminal" x="125" y="90"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#hexit" xlink:title="hexit" shape="rect"> + <rect x="101" y="50" width="30" height="18" class="nonterminal"/> + <text class="nonterminal" x="105" y="62">hexit</text></a><rect x="159" y="29" width="8" height="18" class="terminal" rx="4"/> + <text class="terminal" x="163" y="41"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#hexit" xlink:title="hexit" shape="rect"> + <rect x="195" y="50" width="30" height="18" class="nonterminal"/> + <text class="nonterminal" x="199" y="62">hexit</text></a><rect x="253" y="99" width="8" height="18" class="terminal" rx="4"/> + <text class="terminal" x="257" y="111">'</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#separator" xlink:title="separator" shape="rect"> + <rect x="65" y="1" width="54" height="18" class="nonterminal"/> + <text class="nonterminal" x="69" y="13">separator</text></a><path class="line" d="m17 108 h2 m0 0 h4 m14 0 h4 m20 0 h4 m8 0 h4 m40 0 h10 m0 0 h6 m-36 0 l20 0 m-1 0 q-9 0 -9 -10 l0 -1 q0 -10 10 -10 m16 21 l20 0 m-20 0 q10 0 10 -10 l0 -1 q0 -10 -10 -10 m-16 0 h4 m8 0 h4 m20 21 h76 m-152 0 l20 0 m-1 0 q-9 0 -9 -10 l0 -29 q0 -10 10 -10 m132 49 l20 0 m-20 0 q10 0 10 -10 l0 -29 q0 -10 -10 -10 m-132 0 h4 m30 0 h4 m20 0 h10 m0 0 h6 m-36 0 l20 0 m-1 0 q-9 0 -9 -10 l0 -1 q0 -10 10 -10 m16 21 l20 0 m-20 0 q10 0 10 -10 l0 -1 q0 -10 -10 -10 m-16 0 h4 m8 0 h4 m20 21 h4 m30 0 h4 m20 49 h4 m8 0 h4 m-224 0 l20 0 m-1 0 q-9 0 -9 -10 l0 -78 q0 -10 10 -10 m204 98 l20 0 m-20 0 q10 0 10 -10 l0 -78 q0 -10 -10 -10 m-204 0 h4 m54 0 h4 m0 0 h142 m23 98 h-3"/> + <polygon points="295 108 303 104 303 112"/> + <polygon points="295 108 287 104 287 112"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#binary-string-literal" title="binary_string_literal" shape="rect">binary_string_literal</a></div> + <div>         ::= 'X' "'" ' '* ( <a href="#hexit" title="hexit" shape="rect">hexit</a> ' '* <a href="#hexit" title="hexit" shape="rect">hexit</a> ' '* )* "'" ( <a href="#separator" title="separator" shape="rect">separator</a> "'" ' '* ( <a href="#hexit" title="hexit" shape="rect">hexit</a> ' '* <a href="#hexit" title="hexit" shape="rect">hexit</a> ' '* )* "'" )*</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#general-literal" title="general-literal">general-literal</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + hexit +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="129" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <polygon points="43 10 46 1 78 1 81 10 78 19 46 19" class="regexp"/> + <text class="regexp" x="54" y="13">[a-f]</text> + <polygon points="43 38 46 29 82 29 85 38 82 47 46 47" class="regexp"/> + <text class="regexp" x="54" y="41">[0-9]</text> + <path class="line" d="m17 10 h2 m20 0 h4 m38 0 h4 m0 0 h4 m-70 0 h20 m50 0 h20 m-90 0 q10 0 10 10 m70 0 q0 -10 10 -10 m-80 10 v8 m70 0 v-8 m-70 8 q0 10 10 10 m50 0 q10 0 10 -10 m-60 10 h4 m42 0 h4 m23 -28 h-3"/> + <polygon points="119 10 127 6 127 14"/> + <polygon points="119 10 111 6 111 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#hexit" title="hexit" shape="rect">hexit</a>    ::= [a-f0-9]</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#unicode-4-digit-escape-value" title="unicode-4-digit-escape-value">unicode-4-digit-escape-value</a></li><li><a href="#unicode-6-digit-escape-value" title="unicode-6-digit-escape-value">unicode-6-digit-escape-value</a></li><li><a href="#binary-string-literal" title="binary-string-literal">binary-string-literal</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + unsigned_integer +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="115" height="33"> + <polygon points="9 22 1 18 1 26"/> + <polygon points="17 22 9 18 9 26"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#digit" xlink:title="digit" shape="rect"> + <rect x="43" y="13" width="28" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="25">digit</text></a><path class="line" d="m17 22 h2 m20 0 h4 m28 0 h4 m-56 0 l20 0 m-1 0 q-9 0 -9 -10 l0 -1 q0 -10 10 -10 m36 21 l20 0 m-20 0 q10 0 10 -10 l0 -1 q0 -10 -10 -10 m-36 0 h10 m0 0 h26 m23 21 h-3"/> + <polygon points="105 22 113 18 113 26"/> + <polygon points="105 22 97 18 97 26"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#unsigned-integer" title="unsigned_integer" shape="rect">unsigned_integer</a></div> + <div>         ::= <a href="#digit" title="digit" shape="rect">digit</a>+</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#approximate-numeric-type" title="approximate-numeric-type">approximate-numeric-type</a></li><li><a href="#array-type" title="array-type">array-type</a></li><li><a href="#binary-string-type" title="binary-string-type">binary-string-type</a></li><li><a href="#character-length" title="character-length">character-length</a></li><li><a href="#current-local-time-value-function" title="current-local-time-value-function">current-local-time-value-function</a></li><li><a href="#current-local-timestamp-value-function" title="current-local-timestamp-value-function">current-local-timestamp-value-function</a></li><li><a href="#current-time-value-function" title="current-time-value-function">current-time-value-function</a></li><li><a href="#current-timestamp-value-function" title="current-timestamp-value-function">current-timestamp-value-function</a></li><li><a href="#datetime-type" title="datetime-type">datetime-type</a></li><li><a href="#exact-numeric-literal" title="exact-numeric-literal">exact-numeric-literal</a></li><li><a href="#exact-numeric-type" title="exact-numeric-type">exact-numeric-type</a></li><li><a href="#float-literal" title="float-literal">float-literal</a></li><li><a href="#interval-fractional-seconds-precision" title="interval-fractional-seconds-precision">interval-fractional-seconds-precision</a></li><li><a href="#interval-leading-field-precision" title="interval-leading-field-precision">interval-leading-field-precision</a></li><li><a href="#large-object-length" title="large-object-length">large-object-length</a></li><li><a href="#length-of-time" title="length-of-time">length-of-time</a></li><li><a href="#limit-clause" title="limit-clause">limit-clause</a></li><li><a href="#mantissa" title="mantissa">mantissa</a></li><li><a href="#maximum-returned-result-sets" title="maximum-returned-result-sets">maximum-returned-result-sets</a></li><li><a href="#signed-integer" title="signed-integer">signed-integer</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + float_literal +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="331" height="70"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#unsigned-integer" xlink:title="unsigned_integer" shape="rect"> + <rect x="43" y="1" width="90" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">unsigned_integer</text></a><rect x="141" y="1" width="8" height="18" class="terminal" rx="4"/> + <text class="terminal" x="145" y="13">.</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#unsigned-integer" xlink:title="unsigned_integer" shape="rect"> + <rect x="177" y="22" width="90" height="18" class="nonterminal"/> + <text class="nonterminal" x="181" y="34">unsigned_integer</text></a><rect x="43" y="50" width="8" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="62">.</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#unsigned-integer" xlink:title="unsigned_integer" shape="rect"> + <rect x="59" y="50" width="90" height="18" class="nonterminal"/> + <text class="nonterminal" x="63" y="62">unsigned_integer</text></a><path class="line" d="m17 10 h2 m20 0 h4 m90 0 h4 m0 0 h4 m8 0 h4 m20 0 h10 m0 0 h88 m-118 0 h20 m98 0 h20 m-138 0 q10 0 10 10 m118 0 q0 -10 10 -10 m-128 10 v1 m118 0 v-1 m-118 1 q0 10 10 10 m98 0 q10 0 10 -10 m-108 10 h4 m90 0 h4 m-252 -21 h20 m252 0 h20 m-292 0 q10 0 10 10 m272 0 q0 -10 10 -10 m-282 10 v29 m272 0 v-29 m-272 29 q0 10 10 10 m252 0 q10 0 10 -10 m-262 10 h4 m8 0 h4 m0 0 h4 m90 0 h4 m0 0 h138 m23 -49 h-3"/> + <polygon points="321 10 329 6 329 14"/> + <polygon points="321 10 313 6 313 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#float-literal" title="float_literal" shape="rect">float_literal</a></div> + <div>         ::= <a href="#unsigned-integer" title="unsigned_integer" shape="rect">unsigned_integer</a> '.' <a href="#unsigned-integer" title="unsigned_integer" shape="rect">unsigned_integer</a>?</div> + <div>           | '.' <a href="#unsigned-integer" title="unsigned_integer" shape="rect">unsigned_integer</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#exact-numeric-literal" title="exact-numeric-literal">exact-numeric-literal</a></li><li><a href="#mantissa" title="mantissa">mantissa</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + approximate_numeric_literal +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="181" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#mantissa" xlink:title="mantissa" shape="rect"> + <rect x="23" y="1" width="52" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">mantissa</text></a><rect x="83" y="1" width="12" height="18" class="terminal" rx="4"/> + <text class="terminal" x="87" y="13">E</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#exponent" xlink:title="exponent" shape="rect"> + <rect x="103" y="1" width="54" height="18" class="nonterminal"/> + <text class="nonterminal" x="107" y="13">exponent</text></a><path class="line" d="m17 10 h2 m0 0 h4 m52 0 h4 m0 0 h4 m12 0 h4 m0 0 h4 m54 0 h4 m3 0 h-3"/> + <polygon points="171 10 179 6 179 14"/> + <polygon points="171 10 163 6 163 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#approximate-numeric-literal" title="approximate_numeric_literal" shape="rect">approximate_numeric_literal</a></div> + <div>         ::= <a href="#mantissa" title="mantissa" shape="rect">mantissa</a> 'E' <a href="#exponent" title="exponent" shape="rect">exponent</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#unsigned-numeric-literal" title="unsigned-numeric-literal">unsigned-numeric-literal</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + mantissa +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="177" height="49"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#unsigned-integer" xlink:title="unsigned_integer" shape="rect"> + <rect x="43" y="1" width="90" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">unsigned_integer</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#float-literal" xlink:title="float_literal" shape="rect"> + <rect x="43" y="29" width="56" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">float_literal</text></a><path class="line" d="m17 10 h2 m20 0 h4 m90 0 h4 m-118 0 h20 m98 0 h20 m-138 0 q10 0 10 10 m118 0 q0 -10 10 -10 m-128 10 v8 m118 0 v-8 m-118 8 q0 10 10 10 m98 0 q10 0 10 -10 m-108 10 h4 m56 0 h4 m0 0 h34 m23 -28 h-3"/> + <polygon points="167 10 175 6 175 14"/> + <polygon points="167 10 159 6 159 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#mantissa" title="mantissa" shape="rect">mantissa</a> ::= <a href="#unsigned-integer" title="unsigned_integer" shape="rect">unsigned_integer</a></div> + <div>           | <a href="#float-literal" title="float_literal" shape="rect">float_literal</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#approximate-numeric-literal" title="approximate-numeric-literal">approximate-numeric-literal</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + exponent +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="125" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#signed-integer" xlink:title="signed_integer" shape="rect"> + <rect x="23" y="1" width="78" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">signed_integer</text></a><path class="line" d="m17 10 h2 m0 0 h4 m78 0 h4 m3 0 h-3"/> + <polygon points="115 10 123 6 123 14"/> + <polygon points="115 10 107 6 107 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#exponent" title="exponent" shape="rect">exponent</a> ::= <a href="#signed-integer" title="signed_integer" shape="rect">signed_integer</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#approximate-numeric-literal" title="approximate-numeric-literal">approximate-numeric-literal</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + signed_integer +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="237" height="70"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <rect x="43" y="22" width="14" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="34">+</text> + <polygon points="43 59 46 50 92 50 95 59 92 68 46 68" class="regexp"/> + <text class="regexp" x="54" y="62">[#x2D]</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#unsigned-integer" xlink:title="unsigned_integer" shape="rect"> + <rect x="123" y="1" width="90" height="18" class="nonterminal"/> + <text class="nonterminal" x="127" y="13">unsigned_integer</text></a><path class="line" d="m17 10 h2 m20 0 h10 m0 0 h50 m-80 0 h20 m60 0 h20 m-100 0 q10 0 10 10 m80 0 q0 -10 10 -10 m-90 10 v1 m80 0 v-1 m-80 1 q0 10 10 10 m60 0 q10 0 10 -10 m-70 10 h4 m14 0 h4 m0 0 h38 m-70 -10 v20 m80 0 v-20 m-80 20 v8 m80 0 v-8 m-80 8 q0 10 10 10 m60 0 q10 0 10 -10 m-70 10 h4 m52 0 h4 m20 -49 h4 m90 0 h4 m3 0 h-3"/> + <polygon points="227 10 235 6 235 14"/> + <polygon points="227 10 219 6 219 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#signed-integer" title="signed_integer" shape="rect">signed_integer</a></div> + <div>         ::= [+#x2D]? <a href="#unsigned-integer" title="unsigned_integer" shape="rect">unsigned_integer</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#exponent" title="exponent">exponent</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + SQL_language_identifier +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="385" height="42"> + <polygon points="9 31 1 27 1 35"/> + <polygon points="17 31 9 27 9 35"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#sql-language-identifier-start" xlink:title="SQL_language_identifier_start" shape="rect"> + <rect x="23" y="22" width="146" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="34">SQL_language_identifier_start</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#sql-language-identifier-part" xlink:title="SQL_language_identifier_part" shape="rect"> + <rect x="197" y="1" width="144" height="18" class="nonterminal"/> + <text class="nonterminal" x="201" y="13">SQL_language_identifier_part</text></a><path class="line" d="m17 31 h2 m0 0 h4 m146 0 h4 m20 0 h10 m0 0 h142 m-172 0 l20 0 m-1 0 q-9 0 -9 -10 l0 -1 q0 -10 10 -10 m152 21 l20 0 m-20 0 q10 0 10 -10 l0 -1 q0 -10 -10 -10 m-152 0 h4 m144 0 h4 m23 21 h-3"/> + <polygon points="375 31 383 27 383 35"/> + <polygon points="375 31 367 27 367 35"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#sql-language-identifier" title="SQL_language_identifier" shape="rect">SQL_language_identifier</a></div> + <div>         ::= <a href="#sql-language-identifier-start" title="SQL_language_identifier_start" shape="rect">SQL_language_identifier_start</a> <a href="#sql-language-identifier-part" title="SQL_language_identifier_part" shape="rect">SQL_language_identifier_part</a>*</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#character-set-name" title="character-set-name">character-set-name</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + simple_Latin_letter +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="87" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <polygon points="23 10 26 1 60 1 63 10 60 19 26 19" class="regexp"/> + <text class="regexp" x="34" y="13">[a-z]</text> + <path class="line" d="m17 10 h2 m0 0 h4 m40 0 h4 m3 0 h-3"/> + <polygon points="77 10 85 6 85 14"/> + <polygon points="77 10 69 6 69 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#simple-latin-letter" title="simple_Latin_letter" shape="rect">simple_Latin_letter</a></div> + <div>         ::= [a-z]</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#sql-language-identifier-part" title="sql-language-identifier-part">sql-language-identifier-part</a></li><li><a href="#sql-language-identifier-start" title="sql-language-identifier-start">sql-language-identifier-start</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + SQL_language_identifier_start +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="141" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#simple-latin-letter" xlink:title="simple_Latin_letter" shape="rect"> + <rect x="23" y="1" width="94" height="18" class="nonterminal"/> + <text class="nonterminal" x="27" y="13">simple_Latin_letter</text></a><path class="line" d="m17 10 h2 m0 0 h4 m94 0 h4 m3 0 h-3"/> + <polygon points="131 10 139 6 139 14"/> + <polygon points="131 10 123 6 123 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#sql-language-identifier-start" title="SQL_language_identifier_start" shape="rect">SQL_language_identifier_start</a></div> + <div>         ::= <a href="#simple-latin-letter" title="simple_Latin_letter" shape="rect">simple_Latin_letter</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#sql-language-identifier" title="sql-language-identifier">sql-language-identifier</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + SQL_language_identifier_part +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="181" height="77"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#simple-latin-letter" xlink:title="simple_Latin_letter" shape="rect"> + <rect x="43" y="1" width="94" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="13">simple_Latin_letter</text></a><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#digit" xlink:title="digit" shape="rect"> + <rect x="43" y="29" width="28" height="18" class="nonterminal"/> + <text class="nonterminal" x="47" y="41">digit</text></a><rect x="43" y="57" width="14" height="18" class="terminal" rx="4"/> + <text class="terminal" x="47" y="69">_</text> + <path class="line" d="m17 10 h2 m20 0 h4 m94 0 h4 m-122 0 h20 m102 0 h20 m-142 0 q10 0 10 10 m122 0 q0 -10 10 -10 m-132 10 v8 m122 0 v-8 m-122 8 q0 10 10 10 m102 0 q10 0 10 -10 m-112 10 h4 m28 0 h4 m0 0 h66 m-112 -10 v20 m122 0 v-20 m-122 20 v8 m122 0 v-8 m-122 8 q0 10 10 10 m102 0 q10 0 10 -10 m-112 10 h4 m14 0 h4 m0 0 h80 m23 -56 h-3"/> + <polygon points="171 10 179 6 179 14"/> + <polygon points="171 10 163 6 163 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#sql-language-identifier-part" title="SQL_language_identifier_part" shape="rect">SQL_language_identifier_part</a></div> + <div>         ::= <a href="#simple-latin-letter" title="simple_Latin_letter" shape="rect">simple_Latin_letter</a></div> + <div>           | <a href="#digit" title="digit" shape="rect">digit</a></div> + <div>           | '_'</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#sql-language-identifier" title="sql-language-identifier">sql-language-identifier</a></li></ul></div></td></tr></tbody></table> + + +====================================================================================================================== + illegal_input_char +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="69" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <polygon points="23 10 26 1 42 1 45 10 42 19 26 19" class="regexp"/> + <text class="regexp" x="34" y="13">.</text> + <path class="line" d="m17 10 h2 m0 0 h4 m22 0 h4 m3 0 h-3"/> + <polygon points="59 10 67 6 67 14"/> + <polygon points="59 10 51 6 51 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#illegal-input-char" title="illegal_input_char" shape="rect">illegal_input_char</a></div> + <div>         ::= <a href="#." title="." shape="rect">.</a></div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Not referenced by any. + </div></td></tr></tbody></table> + + +====================================================================================================================== + EOF +====================================================================================================================== + + +.. raw:: html + + <svg xmlns="http://www.w3.org/2000/svg" width="73" height="21"> + <polygon points="9 10 1 6 1 14"/> + <polygon points="17 10 9 6 9 14"/> + <polygon points="23 10 26 1 46 1 49 10 46 19 26 19" class="regexp"/> + <text class="regexp" x="34" y="13">$</text> + <path class="line" d="m17 10 h2 m0 0 h4 m26 0 h4 m3 0 h-3"/> + <polygon points="63 10 71 6 71 14"/> + <polygon points="63 10 55 6 55 14"/></svg><table xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" style="width:100%"><tbody><tr><td style="width:67%" valign="top"><xhtml:p xmlns="http://www.w3.org/1999/xhtml"> + <xhtml:div class="ebnf"><xhtml:code> + <div><a href="#eof" title="EOF" shape="rect">EOF</a>      ::= $</div></xhtml:code></xhtml:div> + </xhtml:p></td><td style="width:33%" valign="top"><div class="ebnf"> + Referenced by: + <ul><li><a href="#compilationunit" title="compilationunit">compilationunit</a></li></ul></div></td></tr></tbody></table> + + \ No newline at end of file diff --git a/sphinx/src/usage.rst b/sphinx/src/usage.rst new file mode 100644 index 0000000..655b4e1 --- /dev/null +++ b/sphinx/src/usage.rst @@ -0,0 +1,110 @@ +****************************** +How to use it +****************************** + +Compile from Source Code +============================== + +You will need to have ``JDK 8`` or ``JDK 11`` installed. + +.. tabs:: + + .. tab:: Maven + + .. code-block:: shell + + git clone https://github.com/prestodb/sql.git + cd sql + mvn install + + .. tab:: Gradle + + .. code-block:: shell + + git clone https://github.com/prestodb/sql.git + cd sql + gradle build + + +Build Dependencies +============================== + +.. tabs:: + + + .. tab:: Maven Release + + .. code-block:: xml + :substitutions: + + <dependency> + <groupId>com.facebook.presto</groupId> + <artifactId>presto-coresql</artifactId> + <version>|PRESTO_SQL_PARSER_VERSION|</version> + </dependency> + + .. tab:: Maven Snapshot + + .. code-block:: xml + :substitutions: + + <repositories> + <repository> + <id>presto-coresql-snapshots</id> + <snapshots> + <enabled>true</enabled> + </snapshots> + <url>https://oss.sonatype.org/content/groups/public/</url> + </repository> + </repositories> + + <dependency> + <groupId>com.facebook.presto</groupId> + <artifactId>presto-coresql</artifactId> + <version>|PRESTO_SQL_PARSER_SNAPSHOT_VERSION|</version> + </dependency> + + .. tab:: Gradle Stable + + .. code-block:: groovy + :substitutions: + + repositories { + mavenCentral() + } + + dependencies { + implementation 'com.facebook.presto:presto-coresql:|PRESTO_SQL_PARSER_VERSION|' + } + + .. tab:: Gradle Snapshot + + .. code-block:: groovy + :substitutions: + + repositories { + maven { + url = uri('https://oss.sonatype.org/content/groups/public/') + } + } + + dependencies { + implementation 'com.facebook.presto:presto-coresql:|PRESTO_SQL_PARSER_SNAPSHOT_VERSION|' + } + +Parse a SQL Statements +============================== + +Parse the SQL Text into Java Objects: + +.. code-block:: java + + import com.facebook.coresql.parser.AstNode; + import com.facebook.coresql.parser.ParserHelper; + import com.facebook.coresql.parser.Unparser; + + String sqlStr = "select 1 from dual where a=b"; + AstNode ast = ParserHelper.parseStatement(sqlStr); + String unparsedSqlStr = Unparser.unparse(ast); + + diff --git a/sphinx/xhtml2rst.xsl b/sphinx/xhtml2rst.xsl new file mode 100644 index 0000000..b7a241b --- /dev/null +++ b/sphinx/xhtml2rst.xsl @@ -0,0 +1,95 @@ +<?xml version="1.0" encoding="UTF-8"?> +<xsl:stylesheet version="1.1" + xmlns:xsl="http://www.w3.org/1999/XSL/Transform" + xmlns:xhtml="http://www.w3.org/1999/xhtml" + xmlns:svg="http://www.w3.org/2000/svg" + exclude-result-prefixes="#all" +> + <xsl:output + method="xml" + encoding="utf8" + omit-xml-declaration="yes" + indent="no" /> + + <!-- a default catch is needed to suppress all unwanted nodes --> + <xsl:template match="*"> + <xsl:apply-templates select="/xhtml:html/xhtml:body"/> + </xsl:template> + + <xsl:template match="/xhtml:html/xhtml:body"> + <xsl:text disable-output-escaping="yes"> +******************** +Supported SQL Syntax +******************** + +The EBNF and Railroad Diagrams for the supported SQL Syntax. + + </xsl:text> + <xsl:apply-templates select="svg:svg"/> + </xsl:template> + + <xsl:template match="svg:svg[preceding-sibling::*[1]/xhtml:a]"> +<xsl:text disable-output-escaping="yes"> +====================================================================================================================== + </xsl:text> + <xsl:value-of select="translate(preceding-sibling::*[1]/xhtml:a/text(),'\:','')"/> + <xsl:text disable-output-escaping="yes"> +====================================================================================================================== + + </xsl:text> + + <xsl:text disable-output-escaping="yes"> +.. raw:: html + + </xsl:text> + + <!-- SVG Diagram --> + <xsl:copy-of select="."/> + + <table style="width:100%"> + <tbody> + <tr> + <td style="width:67%" valign="top"> + <!-- EBNF --> + <xsl:copy-of select="following-sibling::*[1]"/> + </td> + <td style="width:33%" valign="top"> + <div class="ebnf"> + <xsl:choose> + <!-- References --> + <xsl:when test="count(following-sibling::*[2]/xhtml:ul/xhtml:li)>0"> + Referenced by: + <ul> + <xsl:apply-templates select="following-sibling::*[2]/xhtml:ul/xhtml:li/xhtml:a"/> + </ul> + </xsl:when> + <xsl:otherwise> + Not referenced by any. + </xsl:otherwise> + </xsl:choose> + </div> + </td> + </tr> + </tbody> + </table> + + <!-- empty Line --> + <xsl:text disable-output-escaping="yes"> + + </xsl:text> + </xsl:template> + + <xsl:template match="xhtml:a"> + <li> + <a> + <xsl:attribute name="href"> + <xsl:value-of select="@href" /> + </xsl:attribute> + <xsl:attribute name="title"> + <xsl:value-of select="@title" /> + </xsl:attribute> + <xsl:value-of select="text()"/> + </a> + </li> + </xsl:template> +</xsl:stylesheet> \ No newline at end of file