Hi,

I would like to know if I am dealing with a bug or a backward incompatible
change that I am not aware of.

Consider this example:

CREATE TABLE [table2] (
  [id] INTEGER NOT NULL ON CONFLICT FAIL PRIMARY KEY ON CONFLICT FAIL
AUTOINCREMENT,
  [isActive] INTEGER NOT NULL ON CONFLICT FAIL DEFAULT (0));

CREATE TRIGGER [update_table1]
AFTER INSERT
ON [table2]
FOR EACH ROW
WHEN new.isActive='1'
BEGIN
INSERT INTO table1 (name) VALUES("dog");
END;

As you can see, isActive is declared as an integer in table2, and if I
specify the comparison in the WHEN clause of the trigger as
new.isActive='1' (with the quote characters), the trigger doesn't get
activated when I expect it to be activated (when I insert a record into the
table with 1 as a value in column isActive).

This type of thing worked for years with an older version of SQLite library
(specifically, 3.3.7, and possible older, that is used in PHP 5.2.17), but
doesn't work with version 3.7.7.1 (and possible some earlier versions too)
or newer.

I've always thought that because SQLite didn't enforce data types, I could
do what I have in the example, and this has worked! So, is this a bug in
more recent versions of SQLite or an intended change that I am unaware of?

Roman
_______________________________________________
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to