SQLite

Artifact [292e7248]
Login

Artifact 292e72489101cd1320d7278dc111c173ebf334d4:


# 2009 May 5
#
# 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.
#
#***********************************************************************
#
# Ticket #3838
#
# The ticket reports that the encoding is UTF8 on the DEFAULT VALUE of
# a column added using ALTER TABLE even when the database is UTF16.
# Verify that this has been fixed.
#
# $Id: tkt3838.test,v 1.1 2009/05/05 12:54:50 drh Exp $

set testdir [file dirname $argv0]
source $testdir/tester.tcl

ifcapable !altertable {
  finish_test
  return
}

do_realnum_test tkt3838-1.1 {
  db eval {
    PRAGMA encoding=UTF16;
    CREATE TABLE t1(x);
    INSERT INTO t1 VALUES(1);
    ALTER TABLE t1 ADD COLUMN b INTEGER DEFAULT '999';
    ALTER TABLE t1 ADD COLUMN c REAL DEFAULT '9e99';
    ALTER TABLE t1 ADD COLUMN d TEXT DEFAULT 'xyzzy';
    UPDATE t1 SET x=x+1;
    SELECT * FROM t1;
  }
} {2 999 9e+99 xyzzy}

ifcapable trigger {
  do_test tkt3838-1.2 {
    db eval {
      CREATE TABLE log(y);
      CREATE TRIGGER r1 AFTER INSERT ON T1 BEGIN
        INSERT INTO log VALUES(new.x);
      END;
      INSERT INTO t1(x) VALUES(123);
      ALTER TABLE T1 RENAME TO XYZ2;
      INSERT INTO xyz2(x) VALUES(456);
      ALTER TABLE xyz2 RENAME TO pqr3;
      INSERT INTO pqr3(x) VALUES(789);
      SELECT * FROM log;
    }
  } {123 456 789}
}

finish_test