mirror of
https://github.com/zulip/zulip.git
synced 2025-11-16 20:02:15 +00:00
db: Use cursor_factory psycopg2 option.
Signed-off-by: Anders Kaseorg <anders@zulip.com>
(cherry picked from commit b4cf9ad777)
This commit is contained in:
committed by
Tim Abbott
parent
0dbc3917ef
commit
4a618ed973
@@ -1,17 +1,5 @@
|
||||
import time
|
||||
from typing import (
|
||||
Any,
|
||||
Callable,
|
||||
Dict,
|
||||
Iterable,
|
||||
List,
|
||||
Mapping,
|
||||
Optional,
|
||||
Sequence,
|
||||
TypeVar,
|
||||
Union,
|
||||
overload,
|
||||
)
|
||||
from typing import Any, Callable, Dict, Iterable, List, Mapping, Sequence, TypeVar, Union
|
||||
|
||||
from psycopg2.extensions import connection, cursor
|
||||
from psycopg2.sql import Composable
|
||||
@@ -59,30 +47,6 @@ class TimeTrackingConnection(connection):
|
||||
self.queries: List[Dict[str, str]] = []
|
||||
super().__init__(*args, **kwargs)
|
||||
|
||||
@overload
|
||||
def cursor(
|
||||
self,
|
||||
name: str = ...,
|
||||
*,
|
||||
scrollable: Optional[bool] = ...,
|
||||
withhold: bool = ...,
|
||||
) -> TimeTrackingCursor:
|
||||
...
|
||||
|
||||
@overload
|
||||
def cursor(
|
||||
self,
|
||||
name: str = ...,
|
||||
cursor_factory: Callable[..., CursorT] = ...,
|
||||
scrollable: Optional[bool] = ...,
|
||||
withhold: bool = ...,
|
||||
) -> CursorT:
|
||||
...
|
||||
|
||||
def cursor(self, *args: object, **kwargs: object) -> cursor:
|
||||
kwargs.setdefault("cursor_factory", TimeTrackingCursor)
|
||||
return super().cursor(*args, **kwargs)
|
||||
|
||||
|
||||
def reset_queries() -> None:
|
||||
from django.db import connections
|
||||
|
||||
@@ -9,7 +9,7 @@ from django.template.loaders import app_directories
|
||||
|
||||
import zerver.lib.logging_util
|
||||
from scripts.lib.zulip_tools import get_tornado_ports
|
||||
from zerver.lib.db import TimeTrackingConnection
|
||||
from zerver.lib.db import TimeTrackingConnection, TimeTrackingCursor
|
||||
|
||||
from .config import (
|
||||
DEPLOY_ROOT,
|
||||
@@ -287,6 +287,7 @@ DATABASES: Dict[str, Dict[str, Any]] = {
|
||||
"CONN_MAX_AGE": 600,
|
||||
"OPTIONS": {
|
||||
"connection_factory": TimeTrackingConnection,
|
||||
"cursor_factory": TimeTrackingCursor,
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,7 +4,7 @@ from typing import Dict, List, Optional, Tuple
|
||||
import ldap
|
||||
from django_auth_ldap.config import LDAPSearch
|
||||
|
||||
from zerver.lib.db import TimeTrackingConnection
|
||||
from zerver.lib.db import TimeTrackingConnection, TimeTrackingCursor
|
||||
from zerver.lib.types import SAMLIdPConfigDict
|
||||
|
||||
from .config import DEPLOY_ROOT, get_from_file_if_exists
|
||||
@@ -37,7 +37,10 @@ DATABASES["default"] = {
|
||||
"SCHEMA": "zulip",
|
||||
"ENGINE": "django.db.backends.postgresql",
|
||||
"TEST_NAME": "django_zulip_tests",
|
||||
"OPTIONS": {"connection_factory": TimeTrackingConnection},
|
||||
"OPTIONS": {
|
||||
"connection_factory": TimeTrackingConnection,
|
||||
"cursor_factory": TimeTrackingCursor,
|
||||
},
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user