mirror of
https://github.com/sqlite/sqlite.git
synced 2026-10-23 21:49:02 +03:00
New test cases for QRF
FossilOrigin-Name: e49c63e31888c6787ab13f736d58ff985a24c3f98b475e05c30e8b244afffb80
This commit is contained in:
@@ -537,13 +537,20 @@ static int qrfIsVt100(const unsigned char *z){
|
||||
|
||||
/*
|
||||
** Return the length of a string in display characters.
|
||||
** Multibyte UTF8 characters count as a single character
|
||||
** for single-width characters, or as two characters for
|
||||
** double-width characters.
|
||||
**
|
||||
** Most characters of the input string count as 1, including
|
||||
** multi-byte UTF8 characters. However, zero-width unicode
|
||||
** characters and VT100 escape sequences count as zero, and
|
||||
** double-width characters count as two.
|
||||
**
|
||||
** The definition of "zero-width" and "double-width" characters
|
||||
** is not precise. It depends on the output device, to some extent,
|
||||
** and it varies according to the Unicode version. This routine
|
||||
** makes the best guess that it can.
|
||||
*/
|
||||
static int qrfDisplayLength(const char *zIn){
|
||||
size_t sqlite3_qrf_wcswidth(const char *zIn){
|
||||
const unsigned char *z = (const unsigned char*)zIn;
|
||||
int n = 0;
|
||||
size_t n = 0;
|
||||
while( *z ){
|
||||
if( z[0]<' ' ){
|
||||
int k;
|
||||
@@ -2198,7 +2205,7 @@ static void qrfExplain(Qrf *p){
|
||||
int len;
|
||||
if( i==nArg-1 ) w = 0;
|
||||
if( zVal==0 ) zVal = "";
|
||||
len = qrfDisplayLength(zVal);
|
||||
len = (int)sqlite3_qrf_wcswidth(zVal);
|
||||
if( len>w ){
|
||||
w = len;
|
||||
zSep = " ";
|
||||
@@ -2388,7 +2395,7 @@ static void qrfOneSimpleRow(Qrf *p){
|
||||
int sz;
|
||||
p->u.sLine.azCol[i] = sqlite3_column_name(p->pStmt, i);
|
||||
if( p->u.sLine.azCol[i]==0 ) p->u.sLine.azCol[i] = "unknown";
|
||||
sz = qrfDisplayLength(p->u.sLine.azCol[i]);
|
||||
sz = (int)sqlite3_qrf_wcswidth(p->u.sLine.azCol[i]);
|
||||
if( sz > p->u.sLine.mxColWth ) p->u.sLine.mxColWth = sz;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -176,13 +176,21 @@ int sqlite3_format_query_result(
|
||||
** character c. For normal characters, the answer is always 1. But the
|
||||
** estimate might be 0 or 2 for zero-width and double-width characters.
|
||||
**
|
||||
** Different display devices display unicode using different widths. So
|
||||
** Different devices display unicode using different widths. So
|
||||
** it is impossible to know that true display width with 100% accuracy.
|
||||
** Inaccuracies in the width estimates might cause columns to be misaligned.
|
||||
** Unfortunately, there is nothing we can do about that.
|
||||
*/
|
||||
int sqlite3_qrf_wcwidth(int c);
|
||||
|
||||
/*
|
||||
** Return an estimate of the number of display columns used by the
|
||||
** string in the argument. The width of individual characters is
|
||||
** determined as for sqlite3_qrf_wcwidth(). VT100 escape code sequences
|
||||
** are assigned a width of zero.
|
||||
*/
|
||||
size_t sqlite3_qrf_wcswidth(const char*);
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
||||
18
manifest
18
manifest
@@ -1,5 +1,5 @@
|
||||
C Fix\sa\sharmless\scompiler\swarning\sin\sthe\sprevious\scheck-in.
|
||||
D 2025-12-02T15:01:29.826
|
||||
C New\stest\scases\sfor\sQRF
|
||||
D 2025-12-02T18:37:49.618
|
||||
F .fossil-settings/binary-glob 61195414528fb3ea9693577e1980230d78a1f8b0a54c78cf1b9b24d0a409ed6a x
|
||||
F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
|
||||
F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
|
||||
@@ -418,8 +418,8 @@ F ext/misc/zipfile.c 09e6e3a3ff40a99677de3c0bc6569bd5f4709b1844ac3d1c1452a456c5a
|
||||
F ext/misc/zorder.c bddff2e1b9661a90c95c2a9a9c7ecd8908afab5763256294dd12d609d4664eee
|
||||
F ext/qrf/README.md 86fc5c3c5e3eddbe54fc1235cbdc52b8c2c0732791d224345c3014cd45c4c0e7
|
||||
F ext/qrf/dev-notes.md e68a6d91ce4c7eb296ef2daadc2bb79c95c317ad15b9fafe40850c67b29c2430
|
||||
F ext/qrf/qrf.c 425d02cffcc5b5fe9ff5817794bf751b1fdd6912f570c354272429ce1262b866
|
||||
F ext/qrf/qrf.h 322d48537a5aa39c206c2ec0764a7938ea7662a8c25be1c4e9d742789609ba1e
|
||||
F ext/qrf/qrf.c c50368ea2be3ab67bd6698d8b34bf70210d3fbf6b3659ed328543e5ec8d69eff
|
||||
F ext/qrf/qrf.h 2cd7bd43579c522d3ae5c16034c7fdf41085684189811ae8e18ebc932a1cc79f
|
||||
F ext/rbu/rbu.c 801450b24eaf14440d8fd20385aacc751d5c9d6123398df41b1b5aa804bf4ce8
|
||||
F ext/rbu/rbu1.test 25870dd7db7eb5597e2b4d6e29e7a7e095abf332660f67d89959552ce8f8f255
|
||||
F ext/rbu/rbu10.test 7c22caa32c2ff26983ca8320779a31495a6555737684af7aba3daaf762ef3363
|
||||
@@ -745,7 +745,7 @@ F src/sqliteInt.h a89c3a9296928dffcb4c287df176a739f9cf620c7c9d33aec59e8efb9b39cb
|
||||
F src/sqliteLimit.h 0a5516b4ec192a205c541e05f67009028a9451dc6678aae4cf8e68596903c246
|
||||
F src/status.c 7565d63a79aa2f326339a24a0461a60096d0bd2bce711fefb50b5c89335f3592
|
||||
F src/table.c 0f141b58a16de7e2fbe81c308379e7279f4c6b50eb08efeec5892794a0ba30d1
|
||||
F src/tclsqlite.c ec2ad3fbf5390c3d4307bc9d1f2a37a9c5d726b5309769dc770ab37f6812152d
|
||||
F src/tclsqlite.c 4b6f6b142b951a8a127e0cbd2e37284fc71f8e6a391ec8c6188fb831b51ec0b8
|
||||
F src/tclsqlite.h 614b3780a62522bc9f8f2b9fb22689e8009958e7aa77e572d0f3149050af348a
|
||||
F src/test1.c 0e71fbcb484a271564e98e0158192c28c24f5521594218c3ba48bcb4cf634f91
|
||||
F src/test2.c 62f0830958f9075692c29c6de51b495ae8969e1bef85f239ffcd9ba5fb44a5ff
|
||||
@@ -1515,6 +1515,8 @@ F test/qrf01.test 48c86e90f606739e67b73937babb662ef0edf1ede06954489c588815fa17b5
|
||||
F test/qrf02.test 39b4afdc000bedccdafc0aecf17638df67a67aaa2d2942865ae6abcc48ba0e92
|
||||
F test/qrf03.test ad7fa339fb46b26b08625f3a77a4827bdee9f0dad402d8ddc1fcb8f05aa64a54
|
||||
F test/qrf04.test 0894692c998d2401dcc33449c02051b503ecce0c94217be54fb007c82d2d1379
|
||||
F test/qrf05.test 8ade5bfa7ef0b448e531687203fa8ae9ef41f1d7e4c11d5ba0c4846af75b13d5
|
||||
F test/qrf06.test 60ee6a77955a28ff7ab4e418ea71ca7ab8d24d993783a46ec0f7f4223174fabd
|
||||
F test/queryonly.test 5f653159e0f552f0552d43259890c1089391dcca
|
||||
F test/quick.test 1681febc928d686362d50057c642f77a02c62e57
|
||||
F test/quickcheck.test a4b7e878cd97e46108291c409b0bf8214f29e18fddd68a42bc5c1375ad1fb80a
|
||||
@@ -2181,8 +2183,8 @@ F tool/version-info.c 33d0390ef484b3b1cb685d59362be891ea162123cea181cb8e6d2cf6dd
|
||||
F tool/warnings-clang.sh bbf6a1e685e534c92ec2bfba5b1745f34fb6f0bc2a362850723a9ee87c1b31a7
|
||||
F tool/warnings.sh d924598cf2f55a4ecbc2aeb055c10bd5f48114793e7ba25f9585435da29e7e98
|
||||
F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f
|
||||
P c872bd1ee7b219e055f40e43766e4ed6bc2d2ca8cb92577cd3560f4173b1f257
|
||||
R c46cfff780eeed3878512057a17d323b
|
||||
P 601c40a1d9e1bcd9c453210c275001543d1533af25b4ccf399d5ef4ea1328950
|
||||
R db3be16f518798aa64811be276402ae9
|
||||
U drh
|
||||
Z 089d78bdb228ed07162c6c905e40e2c9
|
||||
Z c58c2647d0ec0d77cab1c57aa88aaed0
|
||||
# Remove this line to create a well-formed Fossil manifest.
|
||||
|
||||
@@ -1 +1 @@
|
||||
601c40a1d9e1bcd9c453210c275001543d1533af25b4ccf399d5ef4ea1328950
|
||||
e49c63e31888c6787ab13f736d58ff985a24c3f98b475e05c30e8b244afffb80
|
||||
|
||||
@@ -2361,6 +2361,10 @@ static int dbQrf(SqliteDb *pDb, int objc, Tcl_Obj *const*objv){
|
||||
}else if( strcmp(zArg,"-null")==0 ){
|
||||
qrf.zNull = Tcl_GetString(objv[i+1]);
|
||||
i++;
|
||||
}else if( strcmp(zArg,"-version")==0 ){
|
||||
/* Undocumented. Testing use only */
|
||||
qrf.iVersion = atoi(Tcl_GetString(objv[i+1]));
|
||||
i++;
|
||||
}else{
|
||||
Tcl_AppendResult(pDb->interp, "unknown option: ", zArg, (char*)0);
|
||||
rc = TCL_ERROR;
|
||||
|
||||
37
test/qrf05.test
Normal file
37
test/qrf05.test
Normal file
@@ -0,0 +1,37 @@
|
||||
# 2025-12-02
|
||||
#
|
||||
# The author disclaims copyright to this source code. In place of
|
||||
# a legal notice, here is a blessing:
|
||||
#
|
||||
# May you do good and not evil.
|
||||
# May you find forgiveness for yourself and forgive others.
|
||||
# May you share freely, never taking more than you give.
|
||||
#
|
||||
#***********************************************************************
|
||||
#
|
||||
# Test cases for the Query Result Formatter (QRF)
|
||||
#
|
||||
|
||||
set testdir [file dirname $argv0]
|
||||
source $testdir/tester.tcl
|
||||
set testprefix qrf05
|
||||
|
||||
do_execsql_test 1.0 {
|
||||
CREATE TABLE t1(a INT NOT NULL);
|
||||
}
|
||||
do_test 1.1 {
|
||||
set rc [catch {db format -style list \
|
||||
{INSERT INTO t1 VALUES(123) RETURNING *}} msg]
|
||||
list $rc [string trim $msg]
|
||||
} {0 123}
|
||||
do_test 1.2 {
|
||||
set rc [catch {db format -style list \
|
||||
{INSERT INTO t1 VALUES(NULL) RETURNING *}} msg]
|
||||
list $rc [string trim $msg]
|
||||
} {1 {NOT NULL constraint failed: t1.a}}
|
||||
do_test 1.3 {
|
||||
set rc [catch {db format -version 99 {SELECT * FROM t1}} msg]
|
||||
list $rc [string trim $msg]
|
||||
} {1 {unusable sqlite3_qrf_spec.iVersion (99)}}
|
||||
|
||||
finish_test
|
||||
576
test/qrf06.test
Normal file
576
test/qrf06.test
Normal file
@@ -0,0 +1,576 @@
|
||||
# 2025-12-02
|
||||
#
|
||||
# The author disclaims copyright to this source code. In place of
|
||||
# a legal notice, here is a blessing:
|
||||
#
|
||||
# May you do good and not evil.
|
||||
# May you find forgiveness for yourself and forgive others.
|
||||
# May you share freely, never taking more than you give.
|
||||
#
|
||||
#***********************************************************************
|
||||
#
|
||||
# Test cases for the Query Result Formatter (QRF), and especially
|
||||
# the sqlite3_qrf_wcwidth() function and its utilization.
|
||||
#
|
||||
|
||||
set testdir [file dirname $argv0]
|
||||
source $testdir/tester.tcl
|
||||
set testprefix qrf06
|
||||
|
||||
# Data
|
||||
db eval {
|
||||
BEGIN TRANSACTION;
|
||||
CREATE TABLE language(name TEXT);
|
||||
INSERT INTO language(name) VALUES
|
||||
('العربية'),
|
||||
('Deutsch'),
|
||||
('English'),
|
||||
('Español'),
|
||||
('فارسی'),
|
||||
('Français'),
|
||||
('Italiano'),
|
||||
('مصرى'),
|
||||
('Nederlands'),
|
||||
('日本語'),
|
||||
('Polski'),
|
||||
('Português'),
|
||||
('Sinugboanong Binisaya'),
|
||||
('Svenska'),
|
||||
('Українська'),
|
||||
('Tiếng Việt'),
|
||||
('Winaray'),
|
||||
('中文'),
|
||||
('Русский'),
|
||||
('Afrikaans'),
|
||||
('Shqip'),
|
||||
('Asturianu'),
|
||||
('Azərbaycanca'),
|
||||
('Български'),
|
||||
('閩南語 / Bân-lâm-gú'),
|
||||
('বাংলা'),
|
||||
('Беларуская'),
|
||||
('Català'),
|
||||
('Čeština'),
|
||||
('Cymraeg'),
|
||||
('Dansk'),
|
||||
('Eesti'),
|
||||
('Ελληνικά'),
|
||||
('Esperanto'),
|
||||
('Euskara'),
|
||||
('Galego'),
|
||||
('한국어'),
|
||||
('Հայերեն'),
|
||||
('हिन्दी'),
|
||||
('Hrvatski'),
|
||||
('Bahasa Indonesia'),
|
||||
('עברית'),
|
||||
('ქართული'),
|
||||
('Ladin'),
|
||||
('Latina'),
|
||||
('Latviešu'),
|
||||
('Lietuvių'),
|
||||
('Magyar'),
|
||||
('Македонски'),
|
||||
('Malagasy'),
|
||||
('मराठी'),
|
||||
('Bahasa Melayu'),
|
||||
('Bahaso Minangkabau'),
|
||||
('မြန်မာဘာသာ'),
|
||||
('Norskbokmålnynorsk'),
|
||||
('Нохчийн'),
|
||||
('Oʻzbekcha / Ўзбекча'),
|
||||
('Қазақша / Qazaqşa / قازاقشا'),
|
||||
('Română'),
|
||||
('Simple English'),
|
||||
('Slovenčina'),
|
||||
('Slovenščina'),
|
||||
('Српски / Srpski'),
|
||||
('Srpskohrvatski / Српскохрватски'),
|
||||
('Suomi'),
|
||||
('Kiswahili'),
|
||||
('தமிழ்'),
|
||||
('Татарча / Tatarça'),
|
||||
('తెలుగు'),
|
||||
('ภาษาไทย'),
|
||||
('Тоҷикӣ'),
|
||||
('تۆرکجه'),
|
||||
('Türkçe'),
|
||||
('اردو'),
|
||||
('粵語'),
|
||||
('Bahsa Acèh'),
|
||||
('Alemannisch'),
|
||||
('አማርኛ'),
|
||||
('Aragonés'),
|
||||
('Արեւմտահայերէն'),
|
||||
('Bahasa Hulontalo'),
|
||||
('Basa Bali'),
|
||||
('Bahasa Banjar'),
|
||||
('Basa Banyumasan'),
|
||||
('Башҡортса'),
|
||||
('Беларуская (тарашкевіца)'),
|
||||
('Bikol Central'),
|
||||
('বিষ্ণুপ্রিয়া মণিপুরী'),
|
||||
('Boarisch'),
|
||||
('Bosanski'),
|
||||
('Brezhoneg'),
|
||||
('Чӑвашла'),
|
||||
('Dagbanli'),
|
||||
('الدارجة'),
|
||||
('Diné Bizaad'),
|
||||
('Emigliàn–Rumagnòl'),
|
||||
('Fiji Hindi'),
|
||||
('Føroyskt'),
|
||||
('Frysk'),
|
||||
('Fulfulde'),
|
||||
('Gaeilge'),
|
||||
('Gàidhlig'),
|
||||
('گیلکی'),
|
||||
('ગુજરાતી'),
|
||||
('Hak-kâ-ngî / 客家語'),
|
||||
('Hausa'),
|
||||
('Hornjoserbsce'),
|
||||
('Ido'),
|
||||
('Igbo'),
|
||||
('Ilokano'),
|
||||
('Interlingua'),
|
||||
('Interlingue'),
|
||||
('Ирон'),
|
||||
('Íslenska'),
|
||||
('Jawa'),
|
||||
('ಕನ್ನಡ'),
|
||||
('Kapampangan'),
|
||||
('ភាសាខ្មែរ'),
|
||||
('Kotava'),
|
||||
('Kreyòl Ayisyen'),
|
||||
('Kurdî / كوردی'),
|
||||
('کوردیی ناوەندی'),
|
||||
('Кыргызча'),
|
||||
('Кырык мары'),
|
||||
('Lëtzebuergesch'),
|
||||
('Lìgure'),
|
||||
('Limburgs'),
|
||||
('Lombard'),
|
||||
('मैथिली'),
|
||||
('മലയാളം'),
|
||||
('მარგალური'),
|
||||
('مازِرونی'),
|
||||
('Mìng-dĕ̤ng-ngṳ̄ / 閩東語'),
|
||||
('Монгол'),
|
||||
('Napulitano'),
|
||||
('नेपाल भाषा'),
|
||||
('Nordfriisk'),
|
||||
('Occitan'),
|
||||
('Олык марий'),
|
||||
('ଓଡି଼ଆ'),
|
||||
('অসমীযা়'),
|
||||
('ਪੰਜਾਬੀ'),
|
||||
('پنجابی (شاہ مکھی)'),
|
||||
('پښتو'),
|
||||
('Piemontèis'),
|
||||
('Plattdüütsch'),
|
||||
('Qaraqalpaqsha'),
|
||||
('Qırımtatarca'),
|
||||
('Runa Simi'),
|
||||
('Русиньскый'),
|
||||
('संस्कृतम्'),
|
||||
('ᱥᱟᱱᱛᱟᱲᱤ'),
|
||||
('سرائیکی'),
|
||||
('Саха Тыла'),
|
||||
('Scots'),
|
||||
('ChiShona'),
|
||||
('Sicilianu'),
|
||||
('සිංහල'),
|
||||
('سنڌي'),
|
||||
('Ślůnski'),
|
||||
('Basa Sunda'),
|
||||
('Taclḥit'),
|
||||
('Tagalog'),
|
||||
('ၽႃႇသႃႇတႆး'),
|
||||
('ⵜⴰⵎⴰⵣⵉⵖⵜ ⵜⴰⵏⴰⵡⴰⵢⵜ'),
|
||||
('tolışi'),
|
||||
('chiTumbuka'),
|
||||
('Basa Ugi'),
|
||||
('Vèneto'),
|
||||
('Volapük'),
|
||||
('Walon'),
|
||||
('文言'),
|
||||
('吴语'),
|
||||
('ייִדיש'),
|
||||
('Yorùbá'),
|
||||
('Zazaki'),
|
||||
('žemaitėška'),
|
||||
('isiZulu'),
|
||||
('नेपाली'),
|
||||
('ꯃꯤꯇꯩ ꯂꯣꯟ'),
|
||||
('Dzhudezmo / לאדינו'),
|
||||
('Адыгэбзэ'),
|
||||
('Ænglisc'),
|
||||
('Anarâškielâ'),
|
||||
('अंगिका'),
|
||||
('Аԥсшәа'),
|
||||
('armãneashti'),
|
||||
('Arpitan'),
|
||||
('atikamekw'),
|
||||
('ܐܬܘܪܝܐ'),
|
||||
('Avañe’ẽ'),
|
||||
('Авар'),
|
||||
('Aymar'),
|
||||
('Batak Toba'),
|
||||
('Betawi'),
|
||||
('भोजपुरी'),
|
||||
('Bislama'),
|
||||
('བོད་ཡིག'),
|
||||
('Буряад'),
|
||||
('Chavacano de Zamboanga'),
|
||||
('Chichewa'),
|
||||
('Corsu'),
|
||||
('Vahcuengh / 話僮'),
|
||||
('Dagaare'),
|
||||
('Davvisámegiella'),
|
||||
('Deitsch'),
|
||||
('ދިވެހިބަސް'),
|
||||
('Dolnoserbski'),
|
||||
('Dusun Bundu-liwan'),
|
||||
('Эрзянь'),
|
||||
('Estremeñu'),
|
||||
('Eʋegbe'),
|
||||
('Farefare'),
|
||||
('Fɔ̀ngbè'),
|
||||
('Furlan'),
|
||||
('Gaelg'),
|
||||
('Gagauz'),
|
||||
('ГӀалгӀай'),
|
||||
('Ghanaian Pidgin'),
|
||||
('Gĩkũyũ'),
|
||||
('赣语 / 贛語'),
|
||||
('Gungbe'),
|
||||
('Хальмг'),
|
||||
('ʻŌlelo Hawaiʻi'),
|
||||
('Ikinyarwanda'),
|
||||
('Jaku Iban'),
|
||||
('Kabɩyɛ'),
|
||||
('Yerwa Kanuri'),
|
||||
('Kaszëbsczi'),
|
||||
('Kernewek'),
|
||||
('Коми'),
|
||||
('Перем коми'),
|
||||
('Kongo'),
|
||||
('कोंकणी / Konknni'),
|
||||
('كٲشُر'),
|
||||
('Kriyòl Gwiyannen'),
|
||||
('Kumoring'),
|
||||
('Kʋsaal'),
|
||||
('ພາສາລາວ'),
|
||||
('Лакку'),
|
||||
('Latgaļu'),
|
||||
('Лезги'),
|
||||
('Li Niha'),
|
||||
('Lingála'),
|
||||
('Lingua Franca Nova'),
|
||||
('livvinkarjala'),
|
||||
('lojban'),
|
||||
('Luganda'),
|
||||
('Madhurâ'),
|
||||
('Malti'),
|
||||
('Mandailing'),
|
||||
('Māori'),
|
||||
('Mfantse'),
|
||||
('Mirandés'),
|
||||
('Мокшень'),
|
||||
('ဘာသာ မန်'),
|
||||
('Moore'),
|
||||
('ߒߞߏ'),
|
||||
('Na Vosa Vaka-Viti'),
|
||||
('Nāhuatlahtōlli'),
|
||||
('Naijá'),
|
||||
('Nedersaksisch'),
|
||||
('Nouormand / Normaund'),
|
||||
('Novial'),
|
||||
('Afaan Oromoo'),
|
||||
('ပအိုဝ်ႏဘာႏသာႏ'),
|
||||
('Pangasinán'),
|
||||
('Pangcah'),
|
||||
('Papiamentu'),
|
||||
('Patois'),
|
||||
('Pfälzisch'),
|
||||
('Picard'),
|
||||
('Къарачай–малкъар'),
|
||||
('Ripoarisch'),
|
||||
('Rumantsch'),
|
||||
('Sakizaya'),
|
||||
('Gagana Sāmoa'),
|
||||
('Sardu'),
|
||||
('Seediq'),
|
||||
('Seeltersk'),
|
||||
('Sesotho'),
|
||||
('Sesotho sa Leboa'),
|
||||
('Setswana'),
|
||||
('ꠍꠤꠟꠐꠤ'),
|
||||
('Словѣ́ньскъ / ⰔⰎⰑⰂⰡⰐⰠⰔⰍⰟ'),
|
||||
('Soomaaliga'),
|
||||
('Sranantongo'),
|
||||
('SiSwati'),
|
||||
('Reo tahiti'),
|
||||
('Taqbaylit'),
|
||||
('Tarandíne'),
|
||||
('Tayal'),
|
||||
('Tetun'),
|
||||
('Tok Pisin'),
|
||||
('faka Tonga'),
|
||||
('Türkmençe'),
|
||||
('Twi'),
|
||||
('Tyap'),
|
||||
('Тыва дыл'),
|
||||
('Удмурт'),
|
||||
('ئۇيغۇرچه'),
|
||||
('Vepsän'),
|
||||
('võro'),
|
||||
('West-Vlams'),
|
||||
('Wolof'),
|
||||
('isiXhosa'),
|
||||
('Zeêuws'),
|
||||
('алтай тил'),
|
||||
('अवधी'),
|
||||
('डोटेली'),
|
||||
('ತುಳು'),
|
||||
('ရခိုင်'),
|
||||
('Bajau Sama'),
|
||||
('Bamanankan'),
|
||||
('Chamoru'),
|
||||
('རྫོང་ཁ'),
|
||||
('𐌲𐌿𐍄𐌹𐍃𐌺'),
|
||||
('Igala'),
|
||||
('ᐃᓄᒃᑎᑐᑦ / Inuktitut'),
|
||||
('Iñupiak'),
|
||||
('isiNdebele seSewula'),
|
||||
('Kalaallisut'),
|
||||
('Nupe'),
|
||||
('Obolo'),
|
||||
('पालि'),
|
||||
('pinayuanan'),
|
||||
('Ποντιακά'),
|
||||
('romani čhib'),
|
||||
('Ikirundi'),
|
||||
('руски'),
|
||||
('Sängö'),
|
||||
('ᥖᥭᥰᥖᥬᥳᥑᥨᥒᥰ'),
|
||||
('ትግርኛ'),
|
||||
('Thuɔŋjäŋ'),
|
||||
('ᏣᎳᎩ'),
|
||||
('Tsėhesenėstsestotse'),
|
||||
('Xitsonga'),
|
||||
('Tshivenḓa'),
|
||||
('Wayuunaiki'),
|
||||
('адыгабзэ');
|
||||
COMMIT;
|
||||
}
|
||||
|
||||
do_test 1.2 {
|
||||
set res \n[db format -style box {
|
||||
SELECT name, rowid AS id FROM language
|
||||
WHERE length(name)=2
|
||||
ORDER BY name
|
||||
}]
|
||||
set exp {
|
||||
┌──────┬─────┐
|
||||
│ name │ id │
|
||||
├──────┼─────┤
|
||||
│ 中文 │ 18 │
|
||||
│ 吴语 │ 173 │
|
||||
│ 文言 │ 172 │
|
||||
│ 粵語 │ 75 │
|
||||
└──────┴─────┘
|
||||
}
|
||||
if {$res ne $exp} {
|
||||
puts [list $res]
|
||||
puts [list $exp]
|
||||
}
|
||||
string compare $res $exp
|
||||
} {0}
|
||||
|
||||
do_test 1.3 {
|
||||
set res \n[db format -style box {
|
||||
SELECT name, rowid AS id FROM language
|
||||
WHERE length(name)=3
|
||||
ORDER BY name
|
||||
}]
|
||||
set exp {
|
||||
┌────────┬─────┐
|
||||
│ name │ id │
|
||||
├────────┼─────┤
|
||||
│ Ido │ 108 │
|
||||
│ Twi │ 297 │
|
||||
│ ߒߞߏ │ 258 │
|
||||
│ ᏣᎳᎩ │ 335 │
|
||||
│ 日本語 │ 10 │
|
||||
│ 한국어 │ 37 │
|
||||
└────────┴─────┘
|
||||
}
|
||||
if {$res ne $exp} {
|
||||
puts [list $res]
|
||||
puts [list $exp]
|
||||
}
|
||||
string compare $res $exp
|
||||
} {0}
|
||||
|
||||
do_test 1.4 {
|
||||
set res \n[db format -style box {
|
||||
SELECT name, rowid AS id FROM language
|
||||
WHERE length(name)=4
|
||||
ORDER BY name
|
||||
}]
|
||||
set exp {
|
||||
┌──────┬─────┐
|
||||
│ name │ id │
|
||||
├──────┼─────┤
|
||||
│ Igbo │ 109 │
|
||||
│ Jawa │ 115 │
|
||||
│ Nupe │ 323 │
|
||||
│ Tyap │ 298 │
|
||||
│ võro │ 303 │
|
||||
│ Авар │ 192 │
|
||||
│ Ирон │ 113 │
|
||||
│ Коми │ 231 │
|
||||
│ اردو │ 74 │
|
||||
│ سنڌي │ 159 │
|
||||
│ مصرى │ 8 │
|
||||
│ پښتو │ 144 │
|
||||
│ अवधी │ 309 │
|
||||
│ पालि │ 325 │
|
||||
│ ತುಳು │ 311 │
|
||||
│ ትግርኛ │ 333 │
|
||||
│ አማርኛ │ 78 │
|
||||
└──────┴─────┘
|
||||
}
|
||||
if {$res ne $exp} {
|
||||
puts [list $res]
|
||||
puts [list $exp]
|
||||
}
|
||||
string compare $res $exp
|
||||
} {0}
|
||||
|
||||
do_test 1.5 {
|
||||
set res \n[db format -style box {
|
||||
SELECT name, rowid AS id FROM language
|
||||
WHERE length(name)=5
|
||||
ORDER BY name
|
||||
}]
|
||||
set exp {
|
||||
┌───────┬─────┐
|
||||
│ name │ id │
|
||||
├───────┼─────┤
|
||||
│ Aymar │ 193 │
|
||||
│ Corsu │ 202 │
|
||||
│ Dansk │ 31 │
|
||||
│ Eesti │ 32 │
|
||||
│ Frysk │ 99 │
|
||||
│ Gaelg │ 216 │
|
||||
│ Hausa │ 106 │
|
||||
│ Igala │ 318 │
|
||||
│ Kongo │ 233 │
|
||||
│ Ladin │ 44 │
|
||||
│ Malti │ 250 │
|
||||
│ Moore │ 257 │
|
||||
│ Māori │ 252 │
|
||||
│ Naijá │ 261 │
|
||||
│ Obolo │ 324 │
|
||||
│ Sardu │ 278 │
|
||||
│ Scots │ 155 │
|
||||
│ Shqip │ 21 │
|
||||
│ Suomi │ 65 │
|
||||
│ Sängö │ 331 │
|
||||
│ Tayal │ 292 │
|
||||
│ Tetun │ 293 │
|
||||
│ Walon │ 171 │
|
||||
│ Wolof │ 305 │
|
||||
│ Лакку │ 240 │
|
||||
│ Лезги │ 242 │
|
||||
│ руски │ 330 │
|
||||
│ עברית │ 42 │
|
||||
│ فارسی │ 5 │
|
||||
│ كٲشُر │ 235 │
|
||||
│ گیلکی │ 103 │
|
||||
│ मराठी │ 51 │
|
||||
│ বাংলা │ 26 │
|
||||
│ ଓଡି଼ଆ │ 140 │
|
||||
│ தமிழ் │ 67 │
|
||||
│ ಕನ್ನಡ │ 116 │
|
||||
│ සිංහල │ 158 │
|
||||
│ ꠍꠤꠟꠐꠤ │ 284 │
|
||||
└───────┴─────┘
|
||||
}
|
||||
if {$res ne $exp} {
|
||||
puts [list $res]
|
||||
puts [list $exp]
|
||||
}
|
||||
string compare $res $exp
|
||||
} {0}
|
||||
|
||||
do_test 1.6 {
|
||||
set res \n[db format -style box {
|
||||
SELECT name, rowid AS id FROM language
|
||||
WHERE length(name)=6
|
||||
ORDER BY name
|
||||
}]
|
||||
set exp {
|
||||
┌────────┬─────┐
|
||||
│ name │ id │
|
||||
├────────┼─────┤
|
||||
│ Betawi │ 195 │
|
||||
│ Català │ 28 │
|
||||
│ Eʋegbe │ 212 │
|
||||
│ Furlan │ 215 │
|
||||
│ Gagauz │ 217 │
|
||||
│ Galego │ 36 │
|
||||
│ Gungbe │ 222 │
|
||||
│ Gĩkũyũ │ 220 │
|
||||
│ Kabɩyɛ │ 227 │
|
||||
│ Kotava │ 119 │
|
||||
│ Kʋsaal │ 238 │
|
||||
│ Latina │ 45 │
|
||||
│ Lìgure │ 126 │
|
||||
│ Magyar │ 48 │
|
||||
│ Novial │ 264 │
|
||||
│ Patois │ 270 │
|
||||
│ Picard │ 272 │
|
||||
│ Polski │ 11 │
|
||||
│ Română │ 59 │
|
||||
│ Seediq │ 279 │
|
||||
│ Türkçe │ 73 │
|
||||
│ Vepsän │ 302 │
|
||||
│ Vèneto │ 169 │
|
||||
│ Yorùbá │ 175 │
|
||||
│ Zazaki │ 176 │
|
||||
│ Zeêuws │ 307 │
|
||||
│ lojban │ 247 │
|
||||
│ tolışi │ 166 │
|
||||
│ Аԥсшәа │ 186 │
|
||||
│ Буряад │ 199 │
|
||||
│ Монгол │ 134 │
|
||||
│ Тоҷикӣ │ 71 │
|
||||
│ Удмурт │ 300 │
|
||||
│ Хальмг │ 223 │
|
||||
│ Эрзянь │ 210 │
|
||||
│ ייִדיש │ 174 │
|
||||
│ تۆرکجه │ 72 │
|
||||
│ ܐܬܘܪܝܐ │ 190 │
|
||||
│ अंगिका │ 185 │
|
||||
│ डोटेली │ 310 │
|
||||
│ नेपाली │ 179 │
|
||||
│ मैथिली │ 129 │
|
||||
│ हिन्दी │ 39 │
|
||||
│ ਪੰਜਾਬੀ │ 142 │
|
||||
│ తెలుగు │ 69 │
|
||||
│ മലയാളം │ 130 │
|
||||
│ རྫོང་ཁ │ 316 │
|
||||
│ ရခိုင် │ 312 │
|
||||
└────────┴─────┘
|
||||
}
|
||||
if {$res ne $exp} {
|
||||
puts [list $res]
|
||||
puts [list $exp]
|
||||
}
|
||||
string compare $res $exp
|
||||
} {0}
|
||||
|
||||
finish_test
|
||||
Reference in New Issue
Block a user