Add timestamp tests, make postgres produce timestamp(0) if asked
[dbsrgits/SQL-Translator.git] / t / 44-xml-to-db2-array.t
CommitLineData
5e2c196a 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
35my $want = [ 'DROP TABLE Basic;',
36q|CREATE TABLE Basic (
37id INTEGER GENERATED BY DEFAULT AS IDENTITY NOT NULL,
38title VARCHAR(100) NOT NULL DEFAULT 'hello',
39description VARCHAR(0) DEFAULT '',
40email VARCHAR(255),
41explicitnulldef VARCHAR(0),
42explicitemptystring VARCHAR(0) DEFAULT '',
43emptytagdef VARCHAR(0) DEFAULT '',
08d91aad 44timest TIMESTAMP,
5e2c196a 45CONSTRAINT emailuniqueindex UNIQUE (email) ,
46 PRIMARY KEY(id)
47);|,
48
49'CREATE INDEX titleindex ON Basic ( title );',
50
51'CREATE VIEW email_list AS
52SELECT email FROM Basic WHERE email IS NOT NULL;',
53
54'CREATE TRIGGER foo_trigger after insert ON Basic REFERENCING OLD AS oldrow NEW AS newrow FOR EACH ROW MODE DB2SQL update modified=timestamp();'
55];
56
08d91aad 57is_deeply(\@sql, $want, 'Got correct DB2 statements in list context');