ae5b2a72c0 
								
									
								
							
								 
							
						 
						
							
							
								
								Reduce serialization errors in MultiWriterIdGen ( #8456 )  
							
							... 
							
							
							
							We call `_update_stream_positions_table_txn` a lot, which is an UPSERT
that can conflict in `REPEATABLE READ` isolation level. Instead of doing
a transaction consisting of a single query we may as well run it outside
of a transaction. 
							
						 
						
							2020-10-07 15:15:57 +01:00  
				
					
						
							
							
								 
						
							
							
								3c36ae17a5 
								
							
								 
							
						 
						
							
							
								
								Use SequenceGenerator for state group ID allocation  
							
							
							
						 
						
							2020-07-16 11:25:08 +01:00  
				
					
						
							
							
								 
						
							
							
								244dbb04f7 
								
									
								
							
								 
							
						 
						
							
							
								
								Fix incorrect error message when database CTYPE was set incorrectly. ( #7760 )  
							
							
							
						 
						
							2020-07-01 13:56:16 +01:00  
				
					
						
							
							
								 
						
							
							
								627b0f5f27 
								
									
								
							
								 
							
						 
						
							
							
								
								Persist user interactive authentication sessions ( #7302 )  
							
							... 
							
							
							
							By persisting the user interactive authentication sessions to the database, this fixes
situations where a user hits different works throughout their auth session and also
allows sessions to persist through restarts of Synapse. 
							
						 
						
							2020-04-30 13:47:49 -04:00  
				
					
						
							
							
								 
						
							
							
								fbf0782c63 
								
									
								
							
								 
							
						 
						
							
							
								
								Only import sqlite3 when type checking ( #7155 )  
							
							... 
							
							
							
							Fixes : #7127 
Signed-off-by: David Vo <david@vovo.id.au> 
						
							2020-03-27 13:20:00 +00:00  
				
					
						
							
							
								 
						
							
							
								132b673dbe 
								
									
								
							
								 
							
						 
						
							
							
								
								Add some type annotations in `synapse.storage` ( #6987 )  
							
							... 
							
							
							
							I cracked, and added some type definitions in synapse.storage. 
							
						 
						
							2020-02-27 11:53:40 +00:00  
				
					
						
							
							
								 
						
							
							
								7728d87fd7 
								
									
								
							
								 
							
						 
						
							
							
								
								Updated warning for incorrect database collation/ctype ( #6985 )  
							
							... 
							
							
							
							Signed-off-by: Uday Bansal <43824981+udaybansal19@users.noreply.github.com> 
							
						 
						
							2020-02-26 15:17:03 +00:00  
				
					
						
							
							
								 
						
							
							
								02b44db922 
								
									
								
							
								 
							
						 
						
							
							
								
								Warn if postgres database has non-C locale. ( #6734 )  
							
							... 
							
							
							
							As using non-C locale can cause issues on upgrading OS. 
							
						 
						
							2020-01-28 13:44:21 +00:00  
				
					
						
							
							
								 
						
							
							
								bf46821180 
								
							
								 
							
						 
						
							
							
								
								Refuse to start if sqlite is older than 3.11.0  
							
							
							
						 
						
							2020-01-09 18:11:04 +00:00  
				
					
						
							
							
								 
						
							
							
								e48ba84e0b 
								
							
								 
							
						 
						
							
							
								
								Check postgres version in check_database  
							
							... 
							
							
							
							this saves doing it on each connection, and will allow us to pass extra options
in. 
							
						 
						
							2020-01-09 18:05:59 +00:00  
				
					
						
							
							
								 
						
							
							
								e97d1cf001 
								
							
								 
							
						 
						
							
							
								
								Modify check_database to take a connection rather than a cursor  
							
							... 
							
							
							
							We might not need the cursor at all. 
							
						 
						
							2020-01-09 18:05:50 +00:00  
				
					
						
							
							
								 
						
							
							
								2284eb3a53 
								
									
								
							
								 
							
						 
						
							
							
								
								Add database config class ( #6513 )  
							
							... 
							
							
							
							This encapsulates config for a given database and is the way to get new
connections. 
							
						 
						
							2019-12-18 10:45:12 +00:00  
				
					
						
							
							
								 
						
							
							
								83d86106a8 
								
									
								
							
								 
							
						 
						
							
							
								
								Merge pull request  #6156  from matrix-org/erikj/postgres_any  
							
							... 
							
							
							
							Use Postgres ANY for selecting many values. 
							
						 
						
							2019-10-10 16:41:36 +01:00  
				
					
						
							
							
								 
						
							
							
								afb6d9d53b 
								
							
								 
							
						 
						
							
							
								
								Fix SQLite  
							
							
							
						 
						
							2019-10-10 15:55:41 +01:00  
				
					
						
							
							
								 
						
							
							
								3bc687508f 
								
							
								 
							
						 
						
							
							
								
								Remove add_in_list_sql_clause  
							
							
							
						 
						
							2019-10-10 15:35:46 +01:00  
				
					
						
							
							
								 
						
							
							
								1d3858371e 
								
							
								 
							
						 
						
							
							
								
								Disable bytes usage with postgres  
							
							... 
							
							
							
							More often than not passing bytes to `txn.execute` is a bug (where we
meant to pass a string) that just happens to work if `BYTEA_OUTPUT` is
set to `ESCAPE`. However, this is a bit of a footgun so we want to
instead error when this happens, and force using `bytearray` if we
actually want to use bytes. 
							
						 
						
							2019-10-08 16:28:57 +01:00  
				
					
						
							
							
								 
						
							
							
								9267741a5f 
								
							
								 
							
						 
						
							
							
								
								Fix `devices_last_seen` background update.  
							
							... 
							
							
							
							Fixes  #6134 . 
						
							2019-09-30 11:58:36 +01:00  
				
					
						
							
							
								 
						
							
							
								32e7c9e7f2 
								
									
								
							
								 
							
						 
						
							
							
								
								Run Black. ( #5482 )  
							
							
							
						 
						
							2019-06-20 19:32:02 +10:00  
				
					
						
							
							
								 
						
							
							
								eba7caf09f 
								
									
								
							
								 
							
						 
						
							
							
								
								Remove Postgres 9.4 support ( #5448 )  
							
							
							
						 
						
							2019-06-18 00:59:00 +10:00  
				
					
						
							
							
								 
						
							
							
								7efd1d87c2 
								
							
								 
							
						 
						
							
							
								
								Run black on the rest of the storage module ( #4996 )  
							
							
							
						 
						
							2019-04-03 10:07:29 +01:00  
				
					
						
							
							
								 
						
							
							
								f191be822b 
								
									
								
							
								 
							
						 
						
							
							
								
								Add database version to phonehome stats. ( #4753 )  
							
							
							
						 
						
							2019-02-27 10:21:49 +00:00  
				
					
						
							
							
								 
						
							
							
								7072fe3084 
								
									
								
							
								 
							
						 
						
							
							
								
								Fix UPSERTs on SQLite 3.24+ ( #4477 )  
							
							
							
						 
						
							2019-01-28 15:43:32 +00:00  
				
					
						
							
							
								 
						
							
							
								431e485914 
								
							
								 
							
						 
						
							
							
								
								Merge branch 'develop' of github.com:matrix-org/synapse into erikj/sqlite_native_upsert  
							
							
							
						 
						
							2019-01-25 14:11:17 +00:00  
				
					
						
							
							
								 
						
							
							
								0b3fd1401f 
								
							
								 
							
						 
						
							
							
								
								Don't require sqlite3 when using postgres ( #4466 )  
							
							
							
						 
						
							2019-01-25 22:25:02 +11:00  
				
					
						
							
							
								 
						
							
							
								1953067136 
								
							
								 
							
						 
						
							
							
								
								Disable native upserts for sqlite, as they don't work  
							
							
							
						 
						
							2019-01-25 10:46:49 +00:00  
				
					
						
							
							
								 
						
							
							
								58f6c48183 
								
									
								
							
								 
							
						 
						
							
							
								
								Use native UPSERTs where possible ( #4306 )  
							
							
							
						 
						
							2019-01-24 21:31:54 +11:00  
				
					
						
							
							
								 
						
							
							
								14e4d4f4bf 
								
									
								
							
								 
							
						 
						
							
							
								
								Port storage/ to Python 3 ( #3725 )  
							
							
							
						 
						
							2018-08-31 00:19:58 +10:00  
				
					
						
							
							
								 
						
							
							
								49af402019 
								
							
								 
							
						 
						
							
							
								
								run isort  
							
							
							
						 
						
							2018-07-09 16:09:20 +10:00  
				
					
						
							
							
								 
						
							
							
								d1e56cfcd1 
								
							
								 
							
						 
						
							
							
								
								Fix pep8 error on psycopg2cffi hack  
							
							
							
						 
						
							2018-04-10 11:35:29 +02:00  
				
					
						
							
							
								 
						
							
							
								89de934981 
								
							
								 
							
						 
						
							
							
								
								Use psycopg2cffi module instead of psycopg2 if running on pypy  
							
							... 
							
							
							
							The psycopg2 package isn't available for PyPy.  This commit adds a check
if the runtime is PyPy, and if it is uses psycopg2cffi module in favor
of psycopg2. This is almost a drop-in replacement, except for one place
where an additional cast to string is required. 
							
						 
						
							2018-04-10 11:29:52 +02:00  
				
					
						
							
							
								 
						
							
							
								3d33eef6fc 
								
									
								
							
								 
							
						 
						
							
							
								
								Store state groups separately from events ( #2784 )  
							
							... 
							
							
							
							* Split state group persist into seperate storage func
* Add per database engine code for state group id gen
* Move store_state_group to StateReadStore
This allows other workers to use it, and so resolve state.
* Hook up store_state_group
* Fix tests
* Rename _store_mult_state_groups_txn
* Rename StateGroupReadStore
* Remove redundant _have_persisted_state_group_txn
* Update comments
* Comment compute_event_context
* Set start val for state_group_id_seq
... otherwise we try to recreate old state groups
* Update comments
* Don't store state for outliers
* Update comment
* Update docstring as state groups are ints 
							
						 
						
							2018-02-06 14:31:24 +00:00  
				
					
						
							
							
								 
						
							
							
								d5fb561709 
								
							
								 
							
						 
						
							
							
								
								Optionally make committing to postgres asynchronous.  
							
							... 
							
							
							
							Useful when running tests when you don't care whether the server
will lose data that it claims that it has committed. 
							
						 
						
							2016-06-20 17:53:38 +01:00  
				
					
						
							
							
								 
						
							
							
								8aab9d87fa 
								
							
								 
							
						 
						
							
							
								
								Don't require config to create database  
							
							
							
						 
						
							2016-04-06 14:15:45 +01:00  
				
					
						
							
							
								 
						
							
							
								763360594d 
								
							
								 
							
						 
						
							
							
								
								Mark AS users with their AS's ID  
							
							
							
						 
						
							2016-02-11 17:26:42 +00:00  
				
					
						
							
							
								 
						
							
							
								d83d004ccd 
								
							
								 
							
						 
						
							
							
								
								Fix flake8 warnings for new flake8  
							
							
							
						 
						
							2016-02-02 17:18:50 +00:00  
				
					
						
							
							
								 
						
							
							
								6c28ac260c 
								
							
								 
							
						 
						
							
							
								
								copyrights  
							
							
							
						 
						
							2016-01-07 04:26:29 +00:00  
				
					
						
							
							
								 
						
							
							
								0c36098c1f 
								
							
								 
							
						 
						
							
							
								
								Implement rank function for SQLite FTS  
							
							
							
						 
						
							2015-10-23 13:23:48 +01:00  
				
					
						
							
							
								 
						
							
							
								17c80c8a3d 
								
							
								 
							
						 
						
							
							
								
								rename schema_prepare to prepare_database  
							
							
							
						 
						
							2015-10-13 13:56:22 +01:00  
				
					
						
							
							
								 
						
							
							
								ec398af41c 
								
							
								 
							
						 
						
							
							
								
								Expose error more nicely  
							
							
							
						 
						
							2015-10-13 11:43:43 +01:00  
				
					
						
							
							
								 
						
							
							
								40b6a5aad1 
								
							
								 
							
						 
						
							
							
								
								Split out the schema preparation and update logic into its own module  
							
							
							
						 
						
							2015-10-13 11:38:48 +01:00  
				
					
						
							
							
								 
						
							
							
								1d566edb81 
								
							
								 
							
						 
						
							
							
								
								Remove race condition  
							
							
							
						 
						
							2015-05-14 16:54:35 +01:00  
				
					
						
							
							
								 
						
							
							
								1692dc019d 
								
							
								 
							
						 
						
							
							
								
								Don't call 'encode_parameter' no-op  
							
							
							
						 
						
							2015-05-05 15:00:30 +01:00  
				
					
						
							
							
								 
						
							
							
								fabb7acd45 
								
							
								 
							
						 
						
							
							
								
								Fix bug where we reconnected to the database on every query.  
							
							
							
						 
						
							2015-05-01 10:24:24 +01:00  
				
					
						
							
							
								 
						
							
							
								cd0864121b 
								
							
								 
							
						 
						
							
							
								
								Make postgres database error slightly more helpful  
							
							
							
						 
						
							2015-04-29 12:12:25 +01:00  
				
					
						
							
							
								 
						
							
							
								4932a7e2d9 
								
							
								 
							
						 
						
							
							
								
								Use __all__ instead of assert to stop pyflakes from warning about unused import in __init__  
							
							
							
						 
						
							2015-04-29 12:12:25 +01:00  
				
					
						
							
							
								 
						
							
							
								a08bf11138 
								
							
								 
							
						 
						
							
							
								
								Appease PEP8  
							
							
							
						 
						
							2015-04-29 11:44:48 +01:00  
				
					
						
							
							
								 
						
							
							
								204132a998 
								
							
								 
							
						 
						
							
							
								
								Check that postgres database has correct charset set  
							
							
							
						 
						
							2015-04-29 11:42:28 +01:00  
				
					
						
							
							
								 
						
							
							
								2732be83d9 
								
							
								 
							
						 
						
							
							
								
								Shuffle operations so that locking upsert happens last in the txn. This ensures the lock is held for the least amount of time possible.  
							
							
							
						 
						
							2015-04-27 13:22:30 +01:00  
				
					
						
							
							
								 
						
							
							
								e4c4664d73 
								
							
								 
							
						 
						
							
							
								
								Handle the fact that postgres databases can be restarted from under us  
							
							
							
						 
						
							2015-04-27 12:40:49 +01:00  
				
					
						
							
							
								 
						
							
							
								e1c0970c11 
								
							
								 
							
						 
						
							
							
								
								PEP8  
							
							
							
						 
						
							2015-04-16 11:18:45 +01:00