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

fix: improved = and != with val null for HANA and Postgres #626

Merged
merged 3 commits into from
May 7, 2024

Conversation

BobdenOs
Copy link
Contributor

@BobdenOs BobdenOs commented May 6, 2024

In the case of Postgres all queries doing x = null where being translated to x is $1 which causes trouble as the operator name is is null unlike the SQLite operator which is just is.

The Postgres error was already resolved in the HANA Service, but the SQL Execution plan cache optimization caused trouble when comparing with LOB type columns. As HANA does not support compare operation on LOB columns. There for the only allowed operators on the LOB columns is is (not) null. Which also causes the issue that SQLite and Postgres are both allowed to execute null = (LOB), but for HANA this causes a SQL error. As null = ... always returns null it will always filter everything out. Therefor the HANA Service translate it into null = null as the behavior is the same and does not throw a SQL error.

@BobdenOs BobdenOs added the next release pr to be checked for next release label May 6, 2024
@johannes-vogel
Copy link
Contributor

makes sense to me

@BobdenOs BobdenOs merged commit cbcfe3b into main May 7, 2024
4 checks passed
@BobdenOs BobdenOs deleted the hana/fix-blob-compare branch May 7, 2024 12:00
@cap-bots cap-bots mentioned this pull request May 7, 2024
johannes-vogel added a commit that referenced this pull request May 8, 2024
🤖 I have created a release *beep* *boop*
---


<details><summary>db-service: 1.9.0</summary>

##
[1.9.0](db-service-v1.8.0...db-service-v1.9.0)
(2024-05-08)


### Added

* Add missing `func` cqn structures
([#629](#629))
([9d7539a](9d7539a))


### Fixed

* **`order by`:** reject non-fk traversals of own columns in order by
([#599](#599))
([3288d63](3288d63))
* Align all quote functions with @sap/cds-compiler
([#619](#619))
([42e9828](42e9828))
* assign artificial alias if selecting from anonymous subquery
([#608](#608))
([e1a7711](e1a7711))
* avoid spread operator
([#630](#630))
([a39fb65](a39fb65))
* flat update with arbitrary where clauses
([#598](#598))
([f108798](f108798))
* improved `=` and `!=` with val `null` for HANA and Postgres
([#626](#626))
([cbcfe3b](cbcfe3b))
* Improved placeholders and limit clause
([#567](#567))
([d5d5dbb](d5d5dbb))
* multiple result responses
([#602](#602))
([bf0bed4](bf0bed4))
* only consider persisted columns for simple operations
([#592](#592))
([6e31bda](6e31bda))


### Changed

* require `&gt;= sap/cds-compiler@4.9`
([f4d09e2](f4d09e2))
* require `&gt;= sap/cds@7.9.0`
([#627](#627))
([f4d09e2](f4d09e2))
</details>

<details><summary>sqlite: 1.7.0</summary>

##
[1.7.0](sqlite-v1.6.0...sqlite-v1.7.0)
(2024-05-08)


### Added

* select decimals as strings if cds.env.features.string_decimals
([#616](#616))
([39addbf](39addbf))


### Fixed

* Change `sql` property to `query` for errors
([#611](#611))
([585577a](585577a))
* **hana:** Remove encoding from hana-client streams
([#623](#623))
([fed8f6f](fed8f6f))
* Improved placeholders and limit clause
([#567](#567))
([d5d5dbb](d5d5dbb))
</details>

<details><summary>postgres: 1.8.0</summary>

##
[1.8.0](postgres-v1.7.0...postgres-v1.8.0)
(2024-05-08)


### Added

* select decimals as strings if cds.env.features.string_decimals
([#616](#616))
([39addbf](39addbf))


### Fixed

* Align all quote functions with @sap/cds-compiler
([#619](#619))
([42e9828](42e9828))
* Change `sql` property to `query` for errors
([#611](#611))
([585577a](585577a))
* Improved placeholders and limit clause
([#567](#567))
([d5d5dbb](d5d5dbb))
* Use json datatype for Postgres insert
([#582](#582))
([f1c9c89](f1c9c89))
</details>

<details><summary>hana: 0.3.0</summary>

##
[0.3.0](hana-v0.2.0...hana-v0.3.0)
(2024-05-08)


### Added

* select decimals as strings if cds.env.features.string_decimals
([#616](#616))
([39addbf](39addbf))


### Fixed

* Add multi `concat` function to `@cap-js/hana`
([#624](#624))
([df436fe](df436fe))
* Align all quote functions with @sap/cds-compiler
([#619](#619))
([42e9828](42e9828))
* Change `sql` property to `query` for errors
([#611](#611))
([585577a](585577a))
* Disconnect HANA tenant when deleted
([#589](#589))
([a107db9](a107db9))
* **hana:** Align not found behavior in @cap-js/hana
([#603](#603))
([54d2efb](54d2efb))
* **hana:** Allow custom fuzzy search cqn
([#620](#620))
([80383f0](80383f0))
* **hana:** Allow HANA to use != and == inside xpr combinations
([#607](#607))
([c578e9f](c578e9f))
* **hana:** Reference column alias in order by
([#615](#615))
([7cd3a26](7cd3a26))
* **hana:** Remove encoding from hana-client streams
([#623](#623))
([fed8f6f](fed8f6f))
* **hana:** Support associations with static values
([#604](#604))
([05babcf](05babcf))
* improved `=` and `!=` with val `null` for HANA and Postgres
([#626](#626))
([cbcfe3b](cbcfe3b))
* Improved placeholders and limit clause
([#567](#567))
([d5d5dbb](d5d5dbb))
* Use json datatype for Postgres insert
([#582](#582))
([f1c9c89](f1c9c89))
</details>

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

---------

Co-authored-by: Johannes Vogel <johannes.vogel@sap.com>
Co-authored-by: Patrice Bender <patrice.bender@sap.com>
@cap-bots cap-bots mentioned this pull request Jul 18, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
next release pr to be checked for next release
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants