Merge the CLI deduceDatabaseType fix from trunk.
FossilOrigin-Name: 82f907016ee75ca288d8ac0664d5c147fbfad42c5f8222211acc3220bd0eb609
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
C Additional\sinformation\sabout\sthe\sunixShm\sshown.
|
||||
D 2025-10-25T14:06:36.401
|
||||
C Merge\sthe\sCLI\sdeduceDatabaseType\sfix\sfrom\strunk.
|
||||
D 2025-10-25T18:36:14.478
|
||||
F .fossil-settings/binary-glob 61195414528fb3ea9693577e1980230d78a1f8b0a54c78cf1b9b24d0a409ed6a x
|
||||
F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
|
||||
F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
|
||||
@@ -736,7 +736,7 @@ F src/random.c 606b00941a1d7dd09c381d3279a058d771f406c5213c9932bbd93d5587be4b9c
|
||||
F src/resolve.c f8d1d011aba0964ff1bdccd049d4d2c2fec217efd90d202a4bb775e926b2c25d
|
||||
F src/rowset.c 8432130e6c344b3401a8874c3cb49fefe6873fec593294de077afea2dce5ec97
|
||||
F src/select.c b95181711d59c36d9789e67f76c4cfec64b99f9629a50be5e6566e117b87d957
|
||||
F src/shell.c.in 8d218cb62f8badb58cb6d91302ca8b6ccdc93232dd2ba39a9ace2e41fd8495cb
|
||||
F src/shell.c.in a1cf350fa00e75eecf21d76e64a3bd2daaf90a5d31c1a2597e59edd7e3e2ee1a
|
||||
F src/sqlite.h.in 3285114481f84812b9d8c1dc41a2dcd48ce4e79f610b8392ae398b56d1800e1e
|
||||
F src/sqlite3.rc 015537e6ac1eec6c7050e17b616c2ffe6f70fca241835a84a4f0d5937383c479
|
||||
F src/sqlite3ext.h 7f236ca1b175ffe03316d974ef57df79b3938466c28d2f95caef5e08c57f3a52
|
||||
@@ -2171,8 +2171,8 @@ F tool/version-info.c 33d0390ef484b3b1cb685d59362be891ea162123cea181cb8e6d2cf6dd
|
||||
F tool/warnings-clang.sh bbf6a1e685e534c92ec2bfba5b1745f34fb6f0bc2a362850723a9ee87c1b31a7
|
||||
F tool/warnings.sh 1ad0169b022b280bcaaf94a7fa231591be96b514230ab5c98fbf15cd7df842dd
|
||||
F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f
|
||||
P 7f8baf64bb722d7dfdfca22d4f11a72113d5ed2b36d6cc6020fb0acf8185b3e7
|
||||
R badf3b0112f208dac0f876102444708e
|
||||
P 85846c7fbeeaf5fccfcbe11a4b87c4ee49781456ccb4da1d090b7823d7b456d6 2a3a02715fa53673531575fa13aee056711139b409367cccc18654e82720c4e6
|
||||
R 8fb566088024c49e26872b2438175877
|
||||
U drh
|
||||
Z e78c789b42ff4545008b7d9424fbdbc2
|
||||
Z a5dc0125f157b62702255a4ec808a651
|
||||
# Remove this line to create a well-formed Fossil manifest.
|
||||
|
||||
+1
-1
@@ -1 +1 @@
|
||||
85846c7fbeeaf5fccfcbe11a4b87c4ee49781456ccb4da1d090b7823d7b456d6
|
||||
82f907016ee75ca288d8ac0664d5c147fbfad42c5f8222211acc3220bd0eb609
|
||||
|
||||
+23
-7
@@ -5650,17 +5650,25 @@ static int session_filter(void *pCtx, const char *zTab){
|
||||
** the type cannot be determined from content.
|
||||
*/
|
||||
int deduceDatabaseType(const char *zName, int dfltZip){
|
||||
FILE *f = sqlite3_fopen(zName, "rb");
|
||||
FILE *f;
|
||||
size_t n;
|
||||
sqlite3 *db = 0;
|
||||
sqlite3_stmt *pStmt = 0;
|
||||
int rc = SHELL_OPEN_UNSPEC;
|
||||
char zBuf[100];
|
||||
if( f==0 ){
|
||||
if( dfltZip && sqlite3_strlike("%.zip",zName,0)==0 ){
|
||||
return SHELL_OPEN_ZIPFILE;
|
||||
}else{
|
||||
return SHELL_OPEN_NORMAL;
|
||||
}
|
||||
if( access(zName,0)!=0 ) goto database_type_by_name;
|
||||
if( sqlite3_open_v2(zName, &db, SQLITE_OPEN_READONLY, 0)==SQLITE_OK
|
||||
&& sqlite3_prepare_v2(db,"SELECT count(*) FROM sqlite_schema",-1,&pStmt,0)
|
||||
==SQLITE_OK
|
||||
&& sqlite3_step(pStmt)==SQLITE_ROW
|
||||
){
|
||||
rc = SHELL_OPEN_NORMAL;
|
||||
}
|
||||
sqlite3_finalize(pStmt);
|
||||
sqlite3_close(db);
|
||||
if( rc==SHELL_OPEN_NORMAL ) return SHELL_OPEN_NORMAL;
|
||||
f = sqlite3_fopen(zName, "rb");
|
||||
if( f==0 ) goto database_type_by_name;
|
||||
n = fread(zBuf, 16, 1, f);
|
||||
if( n==1 && memcmp(zBuf, "SQLite format 3", 16)==0 ){
|
||||
fclose(f);
|
||||
@@ -5682,6 +5690,14 @@ int deduceDatabaseType(const char *zName, int dfltZip){
|
||||
}
|
||||
fclose(f);
|
||||
return rc;
|
||||
|
||||
database_type_by_name:
|
||||
if( dfltZip && sqlite3_strlike("%.zip",zName,0)==0 ){
|
||||
rc = SHELL_OPEN_ZIPFILE;
|
||||
}else{
|
||||
rc = SHELL_OPEN_NORMAL;
|
||||
}
|
||||
return rc;
|
||||
}
|
||||
|
||||
#ifndef SQLITE_OMIT_DESERIALIZE
|
||||
|
||||
Reference in New Issue
Block a user