Fix PostgreSQL grammar parsing of UUID, time, timetz column types
[dbsrgits/SQL-Translator.git] / t / 44-xml-to-db2-array.t
index 9285ded..6a872ca 100644 (file)
@@ -20,7 +20,7 @@ my $xmlfile = "$Bin/data/xml/schema.xml";
 my $sqlt;
 $sqlt = SQL::Translator->new(
     no_comments => 1,
-    show_warnings  => 1,
+    show_warnings  => 0,
     add_drop_table => 1,
 );
 
@@ -34,24 +34,38 @@ my @sql = $sqlt->translate(
 
 my $want = [ 'DROP TABLE Basic;',
 q|CREATE TABLE Basic (
-id INTEGER GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1) NOT NULL,
-title VARCHAR(100) NOT NULL DEFAULT 'hello',
-description VARCHAR(0) DEFAULT '',
-email VARCHAR(255),
-explicitnulldef VARCHAR(0),
-explicitemptystring VARCHAR(0) DEFAULT '',
-emptytagdef VARCHAR(0) DEFAULT '',
-timest TIMESTAMP,
-CONSTRAINT emailuniqueindex UNIQUE (email)   ,
- PRIMARY KEY(id)
+  id INTEGER GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1) NOT NULL,
+  title VARCHAR(100) NOT NULL DEFAULT 'hello',
+  description VARCHAR(0) DEFAULT '',
+  email VARCHAR(500),
+  explicitnulldef VARCHAR(0),
+  explicitemptystring VARCHAR(0) DEFAULT '',
+  emptytagdef VARCHAR(0) DEFAULT '',
+  another_id INTEGER DEFAULT 2,
+  timest TIMESTAMP,
+  PRIMARY KEY (id),
+  CONSTRAINT emailuniqueindex UNIQUE (email),
+  CONSTRAINT very_long_index_name_on_title_field_which_should_be_truncated_for_various_rdbms UNIQUE (title)
 );|,
 
+'DROP TABLE Another;',
+
+q|CREATE TABLE Another (
+  id INTEGER GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1) NOT NULL,
+  num NUMERIC(10,2),
+  PRIMARY KEY (id)
+);|,
+
+'ALTER TABLE Basic ADD FOREIGN KEY (another_id) REFERENCES Another(id);',
+
 'CREATE INDEX titleindex ON Basic ( title );',
 
 'CREATE VIEW email_list AS
-SELECT email FROM Basic WHERE email IS NOT NULL;',
+SELECT email FROM Basic WHERE (email IS NOT NULL);',
+
+'CREATE TRIGGER foo_trigger after insert ON Basic REFERENCING OLD AS oldrow NEW AS newrow FOR EACH ROW MODE DB2SQL update modified=timestamp();',
 
-'CREATE TRIGGER foo_trigger after insert ON Basic REFERENCING OLD AS oldrow NEW AS newrow FOR EACH ROW MODE DB2SQL update modified=timestamp();'
+'CREATE TRIGGER bar_trigger before insert, update ON Basic REFERENCING OLD AS oldrow NEW AS newrow FOR EACH ROW MODE DB2SQL update modified2=timestamp();',
 ];
 
 is_deeply(\@sql, $want, 'Got correct DB2 statements in list context');