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
Christoph Wurst
3bfba2042c
fix(db): Prevent two connections for single node databases
...
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2024-05-28 10:38:36 +02:00
Thomas Citharel
b0f5c759a8
Merge pull request #39589 from nextcloud/enh/set-nest-transactions-with-savepoints
...
set Doctrine to use nest transactions with savepoints
2024-05-27 16:53:53 +02:00
Josh
48b47f7903
fix(db): Log loong transaction times at debug level
...
Signed-off-by: Josh <josh.t.richards@gmail.com>
2024-05-25 09:07:43 -04:00
Andy Scherzinger
dae7c159f7
chore: Add SPDX header
...
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2024-05-24 13:11:22 +02:00
John Molakvoæ
d4a6a700da
Merge pull request #39247 from nextcloud/query-log-backtrace
2024-05-02 12:03:34 +02:00
Robin Appelman
d6be80ceaf
feat: add option to add backtrace to the query logger
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2024-05-01 18:12:16 +02:00
Joas Schilling
90ba7db0fb
fix(querybuilder): Remove temporary internal method executeUpdate()
...
Signed-off-by: Joas Schilling <coding@schilljs.com>
2024-04-30 15:13:12 +02:00
Côme Chilliet
26c4ca264f
fix: Remove bogus code from query builder and fix parameter name
...
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2024-04-30 09:23:58 +02:00
Robin Appelman
8c10c78099
feat: add request id as comment to all queries
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2024-04-17 16:36:24 +02:00
Git'Fellow
5f519a2e7d
chore(db): move to OCP\Server
...
Signed-off-by: Git'Fellow <12234510+solracsf@users.noreply.github.com>
2024-04-13 18:29:22 +02:00
Côme Chilliet
ab6afe0111
fix: Fix new psalm errors from update
...
Not sure about the SimpleContainer modification, let’s see what CI says
about that.
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2024-04-08 11:29:09 +02:00
Côme Chilliet
ec5133b739
fix: Apply new coding standard to all files
...
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2024-04-02 14:16:21 +02:00
Benjamin Gaussorgues
b304dc78f8
Merge pull request #44470 from nextcloud/fix/compatibility-replica-splitting
2024-03-26 20:27:14 +01:00
Julius Härtl
2fdb9184fa
fix: Allow using replica config with split databases
...
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2024-03-26 09:25:44 +01:00
Ferdinand Thiessen
2525e73caa
fix(DB): Sanitize host parameter for postgres databases when IPv6 address is passed
...
Doctrine is using `pg_connect` with the `host` parameter, this does not allow IPv6 addresses in URI notation.
So we need to extract the IP address and pass it directly
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2024-03-25 20:25:17 +01:00
Thomas Citharel
2a0815401e
feat(db): set Doctrine to use nest transactions with savepoints
...
Using nested transactions without savepoints is actually deprecated by Doctrine:
https://www.doctrine-project.org/projects/doctrine-dbal/en/current/reference/transactions.html#transaction-nesting
Without savepoints, a nested transaction can be rollbacked but not
handled properly in the "real" transaction, leading to the following
error:
Transaction commit failed because the transaction has been marked for rollback only.
Ref
https://github.com/nextcloud/server/pull/36528#issuecomment-1639913965
(and possibly) https://github.com/nextcloud/server/issues/38902#issuecomment-1598075391
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2024-02-27 14:27:11 +01:00
Christoph Wurst
d52ebaa7cd
Merge pull request #43297 from nextcloud/fix/db/dirty-read-cool-off
...
fix(db): Let dirty writes cool off
2024-02-19 10:53:05 +01:00
Christoph Wurst
1f46e4b854
fix(db): Let dirty writes cool off
...
We can assume that after a few seconds a read will be clean again.
This is helpful for false warnings in long running processes.
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2024-02-19 10:13:24 +01:00
Christoph Wurst
cf17a20835
fix(db): Give dirty read exception a message
...
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2024-02-15 09:14:47 +01:00
Christoph Wurst
aef28e191a
fix(db): Unify long transaction log/exception message
...
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2024-02-13 08:17:49 +01:00
Simon L
8fd2289058
Merge pull request #43357 from nextcloud/enh/41253/fix-occ-upgrade
...
fix(migration): Make naming constraint fail softer on updates
2024-02-08 18:27:39 +01:00
Louis Chemineau
898df41de9
Revert "Merge branch 'master' of github.com:nextcloud/server"
...
This reverts commit d9d60238c7 , reversing
changes made to ba3fdb0cdc .
2024-02-08 15:31:19 +01:00
Joas Schilling
487c33f479
fix(migration): Make naming constraint fail softer on updates
...
Only on installation we want to break hard, so that all developers notice
the bugs when installing the app on any database or CI, and can work on
fixing their migrations before releasing a version incompatible with Postgres.
In case of updates we might be running on production instances and the
administrators being faced with the error would not know how to resolve it
anyway. This can also happen with instances, that had the issue before the
current update, so we don't want to make their life more complicated
than needed.
Signed-off-by: Joas Schilling <coding@schilljs.com>
2024-02-07 20:45:51 +01:00
Christoph Wurst
97152de9bf
fix(db): Execute dirty reads on the primary node
...
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2024-01-30 12:17:39 +01:00
Christoph Wurst
911ab393c0
feat(db): Make dirty query logging available in production
...
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2024-01-30 10:31:03 +01:00
Christoph Wurst
033a654389
Merge pull request #42929 from nextcloud/fix/db/transacted-read-not-dirty
...
fix(db): Do not log transacted reads as dirty read
2024-01-23 09:34:20 +01:00
Christoph Wurst
ab0d7c007d
fix(db): Remove very verbose dirty query logs
...
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2024-01-18 18:33:07 +01:00
Christoph Wurst
f54b08c224
fix(db): Do not log transacted reads as dirty read
...
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2024-01-18 13:37:36 +01:00
Julius Härtl
296096e069
fix: Add reconnect check in case of timeouts on the db side
...
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2024-01-12 14:38:01 +01:00
Julius Härtl
c17c42a0b2
feat: First attempt to track dirty tables after writes and switch back to replicas if reads go to other tables
...
Signed-off-by: Julius Härtl <jus@bitgrid.net>
debug: error log
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2024-01-12 11:02:50 +01:00
Julius Härtl
3e60092b7d
feat: Add logging for transaction time
...
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2024-01-12 11:02:50 +01:00
Julius Härtl
86dc766276
Cast datetime columns in sqlite before comparing
...
Move the logic to prepare a column to the parent ExpressionBuilder so
that it can be reused for OCI and sqlite
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2023-12-29 10:36:59 +01:00
Julius Härtl
79c4986354
enh: Implement PrimaryReadReplicaConnection
...
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2023-12-16 20:27:37 +01:00
Côme Chilliet
1b547c7db8
Migrate missing primary key database check to new API
...
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2023-11-27 15:23:52 +01:00
Côme Chilliet
ad88c04f2d
Migrate missing index database check to new API
...
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2023-11-27 15:23:52 +01:00
Côme Chilliet
2cb1c0f2dc
Migrate missing column database check to new API
...
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2023-11-27 15:23:52 +01:00
Joas Schilling
aa5f037af7
chore: apply changes from Nextcloud coding standards 1.1.1
...
Signed-off-by: Joas Schilling <coding@schilljs.com>
Signed-off-by: Benjamin Gaussorgues <benjamin.gaussorgues@nextcloud.com>
2023-11-23 10:36:13 +01:00
Arthur Schiwon
93505b2cdd
fix(workflowengine): use andWhere() not second where()
...
- an unconditional where() condition is added right before
- fixes also wrongly named methods in the Exception message
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2023-11-13 14:47:47 +01:00
Joas Schilling
6f39d82031
fix(install): Make installing more verbose
...
Signed-off-by: Joas Schilling <coding@schilljs.com>
2023-11-03 15:44:46 +01:00
Joas Schilling
15a7aa51c5
fix(dbal): Fix types in query builder methods for parameters
...
Signed-off-by: Joas Schilling <coding@schilljs.com>
2023-10-18 07:09:08 +02:00
Joas Schilling
570159e610
fix(DB): Update comment to state why we still use the max 4k limit
...
Signed-off-by: Joas Schilling <coding@schilljs.com>
2023-10-06 15:29:27 +02:00
Joas Schilling
ccb01b19a0
fix(sqlite): Remove some old SQLite cheats
...
- Doctrine correctly forces integer for autoincrement by now
- Doctrine correctly maintains integer types by now
Signed-off-by: Joas Schilling <coding@schilljs.com>
2023-10-06 15:29:27 +02:00
Joas Schilling
f8ee6c4769
fix(oracle): Move away from internal and deprecated SchemaDiff API
...
Signed-off-by: Joas Schilling <coding@schilljs.com>
2023-10-06 15:29:26 +02:00
Joas Schilling
919207873e
fix(dbal): Move migrator away from deprecated calls
...
Signed-off-by: Joas Schilling <coding@schilljs.com>
2023-10-06 15:29:26 +02:00
Joas Schilling
160298c556
fix(mysql): Remove custom MySQL workaround from 2015
...
Signed-off-by: Joas Schilling <coding@schilljs.com>
2023-10-06 15:29:25 +02:00
Joas Schilling
b202b139dd
fix(postgres): Remove old Postgres 9.4 workaround
...
Postgres 10 is the minimum in the meantime
and doctrine/dbal fixed this in 2.6.0 already
ref https://github.com/doctrine/dbal/pull/2614
Signed-off-by: Joas Schilling <coding@schilljs.com>
2023-10-06 15:29:25 +02:00
Joas Schilling
ad839dbb0a
fix(sqlite): Remove no longer required autoincrement fix
...
- I installed current master and exported the schema as SQL
- Then I went to this branch, removed the content of the run() method (so made it no-op)
- I installed again and exported the schema as SQL
- The files are exactly the same, so whatever we tried to fix was fixed since 2015 in doctrine dbal
Signed-off-by: Joas Schilling <coding@schilljs.com>
2023-10-06 15:29:25 +02:00