1
- from sqlalchemy import Column , Table , Index , types
1
+ from sqlalchemy import Column , Table , Index , UniqueConstraint , types
2
2
3
3
from rdflib_sqlalchemy .types import TermType
4
4
7
7
8
8
TABLE_NAME_TEMPLATES = [
9
9
"{interned_id}_asserted_statements" ,
10
- "{interned_id}_literal_statements"
10
+ "{interned_id}_literal_statements" ,
11
11
"{interned_id}_namespace_binds" ,
12
12
"{interned_id}_quoted_statements" ,
13
13
"{interned_id}_type_statements" ,
@@ -24,10 +24,6 @@ def create_asserted_statements_table(interned_id, metadata):
24
24
Column ("object" , TermType , nullable = False ),
25
25
Column ("context" , TermType , nullable = False ),
26
26
Column ("termcomb" , types .Integer , nullable = False , key = "termComb" ),
27
- Index (
28
- "{interned_id}_A_termComb_index" .format (interned_id = interned_id ),
29
- "termComb" ,
30
- ),
31
27
Index (
32
28
"{interned_id}_A_s_index" .format (interned_id = interned_id ),
33
29
"subject" ,
@@ -47,7 +43,11 @@ def create_asserted_statements_table(interned_id, metadata):
47
43
"{interned_id}_A_c_index" .format (interned_id = interned_id ),
48
44
"context" ,
49
45
mysql_length = MYSQL_MAX_INDEX_LENGTH ,
50
- )
46
+ ),
47
+ Index (
48
+ "{interned_id}_A_termComb_index" .format (interned_id = interned_id ),
49
+ "termComb" ,
50
+ ),
51
51
)
52
52
53
53
@@ -60,10 +60,6 @@ def create_type_statements_table(interned_id, metadata):
60
60
Column ("klass" , TermType , nullable = False ),
61
61
Column ("context" , TermType , nullable = False ),
62
62
Column ("termcomb" , types .Integer , nullable = False , key = "termComb" ),
63
- Index (
64
- "{interned_id}_T_termComb_index" .format (interned_id = interned_id ),
65
- "termComb" ,
66
- ),
67
63
Index (
68
64
"{interned_id}_member_index" .format (interned_id = interned_id ),
69
65
"member" ,
@@ -78,7 +74,14 @@ def create_type_statements_table(interned_id, metadata):
78
74
"{interned_id}_c_index" .format (interned_id = interned_id ),
79
75
"context" ,
80
76
mysql_length = MYSQL_MAX_INDEX_LENGTH ,
81
- )
77
+ ),
78
+ Index (
79
+ "{interned_id}_T_termComb_index" .format (interned_id = interned_id ),
80
+ "termComb" ,
81
+ ),
82
+ UniqueConstraint (
83
+ "member" , "klass" , name = "{interned_id}_type_member_klass_key" ,
84
+ ),
82
85
)
83
86
84
87
@@ -94,10 +97,6 @@ def create_literal_statements_table(interned_id, metadata):
94
97
Column ("termcomb" , types .Integer , nullable = False , key = "termComb" ),
95
98
Column ("objlanguage" , types .String (255 ), key = "objLanguage" ),
96
99
Column ("objdatatype" , types .String (255 ), key = "objDatatype" ),
97
- Index (
98
- "{interned_id}_L_termComb_index" .format (interned_id = interned_id ),
99
- "termComb" ,
100
- ),
101
100
Index (
102
101
"{interned_id}_L_s_index" .format (interned_id = interned_id ),
103
102
"subject" ,
@@ -112,7 +111,11 @@ def create_literal_statements_table(interned_id, metadata):
112
111
"{interned_id}_L_c_index" .format (interned_id = interned_id ),
113
112
"context" ,
114
113
mysql_length = MYSQL_MAX_INDEX_LENGTH ,
115
- )
114
+ ),
115
+ Index (
116
+ "{interned_id}_L_termComb_index" .format (interned_id = interned_id ),
117
+ "termComb" ,
118
+ ),
116
119
)
117
120
118
121
@@ -128,10 +131,6 @@ def create_quoted_statements_table(interned_id, metadata):
128
131
Column ("termcomb" , types .Integer , nullable = False , key = "termComb" ),
129
132
Column ("objlanguage" , types .String (255 ), key = "objLanguage" ),
130
133
Column ("objdatatype" , types .String (255 ), key = "objDatatype" ),
131
- Index (
132
- "{interned_id}_Q_termComb_index" .format (interned_id = interned_id ),
133
- "termComb" ,
134
- ),
135
134
Index (
136
135
"{interned_id}_Q_s_index" .format (interned_id = interned_id ),
137
136
"subject" ,
@@ -151,7 +150,11 @@ def create_quoted_statements_table(interned_id, metadata):
151
150
"{interned_id}_Q_c_index" .format (interned_id = interned_id ),
152
151
"context" ,
153
152
mysql_length = MYSQL_MAX_INDEX_LENGTH ,
154
- )
153
+ ),
154
+ Index (
155
+ "{interned_id}_Q_termComb_index" .format (interned_id = interned_id ),
156
+ "termComb" ,
157
+ ),
155
158
)
156
159
157
160
0 commit comments