Skip to content

Commit

Permalink
#104: Added additional predicates (#105)
Browse files Browse the repository at this point in the history
Added more Exasol predicates:

- `IS [NOT] NULL` 
- `[NOT] IN`
- `EXISTS`
- `[NOT] BETWEEN`

Fixes #104.
  • Loading branch information
morazow authored Mar 4, 2021
1 parent 6493f7e commit e9499ae
Show file tree
Hide file tree
Showing 22 changed files with 997 additions and 62 deletions.
Original file line number Diff line number Diff line change
@@ -1,6 +1,3 @@
# This workflow will build a Java project with Maven
# For more information see: https://help.github.com/actions/language-and-framework-guides/building-and-testing-java-with-maven

name: Dependencies Check

on:
Expand All @@ -17,5 +14,12 @@ jobs:
uses: actions/setup-java@v1
with:
java-version: 11
- name: Cache local Maven repository
uses: actions/cache@v2
with:
path: ~/.m2/repository
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
restore-keys: |
${{ runner.os }}-maven-
- name: Checking dependencies for vulnerabilities
run: mvn org.sonatype.ossindex.maven:ossindex-maven-plugin:audit -f pom.xml
7 changes: 7 additions & 0 deletions .github/workflows/maven_central_release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,13 @@ jobs:
- name: Import GPG Key
run:
gpg --import --batch <(echo "${{ secrets.OSSRH_GPG_SECRET_KEY }}")
- name: Cache local Maven repository
uses: actions/cache@v2
with:
path: ~/.m2/repository
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
restore-keys: |
${{ runner.os }}-maven-
- name: Publish to Central Repository
env:
MAVEN_USERNAME: ${{ secrets.OSSRH_USERNAME }}
Expand Down
4 changes: 2 additions & 2 deletions doc/changes/changelog.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# Changes

* [4.3.1](changes_4.3.1.md)
* [4.4.0](changes_4.4.0.md)
* [4.3.0](changes_4.3.0.md)
* [4.2.0](changes_4.2.0.md)
* [4.1.0](changes_4.1.0.md)
* [4.0.0](changes_4.0.0.md)
* [4.0.0](changes_4.0.0.md)
10 changes: 0 additions & 10 deletions doc/changes/changes_4.3.1.md

This file was deleted.

34 changes: 34 additions & 0 deletions doc/changes/changes_4.4.0.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
# SQL Statement Builder 4.4.0, released 2021-03-04

Code Name: More Predicates

## Summary

In this release, we have added additional Exasol predicates such as `IS [NOT]
NULL` or `[NOT] BETWEEN`. We also refactored the comparison and `LIKE`
operators.

## Features / Improvements

* #104: Added additional predicates

## Refactoring

* #98: Refactored comparison and like class structure
The refactoring changed the internal representation of the `Comparison`.
The public API from `BooleanTerm` did however not change.
* #95: Refactored `ValueExpressionVisitor`

## Dependency Updates

* Updated `org.mockito:mockito-core:3.5.13` to `3.8.0`
* Updated `org.mockito:mockito-junit-jupiter:3.5.13` to `3.8.0`
* Updated `org.junit.jupiter:junit-jupiter:5.7.0` to `5.7.1`
* Updated `nl.jqno.equalsverifier:equalsverifier:3.4.3` to `3.5.5`

### Plugin Updates

* Updated `org.codehaus.mojo:versions-maven-plugin:2.7` to `2.8.1`
* Updated `org.itsallcode:openfasttrace-maven-plugin:0.1.0` to `1.0.0`
* Updated `org.jacoco:jacoco-maven-plugin:0.8.5` to `0.8.6`

11 changes: 11 additions & 0 deletions doc/design.md
Original file line number Diff line number Diff line change
Expand Up @@ -95,6 +95,17 @@ Covers:

Needs: impl, utest

#### Predicate Operators
`dsn~predicate-operators~1`

Forwarded from requirements.

Covers:

* `req~predicate-operators~1`

Needs: impl, utest

#### Boolean Literals
`dsn~boolean-literals~1`

Expand Down
66 changes: 41 additions & 25 deletions doc/system_requirements.md
Original file line number Diff line number Diff line change
Expand Up @@ -110,7 +110,7 @@ This is necessary since complex statements are usually build as a result of mult

Covers:

* [feat~statement-definition~1](#statement-definition)
* [`feat~statement-definition~1`](#statement-definition)

Needs: dsn

Expand All @@ -125,7 +125,7 @@ If users can't get illegal structures to compile, they don't need to spend time

Covers:

* [feat~compile-time-error-checking~1](#compile-time-error-checking)
* [`feat~compile-time-error-checking~1`](#compile-time-error-checking)

Needs: dsn

Expand All @@ -138,7 +138,7 @@ ESB supports the following arithmetic operators: `+`, `-`, `*`, `/`.

Covers:

* [feat~statement-definition~1](#statement-definition)
* [`feat~statement-definition~1`](#statement-definition)

Needs: dsn

Expand All @@ -158,7 +158,7 @@ ESB supports the following comparison operations:

Covers:

* [feat~statement-definition~1](#statement-definition)
* [`feat~statement-definition~1`](#statement-definition)

Needs: dsn

Expand All @@ -169,18 +169,34 @@ ESB supports the following boolean operators: `AND`, `OR` and `NOT`

Covers:

* [feat~statement-definition~1](#statement-definition)
* [`feat~statement-definition~1`](#statement-definition)

Needs: dsn

#### [NOT] LIKE Predicate
`req~like-predicate~1`

ESB supports the [NOT] LIKE predicate.
ESB supports the `[NOT] LIKE` predicate.

Covers:

* [feat~statement-definition~1](#statement-definition)
* [`feat~statement-definition~1`](#statement-definition)

Needs: dsn

#### Predicate Operators
`req~predicate-operators~1`

ESB supports the following predicate operators:

* `[NOT] BETWEEN`
* `EXISTS`
* `[NOT] IN`
* `IS [NOT] NULL`

Covers:

* [`feat~statement-definition~1`](#statement-definition)

Needs: dsn

Expand All @@ -194,7 +210,7 @@ ESB can convert the following string literals into boolean values, independently

Covers:

* [feat~statement-definition~1](#statement-definition)
* [`feat~statement-definition~1`](#statement-definition)

Needs: dsn

Expand All @@ -205,7 +221,7 @@ ESB supports the following literal values: `default`, `double`, `float`, `intege

Covers:

* [feat~statement-definition~1](#statement-definition)
* [`feat~statement-definition~1`](#statement-definition)

Needs: dsn

Expand All @@ -222,7 +238,7 @@ ESB supports the following way to construct tables from a value table:

Covers:

* [feat~statement-definition~1](#statement-definition)
* [`feat~statement-definition~1`](#statement-definition)

Needs: dsn

Expand All @@ -249,7 +265,7 @@ Create table:

Covers:

* [feat~statement-definition~1](#statement-definition)
* [`feat~statement-definition~1`](#statement-definition)

Needs: dsn

Expand All @@ -272,7 +288,7 @@ Drop table:

Covers:

* [feat~statement-definition~1](#statement-definition)
* [`feat~statement-definition~1`](#statement-definition)

Needs: dsn

Expand All @@ -292,7 +308,7 @@ ESB supports the following `INSERT` statement:

Covers:

* [feat~statement-definition~1](#statement-definition)
* [`feat~statement-definition~1`](#statement-definition)

Needs: dsn

Expand All @@ -306,7 +322,7 @@ ESB supports a list of explicit values as `INSERT` source:

Covers:

* [feat~statement-definition~1](#statement-definition)
* [`feat~statement-definition~1`](#statement-definition)

Needs: dsn

Expand Down Expand Up @@ -338,7 +354,7 @@ ESB supports the following `MERGE` statement:

Covers:

* [feat~statement-definition~1](#statement-definition)
* [`feat~statement-definition~1`](#statement-definition)

Needs: dsn

Expand Down Expand Up @@ -375,7 +391,7 @@ ESB supports the following `SELECT` statement:

Covers:

* [feat~statement-definition~1](#statement-definition)
* [`feat~statement-definition~1`](#statement-definition)

Needs: dsn

Expand All @@ -392,7 +408,7 @@ While keyword case is mostly an esthetic point, different users still have diffe

Covers:

* [feat~sql-string-rendering~1](#sql-string-rendering)
* [`feat~sql-string-rendering~1`](#sql-string-rendering)

Needs: dsn

Expand All @@ -411,7 +427,7 @@ The Exasol database for example requires identifiers to be enclosed in double qu

Covers:

* [feat~sql-string-rendering~1](#sql-string-rendering)
* [`feat~sql-string-rendering~1`](#sql-string-rendering)

Needs: dsn

Expand All @@ -422,7 +438,7 @@ ESB renders abstract `SELECT` statements into SQL query strings.

Covers:

* [feat~sql-string-rendering~1](#sql-string-rendering)
* [`feat~sql-string-rendering~1`](#sql-string-rendering)

Needs: dsn

Expand All @@ -433,7 +449,7 @@ ESB renders abstract `CREATE` statements into SQL data definition language strin

Covers:

* [feat~sql-string-rendering~1](#sql-string-rendering)
* [`feat~sql-string-rendering~1`](#sql-string-rendering)

Needs: dsn

Expand All @@ -444,7 +460,7 @@ ESB renders abstract `DROP` statements into SQL data definition language strings

Covers:

* [feat~sql-string-rendering~1](#sql-string-rendering)
* [`feat~sql-string-rendering~1`](#sql-string-rendering)

Needs: dsn

Expand All @@ -455,7 +471,7 @@ ESB renders abstract `INSERT` statements into SQL data manipulation language str

Covers:

* [feat~sql-string-rendering~1](#sql-string-rendering)
* [`feat~sql-string-rendering~1`](#sql-string-rendering)

Needs: dsn

Expand All @@ -466,7 +482,7 @@ ESB renders abstract `MERGE` statements into SQL data manipulation language stri

Covers:

* [feat~sql-string-rendering~1](#sql-string-rendering)
* [`feat~sql-string-rendering~1`](#sql-string-rendering)

Needs: dsn

Expand All @@ -483,6 +499,6 @@ Neighboring systems of an Exasol database often do not have equivalent data type

Covers:

* [feat~data-conversion~1](#data-conversion)
* [`feat~data-conversion~1`](#data-conversion)

Needs: dsn
Needs: dsn
Loading

0 comments on commit e9499ae

Please sign in to comment.