Fossil SCM

Do not attempt to access the global_config table if the ~/.fossil database has not been opened.

drh 2007-10-06 16:40 trunk
Commit 3cdb768fca1e7bfbacfab98b193329c43f6d89be
1 file changed +7 -3
+7 -3
--- src/db.c
+++ src/db.c
@@ -837,11 +837,11 @@
837837
char *db_get(const char *zName, char *zDefault){
838838
char *z = 0;
839839
if( g.repositoryOpen ){
840840
z = db_text(0, "SELECT value FROM config WHERE name=%Q", zName);
841841
}
842
- if( z==0 ){
842
+ if( z==0 && g.configOpen ){
843843
z = db_text(0, "SELECT value FROM global_config WHERE name=%Q", zName);
844844
}
845845
if( z==0 ){
846846
z = zDefault;
847847
}
@@ -855,11 +855,15 @@
855855
db_multi_exec("DELETE FROM config WHERE name=%Q", zName);
856856
}
857857
db_end_transaction(0);
858858
}
859859
int db_is_global(const char *zName){
860
- return db_exists("SELECT 1 FROM global_config WHERE name=%Q", zName);
860
+ if( g.configOpen ){
861
+ return db_exists("SELECT 1 FROM global_config WHERE name=%Q", zName);
862
+ }else{
863
+ return 0;
864
+ }
861865
}
862866
int db_get_int(const char *zName, int dflt){
863867
int v;
864868
int rc;
865869
if( g.repositoryOpen ){
@@ -871,11 +875,11 @@
871875
}
872876
db_finalize(&q);
873877
}else{
874878
rc = SQLITE_DONE;
875879
}
876
- if( rc==SQLITE_DONE ){
880
+ if( rc==SQLITE_DONE && g.configOpen ){
877881
v = db_int(dflt, "SELECT value FROM global_config WHERE name=%Q", zName);
878882
}
879883
return v;
880884
}
881885
void db_set_int(const char *zName, int value, int globalFlag){
882886
--- src/db.c
+++ src/db.c
@@ -837,11 +837,11 @@
837 char *db_get(const char *zName, char *zDefault){
838 char *z = 0;
839 if( g.repositoryOpen ){
840 z = db_text(0, "SELECT value FROM config WHERE name=%Q", zName);
841 }
842 if( z==0 ){
843 z = db_text(0, "SELECT value FROM global_config WHERE name=%Q", zName);
844 }
845 if( z==0 ){
846 z = zDefault;
847 }
@@ -855,11 +855,15 @@
855 db_multi_exec("DELETE FROM config WHERE name=%Q", zName);
856 }
857 db_end_transaction(0);
858 }
859 int db_is_global(const char *zName){
860 return db_exists("SELECT 1 FROM global_config WHERE name=%Q", zName);
 
 
 
 
861 }
862 int db_get_int(const char *zName, int dflt){
863 int v;
864 int rc;
865 if( g.repositoryOpen ){
@@ -871,11 +875,11 @@
871 }
872 db_finalize(&q);
873 }else{
874 rc = SQLITE_DONE;
875 }
876 if( rc==SQLITE_DONE ){
877 v = db_int(dflt, "SELECT value FROM global_config WHERE name=%Q", zName);
878 }
879 return v;
880 }
881 void db_set_int(const char *zName, int value, int globalFlag){
882
--- src/db.c
+++ src/db.c
@@ -837,11 +837,11 @@
837 char *db_get(const char *zName, char *zDefault){
838 char *z = 0;
839 if( g.repositoryOpen ){
840 z = db_text(0, "SELECT value FROM config WHERE name=%Q", zName);
841 }
842 if( z==0 && g.configOpen ){
843 z = db_text(0, "SELECT value FROM global_config WHERE name=%Q", zName);
844 }
845 if( z==0 ){
846 z = zDefault;
847 }
@@ -855,11 +855,15 @@
855 db_multi_exec("DELETE FROM config WHERE name=%Q", zName);
856 }
857 db_end_transaction(0);
858 }
859 int db_is_global(const char *zName){
860 if( g.configOpen ){
861 return db_exists("SELECT 1 FROM global_config WHERE name=%Q", zName);
862 }else{
863 return 0;
864 }
865 }
866 int db_get_int(const char *zName, int dflt){
867 int v;
868 int rc;
869 if( g.repositoryOpen ){
@@ -871,11 +875,11 @@
875 }
876 db_finalize(&q);
877 }else{
878 rc = SQLITE_DONE;
879 }
880 if( rc==SQLITE_DONE && g.configOpen ){
881 v = db_int(dflt, "SELECT value FROM global_config WHERE name=%Q", zName);
882 }
883 return v;
884 }
885 void db_set_int(const char *zName, int value, int globalFlag){
886

Keyboard Shortcuts

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