6 use Test::SQL::Translator;
11 use SQL::Translator::Schema::Constants;
14 maybe_plan(1, 'SQL::Translator::Parser::XML::SQLFairy',
15 'SQL::Translator::Producer::DB2');
18 my $xmlfile = "$Bin/data/xml/schema.xml";
21 $sqlt = SQL::Translator->new(
27 die "Can't find test schema $xmlfile" unless -e $xmlfile;
29 my $sql = $sqlt->translate(
30 from => 'XML-SQLFairy',
33 ) or die $sqlt->error;
35 eq_or_diff($sql, << "SQL");
39 id INTEGER GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1) NOT NULL,
40 title VARCHAR(100) NOT NULL DEFAULT 'hello',
41 description VARCHAR(0) DEFAULT '',
43 explicitnulldef VARCHAR(0),
44 explicitemptystring VARCHAR(0) DEFAULT '',
45 emptytagdef VARCHAR(0) DEFAULT '',
46 another_id INTEGER DEFAULT 2,
49 CONSTRAINT emailuniqueindex UNIQUE (email),
50 CONSTRAINT very_long_index_name_on_title_field_which_should_be_truncated_for_various_rdbms UNIQUE (title)
55 CREATE TABLE Another (
56 id INTEGER GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1) NOT NULL,
61 ALTER TABLE Basic ADD FOREIGN KEY (another_id) REFERENCES Another(id);
63 CREATE INDEX titleindex ON Basic ( title );
65 CREATE VIEW email_list AS
66 SELECT email FROM Basic WHERE (email IS NOT NULL);
68 CREATE TRIGGER foo_trigger after insert ON Basic REFERENCING OLD AS oldrow NEW AS newrow FOR EACH ROW MODE DB2SQL update modified=timestamp();
70 CREATE TRIGGER bar_trigger before insert, update ON Basic REFERENCING OLD AS oldrow NEW AS newrow FOR EACH ROW MODE DB2SQL update modified2=timestamp();