From: drh Date: Mon, 1 Oct 2018 18:28:42 +0000 (+0000) Subject: Add the extra "hidden" column to the end of the PRAGMA table_vinfo output. X-Git-Tag: version-3.26.0~106^2~2 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=d7dc0a36cc94e4b1e00751404997006b8c85edc0;p=thirdparty%2Fsqlite.git Add the extra "hidden" column to the end of the PRAGMA table_vinfo output. FossilOrigin-Name: cf1b76135f511530dcc7b82f78c952bf97ebcddb40be06f713f9f2326915fabe --- diff --git a/manifest b/manifest index f617858a9c..25f7ffaa95 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Bring\sthe\sPRAGMA\stable_vinfo\sstatement\sup\sto\sdate\swith\strunk. -D 2018-10-01T17:15:17.712 +C Add\sthe\sextra\s"hidden"\scolumn\sto\sthe\send\sof\sthe\sPRAGMA\stable_vinfo\soutput. +D 2018-10-01T18:28:42.916 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea F Makefile.in 01e95208a78b57d056131382c493c963518f36da4c42b12a97eb324401b3a334 @@ -496,8 +496,8 @@ F src/parse.y 6840fe7c0b5eb4dd25ee5d075213bc8255ed4c0678d71bfb6744d0520d91c179 F src/pcache.c 4196eb6ed3bbf00b80596c8e0b4f50e57eb7d890c19fb27a7354306abb7f983d F src/pcache.h 072f94d29281cffd99e46c1539849f248c4b56ae7684c1f36626797fee375170 F src/pcache1.c 716975564c15eb6679e97f734cec1bfd6c16ac3d4010f05f1f8e509fc7d19880 -F src/pragma.c e49a1f19fba8cf73cc021d3603ea78ab4fd014387eb8e6d9254df7a92a4d2b5b -F src/pragma.h 6eefd8c5b4313106ec739189cf0e496fc654e2eeb42040471d564dd6cf219b7a +F src/pragma.c a656ff043a03bd94153e6d731a3fbf1bb420207edc969d8fc04b4d2448387901 +F src/pragma.h 32e7736d98684ecb190765eb51bc60aff6b30e081c03a0325ec768344e3fc495 F src/prepare.c f8e260d940a0e08494c0f30744521b2f832d7263eca9d02b050cea0ba144b097 F src/printf.c 0f1177cf1dd4d7827bf64d840768514ec76409abecaca9e8b577dbd065150381 F src/random.c 80f5d666f23feb3e6665a6ce04c7197212a88384 @@ -1703,7 +1703,7 @@ F tool/mkmsvcmin.tcl cad0c7b54d7dd92bc87d59f36d4cc4f070eb2e625f14159dc2f5c4204e6 F tool/mkopcodec.tcl d1b6362bd3aa80d5520d4d6f3765badf01f6c43c F tool/mkopcodeh.tcl 352a4319c0ad869eb26442bf7c3b015aa15594c21f1cce5a6420dbe999367c21 F tool/mkopts.tcl 680f785fdb09729fd9ac50632413da4eadbdf9071535e3f26d03795828ab07fa -F tool/mkpragmatab.tcl 75de913fcf553b7a2e824cfa1ec7def195a18bd5454a3d1a31363531440ddb80 +F tool/mkpragmatab.tcl 03d3373f6f98a6a195a5bc78ee4b2b276eb4b692e991304c49c8f03f35c75755 F tool/mkshellc.tcl 1f45770aea226ac093a9c72f718efbb88a2a2833409ec2e1c4cecae4202626f5 F tool/mksourceid.c d458f9004c837bee87a6382228ac20d3eae3c49ea3b0a5aace936f8b60748d3b F tool/mkspeedsql.tcl a1a334d288f7adfe6e996f2e712becf076745c97 @@ -1770,7 +1770,7 @@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93 F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0 -P 8bcd1a59560aa7ea73e6529e5c14ece8ac09bf7e99efdcfd388fead39846b6bf 8ac2cdda68f92b0352bc7f0b4be5fca4bb58565ca65055fb34153cc284ed6922 -R bd732e5d21844f33cc33bac99fb310a8 +P 6f606f99231f88ae5ff719d0ce21afc4b844490102c27ac20aa606baaf78d8d6 +R 8168cb89d6e5deec90702b5288566db2 U drh -Z dbdcb40d11c49c4a64c4b70e1aed2a0b +Z a68eabb459073457887cbb002b95bf23 diff --git a/manifest.uuid b/manifest.uuid index bc4f7bafb3..2122c4fb06 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -6f606f99231f88ae5ff719d0ce21afc4b844490102c27ac20aa606baaf78d8d6 \ No newline at end of file +cf1b76135f511530dcc7b82f78c952bf97ebcddb40be06f713f9f2326915fabe \ No newline at end of file diff --git a/src/pragma.c b/src/pragma.c index b0884895b4..fd08cc202c 100644 --- a/src/pragma.c +++ b/src/pragma.c @@ -1090,11 +1090,12 @@ void sqlite3Pragma( int nHidden = 0; Column *pCol; Index *pPk = sqlite3PrimaryKeyIndex(pTab); - pParse->nMem = 6; + pParse->nMem = 7; sqlite3CodeVerifySchema(pParse, iDb); sqlite3ViewGetColumnNames(pParse, pTab); for(i=0, pCol=pTab->aCol; inCol; i++, pCol++){ - if( IsHiddenColumn(pCol) && pPragma->iArg==0 ){ + int isHidden = IsHiddenColumn(pCol); + if( isHidden && pPragma->iArg==0 ){ nHidden++; continue; } @@ -1106,13 +1107,14 @@ void sqlite3Pragma( for(k=1; k<=pTab->nCol && pPk->aiColumn[k-1]!=i; k++){} } assert( pCol->pDflt==0 || pCol->pDflt->op==TK_SPAN ); - sqlite3VdbeMultiLoad(v, 1, "issisi", + sqlite3VdbeMultiLoad(v, 1, pPragma->iArg ? "issisii" : "issisi", i-nHidden, pCol->zName, sqlite3ColumnType(pCol,""), pCol->notNull ? 1 : 0, pCol->pDflt ? pCol->pDflt->u.zToken : 0, - k); + k, + isHidden); } } } diff --git a/src/pragma.h b/src/pragma.h index 389f2f4117..371453649a 100644 --- a/src/pragma.h +++ b/src/pragma.h @@ -69,57 +69,64 @@ */ static const char *const pragCName[] = { /* 0 */ "cache_size", /* Used by: default_cache_size */ - /* 1 */ "cid", /* Used by: table_info table_vinfo */ + /* 1 */ "cid", /* Used by: table_info */ /* 2 */ "name", /* 3 */ "type", /* 4 */ "notnull", /* 5 */ "dflt_value", /* 6 */ "pk", - /* 7 */ "tbl", /* Used by: stats */ - /* 8 */ "idx", - /* 9 */ "wdth", - /* 10 */ "hght", - /* 11 */ "flgs", - /* 12 */ "seqno", /* Used by: index_info */ - /* 13 */ "cid", - /* 14 */ "name", - /* 15 */ "seqno", /* Used by: index_xinfo */ - /* 16 */ "cid", - /* 17 */ "name", - /* 18 */ "desc", - /* 19 */ "coll", - /* 20 */ "key", - /* 21 */ "seq", /* Used by: index_list */ - /* 22 */ "name", - /* 23 */ "unique", - /* 24 */ "origin", - /* 25 */ "partial", - /* 26 */ "seq", /* Used by: database_list */ - /* 27 */ "name", - /* 28 */ "file", - /* 29 */ "name", /* Used by: function_list */ - /* 30 */ "builtin", - /* 31 */ "name", /* Used by: module_list pragma_list */ - /* 32 */ "seq", /* Used by: collation_list */ - /* 33 */ "name", - /* 34 */ "id", /* Used by: foreign_key_list */ - /* 35 */ "seq", - /* 36 */ "table", - /* 37 */ "from", - /* 38 */ "to", - /* 39 */ "on_update", - /* 40 */ "on_delete", - /* 41 */ "match", - /* 42 */ "table", /* Used by: foreign_key_check */ - /* 43 */ "rowid", - /* 44 */ "parent", - /* 45 */ "fkid", - /* 46 */ "busy", /* Used by: wal_checkpoint */ - /* 47 */ "log", - /* 48 */ "checkpointed", - /* 49 */ "timeout", /* Used by: busy_timeout */ - /* 50 */ "database", /* Used by: lock_status */ - /* 51 */ "status", + /* 7 */ "cid", /* Used by: table_vinfo */ + /* 8 */ "name", + /* 9 */ "type", + /* 10 */ "notnull", + /* 11 */ "dflt_value", + /* 12 */ "pk", + /* 13 */ "hidden", + /* 14 */ "tbl", /* Used by: stats */ + /* 15 */ "idx", + /* 16 */ "wdth", + /* 17 */ "hght", + /* 18 */ "flgs", + /* 19 */ "seqno", /* Used by: index_info */ + /* 20 */ "cid", + /* 21 */ "name", + /* 22 */ "seqno", /* Used by: index_xinfo */ + /* 23 */ "cid", + /* 24 */ "name", + /* 25 */ "desc", + /* 26 */ "coll", + /* 27 */ "key", + /* 28 */ "seq", /* Used by: index_list */ + /* 29 */ "name", + /* 30 */ "unique", + /* 31 */ "origin", + /* 32 */ "partial", + /* 33 */ "seq", /* Used by: database_list */ + /* 34 */ "name", + /* 35 */ "file", + /* 36 */ "name", /* Used by: function_list */ + /* 37 */ "builtin", + /* 38 */ "name", /* Used by: module_list pragma_list */ + /* 39 */ "seq", /* Used by: collation_list */ + /* 40 */ "name", + /* 41 */ "id", /* Used by: foreign_key_list */ + /* 42 */ "seq", + /* 43 */ "table", + /* 44 */ "from", + /* 45 */ "to", + /* 46 */ "on_update", + /* 47 */ "on_delete", + /* 48 */ "match", + /* 49 */ "table", /* Used by: foreign_key_check */ + /* 50 */ "rowid", + /* 51 */ "parent", + /* 52 */ "fkid", + /* 53 */ "busy", /* Used by: wal_checkpoint */ + /* 54 */ "log", + /* 55 */ "checkpointed", + /* 56 */ "timeout", /* Used by: busy_timeout */ + /* 57 */ "database", /* Used by: lock_status */ + /* 58 */ "status", }; /* Definitions of all built-in pragmas */ @@ -165,7 +172,7 @@ static const PragmaName aPragmaName[] = { {/* zName: */ "busy_timeout", /* ePragTyp: */ PragTyp_BUSY_TIMEOUT, /* ePragFlg: */ PragFlg_Result0, - /* ColNames: */ 49, 1, + /* ColNames: */ 56, 1, /* iArg: */ 0 }, #if !defined(SQLITE_OMIT_PAGER_PRAGMAS) {/* zName: */ "cache_size", @@ -202,7 +209,7 @@ static const PragmaName aPragmaName[] = { {/* zName: */ "collation_list", /* ePragTyp: */ PragTyp_COLLATION_LIST, /* ePragFlg: */ PragFlg_Result0, - /* ColNames: */ 32, 2, + /* ColNames: */ 39, 2, /* iArg: */ 0 }, #endif #if !defined(SQLITE_OMIT_COMPILEOPTION_DIAGS) @@ -237,7 +244,7 @@ static const PragmaName aPragmaName[] = { {/* zName: */ "database_list", /* ePragTyp: */ PragTyp_DATABASE_LIST, /* ePragFlg: */ PragFlg_NeedSchema|PragFlg_Result0, - /* ColNames: */ 26, 3, + /* ColNames: */ 33, 3, /* iArg: */ 0 }, #endif #if !defined(SQLITE_OMIT_PAGER_PRAGMAS) && !defined(SQLITE_OMIT_DEPRECATED) @@ -274,14 +281,14 @@ static const PragmaName aPragmaName[] = { {/* zName: */ "foreign_key_check", /* ePragTyp: */ PragTyp_FOREIGN_KEY_CHECK, /* ePragFlg: */ PragFlg_NeedSchema|PragFlg_Result0, - /* ColNames: */ 42, 4, + /* ColNames: */ 49, 4, /* iArg: */ 0 }, #endif #if !defined(SQLITE_OMIT_FOREIGN_KEY) {/* zName: */ "foreign_key_list", /* ePragTyp: */ PragTyp_FOREIGN_KEY_LIST, /* ePragFlg: */ PragFlg_NeedSchema|PragFlg_Result1|PragFlg_SchemaOpt, - /* ColNames: */ 34, 8, + /* ColNames: */ 41, 8, /* iArg: */ 0 }, #endif #if !defined(SQLITE_OMIT_FLAG_PRAGMAS) @@ -317,7 +324,7 @@ static const PragmaName aPragmaName[] = { {/* zName: */ "function_list", /* ePragTyp: */ PragTyp_FUNCTION_LIST, /* ePragFlg: */ PragFlg_Result0, - /* ColNames: */ 29, 2, + /* ColNames: */ 36, 2, /* iArg: */ 0 }, #endif #endif @@ -353,17 +360,17 @@ static const PragmaName aPragmaName[] = { {/* zName: */ "index_info", /* ePragTyp: */ PragTyp_INDEX_INFO, /* ePragFlg: */ PragFlg_NeedSchema|PragFlg_Result1|PragFlg_SchemaOpt, - /* ColNames: */ 12, 3, + /* ColNames: */ 19, 3, /* iArg: */ 0 }, {/* zName: */ "index_list", /* ePragTyp: */ PragTyp_INDEX_LIST, /* ePragFlg: */ PragFlg_NeedSchema|PragFlg_Result1|PragFlg_SchemaOpt, - /* ColNames: */ 21, 5, + /* ColNames: */ 28, 5, /* iArg: */ 0 }, {/* zName: */ "index_xinfo", /* ePragTyp: */ PragTyp_INDEX_INFO, /* ePragFlg: */ PragFlg_NeedSchema|PragFlg_Result1|PragFlg_SchemaOpt, - /* ColNames: */ 15, 6, + /* ColNames: */ 22, 6, /* iArg: */ 1 }, #endif #if !defined(SQLITE_OMIT_INTEGRITY_CHECK) @@ -415,7 +422,7 @@ static const PragmaName aPragmaName[] = { {/* zName: */ "lock_status", /* ePragTyp: */ PragTyp_LOCK_STATUS, /* ePragFlg: */ PragFlg_Result0, - /* ColNames: */ 50, 2, + /* ColNames: */ 57, 2, /* iArg: */ 0 }, #endif #if !defined(SQLITE_OMIT_PAGER_PRAGMAS) @@ -441,7 +448,7 @@ static const PragmaName aPragmaName[] = { {/* zName: */ "module_list", /* ePragTyp: */ PragTyp_MODULE_LIST, /* ePragFlg: */ PragFlg_Result0, - /* ColNames: */ 31, 1, + /* ColNames: */ 38, 1, /* iArg: */ 0 }, #endif #endif @@ -474,7 +481,7 @@ static const PragmaName aPragmaName[] = { {/* zName: */ "pragma_list", /* ePragTyp: */ PragTyp_PRAGMA_LIST, /* ePragFlg: */ PragFlg_Result0, - /* ColNames: */ 31, 1, + /* ColNames: */ 38, 1, /* iArg: */ 0 }, #endif #if !defined(SQLITE_OMIT_FLAG_PRAGMAS) @@ -561,7 +568,7 @@ static const PragmaName aPragmaName[] = { {/* zName: */ "stats", /* ePragTyp: */ PragTyp_STATS, /* ePragFlg: */ PragFlg_NeedSchema|PragFlg_Result0|PragFlg_SchemaReq, - /* ColNames: */ 7, 5, + /* ColNames: */ 14, 5, /* iArg: */ 0 }, #endif #if !defined(SQLITE_OMIT_PAGER_PRAGMAS) @@ -580,7 +587,7 @@ static const PragmaName aPragmaName[] = { {/* zName: */ "table_vinfo", /* ePragTyp: */ PragTyp_TABLE_INFO, /* ePragFlg: */ PragFlg_NeedSchema|PragFlg_Result1|PragFlg_SchemaOpt, - /* ColNames: */ 1, 6, + /* ColNames: */ 7, 7, /* iArg: */ 1 }, #endif #if !defined(SQLITE_OMIT_PAGER_PRAGMAS) @@ -645,7 +652,7 @@ static const PragmaName aPragmaName[] = { {/* zName: */ "wal_checkpoint", /* ePragTyp: */ PragTyp_WAL_CHECKPOINT, /* ePragFlg: */ PragFlg_NeedSchema, - /* ColNames: */ 46, 3, + /* ColNames: */ 53, 3, /* iArg: */ 0 }, #endif #if !defined(SQLITE_OMIT_FLAG_PRAGMAS) @@ -656,4 +663,4 @@ static const PragmaName aPragmaName[] = { /* iArg: */ SQLITE_WriteSchema }, #endif }; -/* Number of pragmas: 61 on by default, 78 total. */ +/* Number of pragmas: 62 on by default, 79 total. */ diff --git a/tool/mkpragmatab.tcl b/tool/mkpragmatab.tcl index 26b7e6e0b6..dd0836fba5 100644 --- a/tool/mkpragmatab.tcl +++ b/tool/mkpragmatab.tcl @@ -228,7 +228,7 @@ set pragma_def { TYPE: TABLE_INFO FLAG: NeedSchema Result1 SchemaOpt ARG: 1 - COLS: cid name type notnull dflt_value pk + COLS: cid name type notnull dflt_value pk hidden IF: !defined(SQLITE_OMIT_SCHEMA_PRAGMAS) NAME: stats