Skip to content

Commit c2df4d6

Browse files
author
drh
committed
Recognize certain standard datatypes ("INT", "INTEGER", "REAL", "TEXT", and
"BLOB") and if a column has one of those datatypes, store the type part of the bit-field information in the Column structure to save space. FossilOrigin-Name: d2da62a9df63036b02dadca3798de9e623c2680b3ef0c37d2b18bb88693afd7f
1 parent e48f261 commit c2df4d6

11 files changed

Lines changed: 97 additions & 31 deletions

File tree

manifest

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
C If\sa\sgenerated\scolumn\suses\sthe\soptional\skeywords\sGENERATE\sALWAYS,\stry\sto\savoid\nputting\sthose\skeywords\sin\sthe\stypename\sof\sthe\scolumn.\n[forum:/forumpost/ff3ffe09251c105b|Forum\spost\sff3ffe09251c105b]
2-
D 2021-07-30T20:09:08.819
1+
C Recognize\scertain\sstandard\sdatatypes\s("INT",\s"INTEGER",\s"REAL",\s"TEXT",\sand\n"BLOB")\sand\sif\sa\scolumn\shas\sone\sof\sthose\sdatatypes,\sstore\sthe\stype\spart\sof\nthe\sbit-field\sinformation\sin\sthe\sColumn\sstructure\sto\ssave\sspace.
2+
D 2021-07-30T23:30:30.921
33
F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
44
F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
55
F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724
@@ -488,7 +488,7 @@ F src/btmutex.c 8acc2f464ee76324bf13310df5692a262b801808984c1b79defb2503bbafadb6
488488
F src/btree.c e204a9c8fb4fe5dbb910a863ba487f4af9b5c501254ec4ccbfcdd6b1f65b7fb4
489489
F src/btree.h 74d64b8f28cfa4a894d14d4ed64fa432cd697b98b61708d4351482ae15913e22
490490
F src/btreeInt.h 7bc15a24a02662409ebcd6aeaa1065522d14b7fda71573a2b0568b458f514ae0
491-
F src/build.c fedaf923ea61eed3496f5ef6fca6e3162344faf109e8d0228f61c7a24b92fe6a
491+
F src/build.c e9ff9104d6d64dd2a000ca9cc7d25c80a5b1a3fd2422b4e0d84afee8c8bef78b
492492
F src/callback.c d0b853dd413255d2e337b34545e54d888ea02f20da5ad0e63585b389624c4a6c
493493
F src/complete.c a3634ab1e687055cd002e11b8f43eb75c17da23e
494494
F src/ctime.c 8159d5f706551861c18ec6c8f6bdf105e15ea00367f05d9ab65d31a1077facc1
@@ -500,7 +500,7 @@ F src/expr.c b1bcf90afb7dcc0fae4d81116177e3d02e0803f81fd543c10fcd0691390b6adf
500500
F src/fault.c 460f3e55994363812d9d60844b2a6de88826e007
501501
F src/fkey.c e9063648396c58778f77583a678342fe4a9bc82436bf23c5f9f444f2df0fdaa4
502502
F src/func.c c224240cbc97fa5e9c4fe9acb128716cb835ca045532bca6951b7c45b020c56c
503-
F src/global.c 25ba4d58476f6be29bba9d9d14f7f146b78476d3a4d75ebb8c3b736328afe0f9
503+
F src/global.c 5eba017ebbd887e2365e6e6e815e1619e41406b8946d17594e94116174787df5
504504
F src/hash.c 8d7dda241d0ebdafb6ffdeda3149a412d7df75102cecfc1021c98d6219823b19
505505
F src/hash.h 9d56a9079d523b648774c1784b74b89bd93fac7b365210157482e4319a468f38
506506
F src/hwtime.h cb1d7e3e1ed94b7aa6fde95ae2c2daccc3df826be26fc9ed7fd90d1750ae6144
@@ -549,7 +549,7 @@ F src/shell.c.in 24b99dae8818d1a234732d73f4d5b49f12b510bc62735a41c04e314fafae09e
549549
F src/sqlite.h.in 43fcf0fe2af04081f420a906fc020bde1243851ba44b0aa567a27f94bf8c3145
550550
F src/sqlite3.rc 5121c9e10c3964d5755191c80dd1180c122fc3a8
551551
F src/sqlite3ext.h e97f4e9b509408fea4c4e9bef5a41608dfac343b4d3c7a990dedde1e19af9510
552-
F src/sqliteInt.h 1041c70f63687392665dde29f87f8af27d27bc1e18d29c8b804360fc915c2fde
552+
F src/sqliteInt.h e2fbf849a7e0ee1842a4775952a61c966f9eb25075297dd2f3aff5b5e4418415
553553
F src/sqliteLimit.h d7323ffea5208c6af2734574bae933ca8ed2ab728083caa117c9738581a31657
554554
F src/status.c 4b8bc2a6905163a38b739854a35b826c737333fab5b1f8e03fa7eb9a4799c4c1
555555
F src/table.c 0f141b58a16de7e2fbe81c308379e7279f4c6b50eb08efeec5892794a0ba30d1
@@ -614,7 +614,7 @@ F src/trigger.c 7d16aa09e63226b6d8b3f0fc60b21cbfa596fc406288b2ebcf4266633d1ba222
614614
F src/update.c 30465f9accc854e8a7932b413578027fbb68186132abbb36e01d2022473fc83d
615615
F src/upsert.c df8f1727d62b5987c4fd302cd4d7c0c84ae57cd65683c5a34a740dfe24039235
616616
F src/utf.c ee39565f0843775cc2c81135751ddd93eceb91a673ea2c57f61c76f288b041a0
617-
F src/util.c b2cb568393144b05df06871b2c61b0f0240f1835aee2843c736391507fac2780
617+
F src/util.c 6ca9cf268dfaf2393866990788c0797240e20e7ba7e3a22cd076e6a3c7b1a132
618618
F src/vacuum.c 454973a59fb20bb982efc2df568a098616db6328a0491b6e84e2e07f7333db45
619619
F src/vdbe.c b73a5ec9940185eb001ff8cff2cfd429bb438c7e89f2885e0bfdb56c3ff13386
620620
F src/vdbe.h 25dabb25c7e157b84e59260cfb5b466c3ac103ede9f36f4db371332c47601abe
@@ -747,7 +747,7 @@ F test/busy2.test dbfb61b3265e7a962d3bcd32cd542bbe3d7801edbda6438d35af5aa707cae9
747747
F test/cache.test 13bc046b26210471ca6f2889aceb1ea52dc717de
748748
F test/cacheflush.test af25bb1509df04c1da10e38d8f322d66eceedf61
749749
F test/cachespill.test 895997f84a25b323b166aecb69baab2d6380ea98f9e0bcc688c4493c535cfab9
750-
F test/capi2.test 34a1a9a96d543a2ec2c209696b11b164444f57253b1f2cba1c2e53fadede6c7b
750+
F test/capi2.test 4ee545824adc3eb33bf57ef89f77440b28188ec3da72e5425ff0fcdba32e8d5a
751751
F test/capi3.test 3910a73c38ac76d69778dd9eb481ab7cd6ed59117fc047b4f6056a5c72529de1
752752
F test/capi3b.test efb2b9cfd127efa84433cd7a2d72ce0454ae0dc4
753753
F test/capi3c.test 54e2dc0c8fd7c34ad1590d1be6864397da2438c95a9f5aee2f8fbc60c112e44b
@@ -1062,7 +1062,7 @@ F test/fuzzer1.test 3d4c4b7e547aba5e5511a2991e3e3d07166cfbb8
10621062
F test/fuzzer2.test a85ef814ce071293bce1ad8dffa217cbbaad4c14
10631063
F test/fuzzerfault.test f64c4aef4c9e9edf1d6dc0d3f1e65dcc81e67c996403c88d14f09b74807a42bc
10641064
F test/gcfault.test dd28c228a38976d6336a3fc42d7e5f1ad060cb8c
1065-
F test/gencol1.test 26c55577b15f78069bacf8afee994b74b9d69aa690577db9cff926b10e4e6be2
1065+
F test/gencol1.test 6912c4280d0ad26d6e3d133a93c5abd6db0e00bc5c95d6159131a62ab4e6f586
10661066
F test/genesis.tcl 1e2e2e8e5cc4058549a154ff1892fe5c9de19f98
10671067
F test/having.test a89236dd8d55aa50c4805f82ac9daf64d477a44d712d8209c118978d0ca21ec9
10681068
F test/hexlit.test 4a6a5f46e3c65c4bf1fa06f5dd5a9507a5627751
@@ -1270,7 +1270,7 @@ F test/pcache2.test af7f3deb1a819f77a6d0d81534e97d1cf62cd442
12701270
F test/percentile.test 4243af26b8f3f4555abe166f723715a1f74c77ff
12711271
F test/permutations.test 63da39a4234eed2ccd10bf7872de58e24d53a50d11014dc8a8ab9f252368e880
12721272
F test/pg_common.tcl 3b27542224db1e713ae387459b5d117c836a5f6e328846922993b6d2b7640d9f
1273-
F test/pragma.test 50b91bedea9324d3ab48e793f908ee7d2c7dcf84bfa2281e792838be59641ec8
1273+
F test/pragma.test 30d5bbebd5e9cb5383155cf3f3c81297b98f6642d152e9d4100cf6888630da2c
12741274
F test/pragma2.test e5d5c176360c321344249354c0c16aec46214c9f
12751275
F test/pragma3.test 92a46bbea12322dd94a404f49edcfbfc913a2c98115f0d030a7459bb4712ef31
12761276
F test/pragma4.test ca5e4dfc46adfe490f75d73734f70349d95a199e6510973899e502eef2c8b1f8
@@ -1446,7 +1446,7 @@ F test/tabfunc01.test d6821e7042e5653104dac0c63d75eff24a2415ab1889fc68b5db7fde59
14461446
F test/table.test eb3463b7add9f16a5bb836badf118cf391b809d09fdccd1f79684600d07ec132
14471447
F test/tableapi.test ecbcc29c4ab62c1912c3717c48ea5c5e59f7d64e4a91034e6148bd2b82f177f4
14481448
F test/tableopts.test dba698ba97251017b7c80d738c198d39ab747930
1449-
F test/tclsqlite.test 79a473f5797e317c08f2c4f8192edb3eea6a67329b1087453328b66a7cb31070
1449+
F test/tclsqlite.test 316c96f974f0e6d7480186e3f5bb53413e5ee5480596544a97484888912a365c
14501450
F test/tempdb.test 4cdaa23ddd8acb4d79cbb1b68ccdfd09b0537aaba909ca69a876157c2a2cbd08
14511451
F test/tempdb2.test 353864e96fd3ae2f70773d0ffbf8b1fe48589b02c2ec05013b540879410c3440
14521452
F test/tempfault.test 0c0d349c9a99bf5f374655742577f8712c647900
@@ -1695,7 +1695,7 @@ F test/vtab6.test 8e789f526e6594cf7ae933d1adee0caa87dc9f78
16951695
F test/vtab7.test 70c6f4a1d6177144a8236e4172d5fba92e683440374664ad1f04851fbb335d3c
16961696
F test/vtab8.test e19fa4a538fcd1bb66c22825fa8f71618fb13583
16971697
F test/vtab9.test ea58d2b95d61955f87226381716b2d0b1d4e4f9b
1698-
F test/vtabA.test 1317f06a03597eee29f40a49b6c21e1aaba4285f
1698+
F test/vtabA.test 325a77e7f0f80aa78ab388875c0ad6fb853acc6ac54d85514650b0ae15da24ff
16991699
F test/vtabB.test 04df5dc531b9f44d9ca65b9c1b79f12b5922a796
17001700
F test/vtabC.test 4528f459a13136f982e75614d120aef165f17292
17011701
F test/vtabD.test 05b3f1d77117271671089e48719524b676842e96
@@ -1920,7 +1920,7 @@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93
19201920
F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
19211921
F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
19221922
F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
1923-
P 980f7292afd45a8e73272e2139b55b99ab86167febec9fd0bf0356e8167b2ee9
1924-
R 5e0d17f3eda249159c66a4dab795bade
1923+
P 3c954863f45271a3518acf51fd685a641878811fb5cfcbdbad85154aeccdc902
1924+
R 6b5f2c664834813a7df89f39b77ebda9
19251925
U drh
1926-
Z b92983df8210770e5aba5b5d6965da26
1926+
Z 12d963d3ccf8007e48d95666e4982a9e

manifest.uuid

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
3c954863f45271a3518acf51fd685a641878811fb5cfcbdbad85154aeccdc902
1+
d2da62a9df63036b02dadca3798de9e623c2680b3ef0c37d2b18bb88693afd7f

src/build.c

Lines changed: 30 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1382,6 +1382,9 @@ void sqlite3AddColumn(Parse *pParse, Token sName, Token sType){
13821382
sqlite3 *db = pParse->db;
13831383
u8 hName;
13841384
Column *aNew;
1385+
u8 eType = COLTYPE_CUSTOM;
1386+
u8 szEst = 1;
1387+
char affinity = SQLITE_AFF_BLOB;
13851388

13861389
if( (p = pParse->pNewTable)==0 ) return;
13871390
if( p->nCol+1>db->aLimit[SQLITE_LIMIT_COLUMN] ){
@@ -1407,7 +1410,25 @@ void sqlite3AddColumn(Parse *pParse, Token sName, Token sType){
14071410
}
14081411
}
14091412

1410-
z = sqlite3DbMallocRaw(db, sName.n + sType.n + 2);
1413+
/* Check for standard typenames. For standard typenames we will
1414+
** set the Column.eType field rather than storing the typename after
1415+
** the column name, in order to save space. */
1416+
if( sType.n>=3 ){
1417+
sqlite3DequoteToken(&sType);
1418+
for(i=0; i<SQLITE_N_STDTYPE; i++){
1419+
if( sType.n==sqlite3StdTypeLen[i]
1420+
&& sqlite3_strnicmp(sType.z, sqlite3StdType[i], sType.n)==0
1421+
){
1422+
sType.n = 0;
1423+
eType = i+1;
1424+
affinity = sqlite3StdTypeAffinity[i];
1425+
if( affinity<=SQLITE_AFF_TEXT ) szEst = 5;
1426+
break;
1427+
}
1428+
}
1429+
}
1430+
1431+
z = sqlite3DbMallocRaw(db, sName.n + 1 + sType.n + (sType.n>0) );
14111432
if( z==0 ) return;
14121433
if( IN_RENAME_OBJECT ) sqlite3RenameTokenMap(pParse, (void*)z, &sName);
14131434
memcpy(z, sName.z, sName.n);
@@ -1436,11 +1457,14 @@ void sqlite3AddColumn(Parse *pParse, Token sName, Token sType){
14361457
if( sType.n==0 ){
14371458
/* If there is no type specified, columns have the default affinity
14381459
** 'BLOB' with a default size of 4 bytes. */
1439-
pCol->affinity = SQLITE_AFF_BLOB;
1440-
pCol->szEst = 1;
1460+
pCol->affinity = affinity;
1461+
pCol->eType = eType;
1462+
pCol->szEst = szEst;
14411463
#ifdef SQLITE_ENABLE_SORTER_REFERENCES
1442-
if( 4>=sqlite3GlobalConfig.szSorterRef ){
1443-
pCol->colFlags |= COLFLAG_SORTERREF;
1464+
if( affinity==SQLITE_AFF_BLOB ){
1465+
if( 4>=sqlite3GlobalConfig.szSorterRef ){
1466+
pCol->colFlags |= COLFLAG_SORTERREF;
1467+
}
14441468
}
14451469
#endif
14461470
}else{
@@ -1729,7 +1753,7 @@ void sqlite3AddPrimaryKey(
17291753
}
17301754
if( nTerm==1
17311755
&& pCol
1732-
&& sqlite3StrICmp(sqlite3ColumnType(pCol,""), "INTEGER")==0
1756+
&& pCol->eType==COLTYPE_INTEGER
17331757
&& sortOrder!=SQLITE_SO_DESC
17341758
){
17351759
if( IN_RENAME_OBJECT && pList ){

src/global.c

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -347,3 +347,23 @@ const unsigned char sqlite3OpcodeProperty[] = OPFLG_INITIALIZER;
347347
** Name of the default collating sequence
348348
*/
349349
const char sqlite3StrBINARY[] = "BINARY";
350+
351+
/*
352+
** Standard typenames. These names must match the COLTYPE_* definitions.
353+
** Adjust the SQLITE_N_STDTYPE value if adding or removing entries.
354+
*/
355+
const unsigned char sqlite3StdTypeLen[] = { 4, 3, 7, 4, 4 };
356+
const char sqlite3StdTypeAffinity[] = {
357+
SQLITE_AFF_BLOB,
358+
SQLITE_AFF_INTEGER,
359+
SQLITE_AFF_INTEGER,
360+
SQLITE_AFF_REAL,
361+
SQLITE_AFF_TEXT
362+
};
363+
const char *sqlite3StdType[] = {
364+
"BLOB",
365+
"INT",
366+
"INTEGER",
367+
"REAL",
368+
"TEXT"
369+
};

src/sqliteInt.h

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2037,9 +2037,25 @@ struct Column {
20372037
char affinity; /* One of the SQLITE_AFF_... values */
20382038
u8 szEst; /* Estimated size of value in this column. sizeof(INT)==1 */
20392039
u8 hName; /* Column name hash for faster lookup */
2040+
u8 eType; /* One of the standard types */
20402041
u16 colFlags; /* Boolean properties. See COLFLAG_ defines below */
20412042
};
20422043

2044+
/* Allowed values for Column.eType.
2045+
**
2046+
** Values must match entries in the global constant arrays
2047+
** sqlite3StdTypeLen[] and sqlite3StdType[]. Each value is one more
2048+
** than the offset into these arrays for the corresponding name.
2049+
** Adjust the SQLITE_N_STDTYPE value if adding or removing entries.
2050+
*/
2051+
#define COLTYPE_CUSTOM 0 /* Type appended to zName */
2052+
#define COLTYPE_BLOB 1
2053+
#define COLTYPE_INT 2
2054+
#define COLTYPE_INTEGER 3
2055+
#define COLTYPE_REAL 4
2056+
#define COLTYPE_TEXT 5
2057+
#define SQLITE_N_STDTYPE 5 /* Number of standard types */
2058+
20432059
/* Allowed values for Column.colFlags.
20442060
**
20452061
** Constraints:
@@ -4794,6 +4810,9 @@ void sqlite3ValueApplyAffinity(sqlite3_value *, u8, u8);
47944810
#ifndef SQLITE_AMALGAMATION
47954811
extern const unsigned char sqlite3OpcodeProperty[];
47964812
extern const char sqlite3StrBINARY[];
4813+
extern const unsigned char sqlite3StdTypeLen[];
4814+
extern const char sqlite3StdTypeAffinity[];
4815+
extern const char *sqlite3StdType[];
47974816
extern const unsigned char sqlite3UpperToLower[];
47984817
extern const unsigned char *sqlite3aLTb;
47994818
extern const unsigned char *sqlite3aEQb;

src/util.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,9 @@ int sqlite3Strlen30(const char *z){
9191
char *sqlite3ColumnType(Column *pCol, char *zDflt){
9292
if( pCol->colFlags & COLFLAG_HASTYPE ){
9393
return pCol->zName + strlen(pCol->zName) + 1;
94+
}else if( pCol->eType ){
95+
assert( pCol->eType<=SQLITE_N_STDTYPE );
96+
return (char*)sqlite3StdType[pCol->eType-1];
9497
}else{
9598
return zDflt;
9699
}

test/capi2.test

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -64,13 +64,13 @@ do_test capi2-1.4 {
6464
} {t1 1}
6565
do_test capi2-1.5 {
6666
get_column_names $VM
67-
} {name rowid text INTEGER}
67+
} {name rowid TEXT INTEGER}
6868
do_test capi2-1.6 {
6969
sqlite3_step $VM
7070
} {SQLITE_DONE}
7171
do_test capi2-1.7 {
7272
list [sqlite3_column_count $VM] [get_row_values $VM] [get_column_names $VM]
73-
} {2 {} {name rowid text INTEGER}}
73+
} {2 {} {name rowid TEXT INTEGER}}
7474

7575
# This used to be SQLITE_MISUSE. But now we automatically reset prepared
7676
# statements.
@@ -91,7 +91,7 @@ ifcapable autoreset {
9191
do_test capi2-1.9 {
9292
sqlite3_reset $VM
9393
list [sqlite3_column_count $VM] [get_row_values $VM] [get_column_names $VM]
94-
} {2 {} {name rowid text INTEGER}}
94+
} {2 {} {name rowid TEXT INTEGER}}
9595
do_test capi2-1.10 {
9696
sqlite3_data_count $VM
9797
} {0}
@@ -120,13 +120,13 @@ do_test capi2-2.2 {
120120
lappend r [sqlite3_column_count $VM] \
121121
[get_row_values $VM] \
122122
[get_column_names $VM]
123-
} {SQLITE_ROW 2 {t1 1} {name rowid text INTEGER}}
123+
} {SQLITE_ROW 2 {t1 1} {name rowid TEXT INTEGER}}
124124
do_test capi2-2.3 {
125125
set r [sqlite3_step $VM]
126126
lappend r [sqlite3_column_count $VM] \
127127
[get_row_values $VM] \
128128
[get_column_names $VM]
129-
} {SQLITE_DONE 2 {} {name rowid text INTEGER}}
129+
} {SQLITE_DONE 2 {} {name rowid TEXT INTEGER}}
130130
do_test capi2-2.4 {
131131
sqlite3_finalize $VM
132132
} {SQLITE_OK}
@@ -141,7 +141,7 @@ do_test capi2-2.6 {
141141
lappend r [sqlite3_column_count $VM] \
142142
[get_row_values $VM] \
143143
[get_column_names $VM]
144-
} {SQLITE_DONE 2 {} {name rowid text INTEGER}}
144+
} {SQLITE_DONE 2 {} {name rowid TEXT INTEGER}}
145145
do_test capi2-2.7 {
146146
sqlite3_finalize $VM
147147
} {SQLITE_OK}

test/gencol1.test

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -600,6 +600,6 @@ do_execsql_test gencol1-21.1 {
600600
);
601601
INSERT INTO t1(a) VALUES(5);
602602
SELECT name, type FROM pragma_table_xinfo('t1');
603-
} {a integer b int c text d {} e {int}}
603+
} {a INTEGER b INT c TEXT d {} e INT}
604604

605605
finish_test

test/pragma.test

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -815,7 +815,7 @@ do_test pragma-6.7 {
815815
ORDER BY cid}
816816
} [concat \
817817
{0 one INT 1 -1 0} \
818-
{1 two text 0 {} 0} \
818+
{1 two TEXT 0 {} 0} \
819819
{2 three {VARCHAR(45, 65)} 0 'abcde' 0} \
820820
{3 four REAL 0 X'abcdef' 0} \
821821
{4 five {} 0 CURRENT_TIME 0} \

test/tclsqlite.test

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -166,7 +166,7 @@ do_test tcl-2.1 {
166166
ifcapable schema_pragmas {
167167
do_test tcl-2.2 {
168168
execsql "PRAGMA table_info(t\u0123x)"
169-
} "0 a int 0 {} 0 1 b\u1235 float 0 {} 0"
169+
} "0 a INT 0 {} 0 1 b\u1235 float 0 {} 0"
170170
}
171171
do_test tcl-2.3 {
172172
execsql "INSERT INTO t\u0123x VALUES(1,2.3)"

0 commit comments

Comments
 (0)