mirror of
https://git.anonymousland.org/anonymousland/synapse.git
synced 2025-05-02 10:26:06 -04:00
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.
This commit is contained in:
parent
e7631d84e6
commit
1d3858371e
3 changed files with 10 additions and 3 deletions
|
@ -22,6 +22,13 @@ class PostgresEngine(object):
|
|||
def __init__(self, database_module, database_config):
|
||||
self.module = database_module
|
||||
self.module.extensions.register_type(self.module.extensions.UNICODE)
|
||||
|
||||
# Disables passing `bytes` to txn.execute, c.f. #6186. If you do
|
||||
# actually want to use bytes than wrap it in `bytearray`.
|
||||
def _disable_bytes_adapter(_):
|
||||
raise Exception("Passing bytes to DB is disabled.")
|
||||
|
||||
self.module.extensions.register_adapter(bytes, _disable_bytes_adapter)
|
||||
self.synchronous_commit = database_config.get("synchronous_commit", True)
|
||||
self._version = None # unknown as yet
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue