Skip to content

Commit 3a49233

Browse files
committed
use str of field as index
1 parent e1c1954 commit 3a49233

File tree

8 files changed

+130
-8
lines changed

8 files changed

+130
-8
lines changed

.tox/.package.lock

Whitespace-only changes.
60.9 KB
Binary file not shown.

.tox/log/.lock

Whitespace-only changes.

.tox/log/GLOB-0.log

Lines changed: 119 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,119 @@
1+
action: GLOB, msg: packaging
2+
cwd: /code
3+
cmd: /usr/local/bin/python setup.py sdist --formats=zip --dist-dir .tox/dist
4+
running sdist
5+
running egg_info
6+
writing django_mssql_backend.egg-info/PKG-INFO
7+
writing dependency_links to django_mssql_backend.egg-info/dependency_links.txt
8+
writing requirements to django_mssql_backend.egg-info/requires.txt
9+
writing top-level names to django_mssql_backend.egg-info/top_level.txt
10+
reading manifest file 'django_mssql_backend.egg-info/SOURCES.txt'
11+
reading manifest template 'MANIFEST.in'
12+
warning: no previously-included files matching '*' found under directory 'docker'
13+
writing manifest file 'django_mssql_backend.egg-info/SOURCES.txt'
14+
running check
15+
creating django-mssql-backend-2.8.1
16+
creating django-mssql-backend-2.8.1/django_mssql_backend.egg-info
17+
creating django-mssql-backend-2.8.1/sql_server
18+
creating django-mssql-backend-2.8.1/sql_server/pyodbc
19+
creating django-mssql-backend-2.8.1/sql_server/pyodbc/management
20+
creating django-mssql-backend-2.8.1/sql_server/pyodbc/management/commands
21+
creating django-mssql-backend-2.8.1/testapp
22+
creating django-mssql-backend-2.8.1/testapp/migrations
23+
creating django-mssql-backend-2.8.1/testapp/tests
24+
copying files to django-mssql-backend-2.8.1...
25+
copying LICENSE -> django-mssql-backend-2.8.1
26+
copying MANIFEST.in -> django-mssql-backend-2.8.1
27+
copying README.rst -> django-mssql-backend-2.8.1
28+
copying setup.cfg -> django-mssql-backend-2.8.1
29+
copying setup.py -> django-mssql-backend-2.8.1
30+
copying django_mssql_backend.egg-info/PKG-INFO -> django-mssql-backend-2.8.1/django_mssql_backend.egg-info
31+
copying django_mssql_backend.egg-info/SOURCES.txt -> django-mssql-backend-2.8.1/django_mssql_backend.egg-info
32+
copying django_mssql_backend.egg-info/dependency_links.txt -> django-mssql-backend-2.8.1/django_mssql_backend.egg-info
33+
copying django_mssql_backend.egg-info/requires.txt -> django-mssql-backend-2.8.1/django_mssql_backend.egg-info
34+
copying django_mssql_backend.egg-info/top_level.txt -> django-mssql-backend-2.8.1/django_mssql_backend.egg-info
35+
copying sql_server/__init__.py -> django-mssql-backend-2.8.1/sql_server
36+
copying sql_server/pyodbc/__init__.py -> django-mssql-backend-2.8.1/sql_server/pyodbc
37+
copying sql_server/pyodbc/base.py -> django-mssql-backend-2.8.1/sql_server/pyodbc
38+
copying sql_server/pyodbc/client.py -> django-mssql-backend-2.8.1/sql_server/pyodbc
39+
copying sql_server/pyodbc/compiler.py -> django-mssql-backend-2.8.1/sql_server/pyodbc
40+
copying sql_server/pyodbc/creation.py -> django-mssql-backend-2.8.1/sql_server/pyodbc
41+
copying sql_server/pyodbc/features.py -> django-mssql-backend-2.8.1/sql_server/pyodbc
42+
copying sql_server/pyodbc/functions.py -> django-mssql-backend-2.8.1/sql_server/pyodbc
43+
copying sql_server/pyodbc/introspection.py -> django-mssql-backend-2.8.1/sql_server/pyodbc
44+
copying sql_server/pyodbc/operations.py -> django-mssql-backend-2.8.1/sql_server/pyodbc
45+
copying sql_server/pyodbc/regex_clr.dll -> django-mssql-backend-2.8.1/sql_server/pyodbc
46+
copying sql_server/pyodbc/schema.py -> django-mssql-backend-2.8.1/sql_server/pyodbc
47+
copying sql_server/pyodbc/management/__init__.py -> django-mssql-backend-2.8.1/sql_server/pyodbc/management
48+
copying sql_server/pyodbc/management/commands/__init__.py -> django-mssql-backend-2.8.1/sql_server/pyodbc/management/commands
49+
copying sql_server/pyodbc/management/commands/install_regex_clr.py -> django-mssql-backend-2.8.1/sql_server/pyodbc/management/commands
50+
copying testapp/__init__.py -> django-mssql-backend-2.8.1/testapp
51+
copying testapp/models.py -> django-mssql-backend-2.8.1/testapp
52+
copying testapp/settings.py -> django-mssql-backend-2.8.1/testapp
53+
copying testapp/migrations/0001_initial.py -> django-mssql-backend-2.8.1/testapp/migrations
54+
copying testapp/migrations/0002_test_unique_nullable_part1.py -> django-mssql-backend-2.8.1/testapp/migrations
55+
copying testapp/migrations/0003_test_unique_nullable_part2.py -> django-mssql-backend-2.8.1/testapp/migrations
56+
copying testapp/migrations/0004_test_issue45_unique_type_change_part1.py -> django-mssql-backend-2.8.1/testapp/migrations
57+
copying testapp/migrations/0005_test_issue45_unique_type_change_part2.py -> django-mssql-backend-2.8.1/testapp/migrations
58+
copying testapp/migrations/0006_test_remove_onetoone_field_part1.py -> django-mssql-backend-2.8.1/testapp/migrations
59+
copying testapp/migrations/0007_test_remove_onetoone_field_part2.py -> django-mssql-backend-2.8.1/testapp/migrations
60+
copying testapp/migrations/0008_test_alter_nullable_in_unique_field.py -> django-mssql-backend-2.8.1/testapp/migrations
61+
copying testapp/migrations/__init__.py -> django-mssql-backend-2.8.1/testapp/migrations
62+
copying testapp/tests/__init__.py -> django-mssql-backend-2.8.1/testapp/tests
63+
copying testapp/tests/test_constraints.py -> django-mssql-backend-2.8.1/testapp/tests
64+
copying testapp/tests/test_expressions.py -> django-mssql-backend-2.8.1/testapp/tests
65+
copying testapp/tests/test_fields.py -> django-mssql-backend-2.8.1/testapp/tests
66+
Writing django-mssql-backend-2.8.1/setup.cfg
67+
creating '.tox/dist/django-mssql-backend-2.8.1.zip' and adding 'django-mssql-backend-2.8.1' to it
68+
adding 'django-mssql-backend-2.8.1'
69+
adding 'django-mssql-backend-2.8.1/sql_server'
70+
adding 'django-mssql-backend-2.8.1/testapp'
71+
adding 'django-mssql-backend-2.8.1/django_mssql_backend.egg-info'
72+
adding 'django-mssql-backend-2.8.1/PKG-INFO'
73+
adding 'django-mssql-backend-2.8.1/LICENSE'
74+
adding 'django-mssql-backend-2.8.1/MANIFEST.in'
75+
adding 'django-mssql-backend-2.8.1/setup.py'
76+
adding 'django-mssql-backend-2.8.1/setup.cfg'
77+
adding 'django-mssql-backend-2.8.1/README.rst'
78+
adding 'django-mssql-backend-2.8.1/sql_server/pyodbc'
79+
adding 'django-mssql-backend-2.8.1/sql_server/__init__.py'
80+
adding 'django-mssql-backend-2.8.1/sql_server/pyodbc/management'
81+
adding 'django-mssql-backend-2.8.1/sql_server/pyodbc/functions.py'
82+
adding 'django-mssql-backend-2.8.1/sql_server/pyodbc/compiler.py'
83+
adding 'django-mssql-backend-2.8.1/sql_server/pyodbc/creation.py'
84+
adding 'django-mssql-backend-2.8.1/sql_server/pyodbc/client.py'
85+
adding 'django-mssql-backend-2.8.1/sql_server/pyodbc/__init__.py'
86+
adding 'django-mssql-backend-2.8.1/sql_server/pyodbc/features.py'
87+
adding 'django-mssql-backend-2.8.1/sql_server/pyodbc/operations.py'
88+
adding 'django-mssql-backend-2.8.1/sql_server/pyodbc/introspection.py'
89+
adding 'django-mssql-backend-2.8.1/sql_server/pyodbc/regex_clr.dll'
90+
adding 'django-mssql-backend-2.8.1/sql_server/pyodbc/base.py'
91+
adding 'django-mssql-backend-2.8.1/sql_server/pyodbc/schema.py'
92+
adding 'django-mssql-backend-2.8.1/sql_server/pyodbc/management/commands'
93+
adding 'django-mssql-backend-2.8.1/sql_server/pyodbc/management/__init__.py'
94+
adding 'django-mssql-backend-2.8.1/sql_server/pyodbc/management/commands/__init__.py'
95+
adding 'django-mssql-backend-2.8.1/sql_server/pyodbc/management/commands/install_regex_clr.py'
96+
adding 'django-mssql-backend-2.8.1/testapp/migrations'
97+
adding 'django-mssql-backend-2.8.1/testapp/tests'
98+
adding 'django-mssql-backend-2.8.1/testapp/models.py'
99+
adding 'django-mssql-backend-2.8.1/testapp/__init__.py'
100+
adding 'django-mssql-backend-2.8.1/testapp/settings.py'
101+
adding 'django-mssql-backend-2.8.1/testapp/migrations/0003_test_unique_nullable_part2.py'
102+
adding 'django-mssql-backend-2.8.1/testapp/migrations/0005_test_issue45_unique_type_change_part2.py'
103+
adding 'django-mssql-backend-2.8.1/testapp/migrations/0008_test_alter_nullable_in_unique_field.py'
104+
adding 'django-mssql-backend-2.8.1/testapp/migrations/__init__.py'
105+
adding 'django-mssql-backend-2.8.1/testapp/migrations/0004_test_issue45_unique_type_change_part1.py'
106+
adding 'django-mssql-backend-2.8.1/testapp/migrations/0006_test_remove_onetoone_field_part1.py'
107+
adding 'django-mssql-backend-2.8.1/testapp/migrations/0002_test_unique_nullable_part1.py'
108+
adding 'django-mssql-backend-2.8.1/testapp/migrations/0001_initial.py'
109+
adding 'django-mssql-backend-2.8.1/testapp/migrations/0007_test_remove_onetoone_field_part2.py'
110+
adding 'django-mssql-backend-2.8.1/testapp/tests/test_expressions.py'
111+
adding 'django-mssql-backend-2.8.1/testapp/tests/__init__.py'
112+
adding 'django-mssql-backend-2.8.1/testapp/tests/test_constraints.py'
113+
adding 'django-mssql-backend-2.8.1/testapp/tests/test_fields.py'
114+
adding 'django-mssql-backend-2.8.1/django_mssql_backend.egg-info/PKG-INFO'
115+
adding 'django-mssql-backend-2.8.1/django_mssql_backend.egg-info/SOURCES.txt'
116+
adding 'django-mssql-backend-2.8.1/django_mssql_backend.egg-info/requires.txt'
117+
adding 'django-mssql-backend-2.8.1/django_mssql_backend.egg-info/top_level.txt'
118+
adding 'django-mssql-backend-2.8.1/django_mssql_backend.egg-info/dependency_links.txt'
119+
removing 'django-mssql-backend-2.8.1' (and everything under it)

docker/Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
FROM python:3.7
1+
FROM python:3.8
22

33
ENV APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=DontWarn
44

docker/docker-compose.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ services:
1414
- db
1515

1616
db:
17-
image: "mcr.microsoft.com/mssql/server:2017-latest-ubuntu"
17+
image: mcr.microsoft.com/mssql/server:2019-latest
1818
environment:
1919
ACCEPT_EULA: Y
2020
SA_PASSWORD: MyPassword42

sql_server/pyodbc/schema.py

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -240,12 +240,15 @@ def alter_db_table(self, model, old_db_table, new_db_table):
240240

241241
return super().alter_db_table(model, old_db_table, new_db_table)
242242

243-
def _delete_deferred_unique_indexes_for_field(self, field_name):
244-
deferred_statements = self._deferred_unique_indexes.get(field_name, [])
243+
def _delete_deferred_unique_indexes_for_field(self, field):
244+
deferred_statements = self._deferred_unique_indexes.get(str(field), [])
245245
for stmt in deferred_statements:
246246
if stmt in self.deferred_sql:
247247
self.deferred_sql.remove(stmt)
248248

249+
def _add_deferred_unique_index_for_field(self, field, statement):
250+
self._deferred_unique_indexes[str(field)].append(statement)
251+
249252
def _alter_field(self, model, old_field, new_field, old_type, new_type,
250253
old_db_params, new_db_params, strict=False):
251254
"""Actually perform a "physical" (non-ManyToMany) field update."""
@@ -660,7 +663,7 @@ def add_field(self, model, field):
660663
model, [field], sql=self.sql_create_unique_null, suffix="_uniq"
661664
)
662665
self.deferred_sql.append(statement)
663-
self._deferred_unique_indexes[field].append(statement)
666+
self._add_deferred_unique_index_for_field(field, statement)
664667

665668
# Check constraints can go on the column SQL here
666669
db_params = field.db_parameters(connection=self.connection)
@@ -768,7 +771,7 @@ def create_model(self, model):
768771
model, [field], sql=self.sql_create_unique_null, suffix="_uniq"
769772
)
770773
self.deferred_sql.append(statement)
771-
self._deferred_unique_indexes[field].append(statement)
774+
self._add_deferred_unique_index_for_field(field, statement)
772775

773776
# Check constraints can go on the column SQL here
774777
db_params = field.db_parameters(connection=self.connection)

tox.ini

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[tox]
22
envlist =
3-
{py36,py37}-django22,
3+
{py36,py37,py38}-django22,
44
{py36,py37,py38}-django30,
55

66
[testenv]
@@ -12,7 +12,7 @@ whitelist_externals =
1212
/bin/bash
1313

1414
commands =
15-
python manage.py test --keepdb
15+
python manage.py test
1616
python manage.py install_regex_clr test_default
1717
bash test.sh
1818

0 commit comments

Comments
 (0)