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 context leaking to query cache #4229
Conversation
(cherry picked from commit 96edfec) # Conflicts: # Source/LinqToDB/Linq/Builder/ExpressionBuilder.QueryBuilder.cs # Tests/Base/TestBase.AssertQuery.cs
/azp run test-all |
No commit pushedDate could be found for PR 4229 in repo linq2db/linq2db |
/azp run test-all |
No commit pushedDate could be found for PR 4229 in repo linq2db/linq2db |
/azp run test-all |
Azure Pipelines successfully started running 1 pipeline(s). |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We already have ExpressionBuilder.DataContextParam
. Should we merge it with ExpressionConstants.DataContextParam
?
@igor-tkachev |
aa9e6ba
@sdanyliv review plz |
/azp run test-all |
Azure Pipelines successfully started running 1 pipeline(s). |
/azp run test-all |
Azure Pipelines successfully started running 1 pipeline(s). |
/azp run test-all |
Azure Pipelines successfully started running 1 pipeline(s). |
/azp run test-all |
Azure Pipelines successfully started running 1 pipeline(s). |
/azp run test-all |
Azure Pipelines successfully started running 1 pipeline(s). |
/azp run test-all |
Azure Pipelines successfully started running 1 pipeline(s). |
/azp run test-all |
Azure Pipelines successfully started running 1 pipeline(s). |
* [Windows / Access ACE (OLEDB/ODBC) x86] baselines * [Windows / SQLite (both providers)] baselines * [Windows / SQL CE] baselines * [Windows / SQLite (specialized tests)] baselines * [Windows / Access ACE (ODBC-only) x64] baselines * [Windows / SQLite (specialized tests)] baselines * [Windows / Access ACE (OLEDB/ODBC) x86] baselines * [Windows / SQL Server 2005] baselines * [Windows / SQL Server 2005] baselines * [Windows / SQL Server 2008] baselines * [Windows / SQL Server 2008] baselines * [Windows / SQL Server 2014] baselines * [Windows / SQL Server 2017] baselines * [Windows / SQL Server 2017] baselines * [Windows / SQL Server 2016] baselines * [Windows / SQL Server 2019] baselines * [Linux / DB2 LUW 11.5] baselines * [Linux / Firebird 3.0] baselines * [Linux / Informix 14.10] baselines * [Windows / SQL Server EXTRAS] baselines * [Linux / Firebird 2.5] baselines * [Windows / SQL Server 2019] baselines * [Linux / Firebird 4.0] baselines * [Linux / MariaDB] baselines * [Windows / SQL Server 2022] baselines * [Linux / MySQL 8 (both providers)] baselines * [Linux / MySQL 5.5 (both providers)] baselines * [Linux / PostgreSQL 10] baselines * [Linux / Oracle 11g XE] baselines * [Linux / ClickHouse] baselines * [Windows / SQL Server EXTRAS] baselines * [Linux / PostgreSQL 11] baselines * [Linux / Oracle 21c] baselines * [Linux / PostgreSQL 14] baselines * [Linux / PostgreSQL 13] baselines * [Linux / PostgreSQL 12] baselines * [Linux / Oracle 12c] baselines * [Linux / PostgreSQL 15] baselines * [Linux / Oracle 18c] baselines * [Linux / Oracle 23c] baselines * [Linux / Oracle 19c] baselines * [Linux / Sybase ASE 16] baselines * [Linux / SAP HANA 2] baselines * [Windows / SQL Server 2012] baselines * [Windows / SQL Server 2012] baselines * [Linux / SQL Server 2019] baselines * [Linux / Oracle 21c] baselines * [Linux / Oracle 21c] baselines * [Linux / Oracle 23c] baselines * [Windows / SQLite (both providers)] baselines * [Windows / SQLite (specialized tests)] baselines * [Windows / SQLite (both providers)] baselines * [Windows / SQL Server 2005] baselines * [Windows / Access MDB (Jet/ODBC)] baselines * [Windows / SQLite (specialized tests)] baselines * [Windows / Access ACE (ODBC-only) x64] baselines * [Windows / SQL Server 2008] baselines * [Windows / Access ACE (OLEDB/ODBC) x86] baselines * [Windows / SQL Server 2014] baselines * [Windows / SQL Server 2012] baselines * [Windows / SQL Server 2012] baselines * [Windows / SQL Server 2014] baselines * [Windows / SQL Server 2017] baselines * [Windows / SQL Server 2016] baselines * [Linux / DB2 LUW 11.5] baselines * [Linux / Firebird 2.5] baselines * [Linux / Firebird 3.0] baselines * [Windows / SQL Server 2019] baselines * [Linux / Firebird 4.0] baselines * [Linux / MariaDB] baselines * [Linux / Informix 14.10] baselines * [Windows / SQL Server EXTRAS] baselines * [Windows / SQL Server 2022] baselines * [Linux / MySQL 5.5 (both providers)] baselines * [Windows / SQL Server EXTRAS] baselines * [Linux / MySQL 8 (both providers)] baselines * [Windows / SQL Server 2019] baselines * [Linux / PostgreSQL 10] baselines * [Linux / Oracle 11g XE] baselines * [Linux / PostgreSQL 11] baselines * [Linux / PostgreSQL 12] baselines * [Linux / PostgreSQL 15] baselines * [Linux / Oracle 21c] baselines * [Linux / PostgreSQL 13] baselines * [Linux / Oracle 12c] baselines * [Linux / PostgreSQL 14] baselines * [Linux / Oracle 23c] baselines * [Linux / Oracle 18c] baselines * [Linux / Oracle 19c] baselines * [Linux / Sybase ASE 16] baselines * [Linux / SAP HANA 2] baselines * [Linux / SQL Server 2019] baselines * [Windows / SQLite (both providers)] baselines * [Windows / SQL CE] baselines * [Windows / SQLite (specialized tests)] baselines * [Windows / SQLite (both providers)] baselines * [Windows / Access MDB (Jet/ODBC)] baselines * [Windows / SQLite (specialized tests)] baselines * [Windows / SQL Server 2005] baselines * [Windows / Access ACE (ODBC-only) x64] baselines * [Windows / SQL Server 2008] baselines * [Windows / SQL Server 2012] baselines * [Windows / SQL Server 2005] baselines * [Windows / Access MDB (Jet/ODBC)] baselines * [Windows / SQL Server 2014] baselines * [Windows / SQL Server 2008] baselines * [Windows / SQL Server 2012] baselines * [Windows / SQL Server 2016] baselines * [Windows / SQL Server 2017] baselines * [Windows / SQL Server 2017] baselines * [Linux / Firebird 2.5] baselines * [Windows / SQL Server 2019] baselines * [Linux / Firebird 3.0] baselines * [Linux / DB2 LUW 11.5] baselines * [Linux / MariaDB] baselines * [Linux / Informix 14.10] baselines * [Linux / MySQL 5.5 (both providers)] baselines * [Linux / Firebird 4.0] baselines * [Linux / MySQL 8 (both providers)] baselines * [Linux / ClickHouse] baselines * [Windows / SQL Server 2022] baselines * [Windows / SQL Server 2019] baselines * [Linux / Oracle 11g XE] baselines * [Linux / PostgreSQL 10] baselines * [Windows / SQL Server EXTRAS] baselines * [Linux / PostgreSQL 11] baselines * [Linux / PostgreSQL 12] baselines * [Linux / PostgreSQL 13] baselines * [Linux / Oracle 12c] baselines * [Linux / Oracle 21c] baselines * [Linux / PostgreSQL 14] baselines * [Linux / PostgreSQL 15] baselines * [Linux / Oracle 23c] baselines * [Linux / Oracle 19c] baselines * [Linux / Sybase ASE 16] baselines * [Linux / SAP HANA 2] baselines * [Linux / SQL Server 2019] baselines * [Linux / Oracle 18c] baselines * [Windows / SQL Server EXTRAS] baselines * [Windows / SQLite (both providers)] baselines * [Windows / SQLite (specialized tests)] baselines * [Windows / SQLite (specialized tests)] baselines * [Windows / SQLite (both providers)] baselines * [Windows / SQLite (specialized tests)] baselines * [Windows / SQLite (both providers)] baselines * [Windows / SQLite (specialized tests)] baselines * [Linux / Oracle 21c] baselines * [Linux / Oracle 23c] baselines --------- Co-authored-by: Azure Pipelines Bot <azp@linq2db.com>
* test for issue #4337 * Update nugets Revert "Fix context leaking to query cache (#4229)" This reverts commit 3cff244. * Fixed #4337. * Fixed #4337. * Redo a cached ExpressionInstance, and fix a few more places * missed a few places where the constant expression could be used * requested fixes in code styling from pull request --------- Co-authored-by: Igor Tkachev <igor.tkachev@gmail.com> Co-authored-by: MaceWindu <MaceWindu@users.noreply.github.com>
Fix taken from #3401
Issue details: query context instance included into query cache as part of query expression. While it is not a big issue in general (we never received complains and context object is usually small), this is a big issue for large queries, when
context.LastSql
contained big SQL strings.