More DB2 producing
[dbsrgits/SQL-Translator.git] / t / 43xml-to-db2.t
CommitLineData
0209d0a0 1#!/usr/bin/perl
2use strict;
3
4use FindBin qw/$Bin/;
5use Test::More;
6use Test::SQL::Translator;
7use Test::Exception;
8use Data::Dumper;
9use SQL::Translator;
10use SQL::Translator::Schema::Constants;
11
12
13BEGIN {
14 maybe_plan(1, 'SQL::Translator::Parser::XML::SQLFairy',
15 'SQL::Translator::Producer::DB2');
16}
17
18my $xmlfile = "$Bin/data/xml/schema.xml";
19
20my $sqlt;
21$sqlt = SQL::Translator->new(
22 no_comments => 1,
23 show_warnings => 1,
24 add_drop_table => 1,
25);
26
27die "Can't find test schema $xmlfile" unless -e $xmlfile;
28
29my $sql = $sqlt->translate(
30 from => 'XML-SQLFairy',
31 to => 'DB2',
32 filename => $xmlfile,
33) or die $sqlt->error;
34
35is($sql, << "SQL");
36DROP TABLE Basic;
37
38
39CREATE TABLE Basic (
40id INTEGER GENERATED BY DEFAULT AS IDENTITY NOT NULL,
41title VARCHAR(100) NOT NULL DEFAULT 'hello',
42description VARCHAR(0) DEFAULT '',
43email VARCHAR(255),
44explicitnulldef VARCHAR(0),
45explicitemptystring VARCHAR(0) DEFAULT '',
46emptytagdef VARCHAR(0) DEFAULT '',
47CONSTRAINT emailuniqueindex UNIQUE (email) ,
48 PRIMARY KEY(id)
49);
50
51CREATE INDEX titleindex ON Basic ( title );
52
53CREATE VIEW email_list AS
54SELECT email FROM Basic WHERE email IS NOT NULL;
55
56CREATE TRIGGER foo_trigger after insert ON Basic REFERENCING OLD AS oldrow NEW AS newrow FOR EACH ROW MODE DB2SQL update modified=timestamp();
57SQL