Fix erroneous PostgreSQL floating point type translations (RT#99725)
[dbsrgits/SQL-Translator.git] / t / 30sqlt-new-diff-pgsql.t
index 5fd1440..bbb986e 100644 (file)
@@ -25,7 +25,7 @@ my ( $source_schema, $target_schema, $parsed_sql_schema ) = map {
       or die $tr->error;
     my $out = $t->translate( catfile($Bin, qw/data diff pgsql/, $_ ) )
       or die $tr->error;
-    
+
     my $schema = $t->schema;
     unless ( $schema->name ) {
         $schema->name( $_ );
@@ -40,33 +40,37 @@ my $out = SQL::Translator::Diff::schema_diff(
     $target_schema,
    'PostgreSQL',
    {
-     producer_options => {
-         quote_table_names => 0,
+     producer_args => {
+         quote_identifiers => 0,
      }
    }
 );
+
 eq_or_diff($out, <<'## END OF DIFF', "Diff as expected");
 -- Convert schema 'create1.yml' to 'create2.yml':;
 
 BEGIN;
 
 CREATE TABLE added (
-  "id" bigint
+  id bigint
 );
 
-ALTER TABLE old_name RENAME TO new_name;
-
 ALTER TABLE employee DROP CONSTRAINT FK5302D47D93FE702E;
 
-ALTER TABLE person DROP CONSTRAINT UC_age_name;
+ALTER TABLE employee DROP COLUMN job_title;
 
-DROP INDEX u_name;
+ALTER TABLE employee ADD CONSTRAINT FK5302D47D93FE702E_diff FOREIGN KEY (employee_id)
+  REFERENCES person (person_id) DEFERRABLE;
 
-ALTER TABLE employee DROP COLUMN job_title;
+ALTER TABLE old_name RENAME TO new_name;
 
 ALTER TABLE new_name ADD COLUMN new_field integer;
 
-ALTER TABLE person ADD COLUMN is_rock_star smallint DEFAULT '1';
+ALTER TABLE person DROP CONSTRAINT UC_age_name;
+
+DROP INDEX u_name;
+
+ALTER TABLE person ADD COLUMN is_rock_star smallint DEFAULT 1;
 
 ALTER TABLE person ALTER COLUMN person_id TYPE serial;
 
@@ -76,16 +80,17 @@ ALTER TABLE person ALTER COLUMN age SET DEFAULT 18;
 
 ALTER TABLE person ALTER COLUMN iq TYPE bigint;
 
-ALTER TABLE person RENAME COLUMN description TO physical_description;
+ALTER TABLE person ALTER COLUMN nickname SET NOT NULL;
 
-ALTER TABLE person ADD CONSTRAINT "unique_name" UNIQUE (name);
+ALTER TABLE person ALTER COLUMN nickname TYPE character varying(24);
 
-ALTER TABLE employee ADD FOREIGN KEY (employee_id)
-  REFERENCES person (person_id) DEFERRABLE;
+ALTER TABLE person RENAME COLUMN description TO physical_description;
+
+ALTER TABLE person ADD CONSTRAINT unique_name UNIQUE (name);
 
-ALTER TABLE person ADD CONSTRAINT "UC_person_id" UNIQUE (person_id);
+ALTER TABLE person ADD CONSTRAINT UC_person_id UNIQUE (person_id);
 
-ALTER TABLE person ADD CONSTRAINT "UC_age_name" UNIQUE (age, name);
+ALTER TABLE person ADD CONSTRAINT UC_age_name UNIQUE (age, name);
 
 DROP TABLE deleted CASCADE;
 
@@ -98,9 +103,8 @@ $out = SQL::Translator::Diff::schema_diff(
     $source_schema, 'PostgreSQL', $target_schema, 'PostgreSQL',
     { ignore_index_names => 1,
       ignore_constraint_names => 1,
-      producer_options => {
-         quote_table_names => 0,
-         quote_field_names => 0,
+      producer_args => {
+         quote_identifiers => 0,
       }
     });
 
@@ -113,15 +117,15 @@ CREATE TABLE added (
   id bigint
 );
 
-ALTER TABLE old_name RENAME TO new_name;
-
-ALTER TABLE person DROP CONSTRAINT UC_age_name;
-
 ALTER TABLE employee DROP COLUMN job_title;
 
+ALTER TABLE old_name RENAME TO new_name;
+
 ALTER TABLE new_name ADD COLUMN new_field integer;
 
-ALTER TABLE person ADD COLUMN is_rock_star smallint DEFAULT '1';
+ALTER TABLE person DROP CONSTRAINT UC_age_name;
+
+ALTER TABLE person ADD COLUMN is_rock_star smallint DEFAULT 1;
 
 ALTER TABLE person ALTER COLUMN person_id TYPE serial;
 
@@ -131,11 +135,15 @@ ALTER TABLE person ALTER COLUMN age SET DEFAULT 18;
 
 ALTER TABLE person ALTER COLUMN iq TYPE bigint;
 
+ALTER TABLE person ALTER COLUMN nickname SET NOT NULL;
+
+ALTER TABLE person ALTER COLUMN nickname TYPE character varying(24);
+
 ALTER TABLE person RENAME COLUMN description TO physical_description;
 
-ALTER TABLE person ADD CONSTRAINT "UC_person_id3" UNIQUE (person_id);
+ALTER TABLE person ADD CONSTRAINT UC_person_id UNIQUE (person_id);
 
-ALTER TABLE person ADD CONSTRAINT "UC_age_name3" UNIQUE (age, name);
+ALTER TABLE person ADD CONSTRAINT UC_age_name UNIQUE (age, name);
 
 DROP TABLE deleted CASCADE;