Release commit for 1.62
[dbsrgits/SQL-Translator.git] / t / 48xml-to-sqlite.t
index 9502348..21e8ad3 100644 (file)
@@ -20,6 +20,7 @@ my $xmlfile = "$Bin/data/xml/schema.xml";
 
 my $sqlt;
 $sqlt = SQL::Translator->new(
+    quote_identifiers => 1,
     no_comments => 1,
     show_warnings  => 0,
     add_drop_table => 1,
@@ -36,51 +37,51 @@ my $sql = $sqlt->translate(
 eq_or_diff($sql, << "SQL");
 BEGIN TRANSACTION;
 
-DROP TABLE 'Basic';
+DROP TABLE "Basic";
 
-CREATE TABLE 'Basic' (
-  'id' INTEGER PRIMARY KEY NOT NULL,
-  'title' varchar(100) NOT NULL DEFAULT 'hello',
-  'description' text DEFAULT '',
-  'email' varchar(500),
-  'explicitnulldef' varchar,
-  'explicitemptystring' varchar DEFAULT '',
+CREATE TABLE "Basic" (
+  "id" INTEGER PRIMARY KEY NOT NULL,
+  "title" varchar(100) NOT NULL DEFAULT 'hello',
+  "description" text DEFAULT '',
+  "email" varchar(500),
+  "explicitnulldef" varchar,
+  "explicitemptystring" varchar DEFAULT '',
   -- Hello emptytagdef
-  'emptytagdef' varchar DEFAULT '',
-  'another_id' int(10) DEFAULT 2,
-  'timest' timestamp,
-  FOREIGN KEY('another_id') REFERENCES 'Another'()
+  "emptytagdef" varchar DEFAULT '',
+  "another_id" int(10) DEFAULT 2,
+  "timest" timestamp,
+  FOREIGN KEY ("another_id") REFERENCES "Another"("id")
 );
 
-CREATE INDEX 'titleindex' ON 'Basic' ('title');
+CREATE INDEX "titleindex" ON "Basic" ("title");
 
-CREATE UNIQUE INDEX 'emailuniqueindex' ON 'Basic' ('email');
+CREATE UNIQUE INDEX "emailuniqueindex" ON "Basic" ("email");
 
-CREATE UNIQUE INDEX 'very_long_index_name_on_title_field_which_should_be_truncated_for_various_rdbms' ON 'Basic' ('title');
+CREATE UNIQUE INDEX "very_long_index_name_on_title_field_which_should_be_truncated_for_various_rdbms" ON "Basic" ("title");
 
-DROP TABLE 'Another';
+DROP TABLE "Another";
 
-CREATE TABLE 'Another' (
-  'id' INTEGER PRIMARY KEY NOT NULL,
-  'num' numeric(10,2)
+CREATE TABLE "Another" (
+  "id" INTEGER PRIMARY KEY NOT NULL,
+  "num" numeric(10,2)
 );
 
-DROP VIEW IF EXISTS 'email_list';
+DROP VIEW IF EXISTS "email_list";
 
-CREATE VIEW 'email_list' AS
+CREATE VIEW "email_list" AS
     SELECT email FROM Basic WHERE (email IS NOT NULL);
 
-DROP TRIGGER IF EXISTS 'foo_trigger';
+DROP TRIGGER IF EXISTS "foo_trigger";
 
-CREATE TRIGGER 'foo_trigger' after insert on 'Basic' BEGIN update modified=timestamp(); END;
+CREATE TRIGGER "foo_trigger" after insert on "Basic" BEGIN update modified=timestamp(); END;
 
-DROP TRIGGER IF EXISTS 'bar_trigger_insert';
+DROP TRIGGER IF EXISTS "bar_trigger_insert";
 
-CREATE TRIGGER 'bar_trigger_insert' before insert on 'Basic' BEGIN update modified2=timestamp(); END;
+CREATE TRIGGER "bar_trigger_insert" before insert on "Basic" BEGIN update modified2=timestamp(); END;
 
-DROP TRIGGER IF EXISTS 'bar_trigger_update';
+DROP TRIGGER IF EXISTS "bar_trigger_update";
 
-CREATE TRIGGER 'bar_trigger_update' before update on 'Basic' BEGIN update modified2=timestamp(); END;
+CREATE TRIGGER "bar_trigger_update" before update on "Basic" BEGIN update modified2=timestamp(); END;
 
 COMMIT;
 SQL
@@ -92,40 +93,40 @@ my @sql = $sqlt->translate(
     filename => $xmlfile,
 ) or die $sqlt->error;
 
-eq_or_diff(\@sql, 
+eq_or_diff(\@sql,
           [
           'BEGIN TRANSACTION',
-          q<DROP TABLE 'Basic'>,
-          q<CREATE TABLE 'Basic' (
-  'id' INTEGER PRIMARY KEY NOT NULL,
-  'title' varchar(100) NOT NULL DEFAULT 'hello',
-  'description' text DEFAULT '',
-  'email' varchar(500),
-  'explicitnulldef' varchar,
-  'explicitemptystring' varchar DEFAULT '',
+          q<DROP TABLE "Basic">,
+          q<CREATE TABLE "Basic" (
+  "id" INTEGER PRIMARY KEY NOT NULL,
+  "title" varchar(100) NOT NULL DEFAULT 'hello',
+  "description" text DEFAULT '',
+  "email" varchar(500),
+  "explicitnulldef" varchar,
+  "explicitemptystring" varchar DEFAULT '',
   -- Hello emptytagdef
-  'emptytagdef' varchar DEFAULT '',
-  'another_id' int(10) DEFAULT 2,
-  'timest' timestamp,
-  FOREIGN KEY('another_id') REFERENCES 'Another'()
+  "emptytagdef" varchar DEFAULT '',
+  "another_id" int(10) DEFAULT 2,
+  "timest" timestamp,
+  FOREIGN KEY ("another_id") REFERENCES "Another"("id")
 )>,
-          q<CREATE INDEX 'titleindex' ON 'Basic' ('title')>,
-          q<CREATE UNIQUE INDEX 'emailuniqueindex' ON 'Basic' ('email')>,
-          q<CREATE UNIQUE INDEX 'very_long_index_name_on_title_field_which_should_be_truncated_for_various_rdbms' ON 'Basic' ('title')>,
-          q<DROP TABLE 'Another'>,
-          q<CREATE TABLE 'Another' (
-  'id' INTEGER PRIMARY KEY NOT NULL,
-  'num' numeric(10,2)
+          q<CREATE INDEX "titleindex" ON "Basic" ("title")>,
+          q<CREATE UNIQUE INDEX "emailuniqueindex" ON "Basic" ("email")>,
+          q<CREATE UNIQUE INDEX "very_long_index_name_on_title_field_which_should_be_truncated_for_various_rdbms" ON "Basic" ("title")>,
+          q<DROP TABLE "Another">,
+          q<CREATE TABLE "Another" (
+  "id" INTEGER PRIMARY KEY NOT NULL,
+  "num" numeric(10,2)
 )>,
-          q<DROP VIEW IF EXISTS 'email_list'>,
-          q<CREATE VIEW 'email_list' AS
+          q<DROP VIEW IF EXISTS "email_list">,
+          q<CREATE VIEW "email_list" AS
     SELECT email FROM Basic WHERE (email IS NOT NULL)>,
-          q<DROP TRIGGER IF EXISTS 'foo_trigger'>,
-          q<CREATE TRIGGER 'foo_trigger' after insert on 'Basic' BEGIN update modified=timestamp(); END>,
-          q<DROP TRIGGER IF EXISTS 'bar_trigger_insert'>,
-          q<CREATE TRIGGER 'bar_trigger_insert' before insert on 'Basic' BEGIN update modified2=timestamp(); END>,
-          q<DROP TRIGGER IF EXISTS 'bar_trigger_update'>,
-          q<CREATE TRIGGER 'bar_trigger_update' before update on 'Basic' BEGIN update modified2=timestamp(); END>,
+          q<DROP TRIGGER IF EXISTS "foo_trigger">,
+          q<CREATE TRIGGER "foo_trigger" after insert on "Basic" BEGIN update modified=timestamp(); END>,
+          q<DROP TRIGGER IF EXISTS "bar_trigger_insert">,
+          q<CREATE TRIGGER "bar_trigger_insert" before insert on "Basic" BEGIN update modified2=timestamp(); END>,
+          q<DROP TRIGGER IF EXISTS "bar_trigger_update">,
+          q<CREATE TRIGGER "bar_trigger_update" before update on "Basic" BEGIN update modified2=timestamp(); END>,
           'COMMIT',
 
           ], 'SQLite translate in list context matches');