Enhance the table_info pragma so that the pk column shows the order of the
columns in a multi-column primary key. FossilOrigin-Name: 3076a89015071e9b40e728bd55160e3a6ed98820
This commit is contained in:
parent
25846af3be
commit
384b7fe221
14
manifest
14
manifest
@ -1,5 +1,5 @@
|
||||
C More\stest\scases\sfor\sthe\sREGEXP\soperator.\s\sFix\sminor\sbugs\suncovered\sby\sthese\ntest\scases.
|
||||
D 2012-12-31T20:16:35.189
|
||||
C Enhance\sthe\stable_info\spragma\sso\sthat\sthe\spk\scolumn\sshows\sthe\sorder\sof\sthe\ncolumns\sin\sa\smulti-column\sprimary\skey.
|
||||
D 2013-01-01T13:55:31.529
|
||||
F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f
|
||||
F Makefile.in a48faa9e7dd7d556d84f5456eabe5825dd8a6282
|
||||
F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23
|
||||
@ -168,7 +168,7 @@ F src/parse.y 5d5e12772845805fdfeb889163516b84fbb9ae95
|
||||
F src/pcache.c f8043b433a57aba85384a531e3937a804432a346
|
||||
F src/pcache.h 1b5dcc3dc8103d03e625b177023ee67764fa6b7c
|
||||
F src/pcache1.c 9fd22671c270b35131ef480bbc00392b8b5f8ab9
|
||||
F src/pragma.c 1ff115f620d9496fe5018306b644ab9ef7e26a3c
|
||||
F src/pragma.c 8907c559d3127729d3bcedb1fe5c59fc196d3a17
|
||||
F src/prepare.c 931ad0d852a0df48f79adcba6ce79ca5f475625c
|
||||
F src/printf.c 4a9f882f1c1787a8b494a2987765acf9d97ac21f
|
||||
F src/random.c cd4a67b3953b88019f8cd4ccd81394a8ddfaba50
|
||||
@ -654,7 +654,7 @@ F test/pagesize.test 1dd51367e752e742f58e861e65ed7390603827a0
|
||||
F test/pcache.test 065aa286e722ab24f2e51792c1f093bf60656b16
|
||||
F test/pcache2.test a83efe2dec0d392f814bfc998def1d1833942025
|
||||
F test/permutations.test 360b92859c0af814b3fe10b68746936389606501
|
||||
F test/pragma.test a62f73293b0f0d79b0c87f8dd32d46fe53b0bd17
|
||||
F test/pragma.test 5ce333cae37d86cfe9b3add840906e375e2272b0
|
||||
F test/pragma2.test 3a55f82b954242c642f8342b17dffc8b47472947
|
||||
F test/printf.test ec9870c4dce8686a37818e0bf1aba6e6a1863552
|
||||
F test/progress.test 5b075c3c790c7b2a61419bc199db87aaf48b8301
|
||||
@ -1030,7 +1030,7 @@ F tool/vdbe-compress.tcl f12c884766bd14277f4fcedcae07078011717381
|
||||
F tool/warnings-clang.sh f6aa929dc20ef1f856af04a730772f59283631d4
|
||||
F tool/warnings.sh fbc018d67fd7395f440c28f33ef0f94420226381
|
||||
F tool/win/sqlite.vsix 97894c2790eda7b5bce3cc79cb2a8ec2fde9b3ac
|
||||
P 46c8c01b751c1ea7fc02cc35e3b5bb99dbe46c4b
|
||||
R 6e56302eb044cc0fb37d40997bea4520
|
||||
P a611c75061c8e821cb266fcb09759100d4a646b0
|
||||
R e68c4dd2b29a4a981e4da04205873c7d
|
||||
U drh
|
||||
Z d62b4f1d3e09d5165b99ff6799092c00
|
||||
Z 9a369736ae7dc5da841cecf2065e7d10
|
||||
|
@ -1 +1 @@
|
||||
a611c75061c8e821cb266fcb09759100d4a646b0
|
||||
3076a89015071e9b40e728bd55160e3a6ed98820
|
14
src/pragma.c
14
src/pragma.c
@ -948,9 +948,11 @@ void sqlite3Pragma(
|
||||
if( sqlite3ReadSchema(pParse) ) goto pragma_out;
|
||||
pTab = sqlite3FindTable(db, zRight, zDb);
|
||||
if( pTab ){
|
||||
int i;
|
||||
int i, k;
|
||||
int nHidden = 0;
|
||||
Column *pCol;
|
||||
Index *pPk;
|
||||
for(pPk=pTab->pIndex; pPk && pPk->autoIndex!=2; pPk=pPk->pNext){}
|
||||
sqlite3VdbeSetNumCols(v, 6);
|
||||
pParse->nMem = 6;
|
||||
sqlite3VdbeSetColName(v, 0, COLNAME_NAME, "cid", SQLITE_STATIC);
|
||||
@ -975,8 +977,14 @@ void sqlite3Pragma(
|
||||
}else{
|
||||
sqlite3VdbeAddOp2(v, OP_Null, 0, 5);
|
||||
}
|
||||
sqlite3VdbeAddOp2(v, OP_Integer,
|
||||
(pCol->colFlags&COLFLAG_PRIMKEY)!=0, 6);
|
||||
if( (pCol->colFlags & COLFLAG_PRIMKEY)==0 ){
|
||||
k = 0;
|
||||
}else if( pPk==0 ){
|
||||
k = 1;
|
||||
}else{
|
||||
for(k=1; ALWAYS(k<=pTab->nCol) && pPk->aiColumn[k-1]!=i; k++){}
|
||||
}
|
||||
sqlite3VdbeAddOp2(v, OP_Integer, k, 6);
|
||||
sqlite3VdbeAddOp2(v, OP_ResultRow, 1, 6);
|
||||
}
|
||||
}
|
||||
|
@ -534,12 +534,20 @@ do_test pragma-6.2.2 {
|
||||
b DEFAULT (5+3),
|
||||
c TEXT,
|
||||
d INTEGER DEFAULT NULL,
|
||||
e TEXT DEFAULT ''
|
||||
e TEXT DEFAULT '',
|
||||
UNIQUE(b,c,d),
|
||||
PRIMARY KEY(e,b,c)
|
||||
);
|
||||
PRAGMA table_info(t5);
|
||||
}
|
||||
} {0 a TEXT 0 CURRENT_TIMESTAMP 0 1 b {} 0 5+3 0 2 c TEXT 0 <<NULL>> 0 3 d INTEGER 0 NULL 0 4 e TEXT 0 '' 0}
|
||||
} {0 a TEXT 0 CURRENT_TIMESTAMP 0 1 b {} 0 5+3 2 2 c TEXT 0 <<NULL>> 3 3 d INTEGER 0 NULL 0 4 e TEXT 0 '' 1}
|
||||
db nullvalue {}
|
||||
do_test pragma-6.2.3 {
|
||||
execsql {
|
||||
CREATE TABLE t2_3(a,b INTEGER PRIMARY KEY,c);
|
||||
pragma table_info(t2_3)
|
||||
}
|
||||
} {0 a {} 0 {} 0 1 b INTEGER 0 {} 1 2 c {} 0 {} 0}
|
||||
ifcapable {foreignkey} {
|
||||
do_test pragma-6.3.1 {
|
||||
execsql {
|
||||
@ -1619,5 +1627,3 @@ do_test 22.4.3 {
|
||||
} {ok}
|
||||
|
||||
finish_test
|
||||
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user