Fossil SCM

When updating a schema from 1.x to 2.x, temporarily disable defensive mode so that we can remove the length constraint on the BLOB.UUID column.

drh 2021-01-28 20:42 UTC trunk
Commit d4041437b6f40d0cc62f22d2973498d596af325b1d18fed2dd7584aef733df7a
1 file changed +3
--- src/rebuild.c
+++ src/rebuild.c
@@ -156,17 +156,20 @@
156156
/* Search for: length(uuid)==40
157157
** 0123456789 12345 */
158158
int i;
159159
for(i=10; z[i]; i++){
160160
if( z[i]=='=' && strncmp(&z[i-6],"(uuid)==40",10)==0 ){
161
+ int rc = 0;
161162
z[i] = '>';
163
+ sqlite3_db_config(g.db, SQLITE_DBCONFIG_DEFENSIVE, 0, &rc);
162164
db_multi_exec(
163165
"PRAGMA writable_schema=ON;"
164166
"UPDATE repository.sqlite_schema SET sql=%Q WHERE name LIKE 'blob';"
165167
"PRAGMA writable_schema=OFF;",
166168
z
167169
);
170
+ sqlite3_db_config(g.db, SQLITE_DBCONFIG_DEFENSIVE, 1, &rc);
168171
break;
169172
}
170173
}
171174
fossil_free(z);
172175
}
173176
--- src/rebuild.c
+++ src/rebuild.c
@@ -156,17 +156,20 @@
156 /* Search for: length(uuid)==40
157 ** 0123456789 12345 */
158 int i;
159 for(i=10; z[i]; i++){
160 if( z[i]=='=' && strncmp(&z[i-6],"(uuid)==40",10)==0 ){
 
161 z[i] = '>';
 
162 db_multi_exec(
163 "PRAGMA writable_schema=ON;"
164 "UPDATE repository.sqlite_schema SET sql=%Q WHERE name LIKE 'blob';"
165 "PRAGMA writable_schema=OFF;",
166 z
167 );
 
168 break;
169 }
170 }
171 fossil_free(z);
172 }
173
--- src/rebuild.c
+++ src/rebuild.c
@@ -156,17 +156,20 @@
156 /* Search for: length(uuid)==40
157 ** 0123456789 12345 */
158 int i;
159 for(i=10; z[i]; i++){
160 if( z[i]=='=' && strncmp(&z[i-6],"(uuid)==40",10)==0 ){
161 int rc = 0;
162 z[i] = '>';
163 sqlite3_db_config(g.db, SQLITE_DBCONFIG_DEFENSIVE, 0, &rc);
164 db_multi_exec(
165 "PRAGMA writable_schema=ON;"
166 "UPDATE repository.sqlite_schema SET sql=%Q WHERE name LIKE 'blob';"
167 "PRAGMA writable_schema=OFF;",
168 z
169 );
170 sqlite3_db_config(g.db, SQLITE_DBCONFIG_DEFENSIVE, 1, &rc);
171 break;
172 }
173 }
174 fossil_free(z);
175 }
176

Keyboard Shortcuts

Open search /
Next entry (timeline) j
Previous entry (timeline) k
Open focused entry Enter
Show this help ?
Toggle theme Top nav button