Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[AD-192] Integrate existing aws repository content with our develop branch #1

Merged
merged 14 commits into from
Jun 11, 2021

Conversation

andiemontoyeah
Copy link
Contributor

@andiemontoyeah andiemontoyeah commented Jun 7, 2021

Summary

Integrate existing aws repository content with our develop branch.

Description

  • Integrates changes from the initial commit of the aws repository to our develop branch (adds a contributing readme, code of conduct readme, a notice file and a license file)
  • There was already an Apache license file so added our header license file as a separate file in license-header.txt.
  • Removed task and github action steps related to sonarqube.

Related Issue

https://bitquill.atlassian.net/browse/AD-190

Additional Reviewers

@birschick-bq
@mitchell-elholm
@alexey-temnikov
@andiem-bq

@github-actions

This comment has been minimized.

andiem-bq and others added 3 commits June 7, 2021 23:06
@github-actions

This comment has been minimized.

@github-actions

This comment has been minimized.

andiem-bq and others added 3 commits June 8, 2021 17:49
@github-actions

This comment has been minimized.

@github-actions

This comment has been minimized.

@github-actions

This comment has been minimized.

@github-actions
Copy link

Unit Test Results

  33 files    33 suites   1m 7s ⏱️
270 tests 269 ✔️ 1 💤 0 ❌
271 runs  270 ✔️ 1 💤 0 ❌

Results for commit 561b9e6.

@birschick-bq birschick-bq merged commit 6797db8 into develop Jun 11, 2021
@andiemontoyeah andiemontoyeah deleted the andiem/AD-192/initiate_repository_move branch June 11, 2021 16:38
andiemontoyeah added a commit that referenced this pull request Jul 23, 2021
* [AD-231] Update build for version 0.3 beta
https://bitquill.atlassian.net/browse/AD-231

* AD-204 Fixed comparisons against NULL/undefined (#5)

### Summary

AD-204 Fixed comparisons against NULL/undefined

### Description

Comparison operators (<, >, !=) now return null in expressions where a field is compared to null.

Fixes three types of queries:

1. Queries with multiple conditions on a single field

eg. `SELECT * FROM table WHERE field <> 3 AND field <> 5`

2. Queries did not remove null values in not-equals filters. For example in the above query a row containing `field:null` would be included in the result set.

3. Queries involving CASE would incorrectly consider some comparisons to null to be true/false, instead of unknown.
eg. `SELECT CASE WHEN field < 2 THEN 'A' ELSE 'B' END FROM table` would result in 'A' if `field==null` instead of 'B'. The same is true if the field does not exist at all in the document.

### Related Issue

https://bitquill.atlassian.net/browse/AD-204

* Minot enhancements in the documentation

* Commit Code Coverage Badge

* [AD-231] Update build for version 1.0.0-beta.3
https://bitquill.atlassian.net/browse/AD-231

* [AD-192] Integrate existing aws repository content with our develop branch (#1)

### Summary

Integrate existing aws repository content with our develop branch.

### Description
- Integrates changes from the initial commit of the aws repository to our develop branch (adds a contributing readme, code of conduct readme, a notice file and a license file)
- There was already an Apache license file so added our header license file as a separate file in license-header.txt.  
- Removed task and github action steps related to sonarqube.

### Related Issue
https://bitquill.atlassian.net/browse/AD-190

* Added link to GitHub Releases

* not - [user]

* [AD-195] Implement CLI for the metadata persistence - Part 2 (#4)

### Summary

[AD-195](https://bitquill.atlassian.net/browse/AD-195) Implement CLI for the metadata persistence - Part 2

### Description

Add support for:

1. `-l` "list" - lists persisted schema
1. `-b` "list tables" - lists persisted table schemas
1. `-e` "export" - exports one or more table schema to JSON.
1. `-i` "import" - import table schema and update persisted schema.
1. `-o` "output-file" - outputs exported table schema to a file, instead of standard out.
1. Updated documentation.

### Related Issue

https://bitquill.atlassian.net/browse/AD-195

* [AD-236] Make use of sessions conditional on supported versions. (#8)

### Summary

[AD-236] Make use of sessions conditional on supported versions.

### Description

Do not use sessions if version is not 4.0 or greater.

### Related Issue

https://bitquill.atlassian.net/browse/AD-236

* [AD-189] Load work-around JAR files from branch in Janino forked repository. (#3)

### Summary

[AD-189] Load work-around JAR files from branch in Janino forked repository.

### Description

Reference work-around JAR file from forked Janino project where the source is set for the work-around and the JAR files are produced against that source.

### Related Issue

https://bitquill.atlassian.net/browse/AD-189

* Added script to automatically generate taco file.

* Commit Code Coverage Badge

* [AD-237] Document Schema JSON format (#10)

### Summary

[AD-237](https://bitquill.atlassian.net/browse/AD-237) Document Schema JSON format

### Description

- Document table schema in JSON format and how make modifications to flatten a virtual table.

### Related Issue

https://bitquill.atlassian.net/browse/AD-237

* [AD-203] Fix where clause (#7)

* AD-204 Fixed comparisons against NULL/undefined (#89)

* AD-215 Fixed comparisons for CASE

* AD-204 Fix for multi-field conditions

* Commit Code Coverage Badge

* Commit Code Coverage Badge

* AD-204 Added test in query mapping service

* Commit Code Coverage Badge

* AD-204 Added check for cast, removed list copying

* Commit Code Coverage Badge

Co-authored-by: mitchell-elholm <mitchell-elholm@users.noreply.github.com>

* AD-203 Initial commit with unit tests

* AD-203 Used RexToMongoTranslator

* AD-203 Added fix for quotes, and Long parsing, also fixed unit tests

* AD-203 Added test for nested OR in WHERE clause

* AD-203 Changed $literal to $numberLong

* AD-203 Format and fixed comment

* Commit Code Coverage Badge

* AD-203 Removed $literal

* Commit Code Coverage Badge

* AD-203 Added note on $literal, fixed some types

* Commit Code Coverage Badge

* AD-203 Changed to use placeholder constant, added DECIMAL to types

* Commit Code Coverage Badge

Co-authored-by: mitchell-elholm <mitchell-elholm@users.noreply.github.com>

* [AD-240] Allow "latest or none" option so we don't always generate a schema (#12)

### Summary

[AD-240](https://bitquill.atlassian.net/browse/AD-240) Allow "latest or none" option so we don't always generate a schema.

### Description

Add option to get latest or none - so we don' always generate a new schema.

### Related Issue

https://bitquill.atlassian.net/browse/AD-240

* [AD-223] Sql Functions Foundation (#9)

* AD-204 Fixed comparisons against NULL/undefined (#89)

* AD-215 Fixed comparisons for CASE

* AD-204 Fix for multi-field conditions

* Commit Code Coverage Badge

* Commit Code Coverage Badge

* AD-204 Added test in query mapping service

* Commit Code Coverage Badge

* AD-204 Added check for cast, removed list copying

* Commit Code Coverage Badge

Co-authored-by: mitchell-elholm <mitchell-elholm@users.noreply.github.com>

* AD-203 Initial commit with unit tests

* AD-203 Used RexToMongoTranslator

* AD-203 Added fix for quotes, and Long parsing, also fixed unit tests

* WIP - added dateadd and some datepart functions

* Add more tests

* AD-203 Added test for nested OR in WHERE clause

* AD-203 Changed $literal to $numberLong

* AD-203 Format and fixed comment

* Commit Code Coverage Badge

* [AD-223] Update taco file

* Commit Code Coverage Badge

* AD-203 Removed $literal

* Commit Code Coverage Badge

* Resolve conflicts with AD-203 + add unit tests

* Commit Code Coverage Badge

* AD-203 Added note on $literal, fixed some types

* Commit Code Coverage Badge

* Merge cganges from [AD-203]

* Commit Code Coverage Badge

* Merge changes from develop

* Commit Code Coverage Badge

Co-authored-by: mitchell-elholm <76969722+mitchell-elholm@users.noreply.github.com>
Co-authored-by: mitchell-elholm <mitchell-elholm@users.noreply.github.com>
Co-authored-by: andiem-bq <andiem-bq@users.noreply.github.com>

* Commit Code Coverage Badge

* AD-257 refactor DocumentDbStatementTest (#14)

* AD-257 refactor DocumentDbStatementTest

* Commit Code Coverage Badge

Co-authored-by: mitchell-elholm <mitchell-elholm@users.noreply.github.com>

* AD-220 Add missing tests (#13)

* AD-220 Initial commit, added tests for IN, NOT IN, CAST, OFFSET, NATURAL JOIN, CROSS JOIN

* AD-220 Re-worked cast tests, refactored DocumentDbStatementTest

* Spotbugs

* Commit Code Coverage Badge

* AD-220 Added refactor from Develop

* Commit Code Coverage Badge

* AD-220 Added documentation

* Commit Code Coverage Badge

* AD-220 Documentation space

* Commit Code Coverage Badge

Co-authored-by: mitchell-elholm <mitchell-elholm@users.noreply.github.com>

* [AD-193] Documentation and Demo for metadata persistence with DocumentDB (#15)

### Summary

[AD-193](https://bitquill.atlassian.net/browse/AD-193) Documentation and Demo for metadata persistence with DocumentDB

### Description

- Fixes an issue with importing schema for a new (previously non-existent) schema.
- Fixes some small documentation issues.

### Related Issue

https://bitquill.atlassian.net/browse/AD-193

* AD-241 Error when querying >20000 rows (#17)

* AD-241 Added client to result set

* Commit Code Coverage Badge

* AD-241 Added unit test, fixed get/setFetchSize

* AD-241 Checkstyle

* Removed mock overrides

* Fixed test class

* Fixed Statement test

* Commit Code Coverage Badge

* Adjusted batch/fetchSize

* Checkstyle

* Commit Code Coverage Badge

Co-authored-by: mitchell-elholm <mitchell-elholm@users.noreply.github.com>

* [AD-214] Query cancellation (#16)

* WIP - initial commit

* [AD-214] Implement query cancellation for statement and prepared statement

* Remove duplicate calls to verifyOpen()

* Commit Code Coverage Badge

* Fix spacing in build.gradle

* Commit Code Coverage Badge

* Code review improvements

* Commit Code Coverage Badge

* Resolve merge conflicts from develop

* Commit Code Coverage Badge

Co-authored-by: andiem-bq <andiem-bq@users.noreply.github.com>

* [AD-261] Update version to v1.0.0-beta.4 (#18)

* [AD-261] Update version to v1.0.0-beta.4

* Commit Code Coverage Badge

Co-authored-by: andiem-bq <andiem-bq@users.noreply.github.com>

* [AD-261] Update Tableau Connector name (#19)

* [AD-261] Update version to v1.0.0-beta.4

* [AD-261] Update names and links in taco file

* Commit Code Coverage Badge

Co-authored-by: andiem-bq <andiem-bq@users.noreply.github.com>

* [AD-226] Add additional extract tests (#20)

* Add additional tests for datepart functions

* Add ':' in needsQuote check

* Add tests for case

* Add test descriptions

* Commit Code Coverage Badge

Co-authored-by: andiem-bq <andiem-bq@users.noreply.github.com>

* Commit Code Coverage Badge

* [AD-227] Added support for CURRENT_TIMESTAMP, CURRENT_DATE, QUARTER, DAYNAME, and MONTHNAME. (#21)

### Summary

[AD-227] Added support for CURRENT_TIMESTAMP, CURRENT_DATE, QUARTER, DAYNAME, and MONTHNAME.

### Description

- CURRENT_TIMESTAMP/NOW, 
- CURRENT_DATE/TODAY, 
- QUARTER, 
- DAYNAME, and 
- MONTHNAME.
- Date/Datetime operators `+` and `-` (in Tableau)
- Small improvement in handling BsonTimestamp conversions.

### Related Issue

https://bitquill.atlassian.net/browse/AD-227

* [AD-227] Added support for CURRENT_TIMESTAMP, CURRENT_DATE, QUARTER, DAYNAME, MONTHNAME.
https://bitquill.atlassian.net/browse/AD-227

* Commit Code Coverage Badge

* [AD-227] Correct failing test.
https://bitquill.atlassian.net/browse/AD-227

* [AD-227] Improvements from review.
https://bitquill.atlassian.net/browse/AD-227

* Commit Code Coverage Badge

* [AD-227] Update datediff in dialect.tdd

* Commit Code Coverage Badge

* [AD-227] Add dialect entry for datetime - datetime

* Commit Code Coverage Badge

* [AD-227] Add support for NULL as parameter to DAYNAME, MONTHNAME, and QUARTER.
https://bitquill.atlassian.net/browse/AD-227

* Commit Code Coverage Badge

* [AD-227] Refactored MONTHNAME, DAYNAME and QUARTER to use String.format() to create Mongo aggregate commands.
https://bitquill.atlassian.net/browse/AD-227

* Commit Code Coverage Badge

Co-authored-by: birschick-bq <birschick-bq@users.noreply.github.com>
Co-authored-by: Andie Montoya <andiem@bitquilltech.com>
Co-authored-by: andiem-bq <andiem-bq@users.noreply.github.com>

* AD-194 Added fix for Tableau Issue (#22)

* AD-194 Added fix for Tableau Issue

* Commit Code Coverage Badge

Co-authored-by: mitchell-elholm <mitchell-elholm@users.noreply.github.com>

* [AD-268] Handle case when sub-document (virtual table) contains '_id' as field. (#24)

### Summary

[AD-268] Handle case when sub-document (virtual table) contains '_id' as field.

### Description

Now correctly sending the `collectionName` instead of `path`.

### Related Issue

https://bitquill.atlassian.net/browse/AD-268

* [AD-268] Handle case when sub-document (virtual table) contains '_id' as field.
https://bitquill.atlassian.net/browse/AD-268

* Commit Code Coverage Badge

Co-authored-by: birschick-bq <birschick-bq@users.noreply.github.com>

* AD-251 Added support for IS [NOT] NULL (#23)

* AD-251 Added support for IS [NOT] NULL

* Removed unused import

* Checkstyle

* Commit Code Coverage Badge

* AD-251 Added mapping test, simplified null handler

* Commit Code Coverage Badge

Co-authored-by: mitchell-elholm <mitchell-elholm@users.noreply.github.com>

* [AD-269] Handle case when first array is empty followed by non-empty array of object. (#25)

### Summary

[AD-269] Handle case when first array is empty followed by non-empty array of object.

### Description

Handle the case when a field is first encountered as an empty array, followed by a non-empty array of object.

### Related Issue

https://bitquill.atlassian.net/browse/AD-269

* [AD-269] Handle case when first array is empty followed by non-empty array of object.
https://bitquill.atlassian.net/browse/AD-269

* Commit Code Coverage Badge

Co-authored-by: birschick-bq <birschick-bq@users.noreply.github.com>

* [AD-262] Additional tests for CASE (#26)

* [AD-262] Add additional tests for CASE

* [AD-262] Add additional tests for CASE

* [AD-262] Add additional tests for CASE

* Remove extra space

* Remove extra space

* Commit Code Coverage Badge

* Add separate test for CASE with NOT + add setting to treat string literals of different lengths as varchar

* Commit Code Coverage Badge

Co-authored-by: andiem-bq <andiem-bq@users.noreply.github.com>

* [AD-274] Fix handling of checking for missing database name in connection string. (#29)

### Summary

[AD-274] Fix handling of checking for missing database name in connection string.

### Description

- Fix handling of checking for missing database name in connection string.

### Related Issue

https://bitquill.atlassian.net/browse/AD-274

* [AD-274] Fix handling of checking for missing database name in connection string.
https://bitquill.atlassian.net/browse/AD-274

* Commit Code Coverage Badge

Co-authored-by: birschick-bq <birschick-bq@users.noreply.github.com>

* Commit Code Coverage Badge

* AD-225 Added substring (#28)

* AD-225 Added substring

* Ad-225 Checkstyle

* Commit Code Coverage Badge

* Fixed merge

* Moved old method to make changes clearer

* Commit Code Coverage Badge

* $substr -> $substrCP

* Fixed mapping test

* Commit Code Coverage Badge

* Added more tests with literals

* Commit Code Coverage Badge

* Fixed substring support for expressions, added tests, added tableau support for MID

* Commit Code Coverage Badge

* Removed use of standard operator

* Commit Code Coverage Badge

Co-authored-by: mitchell-elholm <mitchell-elholm@users.noreply.github.com>

* [AD-213] Implement a automated identifier truncation when they exceed the maximum (128) length. (#30)

### Summary

[AD-213] Implement a automated identifier truncation when they exceed the maximum (128) length.

### Description

- Truncate generated identifiers to ensure it doesn't exceed maximum (128) length.
- Attempt to keep "base" table name in truncated identifiers
- Attempt to keep as much of context as possible.

### Related Issue

https://bitquill.atlassian.net/browse/AD-213

* [AD-213] Implement a automated identifier truncation when they exceed the maximum (128) length.
https://bitquill.atlassian.net/browse/AD-213

* Commit Code Coverage Badge

* [AD-213] Update documentation.
https://bitquill.atlassian.net/browse/AD-213

* Commit Code Coverage Badge

* [AD-213] Review changes. Refactor DocumentDbTableSchemaGenerator.java with helper class. Improve test understanding.
https://bitquill.atlassian.net/browse/AD-213

* [AD-213] Change test so not so memory challenging.
https://bitquill.atlassian.net/browse/AD-213

* Commit Code Coverage Badge

* [AD-213] Documentation updates from code review.
https://bitquill.atlassian.net/browse/AD-213

* Commit Code Coverage Badge

Co-authored-by: birschick-bq <birschick-bq@users.noreply.github.com>

* [AD-278] Create MongoClient only when needed. Close client connection when closing the Enumerable. (#32)

### Summary

[AD-278] Create MongoClient only when needed. Close client connection when closing the Enumerable.

### Description

- Create `MongoClient` (`client`) only when needed. 
- Close `client` connection when closing the Enumerable.

### Related Issue

https://bitquill.atlassian.net/browse/AD-278

* [AD-278] Create MongoClient only when needed. Close client connection when closing the Enumerable.
https://bitquill.atlassian.net/browse/AD-278

* Commit Code Coverage Badge

Co-authored-by: birschick-bq <birschick-bq@users.noreply.github.com>

* [AD-254] Implement FLOOR for DATETIME types. (#31)

### Summary

[AD-254] Implement FLOOR for DATETIME types.

### Description

Implements `FLOOR (<datetime> TO <timeunit>)`
- Uses equivalent of `dateadd(<timeunit>,datediff(<timeunit>,0,@datetime),0)` (https://stackoverflow.com/questions/85373/floor-a-date-in-sql-server/85379#85379)
- Except for YEAR and MONTH which use `$dateToString` and `$dateFromString`
- Implements an emulated version of integer division using `$mod`.

### Related Issue

https://bitquill.atlassian.net/browse/AD-254

* [AD-254] Implement FLOOR for DATETIME types.
https://bitquill.atlassian.net/browse/AD-254

* Commit Code Coverage Badge

* [AD-254] Added support for ISOYEAR.
https://bitquill.atlassian.net/browse/AD-254

* [AD-254] Removed support for ISOYEAR.
https://bitquill.atlassian.net/browse/AD-254

* Commit Code Coverage Badge

* [AD-254] Slight refactor for easier review.
https://bitquill.atlassian.net/browse/AD-254

* Commit Code Coverage Badge

* [AD-254] Implement FLOOR(... TO WEEK). Split query/DocumentDbQueryMappingServiceTest.java
https://bitquill.atlassian.net/browse/AD-254

* Commit Code Coverage Badge

* [AD-254] Minor refactor.
https://bitquill.atlassian.net/browse/AD-254

* Commit Code Coverage Badge

* [AD-254] Updated Tableau dialect file.
https://bitquill.atlassian.net/browse/AD-254

* Commit Code Coverage Badge

* [AD-254] Improvements from code review.
https://bitquill.atlassian.net/browse/AD-254

* [AD-254] Implement QUARTER time unit for FLOOR.
https://bitquill.atlassian.net/browse/AD-254

* Commit Code Coverage Badge

* [AD-254] Added support for FLOOR aggregation in Tableau.
https://bitquill.atlassian.net/browse/AD-254

* Commit Code Coverage Badge

* Commit Code Coverage Badge

Co-authored-by: birschick-bq <birschick-bq@users.noreply.github.com>

* Update beta version from 4 to 5 (#33)

* Update beta version from 4 to 5

* Commit Code Coverage Badge

Co-authored-by: andiem-bq <andiem-bq@users.noreply.github.com>

* Commit Code Coverage Badge

Co-authored-by: Bruce Irschick <brucei@bitquilltech.com>
Co-authored-by: Alexey Temnikov <alexeyt@bitquilltech.com>
Co-authored-by: alexey-temnikov <alexey-temnikov@users.noreply.github.com>
Co-authored-by: mitchell-elholm <76969722+mitchell-elholm@users.noreply.github.com>
Co-authored-by: mitchell-elholm <mitchell-elholm@users.noreply.github.com>
Co-authored-by: andiem-bq <andiem-bq@users.noreply.github.com>
Co-authored-by: birschick-bq <birschick-bq@users.noreply.github.com>
andiemontoyeah added a commit that referenced this pull request Jul 23, 2021
* [AD-231] Update build for version 0.3 beta
https://bitquill.atlassian.net/browse/AD-231

* AD-204 Fixed comparisons against NULL/undefined (#5)

### Summary

AD-204 Fixed comparisons against NULL/undefined

### Description

Comparison operators (<, >, !=) now return null in expressions where a field is compared to null.

Fixes three types of queries:

1. Queries with multiple conditions on a single field

eg. `SELECT * FROM table WHERE field <> 3 AND field <> 5`

2. Queries did not remove null values in not-equals filters. For example in the above query a row containing `field:null` would be included in the result set.

3. Queries involving CASE would incorrectly consider some comparisons to null to be true/false, instead of unknown.
eg. `SELECT CASE WHEN field < 2 THEN 'A' ELSE 'B' END FROM table` would result in 'A' if `field==null` instead of 'B'. The same is true if the field does not exist at all in the document.

### Related Issue

https://bitquill.atlassian.net/browse/AD-204

* Minot enhancements in the documentation

* Commit Code Coverage Badge

* [AD-231] Update build for version 1.0.0-beta.3
https://bitquill.atlassian.net/browse/AD-231

* [AD-192] Integrate existing aws repository content with our develop branch (#1)

### Summary

Integrate existing aws repository content with our develop branch.

### Description
- Integrates changes from the initial commit of the aws repository to our develop branch (adds a contributing readme, code of conduct readme, a notice file and a license file)
- There was already an Apache license file so added our header license file as a separate file in license-header.txt.  
- Removed task and github action steps related to sonarqube.

### Related Issue
https://bitquill.atlassian.net/browse/AD-190

* Added link to GitHub Releases

* not - [user]

* [AD-195] Implement CLI for the metadata persistence - Part 2 (#4)

### Summary

[AD-195](https://bitquill.atlassian.net/browse/AD-195) Implement CLI for the metadata persistence - Part 2

### Description

Add support for:

1. `-l` "list" - lists persisted schema
1. `-b` "list tables" - lists persisted table schemas
1. `-e` "export" - exports one or more table schema to JSON.
1. `-i` "import" - import table schema and update persisted schema.
1. `-o` "output-file" - outputs exported table schema to a file, instead of standard out.
1. Updated documentation.

### Related Issue

https://bitquill.atlassian.net/browse/AD-195

* [AD-236] Make use of sessions conditional on supported versions. (#8)

### Summary

[AD-236] Make use of sessions conditional on supported versions.

### Description

Do not use sessions if version is not 4.0 or greater.

### Related Issue

https://bitquill.atlassian.net/browse/AD-236

* [AD-189] Load work-around JAR files from branch in Janino forked repository. (#3)

### Summary

[AD-189] Load work-around JAR files from branch in Janino forked repository.

### Description

Reference work-around JAR file from forked Janino project where the source is set for the work-around and the JAR files are produced against that source.

### Related Issue

https://bitquill.atlassian.net/browse/AD-189

* Added script to automatically generate taco file.

* Commit Code Coverage Badge

* [AD-237] Document Schema JSON format (#10)

### Summary

[AD-237](https://bitquill.atlassian.net/browse/AD-237) Document Schema JSON format

### Description

- Document table schema in JSON format and how make modifications to flatten a virtual table.

### Related Issue

https://bitquill.atlassian.net/browse/AD-237

* [AD-203] Fix where clause (#7)

* AD-204 Fixed comparisons against NULL/undefined (#89)

* AD-215 Fixed comparisons for CASE

* AD-204 Fix for multi-field conditions

* Commit Code Coverage Badge

* Commit Code Coverage Badge

* AD-204 Added test in query mapping service

* Commit Code Coverage Badge

* AD-204 Added check for cast, removed list copying

* Commit Code Coverage Badge

Co-authored-by: mitchell-elholm <mitchell-elholm@users.noreply.github.com>

* AD-203 Initial commit with unit tests

* AD-203 Used RexToMongoTranslator

* AD-203 Added fix for quotes, and Long parsing, also fixed unit tests

* AD-203 Added test for nested OR in WHERE clause

* AD-203 Changed $literal to $numberLong

* AD-203 Format and fixed comment

* Commit Code Coverage Badge

* AD-203 Removed $literal

* Commit Code Coverage Badge

* AD-203 Added note on $literal, fixed some types

* Commit Code Coverage Badge

* AD-203 Changed to use placeholder constant, added DECIMAL to types

* Commit Code Coverage Badge

Co-authored-by: mitchell-elholm <mitchell-elholm@users.noreply.github.com>

* [AD-240] Allow "latest or none" option so we don't always generate a schema (#12)

### Summary

[AD-240](https://bitquill.atlassian.net/browse/AD-240) Allow "latest or none" option so we don't always generate a schema.

### Description

Add option to get latest or none - so we don' always generate a new schema.

### Related Issue

https://bitquill.atlassian.net/browse/AD-240

* [AD-223] Sql Functions Foundation (#9)

* AD-204 Fixed comparisons against NULL/undefined (#89)

* AD-215 Fixed comparisons for CASE

* AD-204 Fix for multi-field conditions

* Commit Code Coverage Badge

* Commit Code Coverage Badge

* AD-204 Added test in query mapping service

* Commit Code Coverage Badge

* AD-204 Added check for cast, removed list copying

* Commit Code Coverage Badge

Co-authored-by: mitchell-elholm <mitchell-elholm@users.noreply.github.com>

* AD-203 Initial commit with unit tests

* AD-203 Used RexToMongoTranslator

* AD-203 Added fix for quotes, and Long parsing, also fixed unit tests

* WIP - added dateadd and some datepart functions

* Add more tests

* AD-203 Added test for nested OR in WHERE clause

* AD-203 Changed $literal to $numberLong

* AD-203 Format and fixed comment

* Commit Code Coverage Badge

* [AD-223] Update taco file

* Commit Code Coverage Badge

* AD-203 Removed $literal

* Commit Code Coverage Badge

* Resolve conflicts with AD-203 + add unit tests

* Commit Code Coverage Badge

* AD-203 Added note on $literal, fixed some types

* Commit Code Coverage Badge

* Merge cganges from [AD-203]

* Commit Code Coverage Badge

* Merge changes from develop

* Commit Code Coverage Badge

Co-authored-by: mitchell-elholm <76969722+mitchell-elholm@users.noreply.github.com>
Co-authored-by: mitchell-elholm <mitchell-elholm@users.noreply.github.com>
Co-authored-by: andiem-bq <andiem-bq@users.noreply.github.com>

* Commit Code Coverage Badge

* AD-257 refactor DocumentDbStatementTest (#14)

* AD-257 refactor DocumentDbStatementTest

* Commit Code Coverage Badge

Co-authored-by: mitchell-elholm <mitchell-elholm@users.noreply.github.com>

* AD-220 Add missing tests (#13)

* AD-220 Initial commit, added tests for IN, NOT IN, CAST, OFFSET, NATURAL JOIN, CROSS JOIN

* AD-220 Re-worked cast tests, refactored DocumentDbStatementTest

* Spotbugs

* Commit Code Coverage Badge

* AD-220 Added refactor from Develop

* Commit Code Coverage Badge

* AD-220 Added documentation

* Commit Code Coverage Badge

* AD-220 Documentation space

* Commit Code Coverage Badge

Co-authored-by: mitchell-elholm <mitchell-elholm@users.noreply.github.com>

* [AD-193] Documentation and Demo for metadata persistence with DocumentDB (#15)

### Summary

[AD-193](https://bitquill.atlassian.net/browse/AD-193) Documentation and Demo for metadata persistence with DocumentDB

### Description

- Fixes an issue with importing schema for a new (previously non-existent) schema.
- Fixes some small documentation issues.

### Related Issue

https://bitquill.atlassian.net/browse/AD-193

* AD-241 Error when querying >20000 rows (#17)

* AD-241 Added client to result set

* Commit Code Coverage Badge

* AD-241 Added unit test, fixed get/setFetchSize

* AD-241 Checkstyle

* Removed mock overrides

* Fixed test class

* Fixed Statement test

* Commit Code Coverage Badge

* Adjusted batch/fetchSize

* Checkstyle

* Commit Code Coverage Badge

Co-authored-by: mitchell-elholm <mitchell-elholm@users.noreply.github.com>

* [AD-214] Query cancellation (#16)

* WIP - initial commit

* [AD-214] Implement query cancellation for statement and prepared statement

* Remove duplicate calls to verifyOpen()

* Commit Code Coverage Badge

* Fix spacing in build.gradle

* Commit Code Coverage Badge

* Code review improvements

* Commit Code Coverage Badge

* Resolve merge conflicts from develop

* Commit Code Coverage Badge

Co-authored-by: andiem-bq <andiem-bq@users.noreply.github.com>

* [AD-261] Update version to v1.0.0-beta.4 (#18)

* [AD-261] Update version to v1.0.0-beta.4

* Commit Code Coverage Badge

Co-authored-by: andiem-bq <andiem-bq@users.noreply.github.com>

* [AD-261] Update Tableau Connector name (#19)

* [AD-261] Update version to v1.0.0-beta.4

* [AD-261] Update names and links in taco file

* Commit Code Coverage Badge

Co-authored-by: andiem-bq <andiem-bq@users.noreply.github.com>

* [AD-226] Add additional extract tests (#20)

* Add additional tests for datepart functions

* Add ':' in needsQuote check

* Add tests for case

* Add test descriptions

* Commit Code Coverage Badge

Co-authored-by: andiem-bq <andiem-bq@users.noreply.github.com>

* [AD-227] Added support for CURRENT_TIMESTAMP, CURRENT_DATE, QUARTER, DAYNAME, and MONTHNAME. (#21)

### Summary

[AD-227] Added support for CURRENT_TIMESTAMP, CURRENT_DATE, QUARTER, DAYNAME, and MONTHNAME.

### Description

- CURRENT_TIMESTAMP/NOW, 
- CURRENT_DATE/TODAY, 
- QUARTER, 
- DAYNAME, and 
- MONTHNAME.
- Date/Datetime operators `+` and `-` (in Tableau)
- Small improvement in handling BsonTimestamp conversions.

### Related Issue

https://bitquill.atlassian.net/browse/AD-227

* [AD-227] Added support for CURRENT_TIMESTAMP, CURRENT_DATE, QUARTER, DAYNAME, MONTHNAME.
https://bitquill.atlassian.net/browse/AD-227

* Commit Code Coverage Badge

* [AD-227] Correct failing test.
https://bitquill.atlassian.net/browse/AD-227

* [AD-227] Improvements from review.
https://bitquill.atlassian.net/browse/AD-227

* Commit Code Coverage Badge

* [AD-227] Update datediff in dialect.tdd

* Commit Code Coverage Badge

* [AD-227] Add dialect entry for datetime - datetime

* Commit Code Coverage Badge

* [AD-227] Add support for NULL as parameter to DAYNAME, MONTHNAME, and QUARTER.
https://bitquill.atlassian.net/browse/AD-227

* Commit Code Coverage Badge

* [AD-227] Refactored MONTHNAME, DAYNAME and QUARTER to use String.format() to create Mongo aggregate commands.
https://bitquill.atlassian.net/browse/AD-227

* Commit Code Coverage Badge

Co-authored-by: birschick-bq <birschick-bq@users.noreply.github.com>
Co-authored-by: Andie Montoya <andiem@bitquilltech.com>
Co-authored-by: andiem-bq <andiem-bq@users.noreply.github.com>

* AD-194 Added fix for Tableau Issue (#22)

* AD-194 Added fix for Tableau Issue

* Commit Code Coverage Badge

Co-authored-by: mitchell-elholm <mitchell-elholm@users.noreply.github.com>

* [AD-268] Handle case when sub-document (virtual table) contains '_id' as field. (#24)

### Summary

[AD-268] Handle case when sub-document (virtual table) contains '_id' as field.

### Description

Now correctly sending the `collectionName` instead of `path`.

### Related Issue

https://bitquill.atlassian.net/browse/AD-268

* [AD-268] Handle case when sub-document (virtual table) contains '_id' as field.
https://bitquill.atlassian.net/browse/AD-268

* Commit Code Coverage Badge

Co-authored-by: birschick-bq <birschick-bq@users.noreply.github.com>

* AD-251 Added support for IS [NOT] NULL (#23)

* AD-251 Added support for IS [NOT] NULL

* Removed unused import

* Checkstyle

* Commit Code Coverage Badge

* AD-251 Added mapping test, simplified null handler

* Commit Code Coverage Badge

Co-authored-by: mitchell-elholm <mitchell-elholm@users.noreply.github.com>

* [AD-269] Handle case when first array is empty followed by non-empty array of object. (#25)

### Summary

[AD-269] Handle case when first array is empty followed by non-empty array of object.

### Description

Handle the case when a field is first encountered as an empty array, followed by a non-empty array of object.

### Related Issue

https://bitquill.atlassian.net/browse/AD-269

* [AD-269] Handle case when first array is empty followed by non-empty array of object.
https://bitquill.atlassian.net/browse/AD-269

* Commit Code Coverage Badge

Co-authored-by: birschick-bq <birschick-bq@users.noreply.github.com>

* [AD-262] Additional tests for CASE (#26)

* [AD-262] Add additional tests for CASE

* [AD-262] Add additional tests for CASE

* [AD-262] Add additional tests for CASE

* Remove extra space

* Remove extra space

* Commit Code Coverage Badge

* Add separate test for CASE with NOT + add setting to treat string literals of different lengths as varchar

* Commit Code Coverage Badge

Co-authored-by: andiem-bq <andiem-bq@users.noreply.github.com>

* [AD-274] Fix handling of checking for missing database name in connection string. (#29)

### Summary

[AD-274] Fix handling of checking for missing database name in connection string.

### Description

- Fix handling of checking for missing database name in connection string.

### Related Issue

https://bitquill.atlassian.net/browse/AD-274

* [AD-274] Fix handling of checking for missing database name in connection string.
https://bitquill.atlassian.net/browse/AD-274

* Commit Code Coverage Badge

Co-authored-by: birschick-bq <birschick-bq@users.noreply.github.com>

* AD-225 Added substring (#28)

* AD-225 Added substring

* Ad-225 Checkstyle

* Commit Code Coverage Badge

* Fixed merge

* Moved old method to make changes clearer

* Commit Code Coverage Badge

* $substr -> $substrCP

* Fixed mapping test

* Commit Code Coverage Badge

* Added more tests with literals

* Commit Code Coverage Badge

* Fixed substring support for expressions, added tests, added tableau support for MID

* Commit Code Coverage Badge

* Removed use of standard operator

* Commit Code Coverage Badge

Co-authored-by: mitchell-elholm <mitchell-elholm@users.noreply.github.com>

* [AD-213] Implement a automated identifier truncation when they exceed the maximum (128) length. (#30)

### Summary

[AD-213] Implement a automated identifier truncation when they exceed the maximum (128) length.

### Description

- Truncate generated identifiers to ensure it doesn't exceed maximum (128) length.
- Attempt to keep "base" table name in truncated identifiers
- Attempt to keep as much of context as possible.

### Related Issue

https://bitquill.atlassian.net/browse/AD-213

* [AD-213] Implement a automated identifier truncation when they exceed the maximum (128) length.
https://bitquill.atlassian.net/browse/AD-213

* Commit Code Coverage Badge

* [AD-213] Update documentation.
https://bitquill.atlassian.net/browse/AD-213

* Commit Code Coverage Badge

* [AD-213] Review changes. Refactor DocumentDbTableSchemaGenerator.java with helper class. Improve test understanding.
https://bitquill.atlassian.net/browse/AD-213

* [AD-213] Change test so not so memory challenging.
https://bitquill.atlassian.net/browse/AD-213

* Commit Code Coverage Badge

* [AD-213] Documentation updates from code review.
https://bitquill.atlassian.net/browse/AD-213

* Commit Code Coverage Badge

Co-authored-by: birschick-bq <birschick-bq@users.noreply.github.com>

* [AD-278] Create MongoClient only when needed. Close client connection when closing the Enumerable. (#32)

### Summary

[AD-278] Create MongoClient only when needed. Close client connection when closing the Enumerable.

### Description

- Create `MongoClient` (`client`) only when needed. 
- Close `client` connection when closing the Enumerable.

### Related Issue

https://bitquill.atlassian.net/browse/AD-278

* [AD-278] Create MongoClient only when needed. Close client connection when closing the Enumerable.
https://bitquill.atlassian.net/browse/AD-278

* Commit Code Coverage Badge

Co-authored-by: birschick-bq <birschick-bq@users.noreply.github.com>

* [AD-254] Implement FLOOR for DATETIME types. (#31)

### Summary

[AD-254] Implement FLOOR for DATETIME types.

### Description

Implements `FLOOR (<datetime> TO <timeunit>)`
- Uses equivalent of `dateadd(<timeunit>,datediff(<timeunit>,0,@datetime),0)` (https://stackoverflow.com/questions/85373/floor-a-date-in-sql-server/85379#85379)
- Except for YEAR and MONTH which use `$dateToString` and `$dateFromString`
- Implements an emulated version of integer division using `$mod`.

### Related Issue

https://bitquill.atlassian.net/browse/AD-254

* [AD-254] Implement FLOOR for DATETIME types.
https://bitquill.atlassian.net/browse/AD-254

* Commit Code Coverage Badge

* [AD-254] Added support for ISOYEAR.
https://bitquill.atlassian.net/browse/AD-254

* [AD-254] Removed support for ISOYEAR.
https://bitquill.atlassian.net/browse/AD-254

* Commit Code Coverage Badge

* [AD-254] Slight refactor for easier review.
https://bitquill.atlassian.net/browse/AD-254

* Commit Code Coverage Badge

* [AD-254] Implement FLOOR(... TO WEEK). Split query/DocumentDbQueryMappingServiceTest.java
https://bitquill.atlassian.net/browse/AD-254

* Commit Code Coverage Badge

* [AD-254] Minor refactor.
https://bitquill.atlassian.net/browse/AD-254

* Commit Code Coverage Badge

* [AD-254] Updated Tableau dialect file.
https://bitquill.atlassian.net/browse/AD-254

* Commit Code Coverage Badge

* [AD-254] Improvements from code review.
https://bitquill.atlassian.net/browse/AD-254

* [AD-254] Implement QUARTER time unit for FLOOR.
https://bitquill.atlassian.net/browse/AD-254

* Commit Code Coverage Badge

* [AD-254] Added support for FLOOR aggregation in Tableau.
https://bitquill.atlassian.net/browse/AD-254

* Commit Code Coverage Badge

* Commit Code Coverage Badge

Co-authored-by: birschick-bq <birschick-bq@users.noreply.github.com>

* Update beta version from 4 to 5 (#33)

* Update beta version from 4 to 5

* Commit Code Coverage Badge

Co-authored-by: andiem-bq <andiem-bq@users.noreply.github.com>

* Adding shadowing for com.google.common to resolve library conflicts on older Tableau versions (2020.4.6)

* Commit Code Coverage Badge

* Update beta version to beta.6 (#36)

* Update beta version

* Commit Code Coverage Badge

Co-authored-by: andiem-bq <andiem-bq@users.noreply.github.com>

* Commit Code Coverage Badge

Co-authored-by: Bruce Irschick <brucei@bitquilltech.com>
Co-authored-by: Alexey Temnikov <alexeyt@bitquilltech.com>
Co-authored-by: alexey-temnikov <alexey-temnikov@users.noreply.github.com>
Co-authored-by: mitchell-elholm <76969722+mitchell-elholm@users.noreply.github.com>
Co-authored-by: mitchell-elholm <mitchell-elholm@users.noreply.github.com>
Co-authored-by: andiem-bq <andiem-bq@users.noreply.github.com>
Co-authored-by: birschick-bq <birschick-bq@users.noreply.github.com>
andiemontoyeah added a commit that referenced this pull request Jul 26, 2021
* Merge changes from AWS repository (#92)

* [AD-231] Update build for version 0.3 beta
https://bitquill.atlassian.net/browse/AD-231

* AD-204 Fixed comparisons against NULL/undefined (#5)

### Summary

AD-204 Fixed comparisons against NULL/undefined

### Description

Comparison operators (<, >, !=) now return null in expressions where a field is compared to null.

Fixes three types of queries:

1. Queries with multiple conditions on a single field

eg. `SELECT * FROM table WHERE field <> 3 AND field <> 5`

2. Queries did not remove null values in not-equals filters. For example in the above query a row containing `field:null` would be included in the result set.

3. Queries involving CASE would incorrectly consider some comparisons to null to be true/false, instead of unknown.
eg. `SELECT CASE WHEN field < 2 THEN 'A' ELSE 'B' END FROM table` would result in 'A' if `field==null` instead of 'B'. The same is true if the field does not exist at all in the document.

### Related Issue

https://bitquill.atlassian.net/browse/AD-204

* Minot enhancements in the documentation

* Commit Code Coverage Badge

* [AD-231] Update build for version 1.0.0-beta.3
https://bitquill.atlassian.net/browse/AD-231

* [AD-192] Integrate existing aws repository content with our develop branch (#1)

### Summary

Integrate existing aws repository content with our develop branch.

### Description
- Integrates changes from the initial commit of the aws repository to our develop branch (adds a contributing readme, code of conduct readme, a notice file and a license file)
- There was already an Apache license file so added our header license file as a separate file in license-header.txt.  
- Removed task and github action steps related to sonarqube.

### Related Issue
https://bitquill.atlassian.net/browse/AD-190

* Added link to GitHub Releases

* not - [user]

* [AD-195] Implement CLI for the metadata persistence - Part 2 (#4)

### Summary

[AD-195](https://bitquill.atlassian.net/browse/AD-195) Implement CLI for the metadata persistence - Part 2

### Description

Add support for:

1. `-l` "list" - lists persisted schema
1. `-b` "list tables" - lists persisted table schemas
1. `-e` "export" - exports one or more table schema to JSON.
1. `-i` "import" - import table schema and update persisted schema.
1. `-o` "output-file" - outputs exported table schema to a file, instead of standard out.
1. Updated documentation.

### Related Issue

https://bitquill.atlassian.net/browse/AD-195

* [AD-236] Make use of sessions conditional on supported versions. (#8)

### Summary

[AD-236] Make use of sessions conditional on supported versions.

### Description

Do not use sessions if version is not 4.0 or greater.

### Related Issue

https://bitquill.atlassian.net/browse/AD-236

* [AD-189] Load work-around JAR files from branch in Janino forked repository. (#3)

### Summary

[AD-189] Load work-around JAR files from branch in Janino forked repository.

### Description

Reference work-around JAR file from forked Janino project where the source is set for the work-around and the JAR files are produced against that source.

### Related Issue

https://bitquill.atlassian.net/browse/AD-189

* Added script to automatically generate taco file.

* Commit Code Coverage Badge

* [AD-237] Document Schema JSON format (#10)

### Summary

[AD-237](https://bitquill.atlassian.net/browse/AD-237) Document Schema JSON format

### Description

- Document table schema in JSON format and how make modifications to flatten a virtual table.

### Related Issue

https://bitquill.atlassian.net/browse/AD-237

* [AD-203] Fix where clause (#7)

* AD-204 Fixed comparisons against NULL/undefined (#89)

* AD-215 Fixed comparisons for CASE

* AD-204 Fix for multi-field conditions

* Commit Code Coverage Badge

* Commit Code Coverage Badge

* AD-204 Added test in query mapping service

* Commit Code Coverage Badge

* AD-204 Added check for cast, removed list copying

* Commit Code Coverage Badge

Co-authored-by: mitchell-elholm <mitchell-elholm@users.noreply.github.com>

* AD-203 Initial commit with unit tests

* AD-203 Used RexToMongoTranslator

* AD-203 Added fix for quotes, and Long parsing, also fixed unit tests

* AD-203 Added test for nested OR in WHERE clause

* AD-203 Changed $literal to $numberLong

* AD-203 Format and fixed comment

* Commit Code Coverage Badge

* AD-203 Removed $literal

* Commit Code Coverage Badge

* AD-203 Added note on $literal, fixed some types

* Commit Code Coverage Badge

* AD-203 Changed to use placeholder constant, added DECIMAL to types

* Commit Code Coverage Badge

Co-authored-by: mitchell-elholm <mitchell-elholm@users.noreply.github.com>

* [AD-240] Allow "latest or none" option so we don't always generate a schema (#12)

### Summary

[AD-240](https://bitquill.atlassian.net/browse/AD-240) Allow "latest or none" option so we don't always generate a schema.

### Description

Add option to get latest or none - so we don' always generate a new schema.

### Related Issue

https://bitquill.atlassian.net/browse/AD-240

* [AD-223] Sql Functions Foundation (#9)

* AD-204 Fixed comparisons against NULL/undefined (#89)

* AD-215 Fixed comparisons for CASE

* AD-204 Fix for multi-field conditions

* Commit Code Coverage Badge

* Commit Code Coverage Badge

* AD-204 Added test in query mapping service

* Commit Code Coverage Badge

* AD-204 Added check for cast, removed list copying

* Commit Code Coverage Badge

Co-authored-by: mitchell-elholm <mitchell-elholm@users.noreply.github.com>

* AD-203 Initial commit with unit tests

* AD-203 Used RexToMongoTranslator

* AD-203 Added fix for quotes, and Long parsing, also fixed unit tests

* WIP - added dateadd and some datepart functions

* Add more tests

* AD-203 Added test for nested OR in WHERE clause

* AD-203 Changed $literal to $numberLong

* AD-203 Format and fixed comment

* Commit Code Coverage Badge

* [AD-223] Update taco file

* Commit Code Coverage Badge

* AD-203 Removed $literal

* Commit Code Coverage Badge

* Resolve conflicts with AD-203 + add unit tests

* Commit Code Coverage Badge

* AD-203 Added note on $literal, fixed some types

* Commit Code Coverage Badge

* Merge cganges from [AD-203]

* Commit Code Coverage Badge

* Merge changes from develop

* Commit Code Coverage Badge

Co-authored-by: mitchell-elholm <76969722+mitchell-elholm@users.noreply.github.com>
Co-authored-by: mitchell-elholm <mitchell-elholm@users.noreply.github.com>
Co-authored-by: andiem-bq <andiem-bq@users.noreply.github.com>

* Commit Code Coverage Badge

* AD-257 refactor DocumentDbStatementTest (#14)

* AD-257 refactor DocumentDbStatementTest

* Commit Code Coverage Badge

Co-authored-by: mitchell-elholm <mitchell-elholm@users.noreply.github.com>

* AD-220 Add missing tests (#13)

* AD-220 Initial commit, added tests for IN, NOT IN, CAST, OFFSET, NATURAL JOIN, CROSS JOIN

* AD-220 Re-worked cast tests, refactored DocumentDbStatementTest

* Spotbugs

* Commit Code Coverage Badge

* AD-220 Added refactor from Develop

* Commit Code Coverage Badge

* AD-220 Added documentation

* Commit Code Coverage Badge

* AD-220 Documentation space

* Commit Code Coverage Badge

Co-authored-by: mitchell-elholm <mitchell-elholm@users.noreply.github.com>

* [AD-193] Documentation and Demo for metadata persistence with DocumentDB (#15)

### Summary

[AD-193](https://bitquill.atlassian.net/browse/AD-193) Documentation and Demo for metadata persistence with DocumentDB

### Description

- Fixes an issue with importing schema for a new (previously non-existent) schema.
- Fixes some small documentation issues.

### Related Issue

https://bitquill.atlassian.net/browse/AD-193

* AD-241 Error when querying >20000 rows (#17)

* AD-241 Added client to result set

* Commit Code Coverage Badge

* AD-241 Added unit test, fixed get/setFetchSize

* AD-241 Checkstyle

* Removed mock overrides

* Fixed test class

* Fixed Statement test

* Commit Code Coverage Badge

* Adjusted batch/fetchSize

* Checkstyle

* Commit Code Coverage Badge

Co-authored-by: mitchell-elholm <mitchell-elholm@users.noreply.github.com>

* [AD-214] Query cancellation (#16)

* WIP - initial commit

* [AD-214] Implement query cancellation for statement and prepared statement

* Remove duplicate calls to verifyOpen()

* Commit Code Coverage Badge

* Fix spacing in build.gradle

* Commit Code Coverage Badge

* Code review improvements

* Commit Code Coverage Badge

* Resolve merge conflicts from develop

* Commit Code Coverage Badge

Co-authored-by: andiem-bq <andiem-bq@users.noreply.github.com>

* [AD-261] Update version to v1.0.0-beta.4 (#18)

* [AD-261] Update version to v1.0.0-beta.4

* Commit Code Coverage Badge

Co-authored-by: andiem-bq <andiem-bq@users.noreply.github.com>

* [AD-261] Update Tableau Connector name (#19)

* [AD-261] Update version to v1.0.0-beta.4

* [AD-261] Update names and links in taco file

* Commit Code Coverage Badge

Co-authored-by: andiem-bq <andiem-bq@users.noreply.github.com>

* [AD-226] Add additional extract tests (#20)

* Add additional tests for datepart functions

* Add ':' in needsQuote check

* Add tests for case

* Add test descriptions

* Commit Code Coverage Badge

Co-authored-by: andiem-bq <andiem-bq@users.noreply.github.com>

* Commit Code Coverage Badge

* [AD-227] Added support for CURRENT_TIMESTAMP, CURRENT_DATE, QUARTER, DAYNAME, and MONTHNAME. (#21)

### Summary

[AD-227] Added support for CURRENT_TIMESTAMP, CURRENT_DATE, QUARTER, DAYNAME, and MONTHNAME.

### Description

- CURRENT_TIMESTAMP/NOW, 
- CURRENT_DATE/TODAY, 
- QUARTER, 
- DAYNAME, and 
- MONTHNAME.
- Date/Datetime operators `+` and `-` (in Tableau)
- Small improvement in handling BsonTimestamp conversions.

### Related Issue

https://bitquill.atlassian.net/browse/AD-227

* [AD-227] Added support for CURRENT_TIMESTAMP, CURRENT_DATE, QUARTER, DAYNAME, MONTHNAME.
https://bitquill.atlassian.net/browse/AD-227

* Commit Code Coverage Badge

* [AD-227] Correct failing test.
https://bitquill.atlassian.net/browse/AD-227

* [AD-227] Improvements from review.
https://bitquill.atlassian.net/browse/AD-227

* Commit Code Coverage Badge

* [AD-227] Update datediff in dialect.tdd

* Commit Code Coverage Badge

* [AD-227] Add dialect entry for datetime - datetime

* Commit Code Coverage Badge

* [AD-227] Add support for NULL as parameter to DAYNAME, MONTHNAME, and QUARTER.
https://bitquill.atlassian.net/browse/AD-227

* Commit Code Coverage Badge

* [AD-227] Refactored MONTHNAME, DAYNAME and QUARTER to use String.format() to create Mongo aggregate commands.
https://bitquill.atlassian.net/browse/AD-227

* Commit Code Coverage Badge

Co-authored-by: birschick-bq <birschick-bq@users.noreply.github.com>
Co-authored-by: Andie Montoya <andiem@bitquilltech.com>
Co-authored-by: andiem-bq <andiem-bq@users.noreply.github.com>

* AD-194 Added fix for Tableau Issue (#22)

* AD-194 Added fix for Tableau Issue

* Commit Code Coverage Badge

Co-authored-by: mitchell-elholm <mitchell-elholm@users.noreply.github.com>

* [AD-268] Handle case when sub-document (virtual table) contains '_id' as field. (#24)

### Summary

[AD-268] Handle case when sub-document (virtual table) contains '_id' as field.

### Description

Now correctly sending the `collectionName` instead of `path`.

### Related Issue

https://bitquill.atlassian.net/browse/AD-268

* [AD-268] Handle case when sub-document (virtual table) contains '_id' as field.
https://bitquill.atlassian.net/browse/AD-268

* Commit Code Coverage Badge

Co-authored-by: birschick-bq <birschick-bq@users.noreply.github.com>

* AD-251 Added support for IS [NOT] NULL (#23)

* AD-251 Added support for IS [NOT] NULL

* Removed unused import

* Checkstyle

* Commit Code Coverage Badge

* AD-251 Added mapping test, simplified null handler

* Commit Code Coverage Badge

Co-authored-by: mitchell-elholm <mitchell-elholm@users.noreply.github.com>

* [AD-269] Handle case when first array is empty followed by non-empty array of object. (#25)

### Summary

[AD-269] Handle case when first array is empty followed by non-empty array of object.

### Description

Handle the case when a field is first encountered as an empty array, followed by a non-empty array of object.

### Related Issue

https://bitquill.atlassian.net/browse/AD-269

* [AD-269] Handle case when first array is empty followed by non-empty array of object.
https://bitquill.atlassian.net/browse/AD-269

* Commit Code Coverage Badge

Co-authored-by: birschick-bq <birschick-bq@users.noreply.github.com>

* [AD-262] Additional tests for CASE (#26)

* [AD-262] Add additional tests for CASE

* [AD-262] Add additional tests for CASE

* [AD-262] Add additional tests for CASE

* Remove extra space

* Remove extra space

* Commit Code Coverage Badge

* Add separate test for CASE with NOT + add setting to treat string literals of different lengths as varchar

* Commit Code Coverage Badge

Co-authored-by: andiem-bq <andiem-bq@users.noreply.github.com>

* [AD-274] Fix handling of checking for missing database name in connection string. (#29)

### Summary

[AD-274] Fix handling of checking for missing database name in connection string.

### Description

- Fix handling of checking for missing database name in connection string.

### Related Issue

https://bitquill.atlassian.net/browse/AD-274

* [AD-274] Fix handling of checking for missing database name in connection string.
https://bitquill.atlassian.net/browse/AD-274

* Commit Code Coverage Badge

Co-authored-by: birschick-bq <birschick-bq@users.noreply.github.com>

* Commit Code Coverage Badge

* AD-225 Added substring (#28)

* AD-225 Added substring

* Ad-225 Checkstyle

* Commit Code Coverage Badge

* Fixed merge

* Moved old method to make changes clearer

* Commit Code Coverage Badge

* $substr -> $substrCP

* Fixed mapping test

* Commit Code Coverage Badge

* Added more tests with literals

* Commit Code Coverage Badge

* Fixed substring support for expressions, added tests, added tableau support for MID

* Commit Code Coverage Badge

* Removed use of standard operator

* Commit Code Coverage Badge

Co-authored-by: mitchell-elholm <mitchell-elholm@users.noreply.github.com>

* [AD-213] Implement a automated identifier truncation when they exceed the maximum (128) length. (#30)

### Summary

[AD-213] Implement a automated identifier truncation when they exceed the maximum (128) length.

### Description

- Truncate generated identifiers to ensure it doesn't exceed maximum (128) length.
- Attempt to keep "base" table name in truncated identifiers
- Attempt to keep as much of context as possible.

### Related Issue

https://bitquill.atlassian.net/browse/AD-213

* [AD-213] Implement a automated identifier truncation when they exceed the maximum (128) length.
https://bitquill.atlassian.net/browse/AD-213

* Commit Code Coverage Badge

* [AD-213] Update documentation.
https://bitquill.atlassian.net/browse/AD-213

* Commit Code Coverage Badge

* [AD-213] Review changes. Refactor DocumentDbTableSchemaGenerator.java with helper class. Improve test understanding.
https://bitquill.atlassian.net/browse/AD-213

* [AD-213] Change test so not so memory challenging.
https://bitquill.atlassian.net/browse/AD-213

* Commit Code Coverage Badge

* [AD-213] Documentation updates from code review.
https://bitquill.atlassian.net/browse/AD-213

* Commit Code Coverage Badge

Co-authored-by: birschick-bq <birschick-bq@users.noreply.github.com>

* [AD-278] Create MongoClient only when needed. Close client connection when closing the Enumerable. (#32)

### Summary

[AD-278] Create MongoClient only when needed. Close client connection when closing the Enumerable.

### Description

- Create `MongoClient` (`client`) only when needed. 
- Close `client` connection when closing the Enumerable.

### Related Issue

https://bitquill.atlassian.net/browse/AD-278

* [AD-278] Create MongoClient only when needed. Close client connection when closing the Enumerable.
https://bitquill.atlassian.net/browse/AD-278

* Commit Code Coverage Badge

Co-authored-by: birschick-bq <birschick-bq@users.noreply.github.com>

* [AD-254] Implement FLOOR for DATETIME types. (#31)

### Summary

[AD-254] Implement FLOOR for DATETIME types.

### Description

Implements `FLOOR (<datetime> TO <timeunit>)`
- Uses equivalent of `dateadd(<timeunit>,datediff(<timeunit>,0,@datetime),0)` (https://stackoverflow.com/questions/85373/floor-a-date-in-sql-server/85379#85379)
- Except for YEAR and MONTH which use `$dateToString` and `$dateFromString`
- Implements an emulated version of integer division using `$mod`.

### Related Issue

https://bitquill.atlassian.net/browse/AD-254

* [AD-254] Implement FLOOR for DATETIME types.
https://bitquill.atlassian.net/browse/AD-254

* Commit Code Coverage Badge

* [AD-254] Added support for ISOYEAR.
https://bitquill.atlassian.net/browse/AD-254

* [AD-254] Removed support for ISOYEAR.
https://bitquill.atlassian.net/browse/AD-254

* Commit Code Coverage Badge

* [AD-254] Slight refactor for easier review.
https://bitquill.atlassian.net/browse/AD-254

* Commit Code Coverage Badge

* [AD-254] Implement FLOOR(... TO WEEK). Split query/DocumentDbQueryMappingServiceTest.java
https://bitquill.atlassian.net/browse/AD-254

* Commit Code Coverage Badge

* [AD-254] Minor refactor.
https://bitquill.atlassian.net/browse/AD-254

* Commit Code Coverage Badge

* [AD-254] Updated Tableau dialect file.
https://bitquill.atlassian.net/browse/AD-254

* Commit Code Coverage Badge

* [AD-254] Improvements from code review.
https://bitquill.atlassian.net/browse/AD-254

* [AD-254] Implement QUARTER time unit for FLOOR.
https://bitquill.atlassian.net/browse/AD-254

* Commit Code Coverage Badge

* [AD-254] Added support for FLOOR aggregation in Tableau.
https://bitquill.atlassian.net/browse/AD-254

* Commit Code Coverage Badge

* Commit Code Coverage Badge

Co-authored-by: birschick-bq <birschick-bq@users.noreply.github.com>

* Update beta version from 4 to 5 (#33)

* Update beta version from 4 to 5

* Commit Code Coverage Badge

Co-authored-by: andiem-bq <andiem-bq@users.noreply.github.com>

* Commit Code Coverage Badge

Co-authored-by: Bruce Irschick <brucei@bitquilltech.com>
Co-authored-by: Alexey Temnikov <alexeyt@bitquilltech.com>
Co-authored-by: alexey-temnikov <alexey-temnikov@users.noreply.github.com>
Co-authored-by: mitchell-elholm <76969722+mitchell-elholm@users.noreply.github.com>
Co-authored-by: mitchell-elholm <mitchell-elholm@users.noreply.github.com>
Co-authored-by: andiem-bq <andiem-bq@users.noreply.github.com>
Co-authored-by: birschick-bq <birschick-bq@users.noreply.github.com>

* Merge changes from AWS repository (07/21/21) (#93)

* [AD-231] Update build for version 0.3 beta
https://bitquill.atlassian.net/browse/AD-231

* AD-204 Fixed comparisons against NULL/undefined (#5)

### Summary

AD-204 Fixed comparisons against NULL/undefined

### Description

Comparison operators (<, >, !=) now return null in expressions where a field is compared to null.

Fixes three types of queries:

1. Queries with multiple conditions on a single field

eg. `SELECT * FROM table WHERE field <> 3 AND field <> 5`

2. Queries did not remove null values in not-equals filters. For example in the above query a row containing `field:null` would be included in the result set.

3. Queries involving CASE would incorrectly consider some comparisons to null to be true/false, instead of unknown.
eg. `SELECT CASE WHEN field < 2 THEN 'A' ELSE 'B' END FROM table` would result in 'A' if `field==null` instead of 'B'. The same is true if the field does not exist at all in the document.

### Related Issue

https://bitquill.atlassian.net/browse/AD-204

* Minot enhancements in the documentation

* Commit Code Coverage Badge

* [AD-231] Update build for version 1.0.0-beta.3
https://bitquill.atlassian.net/browse/AD-231

* [AD-192] Integrate existing aws repository content with our develop branch (#1)

### Summary

Integrate existing aws repository content with our develop branch.

### Description
- Integrates changes from the initial commit of the aws repository to our develop branch (adds a contributing readme, code of conduct readme, a notice file and a license file)
- There was already an Apache license file so added our header license file as a separate file in license-header.txt.  
- Removed task and github action steps related to sonarqube.

### Related Issue
https://bitquill.atlassian.net/browse/AD-190

* Added link to GitHub Releases

* not - [user]

* [AD-195] Implement CLI for the metadata persistence - Part 2 (#4)

### Summary

[AD-195](https://bitquill.atlassian.net/browse/AD-195) Implement CLI for the metadata persistence - Part 2

### Description

Add support for:

1. `-l` "list" - lists persisted schema
1. `-b` "list tables" - lists persisted table schemas
1. `-e` "export" - exports one or more table schema to JSON.
1. `-i` "import" - import table schema and update persisted schema.
1. `-o` "output-file" - outputs exported table schema to a file, instead of standard out.
1. Updated documentation.

### Related Issue

https://bitquill.atlassian.net/browse/AD-195

* [AD-236] Make use of sessions conditional on supported versions. (#8)

### Summary

[AD-236] Make use of sessions conditional on supported versions.

### Description

Do not use sessions if version is not 4.0 or greater.

### Related Issue

https://bitquill.atlassian.net/browse/AD-236

* [AD-189] Load work-around JAR files from branch in Janino forked repository. (#3)

### Summary

[AD-189] Load work-around JAR files from branch in Janino forked repository.

### Description

Reference work-around JAR file from forked Janino project where the source is set for the work-around and the JAR files are produced against that source.

### Related Issue

https://bitquill.atlassian.net/browse/AD-189

* Added script to automatically generate taco file.

* Commit Code Coverage Badge

* [AD-237] Document Schema JSON format (#10)

### Summary

[AD-237](https://bitquill.atlassian.net/browse/AD-237) Document Schema JSON format

### Description

- Document table schema in JSON format and how make modifications to flatten a virtual table.

### Related Issue

https://bitquill.atlassian.net/browse/AD-237

* [AD-203] Fix where clause (#7)

* AD-204 Fixed comparisons against NULL/undefined (#89)

* AD-215 Fixed comparisons for CASE

* AD-204 Fix for multi-field conditions

* Commit Code Coverage Badge

* Commit Code Coverage Badge

* AD-204 Added test in query mapping service

* Commit Code Coverage Badge

* AD-204 Added check for cast, removed list copying

* Commit Code Coverage Badge

Co-authored-by: mitchell-elholm <mitchell-elholm@users.noreply.github.com>

* AD-203 Initial commit with unit tests

* AD-203 Used RexToMongoTranslator

* AD-203 Added fix for quotes, and Long parsing, also fixed unit tests

* AD-203 Added test for nested OR in WHERE clause

* AD-203 Changed $literal to $numberLong

* AD-203 Format and fixed comment

* Commit Code Coverage Badge

* AD-203 Removed $literal

* Commit Code Coverage Badge

* AD-203 Added note on $literal, fixed some types

* Commit Code Coverage Badge

* AD-203 Changed to use placeholder constant, added DECIMAL to types

* Commit Code Coverage Badge

Co-authored-by: mitchell-elholm <mitchell-elholm@users.noreply.github.com>

* [AD-240] Allow "latest or none" option so we don't always generate a schema (#12)

### Summary

[AD-240](https://bitquill.atlassian.net/browse/AD-240) Allow "latest or none" option so we don't always generate a schema.

### Description

Add option to get latest or none - so we don' always generate a new schema.

### Related Issue

https://bitquill.atlassian.net/browse/AD-240

* [AD-223] Sql Functions Foundation (#9)

* AD-204 Fixed comparisons against NULL/undefined (#89)

* AD-215 Fixed comparisons for CASE

* AD-204 Fix for multi-field conditions

* Commit Code Coverage Badge

* Commit Code Coverage Badge

* AD-204 Added test in query mapping service

* Commit Code Coverage Badge

* AD-204 Added check for cast, removed list copying

* Commit Code Coverage Badge

Co-authored-by: mitchell-elholm <mitchell-elholm@users.noreply.github.com>

* AD-203 Initial commit with unit tests

* AD-203 Used RexToMongoTranslator

* AD-203 Added fix for quotes, and Long parsing, also fixed unit tests

* WIP - added dateadd and some datepart functions

* Add more tests

* AD-203 Added test for nested OR in WHERE clause

* AD-203 Changed $literal to $numberLong

* AD-203 Format and fixed comment

* Commit Code Coverage Badge

* [AD-223] Update taco file

* Commit Code Coverage Badge

* AD-203 Removed $literal

* Commit Code Coverage Badge

* Resolve conflicts with AD-203 + add unit tests

* Commit Code Coverage Badge

* AD-203 Added note on $literal, fixed some types

* Commit Code Coverage Badge

* Merge cganges from [AD-203]

* Commit Code Coverage Badge

* Merge changes from develop

* Commit Code Coverage Badge

Co-authored-by: mitchell-elholm <76969722+mitchell-elholm@users.noreply.github.com>
Co-authored-by: mitchell-elholm <mitchell-elholm@users.noreply.github.com>
Co-authored-by: andiem-bq <andiem-bq@users.noreply.github.com>

* Commit Code Coverage Badge

* AD-257 refactor DocumentDbStatementTest (#14)

* AD-257 refactor DocumentDbStatementTest

* Commit Code Coverage Badge

Co-authored-by: mitchell-elholm <mitchell-elholm@users.noreply.github.com>

* AD-220 Add missing tests (#13)

* AD-220 Initial commit, added tests for IN, NOT IN, CAST, OFFSET, NATURAL JOIN, CROSS JOIN

* AD-220 Re-worked cast tests, refactored DocumentDbStatementTest

* Spotbugs

* Commit Code Coverage Badge

* AD-220 Added refactor from Develop

* Commit Code Coverage Badge

* AD-220 Added documentation

* Commit Code Coverage Badge

* AD-220 Documentation space

* Commit Code Coverage Badge

Co-authored-by: mitchell-elholm <mitchell-elholm@users.noreply.github.com>

* [AD-193] Documentation and Demo for metadata persistence with DocumentDB (#15)

### Summary

[AD-193](https://bitquill.atlassian.net/browse/AD-193) Documentation and Demo for metadata persistence with DocumentDB

### Description

- Fixes an issue with importing schema for a new (previously non-existent) schema.
- Fixes some small documentation issues.

### Related Issue

https://bitquill.atlassian.net/browse/AD-193

* AD-241 Error when querying >20000 rows (#17)

* AD-241 Added client to result set

* Commit Code Coverage Badge

* AD-241 Added unit test, fixed get/setFetchSize

* AD-241 Checkstyle

* Removed mock overrides

* Fixed test class

* Fixed Statement test

* Commit Code Coverage Badge

* Adjusted batch/fetchSize

* Checkstyle

* Commit Code Coverage Badge

Co-authored-by: mitchell-elholm <mitchell-elholm@users.noreply.github.com>

* [AD-214] Query cancellation (#16)

* WIP - initial commit

* [AD-214] Implement query cancellation for statement and prepared statement

* Remove duplicate calls to verifyOpen()

* Commit Code Coverage Badge

* Fix spacing in build.gradle

* Commit Code Coverage Badge

* Code review improvements

* Commit Code Coverage Badge

* Resolve merge conflicts from develop

* Commit Code Coverage Badge

Co-authored-by: andiem-bq <andiem-bq@users.noreply.github.com>

* [AD-261] Update version to v1.0.0-beta.4 (#18)

* [AD-261] Update version to v1.0.0-beta.4

* Commit Code Coverage Badge

Co-authored-by: andiem-bq <andiem-bq@users.noreply.github.com>

* [AD-261] Update Tableau Connector name (#19)

* [AD-261] Update version to v1.0.0-beta.4

* [AD-261] Update names and links in taco file

* Commit Code Coverage Badge

Co-authored-by: andiem-bq <andiem-bq@users.noreply.github.com>

* [AD-226] Add additional extract tests (#20)

* Add additional tests for datepart functions

* Add ':' in needsQuote check

* Add tests for case

* Add test descriptions

* Commit Code Coverage Badge

Co-authored-by: andiem-bq <andiem-bq@users.noreply.github.com>

* [AD-227] Added support for CURRENT_TIMESTAMP, CURRENT_DATE, QUARTER, DAYNAME, and MONTHNAME. (#21)

### Summary

[AD-227] Added support for CURRENT_TIMESTAMP, CURRENT_DATE, QUARTER, DAYNAME, and MONTHNAME.

### Description

- CURRENT_TIMESTAMP/NOW, 
- CURRENT_DATE/TODAY, 
- QUARTER, 
- DAYNAME, and 
- MONTHNAME.
- Date/Datetime operators `+` and `-` (in Tableau)
- Small improvement in handling BsonTimestamp conversions.

### Related Issue

https://bitquill.atlassian.net/browse/AD-227

* [AD-227] Added support for CURRENT_TIMESTAMP, CURRENT_DATE, QUARTER, DAYNAME, MONTHNAME.
https://bitquill.atlassian.net/browse/AD-227

* Commit Code Coverage Badge

* [AD-227] Correct failing test.
https://bitquill.atlassian.net/browse/AD-227

* [AD-227] Improvements from review.
https://bitquill.atlassian.net/browse/AD-227

* Commit Code Coverage Badge

* [AD-227] Update datediff in dialect.tdd

* Commit Code Coverage Badge

* [AD-227] Add dialect entry for datetime - datetime

* Commit Code Coverage Badge

* [AD-227] Add support for NULL as parameter to DAYNAME, MONTHNAME, and QUARTER.
https://bitquill.atlassian.net/browse/AD-227

* Commit Code Coverage Badge

* [AD-227] Refactored MONTHNAME, DAYNAME and QUARTER to use String.format() to create Mongo aggregate commands.
https://bitquill.atlassian.net/browse/AD-227

* Commit Code Coverage Badge

Co-authored-by: birschick-bq <birschick-bq@users.noreply.github.com>
Co-authored-by: Andie Montoya <andiem@bitquilltech.com>
Co-authored-by: andiem-bq <andiem-bq@users.noreply.github.com>

* AD-194 Added fix for Tableau Issue (#22)

* AD-194 Added fix for Tableau Issue

* Commit Code Coverage Badge

Co-authored-by: mitchell-elholm <mitchell-elholm@users.noreply.github.com>

* [AD-268] Handle case when sub-document (virtual table) contains '_id' as field. (#24)

### Summary

[AD-268] Handle case when sub-document (virtual table) contains '_id' as field.

### Description

Now correctly sending the `collectionName` instead of `path`.

### Related Issue

https://bitquill.atlassian.net/browse/AD-268

* [AD-268] Handle case when sub-document (virtual table) contains '_id' as field.
https://bitquill.atlassian.net/browse/AD-268

* Commit Code Coverage Badge

Co-authored-by: birschick-bq <birschick-bq@users.noreply.github.com>

* AD-251 Added support for IS [NOT] NULL (#23)

* AD-251 Added support for IS [NOT] NULL

* Removed unused import

* Checkstyle

* Commit Code Coverage Badge

* AD-251 Added mapping test, simplified null handler

* Commit Code Coverage Badge

Co-authored-by: mitchell-elholm <mitchell-elholm@users.noreply.github.com>

* [AD-269] Handle case when first array is empty followed by non-empty array of object. (#25)

### Summary

[AD-269] Handle case when first array is empty followed by non-empty array of object.

### Description

Handle the case when a field is first encountered as an empty array, followed by a non-empty array of object.

### Related Issue

https://bitquill.atlassian.net/browse/AD-269

* [AD-269] Handle case when first array is empty followed by non-empty array of object.
https://bitquill.atlassian.net/browse/AD-269

* Commit Code Coverage Badge

Co-authored-by: birschick-bq <birschick-bq@users.noreply.github.com>

* [AD-262] Additional tests for CASE (#26)

* [AD-262] Add additional tests for CASE

* [AD-262] Add additional tests for CASE

* [AD-262] Add additional tests for CASE

* Remove extra space

* Remove extra space

* Commit Code Coverage Badge

* Add separate test for CASE with NOT + add setting to treat string literals of different lengths as varchar

* Commit Code Coverage Badge

Co-authored-by: andiem-bq <andiem-bq@users.noreply.github.com>

* [AD-274] Fix handling of checking for missing database name in connection string. (#29)

### Summary

[AD-274] Fix handling of checking for missing database name in connection string.

### Description

- Fix handling of checking for missing database name in connection string.

### Related Issue

https://bitquill.atlassian.net/browse/AD-274

* [AD-274] Fix handling of checking for missing database name in connection string.
https://bitquill.atlassian.net/browse/AD-274

* Commit Code Coverage Badge

Co-authored-by: birschick-bq <birschick-bq@users.noreply.github.com>

* AD-225 Added substring (#28)

* AD-225 Added substring

* Ad-225 Checkstyle

* Commit Code Coverage Badge

* Fixed merge

* Moved old method to make changes clearer

* Commit Code Coverage Badge

* $substr -> $substrCP

* Fixed mapping test

* Commit Code Coverage Badge

* Added more tests with literals

* Commit Code Coverage Badge

* Fixed substring support for expressions, added tests, added tableau support for MID

* Commit Code Coverage Badge

* Removed use of standard operator

* Commit Code Coverage Badge

Co-authored-by: mitchell-elholm <mitchell-elholm@users.noreply.github.com>

* [AD-213] Implement a automated identifier truncation when they exceed the maximum (128) length. (#30)

### Summary

[AD-213] Implement a automated identifier truncation when they exceed the maximum (128) length.

### Description

- Truncate generated identifiers to ensure it doesn't exceed maximum (128) length.
- Attempt to keep "base" table name in truncated identifiers
- Attempt to keep as much of context as possible.

### Related Issue

https://bitquill.atlassian.net/browse/AD-213

* [AD-213] Implement a automated identifier truncation when they exceed the maximum (128) length.
https://bitquill.atlassian.net/browse/AD-213

* Commit Code Coverage Badge

* [AD-213] Update documentation.
https://bitquill.atlassian.net/browse/AD-213

* Commit Code Coverage Badge

* [AD-213] Review changes. Refactor DocumentDbTableSchemaGenerator.java with helper class. Improve test understanding.
https://bitquill.atlassian.net/browse/AD-213

* [AD-213] Change test so not so memory challenging.
https://bitquill.atlassian.net/browse/AD-213

* Commit Code Coverage Badge

* [AD-213] Documentation updates from code review.
https://bitquill.atlassian.net/browse/AD-213

* Commit Code Coverage Badge

Co-authored-by: birschick-bq <birschick-bq@users.noreply.github.com>

* [AD-278] Create MongoClient only when needed. Close client connection when closing the Enumerable. (#32)

### Summary

[AD-278] Create MongoClient only when needed. Close client connection when closing the Enumerable.

### Description

- Create `MongoClient` (`client`) only when needed. 
- Close `client` connection when closing the Enumerable.

### Related Issue

https://bitquill.atlassian.net/browse/AD-278

* [AD-278] Create MongoClient only when needed. Close client connection when closing the Enumerable.
https://bitquill.atlassian.net/browse/AD-278

* Commit Code Coverage Badge

Co-authored-by: birschick-bq <birschick-bq@users.noreply.github.com>

* [AD-254] Implement FLOOR for DATETIME types. (#31)

### Summary

[AD-254] Implement FLOOR for DATETIME types.

### Description

Implements `FLOOR (<datetime> TO <timeunit>)`
- Uses equivalent of `dateadd(<timeunit>,datediff(<timeunit>,0,@datetime),0)` (https://stackoverflow.com/questions/85373/floor-a-date-in-sql-server/85379#85379)
- Except for YEAR and MONTH which use `$dateToString` and `$dateFromString`
- Implements an emulated version of integer division using `$mod`.

### Related Issue

https://bitquill.atlassian.net/browse/AD-254

* [AD-254] Implement FLOOR for DATETIME types.
https://bitquill.atlassian.net/browse/AD-254

* Commit Code Coverage Badge

* [AD-254] Added support for ISOYEAR.
https://bitquill.atlassian.net/browse/AD-254

* [AD-254] Removed support for ISOYEAR.
https://bitquill.atlassian.net/browse/AD-254

* Commit Code Coverage Badge

* [AD-254] Slight refactor for easier review.
https://bitquill.atlassian.net/browse/AD-254

* Commit Code Coverage Badge

* [AD-254] Implement FLOOR(... TO WEEK). Split query/DocumentDbQueryMappingServiceTest.java
https://bitquill.atlassian.net/browse/AD-254

* Commit Code Coverage Badge

* [AD-254] Minor refactor.
https://bitquill.atlassian.net/browse/AD-254

* Commit Code Coverage Badge

* [AD-254] Updated Tableau dialect file.
https://bitquill.atlassian.net/browse/AD-254

* Commit Code Coverage Badge

* [AD-254] Improvements from code review.
https://bitquill.atlassian.net/browse/AD-254

* [AD-254] Implement QUARTER time unit for FLOOR.
https://bitquill.atlassian.net/browse/AD-254

* Commit Code Coverage Badge

* [AD-254] Added support for FLOOR aggregation in Tableau.
https://bitquill.atlassian.net/browse/AD-254

* Commit Code Coverage Badge

* Commit Code Coverage Badge

Co-authored-by: birschick-bq <birschick-bq@users.noreply.github.com>

* Update beta version from 4 to 5 (#33)

* Update beta version from 4 to 5

* Commit Code Coverage Badge

Co-authored-by: andiem-bq <andiem-bq@users.noreply.github.com>

* Adding shadowing for com.google.common to resolve library conflicts on older Tableau versions (2020.4.6)

* Commit Code Coverage Badge

* Update beta version to beta.6 (#36)

* Update beta version

* Commit Code Coverage Badge

Co-authored-by: andiem-bq <andiem-bq@users.noreply.github.com>

* Commit Code Coverage Badge

Co-authored-by: Bruce Irschick <brucei@bitquilltech.com>
Co-authored-by: Alexey Temnikov <alexeyt@bitquilltech.com>
Co-authored-by: alexey-temnikov <alexey-temnikov@users.noreply.github.com>
Co-authored-by: mitchell-elholm <76969722+mitchell-elholm@users.noreply.github.com>
Co-authored-by: mitchell-elholm <mitchell-elholm@users.noreply.github.com>
Co-authored-by: andiem-bq <andiem-bq@users.noreply.github.com>
Co-authored-by: birschick-bq <birschick-bq@users.noreply.github.com>

* Removing Mongo Client from QueryExecutor

Driver was open a connection everytime that a query was running and the Connection opened on DocumentDbConnection was not being reused.
Changes were made to remove the extra connection and reuse the connection already opened on DocumentDbConnection.

* Commit Code Coverage Badge

* Resolve merge conflict

* Commit Code Coverage Badge

Co-authored-by: Bruce Irschick <brucei@bitquilltech.com>
Co-authored-by: Alexey Temnikov <alexeyt@bitquilltech.com>
Co-authored-by: alexey-temnikov <alexey-temnikov@users.noreply.github.com>
Co-authored-by: mitchell-elholm <76969722+mitchell-elholm@users.noreply.github.com>
Co-authored-by: mitchell-elholm <mitchell-elholm@users.noreply.github.com>
Co-authored-by: andiem-bq <andiem-bq@users.noreply.github.com>
Co-authored-by: birschick-bq <birschick-bq@users.noreply.github.com>
Co-authored-by: affonsov <affonsov@bitquilltech.com>
andiemontoyeah added a commit that referenced this pull request Aug 19, 2021
* Merge changes from AWS repository (#92)

* [AD-231] Update build for version 0.3 beta
https://bitquill.atlassian.net/browse/AD-231

* AD-204 Fixed comparisons against NULL/undefined (#5)

### Summary

AD-204 Fixed comparisons against NULL/undefined

### Description

Comparison operators (<, >, !=) now return null in expressions where a field is compared to null.

Fixes three types of queries:

1. Queries with multiple conditions on a single field

eg. `SELECT * FROM table WHERE field <> 3 AND field <> 5`

2. Queries did not remove null values in not-equals filters. For example in the above query a row containing `field:null` would be included in the result set.

3. Queries involving CASE would incorrectly consider some comparisons to null to be true/false, instead of unknown.
eg. `SELECT CASE WHEN field < 2 THEN 'A' ELSE 'B' END FROM table` would result in 'A' if `field==null` instead of 'B'. The same is true if the field does not exist at all in the document.

### Related Issue

https://bitquill.atlassian.net/browse/AD-204

* Minot enhancements in the documentation

* Commit Code Coverage Badge

* [AD-231] Update build for version 1.0.0-beta.3
https://bitquill.atlassian.net/browse/AD-231

* [AD-192] Integrate existing aws repository content with our develop branch (#1)

### Summary

Integrate existing aws repository content with our develop branch.

### Description
- Integrates changes from the initial commit of the aws repository to our develop branch (adds a contributing readme, code of conduct readme, a notice file and a license file)
- There was already an Apache license file so added our header license file as a separate file in license-header.txt.  
- Removed task and github action steps related to sonarqube.

### Related Issue
https://bitquill.atlassian.net/browse/AD-190

* Added link to GitHub Releases

* not - [user]

* [AD-195] Implement CLI for the metadata persistence - Part 2 (#4)

### Summary

[AD-195](https://bitquill.atlassian.net/browse/AD-195) Implement CLI for the metadata persistence - Part 2

### Description

Add support for:

1. `-l` "list" - lists persisted schema
1. `-b` "list tables" - lists persisted table schemas
1. `-e` "export" - exports one or more table schema to JSON.
1. `-i` "import" - import table schema and update persisted schema.
1. `-o` "output-file" - outputs exported table schema to a file, instead of standard out.
1. Updated documentation.

### Related Issue

https://bitquill.atlassian.net/browse/AD-195

* [AD-236] Make use of sessions conditional on supported versions. (#8)

### Summary

[AD-236] Make use of sessions conditional on supported versions.

### Description

Do not use sessions if version is not 4.0 or greater.

### Related Issue

https://bitquill.atlassian.net/browse/AD-236

* [AD-189] Load work-around JAR files from branch in Janino forked repository. (#3)

### Summary

[AD-189] Load work-around JAR files from branch in Janino forked repository.

### Description

Reference work-around JAR file from forked Janino project where the source is set for the work-around and the JAR files are produced against that source.

### Related Issue

https://bitquill.atlassian.net/browse/AD-189

* Added script to automatically generate taco file.

* Commit Code Coverage Badge

* [AD-237] Document Schema JSON format (#10)

### Summary

[AD-237](https://bitquill.atlassian.net/browse/AD-237) Document Schema JSON format

### Description

- Document table schema in JSON format and how make modifications to flatten a virtual table.

### Related Issue

https://bitquill.atlassian.net/browse/AD-237

* [AD-203] Fix where clause (#7)

* AD-204 Fixed comparisons against NULL/undefined (#89)

* AD-215 Fixed comparisons for CASE

* AD-204 Fix for multi-field conditions

* Commit Code Coverage Badge

* Commit Code Coverage Badge

* AD-204 Added test in query mapping service

* Commit Code Coverage Badge

* AD-204 Added check for cast, removed list copying

* Commit Code Coverage Badge

Co-authored-by: mitchell-elholm <mitchell-elholm@users.noreply.github.com>

* AD-203 Initial commit with unit tests

* AD-203 Used RexToMongoTranslator

* AD-203 Added fix for quotes, and Long parsing, also fixed unit tests

* AD-203 Added test for nested OR in WHERE clause

* AD-203 Changed $literal to $numberLong

* AD-203 Format and fixed comment

* Commit Code Coverage Badge

* AD-203 Removed $literal

* Commit Code Coverage Badge

* AD-203 Added note on $literal, fixed some types

* Commit Code Coverage Badge

* AD-203 Changed to use placeholder constant, added DECIMAL to types

* Commit Code Coverage Badge

Co-authored-by: mitchell-elholm <mitchell-elholm@users.noreply.github.com>

* [AD-240] Allow "latest or none" option so we don't always generate a schema (#12)

### Summary

[AD-240](https://bitquill.atlassian.net/browse/AD-240) Allow "latest or none" option so we don't always generate a schema.

### Description

Add option to get latest or none - so we don' always generate a new schema.

### Related Issue

https://bitquill.atlassian.net/browse/AD-240

* [AD-223] Sql Functions Foundation (#9)

* AD-204 Fixed comparisons against NULL/undefined (#89)

* AD-215 Fixed comparisons for CASE

* AD-204 Fix for multi-field conditions

* Commit Code Coverage Badge

* Commit Code Coverage Badge

* AD-204 Added test in query mapping service

* Commit Code Coverage Badge

* AD-204 Added check for cast, removed list copying

* Commit Code Coverage Badge

Co-authored-by: mitchell-elholm <mitchell-elholm@users.noreply.github.com>

* AD-203 Initial commit with unit tests

* AD-203 Used RexToMongoTranslator

* AD-203 Added fix for quotes, and Long parsing, also fixed unit tests

* WIP - added dateadd and some datepart functions

* Add more tests

* AD-203 Added test for nested OR in WHERE clause

* AD-203 Changed $literal to $numberLong

* AD-203 Format and fixed comment

* Commit Code Coverage Badge

* [AD-223] Update taco file

* Commit Code Coverage Badge

* AD-203 Removed $literal

* Commit Code Coverage Badge

* Resolve conflicts with AD-203 + add unit tests

* Commit Code Coverage Badge

* AD-203 Added note on $literal, fixed some types

* Commit Code Coverage Badge

* Merge cganges from [AD-203]

* Commit Code Coverage Badge

* Merge changes from develop

* Commit Code Coverage Badge

Co-authored-by: mitchell-elholm <76969722+mitchell-elholm@users.noreply.github.com>
Co-authored-by: mitchell-elholm <mitchell-elholm@users.noreply.github.com>
Co-authored-by: andiem-bq <andiem-bq@users.noreply.github.com>

* Commit Code Coverage Badge

* AD-257 refactor DocumentDbStatementTest (#14)

* AD-257 refactor DocumentDbStatementTest

* Commit Code Coverage Badge

Co-authored-by: mitchell-elholm <mitchell-elholm@users.noreply.github.com>

* AD-220 Add missing tests (#13)

* AD-220 Initial commit, added tests for IN, NOT IN, CAST, OFFSET, NATURAL JOIN, CROSS JOIN

* AD-220 Re-worked cast tests, refactored DocumentDbStatementTest

* Spotbugs

* Commit Code Coverage Badge

* AD-220 Added refactor from Develop

* Commit Code Coverage Badge

* AD-220 Added documentation

* Commit Code Coverage Badge

* AD-220 Documentation space

* Commit Code Coverage Badge

Co-authored-by: mitchell-elholm <mitchell-elholm@users.noreply.github.com>

* [AD-193] Documentation and Demo for metadata persistence with DocumentDB (#15)

### Summary

[AD-193](https://bitquill.atlassian.net/browse/AD-193) Documentation and Demo for metadata persistence with DocumentDB

### Description

- Fixes an issue with importing schema for a new (previously non-existent) schema.
- Fixes some small documentation issues.

### Related Issue

https://bitquill.atlassian.net/browse/AD-193

* AD-241 Error when querying >20000 rows (#17)

* AD-241 Added client to result set

* Commit Code Coverage Badge

* AD-241 Added unit test, fixed get/setFetchSize

* AD-241 Checkstyle

* Removed mock overrides

* Fixed test class

* Fixed Statement test

* Commit Code Coverage Badge

* Adjusted batch/fetchSize

* Checkstyle

* Commit Code Coverage Badge

Co-authored-by: mitchell-elholm <mitchell-elholm@users.noreply.github.com>

* [AD-214] Query cancellation (#16)

* WIP - initial commit

* [AD-214] Implement query cancellation for statement and prepared statement

* Remove duplicate calls to verifyOpen()

* Commit Code Coverage Badge

* Fix spacing in build.gradle

* Commit Code Coverage Badge

* Code review improvements

* Commit Code Coverage Badge

* Resolve merge conflicts from develop

* Commit Code Coverage Badge

Co-authored-by: andiem-bq <andiem-bq@users.noreply.github.com>

* [AD-261] Update version to v1.0.0-beta.4 (#18)

* [AD-261] Update version to v1.0.0-beta.4

* Commit Code Coverage Badge

Co-authored-by: andiem-bq <andiem-bq@users.noreply.github.com>

* [AD-261] Update Tableau Connector name (#19)

* [AD-261] Update version to v1.0.0-beta.4

* [AD-261] Update names and links in taco file

* Commit Code Coverage Badge

Co-authored-by: andiem-bq <andiem-bq@users.noreply.github.com>

* [AD-226] Add additional extract tests (#20)

* Add additional tests for datepart functions

* Add ':' in needsQuote check

* Add tests for case

* Add test descriptions

* Commit Code Coverage Badge

Co-authored-by: andiem-bq <andiem-bq@users.noreply.github.com>

* Commit Code Coverage Badge

* [AD-227] Added support for CURRENT_TIMESTAMP, CURRENT_DATE, QUARTER, DAYNAME, and MONTHNAME. (#21)

### Summary

[AD-227] Added support for CURRENT_TIMESTAMP, CURRENT_DATE, QUARTER, DAYNAME, and MONTHNAME.

### Description

- CURRENT_TIMESTAMP/NOW, 
- CURRENT_DATE/TODAY, 
- QUARTER, 
- DAYNAME, and 
- MONTHNAME.
- Date/Datetime operators `+` and `-` (in Tableau)
- Small improvement in handling BsonTimestamp conversions.

### Related Issue

https://bitquill.atlassian.net/browse/AD-227

* [AD-227] Added support for CURRENT_TIMESTAMP, CURRENT_DATE, QUARTER, DAYNAME, MONTHNAME.
https://bitquill.atlassian.net/browse/AD-227

* Commit Code Coverage Badge

* [AD-227] Correct failing test.
https://bitquill.atlassian.net/browse/AD-227

* [AD-227] Improvements from review.
https://bitquill.atlassian.net/browse/AD-227

* Commit Code Coverage Badge

* [AD-227] Update datediff in dialect.tdd

* Commit Code Coverage Badge

* [AD-227] Add dialect entry for datetime - datetime

* Commit Code Coverage Badge

* [AD-227] Add support for NULL as parameter to DAYNAME, MONTHNAME, and QUARTER.
https://bitquill.atlassian.net/browse/AD-227

* Commit Code Coverage Badge

* [AD-227] Refactored MONTHNAME, DAYNAME and QUARTER to use String.format() to create Mongo aggregate commands.
https://bitquill.atlassian.net/browse/AD-227

* Commit Code Coverage Badge

Co-authored-by: birschick-bq <birschick-bq@users.noreply.github.com>
Co-authored-by: Andie Montoya <andiem@bitquilltech.com>
Co-authored-by: andiem-bq <andiem-bq@users.noreply.github.com>

* AD-194 Added fix for Tableau Issue (#22)

* AD-194 Added fix for Tableau Issue

* Commit Code Coverage Badge

Co-authored-by: mitchell-elholm <mitchell-elholm@users.noreply.github.com>

* [AD-268] Handle case when sub-document (virtual table) contains '_id' as field. (#24)

### Summary

[AD-268] Handle case when sub-document (virtual table) contains '_id' as field.

### Description

Now correctly sending the `collectionName` instead of `path`.

### Related Issue

https://bitquill.atlassian.net/browse/AD-268

* [AD-268] Handle case when sub-document (virtual table) contains '_id' as field.
https://bitquill.atlassian.net/browse/AD-268

* Commit Code Coverage Badge

Co-authored-by: birschick-bq <birschick-bq@users.noreply.github.com>

* AD-251 Added support for IS [NOT] NULL (#23)

* AD-251 Added support for IS [NOT] NULL

* Removed unused import

* Checkstyle

* Commit Code Coverage Badge

* AD-251 Added mapping test, simplified null handler

* Commit Code Coverage Badge

Co-authored-by: mitchell-elholm <mitchell-elholm@users.noreply.github.com>

* [AD-269] Handle case when first array is empty followed by non-empty array of object. (#25)

### Summary

[AD-269] Handle case when first array is empty followed by non-empty array of object.

### Description

Handle the case when a field is first encountered as an empty array, followed by a non-empty array of object.

### Related Issue

https://bitquill.atlassian.net/browse/AD-269

* [AD-269] Handle case when first array is empty followed by non-empty array of object.
https://bitquill.atlassian.net/browse/AD-269

* Commit Code Coverage Badge

Co-authored-by: birschick-bq <birschick-bq@users.noreply.github.com>

* [AD-262] Additional tests for CASE (#26)

* [AD-262] Add additional tests for CASE

* [AD-262] Add additional tests for CASE

* [AD-262] Add additional tests for CASE

* Remove extra space

* Remove extra space

* Commit Code Coverage Badge

* Add separate test for CASE with NOT + add setting to treat string literals of different lengths as varchar

* Commit Code Coverage Badge

Co-authored-by: andiem-bq <andiem-bq@users.noreply.github.com>

* [AD-274] Fix handling of checking for missing database name in connection string. (#29)

### Summary

[AD-274] Fix handling of checking for missing database name in connection string.

### Description

- Fix handling of checking for missing database name in connection string.

### Related Issue

https://bitquill.atlassian.net/browse/AD-274

* [AD-274] Fix handling of checking for missing database name in connection string.
https://bitquill.atlassian.net/browse/AD-274

* Commit Code Coverage Badge

Co-authored-by: birschick-bq <birschick-bq@users.noreply.github.com>

* Commit Code Coverage Badge

* AD-225 Added substring (#28)

* AD-225 Added substring

* Ad-225 Checkstyle

* Commit Code Coverage Badge

* Fixed merge

* Moved old method to make changes clearer

* Commit Code Coverage Badge

* $substr -> $substrCP

* Fixed mapping test

* Commit Code Coverage Badge

* Added more tests with literals

* Commit Code Coverage Badge

* Fixed substring support for expressions, added tests, added tableau support for MID

* Commit Code Coverage Badge

* Removed use of standard operator

* Commit Code Coverage Badge

Co-authored-by: mitchell-elholm <mitchell-elholm@users.noreply.github.com>

* [AD-213] Implement a automated identifier truncation when they exceed the maximum (128) length. (#30)

### Summary

[AD-213] Implement a automated identifier truncation when they exceed the maximum (128) length.

### Description

- Truncate generated identifiers to ensure it doesn't exceed maximum (128) length.
- Attempt to keep "base" table name in truncated identifiers
- Attempt to keep as much of context as possible.

### Related Issue

https://bitquill.atlassian.net/browse/AD-213

* [AD-213] Implement a automated identifier truncation when they exceed the maximum (128) length.
https://bitquill.atlassian.net/browse/AD-213

* Commit Code Coverage Badge

* [AD-213] Update documentation.
https://bitquill.atlassian.net/browse/AD-213

* Commit Code Coverage Badge

* [AD-213] Review changes. Refactor DocumentDbTableSchemaGenerator.java with helper class. Improve test understanding.
https://bitquill.atlassian.net/browse/AD-213

* [AD-213] Change test so not so memory challenging.
https://bitquill.atlassian.net/browse/AD-213

* Commit Code Coverage Badge

* [AD-213] Documentation updates from code review.
https://bitquill.atlassian.net/browse/AD-213

* Commit Code Coverage Badge

Co-authored-by: birschick-bq <birschick-bq@users.noreply.github.com>

* [AD-278] Create MongoClient only when needed. Close client connection when closing the Enumerable. (#32)

### Summary

[AD-278] Create MongoClient only when needed. Close client connection when closing the Enumerable.

### Description

- Create `MongoClient` (`client`) only when needed. 
- Close `client` connection when closing the Enumerable.

### Related Issue

https://bitquill.atlassian.net/browse/AD-278

* [AD-278] Create MongoClient only when needed. Close client connection when closing the Enumerable.
https://bitquill.atlassian.net/browse/AD-278

* Commit Code Coverage Badge

Co-authored-by: birschick-bq <birschick-bq@users.noreply.github.com>

* [AD-254] Implement FLOOR for DATETIME types. (#31)

### Summary

[AD-254] Implement FLOOR for DATETIME types.

### Description

Implements `FLOOR (<datetime> TO <timeunit>)`
- Uses equivalent of `dateadd(<timeunit>,datediff(<timeunit>,0,@datetime),0)` (https://stackoverflow.com/questions/85373/floor-a-date-in-sql-server/85379#85379)
- Except for YEAR and MONTH which use `$dateToString` and `$dateFromString`
- Implements an emulated version of integer division using `$mod`.

### Related Issue

https://bitquill.atlassian.net/browse/AD-254

* [AD-254] Implement FLOOR for DATETIME types.
https://bitquill.atlassian.net/browse/AD-254

* Commit Code Coverage Badge

* [AD-254] Added support for ISOYEAR.
https://bitquill.atlassian.net/browse/AD-254

* [AD-254] Removed support for ISOYEAR.
https://bitquill.atlassian.net/browse/AD-254

* Commit Code Coverage Badge

* [AD-254] Slight refactor for easier review.
https://bitquill.atlassian.net/browse/AD-254

* Commit Code Coverage Badge

* [AD-254] Implement FLOOR(... TO WEEK). Split query/DocumentDbQueryMappingServiceTest.java
https://bitquill.atlassian.net/browse/AD-254

* Commit Code Coverage Badge

* [AD-254] Minor refactor.
https://bitquill.atlassian.net/browse/AD-254

* Commit Code Coverage Badge

* [AD-254] Updated Tableau dialect file.
https://bitquill.atlassian.net/browse/AD-254

* Commit Code Coverage Badge

* [AD-254] Improvements from code review.
https://bitquill.atlassian.net/browse/AD-254

* [AD-254] Implement QUARTER time unit for FLOOR.
https://bitquill.atlassian.net/browse/AD-254

* Commit Code Coverage Badge

* [AD-254] Added support for FLOOR aggregation in Tableau.
https://bitquill.atlassian.net/browse/AD-254

* Commit Code Coverage Badge

* Commit Code Coverage Badge

Co-authored-by: birschick-bq <birschick-bq@users.noreply.github.com>

* Update beta version from 4 to 5 (#33)

* Update beta version from 4 to 5

* Commit Code Coverage Badge

Co-authored-by: andiem-bq <andiem-bq@users.noreply.github.com>

* Commit Code Coverage Badge

Co-authored-by: Bruce Irschick <brucei@bitquilltech.com>
Co-authored-by: Alexey Temnikov <alexeyt@bitquilltech.com>
Co-authored-by: alexey-temnikov <alexey-temnikov@users.noreply.github.com>
Co-authored-by: mitchell-elholm <76969722+mitchell-elholm@users.noreply.github.com>
Co-authored-by: mitchell-elholm <mitchell-elholm@users.noreply.github.com>
Co-authored-by: andiem-bq <andiem-bq@users.noreply.github.com>
Co-authored-by: birschick-bq <birschick-bq@users.noreply.github.com>

* Merge changes from AWS repository (07/21/21) (#93)

* [AD-231] Update build for version 0.3 beta
https://bitquill.atlassian.net/browse/AD-231

* AD-204 Fixed comparisons against NULL/undefined (#5)

### Summary

AD-204 Fixed comparisons against NULL/undefined

### Description

Comparison operators (<, >, !=) now return null in expressions where a field is compared to null.

Fixes three types of queries:

1. Queries with multiple conditions on a single field

eg. `SELECT * FROM table WHERE field <> 3 AND field <> 5`

2. Queries did not remove null values in not-equals filters. For example in the above query a row containing `field:null` would be included in the result set.

3. Queries involving CASE would incorrectly consider some comparisons to null to be true/false, instead of unknown.
eg. `SELECT CASE WHEN field < 2 THEN 'A' ELSE 'B' END FROM table` would result in 'A' if `field==null` instead of 'B'. The same is true if the field does not exist at all in the document.

### Related Issue

https://bitquill.atlassian.net/browse/AD-204

* Minot enhancements in the documentation

* Commit Code Coverage Badge

* [AD-231] Update build for version 1.0.0-beta.3
https://bitquill.atlassian.net/browse/AD-231

* [AD-192] Integrate existing aws repository content with our develop branch (#1)

### Summary

Integrate existing aws repository content with our develop branch.

### Description
- Integrates changes from the initial commit of the aws repository to our develop branch (adds a contributing readme, code of conduct readme, a notice file and a license file)
- There was already an Apache license file so added our header license file as a separate file in license-header.txt.  
- Removed task and github action steps related to sonarqube.

### Related Issue
https://bitquill.atlassian.net/browse/AD-190

* Added link to GitHub Releases

* not - [user]

* [AD-195] Implement CLI for the metadata persistence - Part 2 (#4)

### Summary

[AD-195](https://bitquill.atlassian.net/browse/AD-195) Implement CLI for the metadata persistence - Part 2

### Description

Add support for:

1. `-l` "list" - lists persisted schema
1. `-b` "list tables" - lists persisted table schemas
1. `-e` "export" - exports one or more table schema to JSON.
1. `-i` "import" - import table schema and update persisted schema.
1. `-o` "output-file" - outputs exported table schema to a file, instead of standard out.
1. Updated documentation.

### Related Issue

https://bitquill.atlassian.net/browse/AD-195

* [AD-236] Make use of sessions conditional on supported versions. (#8)

### Summary

[AD-236] Make use of sessions conditional on supported versions.

### Description

Do not use sessions if version is not 4.0 or greater.

### Related Issue

https://bitquill.atlassian.net/browse/AD-236

* [AD-189] Load work-around JAR files from branch in Janino forked repository. (#3)

### Summary

[AD-189] Load work-around JAR files from branch in Janino forked repository.

### Description

Reference work-around JAR file from forked Janino project where the source is set for the work-around and the JAR files are produced against that source.

### Related Issue

https://bitquill.atlassian.net/browse/AD-189

* Added script to automatically generate taco file.

* Commit Code Coverage Badge

* [AD-237] Document Schema JSON format (#10)

### Summary

[AD-237](https://bitquill.atlassian.net/browse/AD-237) Document Schema JSON format

### Description

- Document table schema in JSON format and how make modifications to flatten a virtual table.

### Related Issue

https://bitquill.atlassian.net/browse/AD-237

* [AD-203] Fix where clause (#7)

* AD-204 Fixed comparisons against NULL/undefined (#89)

* AD-215 Fixed comparisons for CASE

* AD-204 Fix for multi-field conditions

* Commit Code Coverage Badge

* Commit Code Coverage Badge

* AD-204 Added test in query mapping service

* Commit Code Coverage Badge

* AD-204 Added check for cast, removed list copying

* Commit Code Coverage Badge

Co-authored-by: mitchell-elholm <mitchell-elholm@users.noreply.github.com>

* AD-203 Initial commit with unit tests

* AD-203 Used RexToMongoTranslator

* AD-203 Added fix for quotes, and Long parsing, also fixed unit tests

* AD-203 Added test for nested OR in WHERE clause

* AD-203 Changed $literal to $numberLong

* AD-203 Format and fixed comment

* Commit Code Coverage Badge

* AD-203 Removed $literal

* Commit Code Coverage Badge

* AD-203 Added note on $literal, fixed some types

* Commit Code Coverage Badge

* AD-203 Changed to use placeholder constant, added DECIMAL to types

* Commit Code Coverage Badge

Co-authored-by: mitchell-elholm <mitchell-elholm@users.noreply.github.com>

* [AD-240] Allow "latest or none" option so we don't always generate a schema (#12)

### Summary

[AD-240](https://bitquill.atlassian.net/browse/AD-240) Allow "latest or none" option so we don't always generate a schema.

### Description

Add option to get latest or none - so we don' always generate a new schema.

### Related Issue

https://bitquill.atlassian.net/browse/AD-240

* [AD-223] Sql Functions Foundation (#9)

* AD-204 Fixed comparisons against NULL/undefined (#89)

* AD-215 Fixed comparisons for CASE

* AD-204 Fix for multi-field conditions

* Commit Code Coverage Badge

* Commit Code Coverage Badge

* AD-204 Added test in query mapping service

* Commit Code Coverage Badge

* AD-204 Added check for cast, removed list copying

* Commit Code Coverage Badge

Co-authored-by: mitchell-elholm <mitchell-elholm@users.noreply.github.com>

* AD-203 Initial commit with unit tests

* AD-203 Used RexToMongoTranslator

* AD-203 Added fix for quotes, and Long parsing, also fixed unit tests

* WIP - added dateadd and some datepart functions

* Add more tests

* AD-203 Added test for nested OR in WHERE clause

* AD-203 Changed $literal to $numberLong

* AD-203 Format and fixed comment

* Commit Code Coverage Badge

* [AD-223] Update taco file

* Commit Code Coverage Badge

* AD-203 Removed $literal

* Commit Code Coverage Badge

* Resolve conflicts with AD-203 + add unit tests

* Commit Code Coverage Badge

* AD-203 Added note on $literal, fixed some types

* Commit Code Coverage Badge

* Merge cganges from [AD-203]

* Commit Code Coverage Badge

* Merge changes from develop

* Commit Code Coverage Badge

Co-authored-by: mitchell-elholm <76969722+mitchell-elholm@users.noreply.github.com>
Co-authored-by: mitchell-elholm <mitchell-elholm@users.noreply.github.com>
Co-authored-by: andiem-bq <andiem-bq@users.noreply.github.com>

* Commit Code Coverage Badge

* AD-257 refactor DocumentDbStatementTest (#14)

* AD-257 refactor DocumentDbStatementTest

* Commit Code Coverage Badge

Co-authored-by: mitchell-elholm <mitchell-elholm@users.noreply.github.com>

* AD-220 Add missing tests (#13)

* AD-220 Initial commit, added tests for IN, NOT IN, CAST, OFFSET, NATURAL JOIN, CROSS JOIN

* AD-220 Re-worked cast tests, refactored DocumentDbStatementTest

* Spotbugs

* Commit Code Coverage Badge

* AD-220 Added refactor from Develop

* Commit Code Coverage Badge

* AD-220 Added documentation

* Commit Code Coverage Badge

* AD-220 Documentation space

* Commit Code Coverage Badge

Co-authored-by: mitchell-elholm <mitchell-elholm@users.noreply.github.com>

* [AD-193] Documentation and Demo for metadata persistence with DocumentDB (#15)

### Summary

[AD-193](https://bitquill.atlassian.net/browse/AD-193) Documentation and Demo for metadata persistence with DocumentDB

### Description

- Fixes an issue with importing schema for a new (previously non-existent) schema.
- Fixes some small documentation issues.

### Related Issue

https://bitquill.atlassian.net/browse/AD-193

* AD-241 Error when querying >20000 rows (#17)

* AD-241 Added client to result set

* Commit Code Coverage Badge

* AD-241 Added unit test, fixed get/setFetchSize

* AD-241 Checkstyle

* Removed mock overrides

* Fixed test class

* Fixed Statement test

* Commit Code Coverage Badge

* Adjusted batch/fetchSize

* Checkstyle

* Commit Code Coverage Badge

Co-authored-by: mitchell-elholm <mitchell-elholm@users.noreply.github.com>

* [AD-214] Query cancellation (#16)

* WIP - initial commit

* [AD-214] Implement query cancellation for statement and prepared statement

* Remove duplicate calls to verifyOpen()

* Commit Code Coverage Badge

* Fix spacing in build.gradle

* Commit Code Coverage Badge

* Code review improvements

* Commit Code Coverage Badge

* Resolve merge conflicts from develop

* Commit Code Coverage Badge

Co-authored-by: andiem-bq <andiem-bq@users.noreply.github.com>

* [AD-261] Update version to v1.0.0-beta.4 (#18)

* [AD-261] Update version to v1.0.0-beta.4

* Commit Code Coverage Badge

Co-authored-by: andiem-bq <andiem-bq@users.noreply.github.com>

* [AD-261] Update Tableau Connector name (#19)

* [AD-261] Update version to v1.0.0-beta.4

* [AD-261] Update names and links in taco file

* Commit Code Coverage Badge

Co-authored-by: andiem-bq <andiem-bq@users.noreply.github.com>

* [AD-226] Add additional extract tests (#20)

* Add additional tests for datepart functions

* Add ':' in needsQuote check

* Add tests for case

* Add test descriptions

* Commit Code Coverage Badge

Co-authored-by: andiem-bq <andiem-bq@users.noreply.github.com>

* [AD-227] Added support for CURRENT_TIMESTAMP, CURRENT_DATE, QUARTER, DAYNAME, and MONTHNAME. (#21)

### Summary

[AD-227] Added support for CURRENT_TIMESTAMP, CURRENT_DATE, QUARTER, DAYNAME, and MONTHNAME.

### Description

- CURRENT_TIMESTAMP/NOW, 
- CURRENT_DATE/TODAY, 
- QUARTER, 
- DAYNAME, and 
- MONTHNAME.
- Date/Datetime operators `+` and `-` (in Tableau)
- Small improvement in handling BsonTimestamp conversions.

### Related Issue

https://bitquill.atlassian.net/browse/AD-227

* [AD-227] Added support for CURRENT_TIMESTAMP, CURRENT_DATE, QUARTER, DAYNAME, MONTHNAME.
https://bitquill.atlassian.net/browse/AD-227

* Commit Code Coverage Badge

* [AD-227] Correct failing test.
https://bitquill.atlassian.net/browse/AD-227

* [AD-227] Improvements from review.
https://bitquill.atlassian.net/browse/AD-227

* Commit Code Coverage Badge

* [AD-227] Update datediff in dialect.tdd

* Commit Code Coverage Badge

* [AD-227] Add dialect entry for datetime - datetime

* Commit Code Coverage Badge

* [AD-227] Add support for NULL as parameter to DAYNAME, MONTHNAME, and QUARTER.
https://bitquill.atlassian.net/browse/AD-227

* Commit Code Coverage Badge

* [AD-227] Refactored MONTHNAME, DAYNAME and QUARTER to use String.format() to create Mongo aggregate commands.
https://bitquill.atlassian.net/browse/AD-227

* Commit Code Coverage Badge

Co-authored-by: birschick-bq <birschick-bq@users.noreply.github.com>
Co-authored-by: Andie Montoya <andiem@bitquilltech.com>
Co-authored-by: andiem-bq <andiem-bq@users.noreply.github.com>

* AD-194 Added fix for Tableau Issue (#22)

* AD-194 Added fix for Tableau Issue

* Commit Code Coverage Badge

Co-authored-by: mitchell-elholm <mitchell-elholm@users.noreply.github.com>

* [AD-268] Handle case when sub-document (virtual table) contains '_id' as field. (#24)

### Summary

[AD-268] Handle case when sub-document (virtual table) contains '_id' as field.

### Description

Now correctly sending the `collectionName` instead of `path`.

### Related Issue

https://bitquill.atlassian.net/browse/AD-268

* [AD-268] Handle case when sub-document (virtual table) contains '_id' as field.
https://bitquill.atlassian.net/browse/AD-268

* Commit Code Coverage Badge

Co-authored-by: birschick-bq <birschick-bq@users.noreply.github.com>

* AD-251 Added support for IS [NOT] NULL (#23)

* AD-251 Added support for IS [NOT] NULL

* Removed unused import

* Checkstyle

* Commit Code Coverage Badge

* AD-251 Added mapping test, simplified null handler

* Commit Code Coverage Badge

Co-authored-by: mitchell-elholm <mitchell-elholm@users.noreply.github.com>

* [AD-269] Handle case when first array is empty followed by non-empty array of object. (#25)

### Summary

[AD-269] Handle case when first array is empty followed by non-empty array of object.

### Description

Handle the case when a field is first encountered as an empty array, followed by a non-empty array of object.

### Related Issue

https://bitquill.atlassian.net/browse/AD-269

* [AD-269] Handle case when first array is empty followed by non-empty array of object.
https://bitquill.atlassian.net/browse/AD-269

* Commit Code Coverage Badge

Co-authored-by: birschick-bq <birschick-bq@users.noreply.github.com>

* [AD-262] Additional tests for CASE (#26)

* [AD-262] Add additional tests for CASE

* [AD-262] Add additional tests for CASE

* [AD-262] Add additional tests for CASE

* Remove extra space

* Remove extra space

* Commit Code Coverage Badge

* Add separate test for CASE with NOT + add setting to treat string literals of different lengths as varchar

* Commit Code Coverage Badge

Co-authored-by: andiem-bq <andiem-bq@users.noreply.github.com>

* [AD-274] Fix handling of checking for missing database name in connection string. (#29)

### Summary

[AD-274] Fix handling of checking for missing database name in connection string.

### Description

- Fix handling of checking for missing database name in connection string.

### Related Issue

https://bitquill.atlassian.net/browse/AD-274

* [AD-274] Fix handling of checking for missing database name in connection string.
https://bitquill.atlassian.net/browse/AD-274

* Commit Code Coverage Badge

Co-authored-by: birschick-bq <birschick-bq@users.noreply.github.com>

* AD-225 Added substring (#28)

* AD-225 Added substring

* Ad-225 Checkstyle

* Commit Code Coverage Badge

* Fixed merge

* Moved old method to make changes clearer

* Commit Code Coverage Badge

* $substr -> $substrCP

* Fixed mapping test

* Commit Code Coverage Badge

* Added more tests with literals

* Commit Code Coverage Badge

* Fixed substring support for expressions, added tests, added tableau support for MID

* Commit Code Coverage Badge

* Removed use of standard operator

* Commit Code Coverage Badge

Co-authored-by: mitchell-elholm <mitchell-elholm@users.noreply.github.com>

* [AD-213] Implement a automated identifier truncation when they exceed the maximum (128) length. (#30)

### Summary

[AD-213] Implement a automated identifier truncation when they exceed the maximum (128) length.

### Description

- Truncate generated identifiers to ensure it doesn't exceed maximum (128) length.
- Attempt to keep "base" table name in truncated identifiers
- Attempt to keep as much of context as possible.

### Related Issue

https://bitquill.atlassian.net/browse/AD-213

* [AD-213] Implement a automated identifier truncation when they exceed the maximum (128) length.
https://bitquill.atlassian.net/browse/AD-213

* Commit Code Coverage Badge

* [AD-213] Update documentation.
https://bitquill.atlassian.net/browse/AD-213

* Commit Code Coverage Badge

* [AD-213] Review changes. Refactor DocumentDbTableSchemaGenerator.java with helper class. Improve test understanding.
https://bitquill.atlassian.net/browse/AD-213

* [AD-213] Change test so not so memory challenging.
https://bitquill.atlassian.net/browse/AD-213

* Commit Code Coverage Badge

* [AD-213] Documentation updates from code review.
https://bitquill.atlassian.net/browse/AD-213

* Commit Code Coverage Badge

Co-authored-by: birschick-bq <birschick-bq@users.noreply.github.com>

* [AD-278] Create MongoClient only when needed. Close client connection when closing the Enumerable. (#32)

### Summary

[AD-278] Create MongoClient only when needed. Close client connection when closing the Enumerable.

### Description

- Create `MongoClient` (`client`) only when needed. 
- Close `client` connection when closing the Enumerable.

### Related Issue

https://bitquill.atlassian.net/browse/AD-278

* [AD-278] Create MongoClient only when needed. Close client connection when closing the Enumerable.
https://bitquill.atlassian.net/browse/AD-278

* Commit Code Coverage Badge

Co-authored-by: birschick-bq <birschick-bq@users.noreply.github.com>

* [AD-254] Implement FLOOR for DATETIME types. (#31)

### Summary

[AD-254] Implement FLOOR for DATETIME types.

### Description

Implements `FLOOR (<datetime> TO <timeunit>)`
- Uses equivalent of `dateadd(<timeunit>,datediff(<timeunit>,0,@datetime),0)` (https://stackoverflow.com/questions/85373/floor-a-date-in-sql-server/85379#85379)
- Except for YEAR and MONTH which use `$dateToString` and `$dateFromString`
- Implements an emulated version of integer division using `$mod`.

### Related Issue

https://bitquill.atlassian.net/browse/AD-254

* [AD-254] Implement FLOOR for DATETIME types.
https://bitquill.atlassian.net/browse/AD-254

* Commit Code Coverage Badge

* [AD-254] Added support for ISOYEAR.
https://bitquill.atlassian.net/browse/AD-254

* [AD-254] Removed support for ISOYEAR.
https://bitquill.atlassian.net/browse/AD-254

* Commit Code Coverage Badge

* [AD-254] Slight refactor for easier review.
https://bitquill.atlassian.net/browse/AD-254

* Commit Code Coverage Badge

* [AD-254] Implement FLOOR(... TO WEEK). Split query/DocumentDbQueryMappingServiceTest.java
https://bitquill.atlassian.net/browse/AD-254

* Commit Code Coverage Badge

* [AD-254] Minor refactor.
https://bitquill.atlassian.net/browse/AD-254

* Commit Code Coverage Badge

* [AD-254] Updated Tableau dialect file.
https://bitquill.atlassian.net/browse/AD-254

* Commit Code Coverage Badge

* [AD-254] Improvements from code review.
https://bitquill.atlassian.net/browse/AD-254

* [AD-254] Implement QUARTER time unit for FLOOR.
https://bitquill.atlassian.net/browse/AD-254

* Commit Code Coverage Badge

* [AD-254] Added support for FLOOR aggregation in Tableau.
https://bitquill.atlassian.net/browse/AD-254

* Commit Code Coverage Badge

* Commit Code Coverage Badge

Co-authored-by: birschick-bq <birschick-bq@users.noreply.github.com>

* Update beta version from 4 to 5 (#33)

* Update beta version from 4 to 5

* Commit Code Coverage Badge

Co-authored-by: andiem-bq <andiem-bq@users.noreply.github.com>

* Adding shadowing for com.google.common to resolve library conflicts on older Tableau versions (2020.4.6)

* Commit Code Coverage Badge

* Update beta version to beta.6 (#36)

* Update beta version

* Commit Code Coverage Badge

Co-authored-by: andiem-bq <andiem-bq@users.noreply.github.com>

* Commit Code Coverage Badge

Co-authored-by: Bruce Irschick <brucei@bitquilltech.com>
Co-authored-by: Alexey Temnikov <alexeyt@bitquilltech.com>
Co-authored-by: alexey-temnikov <alexey-temnikov@users.noreply.github.com>
Co-authored-by: mitchell-elholm <76969722+mitchell-elholm@users.noreply.github.com>
Co-authored-by: mitchell-elholm <mitchell-elholm@users.noreply.github.com>
Co-authored-by: andiem-bq <andiem-bq@users.noreply.github.com>
Co-authored-by: birschick-bq <birschick-bq@users.noreply.github.com>

* Added getting started as developer documentation

* Moved and renamed gettingStarted.md file

* Commit Code Coverage Badge

* Corrected build instructions (use shadowJar)

* Added SpotBugs plugin

* Fix typo SSH key replaced with SSH URL

* Commit Code Coverage Badge

* URL Link change to point to AWS repo, not BQ

* Typo 'unistall' fixed 'uninstall'

* Do not need Lombok plugin

* Commit Code Coverage Badge

* Added instructions for Enivronment Variables to test DocumentDB

Added new section 'Setting Up Environment to Run DocumentDB Tests'
Added new section under 'Troubleshooting' for 'Error Connecting to DocumentDB Instance'
Updates need to be reviewed to check if confidential information needs to blackedout or
replaced with <placeholders>

* Table of Contents added.

* Commit Code Coverage Badge

* Typo in comments fixed

* Blurred or removed confidential information.

Other minor changes include:
No longer need Java Keytool as prerequisite.
Instructions for setting up SSH tunnel now include link to command.
No longer use trust store password.
In SSH command, removed option flags for stricthostkeychecking and userknownhostsfile.

* Commit Code Coverage Badge

* Remove comment about needing truststore password.

* Commit Code Coverage Badge

* Change 'ec2-user' to '<ec2-username>' and explain what this property field is.

* Commit Code Coverage Badge

* Revert mistake

* Commit Code Coverage Badge

Co-authored-by: Bruce Irschick <brucei@bitquilltech.com>
Co-authored-by: Alexey Temnikov <alexeyt@bitquilltech.com>
Co-authored-by: alexey-temnikov <alexey-temnikov@users.noreply.github.com>
Co-authored-by: mitchell-elholm <76969722+mitchell-elholm@users.noreply.github.com>
Co-authored-by: mitchell-elholm <mitchell-elholm@users.noreply.github.com>
Co-authored-by: andiem-bq <andiem-bq@users.noreply.github.com>
Co-authored-by: birschick-bq <birschick-bq@users.noreply.github.com>
Co-authored-by: Gary Atwal <garya@Garys-MBP-2020.hitronhub.home>
Co-authored-by: garya-bitquill <garya-bitquill@users.noreply.github.com>
Co-authored-by: Gary Atwal <garya@bitquilltech.com>
birschick-bq added a commit that referenced this pull request Oct 4, 2021
* [AD-231] Update build for version 0.3 beta
https://bitquill.atlassian.net/browse/AD-231

* AD-204 Fixed comparisons against NULL/undefined (#5)

### Summary

AD-204 Fixed comparisons against NULL/undefined

### Description

Comparison operators (<, >, !=) now return null in expressions where a field is compared to null.

Fixes three types of queries:

1. Queries with multiple conditions on a single field

eg. `SELECT * FROM table WHERE field <> 3 AND field <> 5`

2. Queries did not remove null values in not-equals filters. For example in the above query a row containing `field:null` would be included in the result set.

3. Queries involving CASE would incorrectly consider some comparisons to null to be true/false, instead of unknown.
eg. `SELECT CASE WHEN field < 2 THEN 'A' ELSE 'B' END FROM table` would result in 'A' if `field==null` instead of 'B'. The same is true if the field does not exist at all in the document.

### Related Issue

https://bitquill.atlassian.net/browse/AD-204

* Minot enhancements in the documentation

* Commit Code Coverage Badge

* [AD-231] Update build for version 1.0.0-beta.3
https://bitquill.atlassian.net/browse/AD-231

* [AD-192] Integrate existing aws repository content with our develop branch (#1)

### Summary

Integrate existing aws repository content with our develop branch.

### Description
- Integrates changes from the initial commit of the aws repository to our develop branch (adds a contributing readme, code of conduct readme, a notice file and a license file)
- There was already an Apache license file so added our header license file as a separate file in license-header.txt.  
- Removed task and github action steps related to sonarqube.

### Related Issue
https://bitquill.atlassian.net/browse/AD-190

* Added link to GitHub Releases

* not - [user]

* [AD-195] Implement CLI for the metadata persistence - Part 2 (#4)

### Summary

[AD-195](https://bitquill.atlassian.net/browse/AD-195) Implement CLI for the metadata persistence - Part 2

### Description

Add support for:

1. `-l` "list" - lists persisted schema
1. `-b` "list tables" - lists persisted table schemas
1. `-e` "export" - exports one or more table schema to JSON.
1. `-i` "import" - import table schema and update persisted schema.
1. `-o` "output-file" - outputs exported table schema to a file, instead of standard out.
1. Updated documentation.

### Related Issue

https://bitquill.atlassian.net/browse/AD-195

* [AD-236] Make use of sessions conditional on supported versions. (#8)

### Summary

[AD-236] Make use of sessions conditional on supported versions.

### Description

Do not use sessions if version is not 4.0 or greater.

### Related Issue

https://bitquill.atlassian.net/browse/AD-236

* [AD-189] Load work-around JAR files from branch in Janino forked repository. (#3)

### Summary

[AD-189] Load work-around JAR files from branch in Janino forked repository.

### Description

Reference work-around JAR file from forked Janino project where the source is set for the work-around and the JAR files are produced against that source.

### Related Issue

https://bitquill.atlassian.net/browse/AD-189

* Added script to automatically generate taco file.

* Commit Code Coverage Badge

* [AD-237] Document Schema JSON format (#10)

### Summary

[AD-237](https://bitquill.atlassian.net/browse/AD-237) Document Schema JSON format

### Description

- Document table schema in JSON format and how make modifications to flatten a virtual table.

### Related Issue

https://bitquill.atlassian.net/browse/AD-237

* [AD-203] Fix where clause (#7)

* AD-204 Fixed comparisons against NULL/undefined (#89)

* AD-215 Fixed comparisons for CASE

* AD-204 Fix for multi-field conditions

* Commit Code Coverage Badge

* Commit Code Coverage Badge

* AD-204 Added test in query mapping service

* Commit Code Coverage Badge

* AD-204 Added check for cast, removed list copying

* Commit Code Coverage Badge

Co-authored-by: mitchell-elholm <mitchell-elholm@users.noreply.github.com>

* AD-203 Initial commit with unit tests

* AD-203 Used RexToMongoTranslator

* AD-203 Added fix for quotes, and Long parsing, also fixed unit tests

* AD-203 Added test for nested OR in WHERE clause

* AD-203 Changed $literal to $numberLong

* AD-203 Format and fixed comment

* Commit Code Coverage Badge

* AD-203 Removed $literal

* Commit Code Coverage Badge

* AD-203 Added note on $literal, fixed some types

* Commit Code Coverage Badge

* AD-203 Changed to use placeholder constant, added DECIMAL to types

* Commit Code Coverage Badge

Co-authored-by: mitchell-elholm <mitchell-elholm@users.noreply.github.com>

* [AD-240] Allow "latest or none" option so we don't always generate a schema (#12)

### Summary

[AD-240](https://bitquill.atlassian.net/browse/AD-240) Allow "latest or none" option so we don't always generate a schema.

### Description

Add option to get latest or none - so we don' always generate a new schema.

### Related Issue

https://bitquill.atlassian.net/browse/AD-240

* [AD-223] Sql Functions Foundation (#9)

* AD-204 Fixed comparisons against NULL/undefined (#89)

* AD-215 Fixed comparisons for CASE

* AD-204 Fix for multi-field conditions

* Commit Code Coverage Badge

* Commit Code Coverage Badge

* AD-204 Added test in query mapping service

* Commit Code Coverage Badge

* AD-204 Added check for cast, removed list copying

* Commit Code Coverage Badge

Co-authored-by: mitchell-elholm <mitchell-elholm@users.noreply.github.com>

* AD-203 Initial commit with unit tests

* AD-203 Used RexToMongoTranslator

* AD-203 Added fix for quotes, and Long parsing, also fixed unit tests

* WIP - added dateadd and some datepart functions

* Add more tests

* AD-203 Added test for nested OR in WHERE clause

* AD-203 Changed $literal to $numberLong

* AD-203 Format and fixed comment

* Commit Code Coverage Badge

* [AD-223] Update taco file

* Commit Code Coverage Badge

* AD-203 Removed $literal

* Commit Code Coverage Badge

* Resolve conflicts with AD-203 + add unit tests

* Commit Code Coverage Badge

* AD-203 Added note on $literal, fixed some types

* Commit Code Coverage Badge

* Merge cganges from [AD-203]

* Commit Code Coverage Badge

* Merge changes from develop

* Commit Code Coverage Badge

Co-authored-by: mitchell-elholm <76969722+mitchell-elholm@users.noreply.github.com>
Co-authored-by: mitchell-elholm <mitchell-elholm@users.noreply.github.com>
Co-authored-by: andiem-bq <andiem-bq@users.noreply.github.com>

* Commit Code Coverage Badge

* AD-257 refactor DocumentDbStatementTest (#14)

* AD-257 refactor DocumentDbStatementTest

* Commit Code Coverage Badge

Co-authored-by: mitchell-elholm <mitchell-elholm@users.noreply.github.com>

* AD-220 Add missing tests (#13)

* AD-220 Initial commit, added tests for IN, NOT IN, CAST, OFFSET, NATURAL JOIN, CROSS JOIN

* AD-220 Re-worked cast tests, refactored DocumentDbStatementTest

* Spotbugs

* Commit Code Coverage Badge

* AD-220 Added refactor from Develop

* Commit Code Coverage Badge

* AD-220 Added documentation

* Commit Code Coverage Badge

* AD-220 Documentation space

* Commit Code Coverage Badge

Co-authored-by: mitchell-elholm <mitchell-elholm@users.noreply.github.com>

* [AD-193] Documentation and Demo for metadata persistence with DocumentDB (#15)

### Summary

[AD-193](https://bitquill.atlassian.net/browse/AD-193) Documentation and Demo for metadata persistence with DocumentDB

### Description

- Fixes an issue with importing schema for a new (previously non-existent) schema.
- Fixes some small documentation issues.

### Related Issue

https://bitquill.atlassian.net/browse/AD-193

* AD-241 Error when querying >20000 rows (#17)

* AD-241 Added client to result set

* Commit Code Coverage Badge

* AD-241 Added unit test, fixed get/setFetchSize

* AD-241 Checkstyle

* Removed mock overrides

* Fixed test class

* Fixed Statement test

* Commit Code Coverage Badge

* Adjusted batch/fetchSize

* Checkstyle

* Commit Code Coverage Badge

Co-authored-by: mitchell-elholm <mitchell-elholm@users.noreply.github.com>

* [AD-214] Query cancellation (#16)

* WIP - initial commit

* [AD-214] Implement query cancellation for statement and prepared statement

* Remove duplicate calls to verifyOpen()

* Commit Code Coverage Badge

* Fix spacing in build.gradle

* Commit Code Coverage Badge

* Code review improvements

* Commit Code Coverage Badge

* Resolve merge conflicts from develop

* Commit Code Coverage Badge

Co-authored-by: andiem-bq <andiem-bq@users.noreply.github.com>

* [AD-261] Update version to v1.0.0-beta.4 (#18)

* [AD-261] Update version to v1.0.0-beta.4

* Commit Code Coverage Badge

Co-authored-by: andiem-bq <andiem-bq@users.noreply.github.com>

* [AD-261] Update Tableau Connector name (#19)

* [AD-261] Update version to v1.0.0-beta.4

* [AD-261] Update names and links in taco file

* Commit Code Coverage Badge

Co-authored-by: andiem-bq <andiem-bq@users.noreply.github.com>

* [AD-226] Add additional extract tests (#20)

* Add additional tests for datepart functions

* Add ':' in needsQuote check

* Add tests for case

* Add test descriptions

* Commit Code Coverage Badge

Co-authored-by: andiem-bq <andiem-bq@users.noreply.github.com>

* [AD-227] Added support for CURRENT_TIMESTAMP, CURRENT_DATE, QUARTER, DAYNAME, and MONTHNAME. (#21)

### Summary

[AD-227] Added support for CURRENT_TIMESTAMP, CURRENT_DATE, QUARTER, DAYNAME, and MONTHNAME.

### Description

- CURRENT_TIMESTAMP/NOW, 
- CURRENT_DATE/TODAY, 
- QUARTER, 
- DAYNAME, and 
- MONTHNAME.
- Date/Datetime operators `+` and `-` (in Tableau)
- Small improvement in handling BsonTimestamp conversions.

### Related Issue

https://bitquill.atlassian.net/browse/AD-227

* [AD-227] Added support for CURRENT_TIMESTAMP, CURRENT_DATE, QUARTER, DAYNAME, MONTHNAME.
https://bitquill.atlassian.net/browse/AD-227

* Commit Code Coverage Badge

* [AD-227] Correct failing test.
https://bitquill.atlassian.net/browse/AD-227

* [AD-227] Improvements from review.
https://bitquill.atlassian.net/browse/AD-227

* Commit Code Coverage Badge

* [AD-227] Update datediff in dialect.tdd

* Commit Code Coverage Badge

* [AD-227] Add dialect entry for datetime - datetime

* Commit Code Coverage Badge

* [AD-227] Add support for NULL as parameter to DAYNAME, MONTHNAME, and QUARTER.
https://bitquill.atlassian.net/browse/AD-227

* Commit Code Coverage Badge

* [AD-227] Refactored MONTHNAME, DAYNAME and QUARTER to use String.format() to create Mongo aggregate commands.
https://bitquill.atlassian.net/browse/AD-227

* Commit Code Coverage Badge

Co-authored-by: birschick-bq <birschick-bq@users.noreply.github.com>
Co-authored-by: Andie Montoya <andiem@bitquilltech.com>
Co-authored-by: andiem-bq <andiem-bq@users.noreply.github.com>

* AD-194 Added fix for Tableau Issue (#22)

* AD-194 Added fix for Tableau Issue

* Commit Code Coverage Badge

Co-authored-by: mitchell-elholm <mitchell-elholm@users.noreply.github.com>

* [AD-268] Handle case when sub-document (virtual table) contains '_id' as field. (#24)

### Summary

[AD-268] Handle case when sub-document (virtual table) contains '_id' as field.

### Description

Now correctly sending the `collectionName` instead of `path`.

### Related Issue

https://bitquill.atlassian.net/browse/AD-268

* [AD-268] Handle case when sub-document (virtual table) contains '_id' as field.
https://bitquill.atlassian.net/browse/AD-268

* Commit Code Coverage Badge

Co-authored-by: birschick-bq <birschick-bq@users.noreply.github.com>

* AD-251 Added support for IS [NOT] NULL (#23)

* AD-251 Added support for IS [NOT] NULL

* Removed unused import

* Checkstyle

* Commit Code Coverage Badge

* AD-251 Added mapping test, simplified null handler

* Commit Code Coverage Badge

Co-authored-by: mitchell-elholm <mitchell-elholm@users.noreply.github.com>

* [AD-269] Handle case when first array is empty followed by non-empty array of object. (#25)

### Summary

[AD-269] Handle case when first array is empty followed by non-empty array of object.

### Description

Handle the case when a field is first encountered as an empty array, followed by a non-empty array of object.

### Related Issue

https://bitquill.atlassian.net/browse/AD-269

* [AD-269] Handle case when first array is empty followed by non-empty array of object.
https://bitquill.atlassian.net/browse/AD-269

* Commit Code Coverage Badge

Co-authored-by: birschick-bq <birschick-bq@users.noreply.github.com>

* [AD-262] Additional tests for CASE (#26)

* [AD-262] Add additional tests for CASE

* [AD-262] Add additional tests for CASE

* [AD-262] Add additional tests for CASE

* Remove extra space

* Remove extra space

* Commit Code Coverage Badge

* Add separate test for CASE with NOT + add setting to treat string literals of different lengths as varchar

* Commit Code Coverage Badge

Co-authored-by: andiem-bq <andiem-bq@users.noreply.github.com>

* [AD-274] Fix handling of checking for missing database name in connection string. (#29)

### Summary

[AD-274] Fix handling of checking for missing database name in connection string.

### Description

- Fix handling of checking for missing database name in connection string.

### Related Issue

https://bitquill.atlassian.net/browse/AD-274

* [AD-274] Fix handling of checking for missing database name in connection string.
https://bitquill.atlassian.net/browse/AD-274

* Commit Code Coverage Badge

Co-authored-by: birschick-bq <birschick-bq@users.noreply.github.com>

* AD-225 Added substring (#28)

* AD-225 Added substring

* Ad-225 Checkstyle

* Commit Code Coverage Badge

* Fixed merge

* Moved old method to make changes clearer

* Commit Code Coverage Badge

* $substr -> $substrCP

* Fixed mapping test

* Commit Code Coverage Badge

* Added more tests with literals

* Commit Code Coverage Badge

* Fixed substring support for expressions, added tests, added tableau support for MID

* Commit Code Coverage Badge

* Removed use of standard operator

* Commit Code Coverage Badge

Co-authored-by: mitchell-elholm <mitchell-elholm@users.noreply.github.com>

* [AD-213] Implement a automated identifier truncation when they exceed the maximum (128) length. (#30)

### Summary

[AD-213] Implement a automated identifier truncation when they exceed the maximum (128) length.

### Description

- Truncate generated identifiers to ensure it doesn't exceed maximum (128) length.
- Attempt to keep "base" table name in truncated identifiers
- Attempt to keep as much of context as possible.

### Related Issue

https://bitquill.atlassian.net/browse/AD-213

* [AD-213] Implement a automated identifier truncation when they exceed the maximum (128) length.
https://bitquill.atlassian.net/browse/AD-213

* Commit Code Coverage Badge

* [AD-213] Update documentation.
https://bitquill.atlassian.net/browse/AD-213

* Commit Code Coverage Badge

* [AD-213] Review changes. Refactor DocumentDbTableSchemaGenerator.java with helper class. Improve test understanding.
https://bitquill.atlassian.net/browse/AD-213

* [AD-213] Change test so not so memory challenging.
https://bitquill.atlassian.net/browse/AD-213

* Commit Code Coverage Badge

* [AD-213] Documentation updates from code review.
https://bitquill.atlassian.net/browse/AD-213

* Commit Code Coverage Badge

Co-authored-by: birschick-bq <birschick-bq@users.noreply.github.com>

* [AD-278] Create MongoClient only when needed. Close client connection when closing the Enumerable. (#32)

### Summary

[AD-278] Create MongoClient only when needed. Close client connection when closing the Enumerable.

### Description

- Create `MongoClient` (`client`) only when needed. 
- Close `client` connection when closing the Enumerable.

### Related Issue

https://bitquill.atlassian.net/browse/AD-278

* [AD-278] Create MongoClient only when needed. Close client connection when closing the Enumerable.
https://bitquill.atlassian.net/browse/AD-278

* Commit Code Coverage Badge

Co-authored-by: birschick-bq <birschick-bq@users.noreply.github.com>

* [AD-254] Implement FLOOR for DATETIME types. (#31)

### Summary

[AD-254] Implement FLOOR for DATETIME types.

### Description

Implements `FLOOR (<datetime> TO <timeunit>)`
- Uses equivalent of `dateadd(<timeunit>,datediff(<timeunit>,0,@datetime),0)` (https://stackoverflow.com/questions/85373/floor-a-date-in-sql-server/85379#85379)
- Except for YEAR and MONTH which use `$dateToString` and `$dateFromString`
- Implements an emulated version of integer division using `$mod`.

### Related Issue

https://bitquill.atlassian.net/browse/AD-254

* [AD-254] Implement FLOOR for DATETIME types.
https://bitquill.atlassian.net/browse/AD-254

* Commit Code Coverage Badge

* [AD-254] Added support for ISOYEAR.
https://bitquill.atlassian.net/browse/AD-254

* [AD-254] Removed support for ISOYEAR.
https://bitquill.atlassian.net/browse/AD-254

* Commit Code Coverage Badge

* [AD-254] Slight refactor for easier review.
https://bitquill.atlassian.net/browse/AD-254

* Commit Code Coverage Badge

* [AD-254] Implement FLOOR(... TO WEEK). Split query/DocumentDbQueryMappingServiceTest.java
https://bitquill.atlassian.net/browse/AD-254

* Commit Code Coverage Badge

* [AD-254] Minor refactor.
https://bitquill.atlassian.net/browse/AD-254

* Commit Code Coverage Badge

* [AD-254] Updated Tableau dialect file.
https://bitquill.atlassian.net/browse/AD-254

* Commit Code Coverage Badge

* [AD-254] Improvements from code review.
https://bitquill.atlassian.net/browse/AD-254

* [AD-254] Implement QUARTER time unit for FLOOR.
https://bitquill.atlassian.net/browse/AD-254

* Commit Code Coverage Badge

* [AD-254] Added support for FLOOR aggregation in Tableau.
https://bitquill.atlassian.net/browse/AD-254

* Commit Code Coverage Badge

* Commit Code Coverage Badge

Co-authored-by: birschick-bq <birschick-bq@users.noreply.github.com>

* Update beta version from 4 to 5 (#33)

* Update beta version from 4 to 5

* Commit Code Coverage Badge

Co-authored-by: andiem-bq <andiem-bq@users.noreply.github.com>

* Adding shadowing for com.google.common to resolve library conflicts on older Tableau versions (2020.4.6)

* Commit Code Coverage Badge

* Update beta version to beta.6 (#36)

* Update beta version

* Commit Code Coverage Badge

Co-authored-by: andiem-bq <andiem-bq@users.noreply.github.com>

* Added dependabot.yml

* Commit Code Coverage Badge

* Mitchell/ad 224 sql function support (#37)

* Added many tests

* Added TIMESTAMPADD and TIMESTAMPDIFF tests

* Fixed duplicate key

* Removed duplicate test, added note on disabled tests.

* Commit Code Coverage Badge

* AD-224 Removed duplicate test

* Commit Code Coverage Badge

Co-authored-by: mitchell-elholm <mitchell-elholm@users.noreply.github.com>

* Bump junit-jupiter-params from 5.6.0 to 5.7.2

Bumps [junit-jupiter-params](https://github.com/junit-team/junit5) from 5.6.0 to 5.7.2.
- [Release notes](https://github.com/junit-team/junit5/releases)
- [Commits](https://github.com/junit-team/junit5/compare/r5.6.0...r5.7.2)

---
updated-dependencies:
- dependency-name: org.junit.jupiter:junit-jupiter-params
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* Bump slf4j-log4j12 from 1.7.29 to 1.7.32

Bumps [slf4j-log4j12](https://github.com/qos-ch/slf4j) from 1.7.29 to 1.7.32.
- [Release notes](https://github.com/qos-ch/slf4j/releases)
- [Commits](https://github.com/qos-ch/slf4j/commits)

---
updated-dependencies:
- dependency-name: org.slf4j:slf4j-log4j12
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

* Bump junit from 4.12 to 4.13.2

Bumps [junit](https://github.com/junit-team/junit4) from 4.12 to 4.13.2.
- [Release notes](https://github.com/junit-team/junit4/releases)
- [Changelog](https://github.com/junit-team/junit4/blob/main/doc/ReleaseNotes4.12.md)
- [Commits](https://github.com/junit-team/junit4/compare/r4.12...r4.13.2)

---
updated-dependencies:
- dependency-name: junit:junit
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* Commit Code Coverage Badge

* AD-255 Added fix for null with NOT (#38)

* Added many tests

* Added TIMESTAMPADD and TIMESTAMPDIFF tests

* Fixed duplicate key

* Removed duplicate test, added note on disabled tests.

* Commit Code Coverage Badge

* AD-255 Added fix for null with NOT

* AD-224 Removed duplicate test

* Commit Code Coverage Badge

* Fixed checkstyle, added unit tests

* Commit Code Coverage Badge

* Fixed test name

* Commit Code Coverage Badge

* Commit Code Coverage Badge

Co-authored-by: mitchell-elholm <mitchell-elholm@users.noreply.github.com>

* Bump findsecbugs-plugin from 1.10.1 to 1.11.0

Bumps [findsecbugs-plugin](https://github.com/find-sec-bugs/find-sec-bugs) from 1.10.1 to 1.11.0.
- [Release notes](https://github.com/find-sec-bugs/find-sec-bugs/releases)
- [Changelog](https://github.com/find-sec-bugs/find-sec-bugs/blob/master/CHANGELOG.md)
- [Commits](https://github.com/find-sec-bugs/find-sec-bugs/compare/version-1.10.1...version-1.11.0)

---
updated-dependencies:
- dependency-name: com.h3xstream.findsecbugs:findsecbugs-plugin
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* Bump mockito-core from 2.1.0 to 3.11.2

Bumps [mockito-core](https://github.com/mockito/mockito) from 2.1.0 to 3.11.2.
- [Release notes](https://github.com/mockito/mockito/releases)
- [Commits](https://github.com/mockito/mockito/compare/v2.1.0...v3.11.2)

---
updated-dependencies:
- dependency-name: org.mockito:mockito-core
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

* Commit Code Coverage Badge

* Commit Code Coverage Badge

* Commit Code Coverage Badge

* Commit Code Coverage Badge

* Bump junit-jupiter-api from 5.6.0 to 5.7.2

Bumps [junit-jupiter-api](https://github.com/junit-team/junit5) from 5.6.0 to 5.7.2.
- [Release notes](https://github.com/junit-team/junit5/releases)
- [Commits](https://github.com/junit-team/junit5/compare/r5.6.0...r5.7.2)

---
updated-dependencies:
- dependency-name: org.junit.jupiter:junit-jupiter-api
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* [AD-295] Disable converting unquoted identifiers to uppercase (#41)

* [AD-295] Disable converting unquoted identifiers to uppercase

* Commit Code Coverage Badge

* Commit Code Coverage Badge

Co-authored-by: andiem-bq <andiem-bq@users.noreply.github.com>

* Commit Code Coverage Badge

* Bump junit-jupiter-engine from 5.6.0 to 5.7.2

Bumps [junit-jupiter-engine](https://github.com/junit-team/junit5) from 5.6.0 to 5.7.2.
- [Release notes](https://github.com/junit-team/junit5/releases)
- [Commits](https://github.com/junit-team/junit5/compare/r5.6.0...r5.7.2)

---
updated-dependencies:
- dependency-name: org.junit.jupiter:junit-jupiter-engine
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* [AD-276] Add handling for timestampdiff for year, month, quarter  (#39)

* [AD-276] Add handling for timestampdiff for year, month, quarter + add custom covertlet table

* Commit Code Coverage Badge

* [AD-276] PR improvements

* Commit Code Coverage Badge

Co-authored-by: andiem-bq <andiem-bq@users.noreply.github.com>

* [AD-279] Removing Mongo Client from QueryExecutor (#61)

* Merge changes from AWS repository (#92)

* [AD-231] Update build for version 0.3 beta
https://bitquill.atlassian.net/browse/AD-231

* AD-204 Fixed comparisons against NULL/undefined (#5)

### Summary

AD-204 Fixed comparisons against NULL/undefined

### Description

Comparison operators (<, >, !=) now return null in expressions where a field is compared to null.

Fixes three types of queries:

1. Queries with multiple conditions on a single field

eg. `SELECT * FROM table WHERE field <> 3 AND field <> 5`

2. Queries did not remove null values in not-equals filters. For example in the above query a row containing `field:null` would be included in the result set.

3. Queries involving CASE would incorrectly consider some comparisons to null to be true/false, instead of unknown.
eg. `SELECT CASE WHEN field < 2 THEN 'A' ELSE 'B' END FROM table` would result in 'A' if `field==null` instead of 'B'. The same is true if the field does not exist at all in the document.

### Related Issue

https://bitquill.atlassian.net/browse/AD-204

* Minot enhancements in the documentation

* Commit Code Coverage Badge

* [AD-231] Update build for version 1.0.0-beta.3
https://bitquill.atlassian.net/browse/AD-231

* [AD-192] Integrate existing aws repository content with our develop branch (#1)

### Summary

Integrate existing aws repository content with our develop branch.

### Description
- Integrates changes from the initial commit of the aws repository to our develop branch (adds a contributing readme, code of conduct readme, a notice file and a license file)
- There was already an Apache license file so added our header license file as a separate file in license-header.txt.  
- Removed task and github action steps related to sonarqube.

### Related Issue
https://bitquill.atlassian.net/browse/AD-190

* Added link to GitHub Releases

* not - [user]

* [AD-195] Implement CLI for the metadata persistence - Part 2 (#4)

### Summary

[AD-195](https://bitquill.atlassian.net/browse/AD-195) Implement CLI for the metadata persistence - Part 2

### Description

Add support for:

1. `-l` "list" - lists persisted schema
1. `-b` "list tables" - lists persisted table schemas
1. `-e` "export" - exports one or more table schema to JSON.
1. `-i` "import" - import table schema and update persisted schema.
1. `-o` "output-file" - outputs exported table schema to a file, instead of standard out.
1. Updated documentation.

### Related Issue

https://bitquill.atlassian.net/browse/AD-195

* [AD-236] Make use of sessions conditional on supported versions. (#8)

### Summary

[AD-236] Make use of sessions conditional on supported versions.

### Description

Do not use sessions if version is not 4.0 or greater.

### Related Issue

https://bitquill.atlassian.net/browse/AD-236

* [AD-189] Load work-around JAR files from branch in Janino forked repository. (#3)

### Summary

[AD-189] Load work-around JAR files from branch in Janino forked repository.

### Description

Reference work-around JAR file from forked Janino project where the source is set for the work-around and the JAR files are produced against that source.

### Related Issue

https://bitquill.atlassian.net/browse/AD-189

* Added script to automatically generate taco file.

* Commit Code Coverage Badge

* [AD-237] Document Schema JSON format (#10)

### Summary

[AD-237](https://bitquill.atlassian.net/browse/AD-237) Document Schema JSON format

### Description

- Document table schema in JSON format and how make modifications to flatten a virtual table.

### Related Issue

https://bitquill.atlassian.net/browse/AD-237

* [AD-203] Fix where clause (#7)

* AD-204 Fixed comparisons against NULL/undefined (#89)

* AD-215 Fixed comparisons for CASE

* AD-204 Fix for multi-field conditions

* Commit Code Coverage Badge

* Commit Code Coverage Badge

* AD-204 Added test in query mapping service

* Commit Code Coverage Badge

* AD-204 Added check for cast, removed list copying

* Commit Code Coverage Badge

Co-authored-by: mitchell-elholm <mitchell-elholm@users.noreply.github.com>

* AD-203 Initial commit with unit tests

* AD-203 Used RexToMongoTranslator

* AD-203 Added fix for quotes, and Long parsing, also fixed unit tests

* AD-203 Added test for nested OR in WHERE clause

* AD-203 Changed $literal to $numberLong

* AD-203 Format and fixed comment

* Commit Code Coverage Badge

* AD-203 Removed $literal

* Commit Code Coverage Badge

* AD-203 Added note on $literal, fixed some types

* Commit Code Coverage Badge

* AD-203 Changed to use placeholder constant, added DECIMAL to types

* Commit Code Coverage Badge

Co-authored-by: mitchell-elholm <mitchell-elholm@users.noreply.github.com>

* [AD-240] Allow "latest or none" option so we don't always generate a schema (#12)

### Summary

[AD-240](https://bitquill.atlassian.net/browse/AD-240) Allow "latest or none" option so we don't always generate a schema.

### Description

Add option to get latest or none - so we don' always generate a new schema.

### Related Issue

https://bitquill.atlassian.net/browse/AD-240

* [AD-223] Sql Functions Foundation (#9)

* AD-204 Fixed comparisons against NULL/undefined (#89)

* AD-215 Fixed comparisons for CASE

* AD-204 Fix for multi-field conditions

* Commit Code Coverage Badge

* Commit Code Coverage Badge

* AD-204 Added test in query mapping service

* Commit Code Coverage Badge

* AD-204 Added check for cast, removed list copying

* Commit Code Coverage Badge

Co-authored-by: mitchell-elholm <mitchell-elholm@users.noreply.github.com>

* AD-203 Initial commit with unit tests

* AD-203 Used RexToMongoTranslator

* AD-203 Added fix for quotes, and Long parsing, also fixed unit tests

* WIP - added dateadd and some datepart functions

* Add more tests

* AD-203 Added test for nested OR in WHERE clause

* AD-203 Changed $literal to $numberLong

* AD-203 Format and fixed comment

* Commit Code Coverage Badge

* [AD-223] Update taco file

* Commit Code Coverage Badge

* AD-203 Removed $literal

* Commit Code Coverage Badge

* Resolve conflicts with AD-203 + add unit tests

* Commit Code Coverage Badge

* AD-203 Added note on $literal, fixed some types

* Commit Code Coverage Badge

* Merge cganges from [AD-203]

* Commit Code Coverage Badge

* Merge changes from develop

* Commit Code Coverage Badge

Co-authored-by: mitchell-elholm <76969722+mitchell-elholm@users.noreply.github.com>
Co-authored-by: mitchell-elholm <mitchell-elholm@users.noreply.github.com>
Co-authored-by: andiem-bq <andiem-bq@users.noreply.github.com>

* Commit Code Coverage Badge

* AD-257 refactor DocumentDbStatementTest (#14)

* AD-257 refactor DocumentDbStatementTest

* Commit Code Coverage Badge

Co-authored-by: mitchell-elholm <mitchell-elholm@users.noreply.github.com>

* AD-220 Add missing tests (#13)

* AD-220 Initial commit, added tests for IN, NOT IN, CAST, OFFSET, NATURAL JOIN, CROSS JOIN

* AD-220 Re-worked cast tests, refactored DocumentDbStatementTest

* Spotbugs

* Commit Code Coverage Badge

* AD-220 Added refactor from Develop

* Commit Code Coverage Badge

* AD-220 Added documentation

* Commit Code Coverage Badge

* AD-220 Documentation space

* Commit Code Coverage Badge

Co-authored-by: mitchell-elholm <mitchell-elholm@users.noreply.github.com>

* [AD-193] Documentation and Demo for metadata persistence with DocumentDB (#15)

### Summary

[AD-193](https://bitquill.atlassian.net/browse/AD-193) Documentation and Demo for metadata persistence with DocumentDB

### Description

- Fixes an issue with importing schema for a new (previously non-existent) schema.
- Fixes some small documentation issues.

### Related Issue

https://bitquill.atlassian.net/browse/AD-193

* AD-241 Error when querying >20000 rows (#17)

* AD-241 Added client to result set

* Commit Code Coverage Badge

* AD-241 Added unit test, fixed get/setFetchSize

* AD-241 Checkstyle

* Removed mock overrides

* Fixed test class

* Fixed Statement test

* Commit Code Coverage Badge

* Adjusted batch/fetchSize

* Checkstyle

* Commit Code Coverage Badge

Co-authored-by: mitchell-elholm <mitchell-elholm@users.noreply.github.com>

* [AD-214] Query cancellation (#16)

* WIP - initial commit

* [AD-214] Implement query cancellation for statement and prepared statement

* Remove duplicate calls to verifyOpen()

* Commit Code Coverage Badge

* Fix spacing in build.gradle

* Commit Code Coverage Badge

* Code review improvements

* Commit Code Coverage Badge

* Resolve merge conflicts from develop

* Commit Code Coverage Badge

Co-authored-by: andiem-bq <andiem-bq@users.noreply.github.com>

* [AD-261] Update version to v1.0.0-beta.4 (#18)

* [AD-261] Update version to v1.0.0-beta.4

* Commit Code Coverage Badge

Co-authored-by: andiem-bq <andiem-bq@users.noreply.github.com>

* [AD-261] Update Tableau Connector name (#19)

* [AD-261] Update version to v1.0.0-beta.4

* [AD-261] Update names and links in taco file

* Commit Code Coverage Badge

Co-authored-by: andiem-bq <andiem-bq@users.noreply.github.com>

* [AD-226] Add additional extract tests (#20)

* Add additional tests for datepart functions

* Add ':' in needsQuote check

* Add tests for case

* Add test descriptions

* Commit Code Coverage Badge

Co-authored-by: andiem-bq <andiem-bq@users.noreply.github.com>

* Commit Code Coverage Badge

* [AD-227] Added support for CURRENT_TIMESTAMP, CURRENT_DATE, QUARTER, DAYNAME, and MONTHNAME. (#21)

### Summary

[AD-227] Added support for CURRENT_TIMESTAMP, CURRENT_DATE, QUARTER, DAYNAME, and MONTHNAME.

### Description

- CURRENT_TIMESTAMP/NOW, 
- CURRENT_DATE/TODAY, 
- QUARTER, 
- DAYNAME, and 
- MONTHNAME.
- Date/Datetime operators `+` and `-` (in Tableau)
- Small improvement in handling BsonTimestamp conversions.

### Related Issue

https://bitquill.atlassian.net/browse/AD-227

* [AD-227] Added support for CURRENT_TIMESTAMP, CURRENT_DATE, QUARTER, DAYNAME, MONTHNAME.
https://bitquill.atlassian.net/browse/AD-227

* Commit Code Coverage Badge

* [AD-227] Correct failing test.
https://bitquill.atlassian.net/browse/AD-227

* [AD-227] Improvements from review.
https://bitquill.atlassian.net/browse/AD-227

* Commit Code Coverage Badge

* [AD-227] Update datediff in dialect.tdd

* Commit Code Coverage Badge

* [AD-227] Add dialect entry for datetime - datetime

* Commit Code Coverage Badge

* [AD-227] Add support for NULL as parameter to DAYNAME, MONTHNAME, and QUARTER.
https://bitquill.atlassian.net/browse/AD-227

* Commit Code Coverage Badge

* [AD-227] Refactored MONTHNAME, DAYNAME and QUARTER to use String.format() to create Mongo aggregate commands.
https://bitquill.atlassian.net/browse/AD-227

* Commit Code Coverage Badge

Co-authored-by: birschick-bq <birschick-bq@users.noreply.github.com>
Co-authored-by: Andie Montoya <andiem@bitquilltech.com>
Co-authored-by: andiem-bq <andiem-bq@users.noreply.github.com>

* AD-194 Added fix for Tableau Issue (#22)

* AD-194 Added fix for Tableau Issue

* Commit Code Coverage Badge

Co-authored-by: mitchell-elholm <mitchell-elholm@users.noreply.github.com>

* [AD-268] Handle case when sub-document (virtual table) contains '_id' as field. (#24)

### Summary

[AD-268] Handle case when sub-document (virtual table) contains '_id' as field.

### Description

Now correctly sending the `collectionName` instead of `path`.

### Related Issue

https://bitquill.atlassian.net/browse/AD-268

* [AD-268] Handle case when sub-document (virtual table) contains '_id' as field.
https://bitquill.atlassian.net/browse/AD-268

* Commit Code Coverage Badge

Co-authored-by: birschick-bq <birschick-bq@users.noreply.github.com>

* AD-251 Added support for IS [NOT] NULL (#23)

* AD-251 Added support for IS [NOT] NULL

* Removed unused import

* Checkstyle

* Commit Code Coverage Badge

* AD-251 Added mapping test, simplified null handler

* Commit Code Coverage Badge

Co-authored-by: mitchell-elholm <mitchell-elholm@users.noreply.github.com>

* [AD-269] Handle case when first array is empty followed by non-empty array of object. (#25)

### Summary

[AD-269] Handle case when first array is empty followed by non-empty array of object.

### Description

Handle the case when a field is first encountered as an empty array, followed by a non-empty array of object.

### Related Issue

https://bitquill.atlassian.net/browse/AD-269

* [AD-269] Handle case when first array is empty followed by non-empty array of object.
https://bitquill.atlassian.net/browse/AD-269

* Commit Code Coverage Badge

Co-authored-by: birschick-bq <birschick-bq@users.noreply.github.com>

* [AD-262] Additional tests for CASE (#26)

* [AD-262] Add additional tests for CASE

* [AD-262] Add additional tests for CASE

* [AD-262] Add additional tests for CASE

* Remove extra space

* Remove extra space

* Commit Code Coverage Badge

* Add separate test for CASE with NOT + add setting to treat string literals of different lengths as varchar

* Commit Code Coverage Badge

Co-authored-by: andiem-bq <andiem-bq@users.noreply.github.com>

* [AD-274] Fix handling of checking for missing database name in connection string. (#29)

### Summary

[AD-274] Fix handling of checking for missing database name in connection string.

### Description

- Fix handling of checking for missing database name in connection string.

### Related Issue

https://bitquill.atlassian.net/browse/AD-274

* [AD-274] Fix handling of checking for missing database name in connection string.
https://bitquill.atlassian.net/browse/AD-274

* Commit Code Coverage Badge

Co-authored-by: birschick-bq <birschick-bq@users.noreply.github.com>

* Commit Code Coverage Badge

* AD-225 Added substring (#28)

* AD-225 Added substring

* Ad-225 Checkstyle

* Commit Code Coverage Badge

* Fixed merge

* Moved old method to make changes clearer

* Commit Code Coverage Badge

* $substr -> $substrCP

* Fixed mapping test

* Commit Code Coverage Badge

* Added more tests with literals

* Commit Code Coverage Badge

* Fixed substring support for expressions, added tests, added tableau support for MID

* Commit Code Coverage Badge

* Removed use of standard operator

* Commit Code Coverage Badge

Co-authored-by: mitchell-elholm <mitchell-elholm@users.noreply.github.com>

* [AD-213] Implement a automated identifier truncation when they exceed the maximum (128) length. (#30)

### Summary

[AD-213] Implement a automated identifier truncation when they exceed the maximum (128) length.

### Description

- Truncate generated identifiers to ensure it doesn't exceed maximum (128) length.
- Attempt to keep "base" table name in truncated identifiers
- Attempt to keep as much of context as possible.

### Related Issue

https://bitquill.atlassian.net/browse/AD-213

* [AD-213] Implement a automated identifier truncation when they exceed the maximum (128) length.
https://bitquill.atlassian.net/browse/AD-213

* Commit Code Coverage Badge

* [AD-213] Update documentation.
https://bitquill.atlassian.net/browse/AD-213

* Commit Code Coverage Badge

* [AD-213] Review changes. Refactor DocumentDbTableSchemaGenerator.java with helper class. Improve test understanding.
https://bitquill.atlassian.net/browse/AD-213

* [AD-213] Change test so not so memory challenging.
https://bitquill.atlassian.net/browse/AD-213

* Commit Code Coverage Badge

* [AD-213] Documentation updates from code review.
https://bitquill.atlassian.net/browse/AD-213

* Commit Code Coverage Badge

Co-authored-by: birschick-bq <birschick-bq@users.noreply.github.com>

* [AD-278] Create MongoClient only when needed. Close client connection when closing the Enumerable. (#32)

### Summary

[AD-278] Create MongoClient only when needed. Close client connection when closing the Enumerable.

### Description

- Create `MongoClient` (`client`) only when needed. 
- Close `client` connection when closing the Enumerable.

### Related Issue

https://bitquill.atlassian.net/browse/AD-278

* [AD-278] Create MongoClient only when needed. Close client connection when closing the Enumerable.
https://bitquill.atlassian.net/browse/AD-278

* Commit Code Coverage Badge

Co-authored-by: birschick-bq <birschick-bq@users.noreply.github.com>

* [AD-254] Implement FLOOR for DATETIME types. (#31)

### Summary

[AD-254] Implement FLOOR for DATETIME types.

### Description

Implements `FLOOR (<datetime> TO <timeunit>)`
- Uses equivalent of `dateadd(<timeunit>,datediff(<timeunit>,0,@datetime),0)` (https://stackoverflow.com/questions/85373/floor-a-date-in-sql-server/85379#85379)
- Except for YEAR and MONTH which use `$dateToString` and `$dateFromString`
- Implements an emulated version of integer division using `$mod`.

### Related Issue

https://bitquill.atlassian.net/browse/AD-254

* [AD-254] Implement FLOOR for DATETIME types.
https://bitquill.atlassian.net/browse/AD-254

* Commit Code Coverage Badge

* [AD-254] Added support for ISOYEAR.
https://bitquill.atlassian.net/browse/AD-254

* [AD-254] Removed support for ISOYEAR.
https://bitquill.atlassian.net/browse/AD-254

* Commit Code Coverage Badge

* [AD-254] Slight refactor for easier review.
https://bitquill.atlassian.net/browse/AD-254

* Commit Code Coverage Badge

* [AD-254] Implement FLOOR(... TO WEEK). Split query/DocumentDbQueryMappingServiceTest.java
https://bitquill.atlassian.net/browse/AD-254

* Commit Code Coverage Badge

* [AD-254] Minor refactor.
https://bitquill.atlassian.net/browse/AD-254

* Commit Code Coverage Badge

* [AD-254] Updated Tableau dialect file.
https://bitquill.atlassian.net/browse/AD-254

* Commit Code Coverage Badge

* [AD-254] Improvements from code review.
https://bitquill.atlassian.net/browse/AD-254

* [AD-254] Implement QUARTER time unit for FLOOR.
https://bitquill.atlassian.net/browse/AD-254

* Commit Code Coverage Badge

* [AD-254] Added support for FLOOR aggregation in Tableau.
https://bitquill.atlassian.net/browse/AD-254

* Commit Code Coverage Badge

* Commit Code Coverage Badge

Co-authored-by: birschick-bq <birschick-bq@users.noreply.github.com>

* Update beta version from 4 to 5 (#33)

* Update beta version from 4 to 5

* Commit Code Coverage Badge

Co-authored-by: andiem-bq <andiem-bq@users.noreply.github.com>

* Commit Code Coverage Badge

Co-authored-by: Bruce Irschick <brucei@bitquilltech.com>
Co-authored-by: Alexey Temnikov <alexeyt@bitquilltech.com>
Co-authored-by: alexey-temnikov <alexey-temnikov@users.noreply.github.com>
Co-authored-by: mitchell-elholm <76969722+mitchell-elholm@users.noreply.github.com>
Co-authored-by: mitchell-elholm <mitchell-elholm@users.noreply.github.com>
Co-authored-by: andiem-bq <andiem-bq@users.noreply.github.com>
Co-authored-by: birschick-bq <birschick-bq@users.noreply.github.com>

* Merge changes from AWS repository (07/21/21) (#93)

* [AD-231] Update build for version 0.3 beta
https://bitquill.atlassian.net/browse/AD-231

* AD-204 Fixed comparisons against NULL/undefined (#5)

### Summary

AD-204 Fixed comparisons against NULL/undefined

### Description

Comparison operators (<, >, !=) now return null in expressions where a field is compared to null.

Fixes three types of queries:

1. Queries with multiple conditions on a single field

eg. `SELECT * FROM table WHERE field <> 3 AND field <> 5`

2. Queries did not remove null values in not-equals filters. For example in the above query a row containing `field:null` would be included in the result set.

3. Queries involving CASE would incorrectly consider some comparisons to null to be true/false, instead of unknown.
eg. `SELECT CASE WHEN field < 2 THEN 'A' ELSE 'B' END FROM table` would result in 'A' if `field==null` instead of 'B'. The same is true if the field does not exist at all in the document.

### Related Issue

https://bitquill.atlassian.net/browse/AD-204

* Minot enhancements in the documentation

* Commit Code Coverage Badge

* [AD-231] Update build for version 1.0.0-beta.3
https://bitquill.atlassian.net/browse/AD-231

* [AD-192] Integrate existing aws repository content with our develop branch (#1)

### Summary

Integrate existing aws repository content with our develop branch.

### Description
- Integrates changes from the initial commit of the aws repository to our develop branch (adds a contributing readme, code of conduct readme, a notice file and a license file)
- There was already an Apache license file so added our header license file as a separate file in license-header.txt.  
- Removed task and github action steps related to sonarqube.

### Related Issue
https://bitquill.atlassian.net/browse/AD-190

* Added link to GitHub Releases

* not - [user]

* [AD-195] Implement CLI for the metadata persistence - Part 2 (#4)

### Summary

[AD-195](https://bitquill.atlassian.net/browse/AD-195) Implement CLI for the metadata persistence - Part 2

### Description

Add support for:

1. `-l` "list" - lists persisted schema
1. `-b` "list tables" - lists persisted table schemas
1. `-e` "export" - exports one or more table schema to JSON.
1. `-i` "import" - import table schema and update persisted schema.
1. `-o` "output-file" - outputs exported table schema to a file, instead of standard out.
1. Updated documentation.

### Related Issue

https://bitquill.atlassian.net/browse/AD-195

* [AD-236] Make use of sessions conditional on supported versions. (#8)

### Summary

[AD-236] Make use of sessions conditional on supported versions.

### Description

Do not use sessions if version is not 4.0 or greater.

### Related Issue

https://bitquill.atlassian.net/browse/AD-236

* [AD-189] Load work-around JAR files from branch in Janino forked repository. (#3)

### Summary

[AD-189] Load work-around JAR files from branch in Janino forked repository.

### Description

Reference work-around JAR file from forked Janino project where the source is set for the work-around and the JAR files are produced against that source.

### Related Issue

https://bitquill.atlassian.net/browse/AD-189

* Added script to automatically generate taco file.

* Commit Code Coverage Badge

* [AD-237] Document Schema JSON format (#10)

### Summary

[AD-237](https://bitquill.atlassian.net/browse/AD-237) Document Schema JSON format

### Description

- Document table schema in JSON format and how make modifications to flatten a virtual table.

### Related Issue

https://bitquill.atlassian.net/browse/AD-237

* [AD-203] Fix where clause (#7)

* AD-204 Fixed comparisons against NULL/undefined (#89)

* AD-215 Fixed comparisons for CASE

* AD-204 Fix for multi-field conditions

* Commit Code Coverage Badge

* Commit Code Coverage Badge

* AD-204 Added test in query mapping service

* Commit Code Coverage Badge

* AD-204 Added check for cast, removed list copying

* Commit Code Coverage Badge

Co-authored-by: mitchell-elholm <mitchell-elholm@users.noreply.github.com>

* AD-203 Initial commit with unit tests

* AD-203 Used RexToMongoTranslator

* AD-203 Added fix for quotes, and Long parsing, also fixed unit tests

* AD-203 Added test for nested OR in WHERE clause

* AD-203 Changed $literal to $numberLong

* AD-203 Format and fixed comment

* Commit Code Coverage Badge

* AD-203 Removed $literal

* Commit Code Coverage Badge

* AD-203 Added note on $literal, fixed some types

* Commit Code Coverage Badge

* AD-203 Changed to use placeholder constant, added DECIMAL to types

* Commit Code Coverage Badge

Co-authored-by: mitchell-elholm <mitchell-elholm@users.noreply.github.com>

* [AD-240] Allow "latest or none" option so we don't always generate a schema (#12)

### Summary

[AD-240](https://bitquill.atlassian.net/browse/AD-240) Allow "latest or none" option so we don't always generate a schema.

### Description

Add option to get latest or none - so we don' always generate a new schema.

### Related Issue

https://bitquill.atlassian.net/browse/AD-240

* [AD-223] Sql Functions Foundation (#9)

* AD-204 Fixed comparisons against NULL/undefined (#89)

* AD-215 Fixed comparisons for CASE

* AD-204 Fix for multi-field conditions

* Commit Code Coverage Badge

* Commit Code Coverage Badge

* AD-204 Added test in query mapping service

* Commit Code Coverage Badge

* AD-204 Added check for cast, removed list copying

* Commit Code Coverage Badge

Co-authored-by: mitchell-elholm <mitchell-elholm@users.noreply.github.com>

* AD-203 Initial commit with unit tests

* AD-203 Used RexToMongoTranslator

* AD-203 Added fix for quotes, and Long parsing, also fixed unit tests

* WIP - added dateadd and some datepart functions

* Add more tests

* AD-203 Added test for nested OR in WHERE clause

* AD-203 Changed $literal to $numberLong

* AD-203 Format and fixed comment

* Commit Code Coverage Badge

* [AD-223] Update taco file

* Commit Code Coverage Badge

* AD-203 Removed $literal

* Commit Code Coverage Badge

* Resolve conflicts with AD-203 + add unit tests

* Commit Code Coverage Badge

* AD-203 Added note on $literal, fixed some types

* Commit Code Coverage Badge

* Merge cganges from [AD-203]

* Commit Code Coverage Badge

* Merge changes from develop

* Commit Code Coverage Badge

Co-authored-by: mitchell-elholm <76969722+mitchell-elholm@users.noreply.github.com>
Co-authored-by: mitchell-elholm <mitchell-elholm@users.noreply.github.com>
Co-authored-by: andiem-bq <andiem-bq@users.noreply.github.com>

* Commit Code Coverage Badge

* AD-257 refactor DocumentDbStatementTest (#14)

* AD-257 refactor DocumentDbStatementTest

* Commit Code Coverage Badge

Co-authored-by: mitchell-elholm <mitchell-elholm@users.noreply.github.com>

* AD-220 Add missing tests (#13)

* AD-220 Initial commit, added tests for IN, NOT IN, CAST, OFFSET, NATURAL JOIN, CROSS JOIN

* AD-220 Re-worked cast tests, refactored DocumentDbStatementTest

* Spotbugs

* Commit Code Coverage Badge

* AD-220 Added refactor from Develop

* Commit Code Coverage Badge

* AD-220 Added documentation

* Commit Code Coverage Badge

* AD-220 Documentation space

* Commit Code Coverage Badge

Co-authored-by: mitchell-elholm <mitchell-elholm@users.noreply.github.com>

* [AD-193] Documentation and Demo for metadata persistence with DocumentDB (#15)

### Summary

[AD-193](https://bitquill.atlassian.net/browse/AD-193) Documentation and Demo for metadata persistence with DocumentDB

### Description

- Fixes an issue with importing schema for a new (previously non-existent) schema.
- Fixes some small documentation issues.

### Related Issue

https://bitquill.atlassian.net/browse/AD-193

* AD-241 Error when querying >20000 rows (#17)

* AD-241 Added client to result set

* Commit Code Coverage Badge

* AD-241 Added unit test, fixed get/setFetchSize

* AD-241 Checkstyle

* Removed mock overrides

* Fixed test class

* Fixed Statement test

* Commit Code Coverage Badge

* Adjusted batch/fetchSize

* Checkstyle

* Commit Code Coverage Badge

Co-authored-by: mitchell-elholm <mitchell-elholm@users.noreply.github.com>

* [AD-214] Query cancellation (#16)

* WIP - initial commit

* [AD-214] Implement query cancellation for statement and prepared statement

* Remove duplicate calls to verifyOpen()

* Commit Code Coverage Badge

* Fix spacing in build.gradle

* Commit Code Coverage Badge

* Code review improvements

* Commit Code Coverage Badge

* Resolve merge conflicts from develop

* Commit Code Coverage Badge

Co-authored-by: andiem-bq <andiem-bq@users.noreply.github.com>

* [AD-261] Update version to v1.0.0-beta.4 (#18)

* [AD-261] Update version to v1.0.0-beta.4

* Commit Code Coverage Badge

Co-authored-by: andiem-bq <andiem-bq@users.noreply.github.com>

* [AD-261] Update Tableau Connector name (#19)

* [AD-261] Update version to v1.0.0-beta.4

* [AD-261] Update names and links in taco file

* Commit Code Coverage Badge

Co-authored-by: andiem-bq <andiem-bq@users.noreply.github.com>

* [AD-226] Add additional extract tests (#20)

* Add additional tests for datepart functions

* Add ':' in needsQuote check

* Add tests for case

* Add test descriptions

* Commit Code Coverage Badge

Co-authored-by: andiem-bq <andiem-bq@users.noreply.github.com>

* [AD-227] Added support for CURRENT_TIMESTAMP, CURRENT_DATE, QUARTER, DAYNAME, and MONTHNAME. (#21)

### Summary

[AD-227] Added support for CURRENT_TIMESTAMP, CURRENT_DATE, QUARTER, DAYNAME, and MONTHNAME.

### Description

- CURRENT_TIMESTAMP/NOW, 
- CURRENT_DATE/TODAY, 
- QUARTER, 
- DAYNAME, and 
- MONTHNAME.
- Date/Datetime operators `+` and `-` (in Tableau)
- Small improvement in handling BsonTimestamp conversions.

### Related Issue

https://bitquill.atlassian.net/browse/AD-227

* [AD-227] Added support for CURRENT_TIMESTAMP, CURRENT_DATE, QUARTER, DAYNAME, MONTHNAME.
https://bitquill.atlassian.net/browse/AD-227

* Commit Code Coverage Badge

* [AD-227] Correct failing test.
https://bitquill.atlassian.net/browse/AD-227

* [AD-227] Improvements from review.
https://bitquill.atlassian.net/browse/AD-227

* Commit Code Coverage Badge

* [AD-227] Update datediff in dialect.tdd

* Commit Code Coverage Badge

* [AD-227] Add dialect entry for datetime - datetime

* Commit Code Coverage Badge

* [AD-227] Add support for NULL as parameter to DAYNAME, MONTHNAME, and QUARTER.
https://bitquill.atlassian.net/browse/AD-227

* Commit Code Coverage Badge

* [AD-227] Refactored MONTHNAME, DAYNAME and QUARTER to use String.format() to create Mongo aggregate commands.
https://bitquill.atlassian.net/browse/AD-227

* Commit Code Coverage Badge

Co-authored-by: birschick-bq <birschick-bq@users.noreply.github.com>
Co-authored-by: Andie Montoya <andiem@bitquilltech.com>
Co-authored-by: andiem-bq <andiem-bq@users.noreply.github.com>

* AD-194 Added fix for Tableau Issue (#22)

* AD-194 Added fix for Tableau Issue

* Commit Code Coverage Badge

Co-authored-by: mitchell-elholm <mitchell-elholm@users.noreply.github.com>

* [AD-268] Handle case when sub-document (virtual table) contains '_id' as field. (#24)

### Summary

[AD-268] Handle case when sub-document (virtual table) contains '_id' as field.

### Description

Now correctly sending the `collectionName` instead of `path`.

### Related Issue

https://bitquill.atlassian.net/browse/AD-268

* [AD-268] Handle case when sub-document (virtual table) contains '_id' as field.
https://bitquill.atlassian.net/browse/AD-268

* Commit Code Coverage Badge

Co-authored-by: birschick-bq <birschick-bq@users.noreply.github.com>

* AD-251 Added support for IS [NOT] NULL (#23)

* AD-251 Added support for IS [NOT] NULL

* Removed unused import

* Checkstyle

* Commit Code Coverage Badge

* AD-251 Added mapping test, simplified null handler

* Commit Code Coverage Badge

Co-authored-by: mitchell-elholm <mitchell-elholm@users.noreply.github.com>

* [AD-269] Handle case when first array is empty followed by non-empty array of object. (#25)

### Summary

[AD-269] Handle case when first array is empty followed by non-empty array of object.

### Description

Handle the case when a field is first encountered as an empty array, followed by a non-empty array of object.

### Related Issue

https://bitquill.atlassian.net/browse/AD-269

* [AD-269] Handle case when first array is empty followed by non-empty array of object.
https://bitquill.atlassian.net/browse/AD-269

* Commit Code Coverage Badge

Co-authored-by: birschick-bq <birschick-bq@users.noreply.github.com>

* [AD-262] Additional tests for CASE (#26)

* [AD-262] Add additional tests for CASE

* [AD-262] Add additional tests for CASE

* [AD-262] Add additional tests for CASE

* Remove extra space

* Remove extra space

* Commit Code Coverage Badge

* Add separate test for CASE with NOT + add setting to treat string literals of different lengths as varchar

* Commit Code Coverage Badge

Co-authored-by: andiem-bq <andiem-bq@users.noreply.github.com>

* [AD-274] Fix handling of checking for missing database name in connection string. (#29)

### Summary

[AD-274] Fix handling of checking for missing database name in connection string.

### Description

- Fix handling of checking for missing database name in connection string.

### Related Issue

https://bitquill.atlassian.net/browse/AD-274

* [AD-274] Fix handling of checking for missing database name in connection string.
https://bitquill.atlassian.net/browse/AD-274

* Commit Code Coverage Badge

Co-authored-by: birschick-bq <birschick-bq@users.noreply.github.com>

* AD-225 Added substring (#28)

* AD-225 Added substring

* Ad-225 Checkstyle

* Commit Code Coverage Badge

* Fixed merge

* Moved old method to make changes clearer

* Commit Code Coverage Badge

* $substr -> $substrCP

* Fixed mapping test

* Commit Code Coverage Badge

* Added more tests with literals

* Commit Code Coverage Badge

* Fixed substring support for expressions, added tests, added tableau support for MID

* Commit Code Coverage Badge

* Removed use of standard operator

* Commit Code Coverage Badge

Co-authored-by: mitchell-elholm <mitchell-elholm@users.noreply.github.com>

* [AD-213] Implement a automated identifier truncation when they exceed the maximum (128) length. (#30)

### Summary

[AD-213] Implement a automated identifier truncation when they exceed the maximum (128) length.

### Description

- Truncate generated identifiers to ensure it doesn't exceed maximum (128) length.
- Attempt to keep "base" table name in truncated identifiers
- Attempt to keep as much of context as possible.

### Related Issue

https://bitquill.atlassian.net/browse/AD-213

* [AD-213] Implement a automated identifier truncation when they exceed the maximum (128) length.
https://bitquill.atlassian.net/browse/AD-213

* Commit Code Coverage Badge

* [AD-213] Update documentation.
https://bitquill.atlassian.net/browse/AD-213

* Commit Code Coverage Badge

* [AD-213] Review changes. Refactor DocumentDbTableSchemaGenerator.java with helper class. Improve test understanding.
https://bitquill.atlassian.net/browse/AD-213

* [AD-213] Change test so not so memory challenging.
https://bitquill.atlassian.net/browse/AD-213

* Commit Code Coverage Badge

* [AD-213] Documentation updates from code review.
https://bitquill.atlassian.net/browse/AD-213

* Commit Code Coverage Badge

Co-authored-by: birschick-bq <birschick-bq@users.noreply.github.com>

* [AD-278] Create MongoClient only when needed. Close client connection when closing the Enumerable. (#32)

### Summary

[AD-278] Create MongoClient only when needed. Close client connection when closing the Enumerable.

### Description

- Create `MongoClient` (`client`) only when needed. 
- Close `client` connection when closing the Enumerable.

### Related Issue

https://bitquill.atlassian.net/browse/AD-278

* [AD-278] Create MongoClient only when needed. Close client connection when closing the Enumerable.
https://bitquill.atlassian.net/browse/AD-278

* Commit Code Coverage Badge

Co-authored-by: birschick-bq <birschick-bq@users.noreply.github.com>

* [AD-254] Implement FLOOR for DATETIME types. (#31)

### Summary

[AD-254] Implement FLOOR for DATETIME types.

### Description

Implements `FLOOR (<datetime> TO <timeunit>)`
- Uses equivalent of `dateadd(<timeunit>,datediff(<timeunit>,0,@datetime),0)` (https://stackoverflow.com/questions/85373/floor-a-date-in-sql-server/85379#85379)
- Except for YEAR and MONTH which use `$dateToString` and `$dateFromString`
- Implements an emulated version of integer division using `$mod`.

### Related Issue

https://bitquill.atlassian.net/browse/AD-254

* [AD-254] Implement FLOOR for DATETIME types.
https://bitquill.atlassian.net/browse/AD-254

* Commit Code Coverage Badge

* [AD-254] Added support for ISOYEAR.
https://bitquill.atlassian.net/browse/AD-254

* [AD-254] Removed support for ISOYEAR.
https://bitquill.atlassian.net/browse/AD-254

* Commit Code Coverage Badge

* [AD-254] Slight refactor for easier review.
https://bitquill.atlassian.net/browse/AD-254

* Commit Code Coverage Badge

* [AD-254] Implement FLOOR(... TO WEEK). Split query/DocumentDbQueryMappingServiceTest.java
https://bitquill.atlassian.net/browse/AD-254

* Commit Code Coverage Badge

* [AD-254] Minor refactor.
https://bitquill.atlassian.net/browse/AD-254

* Commit Code Coverage Badge

* [AD-254] Updated Tableau dialect file.
https://bitquill.atlassian.net/browse/AD-254

* Commit Code Coverage Badge

* [AD-254] Improvements from code review.
https://bitquill.atlassian.net/browse/AD-254

* [AD-254] Implement QUARTER time unit for FLOOR.
https://bitquill.atlassian.net/browse/AD-254

* Commit Code Coverage Badge

* [AD-254] Added support for FLOOR aggregation in Tableau.
https://bitquill.atlassian.net/browse/AD-254

* Commit Code Coverage Badge

* Commit Code Coverage Badge

Co-authored-by: birschick-bq <birschick-bq@users.noreply.github.com>

* Update beta version from 4 to 5 (#33)

* Update beta version from 4 to 5

* Commit Code Coverage Badge

Co-authored-by: andiem-bq <andiem-bq@users.noreply.github.com>

* Adding shadowing for com.google.common to resolve library conflicts on older Tableau versions (2020.4.6)

* Commit Code Coverage Badge

* Update beta version to beta.6 (#36)

* Update beta version

* Commit Code Coverage Badge

Co-authored-by: andiem-bq <andiem-bq@users.noreply.github.com>

* Commit Code Coverage Badge

Co-authored-by: Bruce Irschick <brucei@bitquilltech.com>
Co-authored-by: Alexey Temnikov <alexeyt@bitquilltech.com>
Co-authored-by: alexey-temnikov <alexey-temnikov@users.noreply.github.com>
Co-authored-by: mitchell-elholm <76969722+mitchell-elholm@users.noreply.github.com>
Co-authored-by: mitchell-elholm <mitchell-elholm@users.noreply.github.com>
Co-authored-by: andiem-bq <andiem-bq@users.noreply.github.com>
Co-authored-by: birschick-bq <birschick-bq@users.noreply.github.com>

* Removing Mongo Client from QueryExecutor

Driver was open a connection everytime that a query was running and the Connection opened on DocumentDbConnection was not being reused.
Changes were made to remove the extra connection and reuse the connection already opened on DocumentDbConnection.

* Commit Code Coverage Badge

* Resolve merge conflict

* Commit Code Coverage Badge

Co-authored-by: Bruce Irschick <brucei@bitquilltech.com>
Co-authored-by: Alexey Temnikov <alexeyt@bitquilltech.com>
Co-authored-by: alexey-temnikov <alexey-temnikov@users.noreply.github.com>
Co-authored-by: mitchell-elholm <76969722+mitchell-elholm@users.noreply.github.com>
Co-authored-by: mitchell-elholm <mitchell-elholm@users.noreply.github.com>
Co-authored-by: andiem-bq <andiem-bq@users.noreply.github.com>
Co-authored-by: birschick-bq <birschick-bq@users.noreply.github.com>
Co-authored-by: affonsov <affonsov@bitquilltech.com>

* [AD-299] FIX: Test fails due to different line separate on Windows. (#62)

* [AD-299] Corrected test.
https://bitquill.atlassian.net/browse/AD-299

* Commit Code Coverage Badge

Co-authored-by: birschick-bq <birschick-bq@users.noreply.github.com>

* [AD-298] FIX: Concurrent tests runs fails because of shared schema. (#64)

### Summary

[AD-298] FIX: Concurrent tests runs fails because of shared schema.

### Description

- When using DocumentDB environment, create new database when starting and drop database when stopping.

### Related Issue

https://bitquill.atlassian.net/browse/AD-298

* [AD-298] FIX: Concurrent tests runs fails because of shared schema.
https://bitquill.atlassian.net/browse/AD-298
* When using DocumentDB environment, create new database when starting and drop database when stopping.

* Commit Code Coverage Badge

Co-authored-by: birschick-bq <birschick-bq@users.noreply.github.com>

* [AD-216] Investigate statement.setMaxRows() and see if this needs to be incorporated ins some way during quer…
birschick-bq added a commit that referenced this pull request Oct 4, 2021
* [AD-231] Update build for version 0.3 beta
https://bitquill.atlassian.net/browse/AD-231

* AD-204 Fixed comparisons against NULL/undefined (#5)

### Summary

AD-204 Fixed comparisons against NULL/undefined

### Description

Comparison operators (<, >, !=) now return null in expressions where a field is compared to null.

Fixes three types of queries:

1. Queries with multiple conditions on a single field

eg. `SELECT * FROM table WHERE field <> 3 AND field <> 5`

2. Queries did not remove null values in not-equals filters. For example in the above query a row containing `field:null` would be included in the result set.

3. Queries involving CASE would incorrectly consider some comparisons to null to be true/false, instead of unknown.
eg. `SELECT CASE WHEN field < 2 THEN 'A' ELSE 'B' END FROM table` would result in 'A' if `field==null` instead of 'B'. The same is true if the field does not exist at all in the document.

### Related Issue

https://bitquill.atlassian.net/browse/AD-204

* Minot enhancements in the documentation

* Commit Code Coverage Badge

* [AD-231] Update build for version 1.0.0-beta.3
https://bitquill.atlassian.net/browse/AD-231

* [AD-192] Integrate existing aws repository content with our develop branch (#1)

### Summary

Integrate existing aws repository content with our develop branch.

### Description
- Integrates changes from the initial commit of the aws repository to our develop branch (adds a contributing readme, code of conduct readme, a notice file and a license file)
- There was already an Apache license file so added our header license file as a separate file in license-header.txt.  
- Removed task and github action steps related to sonarqube.

### Related Issue
https://bitquill.atlassian.net/browse/AD-190

* Added link to GitHub Releases

* not - [user]

* [AD-195] Implement CLI for the metadata persistence - Part 2 (#4)

### Summary

[AD-195](https://bitquill.atlassian.net/browse/AD-195) Implement CLI for the metadata persistence - Part 2

### Description

Add support for:

1. `-l` "list" - lists persisted schema
1. `-b` "list tables" - lists persisted table schemas
1. `-e` "export" - exports one or more table schema to JSON.
1. `-i` "import" - import table schema and update persisted schema.
1. `-o` "output-file" - outputs exported table schema to a file, instead of standard out.
1. Updated documentation.

### Related Issue

https://bitquill.atlassian.net/browse/AD-195

* [AD-236] Make use of sessions conditional on supported versions. (#8)

### Summary

[AD-236] Make use of sessions conditional on supported versions.

### Description

Do not use sessions if version is not 4.0 or greater.

### Related Issue

https://bitquill.atlassian.net/browse/AD-236

* [AD-189] Load work-around JAR files from branch in Janino forked repository. (#3)

### Summary

[AD-189] Load work-around JAR files from branch in Janino forked repository.

### Description

Reference work-around JAR file from forked Janino project where the source is set for the work-around and the JAR files are produced against that source.

### Related Issue

https://bitquill.atlassian.net/browse/AD-189

* Added script to automatically generate taco file.

* Commit Code Coverage Badge

* [AD-237] Document Schema JSON format (#10)

### Summary

[AD-237](https://bitquill.atlassian.net/browse/AD-237) Document Schema JSON format

### Description

- Document table schema in JSON format and how make modifications to flatten a virtual table.

### Related Issue

https://bitquill.atlassian.net/browse/AD-237

* [AD-203] Fix where clause (#7)

* AD-204 Fixed comparisons against NULL/undefined (#89)

* AD-215 Fixed comparisons for CASE

* AD-204 Fix for multi-field conditions

* Commit Code Coverage Badge

* Commit Code Coverage Badge

* AD-204 Added test in query mapping service

* Commit Code Coverage Badge

* AD-204 Added check for cast, removed list copying

* Commit Code Coverage Badge

Co-authored-by: mitchell-elholm <mitchell-elholm@users.noreply.github.com>

* AD-203 Initial commit with unit tests

* AD-203 Used RexToMongoTranslator

* AD-203 Added fix for quotes, and Long parsing, also fixed unit tests

* AD-203 Added test for nested OR in WHERE clause

* AD-203 Changed $literal to $numberLong

* AD-203 Format and fixed comment

* Commit Code Coverage Badge

* AD-203 Removed $literal

* Commit Code Coverage Badge

* AD-203 Added note on $literal, fixed some types

* Commit Code Coverage Badge

* AD-203 Changed to use placeholder constant, added DECIMAL to types

* Commit Code Coverage Badge

Co-authored-by: mitchell-elholm <mitchell-elholm@users.noreply.github.com>

* [AD-240] Allow "latest or none" option so we don't always generate a schema (#12)

### Summary

[AD-240](https://bitquill.atlassian.net/browse/AD-240) Allow "latest or none" option so we don't always generate a schema.

### Description

Add option to get latest or none - so we don' always generate a new schema.

### Related Issue

https://bitquill.atlassian.net/browse/AD-240

* [AD-223] Sql Functions Foundation (#9)

* AD-204 Fixed comparisons against NULL/undefined (#89)

* AD-215 Fixed comparisons for CASE

* AD-204 Fix for multi-field conditions

* Commit Code Coverage Badge

* Commit Code Coverage Badge

* AD-204 Added test in query mapping service

* Commit Code Coverage Badge

* AD-204 Added check for cast, removed list copying

* Commit Code Coverage Badge

Co-authored-by: mitchell-elholm <mitchell-elholm@users.noreply.github.com>

* AD-203 Initial commit with unit tests

* AD-203 Used RexToMongoTranslator

* AD-203 Added fix for quotes, and Long parsing, also fixed unit tests

* WIP - added dateadd and some datepart functions

* Add more tests

* AD-203 Added test for nested OR in WHERE clause

* AD-203 Changed $literal to $numberLong

* AD-203 Format and fixed comment

* Commit Code Coverage Badge

* [AD-223] Update taco file

* Commit Code Coverage Badge

* AD-203 Removed $literal

* Commit Code Coverage Badge

* Resolve conflicts with AD-203 + add unit tests

* Commit Code Coverage Badge

* AD-203 Added note on $literal, fixed some types

* Commit Code Coverage Badge

* Merge cganges from [AD-203]

* Commit Code Coverage Badge

* Merge changes from develop

* Commit Code Coverage Badge

Co-authored-by: mitchell-elholm <76969722+mitchell-elholm@users.noreply.github.com>
Co-authored-by: mitchell-elholm <mitchell-elholm@users.noreply.github.com>
Co-authored-by: andiem-bq <andiem-bq@users.noreply.github.com>

* Commit Code Coverage Badge

* AD-257 refactor DocumentDbStatementTest (#14)

* AD-257 refactor DocumentDbStatementTest

* Commit Code Coverage Badge

Co-authored-by: mitchell-elholm <mitchell-elholm@users.noreply.github.com>

* AD-220 Add missing tests (#13)

* AD-220 Initial commit, added tests for IN, NOT IN, CAST, OFFSET, NATURAL JOIN, CROSS JOIN

* AD-220 Re-worked cast tests, refactored DocumentDbStatementTest

* Spotbugs

* Commit Code Coverage Badge

* AD-220 Added refactor from Develop

* Commit Code Coverage Badge

* AD-220 Added documentation

* Commit Code Coverage Badge

* AD-220 Documentation space

* Commit Code Coverage Badge

Co-authored-by: mitchell-elholm <mitchell-elholm@users.noreply.github.com>

* [AD-193] Documentation and Demo for metadata persistence with DocumentDB (#15)

### Summary

[AD-193](https://bitquill.atlassian.net/browse/AD-193) Documentation and Demo for metadata persistence with DocumentDB

### Description

- Fixes an issue with importing schema for a new (previously non-existent) schema.
- Fixes some small documentation issues.

### Related Issue

https://bitquill.atlassian.net/browse/AD-193

* AD-241 Error when querying >20000 rows (#17)

* AD-241 Added client to result set

* Commit Code Coverage Badge

* AD-241 Added unit test, fixed get/setFetchSize

* AD-241 Checkstyle

* Removed mock overrides

* Fixed test class

* Fixed Statement test

* Commit Code Coverage Badge

* Adjusted batch/fetchSize

* Checkstyle

* Commit Code Coverage Badge

Co-authored-by: mitchell-elholm <mitchell-elholm@users.noreply.github.com>

* [AD-214] Query cancellation (#16)

* WIP - initial commit

* [AD-214] Implement query cancellation for statement and prepared statement

* Remove duplicate calls to verifyOpen()

* Commit Code Coverage Badge

* Fix spacing in build.gradle

* Commit Code Coverage Badge

* Code review improvements

* Commit Code Coverage Badge

* Resolve merge conflicts from develop

* Commit Code Coverage Badge

Co-authored-by: andiem-bq <andiem-bq@users.noreply.github.com>

* [AD-261] Update version to v1.0.0-beta.4 (#18)

* [AD-261] Update version to v1.0.0-beta.4

* Commit Code Coverage Badge

Co-authored-by: andiem-bq <andiem-bq@users.noreply.github.com>

* [AD-261] Update Tableau Connector name (#19)

* [AD-261] Update version to v1.0.0-beta.4

* [AD-261] Update names and links in taco file

* Commit Code Coverage Badge

Co-authored-by: andiem-bq <andiem-bq@users.noreply.github.com>

* [AD-226] Add additional extract tests (#20)

* Add additional tests for datepart functions

* Add ':' in needsQuote check

* Add tests for case

* Add test descriptions

* Commit Code Coverage Badge

Co-authored-by: andiem-bq <andiem-bq@users.noreply.github.com>

* [AD-227] Added support for CURRENT_TIMESTAMP, CURRENT_DATE, QUARTER, DAYNAME, and MONTHNAME. (#21)

### Summary

[AD-227] Added support for CURRENT_TIMESTAMP, CURRENT_DATE, QUARTER, DAYNAME, and MONTHNAME.

### Description

- CURRENT_TIMESTAMP/NOW, 
- CURRENT_DATE/TODAY, 
- QUARTER, 
- DAYNAME, and 
- MONTHNAME.
- Date/Datetime operators `+` and `-` (in Tableau)
- Small improvement in handling BsonTimestamp conversions.

### Related Issue

https://bitquill.atlassian.net/browse/AD-227

* [AD-227] Added support for CURRENT_TIMESTAMP, CURRENT_DATE, QUARTER, DAYNAME, MONTHNAME.
https://bitquill.atlassian.net/browse/AD-227

* Commit Code Coverage Badge

* [AD-227] Correct failing test.
https://bitquill.atlassian.net/browse/AD-227

* [AD-227] Improvements from review.
https://bitquill.atlassian.net/browse/AD-227

* Commit Code Coverage Badge

* [AD-227] Update datediff in dialect.tdd

* Commit Code Coverage Badge

* [AD-227] Add dialect entry for datetime - datetime

* Commit Code Coverage Badge

* [AD-227] Add support for NULL as parameter to DAYNAME, MONTHNAME, and QUARTER.
https://bitquill.atlassian.net/browse/AD-227

* Commit Code Coverage Badge

* [AD-227] Refactored MONTHNAME, DAYNAME and QUARTER to use String.format() to create Mongo aggregate commands.
https://bitquill.atlassian.net/browse/AD-227

* Commit Code Coverage Badge

Co-authored-by: birschick-bq <birschick-bq@users.noreply.github.com>
Co-authored-by: Andie Montoya <andiem@bitquilltech.com>
Co-authored-by: andiem-bq <andiem-bq@users.noreply.github.com>

* AD-194 Added fix for Tableau Issue (#22)

* AD-194 Added fix for Tableau Issue

* Commit Code Coverage Badge

Co-authored-by: mitchell-elholm <mitchell-elholm@users.noreply.github.com>

* [AD-268] Handle case when sub-document (virtual table) contains '_id' as field. (#24)

### Summary

[AD-268] Handle case when sub-document (virtual table) contains '_id' as field.

### Description

Now correctly sending the `collectionName` instead of `path`.

### Related Issue

https://bitquill.atlassian.net/browse/AD-268

* [AD-268] Handle case when sub-document (virtual table) contains '_id' as field.
https://bitquill.atlassian.net/browse/AD-268

* Commit Code Coverage Badge

Co-authored-by: birschick-bq <birschick-bq@users.noreply.github.com>

* AD-251 Added support for IS [NOT] NULL (#23)

* AD-251 Added support for IS [NOT] NULL

* Removed unused import

* Checkstyle

* Commit Code Coverage Badge

* AD-251 Added mapping test, simplified null handler

* Commit Code Coverage Badge

Co-authored-by: mitchell-elholm <mitchell-elholm@users.noreply.github.com>

* [AD-269] Handle case when first array is empty followed by non-empty array of object. (#25)

### Summary

[AD-269] Handle case when first array is empty followed by non-empty array of object.

### Description

Handle the case when a field is first encountered as an empty array, followed by a non-empty array of object.

### Related Issue

https://bitquill.atlassian.net/browse/AD-269

* [AD-269] Handle case when first array is empty followed by non-empty array of object.
https://bitquill.atlassian.net/browse/AD-269

* Commit Code Coverage Badge

Co-authored-by: birschick-bq <birschick-bq@users.noreply.github.com>

* [AD-262] Additional tests for CASE (#26)

* [AD-262] Add additional tests for CASE

* [AD-262] Add additional tests for CASE

* [AD-262] Add additional tests for CASE

* Remove extra space

* Remove extra space

* Commit Code Coverage Badge

* Add separate test for CASE with NOT + add setting to treat string literals of different lengths as varchar

* Commit Code Coverage Badge

Co-authored-by: andiem-bq <andiem-bq@users.noreply.github.com>

* [AD-274] Fix handling of checking for missing database name in connection string. (#29)

### Summary

[AD-274] Fix handling of checking for missing database name in connection string.

### Description

- Fix handling of checking for missing database name in connection string.

### Related Issue

https://bitquill.atlassian.net/browse/AD-274

* [AD-274] Fix handling of checking for missing database name in connection string.
https://bitquill.atlassian.net/browse/AD-274

* Commit Code Coverage Badge

Co-authored-by: birschick-bq <birschick-bq@users.noreply.github.com>

* AD-225 Added substring (#28)

* AD-225 Added substring

* Ad-225 Checkstyle

* Commit Code Coverage Badge

* Fixed merge

* Moved old method to make changes clearer

* Commit Code Coverage Badge

* $substr -> $substrCP

* Fixed mapping test

* Commit Code Coverage Badge

* Added more tests with literals

* Commit Code Coverage Badge

* Fixed substring support for expressions, added tests, added tableau support for MID

* Commit Code Coverage Badge

* Removed use of standard operator

* Commit Code Coverage Badge

Co-authored-by: mitchell-elholm <mitchell-elholm@users.noreply.github.com>

* [AD-213] Implement a automated identifier truncation when they exceed the maximum (128) length. (#30)

### Summary

[AD-213] Implement a automated identifier truncation when they exceed the maximum (128) length.

### Description

- Truncate generated identifiers to ensure it doesn't exceed maximum (128) length.
- Attempt to keep "base" table name in truncated identifiers
- Attempt to keep as much of context as possible.

### Related Issue

https://bitquill.atlassian.net/browse/AD-213

* [AD-213] Implement a automated identifier truncation when they exceed the maximum (128) length.
https://bitquill.atlassian.net/browse/AD-213

* Commit Code Coverage Badge

* [AD-213] Update documentation.
https://bitquill.atlassian.net/browse/AD-213

* Commit Code Coverage Badge

* [AD-213] Review changes. Refactor DocumentDbTableSchemaGenerator.java with helper class. Improve test understanding.
https://bitquill.atlassian.net/browse/AD-213

* [AD-213] Change test so not so memory challenging.
https://bitquill.atlassian.net/browse/AD-213

* Commit Code Coverage Badge

* [AD-213] Documentation updates from code review.
https://bitquill.atlassian.net/browse/AD-213

* Commit Code Coverage Badge

Co-authored-by: birschick-bq <birschick-bq@users.noreply.github.com>

* [AD-278] Create MongoClient only when needed. Close client connection when closing the Enumerable. (#32)

### Summary

[AD-278] Create MongoClient only when needed. Close client connection when closing the Enumerable.

### Description

- Create `MongoClient` (`client`) only when needed. 
- Close `client` connection when closing the Enumerable.

### Related Issue

https://bitquill.atlassian.net/browse/AD-278

* [AD-278] Create MongoClient only when needed. Close client connection when closing the Enumerable.
https://bitquill.atlassian.net/browse/AD-278

* Commit Code Coverage Badge

Co-authored-by: birschick-bq <birschick-bq@users.noreply.github.com>

* [AD-254] Implement FLOOR for DATETIME types. (#31)

### Summary

[AD-254] Implement FLOOR for DATETIME types.

### Description

Implements `FLOOR (<datetime> TO <timeunit>)`
- Uses equivalent of `dateadd(<timeunit>,datediff(<timeunit>,0,@datetime),0)` (https://stackoverflow.com/questions/85373/floor-a-date-in-sql-server/85379#85379)
- Except for YEAR and MONTH which use `$dateToString` and `$dateFromString`
- Implements an emulated version of integer division using `$mod`.

### Related Issue

https://bitquill.atlassian.net/browse/AD-254

* [AD-254] Implement FLOOR for DATETIME types.
https://bitquill.atlassian.net/browse/AD-254

* Commit Code Coverage Badge

* [AD-254] Added support for ISOYEAR.
https://bitquill.atlassian.net/browse/AD-254

* [AD-254] Removed support for ISOYEAR.
https://bitquill.atlassian.net/browse/AD-254

* Commit Code Coverage Badge

* [AD-254] Slight refactor for easier review.
https://bitquill.atlassian.net/browse/AD-254

* Commit Code Coverage Badge

* [AD-254] Implement FLOOR(... TO WEEK). Split query/DocumentDbQueryMappingServiceTest.java
https://bitquill.atlassian.net/browse/AD-254

* Commit Code Coverage Badge

* [AD-254] Minor refactor.
https://bitquill.atlassian.net/browse/AD-254

* Commit Code Coverage Badge

* [AD-254] Updated Tableau dialect file.
https://bitquill.atlassian.net/browse/AD-254

* Commit Code Coverage Badge

* [AD-254] Improvements from code review.
https://bitquill.atlassian.net/browse/AD-254

* [AD-254] Implement QUARTER time unit for FLOOR.
https://bitquill.atlassian.net/browse/AD-254

* Commit Code Coverage Badge

* [AD-254] Added support for FLOOR aggregation in Tableau.
https://bitquill.atlassian.net/browse/AD-254

* Commit Code Coverage Badge

* Commit Code Coverage Badge

Co-authored-by: birschick-bq <birschick-bq@users.noreply.github.com>

* Update beta version from 4 to 5 (#33)

* Update beta version from 4 to 5

* Commit Code Coverage Badge

Co-authored-by: andiem-bq <andiem-bq@users.noreply.github.com>

* Adding shadowing for com.google.common to resolve library conflicts on older Tableau versions (2020.4.6)

* Commit Code Coverage Badge

* Update beta version to beta.6 (#36)

* Update beta version

* Commit Code Coverage Badge

Co-authored-by: andiem-bq <andiem-bq@users.noreply.github.com>

* Added dependabot.yml

* Commit Code Coverage Badge

* Mitchell/ad 224 sql function support (#37)

* Added many tests

* Added TIMESTAMPADD and TIMESTAMPDIFF tests

* Fixed duplicate key

* Removed duplicate test, added note on disabled tests.

* Commit Code Coverage Badge

* AD-224 Removed duplicate test

* Commit Code Coverage Badge

Co-authored-by: mitchell-elholm <mitchell-elholm@users.noreply.github.com>

* Bump junit-jupiter-params from 5.6.0 to 5.7.2

Bumps [junit-jupiter-params](https://github.com/junit-team/junit5) from 5.6.0 to 5.7.2.
- [Release notes](https://github.com/junit-team/junit5/releases)
- [Commits](https://github.com/junit-team/junit5/compare/r5.6.0...r5.7.2)

---
updated-dependencies:
- dependency-name: org.junit.jupiter:junit-jupiter-params
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* Bump slf4j-log4j12 from 1.7.29 to 1.7.32

Bumps [slf4j-log4j12](https://github.com/qos-ch/slf4j) from 1.7.29 to 1.7.32.
- [Release notes](https://github.com/qos-ch/slf4j/releases)
- [Commits](https://github.com/qos-ch/slf4j/commits)

---
updated-dependencies:
- dependency-name: org.slf4j:slf4j-log4j12
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

* Bump junit from 4.12 to 4.13.2

Bumps [junit](https://github.com/junit-team/junit4) from 4.12 to 4.13.2.
- [Release notes](https://github.com/junit-team/junit4/releases)
- [Changelog](https://github.com/junit-team/junit4/blob/main/doc/ReleaseNotes4.12.md)
- [Commits](https://github.com/junit-team/junit4/compare/r4.12...r4.13.2)

---
updated-dependencies:
- dependency-name: junit:junit
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* Commit Code Coverage Badge

* AD-255 Added fix for null with NOT (#38)

* Added many tests

* Added TIMESTAMPADD and TIMESTAMPDIFF tests

* Fixed duplicate key

* Removed duplicate test, added note on disabled tests.

* Commit Code Coverage Badge

* AD-255 Added fix for null with NOT

* AD-224 Removed duplicate test

* Commit Code Coverage Badge

* Fixed checkstyle, added unit tests

* Commit Code Coverage Badge

* Fixed test name

* Commit Code Coverage Badge

* Commit Code Coverage Badge

Co-authored-by: mitchell-elholm <mitchell-elholm@users.noreply.github.com>

* Bump findsecbugs-plugin from 1.10.1 to 1.11.0

Bumps [findsecbugs-plugin](https://github.com/find-sec-bugs/find-sec-bugs) from 1.10.1 to 1.11.0.
- [Release notes](https://github.com/find-sec-bugs/find-sec-bugs/releases)
- [Changelog](https://github.com/find-sec-bugs/find-sec-bugs/blob/master/CHANGELOG.md)
- [Commits](https://github.com/find-sec-bugs/find-sec-bugs/compare/version-1.10.1...version-1.11.0)

---
updated-dependencies:
- dependency-name: com.h3xstream.findsecbugs:findsecbugs-plugin
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* Bump mockito-core from 2.1.0 to 3.11.2

Bumps [mockito-core](https://github.com/mockito/mockito) from 2.1.0 to 3.11.2.
- [Release notes](https://github.com/mockito/mockito/releases)
- [Commits](https://github.com/mockito/mockito/compare/v2.1.0...v3.11.2)

---
updated-dependencies:
- dependency-name: org.mockito:mockito-core
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

* Commit Code Coverage Badge

* Commit Code Coverage Badge

* Commit Code Coverage Badge

* Commit Code Coverage Badge

* Bump junit-jupiter-api from 5.6.0 to 5.7.2

Bumps [junit-jupiter-api](https://github.com/junit-team/junit5) from 5.6.0 to 5.7.2.
- [Release notes](https://github.com/junit-team/junit5/releases)
- [Commits](https://github.com/junit-team/junit5/compare/r5.6.0...r5.7.2)

---
updated-dependencies:
- dependency-name: org.junit.jupiter:junit-jupiter-api
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* [AD-295] Disable converting unquoted identifiers to uppercase (#41)

* [AD-295] Disable converting unquoted identifiers to uppercase

* Commit Code Coverage Badge

* Commit Code Coverage Badge

Co-authored-by: andiem-bq <andiem-bq@users.noreply.github.com>

* Commit Code Coverage Badge

* Bump junit-jupiter-engine from 5.6.0 to 5.7.2

Bumps [junit-jupiter-engine](https://github.com/junit-team/junit5) from 5.6.0 to 5.7.2.
- [Release notes](https://github.com/junit-team/junit5/releases)
- [Commits](https://github.com/junit-team/junit5/compare/r5.6.0...r5.7.2)

---
updated-dependencies:
- dependency-name: org.junit.jupiter:junit-jupiter-engine
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* [AD-276] Add handling for timestampdiff for year, month, quarter  (#39)

* [AD-276] Add handling for timestampdiff for year, month, quarter + add custom covertlet table

* Commit Code Coverage Badge

* [AD-276] PR improvements

* Commit Code Coverage Badge

Co-authored-by: andiem-bq <andiem-bq@users.noreply.github.com>

* [AD-279] Removing Mongo Client from QueryExecutor (#61)

* Merge changes from AWS repository (#92)

* [AD-231] Update build for version 0.3 beta
https://bitquill.atlassian.net/browse/AD-231

* AD-204 Fixed comparisons against NULL/undefined (#5)

### Summary

AD-204 Fixed comparisons against NULL/undefined

### Description

Comparison operators (<, >, !=) now return null in expressions where a field is compared to null.

Fixes three types of queries:

1. Queries with multiple conditions on a single field

eg. `SELECT * FROM table WHERE field <> 3 AND field <> 5`

2. Queries did not remove null values in not-equals filters. For example in the above query a row containing `field:null` would be included in the result set.

3. Queries involving CASE would incorrectly consider some comparisons to null to be true/false, instead of unknown.
eg. `SELECT CASE WHEN field < 2 THEN 'A' ELSE 'B' END FROM table` would result in 'A' if `field==null` instead of 'B'. The same is true if the field does not exist at all in the document.

### Related Issue

https://bitquill.atlassian.net/browse/AD-204

* Minot enhancements in the documentation

* Commit Code Coverage Badge

* [AD-231] Update build for version 1.0.0-beta.3
https://bitquill.atlassian.net/browse/AD-231

* [AD-192] Integrate existing aws repository content with our develop branch (#1)

### Summary

Integrate existing aws repository content with our develop branch.

### Description
- Integrates changes from the initial commit of the aws repository to our develop branch (adds a contributing readme, code of conduct readme, a notice file and a license file)
- There was already an Apache license file so added our header license file as a separate file in license-header.txt.  
- Removed task and github action steps related to sonarqube.

### Related Issue
https://bitquill.atlassian.net/browse/AD-190

* Added link to GitHub Releases

* not - [user]

* [AD-195] Implement CLI for the metadata persistence - Part 2 (#4)

### Summary

[AD-195](https://bitquill.atlassian.net/browse/AD-195) Implement CLI for the metadata persistence - Part 2

### Description

Add support for:

1. `-l` "list" - lists persisted schema
1. `-b` "list tables" - lists persisted table schemas
1. `-e` "export" - exports one or more table schema to JSON.
1. `-i` "import" - import table schema and update persisted schema.
1. `-o` "output-file" - outputs exported table schema to a file, instead of standard out.
1. Updated documentation.

### Related Issue

https://bitquill.atlassian.net/browse/AD-195

* [AD-236] Make use of sessions conditional on supported versions. (#8)

### Summary

[AD-236] Make use of sessions conditional on supported versions.

### Description

Do not use sessions if version is not 4.0 or greater.

### Related Issue

https://bitquill.atlassian.net/browse/AD-236

* [AD-189] Load work-around JAR files from branch in Janino forked repository. (#3)

### Summary

[AD-189] Load work-around JAR files from branch in Janino forked repository.

### Description

Reference work-around JAR file from forked Janino project where the source is set for the work-around and the JAR files are produced against that source.

### Related Issue

https://bitquill.atlassian.net/browse/AD-189

* Added script to automatically generate taco file.

* Commit Code Coverage Badge

* [AD-237] Document Schema JSON format (#10)

### Summary

[AD-237](https://bitquill.atlassian.net/browse/AD-237) Document Schema JSON format

### Description

- Document table schema in JSON format and how make modifications to flatten a virtual table.

### Related Issue

https://bitquill.atlassian.net/browse/AD-237

* [AD-203] Fix where clause (#7)

* AD-204 Fixed comparisons against NULL/undefined (#89)

* AD-215 Fixed comparisons for CASE

* AD-204 Fix for multi-field conditions

* Commit Code Coverage Badge

* Commit Code Coverage Badge

* AD-204 Added test in query mapping service

* Commit Code Coverage Badge

* AD-204 Added check for cast, removed list copying

* Commit Code Coverage Badge

Co-authored-by: mitchell-elholm <mitchell-elholm@users.noreply.github.com>

* AD-203 Initial commit with unit tests

* AD-203 Used RexToMongoTranslator

* AD-203 Added fix for quotes, and Long parsing, also fixed unit tests

* AD-203 Added test for nested OR in WHERE clause

* AD-203 Changed $literal to $numberLong

* AD-203 Format and fixed comment

* Commit Code Coverage Badge

* AD-203 Removed $literal

* Commit Code Coverage Badge

* AD-203 Added note on $literal, fixed some types

* Commit Code Coverage Badge

* AD-203 Changed to use placeholder constant, added DECIMAL to types

* Commit Code Coverage Badge

Co-authored-by: mitchell-elholm <mitchell-elholm@users.noreply.github.com>

* [AD-240] Allow "latest or none" option so we don't always generate a schema (#12)

### Summary

[AD-240](https://bitquill.atlassian.net/browse/AD-240) Allow "latest or none" option so we don't always generate a schema.

### Description

Add option to get latest or none - so we don' always generate a new schema.

### Related Issue

https://bitquill.atlassian.net/browse/AD-240

* [AD-223] Sql Functions Foundation (#9)

* AD-204 Fixed comparisons against NULL/undefined (#89)

* AD-215 Fixed comparisons for CASE

* AD-204 Fix for multi-field conditions

* Commit Code Coverage Badge

* Commit Code Coverage Badge

* AD-204 Added test in query mapping service

* Commit Code Coverage Badge

* AD-204 Added check for cast, removed list copying

* Commit Code Coverage Badge

Co-authored-by: mitchell-elholm <mitchell-elholm@users.noreply.github.com>

* AD-203 Initial commit with unit tests

* AD-203 Used RexToMongoTranslator

* AD-203 Added fix for quotes, and Long parsing, also fixed unit tests

* WIP - added dateadd and some datepart functions

* Add more tests

* AD-203 Added test for nested OR in WHERE clause

* AD-203 Changed $literal to $numberLong

* AD-203 Format and fixed comment

* Commit Code Coverage Badge

* [AD-223] Update taco file

* Commit Code Coverage Badge

* AD-203 Removed $literal

* Commit Code Coverage Badge

* Resolve conflicts with AD-203 + add unit tests

* Commit Code Coverage Badge

* AD-203 Added note on $literal, fixed some types

* Commit Code Coverage Badge

* Merge cganges from [AD-203]

* Commit Code Coverage Badge

* Merge changes from develop

* Commit Code Coverage Badge

Co-authored-by: mitchell-elholm <76969722+mitchell-elholm@users.noreply.github.com>
Co-authored-by: mitchell-elholm <mitchell-elholm@users.noreply.github.com>
Co-authored-by: andiem-bq <andiem-bq@users.noreply.github.com>

* Commit Code Coverage Badge

* AD-257 refactor DocumentDbStatementTest (#14)

* AD-257 refactor DocumentDbStatementTest

* Commit Code Coverage Badge

Co-authored-by: mitchell-elholm <mitchell-elholm@users.noreply.github.com>

* AD-220 Add missing tests (#13)

* AD-220 Initial commit, added tests for IN, NOT IN, CAST, OFFSET, NATURAL JOIN, CROSS JOIN

* AD-220 Re-worked cast tests, refactored DocumentDbStatementTest

* Spotbugs

* Commit Code Coverage Badge

* AD-220 Added refactor from Develop

* Commit Code Coverage Badge

* AD-220 Added documentation

* Commit Code Coverage Badge

* AD-220 Documentation space

* Commit Code Coverage Badge

Co-authored-by: mitchell-elholm <mitchell-elholm@users.noreply.github.com>

* [AD-193] Documentation and Demo for metadata persistence with DocumentDB (#15)

### Summary

[AD-193](https://bitquill.atlassian.net/browse/AD-193) Documentation and Demo for metadata persistence with DocumentDB

### Description

- Fixes an issue with importing schema for a new (previously non-existent) schema.
- Fixes some small documentation issues.

### Related Issue

https://bitquill.atlassian.net/browse/AD-193

* AD-241 Error when querying >20000 rows (#17)

* AD-241 Added client to result set

* Commit Code Coverage Badge

* AD-241 Added unit test, fixed get/setFetchSize

* AD-241 Checkstyle

* Removed mock overrides

* Fixed test class

* Fixed Statement test

* Commit Code Coverage Badge

* Adjusted batch/fetchSize

* Checkstyle

* Commit Code Coverage Badge

Co-authored-by: mitchell-elholm <mitchell-elholm@users.noreply.github.com>

* [AD-214] Query cancellation (#16)

* WIP - initial commit

* [AD-214] Implement query cancellation for statement and prepared statement

* Remove duplicate calls to verifyOpen()

* Commit Code Coverage Badge

* Fix spacing in build.gradle

* Commit Code Coverage Badge

* Code review improvements

* Commit Code Coverage Badge

* Resolve merge conflicts from develop

* Commit Code Coverage Badge

Co-authored-by: andiem-bq <andiem-bq@users.noreply.github.com>

* [AD-261] Update version to v1.0.0-beta.4 (#18)

* [AD-261] Update version to v1.0.0-beta.4

* Commit Code Coverage Badge

Co-authored-by: andiem-bq <andiem-bq@users.noreply.github.com>

* [AD-261] Update Tableau Connector name (#19)

* [AD-261] Update version to v1.0.0-beta.4

* [AD-261] Update names and links in taco file

* Commit Code Coverage Badge

Co-authored-by: andiem-bq <andiem-bq@users.noreply.github.com>

* [AD-226] Add additional extract tests (#20)

* Add additional tests for datepart functions

* Add ':' in needsQuote check

* Add tests for case

* Add test descriptions

* Commit Code Coverage Badge

Co-authored-by: andiem-bq <andiem-bq@users.noreply.github.com>

* Commit Code Coverage Badge

* [AD-227] Added support for CURRENT_TIMESTAMP, CURRENT_DATE, QUARTER, DAYNAME, and MONTHNAME. (#21)

### Summary

[AD-227] Added support for CURRENT_TIMESTAMP, CURRENT_DATE, QUARTER, DAYNAME, and MONTHNAME.

### Description

- CURRENT_TIMESTAMP/NOW, 
- CURRENT_DATE/TODAY, 
- QUARTER, 
- DAYNAME, and 
- MONTHNAME.
- Date/Datetime operators `+` and `-` (in Tableau)
- Small improvement in handling BsonTimestamp conversions.

### Related Issue

https://bitquill.atlassian.net/browse/AD-227

* [AD-227] Added support for CURRENT_TIMESTAMP, CURRENT_DATE, QUARTER, DAYNAME, MONTHNAME.
https://bitquill.atlassian.net/browse/AD-227

* Commit Code Coverage Badge

* [AD-227] Correct failing test.
https://bitquill.atlassian.net/browse/AD-227

* [AD-227] Improvements from review.
https://bitquill.atlassian.net/browse/AD-227

* Commit Code Coverage Badge

* [AD-227] Update datediff in dialect.tdd

* Commit Code Coverage Badge

* [AD-227] Add dialect entry for datetime - datetime

* Commit Code Coverage Badge

* [AD-227] Add support for NULL as parameter to DAYNAME, MONTHNAME, and QUARTER.
https://bitquill.atlassian.net/browse/AD-227

* Commit Code Coverage Badge

* [AD-227] Refactored MONTHNAME, DAYNAME and QUARTER to use String.format() to create Mongo aggregate commands.
https://bitquill.atlassian.net/browse/AD-227

* Commit Code Coverage Badge

Co-authored-by: birschick-bq <birschick-bq@users.noreply.github.com>
Co-authored-by: Andie Montoya <andiem@bitquilltech.com>
Co-authored-by: andiem-bq <andiem-bq@users.noreply.github.com>

* AD-194 Added fix for Tableau Issue (#22)

* AD-194 Added fix for Tableau Issue

* Commit Code Coverage Badge

Co-authored-by: mitchell-elholm <mitchell-elholm@users.noreply.github.com>

* [AD-268] Handle case when sub-document (virtual table) contains '_id' as field. (#24)

### Summary

[AD-268] Handle case when sub-document (virtual table) contains '_id' as field.

### Description

Now correctly sending the `collectionName` instead of `path`.

### Related Issue

https://bitquill.atlassian.net/browse/AD-268

* [AD-268] Handle case when sub-document (virtual table) contains '_id' as field.
https://bitquill.atlassian.net/browse/AD-268

* Commit Code Coverage Badge

Co-authored-by: birschick-bq <birschick-bq@users.noreply.github.com>

* AD-251 Added support for IS [NOT] NULL (#23)

* AD-251 Added support for IS [NOT] NULL

* Removed unused import

* Checkstyle

* Commit Code Coverage Badge

* AD-251 Added mapping test, simplified null handler

* Commit Code Coverage Badge

Co-authored-by: mitchell-elholm <mitchell-elholm@users.noreply.github.com>

* [AD-269] Handle case when first array is empty followed by non-empty array of object. (#25)

### Summary

[AD-269] Handle case when first array is empty followed by non-empty array of object.

### Description

Handle the case when a field is first encountered as an empty array, followed by a non-empty array of object.

### Related Issue

https://bitquill.atlassian.net/browse/AD-269

* [AD-269] Handle case when first array is empty followed by non-empty array of object.
https://bitquill.atlassian.net/browse/AD-269

* Commit Code Coverage Badge

Co-authored-by: birschick-bq <birschick-bq@users.noreply.github.com>

* [AD-262] Additional tests for CASE (#26)

* [AD-262] Add additional tests for CASE

* [AD-262] Add additional tests for CASE

* [AD-262] Add additional tests for CASE

* Remove extra space

* Remove extra space

* Commit Code Coverage Badge

* Add separate test for CASE with NOT + add setting to treat string literals of different lengths as varchar

* Commit Code Coverage Badge

Co-authored-by: andiem-bq <andiem-bq@users.noreply.github.com>

* [AD-274] Fix handling of checking for missing database name in connection string. (#29)

### Summary

[AD-274] Fix handling of checking for missing database name in connection string.

### Description

- Fix handling of checking for missing database name in connection string.

### Related Issue

https://bitquill.atlassian.net/browse/AD-274

* [AD-274] Fix handling of checking for missing database name in connection string.
https://bitquill.atlassian.net/browse/AD-274

* Commit Code Coverage Badge

Co-authored-by: birschick-bq <birschick-bq@users.noreply.github.com>

* Commit Code Coverage Badge

* AD-225 Added substring (#28)

* AD-225 Added substring

* Ad-225 Checkstyle

* Commit Code Coverage Badge

* Fixed merge

* Moved old method to make changes clearer

* Commit Code Coverage Badge

* $substr -> $substrCP

* Fixed mapping test

* Commit Code Coverage Badge

* Added more tests with literals

* Commit Code Coverage Badge

* Fixed substring support for expressions, added tests, added tableau support for MID

* Commit Code Coverage Badge

* Removed use of standard operator

* Commit Code Coverage Badge

Co-authored-by: mitchell-elholm <mitchell-elholm@users.noreply.github.com>

* [AD-213] Implement a automated identifier truncation when they exceed the maximum (128) length. (#30)

### Summary

[AD-213] Implement a automated identifier truncation when they exceed the maximum (128) length.

### Description

- Truncate generated identifiers to ensure it doesn't exceed maximum (128) length.
- Attempt to keep "base" table name in truncated identifiers
- Attempt to keep as much of context as possible.

### Related Issue

https://bitquill.atlassian.net/browse/AD-213

* [AD-213] Implement a automated identifier truncation when they exceed the maximum (128) length.
https://bitquill.atlassian.net/browse/AD-213

* Commit Code Coverage Badge

* [AD-213] Update documentation.
https://bitquill.atlassian.net/browse/AD-213

* Commit Code Coverage Badge

* [AD-213] Review changes. Refactor DocumentDbTableSchemaGenerator.java with helper class. Improve test understanding.
https://bitquill.atlassian.net/browse/AD-213

* [AD-213] Change test so not so memory challenging.
https://bitquill.atlassian.net/browse/AD-213

* Commit Code Coverage Badge

* [AD-213] Documentation updates from code review.
https://bitquill.atlassian.net/browse/AD-213

* Commit Code Coverage Badge

Co-authored-by: birschick-bq <birschick-bq@users.noreply.github.com>

* [AD-278] Create MongoClient only when needed. Close client connection when closing the Enumerable. (#32)

### Summary

[AD-278] Create MongoClient only when needed. Close client connection when closing the Enumerable.

### Description

- Create `MongoClient` (`client`) only when needed. 
- Close `client` connection when closing the Enumerable.

### Related Issue

https://bitquill.atlassian.net/browse/AD-278

* [AD-278] Create MongoClient only when needed. Close client connection when closing the Enumerable.
https://bitquill.atlassian.net/browse/AD-278

* Commit Code Coverage Badge

Co-authored-by: birschick-bq <birschick-bq@users.noreply.github.com>

* [AD-254] Implement FLOOR for DATETIME types. (#31)

### Summary

[AD-254] Implement FLOOR for DATETIME types.

### Description

Implements `FLOOR (<datetime> TO <timeunit>)`
- Uses equivalent of `dateadd(<timeunit>,datediff(<timeunit>,0,@datetime),0)` (https://stackoverflow.com/questions/85373/floor-a-date-in-sql-server/85379#85379)
- Except for YEAR and MONTH which use `$dateToString` and `$dateFromString`
- Implements an emulated version of integer division using `$mod`.

### Related Issue

https://bitquill.atlassian.net/browse/AD-254

* [AD-254] Implement FLOOR for DATETIME types.
https://bitquill.atlassian.net/browse/AD-254

* Commit Code Coverage Badge

* [AD-254] Added support for ISOYEAR.
https://bitquill.atlassian.net/browse/AD-254

* [AD-254] Removed support for ISOYEAR.
https://bitquill.atlassian.net/browse/AD-254

* Commit Code Coverage Badge

* [AD-254] Slight refactor for easier review.
https://bitquill.atlassian.net/browse/AD-254

* Commit Code Coverage Badge

* [AD-254] Implement FLOOR(... TO WEEK). Split query/DocumentDbQueryMappingServiceTest.java
https://bitquill.atlassian.net/browse/AD-254

* Commit Code Coverage Badge

* [AD-254] Minor refactor.
https://bitquill.atlassian.net/browse/AD-254

* Commit Code Coverage Badge

* [AD-254] Updated Tableau dialect file.
https://bitquill.atlassian.net/browse/AD-254

* Commit Code Coverage Badge

* [AD-254] Improvements from code review.
https://bitquill.atlassian.net/browse/AD-254

* [AD-254] Implement QUARTER time unit for FLOOR.
https://bitquill.atlassian.net/browse/AD-254

* Commit Code Coverage Badge

* [AD-254] Added support for FLOOR aggregation in Tableau.
https://bitquill.atlassian.net/browse/AD-254

* Commit Code Coverage Badge

* Commit Code Coverage Badge

Co-authored-by: birschick-bq <birschick-bq@users.noreply.github.com>

* Update beta version from 4 to 5 (#33)

* Update beta version from 4 to 5

* Commit Code Coverage Badge

Co-authored-by: andiem-bq <andiem-bq@users.noreply.github.com>

* Commit Code Coverage Badge

Co-authored-by: Bruce Irschick <brucei@bitquilltech.com>
Co-authored-by: Alexey Temnikov <alexeyt@bitquilltech.com>
Co-authored-by: alexey-temnikov <alexey-temnikov@users.noreply.github.com>
Co-authored-by: mitchell-elholm <76969722+mitchell-elholm@users.noreply.github.com>
Co-authored-by: mitchell-elholm <mitchell-elholm@users.noreply.github.com>
Co-authored-by: andiem-bq <andiem-bq@users.noreply.github.com>
Co-authored-by: birschick-bq <birschick-bq@users.noreply.github.com>

* Merge changes from AWS repository (07/21/21) (#93)

* [AD-231] Update build for version 0.3 beta
https://bitquill.atlassian.net/browse/AD-231

* AD-204 Fixed comparisons against NULL/undefined (#5)

### Summary

AD-204 Fixed comparisons against NULL/undefined

### Description

Comparison operators (<, >, !=) now return null in expressions where a field is compared to null.

Fixes three types of queries:

1. Queries with multiple conditions on a single field

eg. `SELECT * FROM table WHERE field <> 3 AND field <> 5`

2. Queries did not remove null values in not-equals filters. For example in the above query a row containing `field:null` would be included in the result set.

3. Queries involving CASE would incorrectly consider some comparisons to null to be true/false, instead of unknown.
eg. `SELECT CASE WHEN field < 2 THEN 'A' ELSE 'B' END FROM table` would result in 'A' if `field==null` instead of 'B'. The same is true if the field does not exist at all in the document.

### Related Issue

https://bitquill.atlassian.net/browse/AD-204

* Minot enhancements in the documentation

* Commit Code Coverage Badge

* [AD-231] Update build for version 1.0.0-beta.3
https://bitquill.atlassian.net/browse/AD-231

* [AD-192] Integrate existing aws repository content with our develop branch (#1)

### Summary

Integrate existing aws repository content with our develop branch.

### Description
- Integrates changes from the initial commit of the aws repository to our develop branch (adds a contributing readme, code of conduct readme, a notice file and a license file)
- There was already an Apache license file so added our header license file as a separate file in license-header.txt.  
- Removed task and github action steps related to sonarqube.

### Related Issue
https://bitquill.atlassian.net/browse/AD-190

* Added link to GitHub Releases

* not - [user]

* [AD-195] Implement CLI for the metadata persistence - Part 2 (#4)

### Summary

[AD-195](https://bitquill.atlassian.net/browse/AD-195) Implement CLI for the metadata persistence - Part 2

### Description

Add support for:

1. `-l` "list" - lists persisted schema
1. `-b` "list tables" - lists persisted table schemas
1. `-e` "export" - exports one or more table schema to JSON.
1. `-i` "import" - import table schema and update persisted schema.
1. `-o` "output-file" - outputs exported table schema to a file, instead of standard out.
1. Updated documentation.

### Related Issue

https://bitquill.atlassian.net/browse/AD-195

* [AD-236] Make use of sessions conditional on supported versions. (#8)

### Summary

[AD-236] Make use of sessions conditional on supported versions.

### Description

Do not use sessions if version is not 4.0 or greater.

### Related Issue

https://bitquill.atlassian.net/browse/AD-236

* [AD-189] Load work-around JAR files from branch in Janino forked repository. (#3)

### Summary

[AD-189] Load work-around JAR files from branch in Janino forked repository.

### Description

Reference work-around JAR file from forked Janino project where the source is set for the work-around and the JAR files are produced against that source.

### Related Issue

https://bitquill.atlassian.net/browse/AD-189

* Added script to automatically generate taco file.

* Commit Code Coverage Badge

* [AD-237] Document Schema JSON format (#10)

### Summary

[AD-237](https://bitquill.atlassian.net/browse/AD-237) Document Schema JSON format

### Description

- Document table schema in JSON format and how make modifications to flatten a virtual table.

### Related Issue

https://bitquill.atlassian.net/browse/AD-237

* [AD-203] Fix where clause (#7)

* AD-204 Fixed comparisons against NULL/undefined (#89)

* AD-215 Fixed comparisons for CASE

* AD-204 Fix for multi-field conditions

* Commit Code Coverage Badge

* Commit Code Coverage Badge

* AD-204 Added test in query mapping service

* Commit Code Coverage Badge

* AD-204 Added check for cast, removed list copying

* Commit Code Coverage Badge

Co-authored-by: mitchell-elholm <mitchell-elholm@users.noreply.github.com>

* AD-203 Initial commit with unit tests

* AD-203 Used RexToMongoTranslator

* AD-203 Added fix for quotes, and Long parsing, also fixed unit tests

* AD-203 Added test for nested OR in WHERE clause

* AD-203 Changed $literal to $numberLong

* AD-203 Format and fixed comment

* Commit Code Coverage Badge

* AD-203 Removed $literal

* Commit Code Coverage Badge

* AD-203 Added note on $literal, fixed some types

* Commit Code Coverage Badge

* AD-203 Changed to use placeholder constant, added DECIMAL to types

* Commit Code Coverage Badge

Co-authored-by: mitchell-elholm <mitchell-elholm@users.noreply.github.com>

* [AD-240] Allow "latest or none" option so we don't always generate a schema (#12)

### Summary

[AD-240](https://bitquill.atlassian.net/browse/AD-240) Allow "latest or none" option so we don't always generate a schema.

### Description

Add option to get latest or none - so we don' always generate a new schema.

### Related Issue

https://bitquill.atlassian.net/browse/AD-240

* [AD-223] Sql Functions Foundation (#9)

* AD-204 Fixed comparisons against NULL/undefined (#89)

* AD-215 Fixed comparisons for CASE

* AD-204 Fix for multi-field conditions

* Commit Code Coverage Badge

* Commit Code Coverage Badge

* AD-204 Added test in query mapping service

* Commit Code Coverage Badge

* AD-204 Added check for cast, removed list copying

* Commit Code Coverage Badge

Co-authored-by: mitchell-elholm <mitchell-elholm@users.noreply.github.com>

* AD-203 Initial commit with unit tests

* AD-203 Used RexToMongoTranslator

* AD-203 Added fix for quotes, and Long parsing, also fixed unit tests

* WIP - added dateadd and some datepart functions

* Add more tests

* AD-203 Added test for nested OR in WHERE clause

* AD-203 Changed $literal to $numberLong

* AD-203 Format and fixed comment

* Commit Code Coverage Badge

* [AD-223] Update taco file

* Commit Code Coverage Badge

* AD-203 Removed $literal

* Commit Code Coverage Badge

* Resolve conflicts with AD-203 + add unit tests

* Commit Code Coverage Badge

* AD-203 Added note on $literal, fixed some types

* Commit Code Coverage Badge

* Merge cganges from [AD-203]

* Commit Code Coverage Badge

* Merge changes from develop

* Commit Code Coverage Badge

Co-authored-by: mitchell-elholm <76969722+mitchell-elholm@users.noreply.github.com>
Co-authored-by: mitchell-elholm <mitchell-elholm@users.noreply.github.com>
Co-authored-by: andiem-bq <andiem-bq@users.noreply.github.com>

* Commit Code Coverage Badge

* AD-257 refactor DocumentDbStatementTest (#14)

* AD-257 refactor DocumentDbStatementTest

* Commit Code Coverage Badge

Co-authored-by: mitchell-elholm <mitchell-elholm@users.noreply.github.com>

* AD-220 Add missing tests (#13)

* AD-220 Initial commit, added tests for IN, NOT IN, CAST, OFFSET, NATURAL JOIN, CROSS JOIN

* AD-220 Re-worked cast tests, refactored DocumentDbStatementTest

* Spotbugs

* Commit Code Coverage Badge

* AD-220 Added refactor from Develop

* Commit Code Coverage Badge

* AD-220 Added documentation

* Commit Code Coverage Badge

* AD-220 Documentation space

* Commit Code Coverage Badge

Co-authored-by: mitchell-elholm <mitchell-elholm@users.noreply.github.com>

* [AD-193] Documentation and Demo for metadata persistence with DocumentDB (#15)

### Summary

[AD-193](https://bitquill.atlassian.net/browse/AD-193) Documentation and Demo for metadata persistence with DocumentDB

### Description

- Fixes an issue with importing schema for a new (previously non-existent) schema.
- Fixes some small documentation issues.

### Related Issue

https://bitquill.atlassian.net/browse/AD-193

* AD-241 Error when querying >20000 rows (#17)

* AD-241 Added client to result set

* Commit Code Coverage Badge

* AD-241 Added unit test, fixed get/setFetchSize

* AD-241 Checkstyle

* Removed mock overrides

* Fixed test class

* Fixed Statement test

* Commit Code Coverage Badge

* Adjusted batch/fetchSize

* Checkstyle

* Commit Code Coverage Badge

Co-authored-by: mitchell-elholm <mitchell-elholm@users.noreply.github.com>

* [AD-214] Query cancellation (#16)

* WIP - initial commit

* [AD-214] Implement query cancellation for statement and prepared statement

* Remove duplicate calls to verifyOpen()

* Commit Code Coverage Badge

* Fix spacing in build.gradle

* Commit Code Coverage Badge

* Code review improvements

* Commit Code Coverage Badge

* Resolve merge conflicts from develop

* Commit Code Coverage Badge

Co-authored-by: andiem-bq <andiem-bq@users.noreply.github.com>

* [AD-261] Update version to v1.0.0-beta.4 (#18)

* [AD-261] Update version to v1.0.0-beta.4

* Commit Code Coverage Badge

Co-authored-by: andiem-bq <andiem-bq@users.noreply.github.com>

* [AD-261] Update Tableau Connector name (#19)

* [AD-261] Update version to v1.0.0-beta.4

* [AD-261] Update names and links in taco file

* Commit Code Coverage Badge

Co-authored-by: andiem-bq <andiem-bq@users.noreply.github.com>

* [AD-226] Add additional extract tests (#20)

* Add additional tests for datepart functions

* Add ':' in needsQuote check

* Add tests for case

* Add test descriptions

* Commit Code Coverage Badge

Co-authored-by: andiem-bq <andiem-bq@users.noreply.github.com>

* [AD-227] Added support for CURRENT_TIMESTAMP, CURRENT_DATE, QUARTER, DAYNAME, and MONTHNAME. (#21)

### Summary

[AD-227] Added support for CURRENT_TIMESTAMP, CURRENT_DATE, QUARTER, DAYNAME, and MONTHNAME.

### Description

- CURRENT_TIMESTAMP/NOW, 
- CURRENT_DATE/TODAY, 
- QUARTER, 
- DAYNAME, and 
- MONTHNAME.
- Date/Datetime operators `+` and `-` (in Tableau)
- Small improvement in handling BsonTimestamp conversions.

### Related Issue

https://bitquill.atlassian.net/browse/AD-227

* [AD-227] Added support for CURRENT_TIMESTAMP, CURRENT_DATE, QUARTER, DAYNAME, MONTHNAME.
https://bitquill.atlassian.net/browse/AD-227

* Commit Code Coverage Badge

* [AD-227] Correct failing test.
https://bitquill.atlassian.net/browse/AD-227

* [AD-227] Improvements from review.
https://bitquill.atlassian.net/browse/AD-227

* Commit Code Coverage Badge

* [AD-227] Update datediff in dialect.tdd

* Commit Code Coverage Badge

* [AD-227] Add dialect entry for datetime - datetime

* Commit Code Coverage Badge

* [AD-227] Add support for NULL as parameter to DAYNAME, MONTHNAME, and QUARTER.
https://bitquill.atlassian.net/browse/AD-227

* Commit Code Coverage Badge

* [AD-227] Refactored MONTHNAME, DAYNAME and QUARTER to use String.format() to create Mongo aggregate commands.
https://bitquill.atlassian.net/browse/AD-227

* Commit Code Coverage Badge

Co-authored-by: birschick-bq <birschick-bq@users.noreply.github.com>
Co-authored-by: Andie Montoya <andiem@bitquilltech.com>
Co-authored-by: andiem-bq <andiem-bq@users.noreply.github.com>

* AD-194 Added fix for Tableau Issue (#22)

* AD-194 Added fix for Tableau Issue

* Commit Code Coverage Badge

Co-authored-by: mitchell-elholm <mitchell-elholm@users.noreply.github.com>

* [AD-268] Handle case when sub-document (virtual table) contains '_id' as field. (#24)

### Summary

[AD-268] Handle case when sub-document (virtual table) contains '_id' as field.

### Description

Now correctly sending the `collectionName` instead of `path`.

### Related Issue

https://bitquill.atlassian.net/browse/AD-268

* [AD-268] Handle case when sub-document (virtual table) contains '_id' as field.
https://bitquill.atlassian.net/browse/AD-268

* Commit Code Coverage Badge

Co-authored-by: birschick-bq <birschick-bq@users.noreply.github.com>

* AD-251 Added support for IS [NOT] NULL (#23)

* AD-251 Added support for IS [NOT] NULL

* Removed unused import

* Checkstyle

* Commit Code Coverage Badge

* AD-251 Added mapping test, simplified null handler

* Commit Code Coverage Badge

Co-authored-by: mitchell-elholm <mitchell-elholm@users.noreply.github.com>

* [AD-269] Handle case when first array is empty followed by non-empty array of object. (#25)

### Summary

[AD-269] Handle case when first array is empty followed by non-empty array of object.

### Description

Handle the case when a field is first encountered as an empty array, followed by a non-empty array of object.

### Related Issue

https://bitquill.atlassian.net/browse/AD-269

* [AD-269] Handle case when first array is empty followed by non-empty array of object.
https://bitquill.atlassian.net/browse/AD-269

* Commit Code Coverage Badge

Co-authored-by: birschick-bq <birschick-bq@users.noreply.github.com>

* [AD-262] Additional tests for CASE (#26)

* [AD-262] Add additional tests for CASE

* [AD-262] Add additional tests for CASE

* [AD-262] Add additional tests for CASE

* Remove extra space

* Remove extra space

* Commit Code Coverage Badge

* Add separate test for CASE with NOT + add setting to treat string literals of different lengths as varchar

* Commit Code Coverage Badge

Co-authored-by: andiem-bq <andiem-bq@users.noreply.github.com>

* [AD-274] Fix handling of checking for missing database name in connection string. (#29)

### Summary

[AD-274] Fix handling of checking for missing database name in connection string.

### Description

- Fix handling of checking for missing database name in connection string.

### Related Issue

https://bitquill.atlassian.net/browse/AD-274

* [AD-274] Fix handling of checking for missing database name in connection string.
https://bitquill.atlassian.net/browse/AD-274

* Commit Code Coverage Badge

Co-authored-by: birschick-bq <birschick-bq@users.noreply.github.com>

* AD-225 Added substring (#28)

* AD-225 Added substring

* Ad-225 Checkstyle

* Commit Code Coverage Badge

* Fixed merge

* Moved old method to make changes clearer

* Commit Code Coverage Badge

* $substr -> $substrCP

* Fixed mapping test

* Commit Code Coverage Badge

* Added more tests with literals

* Commit Code Coverage Badge

* Fixed substring support for expressions, added tests, added tableau support for MID

* Commit Code Coverage Badge

* Removed use of standard operator

* Commit Code Coverage Badge

Co-authored-by: mitchell-elholm <mitchell-elholm@users.noreply.github.com>

* [AD-213] Implement a automated identifier truncation when they exceed the maximum (128) length. (#30)

### Summary

[AD-213] Implement a automated identifier truncation when they exceed the maximum (128) length.

### Description

- Truncate generated identifiers to ensure it doesn't exceed maximum (128) length.
- Attempt to keep "base" table name in truncated identifiers
- Attempt to keep as much of context as possible.

### Related Issue

https://bitquill.atlassian.net/browse/AD-213

* [AD-213] Implement a automated identifier truncation when they exceed the maximum (128) length.
https://bitquill.atlassian.net/browse/AD-213

* Commit Code Coverage Badge

* [AD-213] Update documentation.
https://bitquill.atlassian.net/browse/AD-213

* Commit Code Coverage Badge

* [AD-213] Review changes. Refactor DocumentDbTableSchemaGenerator.java with helper class. Improve test understanding.
https://bitquill.atlassian.net/browse/AD-213

* [AD-213] Change test so not so memory challenging.
https://bitquill.atlassian.net/browse/AD-213

* Commit Code Coverage Badge

* [AD-213] Documentation updates from code review.
https://bitquill.atlassian.net/browse/AD-213

* Commit Code Coverage Badge

Co-authored-by: birschick-bq <birschick-bq@users.noreply.github.com>

* [AD-278] Create MongoClient only when needed. Close client connection when closing the Enumerable. (#32)

### Summary

[AD-278] Create MongoClient only when needed. Close client connection when closing the Enumerable.

### Description

- Create `MongoClient` (`client`) only when needed. 
- Close `client` connection when closing the Enumerable.

### Related Issue

https://bitquill.atlassian.net/browse/AD-278

* [AD-278] Create MongoClient only when needed. Close client connection when closing the Enumerable.
https://bitquill.atlassian.net/browse/AD-278

* Commit Code Coverage Badge

Co-authored-by: birschick-bq <birschick-bq@users.noreply.github.com>

* [AD-254] Implement FLOOR for DATETIME types. (#31)

### Summary

[AD-254] Implement FLOOR for DATETIME types.

### Description

Implements `FLOOR (<datetime> TO <timeunit>)`
- Uses equivalent of `dateadd(<timeunit>,datediff(<timeunit>,0,@datetime),0)` (https://stackoverflow.com/questions/85373/floor-a-date-in-sql-server/85379#85379)
- Except for YEAR and MONTH which use `$dateToString` and `$dateFromString`
- Implements an emulated version of integer division using `$mod`.

### Related Issue

https://bitquill.atlassian.net/browse/AD-254

* [AD-254] Implement FLOOR for DATETIME types.
https://bitquill.atlassian.net/browse/AD-254

* Commit Code Coverage Badge

* [AD-254] Added support for ISOYEAR.
https://bitquill.atlassian.net/browse/AD-254

* [AD-254] Removed support for ISOYEAR.
https://bitquill.atlassian.net/browse/AD-254

* Commit Code Coverage Badge

* [AD-254] Slight refactor for easier review.
https://bitquill.atlassian.net/browse/AD-254

* Commit Code Coverage Badge

* [AD-254] Implement FLOOR(... TO WEEK). Split query/DocumentDbQueryMappingServiceTest.java
https://bitquill.atlassian.net/browse/AD-254

* Commit Code Coverage Badge

* [AD-254] Minor refactor.
https://bitquill.atlassian.net/browse/AD-254

* Commit Code Coverage Badge

* [AD-254] Updated Tableau dialect file.
https://bitquill.atlassian.net/browse/AD-254

* Commit Code Coverage Badge

* [AD-254] Improvements from code review.
https://bitquill.atlassian.net/browse/AD-254

* [AD-254] Implement QUARTER time unit for FLOOR.
https://bitquill.atlassian.net/browse/AD-254

* Commit Code Coverage Badge

* [AD-254] Added support for FLOOR aggregation in Tableau.
https://bitquill.atlassian.net/browse/AD-254

* Commit Code Coverage Badge

* Commit Code Coverage Badge

Co-authored-by: birschick-bq <birschick-bq@users.noreply.github.com>

* Update beta version from 4 to 5 (#33)

* Update beta version from 4 to 5

* Commit Code Coverage Badge

Co-authored-by: andiem-bq <andiem-bq@users.noreply.github.com>

* Adding shadowing for com.google.common to resolve library conflicts on older Tableau versions (2020.4.6)

* Commit Code Coverage Badge

* Update beta version to beta.6 (#36)

* Update beta version

* Commit Code Coverage Badge

Co-authored-by: andiem-bq <andiem-bq@users.noreply.github.com>

* Commit Code Coverage Badge

Co-authored-by: Bruce Irschick <brucei@bitquilltech.com>
Co-authored-by: Alexey Temnikov <alexeyt@bitquilltech.com>
Co-authored-by: alexey-temnikov <alexey-temnikov@users.noreply.github.com>
Co-authored-by: mitchell-elholm <76969722+mitchell-elholm@users.noreply.github.com>
Co-authored-by: mitchell-elholm <mitchell-elholm@users.noreply.github.com>
Co-authored-by: andiem-bq <andiem-bq@users.noreply.github.com>
Co-authored-by: birschick-bq <birschick-bq@users.noreply.github.com>

* Removing Mongo Client from QueryExecutor

Driver was open a connection everytime that a query was running and the Connection opened on DocumentDbConnection was not being reused.
Changes were made to remove the extra connection and reuse the connection already opened on DocumentDbConnection.

* Commit Code Coverage Badge

* Resolve merge conflict

* Commit Code Coverage Badge

Co-authored-by: Bruce Irschick <brucei@bitquilltech.com>
Co-authored-by: Alexey Temnikov <alexeyt@bitquilltech.com>
Co-authored-by: alexey-temnikov <alexey-temnikov@users.noreply.github.com>
Co-authored-by: mitchell-elholm <76969722+mitchell-elholm@users.noreply.github.com>
Co-authored-by: mitchell-elholm <mitchell-elholm@users.noreply.github.com>
Co-authored-by: andiem-bq <andiem-bq@users.noreply.github.com>
Co-authored-by: birschick-bq <birschick-bq@users.noreply.github.com>
Co-authored-by: affonsov <affonsov@bitquilltech.com>

* [AD-299] FIX: Test fails due to different line separate on Windows. (#62)

* [AD-299] Corrected test.
https://bitquill.atlassian.net/browse/AD-299

* Commit Code Coverage Badge

Co-authored-by: birschick-bq <birschick-bq@users.noreply.github.com>

* [AD-298] FIX: Concurrent tests runs fails because of shared schema. (#64)

### Summary

[AD-298] FIX: Concurrent tests runs fails because of shared schema.

### Description

- When using DocumentDB environment, create new database when starting and drop database when stopping.

### Related Issue

https://bitquill.atlassian.net/browse/AD-298

* [AD-298] FIX: Concurrent tests runs fails because of shared schema.
https://bitquill.atlassian.net/browse/AD-298
* When using DocumentDB environment, create new database when starting and drop database when stopping.

* Commit Code Coverage Badge

Co-authored-by: birschick-bq <birschick-bq@users.noreply.github.com>

* [AD-216] Investigate statement.setMaxRows() and see if this needs to be incorporated ins some way during query executi…
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants