author | David Douard <david.douard@logilab.fr> |
Mon, 29 Feb 2016 17:07:56 +0100 | |
changeset 11339 | 67373614e125 |
parent 11289 | 3e69bccc2022 |
permissions | -rw-r--r-- |
11289
3e69bccc2022
[sql gen] Properly create UNIQUE index on non string column. Closes #13728492
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff
changeset
|
1 |
from yams.constraints import UniqueConstraint |
3e69bccc2022
[sql gen] Properly create UNIQUE index on non string column. Closes #13728492
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff
changeset
|
2 |
|
3e69bccc2022
[sql gen] Properly create UNIQUE index on non string column. Closes #13728492
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff
changeset
|
3 |
for rschema in schema.relations(): |
3e69bccc2022
[sql gen] Properly create UNIQUE index on non string column. Closes #13728492
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff
changeset
|
4 |
if rschema.rule or not rschema.final: |
3e69bccc2022
[sql gen] Properly create UNIQUE index on non string column. Closes #13728492
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff
changeset
|
5 |
continue |
3e69bccc2022
[sql gen] Properly create UNIQUE index on non string column. Closes #13728492
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff
changeset
|
6 |
for rdef in rschema.rdefs.values(): |
3e69bccc2022
[sql gen] Properly create UNIQUE index on non string column. Closes #13728492
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff
changeset
|
7 |
if (rdef.object != 'String' |
3e69bccc2022
[sql gen] Properly create UNIQUE index on non string column. Closes #13728492
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff
changeset
|
8 |
and any(isinstance(cstr, UniqueConstraint) for cstr in rdef.constraints)): |
3e69bccc2022
[sql gen] Properly create UNIQUE index on non string column. Closes #13728492
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff
changeset
|
9 |
table = 'cw_{0}'.format(rdef.subject) |
3e69bccc2022
[sql gen] Properly create UNIQUE index on non string column. Closes #13728492
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff
changeset
|
10 |
column = 'cw_{0}'.format(rdef.rtype) |
3e69bccc2022
[sql gen] Properly create UNIQUE index on non string column. Closes #13728492
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff
changeset
|
11 |
repo.system_source.create_index(cnx, table, column, unique=True) |