📄 utf16align.test
字号:
# 2006 February 16## 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.##***********************************************************************# # This file contains code to verify that the SQLITE_UTF16_ALIGNED# flag passed into the sqlite3_create_collation() function insures# that all strings passed to that function are aligned on an even# byte boundary.## $Id: utf16align.test,v 1.1 2006/02/16 18:16:38 drh Exp $set testdir [file dirname $argv0]source $testdir/tester.tcl# Skip this entire test if we do not support UTF16#ifcapable !utf16 { finish_test return}# Create a database with a UTF16 encoding. Put in lots of string# data of varying lengths.#do_test utf16align-1.0 { set unaligned_string_counter 0 add_alignment_test_collations [sqlite3_connection_pointer db] execsql { PRAGMA encoding=UTF16; CREATE TABLE t1( id INTEGER PRIMARY KEY, spacer TEXT, a TEXT COLLATE utf16_aligned, b TEXT COLLATE utf16_unaligned ); INSERT INTO t1(a) VALUES("abc"); INSERT INTO t1(a) VALUES("defghi"); INSERT INTO t1(a) VALUES("jklmnopqrstuv"); INSERT INTO t1(a) VALUES("wxyz0123456789-"); UPDATE t1 SET b=a||'-'||a; INSERT INTO t1(a,b) SELECT a||b, b||a FROM t1; INSERT INTO t1(a,b) SELECT a||b, b||a FROM t1; INSERT INTO t1(a,b) SELECT a||b, b||a FROM t1; INSERT INTO t1(a,b) VALUES('one','two'); INSERT INTO t1(a,b) SELECT a, b FROM t1; UPDATE t1 SET spacer = CASE WHEN rowid&1 THEN 'x' ELSE 'xx' END; SELECT count(*) FROM t1; }} 66do_test utf16align-1.1 { set unaligned_string_counter} 0# Creating an index that uses the unaligned collation. We should see# some unaligned strings passed to the collating function.#do_test utf16align-1.2 { execsql { CREATE INDEX t1i1 ON t1(spacer, b); } # puts $unaligned_string_counter expr {$unaligned_string_counter>0}} 1# Create another index that uses the aligned collation. This time# there should be no unaligned accesses#do_test utf16align-1.3 { set unaligned_string_counter 0 execsql { CREATE INDEX t1i2 ON t1(spacer, a); } expr {$unaligned_string_counter>0}} 0integrity_check utf16align-1.4finish_test
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -