1
0
mirror of https://github.com/sqlite/sqlite.git synced 2025-12-21 13:38:01 +03:00

Fix a long-standing bug in .schema when the argument contains a ".".

FossilOrigin-Name: 404576214fc20161cdcb031d57696d6068506309c8faecd3e4424e5ced28046b
This commit is contained in:
drh
2025-11-16 10:49:51 +00:00
parent 4dc404cef4
commit e20406040a
3 changed files with 11 additions and 12 deletions

View File

@@ -1,5 +1,5 @@
C Fix\sa\sproblem\swith\sthe\snew\scommand-line\sparsing\sin\sthe\sCLI. C Fix\sa\slong-standing\sbug\sin\s.schema\swhen\sthe\sargument\scontains\sa\s".".
D 2025-11-16T02:32:06.514 D 2025-11-16T10:49:51.306
F .fossil-settings/binary-glob 61195414528fb3ea9693577e1980230d78a1f8b0a54c78cf1b9b24d0a409ed6a x F .fossil-settings/binary-glob 61195414528fb3ea9693577e1980230d78a1f8b0a54c78cf1b9b24d0a409ed6a x
F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
@@ -735,7 +735,7 @@ F src/random.c 606b00941a1d7dd09c381d3279a058d771f406c5213c9932bbd93d5587be4b9c
F src/resolve.c 5616fbcf3b833c7c705b24371828215ad0925d0c0073216c4f153348d5753f0a F src/resolve.c 5616fbcf3b833c7c705b24371828215ad0925d0c0073216c4f153348d5753f0a
F src/rowset.c 8432130e6c344b3401a8874c3cb49fefe6873fec593294de077afea2dce5ec97 F src/rowset.c 8432130e6c344b3401a8874c3cb49fefe6873fec593294de077afea2dce5ec97
F src/select.c ba9cd07ffa3277883c1986085f6ddc4320f4d35d5f212ab58df79a7ecc1a576a F src/select.c ba9cd07ffa3277883c1986085f6ddc4320f4d35d5f212ab58df79a7ecc1a576a
F src/shell.c.in d5061f93c48631db375f840d5a2f285721d5fa199a20b1502123992f933aadb5 F src/shell.c.in c1606803c02f9dafc6c9644712be88b8f50cf267fd82c7085f8339de6a158a66
F src/sqlite.h.in 795ce84cc136b4e74d882cf4fab56d2927c20b9af9fd2fcea27760a6fe50851b F src/sqlite.h.in 795ce84cc136b4e74d882cf4fab56d2927c20b9af9fd2fcea27760a6fe50851b
F src/sqlite3.rc 015537e6ac1eec6c7050e17b616c2ffe6f70fca241835a84a4f0d5937383c479 F src/sqlite3.rc 015537e6ac1eec6c7050e17b616c2ffe6f70fca241835a84a4f0d5937383c479
F src/sqlite3ext.h 5d5330f5f8461f5ce74960436ddcfa53ecd09c2b8b23901e22ae38aec3243998 F src/sqlite3ext.h 5d5330f5f8461f5ce74960436ddcfa53ecd09c2b8b23901e22ae38aec3243998
@@ -2176,8 +2176,8 @@ F tool/version-info.c 33d0390ef484b3b1cb685d59362be891ea162123cea181cb8e6d2cf6dd
F tool/warnings-clang.sh bbf6a1e685e534c92ec2bfba5b1745f34fb6f0bc2a362850723a9ee87c1b31a7 F tool/warnings-clang.sh bbf6a1e685e534c92ec2bfba5b1745f34fb6f0bc2a362850723a9ee87c1b31a7
F tool/warnings.sh d924598cf2f55a4ecbc2aeb055c10bd5f48114793e7ba25f9585435da29e7e98 F tool/warnings.sh d924598cf2f55a4ecbc2aeb055c10bd5f48114793e7ba25f9585435da29e7e98
F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f
P eacc9db80de8baa878ebdc3a054538c8998db9a2e46720c0d8b109d62a0cac29 P 3e02804c387c89afde59eef8e464c6011e083e158873e4f8ab1f17bcc12b7c28
R 450d5c3fe2f33369a4fbfa48f61bccbe R 01873a3f151ad28aeba6a62a8ffe1131
U drh U drh
Z ba61afd99c07012ae48b06245fa4f0b1 Z 08514ae94b4a719d2cf12e9dff1abcec
# Remove this line to create a well-formed Fossil manifest. # Remove this line to create a well-formed Fossil manifest.

View File

@@ -1 +1 @@
3e02804c387c89afde59eef8e464c6011e083e158873e4f8ab1f17bcc12b7c28 404576214fc20161cdcb031d57696d6068506309c8faecd3e4424e5ced28046b

View File

@@ -10011,10 +10011,9 @@ static int do_meta_command(const char *zLine, ShellState *p){
sqlite3_finalize(pStmt); sqlite3_finalize(pStmt);
#ifndef SQLITE_OMIT_INTROSPECTION_PRAGMAS #ifndef SQLITE_OMIT_INTROSPECTION_PRAGMAS
if( zName ){ if( zName ){
sqlite3_str_appendf(pSql, sqlite3_str_appendall(pSql,
" UNION ALL SELECT shell_module_schema(name)," " UNION ALL SELECT shell_module_schema(name),"
" 'table', name, name, name, 9e+99, 'main' FROM pragma_module_list", " 'table', name, name, name, 9e+99, 'main' FROM pragma_module_list");
0);
} }
#endif #endif
sqlite3_str_appendf(pSql, ") WHERE ", 0); sqlite3_str_appendf(pSql, ") WHERE ", 0);
@@ -10023,9 +10022,9 @@ static int do_meta_command(const char *zLine, ShellState *p){
bGlob = strchr(zName, '*') != 0 || strchr(zName, '?') != 0 || bGlob = strchr(zName, '*') != 0 || strchr(zName, '?') != 0 ||
strchr(zName, '[') != 0; strchr(zName, '[') != 0;
if( strchr(zName, '.') ){ if( strchr(zName, '.') ){
sqlite3_str_appendf(pSql, "lower(format('%s.%s',sname,tbl_name))", 0); sqlite3_str_appendall(pSql, "lower(format('%%s.%%s',sname,tbl_name))");
}else{ }else{
sqlite3_str_appendf(pSql, "lower(tbl_name)", 0); sqlite3_str_appendall(pSql, "lower(tbl_name)");
} }
if( bGlob ){ if( bGlob ){
sqlite3_str_appendf(pSql, " GLOB %Q AND ", zName); sqlite3_str_appendf(pSql, " GLOB %Q AND ", zName);