Ferdinand Thiessen
832f79ac93
chore: apply code style
...
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-04-30 19:04:59 +02:00
Robin Appelman
2708a2b622
fix: use proper migration sorting when checking if a migration needs to be executed
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2025-04-02 12:52:40 +00:00
Robin Appelman
bcb13b1295
feat: log query for dbal exceptions
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2025-03-05 22:52:28 +01:00
Louis Chemineau
d3b4b21e29
fix: Initialize lastConnectionCheck after first connection
...
We are checking whether the DB connection is alive once every 30 seconds. But when we are lacking the last check time, we are skipping the check and reconnect logic. This is causing the reconnect logic to never fire in those cases.
It seems to me that "those cases", are actually always the case, as upon initialization, we are not using the proper connection name to store the time.
In the `connect()` logic, when `$this->_conn` is null, `$this->getConnectionName()` is returning `replica`, so `$this->lastConnectionCheck` will be equal to `['replica' => time()];`
60711ea4cf/lib/private/DB/Connection.php (L215-L221)
60711ea4cf/lib/private/DB/Connection.php (L891-L893)
2b6d7bf65f/doctrine/dbal/src/Connections/PrimaryReadReplicaConnection.php (L136-L139)
Then, if the connection name ends up as being 'primary', the reconnect logic is skipped:
60711ea4cf/lib/private/DB/Connection.php (L874-L880)
Follow-up of https://github.com/nextcloud/server/pull/41819
Signed-off-by: Louis Chemineau <louis@chmn.me>
2025-02-25 11:07:34 +00:00
Nils Wenninghoff
b21070090b
fix(ConvertType): Read dbtype in createConnectionParams and remove safeguard
...
Signed-off-by: Nils Wenninghoff <nils@ungemein.cool>
2025-01-30 12:19:39 +01:00
Robin Appelman
68db21f829
fix: improve logic for ensuring join columns are selected for partitioned queries
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2024-12-12 21:44:05 +00:00
Robin Appelman
f333fbb8f5
fix: handle calling select on partitioned queries with an array of columns
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2024-12-12 21:44:05 +00:00
Benjamin Gaussorgues
0cd1eeb509
fix(sharding): typo in addOrderBy
...
Signed-off-by: Benjamin Gaussorgues <benjamin.gaussorgues@nextcloud.com>
2024-10-30 11:43:38 +01:00
provokateurin
aab30afc25
fix(QueryBuilder): Account for aliases in output columns
...
Signed-off-by: provokateurin <kate@provokateurin.de>
2024-10-03 13:49:00 +00:00
Benjamin Gaussorgues
8290de3b93
Merge pull request #48077 from nextcloud/backport/47852/stable30
2024-10-02 10:43:41 +02:00
provokateurin
bbeda126cc
fix(QueryBuilder): Restrict identifier length to 30 characters due to Oracle limitations
...
Signed-off-by: provokateurin <kate@provokateurin.de>
2024-09-26 13:16:02 +00:00
Robin Appelman
914e8f9ce2
fix: misc code fixes around db sharding
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2024-09-16 12:19:20 +02:00
Ferdinand Thiessen
a8ae2f9755
fix: Adjust types of IQueryBuilder to properly allow joining with sub-query
...
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2024-09-11 15:20:42 +02:00
Julius Härtl
332b7a43a4
fix: Run migration sql as statement so that the primary db node is used
...
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2024-09-09 09:38:13 +00:00
Arthur Schiwon
1b89323703
fix(DB): do not assume sharding is always enabled
...
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2024-08-29 20:06:33 +02:00
Arthur Schiwon
e9dcfbcfb7
fix(DB): set sharding parameters only when intended
...
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2024-08-29 20:06:31 +02:00
Andy Scherzinger
656fdef932
Merge pull request #47528 from nextcloud/backport/47510/stable30
...
[stable30] fix(db): Increase log level for very slow transactions
2024-08-29 00:19:20 +02:00
Joas Schilling
8894747257
fix(migration): Correctly sort migrations by version number
...
Signed-off-by: Joas Schilling <coding@schilljs.com>
2024-08-28 18:49:09 +00:00
Louis Chemineau
140b36fcea
fix: Backport to 30
...
Signed-off-by: Louis Chemineau <louis@chmn.me>
2024-08-28 14:54:14 +02:00
Louis Chemineau
e5a8f996bd
chore: Apply php:cs recommendations
...
Signed-off-by: Louis Chemineau <louis@chmn.me>
[skip ci]
2024-08-28 14:54:14 +02:00
Robin Appelman
b2645590ce
fix: implement sharding compatible cleanup for various bits
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2024-08-28 14:54:14 +02:00
Robin Appelman
3e5193957b
fix: only allow pre-defined shards
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2024-08-28 14:54:14 +02:00
Robin Appelman
82d7eaf80a
feat: implement distributing partitioned queries over multiple shards
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2024-08-28 14:54:14 +02:00
Robin Appelman
4ec53e723e
feat: add option to automatically partition queries by specific tables
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2024-08-28 14:54:14 +02:00
Robin Appelman
8eaddbc038
feat: track expected output columns in query builder
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2024-08-28 14:54:14 +02:00
Christoph Wurst
6d2394680c
fix(db): Increase log level for very slow transactions
...
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2024-08-27 13:24:08 +00:00
Robin Appelman
5654799cb4
fix: fix passing additional db connection parameters in factory
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2024-07-31 18:53:42 +02:00
Stephan Orbaugh
65941811b3
Merge pull request #44788 from nextcloud/db-error-logging
...
feat: add additional logging for database errors
2024-07-25 09:09:57 +02:00
Robin Appelman
7fbb981877
feat: add additional logging for database errors
...
including the stack trace of the current database transaction
Signed-off-by: Robin Appelman <robin@icewind.nl>
2024-07-24 15:35:07 +02:00
Robin Appelman
16c184e2cb
fix: cast to bigint on postgresql
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2024-07-23 14:41:13 +02:00
Joas Schilling
b656edc47c
fix(db): Fix md5 for oracle >= 20
...
Signed-off-by: Joas Schilling <coding@schilljs.com>
2024-07-19 14:13:56 +02:00
Joas Schilling
e1e4ee4d67
fix(db): Manually track if where() is called when not empty to avoid recursion
...
Signed-off-by: Joas Schilling <coding@schilljs.com>
2024-07-19 11:21:16 +02:00
Joas Schilling
eeb6ddb176
fix(db): Deprecate IExpressionBuilder::or() and IExpressionBuilder::and() without parameters
...
Signed-off-by: Joas Schilling <coding@schilljs.com>
2024-07-19 11:21:16 +02:00
Joas Schilling
e45465781f
fix(db): Deprecate getState() as per upstream
...
Signed-off-by: Joas Schilling <coding@schilljs.com>
2024-07-19 11:21:15 +02:00
Joas Schilling
829f2b9bc7
fix(db): Promote the use of getDatabaseProvider to reduce the impage of removed upstream platforms
...
Signed-off-by: Joas Schilling <coding@schilljs.com>
2024-07-19 11:21:14 +02:00
Joas Schilling
bd383627a7
fix(db): Deprecate using table alias for DELETE and UPDATE
...
Signed-off-by: Joas Schilling <coding@schilljs.com>
2024-07-19 11:21:13 +02:00
Joas Schilling
c84580d53a
fix(db): Doctrine\DBAL\Connection::executeUpdate() is deprecated
...
Signed-off-by: Joas Schilling <coding@schilljs.com>
2024-07-19 11:21:12 +02:00
Joas Schilling
11e84b8968
fix(db): Fix internal calls to doctrine's fetch() methods
...
Signed-off-by: Joas Schilling <coding@schilljs.com>
2024-07-19 11:21:12 +02:00
Joas Schilling
a4c1d7291f
fix(db): Use createSchemaManager() method as getSchemaManager() is deprecated
...
Signed-off-by: Joas Schilling <coding@schilljs.com>
2024-07-19 11:21:11 +02:00
Joas Schilling
f92352eda4
fix(db): Deprecate getQueryPart() and resetQueryPart() methods that will be removed with Doctrine/DBAL 4
...
Signed-off-by: Joas Schilling <coding@schilljs.com>
2024-07-19 11:21:10 +02:00
Robin Appelman
9de6190ec4
feat: allow running QueryBuilder queries on different connections
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2024-07-15 22:41:04 +02:00
Robin Appelman
f94b0c3f55
Merge pull request #46397 from nextcloud/extended-query-builder-base
...
feat: add base class for extending the query builder
2024-07-15 14:53:22 +02:00
Robin Appelman
c82d382a20
feat: add base class for extending the query builder
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2024-07-12 17:01:39 +02:00
Robin Appelman
d81d59e9c3
feat: allow inspecting the parts of the composite expression builder
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2024-07-12 17:01:36 +02:00
Robin Appelman
4f01486da0
feat: add commands for exporting current and expected database schema
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2024-07-02 13:45:12 +02:00
Benjamin Gaussorgues
b7243681dd
feat(dbal): add proper insert ignore conflict method for SQLite
...
Signed-off-by: Benjamin Gaussorgues <benjamin.gaussorgues@nextcloud.com>
2024-06-25 16:21:01 +02:00
Benjamin Gaussorgues
1e19566aa4
feat(dbal): add proper insert ignore conflict method for MySQL
...
Signed-off-by: Benjamin Gaussorgues <benjamin.gaussorgues@nextcloud.com>
2024-06-25 11:28:37 +02:00
Daniel Kesselberg
cac6443cbb
feat(db): remove workaround for pqsql 9.4 and older
...
The workaround was required because "ON CONFLICT DO NOTHING" was added with pqsql 9.5.
PostgreSQL 9.4 is eol since 2020-02-13 and thus everyone should use a version with upsert support nowadays.
Signed-off-by: Daniel Kesselberg <mail@danielkesselberg.de>
2024-06-03 12:47:31 +02:00
John Molakvoæ
258bb03cf5
Merge branch 'master' into refactor/OC-Server-getSecureRandom
...
Signed-off-by: John Molakvoæ <skjnldsv@users.noreply.github.com>
2024-05-30 14:24:22 +02:00
Daniel Kesselberg
3fb0aa40cd
feat(db): add mapping for lock wait timeout
...
Signed-off-by: Daniel Kesselberg <mail@danielkesselberg.de>
2024-05-29 11:10:43 +02:00