├── .gitignore ├── LICENSE ├── README.md ├── bnf.py ├── dbs ├── __init__.py ├── postgresql │ ├── __init__.py │ ├── v9_2 │ │ ├── Dockerfile │ │ ├── __init__.py │ │ ├── config.yml │ │ └── result │ │ │ └── 2016.json │ └── v9_6 │ │ ├── Dockerfile │ │ ├── __init__.py │ │ ├── config.yml │ │ └── result │ │ └── 2016.json └── sqlite3 │ ├── __init__.py │ └── v3_17 │ ├── Dockerfile │ ├── __init__.py │ ├── config.yml │ └── result │ └── 2016.json ├── dynamic-report.html ├── generate_tests.py ├── index.html ├── report.html ├── run.sh └── standards └── 2016 ├── E ├── E011-01.tests.yml ├── E011-01.yml ├── E011-02.tests.yml ├── E011-02.yml ├── E011-03.tests.yml ├── E011-03.yml ├── E011-04.tests.yml ├── E011-04.yml ├── E011-05.tests.yml ├── E011-05.yml ├── E011-06.tests.yml ├── E011-06.yml ├── E021-01.tests.yml ├── E021-01.yml ├── E021-02.tests.yml ├── E021-02.yml ├── E021-03.tests.yml ├── E021-03.yml ├── E021-04.tests.yml ├── E021-04.yml ├── E021-05.tests.yml ├── E021-05.yml ├── E021-06.tests.yml ├── E021-06.yml ├── E021-07.tests.yml ├── E021-07.yml ├── E021-08.tests.yml ├── E021-08.yml ├── E021-09.tests.yml ├── E021-09.yml ├── E021-10.tests.yml ├── E021-10.yml ├── E021-11.tests.yml ├── E021-11.yml ├── E021-12.tests.yml ├── E021-12.yml ├── E031-01.tests.yml ├── E031-01.yml ├── E031-02.tests.yml ├── E031-02.yml ├── E031-03.tests.yml ├── E031-03.yml ├── E051-01.tests.yml ├── E051-01.yml ├── E051-02.tests.yml ├── E051-02.yml ├── E051-04.tests.yml ├── E051-04.yml ├── E051-05.tests.yml ├── E051-05.yml ├── E051-06.tests.yml ├── E051-06.yml ├── E051-07.tests.yml ├── E051-07.yml ├── E051-08.tests.yml ├── E051-08.yml ├── E051-09.tests.yml ├── E051-09.yml ├── E051.tests.yml ├── E051.yml ├── E061-01.tests.yml ├── E061-01.yml ├── E061-02.tests.yml ├── E061-02.yml ├── E061-03.tests.yml ├── E061-03.yml ├── E061-04.tests.yml ├── E061-04.yml ├── E061-05.tests.yml ├── E061-05.yml ├── E061-06.tests.yml ├── E061-06.yml ├── E061-07.tests.yml ├── E061-07.yml ├── E061-08.tests.yml ├── E061-08.yml ├── E061-09.tests.yml ├── E061-09.yml ├── E061-11.tests.yml ├── E061-11.yml ├── E061-12.tests.yml ├── E061-12.yml ├── E061-13.tests.yml ├── E061-13.yml ├── E061-14.tests.yml ├── E061-14.yml ├── E071-01.tests.yml ├── E071-01.yml ├── E071-02.tests.yml ├── E071-02.yml ├── E071-03.tests.yml ├── E071-03.yml ├── E071-05.tests.yml ├── E071-05.yml ├── E071-06.tests.yml ├── E071-06.yml ├── E081-01.tests.yml ├── E081-01.yml ├── E081-02.tests.yml ├── E081-02.yml ├── E081-03.tests.yml ├── E081-03.yml ├── E081-04.tests.yml ├── E081-04.yml ├── E081-05.tests.yml ├── E081-05.yml ├── E081-06.tests.yml ├── E081-06.yml ├── E081-07.tests.yml ├── E081-07.yml ├── E081-08.tests.yml ├── E081-08.yml ├── E081-09.tests.yml ├── E081-09.yml ├── E081-10.tests.yml ├── E081-10.yml ├── E091-01.tests.yml ├── E091-01.yml ├── E091-02.tests.yml ├── E091-02.yml ├── E091-03.tests.yml ├── E091-03.yml ├── E091-04.tests.yml ├── E091-04.yml ├── E091-05.tests.yml ├── E091-05.yml ├── E091-06.tests.yml ├── E091-06.yml ├── E091-07.tests.yml ├── E091-07.yml ├── E101-01.tests.yml ├── E101-01.yml ├── E101-03.tests.yml ├── E101-03.yml ├── E101-04.tests.yml ├── E101-04.yml ├── E111.tests.yml ├── E111.yml ├── E121-01.tests.yml ├── E121-01.yml ├── E121-02.tests.yml ├── E121-02.yml ├── E121-03.tests.yml ├── E121-03.yml ├── E121-04.tests.yml ├── E121-04.yml ├── E121-06.tests.yml ├── E121-06.yml ├── E121-07.tests.yml ├── E121-07.yml ├── E121-08.tests.yml ├── E121-08.yml ├── E121-10.tests.yml ├── E121-10.yml ├── E121-17.tests.yml ├── E121-17.yml ├── E131.tests.yml ├── E131.yml ├── E141-01.tests.yml ├── E141-01.yml ├── E141-02.tests.yml ├── E141-02.yml ├── E141-03.tests.yml ├── E141-03.yml ├── E141-04.tests.yml ├── E141-04.yml ├── E141-06.tests.yml ├── E141-06.yml ├── E141-07.tests.yml ├── E141-07.yml ├── E141-08.tests.yml ├── E141-08.yml ├── E141-10.tests.yml ├── E141-10.yml ├── E151-01.tests.yml ├── E151-01.yml ├── E151-02.tests.yml ├── E151-02.yml ├── E152-01.tests.yml ├── E152-01.yml ├── E152-02.tests.yml ├── E152-02.yml ├── E153.tests.yml ├── E153.yml ├── E161.tests.yml └── E161.yml ├── F ├── F031-01.tests.yml ├── F031-01.yml ├── F031-02.tests.yml ├── F031-02.yml ├── F031-03.tests.yml ├── F031-03.yml ├── F031-04.tests.yml ├── F031-04.yml ├── F031-13.tests.yml ├── F031-13.yml ├── F031-16.tests.yml ├── F031-16.yml ├── F031-19.tests.yml ├── F031-19.yml ├── F041-01.tests.yml ├── F041-01.yml ├── F041-02.tests.yml ├── F041-02.yml ├── F041-03.tests.yml ├── F041-03.yml ├── F041-04.tests.yml ├── F041-04.yml ├── F041-05.tests.yml ├── F041-05.yml ├── F041-07.tests.yml ├── F041-07.yml ├── F041-08.tests.yml ├── F041-08.yml ├── F051-01.tests.yml ├── F051-01.yml ├── F051-02.tests.yml ├── F051-02.yml ├── F051-03.tests.yml ├── F051-03.yml ├── F051-04.tests.yml ├── F051-04.yml ├── F051-05.tests.yml ├── F051-05.yml ├── F051-06.tests.yml ├── F051-06.yml ├── F051-07.tests.yml ├── F051-07.yml ├── F051-08.tests.yml ├── F051-08.yml ├── F081.tests.yml ├── F081.yml ├── F131-01.tests.yml ├── F131-01.yml ├── F131-02.tests.yml ├── F131-02.yml ├── F131-03.tests.yml ├── F131-03.yml ├── F131-04.tests.yml ├── F131-04.yml ├── F221.tests.yml ├── F221.yml ├── F261-01.tests.yml ├── F261-01.yml ├── F261-02.tests.yml ├── F261-02.yml ├── F261-03.tests.yml ├── F261-03.yml ├── F261-04.tests.yml ├── F261-04.yml ├── F311-01.tests.yml ├── F311-01.yml ├── F311-02.tests.yml ├── F311-02.yml ├── F311-03.tests.yml ├── F311-03.yml ├── F311-04.tests.yml ├── F311-04.yml ├── F311-05.tests.yml ├── F311-05.yml ├── F471.tests.yml ├── F471.yml ├── F481.tests.yml └── F481.yml ├── S ├── S011.tests.yml └── S011.yml ├── T ├── T321.tests.yml ├── T321.yml ├── T631.tests.yml └── T631.yml ├── bnf.txt └── features.yml /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | *.pyc 3 | /.idea 4 | /test.db 5 | /dbs/features.json 6 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2023 Elliot Chance 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | The goal of this project is to develop a comprehensive suite of SQL tests, based 2 | on the each of the SQL standards to be able to test to conformance of individual 3 | SQL databases and engines. 4 | 5 | [**View the results here**](https://elliotchance.github.io/sqltest/) 6 | 7 | The [latest SQL standard](https://www.iso.org/standard/63556.html) is **not 8 | free** and the licence does not allow all or parts of it to be published. Older 9 | versions are either out of licence, or they don't mind, here is the 10 | [SQL-92 standard](https://www.contrib.andrew.cmu.edu/~shadow/sql/sql1992.txt). 11 | 12 | 13 | How It Works 14 | ============ 15 | 16 | There's a lot to explain, so here is a quick overview: 17 | 18 | 1. Extract all of the BNF from the SQL standard PDF document. 19 | 2. We use this syntax defintion with `bnf.py` to produce comprehensive tests. 20 | 3. Each of the standards features are made up of one or more of these templates 21 | that produce many SQL tests, *automagically*. 22 | 4. The tests are run against a database and a pretty HTML report is produced. 23 | 24 | In a nutshell, let's look at the feature [E011-02](https://github.com/elliotchance/sqltest/blob/master/standards/2016/E/E011-02.yml). When reading 25 | the top secret SQL standard document we come up with 3 base tests: 26 | 27 | ```yml 28 | sql: CREATE TABLE TN ( A ) 29 | override: 30 | precision: 2 31 | --- 32 | sql: SELECT 7.8 33 | --- 34 | sql: SELECT { | } 35 | override: 36 | digit: 2 37 | ``` 38 | 39 | When running the suite these automatically expand into 40 | [70 individual tests](https://github.com/elliotchance/sqltest/blob/master/standards/2016/E/E011-02.tests.yml) 41 | that are executed against the actual database to produce the final report. 42 | 43 | 44 | Progress 45 | ======== 46 | 47 | Almost all of the mandatory features of the 2016 SQL standard have had tests 48 | written for it, but there is a lot more work to be done. 49 | 50 | 51 | In More Detail 52 | ============== 53 | 54 | The SQL 2016, Part 2 is a 1,732 page PDF document. The document contains many 55 | individual definitions of syntax described in 56 | [Backus–Naur form (BNF)](https://en.wikipedia.org/wiki/Backus–Naur_form). All of 57 | these BNF rules are extracted from the PDF into a single file called 58 | [bnf.txt](https://github.com/elliotchance/sqltest/blob/master/standards/2016/bnf.txt). 59 | 60 | We can use the BNF syntax *backwards* to generate combinations of valid SQL. A 61 | custom tool - 62 | [bnf.py](https://github.com/elliotchance/sqltest/blob/master/bnf.py) has been 63 | developed for this reason. It contains a few cool features but its main job is 64 | to output SQL from the BNF file. 65 | 66 | For example: 67 | 68 | ```bash 69 | python bnf.py standards/2016/bnf.txt --paths 'A { B | 5 }' 70 | ``` 71 | 72 | Produces: 73 | 74 | ``` 75 | A < 5 76 | A < B 77 | A <= 5 78 | A <= B 79 | A <> 5 80 | A <> B 81 | A = 5 82 | A = B 83 | A > 5 84 | A > B 85 | A >= 5 86 | A >= B 87 | ``` 88 | 89 | This becomes especially useful when there is complex nesting of rules, we can 90 | see the rule defintions for `` and 91 | `` by using the command: 92 | 93 | ```bash 94 | python bnf.py standards/2016/bnf.txt --rule 'signed numeric literal' 'unsigned numeric literal' --subrules 95 | ``` 96 | 97 | Which produces: 98 | 99 | ```bnf 100 | ::= 101 | E 102 | 103 | ::= 104 | 0 105 | | 1 106 | | 2 107 | | 3 108 | | 4 109 | | 5 110 | | 6 111 | | 7 112 | | 8 113 | | 9 114 | 115 | ::= 116 | [ [ ] ] 117 | | 118 | 119 | ::= 120 | 121 | 122 | ::= 123 | 124 | 125 | ::= 126 | - 127 | 128 | ::= 129 | . 130 | 131 | ::= 132 | + 133 | 134 | ::= 135 | 136 | | 137 | 138 | ::= 139 | [ ] 140 | 141 | ::= 142 | [ ] 143 | 144 | ::= 145 | ... 146 | 147 | ::= 148 | 149 | | 150 | 151 | ::= 152 | E 153 | 154 | ::= 155 | 0 156 | | 1 157 | | 2 158 | | 3 159 | | 4 160 | | 5 161 | | 6 162 | | 7 163 | | 8 164 | | 9 165 | 166 | ::= 167 | [ [ ] ] 168 | | 169 | 170 | ::= 171 | 172 | 173 | ::= 174 | 175 | 176 | ::= 177 | - 178 | 179 | ::= 180 | . 181 | 182 | ::= 183 | + 184 | 185 | ::= 186 | 187 | | 188 | 189 | ::= 190 | [ ] 191 | 192 | ::= 193 | ... 194 | 195 | ::= 196 | 197 | | 198 | ``` 199 | 200 | Trying to generate a comprehansive set of tests from these rules manually would 201 | be very difficult (and this is a very simple example). It's easy with `bnf.py`: 202 | 203 | ```bash 204 | python bnf.py standards/2016/bnf.txt --paths 'SELECT { | }' --override 'digit=2' 205 | ``` 206 | 207 | Produces: 208 | 209 | ``` 210 | SELECT +.2 211 | SELECT +.2E+2 212 | SELECT +.2E-2 213 | SELECT +.2E2 214 | SELECT +2 215 | SELECT +2. 216 | SELECT +2.2 217 | SELECT +2.2E+2 218 | SELECT +2.2E-2 219 | SELECT +2.2E2 220 | SELECT +2.E+2 221 | SELECT +2.E-2 222 | SELECT +2.E2 223 | SELECT +2E+2 224 | SELECT +2E-2 225 | SELECT +2E2 226 | SELECT -.2 227 | SELECT -.2E+2 228 | SELECT -.2E-2 229 | SELECT -.2E2 230 | SELECT -2 231 | SELECT -2. 232 | SELECT -2.2 233 | SELECT -2.2E+2 234 | SELECT -2.2E-2 235 | SELECT -2.2E2 236 | SELECT -2.E+2 237 | SELECT -2.E-2 238 | SELECT -2.E2 239 | SELECT -2E+2 240 | SELECT -2E-2 241 | SELECT -2E2 242 | SELECT .2 243 | SELECT .2 244 | SELECT .2E+2 245 | SELECT .2E+2 246 | SELECT .2E-2 247 | SELECT .2E-2 248 | SELECT .2E2 249 | SELECT .2E2 250 | SELECT 2 251 | SELECT 2 252 | SELECT 2. 253 | SELECT 2. 254 | SELECT 2.2 255 | SELECT 2.2 256 | SELECT 2.2E+2 257 | SELECT 2.2E+2 258 | SELECT 2.2E-2 259 | SELECT 2.2E-2 260 | SELECT 2.2E2 261 | SELECT 2.2E2 262 | SELECT 2.E+2 263 | SELECT 2.E+2 264 | SELECT 2.E-2 265 | SELECT 2.E-2 266 | SELECT 2.E2 267 | SELECT 2.E2 268 | SELECT 2E+2 269 | SELECT 2E+2 270 | SELECT 2E-2 271 | SELECT 2E-2 272 | SELECT 2E2 273 | SELECT 2E2 274 | ``` 275 | 276 | The `override` is important, it allows a rule (in this case ``) to have a 277 | fixed value. Without this option we would generate *many* more cases as it would 278 | do a combination of every number. Which is not important for our testing. 279 | 280 | `override` also becomes critical for rules that are recurrsive to prevent it 281 | from trying to produce an infinite amount of results. 282 | -------------------------------------------------------------------------------- /dbs/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elliotchance/sqltest/1951ddffaef7943c4efd68926a1e7b90b746eca9/dbs/__init__.py -------------------------------------------------------------------------------- /dbs/postgresql/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elliotchance/sqltest/1951ddffaef7943c4efd68926a1e7b90b746eca9/dbs/postgresql/__init__.py -------------------------------------------------------------------------------- /dbs/postgresql/v9_2/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM postgres:9.2 2 | 3 | RUN apt-get update 4 | RUN apt-get install -y python-psycopg2 python-pip libyaml-dev libpython2.7-dev 5 | RUN pip install pyyaml 6 | -------------------------------------------------------------------------------- /dbs/postgresql/v9_2/__init__.py: -------------------------------------------------------------------------------- 1 | import psycopg2 2 | 3 | def run_test(test): 4 | error = None 5 | try: 6 | conn = psycopg2.connect("host='localhost' dbname='postgres' user='postgres' password=''") 7 | 8 | c = conn.cursor() 9 | for sql in test['sql']: 10 | c.execute(sql) 11 | 12 | conn.close() 13 | except psycopg2.Error as e: 14 | error = e 15 | 16 | return error 17 | -------------------------------------------------------------------------------- /dbs/postgresql/v9_2/config.yml: -------------------------------------------------------------------------------- 1 | db: 2 | name: PostgreSQL 3 | version: 9.2 4 | -------------------------------------------------------------------------------- /dbs/postgresql/v9_6/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM postgres:9.6 2 | 3 | RUN apt-get update 4 | RUN apt-get install -y python-psycopg2 python-pip libyaml-dev libpython2.7-dev 5 | RUN pip install pyyaml 6 | -------------------------------------------------------------------------------- /dbs/postgresql/v9_6/__init__.py: -------------------------------------------------------------------------------- 1 | import psycopg2 2 | 3 | def run_test(test): 4 | error = None 5 | try: 6 | conn = psycopg2.connect("host='localhost' dbname='postgres' user='postgres' password=''") 7 | 8 | c = conn.cursor() 9 | for sql in test['sql']: 10 | c.execute(sql) 11 | 12 | conn.close() 13 | except psycopg2.Error as e: 14 | error = e 15 | 16 | return error 17 | -------------------------------------------------------------------------------- /dbs/postgresql/v9_6/config.yml: -------------------------------------------------------------------------------- 1 | db: 2 | name: PostgreSQL 3 | version: 9.6 4 | -------------------------------------------------------------------------------- /dbs/sqlite3/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elliotchance/sqltest/1951ddffaef7943c4efd68926a1e7b90b746eca9/dbs/sqlite3/__init__.py -------------------------------------------------------------------------------- /dbs/sqlite3/v3_17/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM ubuntu:14.04 2 | 3 | RUN apt-get update 4 | RUN apt-get install -y wget unzip lib32z1 python python-pip 5 | RUN pip install pyyaml 6 | 7 | RUN wget https://www.sqlite.org/2017/sqlite-tools-linux-x86-3170000.zip 8 | RUN unzip sqlite-tools-linux-x86-3170000.zip 9 | 10 | # This just keeps the container running since SQLite3 isn't a service. 11 | CMD tail -F -n0 /etc/hosts 12 | -------------------------------------------------------------------------------- /dbs/sqlite3/v3_17/__init__.py: -------------------------------------------------------------------------------- 1 | import sqlite3 2 | 3 | def run_test(test): 4 | error = None 5 | try: 6 | conn = sqlite3.connect(':memory:') 7 | conn.isolation_level = None 8 | 9 | c = conn.cursor() 10 | for sql in test['sql']: 11 | c.execute(sql) 12 | 13 | # conn.commit() 14 | conn.close() 15 | except sqlite3.OperationalError as e: 16 | error = e 17 | 18 | return error 19 | -------------------------------------------------------------------------------- /dbs/sqlite3/v3_17/config.yml: -------------------------------------------------------------------------------- 1 | db: 2 | name: SQLite3 3 | version: 3.16 4 | 5 | keywords: 6 | START: BEGIN 7 | -------------------------------------------------------------------------------- /dynamic-report.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | SQL Conformance 4 | 9 | 14 | 15 | 16 | 17 | 18 |

Summary

19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 |
Database NameSQLite3
Database Version3.8.7.1
Mandatory Features0 of 164 (0%)
Optional Features0 of 364 (0%)
All Tests373 of 515 (72%)
42 | 43 | 44 |

Mandatory Features (164)

45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 |
Feature IDTestsDescription
E011100% (128/128)Numeric data types
E011-01100% (7/7)INTEGER and SMALLINT data types (including all spellings)
66 | 67 | 68 | -------------------------------------------------------------------------------- /generate_tests.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | 3 | import glob 4 | import yaml 5 | import os.path 6 | import time 7 | import bnf 8 | import sys 9 | import sqlite3 10 | import cgi 11 | import pprint 12 | import json 13 | 14 | if len(sys.argv) < 2: 15 | print("Usage: %s dbs.postgresql.v9_2" % sys.argv[0]) 16 | sys.exit(1) 17 | 18 | run_test = __import__(sys.argv[1], globals(), locals(), ['run_test']).run_test 19 | 20 | def load_db_config(name): 21 | features_file = open("%s/config.yml" % name.replace('.', '/'), "r") 22 | return yaml.load(features_file) 23 | 24 | def get_all_features(standard): 25 | features_file = open("standards/%s/features.yml" % standard, "r") 26 | all_features = yaml.load(features_file) 27 | 28 | for group in ('mandatory', 'optional'): 29 | for feature_id in all_features[group]: 30 | all_features[group][feature_id] = { 31 | 'description': all_features[group][feature_id] 32 | } 33 | 34 | return all_features 35 | 36 | def feature_id_from_file_path(file_path): 37 | return file_path.split('/')[-1][:-4] 38 | 39 | def output_file(feature_file_path): 40 | return feature_file_path[:-4] + ".tests.yml" 41 | 42 | def all_features_with_tests(standard): 43 | all_files = glob.glob("standards/%s/*/*.yml" % standard) 44 | feature_files = [] 45 | for feature_file_path in sorted(all_files): 46 | basename = os.path.basename(feature_file_path) 47 | if basename[0].upper() != basename[0] or '.tests.yml' in basename: 48 | continue 49 | 50 | feature_files.append(feature_file_path) 51 | 52 | return feature_files 53 | 54 | def get_rules(standard): 55 | raw_rules = bnf.parse_bnf_file('standards/%s/bnf.txt' % standard) 56 | return bnf.analyze_rules(raw_rules) 57 | 58 | def generate_tests(feature_file_path, db_config): 59 | feature_file = open(feature_file_path, "r") 60 | tests = yaml.load_all(feature_file) 61 | basename = os.path.basename(feature_file_path) 62 | result_tests = [] 63 | test_number = 0 64 | 65 | for test in tests: 66 | test_number += 1 67 | 68 | override = {} 69 | if 'override' in test: 70 | override = test['override'] 71 | for name in override: 72 | if override[name] is None: 73 | override[name] = '' 74 | override[name] = bnf.ASTKeyword(str(override[name])) 75 | 76 | exclude = [] 77 | if 'exclude' in test: 78 | exclude = test['exclude'] 79 | 80 | if isinstance(test['sql'], list): 81 | test['sql'] = ';'.join(test['sql']) 82 | 83 | sqls = bnf.get_paths_for_rule(rules, test['sql'], override, exclude) 84 | 85 | for rule_number in xrange(0, len(sqls)): 86 | test_id = '%s_%02d_%02d' % ( 87 | basename.split('.')[0].replace('-', '_').lower(), 88 | test_number, rule_number + 1 89 | ) 90 | 91 | sqls[rule_number] = sqls[rule_number].replace('TN', 'TABLE_%s' % test_id.upper()) 92 | sqls[rule_number] = sqls[rule_number].replace('ROLE1', 'ROLE_%s' % test_id.upper()) 93 | sqls[rule_number] = sqls[rule_number].replace('CURSOR1', 'CUR_%s' % test_id.upper()) 94 | sqls[rule_number] = sqls[rule_number].replace('CONSTRAINT1', 'CONST_%s' % test_id.upper()) 95 | sqls[rule_number] = sqls[rule_number].replace('VIEW1', 'VIEW_%s' % test_id.upper()) 96 | 97 | split_sql = sqls[rule_number].split(' ; ') 98 | if len(split_sql) == 1: 99 | split_sql = split_sql[0] 100 | 101 | result_tests.append({ 102 | 'id': test_id, 103 | 'feature': basename[:-4], 104 | 'sql': split_sql 105 | }) 106 | 107 | with open(output_file(feature_file_path), "w") as f: 108 | f.write(yaml.dump_all(result_tests, default_flow_style=False)) 109 | 110 | # FIX ME 111 | db_config = load_db_config(sys.argv[1]) 112 | standard = '2016' 113 | rules = get_rules(standard) 114 | feature_file_paths = all_features_with_tests(standard) 115 | test_files = {} 116 | 117 | for feature_file_path in feature_file_paths: 118 | feature_id = feature_id_from_file_path(feature_file_path) 119 | generated_file_path = output_file(feature_file_path) 120 | test_files[feature_id] = { 121 | 'path': generated_file_path 122 | } 123 | 124 | #if os.path.isfile(generated_file_path): 125 | # continue 126 | 127 | print("Generating tests for %s" % feature_id) 128 | generate_tests(feature_file_path, db_config) 129 | 130 | def fix_keywords(sql): 131 | if 'keywords' not in db_config: 132 | return sql 133 | 134 | for keyword in db_config['keywords']: 135 | sql = sql.replace(keyword, db_config['keywords'][keyword]) 136 | 137 | return sql 138 | 139 | # Run the tests 140 | for feature_id in sorted(test_files): 141 | file_path = test_files[feature_id]['path'] 142 | test_file = open(file_path, "r") 143 | tests = list(yaml.load_all(test_file)) 144 | 145 | test_files[feature_id]['pass'] = 0 146 | test_files[feature_id]['fail'] = 0 147 | 148 | print('%s: %s tests' % (feature_id, len(tests))) 149 | 150 | for test in tests: 151 | did_pass = True 152 | 153 | if not isinstance(test['sql'], list): 154 | test['sql'] = [ test['sql'] ] 155 | 156 | # Fix keywords 157 | test['sql'] = map(fix_keywords, test['sql']) 158 | 159 | error = run_test(test) 160 | did_pass = error is None 161 | 162 | if did_pass: 163 | test_files[feature_id]['pass'] += 1 164 | print('\33[32m ✓ %s\33[0m\n' % '\n '.join(test['sql'])) 165 | else: 166 | test_files[feature_id]['fail'] += 1 167 | print('\33[31m ✗ %s\n ERROR: %s\33[0m\n' % ('\n '.join(test['sql']), error)) 168 | 169 | # Merge the rules with the original features 170 | all_features = get_all_features(standard) 171 | for feature_id in test_files: 172 | all_features['mandatory'][feature_id].update(test_files[feature_id]) 173 | 174 | # Generate YAML report 175 | 176 | feats = { 177 | 'mandatory': {}, 178 | 'optional': {} 179 | } 180 | 181 | total_tests = 0 182 | total_passed = 0 183 | 184 | for category in ('mandatory', 'optional'): 185 | for feature_id in sorted(all_features[category]): 186 | f = all_features[category][feature_id] 187 | 188 | if 'pass' in all_features[category][feature_id]: 189 | f['pass'] = all_features[category][feature_id]['pass'] 190 | f['fail'] = all_features[category][feature_id]['fail'] 191 | else: 192 | f['pass'] = 0 193 | f['fail'] = 0 194 | 195 | if '-' not in feature_id and ('%s-01' % feature_id) in all_features[category]: 196 | for fid in sorted(all_features[category]): 197 | if fid.startswith('%s-' % feature_id) and \ 198 | 'pass' in all_features[category][fid]: 199 | f['pass'] += all_features[category][fid]['pass'] 200 | f['fail'] += all_features[category][fid]['fail'] 201 | 202 | percent = ' ' 203 | color = 'grey' 204 | if 'pass' in f and (f['pass'] + f['fail']) > 0: 205 | if f['pass'] == 0: 206 | pass_rate = 0 207 | else: 208 | pass_rate = float(f['pass']) / (float(f['pass']) + float(f['fail'])) 209 | 210 | percent = '%01.0d%% (%d/%d)' % (pass_rate * 100, f['pass'], 211 | int(f['pass']) + int(f['fail'])) 212 | 213 | if '-' not in feature_id: 214 | total_tests += f['pass'] + f['fail'] 215 | total_passed += f['pass'] 216 | 217 | feats[category][feature_id] = { 218 | 'description': cgi.escape(all_features[category][feature_id]['description']), 219 | "pass": int(f['pass']), 220 | "total": int(f['pass']) + int(f['fail']), 221 | } 222 | 223 | # YAML is a much better format, but we use JSON so it can be easily ingested in 224 | # JavaScript for HTML reports. 225 | path = "%s/result/%s.json" % (sys.argv[1].replace('.', '/'), standard) 226 | with open(path, "w") as report_file: 227 | db = { 228 | 'dbname': db_config['db']['name'], 229 | 'dbversion': str(db_config['db']['version']), 230 | 'path': path 231 | } 232 | report_file.write('loadResults(') 233 | report_file.write(json.dumps({'info': db, 'features': feats}, sort_keys=True, indent=2, separators=(',', ': '))) 234 | report_file.write(')') 235 | -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | SQL Conformance 4 | 9 | 10 | 87 | 88 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 99 | 100 | 101 | 102 | 103 | 104 | 105 |
Database NameVersionFeaturesAll Tests
106 | 107 | 108 | -------------------------------------------------------------------------------- /report.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | SQL Conformance 4 | 13 | 16 | 148 | 149 | 150 | 151 |

Summary

152 | 153 | 155 | 156 | 157 | 158 | 159 | 160 | 161 | 162 | 163 | 164 | 165 | 166 | 167 | 168 | 169 | 170 | 171 | 172 | 173 | 174 | 175 |
Database Name 
Database Version 
Mandatory Features 
Optional Features 
All Tests 
176 | 177 | 178 |

Mandatory Features (164)

179 | 180 | 182 | 183 | 184 | 185 | 186 | 187 | 188 |
Feature IDTestsDescription
189 | 190 |

Optional Features (364)

191 | 192 | 194 | 195 | 196 | 197 | 198 | 199 | 200 |
Feature IDTestsDescription
201 | 202 | 203 | -------------------------------------------------------------------------------- /run.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -e 4 | 5 | DOCKER_TAG=sqltest:$1 6 | 7 | # Rebuild the docker image. We need to copy the runner to the base folder so it 8 | # can be loaded into the image. 9 | docker build -t $DOCKER_TAG ${1//.//} 10 | 11 | # Remove any exiting container 12 | if [[ $(docker ps -aqf "name=$1") ]]; then 13 | docker rm -f $(docker ps -aqf "name=$1") 14 | fi 15 | 16 | # Run the container with the default command. 17 | docker run -d --name $1 -v "`pwd`:/tmp/sql" $DOCKER_TAG 18 | 19 | # We have to give the container a bit of time to start up. There should be a 20 | # better solution here. 21 | sleep 3 22 | 23 | # Execute the tests 24 | docker exec $(docker ps -aqf "name=$1") \ 25 | /bin/sh -c "cd /tmp/sql && python generate_tests.py $1" 26 | -------------------------------------------------------------------------------- /standards/2016/E/E011-01.tests.yml: -------------------------------------------------------------------------------- 1 | feature: E011-01 2 | id: e011_01_01_01 3 | sql: CREATE TABLE TABLE_E011_01_01_01 ( A BIGINT ) 4 | --- 5 | feature: E011-01 6 | id: e011_01_01_02 7 | sql: CREATE TABLE TABLE_E011_01_01_02 ( A INT ) 8 | --- 9 | feature: E011-01 10 | id: e011_01_01_03 11 | sql: CREATE TABLE TABLE_E011_01_01_03 ( A INTEGER ) 12 | --- 13 | feature: E011-01 14 | id: e011_01_01_04 15 | sql: CREATE TABLE TABLE_E011_01_01_04 ( A SMALLINT ) 16 | --- 17 | feature: E011-01 18 | id: e011_01_02_01 19 | sql: SELECT +5 20 | --- 21 | feature: E011-01 22 | id: e011_01_02_02 23 | sql: SELECT -5 24 | --- 25 | feature: E011-01 26 | id: e011_01_02_03 27 | sql: SELECT 5 28 | -------------------------------------------------------------------------------- /standards/2016/E/E011-01.yml: -------------------------------------------------------------------------------- 1 | sql: CREATE TABLE TN ( A { SMALLINT | INTEGER | INT | BIGINT } ) 2 | --- 3 | sql: SELECT [ ] 5 4 | -------------------------------------------------------------------------------- /standards/2016/E/E011-02.tests.yml: -------------------------------------------------------------------------------- 1 | feature: E011-02 2 | id: e011_02_01_01 3 | sql: CREATE TABLE TABLE_E011_02_01_01 ( A DOUBLE PRECISION ) 4 | --- 5 | feature: E011-02 6 | id: e011_02_01_02 7 | sql: CREATE TABLE TABLE_E011_02_01_02 ( A FLOAT ( 2 ) ) 8 | --- 9 | feature: E011-02 10 | id: e011_02_01_03 11 | sql: CREATE TABLE TABLE_E011_02_01_03 ( A FLOAT ) 12 | --- 13 | feature: E011-02 14 | id: e011_02_01_04 15 | sql: CREATE TABLE TABLE_E011_02_01_04 ( A REAL ) 16 | --- 17 | feature: E011-02 18 | id: e011_02_02_01 19 | sql: SELECT +7.8 20 | --- 21 | feature: E011-02 22 | id: e011_02_02_02 23 | sql: SELECT -7.8 24 | --- 25 | feature: E011-02 26 | id: e011_02_03_01 27 | sql: SELECT +.2 28 | --- 29 | feature: E011-02 30 | id: e011_02_03_02 31 | sql: SELECT +.2E+2 32 | --- 33 | feature: E011-02 34 | id: e011_02_03_03 35 | sql: SELECT +.2E-2 36 | --- 37 | feature: E011-02 38 | id: e011_02_03_04 39 | sql: SELECT +.2E2 40 | --- 41 | feature: E011-02 42 | id: e011_02_03_05 43 | sql: SELECT +2 44 | --- 45 | feature: E011-02 46 | id: e011_02_03_06 47 | sql: SELECT +2. 48 | --- 49 | feature: E011-02 50 | id: e011_02_03_07 51 | sql: SELECT +2.2 52 | --- 53 | feature: E011-02 54 | id: e011_02_03_08 55 | sql: SELECT +2.2E+2 56 | --- 57 | feature: E011-02 58 | id: e011_02_03_09 59 | sql: SELECT +2.2E-2 60 | --- 61 | feature: E011-02 62 | id: e011_02_03_10 63 | sql: SELECT +2.2E2 64 | --- 65 | feature: E011-02 66 | id: e011_02_03_11 67 | sql: SELECT +2.E+2 68 | --- 69 | feature: E011-02 70 | id: e011_02_03_12 71 | sql: SELECT +2.E-2 72 | --- 73 | feature: E011-02 74 | id: e011_02_03_13 75 | sql: SELECT +2.E2 76 | --- 77 | feature: E011-02 78 | id: e011_02_03_14 79 | sql: SELECT +2E+2 80 | --- 81 | feature: E011-02 82 | id: e011_02_03_15 83 | sql: SELECT +2E-2 84 | --- 85 | feature: E011-02 86 | id: e011_02_03_16 87 | sql: SELECT +2E2 88 | --- 89 | feature: E011-02 90 | id: e011_02_03_17 91 | sql: SELECT -.2 92 | --- 93 | feature: E011-02 94 | id: e011_02_03_18 95 | sql: SELECT -.2E+2 96 | --- 97 | feature: E011-02 98 | id: e011_02_03_19 99 | sql: SELECT -.2E-2 100 | --- 101 | feature: E011-02 102 | id: e011_02_03_20 103 | sql: SELECT -.2E2 104 | --- 105 | feature: E011-02 106 | id: e011_02_03_21 107 | sql: SELECT -2 108 | --- 109 | feature: E011-02 110 | id: e011_02_03_22 111 | sql: SELECT -2. 112 | --- 113 | feature: E011-02 114 | id: e011_02_03_23 115 | sql: SELECT -2.2 116 | --- 117 | feature: E011-02 118 | id: e011_02_03_24 119 | sql: SELECT -2.2E+2 120 | --- 121 | feature: E011-02 122 | id: e011_02_03_25 123 | sql: SELECT -2.2E-2 124 | --- 125 | feature: E011-02 126 | id: e011_02_03_26 127 | sql: SELECT -2.2E2 128 | --- 129 | feature: E011-02 130 | id: e011_02_03_27 131 | sql: SELECT -2.E+2 132 | --- 133 | feature: E011-02 134 | id: e011_02_03_28 135 | sql: SELECT -2.E-2 136 | --- 137 | feature: E011-02 138 | id: e011_02_03_29 139 | sql: SELECT -2.E2 140 | --- 141 | feature: E011-02 142 | id: e011_02_03_30 143 | sql: SELECT -2E+2 144 | --- 145 | feature: E011-02 146 | id: e011_02_03_31 147 | sql: SELECT -2E-2 148 | --- 149 | feature: E011-02 150 | id: e011_02_03_32 151 | sql: SELECT -2E2 152 | --- 153 | feature: E011-02 154 | id: e011_02_03_33 155 | sql: SELECT .2 156 | --- 157 | feature: E011-02 158 | id: e011_02_03_34 159 | sql: SELECT .2E+2 160 | --- 161 | feature: E011-02 162 | id: e011_02_03_35 163 | sql: SELECT .2E-2 164 | --- 165 | feature: E011-02 166 | id: e011_02_03_36 167 | sql: SELECT .2E2 168 | --- 169 | feature: E011-02 170 | id: e011_02_03_37 171 | sql: SELECT 2 172 | --- 173 | feature: E011-02 174 | id: e011_02_03_38 175 | sql: SELECT 2. 176 | --- 177 | feature: E011-02 178 | id: e011_02_03_39 179 | sql: SELECT 2.2 180 | --- 181 | feature: E011-02 182 | id: e011_02_03_40 183 | sql: SELECT 2.2E+2 184 | --- 185 | feature: E011-02 186 | id: e011_02_03_41 187 | sql: SELECT 2.2E-2 188 | --- 189 | feature: E011-02 190 | id: e011_02_03_42 191 | sql: SELECT 2.2E2 192 | --- 193 | feature: E011-02 194 | id: e011_02_03_43 195 | sql: SELECT 2.E+2 196 | --- 197 | feature: E011-02 198 | id: e011_02_03_44 199 | sql: SELECT 2.E-2 200 | --- 201 | feature: E011-02 202 | id: e011_02_03_45 203 | sql: SELECT 2.E2 204 | --- 205 | feature: E011-02 206 | id: e011_02_03_46 207 | sql: SELECT 2E+2 208 | --- 209 | feature: E011-02 210 | id: e011_02_03_47 211 | sql: SELECT 2E-2 212 | --- 213 | feature: E011-02 214 | id: e011_02_03_48 215 | sql: SELECT 2E2 216 | -------------------------------------------------------------------------------- /standards/2016/E/E011-02.yml: -------------------------------------------------------------------------------- 1 | sql: CREATE TABLE TN ( A ) 2 | override: 3 | precision: 2 4 | --- 5 | sql: SELECT 7.8 6 | --- 7 | sql: SELECT { | } 8 | override: 9 | digit: 2 10 | -------------------------------------------------------------------------------- /standards/2016/E/E011-03.tests.yml: -------------------------------------------------------------------------------- 1 | feature: E011-03 2 | id: e011_03_01_01 3 | sql: CREATE TABLE TABLE_E011_03_01_01 ( A DEC ( 6 ) ) 4 | --- 5 | feature: E011-03 6 | id: e011_03_01_02 7 | sql: CREATE TABLE TABLE_E011_03_01_02 ( A DEC ( 6 , 3 ) ) 8 | --- 9 | feature: E011-03 10 | id: e011_03_01_03 11 | sql: CREATE TABLE TABLE_E011_03_01_03 ( A DEC ) 12 | --- 13 | feature: E011-03 14 | id: e011_03_01_04 15 | sql: CREATE TABLE TABLE_E011_03_01_04 ( A DECIMAL ( 6 ) ) 16 | --- 17 | feature: E011-03 18 | id: e011_03_01_05 19 | sql: CREATE TABLE TABLE_E011_03_01_05 ( A DECIMAL ( 6 , 3 ) ) 20 | --- 21 | feature: E011-03 22 | id: e011_03_01_06 23 | sql: CREATE TABLE TABLE_E011_03_01_06 ( A DECIMAL ) 24 | --- 25 | feature: E011-03 26 | id: e011_03_01_07 27 | sql: CREATE TABLE TABLE_E011_03_01_07 ( A NUMERIC ( 6 ) ) 28 | --- 29 | feature: E011-03 30 | id: e011_03_01_08 31 | sql: CREATE TABLE TABLE_E011_03_01_08 ( A NUMERIC ( 6 , 3 ) ) 32 | --- 33 | feature: E011-03 34 | id: e011_03_01_09 35 | sql: CREATE TABLE TABLE_E011_03_01_09 ( A NUMERIC ) 36 | -------------------------------------------------------------------------------- /standards/2016/E/E011-03.yml: -------------------------------------------------------------------------------- 1 | sql: CREATE TABLE TN ( A ) 2 | override: 3 | precision: 6 4 | scale: 3 5 | exclude: [BIGINT, INT, INTEGER, SMALLINT] 6 | -------------------------------------------------------------------------------- /standards/2016/E/E011-04.tests.yml: -------------------------------------------------------------------------------- 1 | feature: E011-04 2 | id: e011_04_01_01 3 | sql: SELECT 5 +3 4 | --- 5 | feature: E011-04 6 | id: e011_04_01_02 7 | sql: SELECT 5 -3 8 | --- 9 | feature: E011-04 10 | id: e011_04_02_01 11 | sql: SELECT 3.4 + 1.2 12 | --- 13 | feature: E011-04 14 | id: e011_04_02_02 15 | sql: SELECT 3.4 - 1.2 16 | -------------------------------------------------------------------------------- /standards/2016/E/E011-04.yml: -------------------------------------------------------------------------------- 1 | sql: SELECT 5 { | } 3 2 | --- 3 | sql: SELECT 3.4 { | } 1.2 4 | -------------------------------------------------------------------------------- /standards/2016/E/E011-05.tests.yml: -------------------------------------------------------------------------------- 1 | feature: E011-05 2 | id: e011_05_01_01 3 | sql: SELECT 3 < 5 4 | --- 5 | feature: E011-05 6 | id: e011_05_01_02 7 | sql: SELECT 3 <= 5 8 | --- 9 | feature: E011-05 10 | id: e011_05_01_03 11 | sql: SELECT 3 <> 5 12 | --- 13 | feature: E011-05 14 | id: e011_05_01_04 15 | sql: SELECT 3 = 5 16 | --- 17 | feature: E011-05 18 | id: e011_05_01_05 19 | sql: SELECT 3 > 5 20 | --- 21 | feature: E011-05 22 | id: e011_05_01_06 23 | sql: SELECT 3 >= 5 24 | --- 25 | feature: E011-05 26 | id: e011_05_02_01 27 | sql: SELECT 3.7 < 5.2 28 | --- 29 | feature: E011-05 30 | id: e011_05_02_02 31 | sql: SELECT 3.7 <= 5.2 32 | --- 33 | feature: E011-05 34 | id: e011_05_02_03 35 | sql: SELECT 3.7 <> 5.2 36 | --- 37 | feature: E011-05 38 | id: e011_05_02_04 39 | sql: SELECT 3.7 = 5.2 40 | --- 41 | feature: E011-05 42 | id: e011_05_02_05 43 | sql: SELECT 3.7 > 5.2 44 | --- 45 | feature: E011-05 46 | id: e011_05_02_06 47 | sql: SELECT 3.7 >= 5.2 48 | --- 49 | feature: E011-05 50 | id: e011_05_03_01 51 | sql: SELECT ( 1 ) 52 | --- 53 | feature: E011-05 54 | id: e011_05_04_01 55 | sql: SELECT ( 5.5 ) 56 | -------------------------------------------------------------------------------- /standards/2016/E/E011-05.yml: -------------------------------------------------------------------------------- 1 | sql: SELECT 3 5 2 | --- 3 | sql: SELECT 3.7 5.2 4 | --- 5 | sql: SELECT 6 | override: 7 | value expression: 1 8 | --- 9 | sql: SELECT 10 | override: 11 | value expression: 5.5 12 | -------------------------------------------------------------------------------- /standards/2016/E/E011-06.tests.yml: -------------------------------------------------------------------------------- 1 | feature: E011-06 2 | id: e011_06_01_01 3 | sql: SELECT 3 < 1.2 4 | --- 5 | feature: E011-06 6 | id: e011_06_01_02 7 | sql: SELECT 3 < 5 8 | --- 9 | feature: E011-06 10 | id: e011_06_01_03 11 | sql: SELECT 3 <= 1.2 12 | --- 13 | feature: E011-06 14 | id: e011_06_01_04 15 | sql: SELECT 3 <= 5 16 | --- 17 | feature: E011-06 18 | id: e011_06_01_05 19 | sql: SELECT 3 <> 1.2 20 | --- 21 | feature: E011-06 22 | id: e011_06_01_06 23 | sql: SELECT 3 <> 5 24 | --- 25 | feature: E011-06 26 | id: e011_06_01_07 27 | sql: SELECT 3 = 1.2 28 | --- 29 | feature: E011-06 30 | id: e011_06_01_08 31 | sql: SELECT 3 = 5 32 | --- 33 | feature: E011-06 34 | id: e011_06_01_09 35 | sql: SELECT 3 > 1.2 36 | --- 37 | feature: E011-06 38 | id: e011_06_01_10 39 | sql: SELECT 3 > 5 40 | --- 41 | feature: E011-06 42 | id: e011_06_01_11 43 | sql: SELECT 3 >= 1.2 44 | --- 45 | feature: E011-06 46 | id: e011_06_01_12 47 | sql: SELECT 3 >= 5 48 | --- 49 | feature: E011-06 50 | id: e011_06_01_13 51 | sql: SELECT 3.7 < 1.2 52 | --- 53 | feature: E011-06 54 | id: e011_06_01_14 55 | sql: SELECT 3.7 < 5 56 | --- 57 | feature: E011-06 58 | id: e011_06_01_15 59 | sql: SELECT 3.7 <= 1.2 60 | --- 61 | feature: E011-06 62 | id: e011_06_01_16 63 | sql: SELECT 3.7 <= 5 64 | --- 65 | feature: E011-06 66 | id: e011_06_01_17 67 | sql: SELECT 3.7 <> 1.2 68 | --- 69 | feature: E011-06 70 | id: e011_06_01_18 71 | sql: SELECT 3.7 <> 5 72 | --- 73 | feature: E011-06 74 | id: e011_06_01_19 75 | sql: SELECT 3.7 = 1.2 76 | --- 77 | feature: E011-06 78 | id: e011_06_01_20 79 | sql: SELECT 3.7 = 5 80 | --- 81 | feature: E011-06 82 | id: e011_06_01_21 83 | sql: SELECT 3.7 > 1.2 84 | --- 85 | feature: E011-06 86 | id: e011_06_01_22 87 | sql: SELECT 3.7 > 5 88 | --- 89 | feature: E011-06 90 | id: e011_06_01_23 91 | sql: SELECT 3.7 >= 1.2 92 | --- 93 | feature: E011-06 94 | id: e011_06_01_24 95 | sql: SELECT 3.7 >= 5 96 | -------------------------------------------------------------------------------- /standards/2016/E/E011-06.yml: -------------------------------------------------------------------------------- 1 | sql: SELECT { 3 | 3.7 } { 5 | 1.2 } 2 | -------------------------------------------------------------------------------- /standards/2016/E/E021-01.tests.yml: -------------------------------------------------------------------------------- 1 | feature: E021-01 2 | id: e021_01_01_01 3 | sql: CREATE TABLE TABLE_E021_01_01_01 ( A CHAR ( 8 ) ) 4 | --- 5 | feature: E021-01 6 | id: e021_01_01_02 7 | sql: CREATE TABLE TABLE_E021_01_01_02 ( A CHAR ( 8 CHARACTERS ) ) 8 | --- 9 | feature: E021-01 10 | id: e021_01_01_03 11 | sql: CREATE TABLE TABLE_E021_01_01_03 ( A CHAR ( 8 OCTETS ) ) 12 | --- 13 | feature: E021-01 14 | id: e021_01_01_04 15 | sql: CREATE TABLE TABLE_E021_01_01_04 ( A CHAR ) 16 | --- 17 | feature: E021-01 18 | id: e021_01_01_05 19 | sql: CREATE TABLE TABLE_E021_01_01_05 ( A CHARACTER ( 8 ) ) 20 | --- 21 | feature: E021-01 22 | id: e021_01_01_06 23 | sql: CREATE TABLE TABLE_E021_01_01_06 ( A CHARACTER ( 8 CHARACTERS ) ) 24 | --- 25 | feature: E021-01 26 | id: e021_01_01_07 27 | sql: CREATE TABLE TABLE_E021_01_01_07 ( A CHARACTER ( 8 OCTETS ) ) 28 | --- 29 | feature: E021-01 30 | id: e021_01_01_08 31 | sql: CREATE TABLE TABLE_E021_01_01_08 ( A CHARACTER ) 32 | -------------------------------------------------------------------------------- /standards/2016/E/E021-01.yml: -------------------------------------------------------------------------------- 1 | sql: CREATE TABLE TN ( A { CHAR | CHARACTER } [ ] ) 2 | override: 3 | length: 8 4 | -------------------------------------------------------------------------------- /standards/2016/E/E021-02.tests.yml: -------------------------------------------------------------------------------- 1 | feature: E021-02 2 | id: e021_02_01_01 3 | sql: CREATE TABLE TABLE_E021_02_01_01 ( A CHAR VARING ( 8 ) ) 4 | --- 5 | feature: E021-02 6 | id: e021_02_01_02 7 | sql: CREATE TABLE TABLE_E021_02_01_02 ( A CHAR VARING ( 8 CHARACTERS ) ) 8 | --- 9 | feature: E021-02 10 | id: e021_02_01_03 11 | sql: CREATE TABLE TABLE_E021_02_01_03 ( A CHAR VARING ( 8 OCTETS ) ) 12 | --- 13 | feature: E021-02 14 | id: e021_02_01_04 15 | sql: CREATE TABLE TABLE_E021_02_01_04 ( A CHAR VARING ) 16 | --- 17 | feature: E021-02 18 | id: e021_02_01_05 19 | sql: CREATE TABLE TABLE_E021_02_01_05 ( A CHARACTER VARYING ( 8 ) ) 20 | --- 21 | feature: E021-02 22 | id: e021_02_01_06 23 | sql: CREATE TABLE TABLE_E021_02_01_06 ( A CHARACTER VARYING ( 8 CHARACTERS ) ) 24 | --- 25 | feature: E021-02 26 | id: e021_02_01_07 27 | sql: CREATE TABLE TABLE_E021_02_01_07 ( A CHARACTER VARYING ( 8 OCTETS ) ) 28 | --- 29 | feature: E021-02 30 | id: e021_02_01_08 31 | sql: CREATE TABLE TABLE_E021_02_01_08 ( A CHARACTER VARYING ) 32 | --- 33 | feature: E021-02 34 | id: e021_02_01_09 35 | sql: CREATE TABLE TABLE_E021_02_01_09 ( A VARCHAR ( 8 ) ) 36 | --- 37 | feature: E021-02 38 | id: e021_02_01_10 39 | sql: CREATE TABLE TABLE_E021_02_01_10 ( A VARCHAR ( 8 CHARACTERS ) ) 40 | --- 41 | feature: E021-02 42 | id: e021_02_01_11 43 | sql: CREATE TABLE TABLE_E021_02_01_11 ( A VARCHAR ( 8 OCTETS ) ) 44 | --- 45 | feature: E021-02 46 | id: e021_02_01_12 47 | sql: CREATE TABLE TABLE_E021_02_01_12 ( A VARCHAR ) 48 | -------------------------------------------------------------------------------- /standards/2016/E/E021-02.yml: -------------------------------------------------------------------------------- 1 | sql: CREATE TABLE TN ( A { CHAR VARING | CHARACTER VARYING | VARCHAR } [ ] ) 2 | override: 3 | length: 8 4 | -------------------------------------------------------------------------------- /standards/2016/E/E021-03.tests.yml: -------------------------------------------------------------------------------- 1 | feature: E021-03 2 | id: e021_03_01_01 3 | sql: SELECT '' 4 | --- 5 | feature: E021-03 6 | id: e021_03_01_02 7 | sql: SELECT 'a' 8 | --- 9 | feature: E021-03 10 | id: e021_03_01_03 11 | sql: SELECT 'abc' 12 | -------------------------------------------------------------------------------- /standards/2016/E/E021-03.yml: -------------------------------------------------------------------------------- 1 | sql: SELECT { | a | abc } 2 | -------------------------------------------------------------------------------- /standards/2016/E/E021-04.tests.yml: -------------------------------------------------------------------------------- 1 | feature: E021-04 2 | id: e021_04_01_01 3 | sql: SELECT CHARACTER_LENGTH ( 'foo' ) 4 | --- 5 | feature: E021-04 6 | id: e021_04_01_02 7 | sql: SELECT CHARACTER_LENGTH ( 'foo' USING CHARACTERS ) 8 | --- 9 | feature: E021-04 10 | id: e021_04_01_03 11 | sql: SELECT CHARACTER_LENGTH ( 'foo' USING OCTETS ) 12 | --- 13 | feature: E021-04 14 | id: e021_04_01_04 15 | sql: SELECT CHAR_LENGTH ( 'foo' ) 16 | --- 17 | feature: E021-04 18 | id: e021_04_01_05 19 | sql: SELECT CHAR_LENGTH ( 'foo' USING CHARACTERS ) 20 | --- 21 | feature: E021-04 22 | id: e021_04_01_06 23 | sql: SELECT CHAR_LENGTH ( 'foo' USING OCTETS ) 24 | -------------------------------------------------------------------------------- /standards/2016/E/E021-04.yml: -------------------------------------------------------------------------------- 1 | sql: SELECT 2 | override: 3 | character value expression: "'foo'" 4 | -------------------------------------------------------------------------------- /standards/2016/E/E021-05.tests.yml: -------------------------------------------------------------------------------- 1 | feature: E021-05 2 | id: e021_05_01_01 3 | sql: SELECT OCTET_LENGTH ( 'foo' ) 4 | -------------------------------------------------------------------------------- /standards/2016/E/E021-05.yml: -------------------------------------------------------------------------------- 1 | sql: SELECT 2 | override: 3 | string value expression: "'foo'" 4 | -------------------------------------------------------------------------------- /standards/2016/E/E021-06.tests.yml: -------------------------------------------------------------------------------- 1 | feature: E021-06 2 | id: e021_06_01_01 3 | sql: SELECT SUBSTRING ( 'foo' FROM 1 ) 4 | --- 5 | feature: E021-06 6 | id: e021_06_01_02 7 | sql: SELECT SUBSTRING ( 'foo' FROM 1 FOR 2 ) 8 | --- 9 | feature: E021-06 10 | id: e021_06_01_03 11 | sql: SELECT SUBSTRING ( 'foo' FROM 1 FOR 2 USING CHARACTERS ) 12 | --- 13 | feature: E021-06 14 | id: e021_06_01_04 15 | sql: SELECT SUBSTRING ( 'foo' FROM 1 FOR 2 USING OCTETS ) 16 | --- 17 | feature: E021-06 18 | id: e021_06_01_05 19 | sql: SELECT SUBSTRING ( 'foo' FROM 1 USING CHARACTERS ) 20 | --- 21 | feature: E021-06 22 | id: e021_06_01_06 23 | sql: SELECT SUBSTRING ( 'foo' FROM 1 USING OCTETS ) 24 | -------------------------------------------------------------------------------- /standards/2016/E/E021-06.yml: -------------------------------------------------------------------------------- 1 | sql: SELECT 2 | override: 3 | character value expression: "'foo'" 4 | start position: 1 5 | string length: 2 6 | -------------------------------------------------------------------------------- /standards/2016/E/E021-07.tests.yml: -------------------------------------------------------------------------------- 1 | feature: E021-07 2 | id: e021_07_01_01 3 | sql: SELECT 'foo' || 'bar' 4 | -------------------------------------------------------------------------------- /standards/2016/E/E021-07.yml: -------------------------------------------------------------------------------- 1 | sql: SELECT 2 | override: 3 | character value expression: "'foo'" 4 | character primary: "'bar'" 5 | -------------------------------------------------------------------------------- /standards/2016/E/E021-08.tests.yml: -------------------------------------------------------------------------------- 1 | feature: E021-08 2 | id: e021_08_01_01 3 | sql: SELECT LOWER ( 'foo' ) 4 | --- 5 | feature: E021-08 6 | id: e021_08_01_02 7 | sql: SELECT UPPER ( 'foo' ) 8 | -------------------------------------------------------------------------------- /standards/2016/E/E021-08.yml: -------------------------------------------------------------------------------- 1 | sql: SELECT 2 | override: 3 | character value expression: "'foo'" 4 | -------------------------------------------------------------------------------- /standards/2016/E/E021-09.tests.yml: -------------------------------------------------------------------------------- 1 | feature: E021-09 2 | id: e021_09_01_01 3 | sql: SELECT TRIM ( 'foo' ) 4 | --- 5 | feature: E021-09 6 | id: e021_09_01_02 7 | sql: SELECT TRIM ( 'foo' FROM 'foo' ) 8 | --- 9 | feature: E021-09 10 | id: e021_09_01_03 11 | sql: SELECT TRIM ( BOTH 'foo' FROM 'foo' ) 12 | --- 13 | feature: E021-09 14 | id: e021_09_01_04 15 | sql: SELECT TRIM ( BOTH FROM 'foo' ) 16 | --- 17 | feature: E021-09 18 | id: e021_09_01_05 19 | sql: SELECT TRIM ( FROM 'foo' ) 20 | --- 21 | feature: E021-09 22 | id: e021_09_01_06 23 | sql: SELECT TRIM ( LEADING 'foo' FROM 'foo' ) 24 | --- 25 | feature: E021-09 26 | id: e021_09_01_07 27 | sql: SELECT TRIM ( LEADING FROM 'foo' ) 28 | --- 29 | feature: E021-09 30 | id: e021_09_01_08 31 | sql: SELECT TRIM ( TRAILING 'foo' FROM 'foo' ) 32 | --- 33 | feature: E021-09 34 | id: e021_09_01_09 35 | sql: SELECT TRIM ( TRAILING FROM 'foo' ) 36 | -------------------------------------------------------------------------------- /standards/2016/E/E021-09.yml: -------------------------------------------------------------------------------- 1 | sql: SELECT 2 | override: 3 | character value expression: "'foo'" 4 | -------------------------------------------------------------------------------- /standards/2016/E/E021-10.tests.yml: -------------------------------------------------------------------------------- 1 | feature: E021-10 2 | id: e021_10_01_01 3 | sql: 4 | - CREATE TABLE TABLE_E021_10_01_01 ( A CHARACTER ( 10 ) , B CHARACTER VARYING ( 15 5 | ) ) 6 | - INSERT INTO TABLE_E021_10_01_01 ( A, B ) VALUES ( 'foo' , 'bar' ) 7 | - SELECT A = B FROM TABLE_E021_10_01_01 8 | -------------------------------------------------------------------------------- /standards/2016/E/E021-10.yml: -------------------------------------------------------------------------------- 1 | sql: 2 | - CREATE TABLE TN ( A CHARACTER (10), B CHARACTER VARYING (15) ) 3 | - INSERT INTO TN ( A, B ) VALUES ('foo', 'bar') 4 | - SELECT A B FROM TN 5 | -------------------------------------------------------------------------------- /standards/2016/E/E021-11.tests.yml: -------------------------------------------------------------------------------- 1 | feature: E021-11 2 | id: e021_11_01_01 3 | sql: SELECT POSITION ( 'foo' IN 'bar' ) 4 | --- 5 | feature: E021-11 6 | id: e021_11_01_02 7 | sql: SELECT POSITION ( 'foo' IN 'bar' USING CHARACTERS ) 8 | --- 9 | feature: E021-11 10 | id: e021_11_01_03 11 | sql: SELECT POSITION ( 'foo' IN 'bar' USING OCTETS ) 12 | -------------------------------------------------------------------------------- /standards/2016/E/E021-11.yml: -------------------------------------------------------------------------------- 1 | sql: SELECT 2 | override: 3 | character value expression 1: "'foo'" 4 | character value expression 2: "'bar'" 5 | -------------------------------------------------------------------------------- /standards/2016/E/E021-12.tests.yml: -------------------------------------------------------------------------------- 1 | feature: E021-12 2 | id: e021_12_01_01 3 | sql: SELECT 'foo' < 'bar' 4 | --- 5 | feature: E021-12 6 | id: e021_12_01_02 7 | sql: SELECT 'foo' <= 'bar' 8 | --- 9 | feature: E021-12 10 | id: e021_12_01_03 11 | sql: SELECT 'foo' <> 'bar' 12 | --- 13 | feature: E021-12 14 | id: e021_12_01_04 15 | sql: SELECT 'foo' = 'bar' 16 | --- 17 | feature: E021-12 18 | id: e021_12_01_05 19 | sql: SELECT 'foo' > 'bar' 20 | --- 21 | feature: E021-12 22 | id: e021_12_01_06 23 | sql: SELECT 'foo' >= 'bar' 24 | -------------------------------------------------------------------------------- /standards/2016/E/E021-12.yml: -------------------------------------------------------------------------------- 1 | sql: SELECT 'foo' 'bar' 2 | -------------------------------------------------------------------------------- /standards/2016/E/E031-01.tests.yml: -------------------------------------------------------------------------------- 1 | feature: E031-01 2 | id: e031_01_01_01 3 | sql: 4 | - CREATE TABLE TABLE_E031_01_01_01 ( "A" INT ) 5 | - SELECT "A" FROM TABLE_E031_01_01_01 6 | -------------------------------------------------------------------------------- /standards/2016/E/E031-01.yml: -------------------------------------------------------------------------------- 1 | sql: 2 | - CREATE TABLE TN ( "A" INT ) 3 | - SELECT "A" FROM TN 4 | -------------------------------------------------------------------------------- /standards/2016/E/E031-02.tests.yml: -------------------------------------------------------------------------------- 1 | feature: E031-02 2 | id: e031_02_01_01 3 | sql: 4 | - CREATE TABLE TABLE_E031_02_01_01 ( A INT ) 5 | - SELECT A FROM TABLE_E031_02_01_01 6 | -------------------------------------------------------------------------------- /standards/2016/E/E031-02.yml: -------------------------------------------------------------------------------- 1 | sql: 2 | - CREATE TABLE TN ( A INT ) 3 | - SELECT A FROM TN 4 | -------------------------------------------------------------------------------- /standards/2016/E/E031-03.tests.yml: -------------------------------------------------------------------------------- 1 | feature: E031-03 2 | id: e031_03_01_01 3 | sql: 4 | - CREATE TABLE TABLE_E031_03_01_01 ( A_ INT ) 5 | - SELECT A_ FROM TABLE_E031_03_01_01 6 | -------------------------------------------------------------------------------- /standards/2016/E/E031-03.yml: -------------------------------------------------------------------------------- 1 | sql: 2 | - CREATE TABLE TN ( A_ INT ) 3 | - SELECT A_ FROM TN 4 | -------------------------------------------------------------------------------- /standards/2016/E/E051-01.tests.yml: -------------------------------------------------------------------------------- 1 | feature: E051-01 2 | id: e051_01_01_01 3 | sql: 4 | - CREATE TABLE TABLE_E051_01_01_01 ( A INT ) 5 | - SELECT DISTINCT A FROM TABLE_E051_01_01_01 6 | --- 7 | feature: E051-01 8 | id: e051_01_01_02 9 | sql: 10 | - CREATE TABLE TABLE_E051_01_01_02 ( A INT ) 11 | - SELECT DISTINCT A FROM TABLE_E051_01_01_02 WHERE A = 1 12 | -------------------------------------------------------------------------------- /standards/2016/E/E051-01.yml: -------------------------------------------------------------------------------- 1 | sql: 2 | - CREATE TABLE TN ( A INT ) 3 | - SELECT DISTINCT A FROM TN [ WHERE A = 1 ] 4 | -------------------------------------------------------------------------------- /standards/2016/E/E051-02.tests.yml: -------------------------------------------------------------------------------- 1 | feature: E051-02 2 | id: e051_02_01_01 3 | sql: 4 | - CREATE TABLE TABLE_E051_02_01_01 ( A INT, B INT ) 5 | - SELECT A, B FROM TABLE_E051_02_01_01 GROUP BY A, B 6 | --- 7 | feature: E051-02 8 | id: e051_02_01_02 9 | sql: 10 | - CREATE TABLE TABLE_E051_02_01_02 ( A INT, B INT ) 11 | - SELECT A, B FROM TABLE_E051_02_01_02 WHERE A = 1 GROUP BY A, B 12 | --- 13 | feature: E051-02 14 | id: e051_02_01_03 15 | sql: 16 | - CREATE TABLE TABLE_E051_02_01_03 ( A INT, B INT ) 17 | - SELECT ALL A, B FROM TABLE_E051_02_01_03 GROUP BY A, B 18 | --- 19 | feature: E051-02 20 | id: e051_02_01_04 21 | sql: 22 | - CREATE TABLE TABLE_E051_02_01_04 ( A INT, B INT ) 23 | - SELECT ALL A, B FROM TABLE_E051_02_01_04 WHERE A = 1 GROUP BY A, B 24 | --- 25 | feature: E051-02 26 | id: e051_02_01_05 27 | sql: 28 | - CREATE TABLE TABLE_E051_02_01_05 ( A INT, B INT ) 29 | - SELECT DISTINCT A, B FROM TABLE_E051_02_01_05 GROUP BY A, B 30 | --- 31 | feature: E051-02 32 | id: e051_02_01_06 33 | sql: 34 | - CREATE TABLE TABLE_E051_02_01_06 ( A INT, B INT ) 35 | - SELECT DISTINCT A, B FROM TABLE_E051_02_01_06 WHERE A = 1 GROUP BY A, B 36 | --- 37 | feature: E051-02 38 | id: e051_02_02_01 39 | sql: 40 | - CREATE TABLE TABLE_E051_02_02_01 ( A INT, B INT ) 41 | - SELECT A FROM TABLE_E051_02_02_01 GROUP BY A 42 | --- 43 | feature: E051-02 44 | id: e051_02_02_02 45 | sql: 46 | - CREATE TABLE TABLE_E051_02_02_02 ( A INT, B INT ) 47 | - SELECT A FROM TABLE_E051_02_02_02 WHERE A = 1 GROUP BY A 48 | --- 49 | feature: E051-02 50 | id: e051_02_02_03 51 | sql: 52 | - CREATE TABLE TABLE_E051_02_02_03 ( A INT, B INT ) 53 | - SELECT ALL A FROM TABLE_E051_02_02_03 GROUP BY A 54 | --- 55 | feature: E051-02 56 | id: e051_02_02_04 57 | sql: 58 | - CREATE TABLE TABLE_E051_02_02_04 ( A INT, B INT ) 59 | - SELECT ALL A FROM TABLE_E051_02_02_04 WHERE A = 1 GROUP BY A 60 | --- 61 | feature: E051-02 62 | id: e051_02_02_05 63 | sql: 64 | - CREATE TABLE TABLE_E051_02_02_05 ( A INT, B INT ) 65 | - SELECT DISTINCT A FROM TABLE_E051_02_02_05 GROUP BY A 66 | --- 67 | feature: E051-02 68 | id: e051_02_02_06 69 | sql: 70 | - CREATE TABLE TABLE_E051_02_02_06 ( A INT, B INT ) 71 | - SELECT DISTINCT A FROM TABLE_E051_02_02_06 WHERE A = 1 GROUP BY A 72 | -------------------------------------------------------------------------------- /standards/2016/E/E051-02.yml: -------------------------------------------------------------------------------- 1 | sql: 2 | - CREATE TABLE TN ( A INT, B INT ) 3 | - SELECT [ ALL | DISTINCT ] A, B FROM TN [ WHERE A = 1 ] GROUP BY A, B 4 | --- 5 | sql: 6 | - CREATE TABLE TN ( A INT, B INT ) 7 | - SELECT [ ALL | DISTINCT ] A FROM TN [ WHERE A = 1 ] GROUP BY A 8 | -------------------------------------------------------------------------------- /standards/2016/E/E051-04.tests.yml: -------------------------------------------------------------------------------- 1 | feature: E051-04 2 | id: e051_04_01_01 3 | sql: 4 | - CREATE TABLE TABLE_E051_04_01_01 ( A INT, B INT ) 5 | - SELECT ALL B FROM TABLE_E051_04_01_01 GROUP BY B 6 | --- 7 | feature: E051-04 8 | id: e051_04_01_02 9 | sql: 10 | - CREATE TABLE TABLE_E051_04_01_02 ( A INT, B INT ) 11 | - SELECT ALL B FROM TABLE_E051_04_01_02 WHERE A = 1 GROUP BY B 12 | --- 13 | feature: E051-04 14 | id: e051_04_01_03 15 | sql: 16 | - CREATE TABLE TABLE_E051_04_01_03 ( A INT, B INT ) 17 | - SELECT B FROM TABLE_E051_04_01_03 GROUP BY B 18 | --- 19 | feature: E051-04 20 | id: e051_04_01_04 21 | sql: 22 | - CREATE TABLE TABLE_E051_04_01_04 ( A INT, B INT ) 23 | - SELECT B FROM TABLE_E051_04_01_04 WHERE A = 1 GROUP BY B 24 | --- 25 | feature: E051-04 26 | id: e051_04_01_05 27 | sql: 28 | - CREATE TABLE TABLE_E051_04_01_05 ( A INT, B INT ) 29 | - SELECT DISTINCT B FROM TABLE_E051_04_01_05 GROUP BY B 30 | --- 31 | feature: E051-04 32 | id: e051_04_01_06 33 | sql: 34 | - CREATE TABLE TABLE_E051_04_01_06 ( A INT, B INT ) 35 | - SELECT DISTINCT B FROM TABLE_E051_04_01_06 WHERE A = 1 GROUP BY B 36 | -------------------------------------------------------------------------------- /standards/2016/E/E051-04.yml: -------------------------------------------------------------------------------- 1 | sql: 2 | - CREATE TABLE TN ( A INT, B INT ) 3 | - SELECT [ ALL | DISTINCT ] B FROM TN [ WHERE A = 1 ] GROUP BY B 4 | -------------------------------------------------------------------------------- /standards/2016/E/E051-05.tests.yml: -------------------------------------------------------------------------------- 1 | feature: E051-05 2 | id: e051_05_01_01 3 | sql: 4 | - CREATE TABLE TABLE_E051_05_01_01 ( A INT ) 5 | - SELECT A AS RENAMED FROM TABLE_E051_05_01_01 6 | -------------------------------------------------------------------------------- /standards/2016/E/E051-05.yml: -------------------------------------------------------------------------------- 1 | sql: 2 | - CREATE TABLE TN ( A INT ) 3 | - SELECT A AS RENAMED FROM TN 4 | -------------------------------------------------------------------------------- /standards/2016/E/E051-06.tests.yml: -------------------------------------------------------------------------------- 1 | feature: E051-06 2 | id: e051_06_01_01 3 | sql: 4 | - CREATE TABLE TABLE_E051_06_01_01 ( A INT, B INT ) 5 | - SELECT A FROM TABLE_E051_06_01_01 GROUP BY A HAVING A = 1 6 | -------------------------------------------------------------------------------- /standards/2016/E/E051-06.yml: -------------------------------------------------------------------------------- 1 | sql: 2 | - CREATE TABLE TN ( A INT, B INT ) 3 | - SELECT A FROM TN GROUP BY A HAVING A = 1 4 | -------------------------------------------------------------------------------- /standards/2016/E/E051-07.tests.yml: -------------------------------------------------------------------------------- 1 | feature: E051-07 2 | id: e051_07_01_01 3 | sql: 4 | - CREATE TABLE TABLE_E051_07_01_01 ( A INT, B INT ) 5 | - SELECT * AS ( C , D ) FROM TABLE_E051_07_01_01 6 | --- 7 | feature: E051-07 8 | id: e051_07_01_02 9 | sql: 10 | - CREATE TABLE TABLE_E051_07_01_02 ( A INT, B INT ) 11 | - SELECT * FROM TABLE_E051_07_01_02 12 | --- 13 | feature: E051-07 14 | id: e051_07_01_03 15 | sql: 16 | - CREATE TABLE TABLE_E051_07_01_03 ( A INT, B INT ) 17 | - SELECT ALL * AS ( C , D ) FROM TABLE_E051_07_01_03 18 | --- 19 | feature: E051-07 20 | id: e051_07_01_04 21 | sql: 22 | - CREATE TABLE TABLE_E051_07_01_04 ( A INT, B INT ) 23 | - SELECT ALL * FROM TABLE_E051_07_01_04 24 | --- 25 | feature: E051-07 26 | id: e051_07_01_05 27 | sql: 28 | - CREATE TABLE TABLE_E051_07_01_05 ( A INT, B INT ) 29 | - SELECT ALL TABLE_E051_07_01_05 . * AS ( C , D ) FROM TABLE_E051_07_01_05 30 | --- 31 | feature: E051-07 32 | id: e051_07_01_06 33 | sql: 34 | - CREATE TABLE TABLE_E051_07_01_06 ( A INT, B INT ) 35 | - SELECT ALL TABLE_E051_07_01_06 . * FROM TABLE_E051_07_01_06 36 | --- 37 | feature: E051-07 38 | id: e051_07_01_07 39 | sql: 40 | - CREATE TABLE TABLE_E051_07_01_07 ( A INT, B INT ) 41 | - SELECT DISTINCT * AS ( C , D ) FROM TABLE_E051_07_01_07 42 | --- 43 | feature: E051-07 44 | id: e051_07_01_08 45 | sql: 46 | - CREATE TABLE TABLE_E051_07_01_08 ( A INT, B INT ) 47 | - SELECT DISTINCT * FROM TABLE_E051_07_01_08 48 | --- 49 | feature: E051-07 50 | id: e051_07_01_09 51 | sql: 52 | - CREATE TABLE TABLE_E051_07_01_09 ( A INT, B INT ) 53 | - SELECT DISTINCT TABLE_E051_07_01_09 . * AS ( C , D ) FROM TABLE_E051_07_01_09 54 | --- 55 | feature: E051-07 56 | id: e051_07_01_10 57 | sql: 58 | - CREATE TABLE TABLE_E051_07_01_10 ( A INT, B INT ) 59 | - SELECT DISTINCT TABLE_E051_07_01_10 . * FROM TABLE_E051_07_01_10 60 | --- 61 | feature: E051-07 62 | id: e051_07_01_11 63 | sql: 64 | - CREATE TABLE TABLE_E051_07_01_11 ( A INT, B INT ) 65 | - SELECT TABLE_E051_07_01_11 . * AS ( C , D ) FROM TABLE_E051_07_01_11 66 | --- 67 | feature: E051-07 68 | id: e051_07_01_12 69 | sql: 70 | - CREATE TABLE TABLE_E051_07_01_12 ( A INT, B INT ) 71 | - SELECT TABLE_E051_07_01_12 . * FROM TABLE_E051_07_01_12 72 | -------------------------------------------------------------------------------- /standards/2016/E/E051-07.yml: -------------------------------------------------------------------------------- 1 | sql: 2 | - CREATE TABLE TN ( A INT, B INT ) 3 | - SELECT [ ALL | DISTINCT ] [ TN ] [ AS ( C , D ) ] FROM TN 4 | -------------------------------------------------------------------------------- /standards/2016/E/E051-08.tests.yml: -------------------------------------------------------------------------------- 1 | feature: E051-08 2 | id: e051_08_01_01 3 | sql: 4 | - CREATE TABLE TABLE_E051_08_01_01 ( A INT, B INT ) 5 | - SELECT * AS ( C , D ) FROM TABLE_E051_08_01_01 AS MYTEMP 6 | --- 7 | feature: E051-08 8 | id: e051_08_01_02 9 | sql: 10 | - CREATE TABLE TABLE_E051_08_01_02 ( A INT, B INT ) 11 | - SELECT * FROM TABLE_E051_08_01_02 AS MYTEMP 12 | --- 13 | feature: E051-08 14 | id: e051_08_01_03 15 | sql: 16 | - CREATE TABLE TABLE_E051_08_01_03 ( A INT, B INT ) 17 | - SELECT ALL * AS ( C , D ) FROM TABLE_E051_08_01_03 AS MYTEMP 18 | --- 19 | feature: E051-08 20 | id: e051_08_01_04 21 | sql: 22 | - CREATE TABLE TABLE_E051_08_01_04 ( A INT, B INT ) 23 | - SELECT ALL * FROM TABLE_E051_08_01_04 AS MYTEMP 24 | --- 25 | feature: E051-08 26 | id: e051_08_01_05 27 | sql: 28 | - CREATE TABLE TABLE_E051_08_01_05 ( A INT, B INT ) 29 | - SELECT ALL MYTEMP . * AS ( C , D ) FROM TABLE_E051_08_01_05 AS MYTEMP 30 | --- 31 | feature: E051-08 32 | id: e051_08_01_06 33 | sql: 34 | - CREATE TABLE TABLE_E051_08_01_06 ( A INT, B INT ) 35 | - SELECT ALL MYTEMP . * FROM TABLE_E051_08_01_06 AS MYTEMP 36 | --- 37 | feature: E051-08 38 | id: e051_08_01_07 39 | sql: 40 | - CREATE TABLE TABLE_E051_08_01_07 ( A INT, B INT ) 41 | - SELECT DISTINCT * AS ( C , D ) FROM TABLE_E051_08_01_07 AS MYTEMP 42 | --- 43 | feature: E051-08 44 | id: e051_08_01_08 45 | sql: 46 | - CREATE TABLE TABLE_E051_08_01_08 ( A INT, B INT ) 47 | - SELECT DISTINCT * FROM TABLE_E051_08_01_08 AS MYTEMP 48 | --- 49 | feature: E051-08 50 | id: e051_08_01_09 51 | sql: 52 | - CREATE TABLE TABLE_E051_08_01_09 ( A INT, B INT ) 53 | - SELECT DISTINCT MYTEMP . * AS ( C , D ) FROM TABLE_E051_08_01_09 AS MYTEMP 54 | --- 55 | feature: E051-08 56 | id: e051_08_01_10 57 | sql: 58 | - CREATE TABLE TABLE_E051_08_01_10 ( A INT, B INT ) 59 | - SELECT DISTINCT MYTEMP . * FROM TABLE_E051_08_01_10 AS MYTEMP 60 | --- 61 | feature: E051-08 62 | id: e051_08_01_11 63 | sql: 64 | - CREATE TABLE TABLE_E051_08_01_11 ( A INT, B INT ) 65 | - SELECT MYTEMP . * AS ( C , D ) FROM TABLE_E051_08_01_11 AS MYTEMP 66 | --- 67 | feature: E051-08 68 | id: e051_08_01_12 69 | sql: 70 | - CREATE TABLE TABLE_E051_08_01_12 ( A INT, B INT ) 71 | - SELECT MYTEMP . * FROM TABLE_E051_08_01_12 AS MYTEMP 72 | -------------------------------------------------------------------------------- /standards/2016/E/E051-08.yml: -------------------------------------------------------------------------------- 1 | sql: 2 | - CREATE TABLE TN ( A INT, B INT ) 3 | - SELECT [ ALL | DISTINCT ] [ MYTEMP ] [ AS ( C , D ) ] FROM TN AS MYTEMP 4 | -------------------------------------------------------------------------------- /standards/2016/E/E051-09.tests.yml: -------------------------------------------------------------------------------- 1 | feature: E051-09 2 | id: e051_09_01_01 3 | sql: 4 | - CREATE TABLE TABLE_E051_09_01_01 ( A INT, B INT ) 5 | - SELECT ALL MYTEMP . X , Y FROM TABLE_E051_09_01_01 AS MYTEMP ( X, Y ) 6 | --- 7 | feature: E051-09 8 | id: e051_09_01_02 9 | sql: 10 | - CREATE TABLE TABLE_E051_09_01_02 ( A INT, B INT ) 11 | - SELECT DISTINCT MYTEMP . X , Y FROM TABLE_E051_09_01_02 AS MYTEMP ( X, Y ) 12 | --- 13 | feature: E051-09 14 | id: e051_09_01_03 15 | sql: 16 | - CREATE TABLE TABLE_E051_09_01_03 ( A INT, B INT ) 17 | - SELECT MYTEMP . X , Y FROM TABLE_E051_09_01_03 AS MYTEMP ( X, Y ) 18 | -------------------------------------------------------------------------------- /standards/2016/E/E051-09.yml: -------------------------------------------------------------------------------- 1 | sql: 2 | - CREATE TABLE TN ( A INT, B INT ) 3 | - SELECT [ ALL | DISTINCT ] MYTEMP X , Y FROM TN AS MYTEMP ( X, Y ) 4 | -------------------------------------------------------------------------------- /standards/2016/E/E051.tests.yml: -------------------------------------------------------------------------------- 1 | feature: E051 2 | id: e051_01_01 3 | sql: 4 | - CREATE TABLE TABLE_E051_01_01 ( A INT ) 5 | - SELECT A FROM TABLE_E051_01_01 6 | --- 7 | feature: E051 8 | id: e051_01_02 9 | sql: 10 | - CREATE TABLE TABLE_E051_01_02 ( A INT ) 11 | - SELECT A FROM TABLE_E051_01_02 WHERE A = 1 12 | --- 13 | feature: E051 14 | id: e051_01_03 15 | sql: 16 | - CREATE TABLE TABLE_E051_01_03 ( A INT ) 17 | - SELECT ALL A FROM TABLE_E051_01_03 18 | --- 19 | feature: E051 20 | id: e051_01_04 21 | sql: 22 | - CREATE TABLE TABLE_E051_01_04 ( A INT ) 23 | - SELECT ALL A FROM TABLE_E051_01_04 WHERE A = 1 24 | -------------------------------------------------------------------------------- /standards/2016/E/E051.yml: -------------------------------------------------------------------------------- 1 | sql: 2 | - CREATE TABLE TN ( A INT ) 3 | - SELECT [ ALL ] A FROM TN [ WHERE A = 1 ] 4 | -------------------------------------------------------------------------------- /standards/2016/E/E061-01.tests.yml: -------------------------------------------------------------------------------- 1 | feature: E061-01 2 | id: e061_01_01_01 3 | sql: 4 | - CREATE TABLE TABLE_E061_01_01_01 ( A INT ) 5 | - SELECT A FROM TABLE_E061_01_01_01 WHERE A < 1 6 | --- 7 | feature: E061-01 8 | id: e061_01_01_02 9 | sql: 10 | - CREATE TABLE TABLE_E061_01_01_02 ( A INT ) 11 | - SELECT A FROM TABLE_E061_01_01_02 WHERE A <= 1 12 | --- 13 | feature: E061-01 14 | id: e061_01_01_03 15 | sql: 16 | - CREATE TABLE TABLE_E061_01_01_03 ( A INT ) 17 | - SELECT A FROM TABLE_E061_01_01_03 WHERE A <> 1 18 | --- 19 | feature: E061-01 20 | id: e061_01_01_04 21 | sql: 22 | - CREATE TABLE TABLE_E061_01_01_04 ( A INT ) 23 | - SELECT A FROM TABLE_E061_01_01_04 WHERE A = 1 24 | --- 25 | feature: E061-01 26 | id: e061_01_01_05 27 | sql: 28 | - CREATE TABLE TABLE_E061_01_01_05 ( A INT ) 29 | - SELECT A FROM TABLE_E061_01_01_05 WHERE A > 1 30 | --- 31 | feature: E061-01 32 | id: e061_01_01_06 33 | sql: 34 | - CREATE TABLE TABLE_E061_01_01_06 ( A INT ) 35 | - SELECT A FROM TABLE_E061_01_01_06 WHERE A >= 1 36 | --- 37 | feature: E061-01 38 | id: e061_01_01_07 39 | sql: 40 | - CREATE TABLE TABLE_E061_01_01_07 ( A INT ) 41 | - SELECT ALL A FROM TABLE_E061_01_01_07 WHERE A < 1 42 | --- 43 | feature: E061-01 44 | id: e061_01_01_08 45 | sql: 46 | - CREATE TABLE TABLE_E061_01_01_08 ( A INT ) 47 | - SELECT ALL A FROM TABLE_E061_01_01_08 WHERE A <= 1 48 | --- 49 | feature: E061-01 50 | id: e061_01_01_09 51 | sql: 52 | - CREATE TABLE TABLE_E061_01_01_09 ( A INT ) 53 | - SELECT ALL A FROM TABLE_E061_01_01_09 WHERE A <> 1 54 | --- 55 | feature: E061-01 56 | id: e061_01_01_10 57 | sql: 58 | - CREATE TABLE TABLE_E061_01_01_10 ( A INT ) 59 | - SELECT ALL A FROM TABLE_E061_01_01_10 WHERE A = 1 60 | --- 61 | feature: E061-01 62 | id: e061_01_01_11 63 | sql: 64 | - CREATE TABLE TABLE_E061_01_01_11 ( A INT ) 65 | - SELECT ALL A FROM TABLE_E061_01_01_11 WHERE A > 1 66 | --- 67 | feature: E061-01 68 | id: e061_01_01_12 69 | sql: 70 | - CREATE TABLE TABLE_E061_01_01_12 ( A INT ) 71 | - SELECT ALL A FROM TABLE_E061_01_01_12 WHERE A >= 1 72 | --- 73 | feature: E061-01 74 | id: e061_01_01_13 75 | sql: 76 | - CREATE TABLE TABLE_E061_01_01_13 ( A INT ) 77 | - SELECT DISTINCT A FROM TABLE_E061_01_01_13 WHERE A < 1 78 | --- 79 | feature: E061-01 80 | id: e061_01_01_14 81 | sql: 82 | - CREATE TABLE TABLE_E061_01_01_14 ( A INT ) 83 | - SELECT DISTINCT A FROM TABLE_E061_01_01_14 WHERE A <= 1 84 | --- 85 | feature: E061-01 86 | id: e061_01_01_15 87 | sql: 88 | - CREATE TABLE TABLE_E061_01_01_15 ( A INT ) 89 | - SELECT DISTINCT A FROM TABLE_E061_01_01_15 WHERE A <> 1 90 | --- 91 | feature: E061-01 92 | id: e061_01_01_16 93 | sql: 94 | - CREATE TABLE TABLE_E061_01_01_16 ( A INT ) 95 | - SELECT DISTINCT A FROM TABLE_E061_01_01_16 WHERE A = 1 96 | --- 97 | feature: E061-01 98 | id: e061_01_01_17 99 | sql: 100 | - CREATE TABLE TABLE_E061_01_01_17 ( A INT ) 101 | - SELECT DISTINCT A FROM TABLE_E061_01_01_17 WHERE A > 1 102 | --- 103 | feature: E061-01 104 | id: e061_01_01_18 105 | sql: 106 | - CREATE TABLE TABLE_E061_01_01_18 ( A INT ) 107 | - SELECT DISTINCT A FROM TABLE_E061_01_01_18 WHERE A >= 1 108 | -------------------------------------------------------------------------------- /standards/2016/E/E061-01.yml: -------------------------------------------------------------------------------- 1 | sql: 2 | - CREATE TABLE TN ( A INT ) 3 | - SELECT [ ALL | DISTINCT ] A FROM TN WHERE A 1 4 | -------------------------------------------------------------------------------- /standards/2016/E/E061-02.tests.yml: -------------------------------------------------------------------------------- 1 | feature: E061-02 2 | id: e061_02_01_01 3 | sql: 4 | - CREATE TABLE TABLE_E061_02_01_01 ( A INT ) 5 | - SELECT A FROM TABLE_E061_02_01_01 WHERE A BETWEEN 1 AND 1 6 | --- 7 | feature: E061-02 8 | id: e061_02_01_02 9 | sql: 10 | - CREATE TABLE TABLE_E061_02_01_02 ( A INT ) 11 | - SELECT A FROM TABLE_E061_02_01_02 WHERE A BETWEEN ASYMMETRIC 1 AND 1 12 | --- 13 | feature: E061-02 14 | id: e061_02_01_03 15 | sql: 16 | - CREATE TABLE TABLE_E061_02_01_03 ( A INT ) 17 | - SELECT A FROM TABLE_E061_02_01_03 WHERE A BETWEEN SYMMETRIC 1 AND 1 18 | --- 19 | feature: E061-02 20 | id: e061_02_01_04 21 | sql: 22 | - CREATE TABLE TABLE_E061_02_01_04 ( A INT ) 23 | - SELECT A FROM TABLE_E061_02_01_04 WHERE A NOT BETWEEN 1 AND 1 24 | --- 25 | feature: E061-02 26 | id: e061_02_01_05 27 | sql: 28 | - CREATE TABLE TABLE_E061_02_01_05 ( A INT ) 29 | - SELECT A FROM TABLE_E061_02_01_05 WHERE A NOT BETWEEN ASYMMETRIC 1 AND 1 30 | --- 31 | feature: E061-02 32 | id: e061_02_01_06 33 | sql: 34 | - CREATE TABLE TABLE_E061_02_01_06 ( A INT ) 35 | - SELECT A FROM TABLE_E061_02_01_06 WHERE A NOT BETWEEN SYMMETRIC 1 AND 1 36 | -------------------------------------------------------------------------------- /standards/2016/E/E061-02.yml: -------------------------------------------------------------------------------- 1 | sql: 2 | - CREATE TABLE TN ( A INT ) 3 | - SELECT A FROM TN WHERE A 4 | override: 5 | row value predicand: 1 6 | -------------------------------------------------------------------------------- /standards/2016/E/E061-03.tests.yml: -------------------------------------------------------------------------------- 1 | feature: E061-03 2 | id: e061_03_01_01 3 | sql: 4 | - CREATE TABLE TABLE_E061_03_01_01 ( A INT ) 5 | - SELECT A FROM TABLE_E061_03_01_01 WHERE A IN ( 1 ) 6 | --- 7 | feature: E061-03 8 | id: e061_03_01_02 9 | sql: 10 | - CREATE TABLE TABLE_E061_03_01_02 ( A INT ) 11 | - SELECT A FROM TABLE_E061_03_01_02 WHERE A IN ( 1, 2 ) 12 | --- 13 | feature: E061-03 14 | id: e061_03_01_03 15 | sql: 16 | - CREATE TABLE TABLE_E061_03_01_03 ( A INT ) 17 | - SELECT A FROM TABLE_E061_03_01_03 WHERE A NOT IN ( 1 ) 18 | --- 19 | feature: E061-03 20 | id: e061_03_01_04 21 | sql: 22 | - CREATE TABLE TABLE_E061_03_01_04 ( A INT ) 23 | - SELECT A FROM TABLE_E061_03_01_04 WHERE A NOT IN ( 1, 2 ) 24 | -------------------------------------------------------------------------------- /standards/2016/E/E061-03.yml: -------------------------------------------------------------------------------- 1 | sql: 2 | - CREATE TABLE TN ( A INT ) 3 | - SELECT A FROM TN WHERE A 4 | override: 5 | row value predicand: 1 6 | table subquery: '( 1 )' 7 | in value list: '1, 2' 8 | -------------------------------------------------------------------------------- /standards/2016/E/E061-04.tests.yml: -------------------------------------------------------------------------------- 1 | feature: E061-04 2 | id: e061_04_01_01 3 | sql: 4 | - CREATE TABLE TABLE_E061_04_01_01 ( A VARCHAR ( 255 ) ) 5 | - SELECT A FROM TABLE_E061_04_01_01 WHERE A LIKE 'foo' 6 | --- 7 | feature: E061-04 8 | id: e061_04_01_02 9 | sql: 10 | - CREATE TABLE TABLE_E061_04_01_02 ( A VARCHAR ( 255 ) ) 11 | - SELECT A FROM TABLE_E061_04_01_02 WHERE A NOT LIKE 'foo' 12 | -------------------------------------------------------------------------------- /standards/2016/E/E061-04.yml: -------------------------------------------------------------------------------- 1 | sql: 2 | - CREATE TABLE TN ( A VARCHAR(255) ) 3 | - SELECT A FROM TN WHERE A [ NOT ] LIKE 'foo' 4 | -------------------------------------------------------------------------------- /standards/2016/E/E061-05.tests.yml: -------------------------------------------------------------------------------- 1 | feature: E061-05 2 | id: e061_05_01_01 3 | sql: 4 | - CREATE TABLE TABLE_E061_05_01_01 ( A VARCHAR ( 255 ) ) 5 | - SELECT A FROM TABLE_E061_05_01_01 WHERE A LIKE 'foo' ESCAPE 'f' 6 | --- 7 | feature: E061-05 8 | id: e061_05_01_02 9 | sql: 10 | - CREATE TABLE TABLE_E061_05_01_02 ( A VARCHAR ( 255 ) ) 11 | - SELECT A FROM TABLE_E061_05_01_02 WHERE A NOT LIKE 'foo' ESCAPE 'f' 12 | -------------------------------------------------------------------------------- /standards/2016/E/E061-05.yml: -------------------------------------------------------------------------------- 1 | sql: 2 | - CREATE TABLE TN ( A VARCHAR(255) ) 3 | - SELECT A FROM TN WHERE A [ NOT ] LIKE 'foo' ESCAPE 'f' 4 | -------------------------------------------------------------------------------- /standards/2016/E/E061-06.tests.yml: -------------------------------------------------------------------------------- 1 | feature: E061-06 2 | id: e061_06_01_01 3 | sql: 4 | - CREATE TABLE TABLE_E061_06_01_01 ( A INT ) 5 | - SELECT A FROM TABLE_E061_06_01_01 WHERE A IS NOT NULL 6 | --- 7 | feature: E061-06 8 | id: e061_06_01_02 9 | sql: 10 | - CREATE TABLE TABLE_E061_06_01_02 ( A INT ) 11 | - SELECT A FROM TABLE_E061_06_01_02 WHERE A IS NULL 12 | -------------------------------------------------------------------------------- /standards/2016/E/E061-06.yml: -------------------------------------------------------------------------------- 1 | sql: 2 | - CREATE TABLE TN ( A INT ) 3 | - SELECT A FROM TN WHERE A 4 | -------------------------------------------------------------------------------- /standards/2016/E/E061-07.tests.yml: -------------------------------------------------------------------------------- 1 | feature: E061-07 2 | id: e061_07_01_01 3 | sql: 4 | - CREATE TABLE TABLE_E061_07_01_01 ( A INT ) 5 | - SELECT A FROM TABLE_E061_07_01_01 WHERE A < ALL ( SELECT 1 ) 6 | --- 7 | feature: E061-07 8 | id: e061_07_01_02 9 | sql: 10 | - CREATE TABLE TABLE_E061_07_01_02 ( A INT ) 11 | - SELECT A FROM TABLE_E061_07_01_02 WHERE A < ANY ( SELECT 1 ) 12 | --- 13 | feature: E061-07 14 | id: e061_07_01_03 15 | sql: 16 | - CREATE TABLE TABLE_E061_07_01_03 ( A INT ) 17 | - SELECT A FROM TABLE_E061_07_01_03 WHERE A < SOME ( SELECT 1 ) 18 | --- 19 | feature: E061-07 20 | id: e061_07_01_04 21 | sql: 22 | - CREATE TABLE TABLE_E061_07_01_04 ( A INT ) 23 | - SELECT A FROM TABLE_E061_07_01_04 WHERE A <= ALL ( SELECT 1 ) 24 | --- 25 | feature: E061-07 26 | id: e061_07_01_05 27 | sql: 28 | - CREATE TABLE TABLE_E061_07_01_05 ( A INT ) 29 | - SELECT A FROM TABLE_E061_07_01_05 WHERE A <= ANY ( SELECT 1 ) 30 | --- 31 | feature: E061-07 32 | id: e061_07_01_06 33 | sql: 34 | - CREATE TABLE TABLE_E061_07_01_06 ( A INT ) 35 | - SELECT A FROM TABLE_E061_07_01_06 WHERE A <= SOME ( SELECT 1 ) 36 | --- 37 | feature: E061-07 38 | id: e061_07_01_07 39 | sql: 40 | - CREATE TABLE TABLE_E061_07_01_07 ( A INT ) 41 | - SELECT A FROM TABLE_E061_07_01_07 WHERE A <> ALL ( SELECT 1 ) 42 | --- 43 | feature: E061-07 44 | id: e061_07_01_08 45 | sql: 46 | - CREATE TABLE TABLE_E061_07_01_08 ( A INT ) 47 | - SELECT A FROM TABLE_E061_07_01_08 WHERE A <> ANY ( SELECT 1 ) 48 | --- 49 | feature: E061-07 50 | id: e061_07_01_09 51 | sql: 52 | - CREATE TABLE TABLE_E061_07_01_09 ( A INT ) 53 | - SELECT A FROM TABLE_E061_07_01_09 WHERE A <> SOME ( SELECT 1 ) 54 | --- 55 | feature: E061-07 56 | id: e061_07_01_10 57 | sql: 58 | - CREATE TABLE TABLE_E061_07_01_10 ( A INT ) 59 | - SELECT A FROM TABLE_E061_07_01_10 WHERE A = ALL ( SELECT 1 ) 60 | --- 61 | feature: E061-07 62 | id: e061_07_01_11 63 | sql: 64 | - CREATE TABLE TABLE_E061_07_01_11 ( A INT ) 65 | - SELECT A FROM TABLE_E061_07_01_11 WHERE A = ANY ( SELECT 1 ) 66 | --- 67 | feature: E061-07 68 | id: e061_07_01_12 69 | sql: 70 | - CREATE TABLE TABLE_E061_07_01_12 ( A INT ) 71 | - SELECT A FROM TABLE_E061_07_01_12 WHERE A = SOME ( SELECT 1 ) 72 | --- 73 | feature: E061-07 74 | id: e061_07_01_13 75 | sql: 76 | - CREATE TABLE TABLE_E061_07_01_13 ( A INT ) 77 | - SELECT A FROM TABLE_E061_07_01_13 WHERE A > ALL ( SELECT 1 ) 78 | --- 79 | feature: E061-07 80 | id: e061_07_01_14 81 | sql: 82 | - CREATE TABLE TABLE_E061_07_01_14 ( A INT ) 83 | - SELECT A FROM TABLE_E061_07_01_14 WHERE A > ANY ( SELECT 1 ) 84 | --- 85 | feature: E061-07 86 | id: e061_07_01_15 87 | sql: 88 | - CREATE TABLE TABLE_E061_07_01_15 ( A INT ) 89 | - SELECT A FROM TABLE_E061_07_01_15 WHERE A > SOME ( SELECT 1 ) 90 | --- 91 | feature: E061-07 92 | id: e061_07_01_16 93 | sql: 94 | - CREATE TABLE TABLE_E061_07_01_16 ( A INT ) 95 | - SELECT A FROM TABLE_E061_07_01_16 WHERE A >= ALL ( SELECT 1 ) 96 | --- 97 | feature: E061-07 98 | id: e061_07_01_17 99 | sql: 100 | - CREATE TABLE TABLE_E061_07_01_17 ( A INT ) 101 | - SELECT A FROM TABLE_E061_07_01_17 WHERE A >= ANY ( SELECT 1 ) 102 | --- 103 | feature: E061-07 104 | id: e061_07_01_18 105 | sql: 106 | - CREATE TABLE TABLE_E061_07_01_18 ( A INT ) 107 | - SELECT A FROM TABLE_E061_07_01_18 WHERE A >= SOME ( SELECT 1 ) 108 | -------------------------------------------------------------------------------- /standards/2016/E/E061-07.yml: -------------------------------------------------------------------------------- 1 | # The spec is ambiguous about this: 2 | # 3 | # "": Without support for 4 | # 5 | # However, you can only have a table query on the right side, so they must mean 6 | # that the query must must not reference another table? 7 | 8 | sql: 9 | - CREATE TABLE TN ( A INT ) 10 | - SELECT A FROM TN WHERE A 11 | override: 12 | table subquery: ( SELECT 1 ) 13 | -------------------------------------------------------------------------------- /standards/2016/E/E061-08.tests.yml: -------------------------------------------------------------------------------- 1 | feature: E061-08 2 | id: e061_08_01_01 3 | sql: 4 | - CREATE TABLE TABLE_E061_08_01_01 ( A INT ) 5 | - SELECT A FROM TABLE_E061_08_01_01 WHERE EXISTS ( SELECT 1 ) 6 | -------------------------------------------------------------------------------- /standards/2016/E/E061-08.yml: -------------------------------------------------------------------------------- 1 | sql: 2 | - CREATE TABLE TN ( A INT ) 3 | - SELECT A FROM TN WHERE EXISTS ( SELECT 1 ) 4 | -------------------------------------------------------------------------------- /standards/2016/E/E061-09.tests.yml: -------------------------------------------------------------------------------- 1 | feature: E061-09 2 | id: e061_09_01_01 3 | sql: 4 | - CREATE TABLE TABLE_E061_09_01_01 ( A INT ) 5 | - SELECT A FROM TABLE_E061_09_01_01 WHERE A < ( SELECT 1 ) 6 | --- 7 | feature: E061-09 8 | id: e061_09_01_02 9 | sql: 10 | - CREATE TABLE TABLE_E061_09_01_02 ( A INT ) 11 | - SELECT A FROM TABLE_E061_09_01_02 WHERE A <= ( SELECT 1 ) 12 | --- 13 | feature: E061-09 14 | id: e061_09_01_03 15 | sql: 16 | - CREATE TABLE TABLE_E061_09_01_03 ( A INT ) 17 | - SELECT A FROM TABLE_E061_09_01_03 WHERE A <> ( SELECT 1 ) 18 | --- 19 | feature: E061-09 20 | id: e061_09_01_04 21 | sql: 22 | - CREATE TABLE TABLE_E061_09_01_04 ( A INT ) 23 | - SELECT A FROM TABLE_E061_09_01_04 WHERE A = ( SELECT 1 ) 24 | --- 25 | feature: E061-09 26 | id: e061_09_01_05 27 | sql: 28 | - CREATE TABLE TABLE_E061_09_01_05 ( A INT ) 29 | - SELECT A FROM TABLE_E061_09_01_05 WHERE A > ( SELECT 1 ) 30 | --- 31 | feature: E061-09 32 | id: e061_09_01_06 33 | sql: 34 | - CREATE TABLE TABLE_E061_09_01_06 ( A INT ) 35 | - SELECT A FROM TABLE_E061_09_01_06 WHERE A >= ( SELECT 1 ) 36 | -------------------------------------------------------------------------------- /standards/2016/E/E061-09.yml: -------------------------------------------------------------------------------- 1 | sql: 2 | - CREATE TABLE TN ( A INT ) 3 | - SELECT A FROM TN WHERE A ( SELECT 1 ) 4 | -------------------------------------------------------------------------------- /standards/2016/E/E061-11.tests.yml: -------------------------------------------------------------------------------- 1 | feature: E061-11 2 | id: e061_11_01_01 3 | sql: 4 | - CREATE TABLE TABLE_E061_11_01_01 ( A INT ) 5 | - SELECT A FROM TABLE_E061_11_01_01 WHERE A IN ( SELECT 1 ) 6 | -------------------------------------------------------------------------------- /standards/2016/E/E061-11.yml: -------------------------------------------------------------------------------- 1 | sql: 2 | - CREATE TABLE TN ( A INT ) 3 | - SELECT A FROM TN WHERE A IN ( SELECT 1 ) 4 | -------------------------------------------------------------------------------- /standards/2016/E/E061-12.tests.yml: -------------------------------------------------------------------------------- 1 | feature: E061-12 2 | id: e061_12_01_01 3 | sql: 4 | - CREATE TABLE TABLE_E061_12_01_01 ( A INT ) 5 | - SELECT A FROM TABLE_E061_12_01_01 WHERE A < ALL ( SELECT A FROM TABLE_E061_12_01_01 6 | ) 7 | --- 8 | feature: E061-12 9 | id: e061_12_01_02 10 | sql: 11 | - CREATE TABLE TABLE_E061_12_01_02 ( A INT ) 12 | - SELECT A FROM TABLE_E061_12_01_02 WHERE A < ANY ( SELECT A FROM TABLE_E061_12_01_02 13 | ) 14 | --- 15 | feature: E061-12 16 | id: e061_12_01_03 17 | sql: 18 | - CREATE TABLE TABLE_E061_12_01_03 ( A INT ) 19 | - SELECT A FROM TABLE_E061_12_01_03 WHERE A < SOME ( SELECT A FROM TABLE_E061_12_01_03 20 | ) 21 | --- 22 | feature: E061-12 23 | id: e061_12_01_04 24 | sql: 25 | - CREATE TABLE TABLE_E061_12_01_04 ( A INT ) 26 | - SELECT A FROM TABLE_E061_12_01_04 WHERE A <= ALL ( SELECT A FROM TABLE_E061_12_01_04 27 | ) 28 | --- 29 | feature: E061-12 30 | id: e061_12_01_05 31 | sql: 32 | - CREATE TABLE TABLE_E061_12_01_05 ( A INT ) 33 | - SELECT A FROM TABLE_E061_12_01_05 WHERE A <= ANY ( SELECT A FROM TABLE_E061_12_01_05 34 | ) 35 | --- 36 | feature: E061-12 37 | id: e061_12_01_06 38 | sql: 39 | - CREATE TABLE TABLE_E061_12_01_06 ( A INT ) 40 | - SELECT A FROM TABLE_E061_12_01_06 WHERE A <= SOME ( SELECT A FROM TABLE_E061_12_01_06 41 | ) 42 | --- 43 | feature: E061-12 44 | id: e061_12_01_07 45 | sql: 46 | - CREATE TABLE TABLE_E061_12_01_07 ( A INT ) 47 | - SELECT A FROM TABLE_E061_12_01_07 WHERE A <> ALL ( SELECT A FROM TABLE_E061_12_01_07 48 | ) 49 | --- 50 | feature: E061-12 51 | id: e061_12_01_08 52 | sql: 53 | - CREATE TABLE TABLE_E061_12_01_08 ( A INT ) 54 | - SELECT A FROM TABLE_E061_12_01_08 WHERE A <> ANY ( SELECT A FROM TABLE_E061_12_01_08 55 | ) 56 | --- 57 | feature: E061-12 58 | id: e061_12_01_09 59 | sql: 60 | - CREATE TABLE TABLE_E061_12_01_09 ( A INT ) 61 | - SELECT A FROM TABLE_E061_12_01_09 WHERE A <> SOME ( SELECT A FROM TABLE_E061_12_01_09 62 | ) 63 | --- 64 | feature: E061-12 65 | id: e061_12_01_10 66 | sql: 67 | - CREATE TABLE TABLE_E061_12_01_10 ( A INT ) 68 | - SELECT A FROM TABLE_E061_12_01_10 WHERE A = ALL ( SELECT A FROM TABLE_E061_12_01_10 69 | ) 70 | --- 71 | feature: E061-12 72 | id: e061_12_01_11 73 | sql: 74 | - CREATE TABLE TABLE_E061_12_01_11 ( A INT ) 75 | - SELECT A FROM TABLE_E061_12_01_11 WHERE A = ANY ( SELECT A FROM TABLE_E061_12_01_11 76 | ) 77 | --- 78 | feature: E061-12 79 | id: e061_12_01_12 80 | sql: 81 | - CREATE TABLE TABLE_E061_12_01_12 ( A INT ) 82 | - SELECT A FROM TABLE_E061_12_01_12 WHERE A = SOME ( SELECT A FROM TABLE_E061_12_01_12 83 | ) 84 | --- 85 | feature: E061-12 86 | id: e061_12_01_13 87 | sql: 88 | - CREATE TABLE TABLE_E061_12_01_13 ( A INT ) 89 | - SELECT A FROM TABLE_E061_12_01_13 WHERE A > ALL ( SELECT A FROM TABLE_E061_12_01_13 90 | ) 91 | --- 92 | feature: E061-12 93 | id: e061_12_01_14 94 | sql: 95 | - CREATE TABLE TABLE_E061_12_01_14 ( A INT ) 96 | - SELECT A FROM TABLE_E061_12_01_14 WHERE A > ANY ( SELECT A FROM TABLE_E061_12_01_14 97 | ) 98 | --- 99 | feature: E061-12 100 | id: e061_12_01_15 101 | sql: 102 | - CREATE TABLE TABLE_E061_12_01_15 ( A INT ) 103 | - SELECT A FROM TABLE_E061_12_01_15 WHERE A > SOME ( SELECT A FROM TABLE_E061_12_01_15 104 | ) 105 | --- 106 | feature: E061-12 107 | id: e061_12_01_16 108 | sql: 109 | - CREATE TABLE TABLE_E061_12_01_16 ( A INT ) 110 | - SELECT A FROM TABLE_E061_12_01_16 WHERE A >= ALL ( SELECT A FROM TABLE_E061_12_01_16 111 | ) 112 | --- 113 | feature: E061-12 114 | id: e061_12_01_17 115 | sql: 116 | - CREATE TABLE TABLE_E061_12_01_17 ( A INT ) 117 | - SELECT A FROM TABLE_E061_12_01_17 WHERE A >= ANY ( SELECT A FROM TABLE_E061_12_01_17 118 | ) 119 | --- 120 | feature: E061-12 121 | id: e061_12_01_18 122 | sql: 123 | - CREATE TABLE TABLE_E061_12_01_18 ( A INT ) 124 | - SELECT A FROM TABLE_E061_12_01_18 WHERE A >= SOME ( SELECT A FROM TABLE_E061_12_01_18 125 | ) 126 | -------------------------------------------------------------------------------- /standards/2016/E/E061-12.yml: -------------------------------------------------------------------------------- 1 | sql: 2 | - CREATE TABLE TN ( A INT ) 3 | - SELECT A FROM TN WHERE A 4 | override: 5 | table subquery: ( SELECT A FROM TN ) 6 | -------------------------------------------------------------------------------- /standards/2016/E/E061-13.tests.yml: -------------------------------------------------------------------------------- 1 | feature: E061-13 2 | id: e061_13_01_01 3 | sql: 4 | - CREATE TABLE TABLE_E061_13_01_011 ( A INT ) 5 | - CREATE TABLE TABLE_E061_13_01_012 ( B INT ) 6 | - SELECT A FROM TABLE_E061_13_01_011 WHERE A IN ( SELECT B FROM TABLE_E061_13_01_012 7 | WHERE B = A ) 8 | --- 9 | feature: E061-13 10 | id: e061_13_01_02 11 | sql: 12 | - CREATE TABLE TABLE_E061_13_01_021 ( A INT ) 13 | - CREATE TABLE TABLE_E061_13_01_022 ( B INT ) 14 | - SELECT A FROM TABLE_E061_13_01_021 WHERE A NOT IN ( SELECT B FROM TABLE_E061_13_01_022 15 | WHERE B = A ) 16 | -------------------------------------------------------------------------------- /standards/2016/E/E061-13.yml: -------------------------------------------------------------------------------- 1 | sql: 2 | - CREATE TABLE TN1 ( A INT ) 3 | - CREATE TABLE TN2 ( B INT ) 4 | - SELECT A FROM TN1 WHERE A [ NOT ] IN ( SELECT B FROM TN2 WHERE B = A ) 5 | -------------------------------------------------------------------------------- /standards/2016/E/E061-14.tests.yml: -------------------------------------------------------------------------------- 1 | feature: E061-14 2 | id: e061_14_01_01 3 | sql: 4 | - CREATE TABLE TABLE_E061_14_01_01 ( A INT ) 5 | - SELECT A FROM TABLE_E061_14_01_01 WHERE A = 1 6 | -------------------------------------------------------------------------------- /standards/2016/E/E061-14.yml: -------------------------------------------------------------------------------- 1 | sql: 2 | - CREATE TABLE TN ( A INT ) 3 | - SELECT A FROM TN WHERE A = 1 4 | -------------------------------------------------------------------------------- /standards/2016/E/E071-01.tests.yml: -------------------------------------------------------------------------------- 1 | feature: E071-01 2 | id: e071_01_01_01 3 | sql: 4 | - CREATE TABLE TABLE_E071_01_01_011 ( A INT ) 5 | - CREATE TABLE TABLE_E071_01_01_012 ( B INT ) 6 | - SELECT A FROM TABLE_E071_01_01_011 UNION DISTINCT SELECT B FROM TABLE_E071_01_01_012 7 | --- 8 | feature: E071-01 9 | id: e071_01_01_02 10 | sql: 11 | - CREATE TABLE TABLE_E071_01_01_021 ( A INT ) 12 | - CREATE TABLE TABLE_E071_01_01_022 ( B INT ) 13 | - SELECT A FROM TABLE_E071_01_01_021 UNION SELECT B FROM TABLE_E071_01_01_022 14 | -------------------------------------------------------------------------------- /standards/2016/E/E071-01.yml: -------------------------------------------------------------------------------- 1 | sql: 2 | - CREATE TABLE TN1 ( A INT ) 3 | - CREATE TABLE TN2 ( B INT ) 4 | - SELECT A FROM TN1 UNION [ DISTINCT ] SELECT B FROM TN2 5 | -------------------------------------------------------------------------------- /standards/2016/E/E071-02.tests.yml: -------------------------------------------------------------------------------- 1 | feature: E071-02 2 | id: e071_02_01_01 3 | sql: 4 | - CREATE TABLE TABLE_E071_02_01_011 ( A INT ) 5 | - CREATE TABLE TABLE_E071_02_01_012 ( B INT ) 6 | - SELECT A FROM TABLE_E071_02_01_011 UNION ALL SELECT B FROM TABLE_E071_02_01_012 7 | -------------------------------------------------------------------------------- /standards/2016/E/E071-02.yml: -------------------------------------------------------------------------------- 1 | sql: 2 | - CREATE TABLE TN1 ( A INT ) 3 | - CREATE TABLE TN2 ( B INT ) 4 | - SELECT A FROM TN1 UNION ALL SELECT B FROM TN2 5 | -------------------------------------------------------------------------------- /standards/2016/E/E071-03.tests.yml: -------------------------------------------------------------------------------- 1 | feature: E071-03 2 | id: e071_03_01_01 3 | sql: 4 | - CREATE TABLE TABLE_E071_03_01_011 ( A INT ) 5 | - CREATE TABLE TABLE_E071_03_01_012 ( B INT ) 6 | - SELECT A FROM TABLE_E071_03_01_011 EXCEPT DISTINCT SELECT B FROM TABLE_E071_03_01_012 7 | --- 8 | feature: E071-03 9 | id: e071_03_01_02 10 | sql: 11 | - CREATE TABLE TABLE_E071_03_01_021 ( A INT ) 12 | - CREATE TABLE TABLE_E071_03_01_022 ( B INT ) 13 | - SELECT A FROM TABLE_E071_03_01_021 EXCEPT SELECT B FROM TABLE_E071_03_01_022 14 | -------------------------------------------------------------------------------- /standards/2016/E/E071-03.yml: -------------------------------------------------------------------------------- 1 | sql: 2 | - CREATE TABLE TN1 ( A INT ) 3 | - CREATE TABLE TN2 ( B INT ) 4 | - SELECT A FROM TN1 EXCEPT [ DISTINCT ] SELECT B FROM TN2 5 | -------------------------------------------------------------------------------- /standards/2016/E/E071-05.tests.yml: -------------------------------------------------------------------------------- 1 | feature: E071-05 2 | id: e071_05_01_01 3 | sql: 4 | - CREATE TABLE TABLE_E071_05_01_011 ( A INT ) 5 | - CREATE TABLE TABLE_E071_05_01_012 ( B FLOAT ) 6 | - SELECT A FROM TABLE_E071_05_01_011 UNION ALL SELECT B FROM TABLE_E071_05_01_012 7 | --- 8 | feature: E071-05 9 | id: e071_05_01_02 10 | sql: 11 | - CREATE TABLE TABLE_E071_05_01_021 ( A INT ) 12 | - CREATE TABLE TABLE_E071_05_01_022 ( B FLOAT ) 13 | - SELECT A FROM TABLE_E071_05_01_021 UNION DISTINCT SELECT B FROM TABLE_E071_05_01_022 14 | --- 15 | feature: E071-05 16 | id: e071_05_01_03 17 | sql: 18 | - CREATE TABLE TABLE_E071_05_01_031 ( A INT ) 19 | - CREATE TABLE TABLE_E071_05_01_032 ( B FLOAT ) 20 | - SELECT A FROM TABLE_E071_05_01_031 UNION SELECT B FROM TABLE_E071_05_01_032 21 | --- 22 | feature: E071-05 23 | id: e071_05_02_01 24 | sql: 25 | - CREATE TABLE TABLE_E071_05_02_011 ( A INT ) 26 | - CREATE TABLE TABLE_E071_05_02_012 ( B FLOAT ) 27 | - SELECT A FROM TABLE_E071_05_02_011 EXCEPT DISTINCT SELECT B FROM TABLE_E071_05_02_012 28 | --- 29 | feature: E071-05 30 | id: e071_05_02_02 31 | sql: 32 | - CREATE TABLE TABLE_E071_05_02_021 ( A INT ) 33 | - CREATE TABLE TABLE_E071_05_02_022 ( B FLOAT ) 34 | - SELECT A FROM TABLE_E071_05_02_021 EXCEPT SELECT B FROM TABLE_E071_05_02_022 35 | -------------------------------------------------------------------------------- /standards/2016/E/E071-05.yml: -------------------------------------------------------------------------------- 1 | sql: 2 | - CREATE TABLE TN1 ( A INT ) 3 | - CREATE TABLE TN2 ( B FLOAT ) 4 | - SELECT A FROM TN1 UNION [ ALL | DISTINCT ] SELECT B FROM TN2 5 | --- 6 | sql: 7 | - CREATE TABLE TN1 ( A INT ) 8 | - CREATE TABLE TN2 ( B FLOAT ) 9 | - SELECT A FROM TN1 EXCEPT [ DISTINCT ] SELECT B FROM TN2 10 | -------------------------------------------------------------------------------- /standards/2016/E/E071-06.tests.yml: -------------------------------------------------------------------------------- 1 | feature: E071-06 2 | id: e071_06_01_01 3 | sql: 4 | - CREATE TABLE TABLE_E071_06_01_011 ( A INT ) 5 | - CREATE TABLE TABLE_E071_06_01_012 ( B FLOAT ) 6 | - SELECT A FROM TABLE_E071_06_01_011 WHERE EXISTS ( SELECT A FROM TABLE_E071_06_01_011 7 | UNION ALL SELECT B FROM TABLE_E071_06_01_012 ) 8 | --- 9 | feature: E071-06 10 | id: e071_06_01_02 11 | sql: 12 | - CREATE TABLE TABLE_E071_06_01_021 ( A INT ) 13 | - CREATE TABLE TABLE_E071_06_01_022 ( B FLOAT ) 14 | - SELECT A FROM TABLE_E071_06_01_021 WHERE EXISTS ( SELECT A FROM TABLE_E071_06_01_021 15 | UNION DISTINCT SELECT B FROM TABLE_E071_06_01_022 ) 16 | --- 17 | feature: E071-06 18 | id: e071_06_01_03 19 | sql: 20 | - CREATE TABLE TABLE_E071_06_01_031 ( A INT ) 21 | - CREATE TABLE TABLE_E071_06_01_032 ( B FLOAT ) 22 | - SELECT A FROM TABLE_E071_06_01_031 WHERE EXISTS ( SELECT A FROM TABLE_E071_06_01_031 23 | UNION SELECT B FROM TABLE_E071_06_01_032 ) 24 | --- 25 | feature: E071-06 26 | id: e071_06_02_01 27 | sql: 28 | - CREATE TABLE TABLE_E071_06_02_011 ( A INT ) 29 | - CREATE TABLE TABLE_E071_06_02_012 ( B FLOAT ) 30 | - SELECT A FROM TABLE_E071_06_02_011 WHERE EXISTS ( SELECT A FROM TABLE_E071_06_02_011 31 | EXCEPT DISTINCT SELECT B FROM TABLE_E071_06_02_012 ) 32 | --- 33 | feature: E071-06 34 | id: e071_06_02_02 35 | sql: 36 | - CREATE TABLE TABLE_E071_06_02_021 ( A INT ) 37 | - CREATE TABLE TABLE_E071_06_02_022 ( B FLOAT ) 38 | - SELECT A FROM TABLE_E071_06_02_021 WHERE EXISTS ( SELECT A FROM TABLE_E071_06_02_021 39 | EXCEPT SELECT B FROM TABLE_E071_06_02_022 ) 40 | -------------------------------------------------------------------------------- /standards/2016/E/E071-06.yml: -------------------------------------------------------------------------------- 1 | sql: 2 | - CREATE TABLE TN1 ( A INT ) 3 | - CREATE TABLE TN2 ( B FLOAT ) 4 | - SELECT A FROM TN1 WHERE EXISTS ( SELECT A FROM TN1 UNION [ ALL | DISTINCT ] SELECT B FROM TN2 ) 5 | --- 6 | sql: 7 | - CREATE TABLE TN1 ( A INT ) 8 | - CREATE TABLE TN2 ( B FLOAT ) 9 | - SELECT A FROM TN1 WHERE EXISTS ( SELECT A FROM TN1 EXCEPT [ DISTINCT ] SELECT B FROM TN2 ) 10 | -------------------------------------------------------------------------------- /standards/2016/E/E081-01.tests.yml: -------------------------------------------------------------------------------- 1 | feature: E081-01 2 | id: e081_01_01_01 3 | sql: 4 | - CREATE TABLE TABLE_E081_01_01_011 ( A INT ) 5 | - CREATE ROLE ROLE_E081_01_01_01 6 | - GRANT SELECT ON TABLE TABLE_E081_01_01_011 TO ROLE_E081_01_01_01 7 | --- 8 | feature: E081-01 9 | id: e081_01_01_02 10 | sql: 11 | - CREATE TABLE TABLE_E081_01_01_021 ( A INT ) 12 | - CREATE ROLE ROLE_E081_01_01_02 13 | - GRANT SELECT ON TABLE_E081_01_01_021 TO ROLE_E081_01_01_02 14 | -------------------------------------------------------------------------------- /standards/2016/E/E081-01.yml: -------------------------------------------------------------------------------- 1 | sql: 2 | - CREATE TABLE TN1 ( A INT ) 3 | - CREATE ROLE ROLE1 4 | - GRANT SELECT ON [ TABLE ] TN1 TO ROLE1 5 | -------------------------------------------------------------------------------- /standards/2016/E/E081-02.tests.yml: -------------------------------------------------------------------------------- 1 | feature: E081-02 2 | id: e081_02_01_01 3 | sql: 4 | - CREATE TABLE TABLE_E081_02_01_011 ( A INT ) 5 | - CREATE ROLE ROLE_E081_02_01_01 6 | - GRANT DELETE ON TABLE TABLE_E081_02_01_011 TO ROLE_E081_02_01_01 7 | --- 8 | feature: E081-02 9 | id: e081_02_01_02 10 | sql: 11 | - CREATE TABLE TABLE_E081_02_01_021 ( A INT ) 12 | - CREATE ROLE ROLE_E081_02_01_02 13 | - GRANT DELETE ON TABLE_E081_02_01_021 TO ROLE_E081_02_01_02 14 | -------------------------------------------------------------------------------- /standards/2016/E/E081-02.yml: -------------------------------------------------------------------------------- 1 | sql: 2 | - CREATE TABLE TN1 ( A INT ) 3 | - CREATE ROLE ROLE1 4 | - GRANT DELETE ON [ TABLE ] TN1 TO ROLE1 5 | -------------------------------------------------------------------------------- /standards/2016/E/E081-03.tests.yml: -------------------------------------------------------------------------------- 1 | feature: E081-03 2 | id: e081_03_01_01 3 | sql: 4 | - CREATE TABLE TABLE_E081_03_01_011 ( A INT ) 5 | - CREATE ROLE ROLE_E081_03_01_01 6 | - GRANT INSERT ON TABLE TABLE_E081_03_01_011 TO ROLE_E081_03_01_01 7 | --- 8 | feature: E081-03 9 | id: e081_03_01_02 10 | sql: 11 | - CREATE TABLE TABLE_E081_03_01_021 ( A INT ) 12 | - CREATE ROLE ROLE_E081_03_01_02 13 | - GRANT INSERT ON TABLE_E081_03_01_021 TO ROLE_E081_03_01_02 14 | -------------------------------------------------------------------------------- /standards/2016/E/E081-03.yml: -------------------------------------------------------------------------------- 1 | sql: 2 | - CREATE TABLE TN1 ( A INT ) 3 | - CREATE ROLE ROLE1 4 | - GRANT INSERT ON [ TABLE ] TN1 TO ROLE1 5 | -------------------------------------------------------------------------------- /standards/2016/E/E081-04.tests.yml: -------------------------------------------------------------------------------- 1 | feature: E081-04 2 | id: e081_04_01_01 3 | sql: 4 | - CREATE TABLE TABLE_E081_04_01_011 ( A INT ) 5 | - CREATE ROLE ROLE_E081_04_01_01 6 | - GRANT UPDATE ON TABLE TABLE_E081_04_01_011 TO ROLE_E081_04_01_01 7 | --- 8 | feature: E081-04 9 | id: e081_04_01_02 10 | sql: 11 | - CREATE TABLE TABLE_E081_04_01_021 ( A INT ) 12 | - CREATE ROLE ROLE_E081_04_01_02 13 | - GRANT UPDATE ON TABLE_E081_04_01_021 TO ROLE_E081_04_01_02 14 | -------------------------------------------------------------------------------- /standards/2016/E/E081-04.yml: -------------------------------------------------------------------------------- 1 | sql: 2 | - CREATE TABLE TN1 ( A INT ) 3 | - CREATE ROLE ROLE1 4 | - GRANT UPDATE ON [ TABLE ] TN1 TO ROLE1 5 | -------------------------------------------------------------------------------- /standards/2016/E/E081-05.tests.yml: -------------------------------------------------------------------------------- 1 | feature: E081-05 2 | id: e081_05_01_01 3 | sql: 4 | - CREATE TABLE TABLE_E081_05_01_011 ( A INT ) 5 | - CREATE ROLE ROLE_E081_05_01_01 6 | - GRANT UPDATE ( A ) ON TABLE TABLE_E081_05_01_011 TO ROLE_E081_05_01_01 7 | --- 8 | feature: E081-05 9 | id: e081_05_01_02 10 | sql: 11 | - CREATE TABLE TABLE_E081_05_01_021 ( A INT ) 12 | - CREATE ROLE ROLE_E081_05_01_02 13 | - GRANT UPDATE ( A ) ON TABLE_E081_05_01_021 TO ROLE_E081_05_01_02 14 | -------------------------------------------------------------------------------- /standards/2016/E/E081-05.yml: -------------------------------------------------------------------------------- 1 | sql: 2 | - CREATE TABLE TN1 ( A INT ) 3 | - CREATE ROLE ROLE1 4 | - GRANT UPDATE ( A ) ON [ TABLE ] TN1 TO ROLE1 5 | -------------------------------------------------------------------------------- /standards/2016/E/E081-06.tests.yml: -------------------------------------------------------------------------------- 1 | feature: E081-06 2 | id: e081_06_01_01 3 | sql: 4 | - CREATE TABLE TABLE_E081_06_01_011 ( A INT ) 5 | - CREATE ROLE ROLE_E081_06_01_01 6 | - GRANT REFERENCES ON TABLE TABLE_E081_06_01_011 TO ROLE_E081_06_01_01 7 | --- 8 | feature: E081-06 9 | id: e081_06_01_02 10 | sql: 11 | - CREATE TABLE TABLE_E081_06_01_021 ( A INT ) 12 | - CREATE ROLE ROLE_E081_06_01_02 13 | - GRANT REFERENCES ON TABLE_E081_06_01_021 TO ROLE_E081_06_01_02 14 | -------------------------------------------------------------------------------- /standards/2016/E/E081-06.yml: -------------------------------------------------------------------------------- 1 | sql: 2 | - CREATE TABLE TN1 ( A INT ) 3 | - CREATE ROLE ROLE1 4 | - GRANT REFERENCES ON [ TABLE ] TN1 TO ROLE1 5 | -------------------------------------------------------------------------------- /standards/2016/E/E081-07.tests.yml: -------------------------------------------------------------------------------- 1 | feature: E081-07 2 | id: e081_07_01_01 3 | sql: 4 | - CREATE TABLE TABLE_E081_07_01_011 ( A INT ) 5 | - CREATE ROLE ROLE_E081_07_01_01 6 | - GRANT REFERENCES ( A ) ON TABLE TABLE_E081_07_01_011 TO ROLE_E081_07_01_01 7 | --- 8 | feature: E081-07 9 | id: e081_07_01_02 10 | sql: 11 | - CREATE TABLE TABLE_E081_07_01_021 ( A INT ) 12 | - CREATE ROLE ROLE_E081_07_01_02 13 | - GRANT REFERENCES ( A ) ON TABLE_E081_07_01_021 TO ROLE_E081_07_01_02 14 | -------------------------------------------------------------------------------- /standards/2016/E/E081-07.yml: -------------------------------------------------------------------------------- 1 | sql: 2 | - CREATE TABLE TN1 ( A INT ) 3 | - CREATE ROLE ROLE1 4 | - GRANT REFERENCES ( A ) ON [ TABLE ] TN1 TO ROLE1 5 | -------------------------------------------------------------------------------- /standards/2016/E/E081-08.tests.yml: -------------------------------------------------------------------------------- 1 | feature: E081-08 2 | id: e081_08_01_01 3 | sql: 4 | - CREATE TABLE TABLE_E081_08_01_011 ( A INT ) 5 | - CREATE ROLE ROLE_E081_08_01_01 6 | - GRANT SELECT ON TABLE TABLE_E081_08_01_011 TO ROLE_E081_08_01_01 WITH GRANT OPTION 7 | --- 8 | feature: E081-08 9 | id: e081_08_01_02 10 | sql: 11 | - CREATE TABLE TABLE_E081_08_01_021 ( A INT ) 12 | - CREATE ROLE ROLE_E081_08_01_02 13 | - GRANT SELECT ON TABLE_E081_08_01_021 TO ROLE_E081_08_01_02 WITH GRANT OPTION 14 | --- 15 | feature: E081-08 16 | id: e081_08_02_01 17 | sql: 18 | - CREATE TABLE TABLE_E081_08_02_011 ( A INT ) 19 | - CREATE ROLE ROLE_E081_08_02_01 20 | - GRANT DELETE ON TABLE TABLE_E081_08_02_011 TO ROLE_E081_08_02_01 WITH GRANT OPTION 21 | --- 22 | feature: E081-08 23 | id: e081_08_02_02 24 | sql: 25 | - CREATE TABLE TABLE_E081_08_02_021 ( A INT ) 26 | - CREATE ROLE ROLE_E081_08_02_02 27 | - GRANT DELETE ON TABLE_E081_08_02_021 TO ROLE_E081_08_02_02 WITH GRANT OPTION 28 | --- 29 | feature: E081-08 30 | id: e081_08_03_01 31 | sql: 32 | - CREATE TABLE TABLE_E081_08_03_011 ( A INT ) 33 | - CREATE ROLE ROLE_E081_08_03_01 34 | - GRANT INSERT ON TABLE TABLE_E081_08_03_011 TO ROLE_E081_08_03_01 WITH GRANT OPTION 35 | --- 36 | feature: E081-08 37 | id: e081_08_03_02 38 | sql: 39 | - CREATE TABLE TABLE_E081_08_03_021 ( A INT ) 40 | - CREATE ROLE ROLE_E081_08_03_02 41 | - GRANT INSERT ON TABLE_E081_08_03_021 TO ROLE_E081_08_03_02 WITH GRANT OPTION 42 | --- 43 | feature: E081-08 44 | id: e081_08_04_01 45 | sql: 46 | - CREATE TABLE TABLE_E081_08_04_011 ( A INT ) 47 | - CREATE ROLE ROLE_E081_08_04_01 48 | - GRANT UPDATE ON TABLE TABLE_E081_08_04_011 TO ROLE_E081_08_04_01 WITH GRANT OPTION 49 | --- 50 | feature: E081-08 51 | id: e081_08_04_02 52 | sql: 53 | - CREATE TABLE TABLE_E081_08_04_021 ( A INT ) 54 | - CREATE ROLE ROLE_E081_08_04_02 55 | - GRANT UPDATE ON TABLE_E081_08_04_021 TO ROLE_E081_08_04_02 WITH GRANT OPTION 56 | --- 57 | feature: E081-08 58 | id: e081_08_05_01 59 | sql: 60 | - CREATE TABLE TABLE_E081_08_05_011 ( A INT ) 61 | - CREATE ROLE ROLE_E081_08_05_01 62 | - GRANT UPDATE ( A ) ON TABLE TABLE_E081_08_05_011 TO ROLE_E081_08_05_01 WITH GRANT 63 | OPTION 64 | --- 65 | feature: E081-08 66 | id: e081_08_05_02 67 | sql: 68 | - CREATE TABLE TABLE_E081_08_05_021 ( A INT ) 69 | - CREATE ROLE ROLE_E081_08_05_02 70 | - GRANT UPDATE ( A ) ON TABLE_E081_08_05_021 TO ROLE_E081_08_05_02 WITH GRANT OPTION 71 | --- 72 | feature: E081-08 73 | id: e081_08_06_01 74 | sql: 75 | - CREATE TABLE TABLE_E081_08_06_011 ( A INT ) 76 | - CREATE ROLE ROLE_E081_08_06_01 77 | - GRANT REFERENCES ON TABLE TABLE_E081_08_06_011 TO ROLE_E081_08_06_01 WITH GRANT 78 | OPTION 79 | --- 80 | feature: E081-08 81 | id: e081_08_06_02 82 | sql: 83 | - CREATE TABLE TABLE_E081_08_06_021 ( A INT ) 84 | - CREATE ROLE ROLE_E081_08_06_02 85 | - GRANT REFERENCES ON TABLE_E081_08_06_021 TO ROLE_E081_08_06_02 WITH GRANT OPTION 86 | --- 87 | feature: E081-08 88 | id: e081_08_07_01 89 | sql: 90 | - CREATE TABLE TABLE_E081_08_07_011 ( A INT ) 91 | - CREATE ROLE ROLE_E081_08_07_01 92 | - GRANT REFERENCES ( A ) ON TABLE TABLE_E081_08_07_011 TO ROLE_E081_08_07_01 WITH 93 | GRANT OPTION 94 | --- 95 | feature: E081-08 96 | id: e081_08_07_02 97 | sql: 98 | - CREATE TABLE TABLE_E081_08_07_021 ( A INT ) 99 | - CREATE ROLE ROLE_E081_08_07_02 100 | - GRANT REFERENCES ( A ) ON TABLE_E081_08_07_021 TO ROLE_E081_08_07_02 WITH GRANT 101 | OPTION 102 | -------------------------------------------------------------------------------- /standards/2016/E/E081-08.yml: -------------------------------------------------------------------------------- 1 | sql: 2 | - CREATE TABLE TN1 ( A INT ) 3 | - CREATE ROLE ROLE1 4 | - GRANT SELECT ON [ TABLE ] TN1 TO ROLE1 WITH GRANT OPTION 5 | --- 6 | sql: 7 | - CREATE TABLE TN1 ( A INT ) 8 | - CREATE ROLE ROLE1 9 | - GRANT DELETE ON [ TABLE ] TN1 TO ROLE1 WITH GRANT OPTION 10 | --- 11 | sql: 12 | - CREATE TABLE TN1 ( A INT ) 13 | - CREATE ROLE ROLE1 14 | - GRANT INSERT ON [ TABLE ] TN1 TO ROLE1 WITH GRANT OPTION 15 | --- 16 | sql: 17 | - CREATE TABLE TN1 ( A INT ) 18 | - CREATE ROLE ROLE1 19 | - GRANT UPDATE ON [ TABLE ] TN1 TO ROLE1 WITH GRANT OPTION 20 | --- 21 | sql: 22 | - CREATE TABLE TN1 ( A INT ) 23 | - CREATE ROLE ROLE1 24 | - GRANT UPDATE ( A ) ON [ TABLE ] TN1 TO ROLE1 WITH GRANT OPTION 25 | --- 26 | sql: 27 | - CREATE TABLE TN1 ( A INT ) 28 | - CREATE ROLE ROLE1 29 | - GRANT REFERENCES ON [ TABLE ] TN1 TO ROLE1 WITH GRANT OPTION 30 | --- 31 | sql: 32 | - CREATE TABLE TN1 ( A INT ) 33 | - CREATE ROLE ROLE1 34 | - GRANT REFERENCES ( A ) ON [ TABLE ] TN1 TO ROLE1 WITH GRANT OPTION 35 | -------------------------------------------------------------------------------- /standards/2016/E/E081-09.tests.yml: -------------------------------------------------------------------------------- 1 | feature: E081-09 2 | id: e081_09_01_01 3 | sql: 4 | - CREATE SCHEMA TABLE_E081_09_01_011 5 | - CREATE ROLE ROLE_E081_09_01_01 6 | - GRANT USAGE ON TABLE TABLE_E081_09_01_011 TO ROLE_E081_09_01_01 7 | --- 8 | feature: E081-09 9 | id: e081_09_01_02 10 | sql: 11 | - CREATE SCHEMA TABLE_E081_09_01_021 12 | - CREATE ROLE ROLE_E081_09_01_02 13 | - GRANT USAGE ON TABLE_E081_09_01_021 TO ROLE_E081_09_01_02 14 | -------------------------------------------------------------------------------- /standards/2016/E/E081-09.yml: -------------------------------------------------------------------------------- 1 | sql: 2 | - CREATE SCHEMA TN1 3 | - CREATE ROLE ROLE1 4 | - GRANT USAGE ON [ TABLE ] TN1 TO ROLE1 5 | -------------------------------------------------------------------------------- /standards/2016/E/E081-10.tests.yml: -------------------------------------------------------------------------------- 1 | feature: E081-10 2 | id: e081_10_01_01 3 | sql: 4 | - CREATE SCHEMA TABLE_E081_10_01_011 5 | - CREATE ROLE ROLE_E081_10_01_01 6 | - GRANT EXECUTE ON TABLE TABLE_E081_10_01_011 TO ROLE_E081_10_01_01 7 | --- 8 | feature: E081-10 9 | id: e081_10_01_02 10 | sql: 11 | - CREATE SCHEMA TABLE_E081_10_01_021 12 | - CREATE ROLE ROLE_E081_10_01_02 13 | - GRANT EXECUTE ON TABLE_E081_10_01_021 TO ROLE_E081_10_01_02 14 | -------------------------------------------------------------------------------- /standards/2016/E/E081-10.yml: -------------------------------------------------------------------------------- 1 | sql: 2 | - CREATE SCHEMA TN1 3 | - CREATE ROLE ROLE1 4 | - GRANT EXECUTE ON [ TABLE ] TN1 TO ROLE1 5 | -------------------------------------------------------------------------------- /standards/2016/E/E091-01.tests.yml: -------------------------------------------------------------------------------- 1 | feature: E091-01 2 | id: e091_01_01_01 3 | sql: 4 | - CREATE TABLE TABLE_E091_01_01_01 ( A FLOAT ) 5 | - SELECT AVG ( A ) FROM TABLE_E091_01_01_01 6 | -------------------------------------------------------------------------------- /standards/2016/E/E091-01.yml: -------------------------------------------------------------------------------- 1 | sql: 2 | - CREATE TABLE TN ( A FLOAT ) 3 | - SELECT AVG ( A ) FROM TN 4 | -------------------------------------------------------------------------------- /standards/2016/E/E091-02.tests.yml: -------------------------------------------------------------------------------- 1 | feature: E091-02 2 | id: e091_02_01_01 3 | sql: 4 | - CREATE TABLE TABLE_E091_02_01_01 ( A FLOAT ) 5 | - SELECT COUNT ( * ) FROM TABLE_E091_02_01_01 6 | --- 7 | feature: E091-02 8 | id: e091_02_01_02 9 | sql: 10 | - CREATE TABLE TABLE_E091_02_01_02 ( A FLOAT ) 11 | - SELECT COUNT ( A ) FROM TABLE_E091_02_01_02 12 | -------------------------------------------------------------------------------- /standards/2016/E/E091-02.yml: -------------------------------------------------------------------------------- 1 | sql: 2 | - CREATE TABLE TN ( A FLOAT ) 3 | - SELECT COUNT ( { A | } ) FROM TN 4 | -------------------------------------------------------------------------------- /standards/2016/E/E091-03.tests.yml: -------------------------------------------------------------------------------- 1 | feature: E091-03 2 | id: e091_03_01_01 3 | sql: 4 | - CREATE TABLE TABLE_E091_03_01_01 ( A FLOAT ) 5 | - SELECT MAX ( A ) FROM TABLE_E091_03_01_01 6 | -------------------------------------------------------------------------------- /standards/2016/E/E091-03.yml: -------------------------------------------------------------------------------- 1 | sql: 2 | - CREATE TABLE TN ( A FLOAT ) 3 | - SELECT MAX ( A ) FROM TN 4 | -------------------------------------------------------------------------------- /standards/2016/E/E091-04.tests.yml: -------------------------------------------------------------------------------- 1 | feature: E091-04 2 | id: e091_04_01_01 3 | sql: 4 | - CREATE TABLE TABLE_E091_04_01_01 ( A FLOAT ) 5 | - SELECT MIN ( A ) FROM TABLE_E091_04_01_01 6 | -------------------------------------------------------------------------------- /standards/2016/E/E091-04.yml: -------------------------------------------------------------------------------- 1 | sql: 2 | - CREATE TABLE TN ( A FLOAT ) 3 | - SELECT MIN ( A ) FROM TN 4 | -------------------------------------------------------------------------------- /standards/2016/E/E091-05.tests.yml: -------------------------------------------------------------------------------- 1 | feature: E091-05 2 | id: e091_05_01_01 3 | sql: 4 | - CREATE TABLE TABLE_E091_05_01_01 ( A FLOAT ) 5 | - SELECT SUM ( A ) FROM TABLE_E091_05_01_01 6 | -------------------------------------------------------------------------------- /standards/2016/E/E091-05.yml: -------------------------------------------------------------------------------- 1 | sql: 2 | - CREATE TABLE TN ( A FLOAT ) 3 | - SELECT SUM ( A ) FROM TN 4 | -------------------------------------------------------------------------------- /standards/2016/E/E091-06.tests.yml: -------------------------------------------------------------------------------- 1 | feature: E091-06 2 | id: e091_06_01_01 3 | sql: 4 | - CREATE TABLE TABLE_E091_06_01_01 ( A FLOAT ) 5 | - SELECT AVG ( ALL A ) FROM TABLE_E091_06_01_01 6 | --- 7 | feature: E091-06 8 | id: e091_06_02_01 9 | sql: 10 | - CREATE TABLE TABLE_E091_06_02_01 ( A FLOAT ) 11 | - SELECT COUNT ( ALL A ) FROM TABLE_E091_06_02_01 12 | --- 13 | feature: E091-06 14 | id: e091_06_03_01 15 | sql: 16 | - CREATE TABLE TABLE_E091_06_03_01 ( A FLOAT ) 17 | - SELECT MAX ( ALL A ) FROM TABLE_E091_06_03_01 18 | --- 19 | feature: E091-06 20 | id: e091_06_04_01 21 | sql: 22 | - CREATE TABLE TABLE_E091_06_04_01 ( A FLOAT ) 23 | - SELECT MIN ( ALL A ) FROM TABLE_E091_06_04_01 24 | --- 25 | feature: E091-06 26 | id: e091_06_05_01 27 | sql: 28 | - CREATE TABLE TABLE_E091_06_05_01 ( A FLOAT ) 29 | - SELECT SUM ( ALL A ) FROM TABLE_E091_06_05_01 30 | -------------------------------------------------------------------------------- /standards/2016/E/E091-06.yml: -------------------------------------------------------------------------------- 1 | sql: 2 | - CREATE TABLE TN ( A FLOAT ) 3 | - SELECT AVG ( ALL A ) FROM TN 4 | --- 5 | sql: 6 | - CREATE TABLE TN ( A FLOAT ) 7 | - SELECT COUNT ( ALL A ) FROM TN 8 | --- 9 | sql: 10 | - CREATE TABLE TN ( A FLOAT ) 11 | - SELECT MAX ( ALL A ) FROM TN 12 | --- 13 | sql: 14 | - CREATE TABLE TN ( A FLOAT ) 15 | - SELECT MIN ( ALL A ) FROM TN 16 | --- 17 | sql: 18 | - CREATE TABLE TN ( A FLOAT ) 19 | - SELECT SUM ( ALL A ) FROM TN 20 | -------------------------------------------------------------------------------- /standards/2016/E/E091-07.tests.yml: -------------------------------------------------------------------------------- 1 | feature: E091-07 2 | id: e091_07_01_01 3 | sql: 4 | - CREATE TABLE TABLE_E091_07_01_01 ( A FLOAT ) 5 | - SELECT AVG ( DISTINCT A ) FROM TABLE_E091_07_01_01 6 | --- 7 | feature: E091-07 8 | id: e091_07_01_02 9 | sql: 10 | - CREATE TABLE TABLE_E091_07_01_02 ( A FLOAT ) 11 | - SELECT COUNT ( DISTINCT A ) FROM TABLE_E091_07_01_02 12 | --- 13 | feature: E091-07 14 | id: e091_07_01_03 15 | sql: 16 | - CREATE TABLE TABLE_E091_07_01_03 ( A FLOAT ) 17 | - SELECT MAX ( DISTINCT A ) FROM TABLE_E091_07_01_03 18 | --- 19 | feature: E091-07 20 | id: e091_07_01_04 21 | sql: 22 | - CREATE TABLE TABLE_E091_07_01_04 ( A FLOAT ) 23 | - SELECT MIN ( DISTINCT A ) FROM TABLE_E091_07_01_04 24 | --- 25 | feature: E091-07 26 | id: e091_07_01_05 27 | sql: 28 | - CREATE TABLE TABLE_E091_07_01_05 ( A FLOAT ) 29 | - SELECT SUM ( DISTINCT A ) FROM TABLE_E091_07_01_05 30 | -------------------------------------------------------------------------------- /standards/2016/E/E091-07.yml: -------------------------------------------------------------------------------- 1 | sql: 2 | - CREATE TABLE TN ( A FLOAT ) 3 | - SELECT { AVG | COUNT | MAX | MIN | SUM } ( DISTINCT A ) FROM TN 4 | -------------------------------------------------------------------------------- /standards/2016/E/E101-01.tests.yml: -------------------------------------------------------------------------------- 1 | feature: E101-01 2 | id: e101_01_01_01 3 | sql: 4 | - CREATE TABLE TABLE_E101_01_01_01 ( A INT, B INT ) 5 | - INSERT INTO TABLE_E101_01_01_01 VALUES ( 1, 2 ) 6 | -------------------------------------------------------------------------------- /standards/2016/E/E101-01.yml: -------------------------------------------------------------------------------- 1 | sql: 2 | - CREATE TABLE TN ( A INT, B INT ) 3 | - INSERT INTO TN VALUES ( 1, 2 ) 4 | -------------------------------------------------------------------------------- /standards/2016/E/E101-03.tests.yml: -------------------------------------------------------------------------------- 1 | feature: E101-03 2 | id: e101_03_01_01 3 | sql: 4 | - CREATE TABLE TABLE_E101_03_01_01 ( A INT, B INT ) 5 | - INSERT INTO TABLE_E101_03_01_01 VALUES ( 1, 2 ) 6 | - UPDATE TABLE_E101_03_01_01 SET A = 3, B = 4 7 | --- 8 | feature: E101-03 9 | id: e101_03_01_02 10 | sql: 11 | - CREATE TABLE TABLE_E101_03_01_02 ( A INT, B INT ) 12 | - INSERT INTO TABLE_E101_03_01_02 VALUES ( 1, 2 ) 13 | - UPDATE TABLE_E101_03_01_02 SET A = 3, B = 4 WHERE A = 1 14 | -------------------------------------------------------------------------------- /standards/2016/E/E101-03.yml: -------------------------------------------------------------------------------- 1 | sql: 2 | - CREATE TABLE TN ( A INT, B INT ) 3 | - INSERT INTO TN VALUES ( 1, 2 ) 4 | - UPDATE TN SET A = 3, B = 4 [ WHERE A = 1 ] 5 | -------------------------------------------------------------------------------- /standards/2016/E/E101-04.tests.yml: -------------------------------------------------------------------------------- 1 | feature: E101-04 2 | id: e101_04_01_01 3 | sql: 4 | - CREATE TABLE TABLE_E101_04_01_01 ( A INT, B INT ) 5 | - INSERT INTO TABLE_E101_04_01_01 VALUES ( 1, 2 ) 6 | - DELETE FROM TABLE_E101_04_01_01 7 | --- 8 | feature: E101-04 9 | id: e101_04_01_02 10 | sql: 11 | - CREATE TABLE TABLE_E101_04_01_02 ( A INT, B INT ) 12 | - INSERT INTO TABLE_E101_04_01_02 VALUES ( 1, 2 ) 13 | - DELETE FROM TABLE_E101_04_01_02 WHERE A = 1 14 | -------------------------------------------------------------------------------- /standards/2016/E/E101-04.yml: -------------------------------------------------------------------------------- 1 | sql: 2 | - CREATE TABLE TN ( A INT, B INT ) 3 | - INSERT INTO TN VALUES ( 1, 2 ) 4 | - DELETE FROM TN [ WHERE A = 1 ] 5 | -------------------------------------------------------------------------------- /standards/2016/E/E111.tests.yml: -------------------------------------------------------------------------------- 1 | feature: E111 2 | id: e111_01_01 3 | sql: 4 | - CREATE TABLE TABLE_E111_01_011 ( A INT ) 5 | - CREATE TABLE TABLE_E111_01_012 ( A INT ) 6 | - SELECT A INTO TABLE_E111_01_013 FROM TABLE_E111_01_011 7 | --- 8 | feature: E111 9 | id: e111_01_02 10 | sql: 11 | - CREATE TABLE TABLE_E111_01_021 ( A INT ) 12 | - CREATE TABLE TABLE_E111_01_022 ( A INT ) 13 | - SELECT A INTO TABLE_E111_01_023 FROM TABLE_E111_01_021 WHERE A = 1 14 | -------------------------------------------------------------------------------- /standards/2016/E/E111.yml: -------------------------------------------------------------------------------- 1 | sql: 2 | - CREATE TABLE TN1 ( A INT ) 3 | - CREATE TABLE TN2 ( A INT ) 4 | - SELECT A INTO TN3 FROM TN1 [ WHERE A = 1 ] 5 | -------------------------------------------------------------------------------- /standards/2016/E/E121-01.tests.yml: -------------------------------------------------------------------------------- 1 | feature: E121-01 2 | id: e121_01_01_01 3 | sql: 4 | - CREATE TABLE TABLE_E121_01_01_01 ( A INT ) 5 | - DECLARE MYCURSOR CURSOR FOR SELECT A FROM TABLE_E121_01_01_01 6 | --- 7 | feature: E121-01 8 | id: e121_01_01_02 9 | sql: 10 | - CREATE TABLE TABLE_E121_01_01_02 ( A INT ) 11 | - DECLARE MYCURSOR CURSOR FOR SELECT A FROM TABLE_E121_01_01_02 FOR READ ONLY 12 | --- 13 | feature: E121-01 14 | id: e121_01_01_03 15 | sql: 16 | - CREATE TABLE TABLE_E121_01_01_03 ( A INT ) 17 | - DECLARE MYCURSOR CURSOR FOR SELECT A FROM TABLE_E121_01_01_03 FOR UPDATE 18 | --- 19 | feature: E121-01 20 | id: e121_01_01_04 21 | sql: 22 | - CREATE TABLE TABLE_E121_01_01_04 ( A INT ) 23 | - DECLARE MYCURSOR CURSOR FOR SELECT A FROM TABLE_E121_01_01_04 FOR UPDATE OF TABLE_E121_01_01_04 24 | -------------------------------------------------------------------------------- /standards/2016/E/E121-01.yml: -------------------------------------------------------------------------------- 1 | sql: 2 | - CREATE TABLE TN ( A INT ) 3 | - 4 | override: 5 | query expression: SELECT A FROM TN 6 | column name list: TN 7 | cursor name: MYCURSOR 8 | cursor properties: CURSOR 9 | -------------------------------------------------------------------------------- /standards/2016/E/E121-02.tests.yml: -------------------------------------------------------------------------------- 1 | feature: E121-02 2 | id: e121_02_01_01 3 | sql: 4 | - CREATE TABLE TABLE_E121_02_01_01 ( A INT, B INT ) 5 | - DECLARE CUR_E121_02_01_01 CURSOR FOR SELECT A FROM TABLE_E121_02_01_01 ORDER BY 6 | B 7 | -------------------------------------------------------------------------------- /standards/2016/E/E121-02.yml: -------------------------------------------------------------------------------- 1 | sql: 2 | - CREATE TABLE TN ( A INT, B INT ) 3 | - DECLARE CURSOR1 CURSOR FOR SELECT A FROM TN ORDER BY B 4 | -------------------------------------------------------------------------------- /standards/2016/E/E121-03.tests.yml: -------------------------------------------------------------------------------- 1 | feature: E121-03 2 | id: e121_03_01_01 3 | sql: 4 | - CREATE TABLE TABLE_E121_03_01_01 ( A INT ) 5 | - DECLARE CUR_E121_03_01_01 CURSOR FOR SELECT A FROM TABLE_E121_03_01_01 ORDER BY 6 | A +5 7 | -------------------------------------------------------------------------------- /standards/2016/E/E121-03.yml: -------------------------------------------------------------------------------- 1 | sql: 2 | - CREATE TABLE TN ( A INT ) 3 | - DECLARE CURSOR1 CURSOR FOR SELECT A FROM TN ORDER BY A 5 4 | -------------------------------------------------------------------------------- /standards/2016/E/E121-04.tests.yml: -------------------------------------------------------------------------------- 1 | feature: E121-04 2 | id: e121_04_01_01 3 | sql: 4 | - CREATE TABLE TABLE_E121_04_01_01 ( A INT ) 5 | - DECLARE CUR_E121_04_01_01 CURSOR FOR SELECT A FROM TABLE_E121_04_01_01 6 | - OPEN CUR_E121_04_01_01 7 | -------------------------------------------------------------------------------- /standards/2016/E/E121-04.yml: -------------------------------------------------------------------------------- 1 | # PostgreSQL supports this synatx, but only inside a function. So this failure 2 | # is not legitimate. It should be updated when we have UDFs (T321) implemented. 3 | 4 | sql: 5 | - CREATE TABLE TN ( A INT ) 6 | - DECLARE CURSOR1 CURSOR FOR SELECT A FROM TN 7 | - OPEN CURSOR1 8 | -------------------------------------------------------------------------------- /standards/2016/E/E121-06.tests.yml: -------------------------------------------------------------------------------- 1 | feature: E121-06 2 | id: e121_06_01_01 3 | sql: 4 | - CREATE TABLE TABLE_E121_06_01_01 ( A INT ) 5 | - DECLARE CUR_E121_06_01_01 CURSOR FOR SELECT A FROM TABLE_E121_06_01_01 6 | - UPDATE TABLE_E121_06_01_01 SET A = 1 WHERE CURRENT OF CUR_E121_06_01_01 7 | -------------------------------------------------------------------------------- /standards/2016/E/E121-06.yml: -------------------------------------------------------------------------------- 1 | # PostgreSQL supports this synatx, but only inside a function. So this failure 2 | # is not legitimate. It should be updated when we have UDFs (T321) implemented. 3 | 4 | sql: 5 | - CREATE TABLE TN ( A INT ) 6 | - DECLARE CURSOR1 CURSOR FOR SELECT A FROM TN 7 | - UPDATE TN SET A = 1 WHERE CURRENT OF CURSOR1 8 | -------------------------------------------------------------------------------- /standards/2016/E/E121-07.tests.yml: -------------------------------------------------------------------------------- 1 | feature: E121-07 2 | id: e121_07_01_01 3 | sql: 4 | - CREATE TABLE TABLE_E121_07_01_01 ( A INT ) 5 | - DECLARE CUR_E121_07_01_01 CURSOR FOR SELECT A FROM TABLE_E121_07_01_01 6 | - DELETE FROM ONLY ( TABLE_E121_07_01_01 ) WHERE CURRENT OF CUR_E121_07_01_01 7 | --- 8 | feature: E121-07 9 | id: e121_07_01_02 10 | sql: 11 | - CREATE TABLE TABLE_E121_07_01_02 ( A INT ) 12 | - DECLARE CUR_E121_07_01_02 CURSOR FOR SELECT A FROM TABLE_E121_07_01_02 13 | - DELETE FROM TABLE_E121_07_01_02 WHERE CURRENT OF CUR_E121_07_01_02 14 | -------------------------------------------------------------------------------- /standards/2016/E/E121-07.yml: -------------------------------------------------------------------------------- 1 | sql: 2 | - CREATE TABLE TN ( A INT ) 3 | - DECLARE CURSOR1 CURSOR FOR SELECT A FROM TN 4 | - DELETE FROM { TN | ONLY ( TN ) } WHERE CURRENT OF CURSOR1 5 | -------------------------------------------------------------------------------- /standards/2016/E/E121-08.tests.yml: -------------------------------------------------------------------------------- 1 | feature: E121-08 2 | id: e121_08_01_01 3 | sql: 4 | - CREATE TABLE TABLE_E121_08_01_01 ( A INT ) 5 | - DECLARE CUR_E121_08_01_01 CURSOR FOR SELECT A FROM TABLE_E121_08_01_01 6 | - OPEN CUR_E121_08_01_01 7 | - CLOSE CUR_E121_08_01_01 8 | -------------------------------------------------------------------------------- /standards/2016/E/E121-08.yml: -------------------------------------------------------------------------------- 1 | # PostgreSQL supports this synatx, but only inside a function. So this failure 2 | # is not legitimate. It should be updated when we have UDFs (T321) implemented. 3 | sql: 4 | - CREATE TABLE TN ( A INT ) 5 | - DECLARE CURSOR1 CURSOR FOR SELECT A FROM TN 6 | - OPEN CURSOR1 7 | - CLOSE CURSOR1 8 | -------------------------------------------------------------------------------- /standards/2016/E/E121-10.tests.yml: -------------------------------------------------------------------------------- 1 | feature: E121-10 2 | id: e121_10_01_01 3 | sql: 4 | - CREATE TABLE TABLE_E121_10_01_011 ( A INT ) 5 | - CREATE TABLE TABLE_E121_10_01_012 ( A INT ) 6 | - DECLARE CUR_E121_10_01_01 CURSOR FOR SELECT A FROM TABLE_E121_10_01_011 7 | - OPEN CUR_E121_10_01_01 8 | - FETCH ABSOLUTE 2 FROM CUR_E121_10_01_01 INTO TABLE_E121_10_01_012 9 | --- 10 | feature: E121-10 11 | id: e121_10_01_02 12 | sql: 13 | - CREATE TABLE TABLE_E121_10_01_021 ( A INT ) 14 | - CREATE TABLE TABLE_E121_10_01_022 ( A INT ) 15 | - DECLARE CUR_E121_10_01_02 CURSOR FOR SELECT A FROM TABLE_E121_10_01_021 16 | - OPEN CUR_E121_10_01_02 17 | - FETCH CUR_E121_10_01_02 INTO TABLE_E121_10_01_022 18 | --- 19 | feature: E121-10 20 | id: e121_10_01_03 21 | sql: 22 | - CREATE TABLE TABLE_E121_10_01_031 ( A INT ) 23 | - CREATE TABLE TABLE_E121_10_01_032 ( A INT ) 24 | - DECLARE CUR_E121_10_01_03 CURSOR FOR SELECT A FROM TABLE_E121_10_01_031 25 | - OPEN CUR_E121_10_01_03 26 | - FETCH FIRST FROM CUR_E121_10_01_03 INTO TABLE_E121_10_01_032 27 | --- 28 | feature: E121-10 29 | id: e121_10_01_04 30 | sql: 31 | - CREATE TABLE TABLE_E121_10_01_041 ( A INT ) 32 | - CREATE TABLE TABLE_E121_10_01_042 ( A INT ) 33 | - DECLARE CUR_E121_10_01_04 CURSOR FOR SELECT A FROM TABLE_E121_10_01_041 34 | - OPEN CUR_E121_10_01_04 35 | - FETCH FROM CUR_E121_10_01_04 INTO TABLE_E121_10_01_042 36 | --- 37 | feature: E121-10 38 | id: e121_10_01_05 39 | sql: 40 | - CREATE TABLE TABLE_E121_10_01_051 ( A INT ) 41 | - CREATE TABLE TABLE_E121_10_01_052 ( A INT ) 42 | - DECLARE CUR_E121_10_01_05 CURSOR FOR SELECT A FROM TABLE_E121_10_01_051 43 | - OPEN CUR_E121_10_01_05 44 | - FETCH LAST FROM CUR_E121_10_01_05 INTO TABLE_E121_10_01_052 45 | --- 46 | feature: E121-10 47 | id: e121_10_01_06 48 | sql: 49 | - CREATE TABLE TABLE_E121_10_01_061 ( A INT ) 50 | - CREATE TABLE TABLE_E121_10_01_062 ( A INT ) 51 | - DECLARE CUR_E121_10_01_06 CURSOR FOR SELECT A FROM TABLE_E121_10_01_061 52 | - OPEN CUR_E121_10_01_06 53 | - FETCH NEXT FROM CUR_E121_10_01_06 INTO TABLE_E121_10_01_062 54 | --- 55 | feature: E121-10 56 | id: e121_10_01_07 57 | sql: 58 | - CREATE TABLE TABLE_E121_10_01_071 ( A INT ) 59 | - CREATE TABLE TABLE_E121_10_01_072 ( A INT ) 60 | - DECLARE CUR_E121_10_01_07 CURSOR FOR SELECT A FROM TABLE_E121_10_01_071 61 | - OPEN CUR_E121_10_01_07 62 | - FETCH PRIOR FROM CUR_E121_10_01_07 INTO TABLE_E121_10_01_072 63 | --- 64 | feature: E121-10 65 | id: e121_10_01_08 66 | sql: 67 | - CREATE TABLE TABLE_E121_10_01_081 ( A INT ) 68 | - CREATE TABLE TABLE_E121_10_01_082 ( A INT ) 69 | - DECLARE CUR_E121_10_01_08 CURSOR FOR SELECT A FROM TABLE_E121_10_01_081 70 | - OPEN CUR_E121_10_01_08 71 | - FETCH RELATIVE 2 FROM CUR_E121_10_01_08 INTO TABLE_E121_10_01_082 72 | -------------------------------------------------------------------------------- /standards/2016/E/E121-10.yml: -------------------------------------------------------------------------------- 1 | # PostgreSQL supports this synatx, but only inside a function. So this failure 2 | # is not legitimate. It should be updated when we have UDFs (T321) implemented. 3 | 4 | sql: 5 | - CREATE TABLE TN1 ( A INT ) 6 | - CREATE TABLE TN2 ( A INT ) 7 | - DECLARE CURSOR1 CURSOR FOR SELECT A FROM TN1 8 | - OPEN CURSOR1 9 | - FETCH [ [ ] FROM ] CURSOR1 INTO TN2 10 | override: 11 | simple value specification: 2 12 | -------------------------------------------------------------------------------- /standards/2016/E/E121-17.tests.yml: -------------------------------------------------------------------------------- 1 | feature: E121-17 2 | id: e121_17_01_01 3 | sql: 4 | - CREATE TABLE TABLE_E121_17_01_01 ( A INT ) 5 | - DECLARE CUR_E121_17_01_01 CURSOR WITH HOLD FOR SELECT A FROM TABLE_E121_17_01_01 6 | --- 7 | feature: E121-17 8 | id: e121_17_01_02 9 | sql: 10 | - CREATE TABLE TABLE_E121_17_01_02 ( A INT ) 11 | - DECLARE CUR_E121_17_01_02 CURSOR WITHOUT HOLD FOR SELECT A FROM TABLE_E121_17_01_02 12 | -------------------------------------------------------------------------------- /standards/2016/E/E121-17.yml: -------------------------------------------------------------------------------- 1 | # PostgreSQL supports this synatx, but only inside a function. So this failure 2 | # is not legitimate. It should be updated when we have UDFs (T321) implemented. 3 | 4 | sql: 5 | - CREATE TABLE TN ( A INT ) 6 | - DECLARE CURSOR1 CURSOR FOR SELECT A FROM TN 7 | -------------------------------------------------------------------------------- /standards/2016/E/E131.tests.yml: -------------------------------------------------------------------------------- 1 | feature: E131 2 | id: e131_01_01 3 | sql: SELECT NULL 4 | -------------------------------------------------------------------------------- /standards/2016/E/E131.yml: -------------------------------------------------------------------------------- 1 | sql: 2 | - SELECT NULL 3 | -------------------------------------------------------------------------------- /standards/2016/E/E141-01.tests.yml: -------------------------------------------------------------------------------- 1 | feature: E141-01 2 | id: e141_01_01_01 3 | sql: CREATE TABLE TABLE_E141_01_01_01 ( A INT CONSTRAINT CONST_E141_01_01_01 NOT NULL 4 | ) 5 | --- 6 | feature: E141-01 7 | id: e141_01_01_02 8 | sql: CREATE TABLE TABLE_E141_01_01_02 ( A INT NOT NULL ) 9 | -------------------------------------------------------------------------------- /standards/2016/E/E141-01.yml: -------------------------------------------------------------------------------- 1 | sql: 2 | - CREATE TABLE TN ( A INT [ ] NOT NULL ) 3 | override: 4 | constraint name: CONSTRAINT1 5 | -------------------------------------------------------------------------------- /standards/2016/E/E141-02.tests.yml: -------------------------------------------------------------------------------- 1 | feature: E141-02 2 | id: e141_02_01_01 3 | sql: CREATE TABLE TABLE_E141_02_01_01 ( A INT NOT NULL, B INT NOT NULL, CONSTRAINT 4 | CONST_E141_02_01_01 UNIQUE ( A ) ) 5 | --- 6 | feature: E141-02 7 | id: e141_02_01_02 8 | sql: CREATE TABLE TABLE_E141_02_01_02 ( A INT NOT NULL, B INT NOT NULL, CONSTRAINT 9 | CONST_E141_02_01_02 UNIQUE ( A , B ) ) 10 | --- 11 | feature: E141-02 12 | id: e141_02_01_03 13 | sql: CREATE TABLE TABLE_E141_02_01_03 ( A INT NOT NULL, B INT NOT NULL, UNIQUE ( A 14 | ) ) 15 | --- 16 | feature: E141-02 17 | id: e141_02_01_04 18 | sql: CREATE TABLE TABLE_E141_02_01_04 ( A INT NOT NULL, B INT NOT NULL, UNIQUE ( A 19 | , B ) ) 20 | --- 21 | feature: E141-02 22 | id: e141_02_02_01 23 | sql: CREATE TABLE TABLE_E141_02_02_01 ( A INT NOT NULL CONSTRAINT CONST_E141_02_02_01 24 | UNIQUE ) 25 | --- 26 | feature: E141-02 27 | id: e141_02_02_02 28 | sql: CREATE TABLE TABLE_E141_02_02_02 ( A INT NOT NULL UNIQUE ) 29 | -------------------------------------------------------------------------------- /standards/2016/E/E141-02.yml: -------------------------------------------------------------------------------- 1 | sql: 2 | - CREATE TABLE TN ( A INT NOT NULL, B INT NOT NULL, [ ] { A | A , B } ) 3 | override: 4 | unique specification: UNIQUE 5 | constraint name: CONSTRAINT1 6 | --- 7 | sql: 8 | - CREATE TABLE TN ( A INT NOT NULL [ ] ) 9 | override: 10 | unique specification: UNIQUE 11 | constraint name: CONSTRAINT1 12 | -------------------------------------------------------------------------------- /standards/2016/E/E141-03.tests.yml: -------------------------------------------------------------------------------- 1 | feature: E141-03 2 | id: e141_03_01_01 3 | sql: CREATE TABLE TABLE_E141_03_01_01 ( A INT NOT NULL, B INT NOT NULL, CONSTRAINT 4 | CONST_E141_03_01_01 PRIMARY KEY ( A ) ) 5 | --- 6 | feature: E141-03 7 | id: e141_03_01_02 8 | sql: CREATE TABLE TABLE_E141_03_01_02 ( A INT NOT NULL, B INT NOT NULL, CONSTRAINT 9 | CONST_E141_03_01_02 PRIMARY KEY ( A , B ) ) 10 | --- 11 | feature: E141-03 12 | id: e141_03_01_03 13 | sql: CREATE TABLE TABLE_E141_03_01_03 ( A INT NOT NULL, B INT NOT NULL, PRIMARY KEY 14 | ( A ) ) 15 | --- 16 | feature: E141-03 17 | id: e141_03_01_04 18 | sql: CREATE TABLE TABLE_E141_03_01_04 ( A INT NOT NULL, B INT NOT NULL, PRIMARY KEY 19 | ( A , B ) ) 20 | --- 21 | feature: E141-03 22 | id: e141_03_02_01 23 | sql: CREATE TABLE TABLE_E141_03_02_01 ( A INT NOT NULL CONSTRAINT CONST_E141_03_02_01 24 | PRIMARY KEY ) 25 | --- 26 | feature: E141-03 27 | id: e141_03_02_02 28 | sql: CREATE TABLE TABLE_E141_03_02_02 ( A INT NOT NULL PRIMARY KEY ) 29 | -------------------------------------------------------------------------------- /standards/2016/E/E141-03.yml: -------------------------------------------------------------------------------- 1 | sql: 2 | - CREATE TABLE TN ( A INT NOT NULL, B INT NOT NULL, [ ] { A | A , B } ) 3 | override: 4 | unique specification: PRIMARY KEY 5 | constraint name: CONSTRAINT1 6 | --- 7 | sql: 8 | - CREATE TABLE TN ( A INT NOT NULL [ ] ) 9 | override: 10 | unique specification: PRIMARY KEY 11 | constraint name: CONSTRAINT1 12 | -------------------------------------------------------------------------------- /standards/2016/E/E141-04.tests.yml: -------------------------------------------------------------------------------- 1 | feature: E141-04 2 | id: e141_04_01_01 3 | sql: 4 | - CREATE TABLE TABLE_E141_04_01_011 ( A INT NOT NULL, UNIQUE ( A ) ) 5 | - CREATE TABLE TABLE_E141_04_01_012 ( B INT NOT NULL CONSTRAINT CONST_E141_04_01_01 6 | REFERENCES TABLE_E141_04_01_011 ( A ) ) 7 | --- 8 | feature: E141-04 9 | id: e141_04_01_02 10 | sql: 11 | - CREATE TABLE TABLE_E141_04_01_021 ( A INT NOT NULL, UNIQUE ( A ) ) 12 | - CREATE TABLE TABLE_E141_04_01_022 ( B INT NOT NULL CONSTRAINT CONST_E141_04_01_02 13 | REFERENCES TABLE_E141_04_01_021 ( A ) ON DELETE NO ACTION ) 14 | --- 15 | feature: E141-04 16 | id: e141_04_01_03 17 | sql: 18 | - CREATE TABLE TABLE_E141_04_01_031 ( A INT NOT NULL, UNIQUE ( A ) ) 19 | - CREATE TABLE TABLE_E141_04_01_032 ( B INT NOT NULL CONSTRAINT CONST_E141_04_01_03 20 | REFERENCES TABLE_E141_04_01_031 ( A ) ON UPDATE NO ACTION ) 21 | --- 22 | feature: E141-04 23 | id: e141_04_01_04 24 | sql: 25 | - CREATE TABLE TABLE_E141_04_01_041 ( A INT NOT NULL, UNIQUE ( A ) ) 26 | - CREATE TABLE TABLE_E141_04_01_042 ( B INT NOT NULL CONSTRAINT CONST_E141_04_01_04 27 | REFERENCES TABLE_E141_04_01_041 ( A ) ON UPDATE NO ACTION ON DELETE NO ACTION ) 28 | --- 29 | feature: E141-04 30 | id: e141_04_01_05 31 | sql: 32 | - CREATE TABLE TABLE_E141_04_01_051 ( A INT NOT NULL, UNIQUE ( A ) ) 33 | - CREATE TABLE TABLE_E141_04_01_052 ( B INT NOT NULL REFERENCES TABLE_E141_04_01_051 34 | ( A ) ) 35 | --- 36 | feature: E141-04 37 | id: e141_04_01_06 38 | sql: 39 | - CREATE TABLE TABLE_E141_04_01_061 ( A INT NOT NULL, UNIQUE ( A ) ) 40 | - CREATE TABLE TABLE_E141_04_01_062 ( B INT NOT NULL REFERENCES TABLE_E141_04_01_061 41 | ( A ) ON DELETE NO ACTION ) 42 | --- 43 | feature: E141-04 44 | id: e141_04_01_07 45 | sql: 46 | - CREATE TABLE TABLE_E141_04_01_071 ( A INT NOT NULL, UNIQUE ( A ) ) 47 | - CREATE TABLE TABLE_E141_04_01_072 ( B INT NOT NULL REFERENCES TABLE_E141_04_01_071 48 | ( A ) ON UPDATE NO ACTION ) 49 | --- 50 | feature: E141-04 51 | id: e141_04_01_08 52 | sql: 53 | - CREATE TABLE TABLE_E141_04_01_081 ( A INT NOT NULL, UNIQUE ( A ) ) 54 | - CREATE TABLE TABLE_E141_04_01_082 ( B INT NOT NULL REFERENCES TABLE_E141_04_01_081 55 | ( A ) ON UPDATE NO ACTION ON DELETE NO ACTION ) 56 | --- 57 | feature: E141-04 58 | id: e141_04_02_01 59 | sql: 60 | - CREATE TABLE TABLE_E141_04_02_011 ( A INT NOT NULL, UNIQUE ( A ) ) 61 | - CREATE TABLE TABLE_E141_04_02_012 ( B INT NOT NULL CONSTRAINT CONST_E141_04_02_01 62 | REFERENCES TABLE_E141_04_02_011 ( A ) ON DELETE NO ACTION ON UPDATE NO ACTION ) 63 | --- 64 | feature: E141-04 65 | id: e141_04_02_02 66 | sql: 67 | - CREATE TABLE TABLE_E141_04_02_021 ( A INT NOT NULL, UNIQUE ( A ) ) 68 | - CREATE TABLE TABLE_E141_04_02_022 ( B INT NOT NULL REFERENCES TABLE_E141_04_02_021 69 | ( A ) ON DELETE NO ACTION ON UPDATE NO ACTION ) 70 | --- 71 | feature: E141-04 72 | id: e141_04_03_01 73 | sql: 74 | - CREATE TABLE TABLE_E141_04_03_011 ( A INT NOT NULL, UNIQUE ( A ) ) 75 | - CREATE TABLE TABLE_E141_04_03_012 ( B INT NOT NULL, CONSTRAINT CONST_E141_04_03_01 76 | FOREIGN KEY ( B ) REFERENCES TABLE_E141_04_03_011 ( A ) ) 77 | --- 78 | feature: E141-04 79 | id: e141_04_03_02 80 | sql: 81 | - CREATE TABLE TABLE_E141_04_03_021 ( A INT NOT NULL, UNIQUE ( A ) ) 82 | - CREATE TABLE TABLE_E141_04_03_022 ( B INT NOT NULL, CONSTRAINT CONST_E141_04_03_02 83 | FOREIGN KEY ( B ) REFERENCES TABLE_E141_04_03_021 ( A ) ON DELETE NO ACTION ) 84 | --- 85 | feature: E141-04 86 | id: e141_04_03_03 87 | sql: 88 | - CREATE TABLE TABLE_E141_04_03_031 ( A INT NOT NULL, UNIQUE ( A ) ) 89 | - CREATE TABLE TABLE_E141_04_03_032 ( B INT NOT NULL, CONSTRAINT CONST_E141_04_03_03 90 | FOREIGN KEY ( B ) REFERENCES TABLE_E141_04_03_031 ( A ) ON UPDATE NO ACTION ) 91 | --- 92 | feature: E141-04 93 | id: e141_04_03_04 94 | sql: 95 | - CREATE TABLE TABLE_E141_04_03_041 ( A INT NOT NULL, UNIQUE ( A ) ) 96 | - CREATE TABLE TABLE_E141_04_03_042 ( B INT NOT NULL, CONSTRAINT CONST_E141_04_03_04 97 | FOREIGN KEY ( B ) REFERENCES TABLE_E141_04_03_041 ( A ) ON UPDATE NO ACTION ON DELETE 98 | NO ACTION ) 99 | --- 100 | feature: E141-04 101 | id: e141_04_03_05 102 | sql: 103 | - CREATE TABLE TABLE_E141_04_03_051 ( A INT NOT NULL, UNIQUE ( A ) ) 104 | - CREATE TABLE TABLE_E141_04_03_052 ( B INT NOT NULL, FOREIGN KEY ( B ) REFERENCES 105 | TABLE_E141_04_03_051 ( A ) ) 106 | --- 107 | feature: E141-04 108 | id: e141_04_03_06 109 | sql: 110 | - CREATE TABLE TABLE_E141_04_03_061 ( A INT NOT NULL, UNIQUE ( A ) ) 111 | - CREATE TABLE TABLE_E141_04_03_062 ( B INT NOT NULL, FOREIGN KEY ( B ) REFERENCES 112 | TABLE_E141_04_03_061 ( A ) ON DELETE NO ACTION ) 113 | --- 114 | feature: E141-04 115 | id: e141_04_03_07 116 | sql: 117 | - CREATE TABLE TABLE_E141_04_03_071 ( A INT NOT NULL, UNIQUE ( A ) ) 118 | - CREATE TABLE TABLE_E141_04_03_072 ( B INT NOT NULL, FOREIGN KEY ( B ) REFERENCES 119 | TABLE_E141_04_03_071 ( A ) ON UPDATE NO ACTION ) 120 | --- 121 | feature: E141-04 122 | id: e141_04_03_08 123 | sql: 124 | - CREATE TABLE TABLE_E141_04_03_081 ( A INT NOT NULL, UNIQUE ( A ) ) 125 | - CREATE TABLE TABLE_E141_04_03_082 ( B INT NOT NULL, FOREIGN KEY ( B ) REFERENCES 126 | TABLE_E141_04_03_081 ( A ) ON UPDATE NO ACTION ON DELETE NO ACTION ) 127 | --- 128 | feature: E141-04 129 | id: e141_04_04_01 130 | sql: 131 | - CREATE TABLE TABLE_E141_04_04_011 ( A INT NOT NULL, UNIQUE ( A ) ) 132 | - CREATE TABLE TABLE_E141_04_04_012 ( B INT NOT NULL, CONSTRAINT CONST_E141_04_04_01 133 | FOREIGN KEY ( B ) REFERENCES TABLE_E141_04_04_011 ( A ) ON DELETE NO ACTION ON UPDATE 134 | NO ACTION ) 135 | --- 136 | feature: E141-04 137 | id: e141_04_04_02 138 | sql: 139 | - CREATE TABLE TABLE_E141_04_04_021 ( A INT NOT NULL, UNIQUE ( A ) ) 140 | - CREATE TABLE TABLE_E141_04_04_022 ( B INT NOT NULL, FOREIGN KEY ( B ) REFERENCES 141 | TABLE_E141_04_04_021 ( A ) ON DELETE NO ACTION ON UPDATE NO ACTION ) 142 | --- 143 | feature: E141-04 144 | id: e141_04_05_01 145 | sql: 146 | - CREATE TABLE TABLE_E141_04_05_011 ( A INT NOT NULL, B INT NOT NULL, UNIQUE ( A, 147 | B ) ) 148 | - CREATE TABLE TABLE_E141_04_05_012 ( C INT NOT NULL, D INT NOT NULL, CONSTRAINT CONST_E141_04_05_01 149 | FOREIGN KEY ( C, D ) REFERENCES TABLE_E141_04_05_011 ( A, B ) ) 150 | --- 151 | feature: E141-04 152 | id: e141_04_05_02 153 | sql: 154 | - CREATE TABLE TABLE_E141_04_05_021 ( A INT NOT NULL, B INT NOT NULL, UNIQUE ( A, 155 | B ) ) 156 | - CREATE TABLE TABLE_E141_04_05_022 ( C INT NOT NULL, D INT NOT NULL, CONSTRAINT CONST_E141_04_05_02 157 | FOREIGN KEY ( C, D ) REFERENCES TABLE_E141_04_05_021 ( A, B ) ON DELETE NO ACTION 158 | ) 159 | --- 160 | feature: E141-04 161 | id: e141_04_05_03 162 | sql: 163 | - CREATE TABLE TABLE_E141_04_05_031 ( A INT NOT NULL, B INT NOT NULL, UNIQUE ( A, 164 | B ) ) 165 | - CREATE TABLE TABLE_E141_04_05_032 ( C INT NOT NULL, D INT NOT NULL, CONSTRAINT CONST_E141_04_05_03 166 | FOREIGN KEY ( C, D ) REFERENCES TABLE_E141_04_05_031 ( A, B ) ON UPDATE NO ACTION 167 | ) 168 | --- 169 | feature: E141-04 170 | id: e141_04_05_04 171 | sql: 172 | - CREATE TABLE TABLE_E141_04_05_041 ( A INT NOT NULL, B INT NOT NULL, UNIQUE ( A, 173 | B ) ) 174 | - CREATE TABLE TABLE_E141_04_05_042 ( C INT NOT NULL, D INT NOT NULL, CONSTRAINT CONST_E141_04_05_04 175 | FOREIGN KEY ( C, D ) REFERENCES TABLE_E141_04_05_041 ( A, B ) ON UPDATE NO ACTION 176 | ON DELETE NO ACTION ) 177 | --- 178 | feature: E141-04 179 | id: e141_04_05_05 180 | sql: 181 | - CREATE TABLE TABLE_E141_04_05_051 ( A INT NOT NULL, B INT NOT NULL, UNIQUE ( A, 182 | B ) ) 183 | - CREATE TABLE TABLE_E141_04_05_052 ( C INT NOT NULL, D INT NOT NULL, FOREIGN KEY 184 | ( C, D ) REFERENCES TABLE_E141_04_05_051 ( A, B ) ) 185 | --- 186 | feature: E141-04 187 | id: e141_04_05_06 188 | sql: 189 | - CREATE TABLE TABLE_E141_04_05_061 ( A INT NOT NULL, B INT NOT NULL, UNIQUE ( A, 190 | B ) ) 191 | - CREATE TABLE TABLE_E141_04_05_062 ( C INT NOT NULL, D INT NOT NULL, FOREIGN KEY 192 | ( C, D ) REFERENCES TABLE_E141_04_05_061 ( A, B ) ON DELETE NO ACTION ) 193 | --- 194 | feature: E141-04 195 | id: e141_04_05_07 196 | sql: 197 | - CREATE TABLE TABLE_E141_04_05_071 ( A INT NOT NULL, B INT NOT NULL, UNIQUE ( A, 198 | B ) ) 199 | - CREATE TABLE TABLE_E141_04_05_072 ( C INT NOT NULL, D INT NOT NULL, FOREIGN KEY 200 | ( C, D ) REFERENCES TABLE_E141_04_05_071 ( A, B ) ON UPDATE NO ACTION ) 201 | --- 202 | feature: E141-04 203 | id: e141_04_05_08 204 | sql: 205 | - CREATE TABLE TABLE_E141_04_05_081 ( A INT NOT NULL, B INT NOT NULL, UNIQUE ( A, 206 | B ) ) 207 | - CREATE TABLE TABLE_E141_04_05_082 ( C INT NOT NULL, D INT NOT NULL, FOREIGN KEY 208 | ( C, D ) REFERENCES TABLE_E141_04_05_081 ( A, B ) ON UPDATE NO ACTION ON DELETE 209 | NO ACTION ) 210 | --- 211 | feature: E141-04 212 | id: e141_04_06_01 213 | sql: 214 | - CREATE TABLE TABLE_E141_04_06_011 ( A INT NOT NULL, B INT NOT NULL, UNIQUE ( A, 215 | B ) ) 216 | - CREATE TABLE TABLE_E141_04_06_012 ( C INT NOT NULL, D INT NOT NULL, CONSTRAINT CONST_E141_04_06_01 217 | FOREIGN KEY ( C, D ) REFERENCES TABLE_E141_04_06_011 ( A, B ) ON DELETE NO ACTION 218 | ON UPDATE NO ACTION ) 219 | --- 220 | feature: E141-04 221 | id: e141_04_06_02 222 | sql: 223 | - CREATE TABLE TABLE_E141_04_06_021 ( A INT NOT NULL, B INT NOT NULL, UNIQUE ( A, 224 | B ) ) 225 | - CREATE TABLE TABLE_E141_04_06_022 ( C INT NOT NULL, D INT NOT NULL, FOREIGN KEY 226 | ( C, D ) REFERENCES TABLE_E141_04_06_021 ( A, B ) ON DELETE NO ACTION ON UPDATE 227 | NO ACTION ) 228 | -------------------------------------------------------------------------------- /standards/2016/E/E141-04.yml: -------------------------------------------------------------------------------- 1 | sql: 2 | - CREATE TABLE TN1 ( A INT NOT NULL, UNIQUE ( A ) ) 3 | - CREATE TABLE TN2 ( B INT NOT NULL [ ] REFERENCES TN1 ( A ) [ ON UPDATE NO ACTION ] [ ON DELETE NO ACTION ] ) 4 | override: 5 | constraint name: CONSTRAINT1 6 | --- 7 | sql: 8 | - CREATE TABLE TN1 ( A INT NOT NULL, UNIQUE ( A ) ) 9 | - CREATE TABLE TN2 ( B INT NOT NULL [ ] REFERENCES TN1 ( A ) ON DELETE NO ACTION ON UPDATE NO ACTION ) 10 | override: 11 | constraint name: CONSTRAINT1 12 | --- 13 | sql: 14 | - CREATE TABLE TN1 ( A INT NOT NULL, UNIQUE ( A ) ) 15 | - CREATE TABLE TN2 ( B INT NOT NULL, [ ] FOREIGN KEY ( B ) REFERENCES TN1 ( A ) [ ON UPDATE NO ACTION ] [ ON DELETE NO ACTION ] ) 16 | override: 17 | constraint name: CONSTRAINT1 18 | --- 19 | sql: 20 | - CREATE TABLE TN1 ( A INT NOT NULL, UNIQUE ( A ) ) 21 | - CREATE TABLE TN2 ( B INT NOT NULL, [ ] FOREIGN KEY ( B ) REFERENCES TN1 ( A ) ON DELETE NO ACTION ON UPDATE NO ACTION ) 22 | override: 23 | constraint name: CONSTRAINT1 24 | --- 25 | sql: 26 | - CREATE TABLE TN1 ( A INT NOT NULL, B INT NOT NULL, UNIQUE ( A, B ) ) 27 | - CREATE TABLE TN2 ( C INT NOT NULL, D INT NOT NULL, [ ] FOREIGN KEY ( C, D ) REFERENCES TN1 ( A, B ) [ ON UPDATE NO ACTION ] [ ON DELETE NO ACTION ] ) 28 | override: 29 | constraint name: CONSTRAINT1 30 | --- 31 | sql: 32 | - CREATE TABLE TN1 ( A INT NOT NULL, B INT NOT NULL, UNIQUE ( A, B ) ) 33 | - CREATE TABLE TN2 ( C INT NOT NULL, D INT NOT NULL, [ ] FOREIGN KEY ( C, D ) REFERENCES TN1 ( A, B ) ON DELETE NO ACTION ON UPDATE NO ACTION ) 34 | override: 35 | constraint name: CONSTRAINT1 36 | -------------------------------------------------------------------------------- /standards/2016/E/E141-06.tests.yml: -------------------------------------------------------------------------------- 1 | feature: E141-06 2 | id: e141_06_01_01 3 | sql: CREATE TABLE TABLE_E141_06_01_011 ( A INT CHECK ( A = 1 ) ) 4 | --- 5 | feature: E141-06 6 | id: e141_06_01_02 7 | sql: CREATE TABLE TABLE_E141_06_01_021 ( A INT CONSTRAINT CONST_E141_06_01_02 CHECK 8 | ( A = 1 ) ) 9 | --- 10 | feature: E141-06 11 | id: e141_06_02_01 12 | sql: CREATE TABLE TABLE_E141_06_02_011 ( A INT, CHECK ( A = 1 ) ) 13 | --- 14 | feature: E141-06 15 | id: e141_06_02_02 16 | sql: CREATE TABLE TABLE_E141_06_02_021 ( A INT, CONSTRAINT CONST_E141_06_02_02 CHECK 17 | ( A = 1 ) ) 18 | -------------------------------------------------------------------------------- /standards/2016/E/E141-06.yml: -------------------------------------------------------------------------------- 1 | sql: 2 | - CREATE TABLE TN1 ( A INT [ ] CHECK ( A = 1 ) ) 3 | override: 4 | constraint name: CONSTRAINT1 5 | --- 6 | sql: 7 | - CREATE TABLE TN1 ( A INT, [ ] CHECK ( A = 1 ) ) 8 | override: 9 | constraint name: CONSTRAINT1 10 | -------------------------------------------------------------------------------- /standards/2016/E/E141-07.tests.yml: -------------------------------------------------------------------------------- 1 | feature: E141-07 2 | id: e141_07_01_01 3 | sql: CREATE TABLE TABLE_E141_07_01_01 ( A NAME DEFAULT CURRENT_CATALOG ) 4 | --- 5 | feature: E141-07 6 | id: e141_07_02_01 7 | sql: CREATE TABLE TABLE_E141_07_02_01 ( A DATE DEFAULT CURRENT_DATE ) 8 | --- 9 | feature: E141-07 10 | id: e141_07_03_01 11 | sql: CREATE TABLE TABLE_E141_07_03_01 ( A INT DEFAULT CURRENT_PATH ) 12 | --- 13 | feature: E141-07 14 | id: e141_07_04_01 15 | sql: CREATE TABLE TABLE_E141_07_04_01 ( A NAME DEFAULT CURRENT_ROLE ) 16 | --- 17 | feature: E141-07 18 | id: e141_07_05_01 19 | sql: CREATE TABLE TABLE_E141_07_05_01 ( A NAME DEFAULT CURRENT_SCHEMA ) 20 | --- 21 | feature: E141-07 22 | id: e141_07_06_01 23 | sql: CREATE TABLE TABLE_E141_07_06_01 ( A NAME DEFAULT CURRENT_USER ) 24 | --- 25 | feature: E141-07 26 | id: e141_07_07_01 27 | sql: CREATE TABLE TABLE_E141_07_07_01 ( A NAME DEFAULT SESSION_USER ) 28 | --- 29 | feature: E141-07 30 | id: e141_07_08_01 31 | sql: CREATE TABLE TABLE_E141_07_08_01 ( A INT DEFAULT SYSTEM_USER ) 32 | --- 33 | feature: E141-07 34 | id: e141_07_09_01 35 | sql: CREATE TABLE TABLE_E141_07_09_01 ( A NAME DEFAULT USER ) 36 | --- 37 | feature: E141-07 38 | id: e141_07_10_01 39 | sql: CREATE TABLE TABLE_E141_07_10_01 ( A TIME WITH TIME ZONE DEFAULT CURRENT_TIME 40 | ) 41 | --- 42 | feature: E141-07 43 | id: e141_07_11_01 44 | sql: CREATE TABLE TABLE_E141_07_11_01 ( A TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP 45 | ) 46 | --- 47 | feature: E141-07 48 | id: e141_07_12_01 49 | sql: CREATE TABLE TABLE_E141_07_12_01 ( A TIME WITH TIME ZONE DEFAULT LOCALTIME ) 50 | --- 51 | feature: E141-07 52 | id: e141_07_13_01 53 | sql: CREATE TABLE TABLE_E141_07_13_01 ( A TIMESTAMP WITH TIME ZONE DEFAULT LOCALTIMESTAMP 54 | ) 55 | -------------------------------------------------------------------------------- /standards/2016/E/E141-07.yml: -------------------------------------------------------------------------------- 1 | sql: CREATE TABLE TN ( A NAME DEFAULT CURRENT_CATALOG ) 2 | --- 3 | sql: CREATE TABLE TN ( A DATE DEFAULT CURRENT_DATE ) 4 | --- 5 | sql: CREATE TABLE TN ( A INT DEFAULT CURRENT_PATH ) 6 | --- 7 | sql: CREATE TABLE TN ( A NAME DEFAULT CURRENT_ROLE ) 8 | --- 9 | sql: CREATE TABLE TN ( A NAME DEFAULT CURRENT_SCHEMA ) 10 | --- 11 | sql: CREATE TABLE TN ( A NAME DEFAULT CURRENT_USER ) 12 | --- 13 | sql: CREATE TABLE TN ( A NAME DEFAULT SESSION_USER ) 14 | --- 15 | sql: CREATE TABLE TN ( A INT DEFAULT SYSTEM_USER ) 16 | --- 17 | sql: CREATE TABLE TN ( A NAME DEFAULT USER ) 18 | --- 19 | sql: CREATE TABLE TN ( A TIME WITH TIME ZONE DEFAULT CURRENT_TIME ) 20 | --- 21 | sql: CREATE TABLE TN ( A TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP ) 22 | --- 23 | sql: CREATE TABLE TN ( A TIME WITH TIME ZONE DEFAULT LOCALTIME ) 24 | --- 25 | sql: CREATE TABLE TN ( A TIMESTAMP WITH TIME ZONE DEFAULT LOCALTIMESTAMP ) 26 | -------------------------------------------------------------------------------- /standards/2016/E/E141-08.tests.yml: -------------------------------------------------------------------------------- 1 | feature: E141-08 2 | id: e141_08_01_01 3 | sql: CREATE TABLE TABLE_E141_08_01_01 ( A INT, B INT, CONSTRAINT CONST_E141_08_01_01 4 | UNIQUE ( A ) ) 5 | --- 6 | feature: E141-08 7 | id: e141_08_01_02 8 | sql: CREATE TABLE TABLE_E141_08_01_02 ( A INT, B INT, CONSTRAINT CONST_E141_08_01_02 9 | UNIQUE ( A , B ) ) 10 | --- 11 | feature: E141-08 12 | id: e141_08_01_03 13 | sql: CREATE TABLE TABLE_E141_08_01_03 ( A INT, B INT, UNIQUE ( A ) ) 14 | --- 15 | feature: E141-08 16 | id: e141_08_01_04 17 | sql: CREATE TABLE TABLE_E141_08_01_04 ( A INT, B INT, UNIQUE ( A , B ) ) 18 | --- 19 | feature: E141-08 20 | id: e141_08_02_01 21 | sql: CREATE TABLE TABLE_E141_08_02_01 ( A INT CONSTRAINT CONST_E141_08_02_01 UNIQUE 22 | ) 23 | --- 24 | feature: E141-08 25 | id: e141_08_02_02 26 | sql: CREATE TABLE TABLE_E141_08_02_02 ( A INT UNIQUE ) 27 | --- 28 | feature: E141-08 29 | id: e141_08_03_01 30 | sql: CREATE TABLE TABLE_E141_08_03_01 ( A INT, B INT, CONSTRAINT CONST_E141_08_03_01 31 | PRIMARY KEY ( A ) ) 32 | --- 33 | feature: E141-08 34 | id: e141_08_03_02 35 | sql: CREATE TABLE TABLE_E141_08_03_02 ( A INT, B INT, CONSTRAINT CONST_E141_08_03_02 36 | PRIMARY KEY ( A , B ) ) 37 | --- 38 | feature: E141-08 39 | id: e141_08_03_03 40 | sql: CREATE TABLE TABLE_E141_08_03_03 ( A INT, B INT, PRIMARY KEY ( A ) ) 41 | --- 42 | feature: E141-08 43 | id: e141_08_03_04 44 | sql: CREATE TABLE TABLE_E141_08_03_04 ( A INT, B INT, PRIMARY KEY ( A , B ) ) 45 | --- 46 | feature: E141-08 47 | id: e141_08_04_01 48 | sql: CREATE TABLE TABLE_E141_08_04_01 ( A INT CONSTRAINT CONST_E141_08_04_01 PRIMARY 49 | KEY ) 50 | --- 51 | feature: E141-08 52 | id: e141_08_04_02 53 | sql: CREATE TABLE TABLE_E141_08_04_02 ( A INT PRIMARY KEY ) 54 | -------------------------------------------------------------------------------- /standards/2016/E/E141-08.yml: -------------------------------------------------------------------------------- 1 | sql: 2 | - CREATE TABLE TN ( A INT, B INT, [ ] { A | A , B } ) 3 | override: 4 | unique specification: UNIQUE 5 | constraint name: CONSTRAINT1 6 | --- 7 | sql: 8 | - CREATE TABLE TN ( A INT [ ] ) 9 | override: 10 | unique specification: UNIQUE 11 | constraint name: CONSTRAINT1 12 | --- 13 | sql: 14 | - CREATE TABLE TN ( A INT, B INT, [ ] { A | A , B } ) 15 | override: 16 | unique specification: PRIMARY KEY 17 | constraint name: CONSTRAINT1 18 | --- 19 | sql: 20 | - CREATE TABLE TN ( A INT [ ] ) 21 | override: 22 | unique specification: PRIMARY KEY 23 | constraint name: CONSTRAINT1 24 | -------------------------------------------------------------------------------- /standards/2016/E/E141-10.tests.yml: -------------------------------------------------------------------------------- 1 | feature: E141-10 2 | id: e141_10_01_01 3 | sql: 4 | - CREATE TABLE TABLE_E141_10_01_011 ( A INT NOT NULL, B INT NOT NULL, UNIQUE ( A, 5 | B ) ) 6 | - CREATE TABLE TABLE_E141_10_01_012 ( C INT NOT NULL, D INT NOT NULL, CONSTRAINT CONST_E141_10_01_01 7 | FOREIGN KEY ( C, D ) REFERENCES TABLE_E141_10_01_011 ( B, A ) ) 8 | --- 9 | feature: E141-10 10 | id: e141_10_01_02 11 | sql: 12 | - CREATE TABLE TABLE_E141_10_01_021 ( A INT NOT NULL, B INT NOT NULL, UNIQUE ( A, 13 | B ) ) 14 | - CREATE TABLE TABLE_E141_10_01_022 ( C INT NOT NULL, D INT NOT NULL, CONSTRAINT CONST_E141_10_01_02 15 | FOREIGN KEY ( C, D ) REFERENCES TABLE_E141_10_01_021 ( B, A ) ON DELETE NO ACTION 16 | ) 17 | --- 18 | feature: E141-10 19 | id: e141_10_01_03 20 | sql: 21 | - CREATE TABLE TABLE_E141_10_01_031 ( A INT NOT NULL, B INT NOT NULL, UNIQUE ( A, 22 | B ) ) 23 | - CREATE TABLE TABLE_E141_10_01_032 ( C INT NOT NULL, D INT NOT NULL, CONSTRAINT CONST_E141_10_01_03 24 | FOREIGN KEY ( C, D ) REFERENCES TABLE_E141_10_01_031 ( B, A ) ON UPDATE NO ACTION 25 | ) 26 | --- 27 | feature: E141-10 28 | id: e141_10_01_04 29 | sql: 30 | - CREATE TABLE TABLE_E141_10_01_041 ( A INT NOT NULL, B INT NOT NULL, UNIQUE ( A, 31 | B ) ) 32 | - CREATE TABLE TABLE_E141_10_01_042 ( C INT NOT NULL, D INT NOT NULL, CONSTRAINT CONST_E141_10_01_04 33 | FOREIGN KEY ( C, D ) REFERENCES TABLE_E141_10_01_041 ( B, A ) ON UPDATE NO ACTION 34 | ON DELETE NO ACTION ) 35 | --- 36 | feature: E141-10 37 | id: e141_10_01_05 38 | sql: 39 | - CREATE TABLE TABLE_E141_10_01_051 ( A INT NOT NULL, B INT NOT NULL, UNIQUE ( A, 40 | B ) ) 41 | - CREATE TABLE TABLE_E141_10_01_052 ( C INT NOT NULL, D INT NOT NULL, FOREIGN KEY 42 | ( C, D ) REFERENCES TABLE_E141_10_01_051 ( B, A ) ) 43 | --- 44 | feature: E141-10 45 | id: e141_10_01_06 46 | sql: 47 | - CREATE TABLE TABLE_E141_10_01_061 ( A INT NOT NULL, B INT NOT NULL, UNIQUE ( A, 48 | B ) ) 49 | - CREATE TABLE TABLE_E141_10_01_062 ( C INT NOT NULL, D INT NOT NULL, FOREIGN KEY 50 | ( C, D ) REFERENCES TABLE_E141_10_01_061 ( B, A ) ON DELETE NO ACTION ) 51 | --- 52 | feature: E141-10 53 | id: e141_10_01_07 54 | sql: 55 | - CREATE TABLE TABLE_E141_10_01_071 ( A INT NOT NULL, B INT NOT NULL, UNIQUE ( A, 56 | B ) ) 57 | - CREATE TABLE TABLE_E141_10_01_072 ( C INT NOT NULL, D INT NOT NULL, FOREIGN KEY 58 | ( C, D ) REFERENCES TABLE_E141_10_01_071 ( B, A ) ON UPDATE NO ACTION ) 59 | --- 60 | feature: E141-10 61 | id: e141_10_01_08 62 | sql: 63 | - CREATE TABLE TABLE_E141_10_01_081 ( A INT NOT NULL, B INT NOT NULL, UNIQUE ( A, 64 | B ) ) 65 | - CREATE TABLE TABLE_E141_10_01_082 ( C INT NOT NULL, D INT NOT NULL, FOREIGN KEY 66 | ( C, D ) REFERENCES TABLE_E141_10_01_081 ( B, A ) ON UPDATE NO ACTION ON DELETE 67 | NO ACTION ) 68 | --- 69 | feature: E141-10 70 | id: e141_10_02_01 71 | sql: 72 | - CREATE TABLE TABLE_E141_10_02_011 ( A INT NOT NULL, B INT NOT NULL, UNIQUE ( A, 73 | B ) ) 74 | - CREATE TABLE TABLE_E141_10_02_012 ( C INT NOT NULL, D INT NOT NULL, CONSTRAINT CONST_E141_10_02_01 75 | FOREIGN KEY ( C, D ) REFERENCES TABLE_E141_10_02_011 ( B, A ) ON DELETE NO ACTION 76 | ON UPDATE NO ACTION ) 77 | --- 78 | feature: E141-10 79 | id: e141_10_02_02 80 | sql: 81 | - CREATE TABLE TABLE_E141_10_02_021 ( A INT NOT NULL, B INT NOT NULL, UNIQUE ( A, 82 | B ) ) 83 | - CREATE TABLE TABLE_E141_10_02_022 ( C INT NOT NULL, D INT NOT NULL, FOREIGN KEY 84 | ( C, D ) REFERENCES TABLE_E141_10_02_021 ( B, A ) ON DELETE NO ACTION ON UPDATE 85 | NO ACTION ) 86 | -------------------------------------------------------------------------------- /standards/2016/E/E141-10.yml: -------------------------------------------------------------------------------- 1 | sql: 2 | - CREATE TABLE TN1 ( A INT NOT NULL, B INT NOT NULL, UNIQUE ( A, B ) ) 3 | - CREATE TABLE TN2 ( C INT NOT NULL, D INT NOT NULL, [ ] FOREIGN KEY ( C, D ) REFERENCES TN1 ( B, A ) [ ON UPDATE NO ACTION ] [ ON DELETE NO ACTION ] ) 4 | override: 5 | constraint name: CONSTRAINT1 6 | --- 7 | sql: 8 | - CREATE TABLE TN1 ( A INT NOT NULL, B INT NOT NULL, UNIQUE ( A, B ) ) 9 | - CREATE TABLE TN2 ( C INT NOT NULL, D INT NOT NULL, [ ] FOREIGN KEY ( C, D ) REFERENCES TN1 ( B, A ) ON DELETE NO ACTION ON UPDATE NO ACTION ) 10 | override: 11 | constraint name: CONSTRAINT1 12 | -------------------------------------------------------------------------------- /standards/2016/E/E151-01.tests.yml: -------------------------------------------------------------------------------- 1 | feature: E151-01 2 | id: e151_01_01_01 3 | sql: 4 | - START TRANSACTION 5 | - COMMIT 6 | --- 7 | feature: E151-01 8 | id: e151_01_01_02 9 | sql: 10 | - START TRANSACTION 11 | - COMMIT WORK 12 | -------------------------------------------------------------------------------- /standards/2016/E/E151-01.yml: -------------------------------------------------------------------------------- 1 | sql: 2 | - START TRANSACTION 3 | - COMMIT [ WORK ] 4 | -------------------------------------------------------------------------------- /standards/2016/E/E151-02.tests.yml: -------------------------------------------------------------------------------- 1 | feature: E151-02 2 | id: e151_02_01_01 3 | sql: 4 | - START TRANSACTION 5 | - ROLLBACK 6 | --- 7 | feature: E151-02 8 | id: e151_02_01_02 9 | sql: 10 | - START TRANSACTION 11 | - ROLLBACK WORK 12 | -------------------------------------------------------------------------------- /standards/2016/E/E151-02.yml: -------------------------------------------------------------------------------- 1 | sql: 2 | - START TRANSACTION 3 | - ROLLBACK [ WORK ] 4 | -------------------------------------------------------------------------------- /standards/2016/E/E152-01.tests.yml: -------------------------------------------------------------------------------- 1 | feature: E152-01 2 | id: e152_01_01_01 3 | sql: 4 | - START TRANSACTION 5 | - SET LOCAL TRANSACTION ISOLATION LEVEL SERIALIZABLE 6 | --- 7 | feature: E152-01 8 | id: e152_01_01_02 9 | sql: 10 | - START TRANSACTION 11 | - SET TRANSACTION ISOLATION LEVEL SERIALIZABLE 12 | -------------------------------------------------------------------------------- /standards/2016/E/E152-01.yml: -------------------------------------------------------------------------------- 1 | sql: 2 | - START TRANSACTION 3 | - SET [ LOCAL ] TRANSACTION ISOLATION LEVEL SERIALIZABLE 4 | -------------------------------------------------------------------------------- /standards/2016/E/E152-02.tests.yml: -------------------------------------------------------------------------------- 1 | feature: E152-02 2 | id: e152_02_01_01 3 | sql: 4 | - START TRANSACTION 5 | - SET LOCAL TRANSACTION READ ONLY 6 | --- 7 | feature: E152-02 8 | id: e152_02_01_02 9 | sql: 10 | - START TRANSACTION 11 | - SET LOCAL TRANSACTION READ WRITE 12 | --- 13 | feature: E152-02 14 | id: e152_02_01_03 15 | sql: 16 | - START TRANSACTION 17 | - SET TRANSACTION READ ONLY 18 | --- 19 | feature: E152-02 20 | id: e152_02_01_04 21 | sql: 22 | - START TRANSACTION 23 | - SET TRANSACTION READ WRITE 24 | -------------------------------------------------------------------------------- /standards/2016/E/E152-02.yml: -------------------------------------------------------------------------------- 1 | sql: 2 | - START TRANSACTION 3 | - SET [ LOCAL ] TRANSACTION 4 | -------------------------------------------------------------------------------- /standards/2016/E/E153.tests.yml: -------------------------------------------------------------------------------- 1 | feature: E153 2 | id: e153_01_01 3 | sql: 4 | - CREATE TABLE TABLE_E153_01_01 ( A INT, B INT ) 5 | - INSERT INTO TABLE_E153_01_01 VALUES ( 1, 2 ) 6 | - UPDATE TABLE_E153_01_01 SET A = 3, B = 4 WHERE A = ( SELECT 1 ) 7 | --- 8 | feature: E153 9 | id: e153_02_01 10 | sql: 11 | - CREATE TABLE TABLE_E153_02_01 ( A INT, B INT ) 12 | - INSERT INTO TABLE_E153_02_01 VALUES ( 1, 2 ) 13 | - DELETE FROM TABLE_E153_02_01 WHERE A = ( SELECT 1 ) 14 | -------------------------------------------------------------------------------- /standards/2016/E/E153.yml: -------------------------------------------------------------------------------- 1 | sql: 2 | - CREATE TABLE TN ( A INT, B INT ) 3 | - INSERT INTO TN VALUES ( 1, 2 ) 4 | - UPDATE TN SET A = 3, B = 4 WHERE A = ( SELECT 1 ) 5 | --- 6 | sql: 7 | - CREATE TABLE TN ( A INT, B INT ) 8 | - INSERT INTO TN VALUES ( 1, 2 ) 9 | - DELETE FROM TN WHERE A = ( SELECT 1 ) 10 | -------------------------------------------------------------------------------- /standards/2016/E/E161.tests.yml: -------------------------------------------------------------------------------- 1 | feature: E161 2 | id: e161_01_01 3 | sql: SELECT 1 -- hello 4 | -------------------------------------------------------------------------------- /standards/2016/E/E161.yml: -------------------------------------------------------------------------------- 1 | sql: 2 | - SELECT 1 hello 3 | -------------------------------------------------------------------------------- /standards/2016/F/F031-01.tests.yml: -------------------------------------------------------------------------------- 1 | feature: F031-01 2 | id: f031_01_01_01 3 | sql: CREATE TABLE TABLE_F031_01_01_01 ( A INTEGER ) 4 | --- 5 | feature: F031-01 6 | id: f031_01_01_02 7 | sql: CREATE TABLE TABLE_F031_01_01_02 ( A INTEGER , B INTEGER ) 8 | -------------------------------------------------------------------------------- /standards/2016/F/F031-01.yml: -------------------------------------------------------------------------------- 1 | sql: CREATE TABLE TN ( A INTEGER [ , B INTEGER ] ) 2 | -------------------------------------------------------------------------------- /standards/2016/F/F031-02.tests.yml: -------------------------------------------------------------------------------- 1 | feature: F031-02 2 | id: f031_02_01_01 3 | sql: 4 | - CREATE TABLE TABLE_F031_02_01_01 ( A INTEGER ) 5 | - CREATE VIEW VIEW_F031_02_01_01 AS SELECT A FROM TABLE_F031_02_01_01 6 | -------------------------------------------------------------------------------- /standards/2016/F/F031-02.yml: -------------------------------------------------------------------------------- 1 | sql: 2 | - CREATE TABLE TN ( A INTEGER ) 3 | - CREATE VIEW VIEW1 AS SELECT A FROM TN 4 | -------------------------------------------------------------------------------- /standards/2016/F/F031-03.yml: -------------------------------------------------------------------------------- 1 | sql: 2 | - CREATE TABLE TN ( A INTEGER ) 3 | - CREATE ROLE ROLE1 4 | - GRANT TO [ WITH GRANT OPTION ] [ GRANTED BY ] 5 | override: 6 | object privileges: ALL PRIVILEGES 7 | object name: TN 8 | grantee: ROLE1 9 | --- 10 | sql: 11 | - CREATE TABLE TN ( A INTEGER ) 12 | - CREATE ROLE ROLE1 13 | - GRANT TO 14 | override: 15 | object privileges: ALL PRIVILEGES 16 | object name: TN 17 | grantee: ROLE1 18 | --- 19 | sql: 20 | - CREATE TABLE TN ( A INTEGER ) 21 | - CREATE ROLE ROLE1 22 | - GRANT { SELECT | SELECT | 23 | SELECT | DELETE | 24 | INSERT [ ] | 25 | UPDATE [ ] | 26 | REFERENCES [ ] | 27 | TRIGGER | UNDER } ON TO 28 | override: 29 | object name: TN 30 | privilege column list: A 31 | privilege method list: A 32 | grantee: ROLE1 33 | --- 34 | sql: 35 | - CREATE SCHEMA TN 36 | - CREATE ROLE ROLE1 37 | - GRANT { EXECUTE | USAGE } ON TO 38 | override: 39 | object name: TN 40 | privilege column list: A 41 | privilege method list: A 42 | grantee: ROLE1 43 | --- 44 | sql: 45 | - CREATE TABLE TN ( A INTEGER ) 46 | - CREATE ROLE ROLE1 47 | - GRANT ON [ TABLE ]
TO 48 | override: 49 | object privileges: ALL PRIVILEGES 50 | table name: TN 51 | grantee: ROLE1 52 | --- 53 | sql: 54 | - CREATE DOMAIN DOMAIN1 AS INT 55 | - CREATE ROLE ROLE1 56 | - GRANT ON DOMAIN TO 57 | override: 58 | object privileges: ALL PRIVILEGES 59 | domain name: DOMAIN1 60 | grantee: ROLE1 61 | --- 62 | sql: 63 | - CREATE COLLATION COLLATION1 FROM 'de_DE' 64 | - CREATE ROLE ROLE1 65 | - GRANT ON COLLATION TO 66 | override: 67 | object privileges: ALL PRIVILEGES 68 | collation name: COLLATION1 69 | grantee: ROLE1 70 | --- 71 | sql: 72 | - CREATE CHARACTER SET CHARACTERSET1 73 | - CREATE ROLE ROLE1 74 | - GRANT ON CHARACTER SET TO 75 | override: 76 | object privileges: ALL PRIVILEGES 77 | character set name: CHARACTERSET1 78 | grantee: ROLE1 79 | --- 80 | sql: 81 | - CREATE TRANSLATION TRANSLATION1 82 | - CREATE ROLE ROLE1 83 | - GRANT ON TRANSLATION TO 84 | override: 85 | object privileges: ALL PRIVILEGES 86 | transliteration name: TRANSLATION1 87 | grantee: ROLE1 88 | --- 89 | sql: 90 | - CREATE TYPE TYPE1 91 | - CREATE ROLE ROLE1 92 | - GRANT ON TYPE TO 93 | override: 94 | object privileges: ALL PRIVILEGES 95 | schema-resolved user-defined type name: TYPE1 96 | grantee: ROLE1 97 | --- 98 | sql: 99 | - CREATE SEQUENCE SEQUENCE1 100 | - CREATE ROLE ROLE1 101 | - GRANT ON SEQUENCE TO 102 | override: 103 | object privileges: ALL PRIVILEGES 104 | sequence generator name: SEQUENCE1 105 | grantee: ROLE1 106 | --- 107 | sql: 108 | - CREATE ROLE ROLE1 109 | - GRANT ON TO 110 | override: 111 | object privileges: ALL PRIVILEGES 112 | specific name: FOO 113 | member name: BAR 114 | schema-resolved user-defined type name: BAZ 115 | grantee: ROLE1 116 | -------------------------------------------------------------------------------- /standards/2016/F/F031-04.tests.yml: -------------------------------------------------------------------------------- 1 | feature: F031-04 2 | id: f031_04_01_01 3 | sql: 4 | - CREATE TABLE TABLE_F031_04_01_01 ( A INTEGER ) 5 | - ALTER TABLE TABLE_F031_04_01_01 ADD B INT 6 | --- 7 | feature: F031-04 8 | id: f031_04_01_02 9 | sql: 10 | - CREATE TABLE TABLE_F031_04_01_02 ( A INTEGER ) 11 | - ALTER TABLE TABLE_F031_04_01_02 ADD COLUMN B INT 12 | -------------------------------------------------------------------------------- /standards/2016/F/F031-04.yml: -------------------------------------------------------------------------------- 1 | sql: 2 | - CREATE TABLE TN ( A INTEGER ) 3 | - ALTER TABLE
4 | override: 5 | table name: TN 6 | column definition: B INT 7 | -------------------------------------------------------------------------------- /standards/2016/F/F031-13.tests.yml: -------------------------------------------------------------------------------- 1 | feature: F031-13 2 | id: f031_13_01_01 3 | sql: 4 | - CREATE TABLE TABLE_F031_13_01_01 ( A INTEGER ) 5 | - 'DROP TABLE TABLE_F031_13_01_01 ' 6 | -------------------------------------------------------------------------------- /standards/2016/F/F031-13.yml: -------------------------------------------------------------------------------- 1 | sql: 2 | - CREATE TABLE TN ( A INTEGER ) 3 | - 4 | override: 5 | table name: TN 6 | drop behavior: 7 | -------------------------------------------------------------------------------- /standards/2016/F/F031-16.tests.yml: -------------------------------------------------------------------------------- 1 | feature: F031-16 2 | id: f031_16_01_01 3 | sql: 4 | - CREATE TABLE TABLE_F031_16_01_01 ( A INTEGER ) 5 | - CREATE VIEW VIEW_F031_16_01_01 AS SELECT A FROM TABLE_F031_16_01_01 6 | - 'DROP VIEW VIEW_F031_16_01_01 ' 7 | -------------------------------------------------------------------------------- /standards/2016/F/F031-16.yml: -------------------------------------------------------------------------------- 1 | sql: 2 | - CREATE TABLE TN ( A INTEGER ) 3 | - CREATE VIEW VIEW1 AS SELECT A FROM TN 4 | - 5 | override: 6 | table name: VIEW1 7 | drop behavior: 8 | -------------------------------------------------------------------------------- /standards/2016/F/F031-19.yml: -------------------------------------------------------------------------------- 1 | sql: 2 | - CREATE TABLE TN ( A INT ) 3 | - CREATE ROLE ROLE1 4 | - REVOKE FROM [ ] [ GRANTED BY ] 5 | override: 6 | drop behavior: 7 | grantor: ROLE1 8 | grantee 1: ROLE1 9 | grantee 2: ROLE1 10 | privileges: SELECT ON TN 11 | --- 12 | sql: 13 | - CREATE TABLE TN ( A INTEGER ) 14 | - CREATE ROLE ROLE1 15 | - REVOKE { SELECT | SELECT | 16 | SELECT | DELETE | 17 | INSERT [ ] | 18 | UPDATE [ ] | 19 | REFERENCES [ ] | 20 | USAGE | TRIGGER | UNDER | EXECUTE } ON FROM 21 | override: 22 | object name: TN 23 | privilege column list: A 24 | privilege method list: A 25 | grantee: ROLE1 26 | --- 27 | sql: 28 | - CREATE TABLE TN ( A INTEGER ) 29 | - CREATE ROLE ROLE1 30 | - REVOKE ON [ TABLE ]
FROM 31 | override: 32 | object privileges: ALL PRIVILEGES 33 | table name: TN 34 | grantee: ROLE1 35 | --- 36 | sql: 37 | - CREATE DOMAIN DOMAIN1 AS INT 38 | - CREATE ROLE ROLE1 39 | - REVOKE ON DOMAIN FROM 40 | override: 41 | object privileges: ALL PRIVILEGES 42 | domain name: DOMAIN1 43 | grantee: ROLE1 44 | --- 45 | sql: 46 | - CREATE COLLATION COLLATION1 FROM 'de_DE' 47 | - CREATE ROLE ROLE1 48 | - REVOKE ON COLLATION FROM 49 | override: 50 | object privileges: ALL PRIVILEGES 51 | collation name: COLLATION1 52 | grantee: ROLE1 53 | --- 54 | sql: 55 | - CREATE CHARACTER SET CHARACTERSET1 56 | - CREATE ROLE ROLE1 57 | - REVOKE ON CHARACTER SET FROM 58 | override: 59 | object privileges: ALL PRIVILEGES 60 | character set name: CHARACTERSET1 61 | grantee: ROLE1 62 | --- 63 | sql: 64 | - CREATE TRANSLATION TRANSLATION1 65 | - CREATE ROLE ROLE1 66 | - REVOKE ON TRANSLATION FROM 67 | override: 68 | object privileges: ALL PRIVILEGES 69 | transliteration name: TRANSLATION1 70 | grantee: ROLE1 71 | --- 72 | sql: 73 | - CREATE TYPE TYPE1 74 | - CREATE ROLE ROLE1 75 | - REVOKE ON TYPE FROM 76 | override: 77 | object privileges: ALL PRIVILEGES 78 | schema-resolved user-defined type name: TYPE1 79 | grantee: ROLE1 80 | --- 81 | sql: 82 | - CREATE SEQUENCE SEQUENCE1 83 | - CREATE ROLE ROLE1 84 | - REVOKE ON SEQUENCE FROM 85 | override: 86 | object privileges: ALL PRIVILEGES 87 | sequence generator name: SEQUENCE1 88 | grantee: ROLE1 89 | --- 90 | sql: 91 | - CREATE ROLE ROLE1 92 | - REVOKE ON FROM 93 | override: 94 | object privileges: ALL PRIVILEGES 95 | specific name: FOO 96 | member name: BAR 97 | schema-resolved user-defined type name: BAZ 98 | grantee: ROLE1 99 | -------------------------------------------------------------------------------- /standards/2016/F/F041-01.tests.yml: -------------------------------------------------------------------------------- 1 | feature: F041-01 2 | id: f041_01_01_01 3 | sql: 4 | - CREATE TABLE TABLE_F041_01_01_011 ( A INTEGER ) 5 | - CREATE TABLE TABLE_F041_01_01_012 ( A INTEGER ) 6 | - SELECT TABLE_F041_01_01_011.A, TABLE_F041_01_01_012.A FROM TABLE_F041_01_01_011 7 | JOIN TABLE_F041_01_01_012 ON TABLE_F041_01_01_011.A = TABLE_F041_01_01_012.A 8 | --- 9 | feature: F041-01 10 | id: f041_01_01_02 11 | sql: 12 | - CREATE TABLE TABLE_F041_01_01_021 ( A INTEGER ) 13 | - CREATE TABLE TABLE_F041_01_01_022 ( A INTEGER ) 14 | - SELECT TABLE_F041_01_01_021.A, TABLE_F041_01_01_022.A FROM TABLE_F041_01_01_021 15 | JOIN TABLE_F041_01_01_022 USING ( A ) 16 | --- 17 | feature: F041-01 18 | id: f041_01_01_03 19 | sql: 20 | - CREATE TABLE TABLE_F041_01_01_031 ( A INTEGER ) 21 | - CREATE TABLE TABLE_F041_01_01_032 ( A INTEGER ) 22 | - SELECT TABLE_F041_01_01_031.A, TABLE_F041_01_01_032.A FROM TABLE_F041_01_01_031 23 | JOIN TABLE_F041_01_01_032 USING ( A ) AS FOO 24 | -------------------------------------------------------------------------------- /standards/2016/F/F041-01.yml: -------------------------------------------------------------------------------- 1 | sql: 2 | - CREATE TABLE TN1 ( A INTEGER ) 3 | - CREATE TABLE TN2 ( A INTEGER ) 4 | - SELECT TN1.A, TN2.A FROM
JOIN
5 | override: 6 | partitioned join table: 7 | table reference 1: TN1 8 | table reference 2: TN2 9 | search condition: TN1.A = TN2.A 10 | join columns list: A 11 | join correlation name: FOO 12 | join column list: A 13 | -------------------------------------------------------------------------------- /standards/2016/F/F041-02.tests.yml: -------------------------------------------------------------------------------- 1 | feature: F041-02 2 | id: f041_02_01_01 3 | sql: 4 | - CREATE TABLE TABLE_F041_02_01_011 ( A INTEGER ) 5 | - CREATE TABLE TABLE_F041_02_01_012 ( A INTEGER ) 6 | - SELECT TABLE_F041_02_01_011.A, TABLE_F041_02_01_012.A FROM TABLE_F041_02_01_011 7 | INNER JOIN TABLE_F041_02_01_012 ON TABLE_F041_02_01_011.A = TABLE_F041_02_01_012.A 8 | --- 9 | feature: F041-02 10 | id: f041_02_01_02 11 | sql: 12 | - CREATE TABLE TABLE_F041_02_01_021 ( A INTEGER ) 13 | - CREATE TABLE TABLE_F041_02_01_022 ( A INTEGER ) 14 | - SELECT TABLE_F041_02_01_021.A, TABLE_F041_02_01_022.A FROM TABLE_F041_02_01_021 15 | INNER JOIN TABLE_F041_02_01_022 USING ( A ) 16 | --- 17 | feature: F041-02 18 | id: f041_02_01_03 19 | sql: 20 | - CREATE TABLE TABLE_F041_02_01_031 ( A INTEGER ) 21 | - CREATE TABLE TABLE_F041_02_01_032 ( A INTEGER ) 22 | - SELECT TABLE_F041_02_01_031.A, TABLE_F041_02_01_032.A FROM TABLE_F041_02_01_031 23 | INNER JOIN TABLE_F041_02_01_032 USING ( A ) AS FOO 24 | -------------------------------------------------------------------------------- /standards/2016/F/F041-02.yml: -------------------------------------------------------------------------------- 1 | sql: 2 | - CREATE TABLE TN1 ( A INTEGER ) 3 | - CREATE TABLE TN2 ( A INTEGER ) 4 | - SELECT TN1.A, TN2.A FROM
INNER JOIN
5 | override: 6 | partitioned join table: 7 | table reference 1: TN1 8 | table reference 2: TN2 9 | search condition: TN1.A = TN2.A 10 | join columns list: A 11 | join correlation name: FOO 12 | join column list: A 13 | -------------------------------------------------------------------------------- /standards/2016/F/F041-03.tests.yml: -------------------------------------------------------------------------------- 1 | feature: F041-03 2 | id: f041_03_01_01 3 | sql: 4 | - CREATE TABLE TABLE_F041_03_01_011 ( A INTEGER ) 5 | - CREATE TABLE TABLE_F041_03_01_012 ( A INTEGER ) 6 | - SELECT TABLE_F041_03_01_011.A, TABLE_F041_03_01_012.A FROM TABLE_F041_03_01_011 7 | LEFT JOIN TABLE_F041_03_01_012 ON TABLE_F041_03_01_011.A = TABLE_F041_03_01_012.A 8 | --- 9 | feature: F041-03 10 | id: f041_03_01_02 11 | sql: 12 | - CREATE TABLE TABLE_F041_03_01_021 ( A INTEGER ) 13 | - CREATE TABLE TABLE_F041_03_01_022 ( A INTEGER ) 14 | - SELECT TABLE_F041_03_01_021.A, TABLE_F041_03_01_022.A FROM TABLE_F041_03_01_021 15 | LEFT JOIN TABLE_F041_03_01_022 USING ( A ) 16 | --- 17 | feature: F041-03 18 | id: f041_03_01_03 19 | sql: 20 | - CREATE TABLE TABLE_F041_03_01_031 ( A INTEGER ) 21 | - CREATE TABLE TABLE_F041_03_01_032 ( A INTEGER ) 22 | - SELECT TABLE_F041_03_01_031.A, TABLE_F041_03_01_032.A FROM TABLE_F041_03_01_031 23 | LEFT JOIN TABLE_F041_03_01_032 USING ( A ) AS FOO 24 | --- 25 | feature: F041-03 26 | id: f041_03_01_04 27 | sql: 28 | - CREATE TABLE TABLE_F041_03_01_041 ( A INTEGER ) 29 | - CREATE TABLE TABLE_F041_03_01_042 ( A INTEGER ) 30 | - SELECT TABLE_F041_03_01_041.A, TABLE_F041_03_01_042.A FROM TABLE_F041_03_01_041 31 | LEFT OUTER JOIN TABLE_F041_03_01_042 ON TABLE_F041_03_01_041.A = TABLE_F041_03_01_042.A 32 | --- 33 | feature: F041-03 34 | id: f041_03_01_05 35 | sql: 36 | - CREATE TABLE TABLE_F041_03_01_051 ( A INTEGER ) 37 | - CREATE TABLE TABLE_F041_03_01_052 ( A INTEGER ) 38 | - SELECT TABLE_F041_03_01_051.A, TABLE_F041_03_01_052.A FROM TABLE_F041_03_01_051 39 | LEFT OUTER JOIN TABLE_F041_03_01_052 USING ( A ) 40 | --- 41 | feature: F041-03 42 | id: f041_03_01_06 43 | sql: 44 | - CREATE TABLE TABLE_F041_03_01_061 ( A INTEGER ) 45 | - CREATE TABLE TABLE_F041_03_01_062 ( A INTEGER ) 46 | - SELECT TABLE_F041_03_01_061.A, TABLE_F041_03_01_062.A FROM TABLE_F041_03_01_061 47 | LEFT OUTER JOIN TABLE_F041_03_01_062 USING ( A ) AS FOO 48 | -------------------------------------------------------------------------------- /standards/2016/F/F041-03.yml: -------------------------------------------------------------------------------- 1 | sql: 2 | - CREATE TABLE TN1 ( A INTEGER ) 3 | - CREATE TABLE TN2 ( A INTEGER ) 4 | - SELECT TN1.A, TN2.A FROM
LEFT [ OUTER ] JOIN
5 | override: 6 | partitioned join table: 7 | table reference 1: TN1 8 | table reference 2: TN2 9 | search condition: TN1.A = TN2.A 10 | join columns list: A 11 | join correlation name: FOO 12 | join column list: A 13 | -------------------------------------------------------------------------------- /standards/2016/F/F041-04.tests.yml: -------------------------------------------------------------------------------- 1 | feature: F041-04 2 | id: f041_04_01_01 3 | sql: 4 | - CREATE TABLE TABLE_F041_04_01_011 ( A INTEGER ) 5 | - CREATE TABLE TABLE_F041_04_01_012 ( A INTEGER ) 6 | - SELECT TABLE_F041_04_01_011.A, TABLE_F041_04_01_012.A FROM TABLE_F041_04_01_011 7 | RIGHT JOIN TABLE_F041_04_01_012 ON TABLE_F041_04_01_011.A = TABLE_F041_04_01_012.A 8 | --- 9 | feature: F041-04 10 | id: f041_04_01_02 11 | sql: 12 | - CREATE TABLE TABLE_F041_04_01_021 ( A INTEGER ) 13 | - CREATE TABLE TABLE_F041_04_01_022 ( A INTEGER ) 14 | - SELECT TABLE_F041_04_01_021.A, TABLE_F041_04_01_022.A FROM TABLE_F041_04_01_021 15 | RIGHT JOIN TABLE_F041_04_01_022 USING ( A ) 16 | --- 17 | feature: F041-04 18 | id: f041_04_01_03 19 | sql: 20 | - CREATE TABLE TABLE_F041_04_01_031 ( A INTEGER ) 21 | - CREATE TABLE TABLE_F041_04_01_032 ( A INTEGER ) 22 | - SELECT TABLE_F041_04_01_031.A, TABLE_F041_04_01_032.A FROM TABLE_F041_04_01_031 23 | RIGHT JOIN TABLE_F041_04_01_032 USING ( A ) AS FOO 24 | --- 25 | feature: F041-04 26 | id: f041_04_01_04 27 | sql: 28 | - CREATE TABLE TABLE_F041_04_01_041 ( A INTEGER ) 29 | - CREATE TABLE TABLE_F041_04_01_042 ( A INTEGER ) 30 | - SELECT TABLE_F041_04_01_041.A, TABLE_F041_04_01_042.A FROM TABLE_F041_04_01_041 31 | RIGHT OUTER JOIN TABLE_F041_04_01_042 ON TABLE_F041_04_01_041.A = TABLE_F041_04_01_042.A 32 | --- 33 | feature: F041-04 34 | id: f041_04_01_05 35 | sql: 36 | - CREATE TABLE TABLE_F041_04_01_051 ( A INTEGER ) 37 | - CREATE TABLE TABLE_F041_04_01_052 ( A INTEGER ) 38 | - SELECT TABLE_F041_04_01_051.A, TABLE_F041_04_01_052.A FROM TABLE_F041_04_01_051 39 | RIGHT OUTER JOIN TABLE_F041_04_01_052 USING ( A ) 40 | --- 41 | feature: F041-04 42 | id: f041_04_01_06 43 | sql: 44 | - CREATE TABLE TABLE_F041_04_01_061 ( A INTEGER ) 45 | - CREATE TABLE TABLE_F041_04_01_062 ( A INTEGER ) 46 | - SELECT TABLE_F041_04_01_061.A, TABLE_F041_04_01_062.A FROM TABLE_F041_04_01_061 47 | RIGHT OUTER JOIN TABLE_F041_04_01_062 USING ( A ) AS FOO 48 | -------------------------------------------------------------------------------- /standards/2016/F/F041-04.yml: -------------------------------------------------------------------------------- 1 | sql: 2 | - CREATE TABLE TN1 ( A INTEGER ) 3 | - CREATE TABLE TN2 ( A INTEGER ) 4 | - SELECT TN1.A, TN2.A FROM
RIGHT [ OUTER ] JOIN
5 | override: 6 | partitioned join table: 7 | table reference 1: TN1 8 | table reference 2: TN2 9 | search condition: TN1.A = TN2.A 10 | join columns list: A 11 | join correlation name: FOO 12 | join column list: A 13 | -------------------------------------------------------------------------------- /standards/2016/F/F041-05.tests.yml: -------------------------------------------------------------------------------- 1 | feature: F041-05 2 | id: f041_05_01_01 3 | sql: 4 | - CREATE TABLE TABLE_F041_05_01_011 ( A INTEGER ) 5 | - CREATE TABLE TABLE_F041_05_01_012 ( A INTEGER ) 6 | - CREATE TABLE TABLE_F041_05_01_013 ( A INTEGER ) 7 | - SELECT TABLE_F041_05_01_011.A FROM TABLE_F041_05_01_011 LEFT JOIN TABLE_F041_05_01_012 8 | ON TABLE_F041_05_01_011.A = TABLE_F041_05_01_012.A LEFT JOIN TABLE_F041_05_01_013 9 | ON TABLE_F041_05_01_012.A = TABLE_F041_05_01_013.A 10 | -------------------------------------------------------------------------------- /standards/2016/F/F041-05.yml: -------------------------------------------------------------------------------- 1 | sql: 2 | - CREATE TABLE TN1 ( A INTEGER ) 3 | - CREATE TABLE TN2 ( A INTEGER ) 4 | - CREATE TABLE TN3 ( A INTEGER ) 5 | - SELECT TN1.A FROM
6 | LEFT JOIN
ON 7 | LEFT JOIN
ON 8 | override: 9 | table reference 1: TN1 10 | table reference 2: TN2 11 | table reference 3: TN3 12 | join specification 1: TN1.A = TN2.A 13 | join specification 2: TN2.A = TN3.A 14 | -------------------------------------------------------------------------------- /standards/2016/F/F041-07.tests.yml: -------------------------------------------------------------------------------- 1 | feature: F041-07 2 | id: f041_07_01_01 3 | sql: 4 | - CREATE TABLE TABLE_F041_07_01_011 ( A INTEGER ) 5 | - SELECT TABLE_F041_07_01_011.A FROM TABLE_F041_07_01_011 INNER JOIN TABLE_F041_07_01_011 6 | AS TABLE_F041_07_01_012 ON TABLE_F041_07_01_011.A = TABLE_F041_07_01_012.A 7 | --- 8 | feature: F041-07 9 | id: f041_07_01_02 10 | sql: 11 | - CREATE TABLE TABLE_F041_07_01_021 ( A INTEGER ) 12 | - SELECT TABLE_F041_07_01_021.A FROM TABLE_F041_07_01_021 INNER JOIN TABLE_F041_07_01_021 13 | AS TABLE_F041_07_01_022 USING ( A ) 14 | --- 15 | feature: F041-07 16 | id: f041_07_01_03 17 | sql: 18 | - CREATE TABLE TABLE_F041_07_01_031 ( A INTEGER ) 19 | - SELECT TABLE_F041_07_01_031.A FROM TABLE_F041_07_01_031 INNER JOIN TABLE_F041_07_01_031 20 | AS TABLE_F041_07_01_032 USING ( A ) AS FOO 21 | --- 22 | feature: F041-07 23 | id: f041_07_01_04 24 | sql: 25 | - CREATE TABLE TABLE_F041_07_01_041 ( A INTEGER ) 26 | - SELECT TABLE_F041_07_01_041.A FROM TABLE_F041_07_01_041 JOIN TABLE_F041_07_01_041 27 | AS TABLE_F041_07_01_042 ON TABLE_F041_07_01_041.A = TABLE_F041_07_01_042.A 28 | --- 29 | feature: F041-07 30 | id: f041_07_01_05 31 | sql: 32 | - CREATE TABLE TABLE_F041_07_01_051 ( A INTEGER ) 33 | - SELECT TABLE_F041_07_01_051.A FROM TABLE_F041_07_01_051 JOIN TABLE_F041_07_01_051 34 | AS TABLE_F041_07_01_052 USING ( A ) 35 | --- 36 | feature: F041-07 37 | id: f041_07_01_06 38 | sql: 39 | - CREATE TABLE TABLE_F041_07_01_061 ( A INTEGER ) 40 | - SELECT TABLE_F041_07_01_061.A FROM TABLE_F041_07_01_061 JOIN TABLE_F041_07_01_061 41 | AS TABLE_F041_07_01_062 USING ( A ) AS FOO 42 | -------------------------------------------------------------------------------- /standards/2016/F/F041-07.yml: -------------------------------------------------------------------------------- 1 | sql: 2 | - CREATE TABLE TN1 ( A INTEGER ) 3 | - SELECT TN1.A FROM
[ INNER ] JOIN
4 | override: 5 | partitioned join table: 6 | table reference 1: TN1 7 | table reference 2: TN1 AS TN2 8 | search condition: TN1.A = TN2.A 9 | join columns list: A 10 | join correlation name: FOO 11 | join column list: A 12 | -------------------------------------------------------------------------------- /standards/2016/F/F041-08.tests.yml: -------------------------------------------------------------------------------- 1 | feature: F041-08 2 | id: f041_08_01_01 3 | sql: 4 | - CREATE TABLE TABLE_F041_08_01_011 ( A INTEGER ) 5 | - CREATE TABLE TABLE_F041_08_01_012 ( B INTEGER ) 6 | - SELECT TABLE_F041_08_01_011.A, TABLE_F041_08_01_012.B FROM TABLE_F041_08_01_011 7 | JOIN TABLE_F041_08_01_012 ON TABLE_F041_08_01_011.A < TABLE_F041_08_01_012.B 8 | --- 9 | feature: F041-08 10 | id: f041_08_01_02 11 | sql: 12 | - CREATE TABLE TABLE_F041_08_01_021 ( A INTEGER ) 13 | - CREATE TABLE TABLE_F041_08_01_022 ( B INTEGER ) 14 | - SELECT TABLE_F041_08_01_021.A, TABLE_F041_08_01_022.B FROM TABLE_F041_08_01_021 15 | JOIN TABLE_F041_08_01_022 ON TABLE_F041_08_01_021.A <= TABLE_F041_08_01_022.B 16 | --- 17 | feature: F041-08 18 | id: f041_08_01_03 19 | sql: 20 | - CREATE TABLE TABLE_F041_08_01_031 ( A INTEGER ) 21 | - CREATE TABLE TABLE_F041_08_01_032 ( B INTEGER ) 22 | - SELECT TABLE_F041_08_01_031.A, TABLE_F041_08_01_032.B FROM TABLE_F041_08_01_031 23 | JOIN TABLE_F041_08_01_032 ON TABLE_F041_08_01_031.A <> TABLE_F041_08_01_032.B 24 | --- 25 | feature: F041-08 26 | id: f041_08_01_04 27 | sql: 28 | - CREATE TABLE TABLE_F041_08_01_041 ( A INTEGER ) 29 | - CREATE TABLE TABLE_F041_08_01_042 ( B INTEGER ) 30 | - SELECT TABLE_F041_08_01_041.A, TABLE_F041_08_01_042.B FROM TABLE_F041_08_01_041 31 | JOIN TABLE_F041_08_01_042 ON TABLE_F041_08_01_041.A = TABLE_F041_08_01_042.B 32 | --- 33 | feature: F041-08 34 | id: f041_08_01_05 35 | sql: 36 | - CREATE TABLE TABLE_F041_08_01_051 ( A INTEGER ) 37 | - CREATE TABLE TABLE_F041_08_01_052 ( B INTEGER ) 38 | - SELECT TABLE_F041_08_01_051.A, TABLE_F041_08_01_052.B FROM TABLE_F041_08_01_051 39 | JOIN TABLE_F041_08_01_052 ON TABLE_F041_08_01_051.A > TABLE_F041_08_01_052.B 40 | --- 41 | feature: F041-08 42 | id: f041_08_01_06 43 | sql: 44 | - CREATE TABLE TABLE_F041_08_01_061 ( A INTEGER ) 45 | - CREATE TABLE TABLE_F041_08_01_062 ( B INTEGER ) 46 | - SELECT TABLE_F041_08_01_061.A, TABLE_F041_08_01_062.B FROM TABLE_F041_08_01_061 47 | JOIN TABLE_F041_08_01_062 ON TABLE_F041_08_01_061.A >= TABLE_F041_08_01_062.B 48 | -------------------------------------------------------------------------------- /standards/2016/F/F041-08.yml: -------------------------------------------------------------------------------- 1 | sql: 2 | - CREATE TABLE TN1 ( A INTEGER ) 3 | - CREATE TABLE TN2 ( B INTEGER ) 4 | - SELECT TN1.A, TN2.B FROM TN1 JOIN TN2 ON TN1.A TN2.B 5 | -------------------------------------------------------------------------------- /standards/2016/F/F051-01.tests.yml: -------------------------------------------------------------------------------- 1 | feature: F051-01 2 | id: f051_01_01_01 3 | sql: CREATE TABLE TABLE_F051_01_01_011 ( A DATE ) 4 | --- 5 | feature: F051-01 6 | id: f051_01_02_01 7 | sql: SELECT DATE '2016-03-26' 8 | -------------------------------------------------------------------------------- /standards/2016/F/F051-01.yml: -------------------------------------------------------------------------------- 1 | sql: CREATE TABLE TN1 ( A DATE ) 2 | --- 3 | sql: SELECT 4 | override: 5 | date string: "'2016-03-26'" 6 | -------------------------------------------------------------------------------- /standards/2016/F/F051-02.tests.yml: -------------------------------------------------------------------------------- 1 | feature: F051-02 2 | id: f051_02_01_01 3 | sql: CREATE TABLE TABLE_F051_02_01_011 ( A TIME ) 4 | --- 5 | feature: F051-02 6 | id: f051_02_02_01 7 | sql: SELECT TIME '01:02:03' 8 | -------------------------------------------------------------------------------- /standards/2016/F/F051-02.yml: -------------------------------------------------------------------------------- 1 | sql: CREATE TABLE TN1 ( A TIME ) 2 | --- 3 | sql: SELECT