1
0
mirror of https://github.com/sqlite/sqlite.git synced 2025-07-30 19:03:16 +03:00

Account for multi-byte characters in ALTER TABLE code. Fix for #1609. (CVS 2942)

FossilOrigin-Name: d634f8b28abd7af4565c644bd7972b067caa0133
This commit is contained in:
danielk1977
2006-01-13 18:06:40 +00:00
parent dedf45b260
commit 79f27df664
4 changed files with 74 additions and 11 deletions

View File

@ -11,7 +11,7 @@
# This file implements regression tests for SQLite library. The
# focus of this script is testing the ALTER TABLE statement.
#
# $Id: alter.test,v 1.12 2006/01/03 00:33:50 drh Exp $
# $Id: alter.test,v 1.13 2006/01/13 18:06:40 danielk1977 Exp $
#
set testdir [file dirname $argv0]
@ -552,4 +552,66 @@ do_test alter-5.3 {
db2 close
} {}
set ::tbl_name "abc\uABCDdef"
do_test alter-5.1 {
string length $::tbl_name
} {7}
do_test alter-5.2 {
execsql "
CREATE TABLE ${tbl_name}(a, b, c);
"
execsql {
SELECT sql FROM sqlite_master
WHERE oid = (SELECT max(oid) FROM sqlite_master);
}
} "{CREATE TABLE ${::tbl_name}(a, b, c)}"
set ::tbl_name2 "abcXdef"
do_test alter-5.2 {
execsql "
ALTER TABLE $::tbl_name RENAME TO $::tbl_name2
"
execsql {
SELECT sql FROM sqlite_master
WHERE oid = (SELECT max(oid) FROM sqlite_master);
}
} "{CREATE TABLE '${::tbl_name2}'(a, b, c)}"
do_test alter-5.3 {
execsql "
ALTER TABLE $::tbl_name2 RENAME TO $::tbl_name
"
execsql {
SELECT sql FROM sqlite_master
WHERE oid = (SELECT max(oid) FROM sqlite_master);
}
} "{CREATE TABLE '${::tbl_name}'(a, b, c)}"
set ::col_name ghi\1234\jkl
do_test alter-5.4 {
execsql "
ALTER TABLE $::tbl_name ADD COLUMN $::col_name VARCHAR
"
execsql {
SELECT sql FROM sqlite_master
WHERE oid = (SELECT max(oid) FROM sqlite_master);
}
} "{CREATE TABLE '${::tbl_name}'(a, b, c, $::col_name VARCHAR)}"
set ::col_name2 B\3421\A
do_test alter-5.5 {
db close
sqlite3 db test.db
execsql "
ALTER TABLE $::tbl_name ADD COLUMN $::col_name2
"
execsql {
SELECT sql FROM sqlite_master
WHERE oid = (SELECT max(oid) FROM sqlite_master);
}
} "{CREATE TABLE '${::tbl_name}'(a, b, c, $::col_name VARCHAR, $::col_name2)}"
do_test alter-5.6 {
execsql "
INSERT INTO ${::tbl_name} VALUES(1, 2, 3, 4, 5);
SELECT $::col_name, $::col_name2 FROM $::tbl_name;
"
} {4 5}
finish_test