├── .gitignore ├── CONTRIBUTING.md ├── LICENSE ├── LICENSE-SAMPLECODE ├── LICENSE-SUMMARY ├── README.md ├── deprecated └── README.md ├── docs ├── README.md ├── builtins-partiql.adoc ├── builtins-sql.adoc └── reserved-keywords-spec-version-2019.adoc └── drafts └── README.md /.gitignore: -------------------------------------------------------------------------------- 1 | 2 | # Created by https://www.toptal.com/developers/gitignore/api/macos,intellij+all,intellij+iml,emacs,vim 3 | # Edit at https://www.toptal.com/developers/gitignore?templates=macos,intellij+all,intellij+iml,emacs,vim 4 | 5 | ### Emacs ### 6 | # -*- mode: gitignore; -*- 7 | *~ 8 | \#*\# 9 | /.emacs.desktop 10 | /.emacs.desktop.lock 11 | *.elc 12 | auto-save-list 13 | tramp 14 | .\#* 15 | 16 | # Org-mode 17 | .org-id-locations 18 | *_archive 19 | 20 | # flymake-mode 21 | *_flymake.* 22 | 23 | # eshell files 24 | /eshell/history 25 | /eshell/lastdir 26 | 27 | # elpa packages 28 | /elpa/ 29 | 30 | # reftex files 31 | *.rel 32 | 33 | # AUCTeX auto folder 34 | /auto/ 35 | 36 | # cask packages 37 | .cask/ 38 | dist/ 39 | 40 | # Flycheck 41 | flycheck_*.el 42 | 43 | # server auth directory 44 | /server/ 45 | 46 | # projectiles files 47 | .projectile 48 | 49 | # directory configuration 50 | .dir-locals.el 51 | 52 | # network security 53 | /network-security.data 54 | 55 | 56 | ### Intellij+all ### 57 | # Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio, WebStorm and Rider 58 | # Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839 59 | 60 | # User-specific stuff 61 | .idea/**/workspace.xml 62 | .idea/**/tasks.xml 63 | .idea/**/usage.statistics.xml 64 | .idea/**/dictionaries 65 | .idea/**/shelf 66 | 67 | # AWS User-specific 68 | .idea/**/aws.xml 69 | 70 | # Generated files 71 | .idea/**/contentModel.xml 72 | 73 | # Sensitive or high-churn files 74 | .idea/**/dataSources/ 75 | .idea/**/dataSources.ids 76 | .idea/**/dataSources.local.xml 77 | .idea/**/sqlDataSources.xml 78 | .idea/**/dynamic.xml 79 | .idea/**/uiDesigner.xml 80 | .idea/**/dbnavigator.xml 81 | 82 | # Gradle 83 | .idea/**/gradle.xml 84 | .idea/**/libraries 85 | 86 | # Gradle and Maven with auto-import 87 | # When using Gradle or Maven with auto-import, you should exclude module files, 88 | # since they will be recreated, and may cause churn. Uncomment if using 89 | # auto-import. 90 | # .idea/artifacts 91 | # .idea/compiler.xml 92 | # .idea/jarRepositories.xml 93 | # .idea/modules.xml 94 | # .idea/*.iml 95 | # .idea/modules 96 | # *.iml 97 | # *.ipr 98 | 99 | # CMake 100 | cmake-build-*/ 101 | 102 | # Mongo Explorer plugin 103 | .idea/**/mongoSettings.xml 104 | 105 | # File-based project format 106 | *.iws 107 | 108 | # IntelliJ 109 | out/ 110 | 111 | # mpeltonen/sbt-idea plugin 112 | .idea_modules/ 113 | 114 | # JIRA plugin 115 | atlassian-ide-plugin.xml 116 | 117 | # Cursive Clojure plugin 118 | .idea/replstate.xml 119 | 120 | # SonarLint plugin 121 | .idea/sonarlint/ 122 | 123 | # Crashlytics plugin (for Android Studio and IntelliJ) 124 | com_crashlytics_export_strings.xml 125 | crashlytics.properties 126 | crashlytics-build.properties 127 | fabric.properties 128 | 129 | # Editor-based Rest Client 130 | .idea/httpRequests 131 | 132 | # Android studio 3.1+ serialized cache file 133 | .idea/caches/build_file_checksums.ser 134 | 135 | ### Intellij+all Patch ### 136 | # Ignore everything but code style settings and run configurations 137 | # that are supposed to be shared within teams. 138 | 139 | .idea/* 140 | 141 | !.idea/codeStyles 142 | !.idea/runConfigurations 143 | 144 | ### Intellij+iml ### 145 | # Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio, WebStorm and Rider 146 | # Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839 147 | 148 | # User-specific stuff 149 | 150 | # AWS User-specific 151 | 152 | # Generated files 153 | 154 | # Sensitive or high-churn files 155 | 156 | # Gradle 157 | 158 | # Gradle and Maven with auto-import 159 | # When using Gradle or Maven with auto-import, you should exclude module files, 160 | # since they will be recreated, and may cause churn. Uncomment if using 161 | # auto-import. 162 | # .idea/artifacts 163 | # .idea/compiler.xml 164 | # .idea/jarRepositories.xml 165 | # .idea/modules.xml 166 | # .idea/*.iml 167 | # .idea/modules 168 | # *.iml 169 | # *.ipr 170 | 171 | # CMake 172 | 173 | # Mongo Explorer plugin 174 | 175 | # File-based project format 176 | 177 | # IntelliJ 178 | 179 | # mpeltonen/sbt-idea plugin 180 | 181 | # JIRA plugin 182 | 183 | # Cursive Clojure plugin 184 | 185 | # SonarLint plugin 186 | 187 | # Crashlytics plugin (for Android Studio and IntelliJ) 188 | 189 | # Editor-based Rest Client 190 | 191 | # Android studio 3.1+ serialized cache file 192 | 193 | ### Intellij+iml Patch ### 194 | # Reason: https://github.com/joeblau/gitignore.io/issues/186#issuecomment-249601023 195 | 196 | *.iml 197 | modules.xml 198 | .idea/misc.xml 199 | *.ipr 200 | 201 | ### macOS ### 202 | # General 203 | .DS_Store 204 | .AppleDouble 205 | .LSOverride 206 | 207 | # Icon must end with two \r 208 | Icon 209 | 210 | 211 | # Thumbnails 212 | ._* 213 | 214 | # Files that might appear in the root of a volume 215 | .DocumentRevisions-V100 216 | .fseventsd 217 | .Spotlight-V100 218 | .TemporaryItems 219 | .Trashes 220 | .VolumeIcon.icns 221 | .com.apple.timemachine.donotpresent 222 | 223 | # Directories potentially created on remote AFP share 224 | .AppleDB 225 | .AppleDesktop 226 | Network Trash Folder 227 | Temporary Items 228 | .apdisk 229 | 230 | ### macOS Patch ### 231 | # iCloud generated files 232 | *.icloud 233 | 234 | ### Vim ### 235 | # Swap 236 | [._]*.s[a-v][a-z] 237 | !*.svg # comment out if you don't need vector files 238 | [._]*.sw[a-p] 239 | [._]s[a-rt-v][a-z] 240 | [._]ss[a-gi-z] 241 | [._]sw[a-p] 242 | 243 | # Session 244 | Session.vim 245 | Sessionx.vim 246 | 247 | # Temporary 248 | .netrwhist 249 | # Auto-generated tag files 250 | tags 251 | # Persistent undo 252 | [._]*.un~ 253 | 254 | # End of https://www.toptal.com/developers/gitignore/api/macos,intellij+all,intellij+iml,emacs,vim 255 | ` 256 | -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | # Contributing Guidelines 2 | 3 | Thank you for your interest in contributing to our project. Whether it's a bug report, new feature, correction, or additional 4 | documentation, we greatly value feedback and contributions from our community. 5 | 6 | Please read through this document before submitting any issues or pull requests to ensure we have all the necessary 7 | information to effectively respond to your bug report or contribution. 8 | 9 | 10 | ## Reporting Bugs/Feature Requests 11 | 12 | We welcome you to use the GitHub issue tracker to report bugs or suggest features. 13 | 14 | When filing an issue, please check existing open, or recently closed, issues to make sure somebody else hasn't already 15 | reported the issue. Please try to include as much information as you can. Details like these are incredibly useful: 16 | 17 | * A reproducible test case or series of steps 18 | * The version of our code being used 19 | * Any modifications you've made relevant to the bug 20 | * Anything unusual about your environment or deployment 21 | 22 | 23 | ## Contributing via Pull Requests 24 | Contributions via pull requests are much appreciated. Before sending us a pull request, please ensure that: 25 | 26 | 1. You are working against the latest source on the *main* branch. 27 | 2. You check existing open, and recently merged, pull requests to make sure someone else hasn't addressed the problem already. 28 | 3. You open an issue to discuss any significant work - we would hate for your time to be wasted. 29 | 30 | To send us a pull request, please: 31 | 32 | 1. Fork the repository. 33 | 2. Modify the source; please focus on the specific change you are contributing. If you also reformat all the code, it will be hard for us to focus on your change. 34 | 3. Ensure local tests pass. 35 | 4. Commit to your fork using clear commit messages. 36 | 5. Send us a pull request, answering any default questions in the pull request interface. 37 | 6. Pay attention to any automated CI failures reported in the pull request, and stay involved in the conversation. 38 | 39 | GitHub provides additional document on [forking a repository](https://help.github.com/articles/fork-a-repo/) and 40 | [creating a pull request](https://help.github.com/articles/creating-a-pull-request/). 41 | 42 | 43 | ## Finding contributions to work on 44 | Looking at the existing issues is a great way to find something to contribute on. As our projects, by default, use the default GitHub issue labels (enhancement/bug/duplicate/help wanted/invalid/question/wontfix), looking at any 'help wanted' issues is a great place to start. 45 | 46 | 47 | ## Code of Conduct 48 | This project has adopted the [Amazon Open Source Code of Conduct](https://aws.github.io/code-of-conduct). 49 | For more information see the [Code of Conduct FAQ](https://aws.github.io/code-of-conduct-faq) or contact 50 | opensource-codeofconduct@amazon.com with any additional questions or comments. 51 | 52 | 53 | ## Security issue notifications 54 | If you discover a potential security issue in this project we ask that you notify AWS/Amazon Security via our [vulnerability reporting page](http://aws.amazon.com/security/vulnerability-reporting/). Please do **not** create a public github issue. 55 | 56 | 57 | ## Licensing 58 | 59 | See the [LICENSE](LICENSE) file for our project's licensing. We will ask you to confirm the licensing of your contribution. 60 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Creative Commons Attribution-ShareAlike 4.0 International Public License 2 | 3 | By exercising the Licensed Rights (defined below), You accept and agree to be bound by the terms and conditions of this Creative Commons Attribution-ShareAlike 4.0 International Public License ("Public License"). To the extent this Public License may be interpreted as a contract, You are granted the Licensed Rights in consideration of Your acceptance of these terms and conditions, and the Licensor grants You such rights in consideration of benefits the Licensor receives from making the Licensed Material available under these terms and conditions. 4 | 5 | Section 1 – Definitions. 6 | 7 | a. Adapted Material means material subject to Copyright and Similar Rights that is derived from or based upon the Licensed Material and in which the Licensed Material is translated, altered, arranged, transformed, or otherwise modified in a manner requiring permission under the Copyright and Similar Rights held by the Licensor. For purposes of this Public License, where the Licensed Material is a musical work, performance, or sound recording, Adapted Material is always produced where the Licensed Material is synched in timed relation with a moving image. 8 | 9 | b. Adapter's License means the license You apply to Your Copyright and Similar Rights in Your contributions to Adapted Material in accordance with the terms and conditions of this Public License. 10 | 11 | c. BY-SA Compatible License means a license listed at creativecommons.org/compatiblelicenses, approved by Creative Commons as essentially the equivalent of this Public License. 12 | 13 | d. Copyright and Similar Rights means copyright and/or similar rights closely related to copyright including, without limitation, performance, broadcast, sound recording, and Sui Generis Database Rights, without regard to how the rights are labeled or categorized. For purposes of this Public License, the rights specified in Section 2(b)(1)-(2) are not Copyright and Similar Rights. 14 | 15 | e. Effective Technological Measures means those measures that, in the absence of proper authority, may not be circumvented under laws fulfilling obligations under Article 11 of the WIPO Copyright Treaty adopted on December 20, 1996, and/or similar international agreements. 16 | 17 | f. Exceptions and Limitations means fair use, fair dealing, and/or any other exception or limitation to Copyright and Similar Rights that applies to Your use of the Licensed Material. 18 | 19 | g. License Elements means the license attributes listed in the name of a Creative Commons Public License. The License Elements of this Public License are Attribution and ShareAlike. 20 | 21 | h. Licensed Material means the artistic or literary work, database, or other material to which the Licensor applied this Public License. 22 | 23 | i. Licensed Rights means the rights granted to You subject to the terms and conditions of this Public License, which are limited to all Copyright and Similar Rights that apply to Your use of the Licensed Material and that the Licensor has authority to license. 24 | 25 | j. Licensor means the individual(s) or entity(ies) granting rights under this Public License. 26 | 27 | k. Share means to provide material to the public by any means or process that requires permission under the Licensed Rights, such as reproduction, public display, public performance, distribution, dissemination, communication, or importation, and to make material available to the public including in ways that members of the public may access the material from a place and at a time individually chosen by them. 28 | 29 | l. Sui Generis Database Rights means rights other than copyright resulting from Directive 96/9/EC of the European Parliament and of the Council of 11 March 1996 on the legal protection of databases, as amended and/or succeeded, as well as other essentially equivalent rights anywhere in the world. 30 | 31 | m. You means the individual or entity exercising the Licensed Rights under this Public License. Your has a corresponding meaning. 32 | 33 | Section 2 – Scope. 34 | 35 | a. License grant. 36 | 37 | 1. Subject to the terms and conditions of this Public License, the Licensor hereby grants You a worldwide, royalty-free, non-sublicensable, non-exclusive, irrevocable license to exercise the Licensed Rights in the Licensed Material to: 38 | 39 | A. reproduce and Share the Licensed Material, in whole or in part; and 40 | 41 | B. produce, reproduce, and Share Adapted Material. 42 | 43 | 2. Exceptions and Limitations. For the avoidance of doubt, where Exceptions and Limitations apply to Your use, this Public License does not apply, and You do not need to comply with its terms and conditions. 44 | 45 | 3. Term. The term of this Public License is specified in Section 6(a). 46 | 47 | 4. Media and formats; technical modifications allowed. The Licensor authorizes You to exercise the Licensed Rights in all media and formats whether now known or hereafter created, and to make technical modifications necessary to do so. The Licensor waives and/or agrees not to assert any right or authority to forbid You from making technical modifications necessary to exercise the Licensed Rights, including technical modifications necessary to circumvent Effective Technological Measures. For purposes of this Public License, simply making modifications authorized by this Section 2(a)(4) never produces Adapted Material. 48 | 49 | 5. Downstream recipients. 50 | 51 | A. Offer from the Licensor – Licensed Material. Every recipient of the Licensed Material automatically receives an offer from the Licensor to exercise the Licensed Rights under the terms and conditions of this Public License. 52 | 53 | B. Additional offer from the Licensor – Adapted Material. Every recipient of Adapted Material from You automatically receives an offer from the Licensor to exercise the Licensed Rights in the Adapted Material under the conditions of the Adapter’s License You apply. 54 | 55 | C. No downstream restrictions. You may not offer or impose any additional or different terms or conditions on, or apply any Effective Technological Measures to, the Licensed Material if doing so restricts exercise of the Licensed Rights by any recipient of the Licensed Material. 56 | 57 | 6. No endorsement. Nothing in this Public License constitutes or may be construed as permission to assert or imply that You are, or that Your use of the Licensed Material is, connected with, or sponsored, endorsed, or granted official status by, the Licensor or others designated to receive attribution as provided in Section 3(a)(1)(A)(i). 58 | 59 | b. Other rights. 60 | 61 | 1. Moral rights, such as the right of integrity, are not licensed under this Public License, nor are publicity, privacy, and/or other similar personality rights; however, to the extent possible, the Licensor waives and/or agrees not to assert any such rights held by the Licensor to the limited extent necessary to allow You to exercise the Licensed Rights, but not otherwise. 62 | 63 | 2. Patent and trademark rights are not licensed under this Public License. 64 | 65 | 3. To the extent possible, the Licensor waives any right to collect royalties from You for the exercise of the Licensed Rights, whether directly or through a collecting society under any voluntary or waivable statutory or compulsory licensing scheme. In all other cases the Licensor expressly reserves any right to collect such royalties. 66 | 67 | Section 3 – License Conditions. 68 | 69 | Your exercise of the Licensed Rights is expressly made subject to the following conditions. 70 | 71 | a. Attribution. 72 | 73 | 1. If You Share the Licensed Material (including in modified form), You must: 74 | 75 | A. retain the following if it is supplied by the Licensor with the Licensed Material: 76 | 77 | i. identification of the creator(s) of the Licensed Material and any others designated to receive attribution, in any reasonable manner requested by the Licensor (including by pseudonym if designated); 78 | 79 | ii. a copyright notice; 80 | 81 | iii. a notice that refers to this Public License; 82 | 83 | iv. a notice that refers to the disclaimer of warranties; 84 | 85 | v. a URI or hyperlink to the Licensed Material to the extent reasonably practicable; 86 | 87 | B. indicate if You modified the Licensed Material and retain an indication of any previous modifications; and 88 | 89 | C. indicate the Licensed Material is licensed under this Public License, and include the text of, or the URI or hyperlink to, this Public License. 90 | 91 | 2. You may satisfy the conditions in Section 3(a)(1) in any reasonable manner based on the medium, means, and context in which You Share the Licensed Material. For example, it may be reasonable to satisfy the conditions by providing a URI or hyperlink to a resource that includes the required information. 92 | 93 | 3. If requested by the Licensor, You must remove any of the information required by Section 3(a)(1)(A) to the extent reasonably practicable. 94 | 95 | b. ShareAlike.In addition to the conditions in Section 3(a), if You Share Adapted Material You produce, the following conditions also apply. 96 | 97 | 1. The Adapter’s License You apply must be a Creative Commons license with the same License Elements, this version or later, or a BY-SA Compatible License. 98 | 99 | 2. You must include the text of, or the URI or hyperlink to, the Adapter's License You apply. You may satisfy this condition in any reasonable manner based on the medium, means, and context in which You Share Adapted Material. 100 | 101 | 3. You may not offer or impose any additional or different terms or conditions on, or apply any Effective Technological Measures to, Adapted Material that restrict exercise of the rights granted under the Adapter's License You apply. 102 | 103 | Section 4 – Sui Generis Database Rights. 104 | 105 | Where the Licensed Rights include Sui Generis Database Rights that apply to Your use of the Licensed Material: 106 | 107 | a. for the avoidance of doubt, Section 2(a)(1) grants You the right to extract, reuse, reproduce, and Share all or a substantial portion of the contents of the database; 108 | 109 | b. if You include all or a substantial portion of the database contents in a database in which You have Sui Generis Database Rights, then the database in which You have Sui Generis Database Rights (but not its individual contents) is Adapted Material, including for purposes of Section 3(b); and 110 | 111 | c. You must comply with the conditions in Section 3(a) if You Share all or a substantial portion of the contents of the database. 112 | For the avoidance of doubt, this Section 4 supplements and does not replace Your obligations under this Public License where the Licensed Rights include other Copyright and Similar Rights. 113 | 114 | Section 5 – Disclaimer of Warranties and Limitation of Liability. 115 | 116 | a. Unless otherwise separately undertaken by the Licensor, to the extent possible, the Licensor offers the Licensed Material as-is and as-available, and makes no representations or warranties of any kind concerning the Licensed Material, whether express, implied, statutory, or other. This includes, without limitation, warranties of title, merchantability, fitness for a particular purpose, non-infringement, absence of latent or other defects, accuracy, or the presence or absence of errors, whether or not known or discoverable. Where disclaimers of warranties are not allowed in full or in part, this disclaimer may not apply to You. 117 | 118 | b. To the extent possible, in no event will the Licensor be liable to You on any legal theory (including, without limitation, negligence) or otherwise for any direct, special, indirect, incidental, consequential, punitive, exemplary, or other losses, costs, expenses, or damages arising out of this Public License or use of the Licensed Material, even if the Licensor has been advised of the possibility of such losses, costs, expenses, or damages. Where a limitation of liability is not allowed in full or in part, this limitation may not apply to You. 119 | 120 | c. The disclaimer of warranties and limitation of liability provided above shall be interpreted in a manner that, to the extent possible, most closely approximates an absolute disclaimer and waiver of all liability. 121 | 122 | Section 6 – Term and Termination. 123 | 124 | a. This Public License applies for the term of the Copyright and Similar Rights licensed here. However, if You fail to comply with this Public License, then Your rights under this Public License terminate automatically. 125 | 126 | b. Where Your right to use the Licensed Material has terminated under Section 6(a), it reinstates: 127 | 128 | 1. automatically as of the date the violation is cured, provided it is cured within 30 days of Your discovery of the violation; or 129 | 130 | 2. upon express reinstatement by the Licensor. 131 | 132 | c. For the avoidance of doubt, this Section 6(b) does not affect any right the Licensor may have to seek remedies for Your violations of this Public License. 133 | 134 | d. For the avoidance of doubt, the Licensor may also offer the Licensed Material under separate terms or conditions or stop distributing the Licensed Material at any time; however, doing so will not terminate this Public License. 135 | 136 | e. Sections 1, 5, 6, 7, and 8 survive termination of this Public License. 137 | 138 | Section 7 – Other Terms and Conditions. 139 | 140 | a. The Licensor shall not be bound by any additional or different terms or conditions communicated by You unless expressly agreed. 141 | 142 | b. Any arrangements, understandings, or agreements regarding the Licensed Material not stated herein are separate from and independent of the terms and conditions of this Public License. 143 | 144 | Section 8 – Interpretation. 145 | 146 | a. For the avoidance of doubt, this Public License does not, and shall not be interpreted to, reduce, limit, restrict, or impose conditions on any use of the Licensed Material that could lawfully be made without permission under this Public License. 147 | 148 | b. To the extent possible, if any provision of this Public License is deemed unenforceable, it shall be automatically reformed to the minimum extent necessary to make it enforceable. If the provision cannot be reformed, it shall be severed from this Public License without affecting the enforceability of the remaining terms and conditions. 149 | 150 | c. No term or condition of this Public License will be waived and no failure to comply consented to unless expressly agreed to by the Licensor. 151 | 152 | d. Nothing in this Public License constitutes or may be interpreted as a limitation upon, or waiver of, any privileges and immunities that apply to the Licensor or You, including from the legal processes of any jurisdiction or authority. 153 | -------------------------------------------------------------------------------- /LICENSE-SAMPLECODE: -------------------------------------------------------------------------------- 1 | Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy of this 4 | software and associated documentation files (the "Software"), to deal in the Software 5 | without restriction, including without limitation the rights to use, copy, modify, 6 | merge, publish, distribute, sublicense, and/or sell copies of the Software, and to 7 | permit persons to whom the Software is furnished to do so. 8 | 9 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, 10 | INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A 11 | PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 12 | HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 13 | OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE 14 | SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 15 | -------------------------------------------------------------------------------- /LICENSE-SUMMARY: -------------------------------------------------------------------------------- 1 | Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. 2 | 3 | The documentation is made available under the Creative Commons Attribution-ShareAlike 4.0 International License. See the LICENSE file. 4 | 5 | The sample code within this documentation is made available under the MIT-0 license. See the LICENSE-SAMPLECODE file. 6 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ## partiql-docs 2 | 3 | This repository contains PartiQL-related technical documents including design docs, use cases etc. Feel free to ask questions and/or propose clarifications, and we'll do our best to respond quickly. 4 | 5 | There are three primary subdirectories: 6 | 7 | ### [`/docs`](docs) 8 | 9 | This subdirectory contains documents that have been accepted by the PartiQL team as correct. The information here should reflect the current understanding of PartiQL. 10 | 11 | ### [`/drafts`](drafts) 12 | 13 | This subdirectory contains working versions of documents in various stages of development. While these documents are probably useful, be aware the information might be outdated or wrong. 14 | 15 | ### [`/deprecated`](deprecated) 16 | 17 | This subdirectory contains documents that have been abandoned. When `drafts` are not moved to `docs`, they should be moved here. The docs here may be useful for learning the thoughts and considerations of past attempts, but there is no guarantee on the correctness. 18 | 19 | ## License Summary 20 | 21 | The documentation is made available under the Creative Commons Attribution-ShareAlike 4.0 International License. See the [LICENSE](LICENSE) file. 22 | 23 | The sample code within this documentation is made available under the MIT-0 license. See the [LICENSE-SAMPLECODE](LICENSE-SAMPLECODE) file. 24 | -------------------------------------------------------------------------------- /deprecated/README.md: -------------------------------------------------------------------------------- 1 | ### `/deprecated` 2 | 3 | This subdirectory contains documents that have been abandoned. When `drafts` are not moved to `docs`, they should be moved here. The docs here may be useful for learning the thoughts and considerations of past attempts, but there is no guarantee on the correctness. 4 | 5 | -------------------------------------------------------------------------------- /docs/README.md: -------------------------------------------------------------------------------- 1 | ### `/docs` 2 | 3 | This subdirectory contains documents that have been accepted by the PartiQL team as correct. The information here should reflect the current understanding of PartiQL. 4 | 5 | -------------------------------------------------------------------------------- /docs/builtins-partiql.adoc: -------------------------------------------------------------------------------- 1 | = PartiQL Builtins Support 2 | :table-caption!: 3 | 4 | Reference xref:builtins-sql.adoc[SQL Builtins] 5 | 6 | .Aggregations 7 | [cols="1,1,3,3",frame=none] 8 | |=== 9 | |Identifier ^|Support |Description |Comment 10 | 11 | |COUNT_STAR 12 | ^|🟩 13 | |Counts the number of rows 14 | | 15 | 16 | |COUNT 17 | ^|🟩 18 | |Standard aggregate count 19 | | 20 | 21 | |SUM 22 | ^|🟩 23 | |Standard aggregate summation 24 | | 25 | 26 | |MIN 27 | ^|🟩 28 | |Standard aggregate minimum 29 | | 30 | 31 | |MAX 32 | ^|🟩 33 | |Standard aggregate maximum 34 | | 35 | 36 | |EVERY 37 | ^|🟥 38 | |Returns true if all inputs are true 39 | | 40 | 41 | |ANY 42 | ^|🟥 43 | |?? 44 | | 45 | 46 | |SOME 47 | ^|🟥 48 | |?? 49 | | 50 | 51 | | STDDEV_POP 52 | ^|🟥 53 | |Population standard deviation 54 | | 55 | 56 | | STDDEV_SAMP 57 | ^|🟥 58 | |Sample standard deviation 59 | | 60 | 61 | |VAR_POP 62 | ^|🟥 63 | |Population variance 64 | | 65 | 66 | |VAR_SAMP 67 | ^|🟥 68 | |Sample variance 69 | | 70 | 71 | |COVAR_POP 72 | ^|🟥 73 | |Population covariance 74 | | 75 | 76 | |COVAR_SAMP 77 | ^|🟥 78 | |Sample covariance 79 | | 80 | 81 | |CORR 82 | ^|🟥 83 | |Correlation coefficient 84 | | 85 | 86 | |=== 87 | 88 | .Comparisons 89 | [cols="1,1,3,3",frame=none] 90 | |=== 91 | |Identifier ^|Support |Description |Comment 92 | 93 | |LT 94 | ^|🟩 95 | |Value less than comparison 96 | | 97 | 98 | |LTE 99 | ^|🟩 100 | |Value less than or equal to comparison 101 | | 102 | 103 | |GT 104 | ^|🟩 105 | |Value greater than comparison 106 | | 107 | 108 | |GTE 109 | ^|🟩 110 | |Value greater than or equal to comparison 111 | | 112 | 113 | |EQ 114 | ^|🟩 115 | |Value equality 116 | | 117 | 118 | |NEQ 119 | ^|🟩 120 | |Negation of value equality 121 | | 122 | 123 | |=== 124 | 125 | .Numeric 126 | [cols="1,1,3,3",frame=none] 127 | |=== 128 | |Identifier ^|Support |Description |Comment 129 | 130 | |PLUS 131 | ^|🟩 132 | |Addition of two numeric types 133 | | 134 | 135 | |MINUS 136 | ^|🟩 137 | |Subtraction of two numeric types 138 | | 139 | 140 | |MULT 141 | ^|🟩 142 | |Multiplication of two numeric types 143 | | 144 | 145 | |DIV 146 | ^|🟩 147 | |Integer division of two numeric types 148 | | 149 | 150 | |MOD 151 | ^|🟥 152 | |Modulus 153 | | 154 | 155 | |CEILING 156 | ^|🟩 157 | |Numeric ceiling 158 | | 159 | 160 | |FLOOR 161 | ^|🟩 162 | |Numeric floor 163 | | 164 | 165 | |ABS 166 | ^|🟩 167 | |Absolute value 168 | | 169 | 170 | |SQRT 171 | ^|🟩 172 | |Square root 173 | | 174 | 175 | |EXP 176 | ^|🟩 177 | |Exponential function 178 | | 179 | 180 | |POWER 181 | ^|🟩 182 | |Exponentiation 183 | | 184 | 185 | |LN 186 | ^|🟩 187 | |Natural log 188 | | 189 | 190 | |=== 191 | 192 | .Strings 193 | [cols="1,1,3,3",frame=none] 194 | |=== 195 | |Identifier ^|Support |Description |Comment 196 | 197 | |CONCAT 198 | ^|🟩 199 | |String concatenation 200 | | 201 | 202 | |LOWER 203 | ^|🟩 204 | |String lowercase 205 | | 206 | 207 | |UPPER 208 | ^|🟩 209 | |String uppercase 210 | | 211 | 212 | |CHAR_LENGTH 213 | ^|🟩 214 | |Characters in a string 215 | | 216 | 217 | |SUBSTRING 218 | ^|🟩 219 | |Substring from range 220 | | 221 | 222 | |BIT_LENGTH 223 | ^|🟥 224 | |Bits in a string 225 | | 226 | 227 | |OCTET_LENGTH 228 | ^|🟥 229 | |Bytes in a string 230 | | 231 | 232 | |SUBSTRING_PATTERN 233 | ^|🟥 234 | |Substring from a SQL regular expression 235 | | 236 | 237 | |TRIM 238 | ^|🟥 239 | |Trim characters from the ends of a string 240 | | LEADING or TRAILING are missing; as well as characters to trim 241 | 242 | |POSITION 243 | ^|🟥 244 | |Get position of substring in a string 245 | | 246 | 247 | |OVERLAY 248 | ^|🟥 249 | | Replace content of a string 250 | | 251 | 252 | |=== 253 | -------------------------------------------------------------------------------- /docs/builtins-sql.adoc: -------------------------------------------------------------------------------- 1 | = SQL Builtins 2 | :table-caption!: 3 | 4 | == Preface 5 | This document contains the builtin functions as specified by the SQL standard, as well as a section on extended builtins which are not in the SQL spec, but are common amongst SQL implementations. 6 | 7 | === References 8 | 9 | - https://www.postgresql.org/docs/current/functions-aggregate.html 10 | - https://www.postgresql.org/docs/current/functions-string.html 11 | - https://www.postgresql.org/docs/current/functions-math.html 12 | 13 | == Standard 14 | 15 | .Aggregations 16 | [cols="1,2,3,3",frame=none] 17 | |=== 18 | |Identifier |Names |Signatures |Description 19 | 20 | |COUNT_STAR 21 | |count 22 | a| 23 | * `() -> bigint` 24 | 25 | |Returns the number of rows 26 | 27 | |COUNT 28 | |count 29 | a| 30 | * `(x: any) -> bigint` 31 | 32 | |Returns the number of rows for which x is not null 33 | 34 | |SUM 35 | |sum 36 | a| 37 | * `(x: T) -> T` 38 | 39 | T — any numeric, interval 40 | |Sum of _x_ for all non-null input values 41 | 42 | |MIN 43 | |min 44 | a| 45 | * `(x: T) -> T` 46 | 47 | T — any numeric, string, date/time 48 | |Minimum of _x_ for all non-null input values 49 | 50 | |MAX 51 | |max 52 | a| 53 | * `(x: T) -> T` 54 | 55 | T — any numeric, string, date/time 56 | |Maximum of _x_ for all non-null input values 57 | 58 | |EVERY 59 | |every 60 | a| 61 | * `(x: bool) -> bool` 62 | 63 | |Returns _true_ if all _x_ are _true_ 64 | 65 | |ANY 66 | |any 67 | a| 68 | * `(x: bool) -> bool` 69 | 70 | |?? 71 | 72 | |SOME 73 | |some 74 | a| 75 | * `(x: bool) -> bool` 76 | 77 | |?? 78 | 79 | | STDDEV_POP 80 | | stddev_pop, stddev_population 81 | a| 82 | * `(x: T) -> double` 83 | 84 | T — smallint, int, bigint, real, double precision, or numeric 85 | |Population standard deviation 86 | 87 | | STDDEV_SAMP 88 | | stddev_samp, stddev_sample, stddev 89 | a| 90 | * `(x: T) -> double` 91 | 92 | T — smallint, int, bigint, real, double precision, or numeric 93 | |Sample standard deviation 94 | 95 | |VAR_POP 96 | |var_pop, var_population 97 | a| 98 | * `(x: T) -> double` 99 | 100 | T — smallint, int, bigint, real, double precision, or numeric 101 | |Population variance 102 | 103 | |VAR_SAMP 104 | | var_samp, var_sample, variance 105 | a| 106 | * `(x: T) -> double` 107 | 108 | T — smallint, int, bigint, real, double precision, or numeric 109 | |Sample variance 110 | 111 | |COVAR_POP 112 | |covar_pop, covar_population 113 | a| 114 | * `(x: double, y: double) -> double` 115 | 116 | |Population covariance 117 | 118 | |COVAR_SAMP 119 | |covar_samp, covar_sample, covar 120 | a| 121 | * `(x: double, y: double) -> double` 122 | 123 | |Sample covariance 124 | 125 | |CORR 126 | |corr 127 | a| 128 | * `(x: double, y: double) -> double` 129 | 130 | |Correlation coefficient 131 | 132 | |=== 133 | 134 | .Comparisons 135 | All arguments must be comparable types _T_ as defined by the SQL specification subclause 4.12. 136 | [cols="1,2,3,3",frame=none] 137 | |=== 138 | |Identifier |Names |Signatures |Description 139 | 140 | |LT 141 | |< 142 | a| 143 | * `(x: T, y: T) -> boolean` 144 | 145 | |Returns _true_ if _x_ is less than _y_ 146 | 147 | |LTE 148 | |<= 149 | a| 150 | * `(x: T, y: T) -> boolean` 151 | 152 | |Returns _true_ if _x_ is less than or equal to _y_ 153 | 154 | |GT 155 | |> 156 | a| 157 | * `(x: T, y: T) -> boolean` 158 | 159 | |Returns _true_ if _x_ is greater than _y_ 160 | 161 | 162 | |GTE 163 | |>= 164 | a| 165 | * `(x: T, y: T) -> boolean` 166 | 167 | |Returns _true_ if _x_ is greater than or equal to _y_ 168 | 169 | |EQ 170 | |= 171 | a| 172 | * `(x: T, y: T) -> boolean` 173 | 174 | |Returns _true_ if _x_ is equal to _y_ 175 | 176 | |NEQ 177 | |!=, <> 178 | a| 179 | * `(x: T, y: T) -> boolean` 180 | 181 | |Returns _true_ if _x_ is not equal to _y_ 182 | |=== 183 | 184 | .Numeric 185 | [cols="1,2,3,3",frame=none] 186 | |=== 187 | |Identifier |Names |Signatures |Description 188 | 189 | |PLUS 190 | |+ 191 | a| 192 | * `(x: T) + (y: S)` 193 | |Addition of two numeric types _T_ and _S_ 194 | 195 | |MINUS 196 | |- 197 | a| 198 | * `(x: T) - (y: S)` 199 | |Subtraction of two numeric types _T_ and _S_ 200 | 201 | |MULT 202 | |* 203 | a| 204 | * `(x: T) * (y: S)` 205 | |Multiplication of two numeric types _T_ and _S_ 206 | 207 | |DIV 208 | |/ 209 | a| 210 | * `(x: T) / (y: S)` 211 | |Integer division of two numeric types _T_ and _S_ 212 | 213 | |ABS 214 | |abs 215 | a| 216 | * `(x: T) -> T` 217 | |Returns the absolute value of _x_ 218 | 219 | |MOD 220 | |mod 221 | a| 222 | * `(x: T, y: T) -> T` 223 | | Returns _x_ modulo _y_ 224 | 225 | |CEILING 226 | | ceil, ceiling 227 | a| 228 | * `(x: T) -> T` 229 | |Returns the smallest integer greater than or equal to _x_ 230 | 231 | |FLOOR 232 | |floor 233 | a| 234 | * `(x: T) -> T` 235 | |Returns the largest integer less than or equal to _x_ 236 | 237 | |SQRT 238 | |sqrt 239 | a| 240 | * `(x: T) -> T` 241 | 242 | T — double or numeric 243 | |Square root 244 | 245 | |EXP 246 | |exp 247 | a| 248 | * `(x: T) -> T` 249 | 250 | T — double or numeric 251 | |Exponential function e^x 252 | 253 | |POWER 254 | |power 255 | a| 256 | * `(x: double, y: double) -> double` 257 | |Returns _x_ raised to the power of _y_ 258 | 259 | |LN 260 | |ln 261 | a| 262 | * `(x: T) -> T` 263 | 264 | T — double or numeric 265 | |Natural log of _x_ 266 | 267 | |=== 268 | 269 | .Strings 270 | [cols="1,2,3,3",frame=none] 271 | |=== 272 | |Identifier |Names |Signatures |Description 273 | 274 | |CONCAT 275 | |\|\| 276 | a| 277 | * `(x: text, y: text) -> text` 278 | 279 | a|Concatenates _x_ and _y_ 280 | 281 | Special form: 282 | 283 | x \|\| y 284 | 285 | |LOWER 286 | |lower 287 | a| 288 | * `(x: text) -> text` 289 | |Converts _x_ to lowercase 290 | 291 | |UPPER 292 | |upper 293 | a| 294 | * `(x: text) -> text` 295 | |Converts _x_ to uppercase 296 | 297 | |BIT_LENGTH 298 | |bit_length 299 | a| 300 | * `(x: text) -> text` 301 | |Returns the number of bits in _x_ 302 | 303 | |CHAR_LENGTH 304 | |char_length, character_length 305 | a| 306 | * `(x: text) -> text` 307 | |Returns the number of characters in _x_ 308 | 309 | |OCTET_LENGTH 310 | |octet_length 311 | a| 312 | * `(x: text) -> text` 313 | |Returns the number of bytes in _x_ 314 | 315 | |SUBSTRING 316 | |substring 317 | a| 318 | * `(s: text, start: int, len: int) -> text` 319 | 320 | a|Returns the substring of _s_ starting at _start_ index for _len_ characters. If _start_ is not specified, 0 is the default. If _len_ is not specified, the substring will span to the end of _s_. 321 | 322 | Special form: 323 | 324 | `SUBSTRING(s [FROM start] [FOR len])` 325 | 326 | |SUBSTRING_PATTERN 327 | |substring 328 | a| 329 | * `(s: text, pattern: text) -> text` 330 | * `(s: text, pattern: text, esc: text) -> text` 331 | 332 | a|Extracts the first substring matching SQL regular expression 333 | 334 | Special form: 335 | 336 | `SUBSTRING(s SIMILAR pattern ESCAPE esc)` 337 | 338 | |TRIM 339 | |trim 340 | a| 341 | * `(x: text, y: text) -> text` 342 | a|Trims the characters _y_ (a space by default) from either the start, end, or both ends of _x_. 343 | 344 | Special form: 345 | 346 | `TRIM([LEADING\|TRAILING\|BOTH] [FROM] x [, y])` 347 | 348 | |POSITION 349 | |position 350 | a| 351 | * `(x: text, y: text) -> text` 352 | a|Returns first starting index of _y_ within _x_, or zero if it's not present. 353 | 354 | Special form: 355 | 356 | `POSITION(x IN y)` 357 | 358 | |OVERLAY 359 | |overlay 360 | a| 361 | * `(x: text, y: text, start: int) -> text` 362 | * `(x: text, y: text, start: int, count: int) -> text` 363 | 364 | a| Replaces the content _x_ with _y_ starting at _start_ and extending for _count_ or the length of _y_. 365 | 366 | Overlay has the special form: 367 | 368 | `OVERLAY(x PLACING y FROM start [FOR count])` 369 | 370 | |=== 371 | 372 | == Extended 373 | 374 | .Aggregations 375 | [source,sql] 376 | -- Postgres regression functions 9.58 377 | -- Trino approximate aggregations 378 | -- https://trino.io/docs/current/functions/aggregate.html#approximate-aggregate-functions 379 | 380 | .Numeric 381 | [source,sql] 382 | x % y -- MOD(x, y) 383 | x ^ y -- POWER(x,y) 384 | x & y -- bitwise AND 385 | x | y -- bitwise OR 386 | ~x -- bitwise NOT 387 | x << y -- bitwise shift left 388 | x >> y -- bitwise shift right 389 | SIGN(x) -- sign 390 | ROUND(x) -- round to nearest integer 391 | ROUND(x, d) -- round to d decimal places 392 | TRUNC(x) -- truncate toward 0 393 | TRUNC(x, d) -- truncate to d decimal places 394 | LOG(b, x) -- log x base b 395 | LOG(x) -- log x base 10 396 | GREATEST(collection) -- returns the largest in collection 397 | LEAST(collection) -- returns the smallest in collection 398 | SIN(x) -- sine 399 | COS(x) -- cosine 400 | TAN(x) -- tangent 401 | COT(x) -- cotangent 402 | ASIN(x) -- arc sine 403 | ACOS(x) -- arc cosine 404 | ATAN(x) -- arc tangent 405 | PI() -- pi constant 406 | TRUNC(x) -- truncate to integer 407 | 408 | .Strings 409 | [source,sql] 410 | ASCII(x) -- convert character x to ASCII 411 | CHR(x) -- convert ASCII x to character 412 | POSITION(x IN y) -- alias for SUBSTRING_REGEX(x IN y FROM 0) 413 | LENGTH(x) -- number of characters in string 414 | REPLACE(x, y, z) -- replace all occurrences of y in x to z 415 | REVERSE(x) -- reverse x 416 | TRIM(x) -- alias for TRIM(BOTH ' ' FROM x) 417 | -------------------------------------------------------------------------------- /docs/reserved-keywords-spec-version-2019.adoc: -------------------------------------------------------------------------------- 1 | = PartiQL Reserved Keywords 2 | 3 | The PartiQL language uses reserved keywords to parse and understand PartiQL statements. 4 | In PartiQL language grammar reserved keywords cannot be used as non-delimited identifiers. 5 | Example 1 shows queries that result in _Syntax Error_ because `FROM` is a Reserved Keyword in PartiQL: 6 | 7 | .Example 1. Invalid PartiQL Query with a Reserved Keyword 8 | [source, sql] 9 | ---- 10 | SELECT t.FROM FROM <<{'ID': 1, 'FROM': 'NA'}, {'ID': 2, 'FROM': 'SA'}>> AS t; 11 | -- Output: Syntax Error 12 | 13 | -- A reference to a Reserved Keyword is case-insensitive 14 | SELECT t.from FROM <<{'ID': 1, 'FROM': 'NA'}, {'ID': 2, 'FROM': 'SA'}>> AS t; 15 | -- Output: Syntax Error 16 | ---- 17 | 18 | In order to use reserved keywords in your PartiQL statements, use quoted identifiers as Example 2 shows: 19 | 20 | .Example 2. Using Quoted Identifier as a Reserve Keyword in a PartiQL Statement. 21 | [source, sql] 22 | ---- 23 | SELECT t."FROM" FROM <<{'ID': 1, 'FROM': 'NA'}, {'ID': 2, 'FROM': 'SA'}>> AS t; 24 | 25 | -- Output: <<{'FROM': 'NA'}, {'FROM': 'SA'}>> 26 | ---- 27 | 28 | _Note: In PartiQL, a Quoted Identifier is case-sensitive; because of this rule, no result will get returned from the query shown in Example 3 in the absence of schemas in the environment._ 29 | 30 | .Example 3. Case sensitivity of quoted identifiers. 31 | [source, sql] 32 | ---- 33 | SELECT t."FROM" FROM <<{'ID': 1, 'from': 'NA'}, {'ID': 2, 'from': 'SA'}>> AS t; 34 | -- Output: <<{}, {}>> 35 | ---- 36 | 37 | == Reserved Keywords 38 | [NOTE] 39 | ==== 40 | Reserved keywords are yet to be https://github.com/partiql/partiql-spec/issues/2[formally defined] in PartiQL Specification, therefore there may be some differences in different PartiQL implementations. 41 | ==== 42 | 43 | [cols="1,1,1,1",grid=none, frame=none] 44 | |=== 45 | 46 | |ABSOLUTE 47 | |ACTION 48 | |ADD 49 | |ALL 50 | |ALLOCATE 51 | |ALTER 52 | |AND 53 | |ANY 54 | |ARE 55 | |AS 56 | |ASC 57 | |ASSERTION 58 | |AT 59 | |AUTHORIZATION 60 | |AVG 61 | |BEGIN 62 | |BETWEEN 63 | |BIT 64 | |BIT_LENGTH 65 | |BY 66 | |CAN_CAST 67 | |CAN_LOSSLESS_CAST 68 | |CASCADE 69 | |CASCADED 70 | |CASE 71 | |CAST 72 | |CATALOG 73 | |CHAR 74 | |CHARACTER 75 | |CHARACTER_LENGTH 76 | |CHAR_LENGTH 77 | |CHECK 78 | |CLOSE 79 | |COALESCE 80 | |COLLATE 81 | |COLLATION 82 | |COLUMN 83 | |COMMIT 84 | |CONFLICT 85 | |CONNECT 86 | |CONNECTION 87 | |CONSTRAINT 88 | |CONSTRAINTS 89 | |CONTINUE 90 | |CONVERT 91 | |CORRESPONDING 92 | |COUNT 93 | |CREATE 94 | |CROSS 95 | |CURRENT 96 | |CURRENT_DATE 97 | |CURRENT_TIME 98 | |CURRENT_TIMESTAMP 99 | |CURRENT_USER 100 | |CURSOR 101 | |DATE 102 | |DATE_ADD 103 | |DATE_DIFF 104 | |DEALLOCATE 105 | |DEC 106 | |DECIMAL 107 | |DECLARE 108 | |DEFAULT 109 | |DEFERRABLE 110 | |DEFERRED 111 | |DELETE 112 | |DESC 113 | |DESCRIBE 114 | |DESCRIPTOR 115 | |DIAGNOSTICS 116 | |DISCONNECT 117 | |DISTINCT 118 | |DO 119 | |DOMAIN 120 | |DOUBLE 121 | |DROP 122 | |ELSE 123 | |END 124 | |END-EXEC 125 | |END_EXEC 126 | |ESCAPE 127 | |EXCEPT 128 | |EXCEPTION 129 | |EXCLUDED 130 | |EXEC 131 | |EXECUTE 132 | |EXISTS 133 | |EXPLAIN 134 | |EXTERNAL 135 | |EXTRACT 136 | |FALSE 137 | |FETCH 138 | |FIRST 139 | |FLOAT 140 | |FOR 141 | |FOREIGN 142 | |FOUND 143 | |FROM 144 | |FULL 145 | |GET 146 | |GLOBAL 147 | |GO 148 | |GOTO 149 | |GRANT 150 | |GROUP 151 | |HAVING 152 | |IDENTITY 153 | |IMMEDIATE 154 | |IN 155 | |INDEX 156 | |INDICATOR 157 | |INITIALLY 158 | |INNER 159 | |INPUT 160 | |INSENSITIVE 161 | |INSERT 162 | |INT 163 | |INTEGER 164 | |INTERSECT 165 | |INTERVAL 166 | |INTO 167 | |IS 168 | |ISOLATION 169 | |JOIN 170 | |KEY 171 | |LAG 172 | |LANGUAGE 173 | |LAST 174 | |LATERAL 175 | |LEAD 176 | |LEFT 177 | |LET 178 | |LEVEL 179 | |LIKE 180 | |LIMIT 181 | |LOCAL 182 | |LOWER 183 | |MATCH 184 | |MAX 185 | |MIN 186 | |MISSING 187 | |MODIFIED 188 | |MODULE 189 | |NAMES 190 | |NATIONAL 191 | |NATURAL 192 | |NCHAR 193 | |NEW 194 | |NEXT 195 | |NO 196 | |NOT 197 | |NOTHING 198 | |NULL 199 | |NULLIF 200 | |NULLS 201 | |NUMERIC 202 | |OCTET_LENGTH 203 | |OF 204 | |OFFSET 205 | |OLD 206 | |ON 207 | |ONLY 208 | |OPEN 209 | |OPTION 210 | |OR 211 | |ORDER 212 | |OUTER 213 | |OUTPUT 214 | |OVER 215 | |OVERLAPS 216 | |OVERLAY 217 | |PAD 218 | |PARTIAL 219 | |PARTITION 220 | |PIVOT 221 | |PLACING 222 | |POSITION 223 | |PRECISION 224 | |PREPARE 225 | |PRESERVE 226 | |PRIMARY 227 | |PRIOR 228 | |PRIVILEGES 229 | |PROCEDURE 230 | |PUBLIC 231 | |READ 232 | |REAL 233 | |REFERENCES 234 | |RELATIVE 235 | |REMOVE 236 | |REPLACE 237 | |RESTRICT 238 | |RETURNING 239 | |REVOKE 240 | |RIGHT 241 | |ROLLBACK 242 | |ROWS 243 | |SCHEMA 244 | |SCROLL 245 | |SECTION 246 | |SELECT 247 | |SESSION 248 | |SESSION_USER 249 | |SET 250 | |SHORTEST 251 | |SIZE 252 | |SMALLINT 253 | |SOME 254 | |SPACE 255 | |SQL 256 | |SQLCODE 257 | |SQLERROR 258 | |SQLSTATE 259 | |SUBSTRING 260 | |SUM 261 | |SYSTEM_USER 262 | |TABLE 263 | |TEMPORARY 264 | |THEN 265 | |TIME 266 | |TIMESTAMP 267 | |TO 268 | |TRANSACTION 269 | |TRANSLATE 270 | |TRANSLATION 271 | |TRIM 272 | |TRUE 273 | |UNION 274 | |UNIQUE 275 | |UNKNOWN 276 | |UNPIVOT 277 | |UPDATE 278 | |UPPER 279 | |UPSERT 280 | |USAGE 281 | |USER 282 | |USING 283 | |VALUE 284 | |VALUES 285 | |VARCHAR 286 | |VARYING 287 | |VIEW 288 | |WHEN 289 | |WHENEVER 290 | |WHERE 291 | |WITH 292 | |WORK 293 | |WRITE 294 | |ZONE 295 | -------------------------------------------------------------------------------- /drafts/README.md: -------------------------------------------------------------------------------- 1 | ### `/drafts` 2 | 3 | This subdirectory contains working versions of documents in various stages of development. While these documents are probably useful, be aware the information might be outdated or wrong. 4 | 5 | --------------------------------------------------------------------------------