@@ -86,20 +86,21 @@ def _initialize(self, con):
86
86
87
87
cur = con .execute (
88
88
'select count(*) from sqlite_master where name="systems"' )
89
+ self .version = 2
89
90
if cur .fetchone ()[0 ] == 0 :
90
91
for statement in init_statements :
91
92
con .execute (statement )
92
93
if self .create_indices :
93
94
for statement in index_statements :
94
95
con .execute (statement )
95
96
con .commit ()
96
- self .initialized = True
97
97
else :
98
98
cur = con .execute (
99
99
'select count(*) from sqlite_master where name="user_index"' )
100
100
if cur .fetchone ()[0 ] == 1 :
101
101
# Old version with "user" instead of "username" column
102
102
self .version = 1
103
+ self .initialized = True
103
104
104
105
def _write (self , atoms , keywords , key_value_pairs , data ):
105
106
Database ._write (self , atoms , keywords , key_value_pairs , data )
@@ -198,15 +199,17 @@ def _write(self, atoms, keywords, key_value_pairs, data):
198
199
assert isinstance (value , (str , unicode ))
199
200
text_key_values .append ([key , value , id ])
200
201
201
- if text_key_values :
202
- cur .executemany ('insert into text_key_values values (?, ?, ?)' ,
203
- text_key_values )
204
- if number_key_values :
205
- cur .executemany ('insert into number_key_values values (?, ?, ?)' ,
206
- number_key_values )
207
- if keywords :
208
- cur .executemany ('insert into keywords values (?, ?)' ,
209
- [(keyword , id ) for keyword in keywords ])
202
+ cur .executemany ('insert into text_key_values values (?, ?, ?)' ,
203
+ text_key_values )
204
+ cur .executemany ('insert into number_key_values values (?, ?, ?)' ,
205
+ number_key_values )
206
+ cur .executemany ('insert into keywords values (?, ?)' ,
207
+ [(keyword , id ) for keyword in keywords ])
208
+
209
+ # Insert keys in keywords table also so that it is easy to query
210
+ # for the existance of keys:
211
+ cur .executemany ('insert into keywords values (?, ?)' ,
212
+ [(key , id ) for key in key_value_pairs ])
210
213
211
214
con .commit ()
212
215
con .close ()
0 commit comments