]> Frank Brehm's Git Trees - my-stuff/sql-parse.git/commitdiff
Testscripte dazu master
authorFrank Brehm <frank@brehm-online.com>
Mon, 5 Dec 2011 22:57:43 +0000 (22:57 +0000)
committerFrank Brehm <frank@brehm-online.com>
Mon, 5 Dec 2011 22:57:43 +0000 (22:57 +0000)
git-svn-id: http://svn.brehm-online.com/svn/my-stuff/sql-parse/trunk@302 ec8d2aa5-1599-4edb-8739-2b3a1bc399aa

bin/test-mysql.pl [new file with mode: 0755]
bin/test-oracle.pl [new file with mode: 0755]
bin/test-parse.pl [new file with mode: 0755]
data/create_db.sql [new file with mode: 0644]

diff --git a/bin/test-mysql.pl b/bin/test-mysql.pl
new file mode 100755 (executable)
index 0000000..b1f9bd0
--- /dev/null
@@ -0,0 +1,73 @@
+#!/usr/bin/perl
+
+use strict;
+use warnings;
+
+use Data::Dumper;
+
+use FindBin;
+use lib "$FindBin::Bin/../lib";
+
+use Text::Parse::SQL;
+
+my $params = {
+       'sql_syntax' => 'mysql',
+       'debug' => 0,
+};
+
+my $parser = new Text::Parse::SQL( $params );
+
+print $parser->_DUMP();
+
+my $sql = <<ENDE;
+
+SET FOREIGN_KEY_CHECKS=0; -- Checks aus Perfomancegründen disablen
+
+-- Als erstes Tabelle users löschen, falls sie existieren sollte.
+
+/* mmm */
+
+/*
+
+Zweiter Blockkommentar
+
+*/
+
+DROP TABLE IF EXISTS `users`
+/* Ein Blockkommentar
+
+   Zweite Zeile
+
+ */
+;
+
+# Jetzt Tabelle users neu erstellen
+
+CREATE TABLE IF NOT EXISTS `users` (
+  `id` int(8) NOT NULL auto_increment,              # Das wird der Primary
+  `mitarbeiter_id` int(8) NOT NULL default '0',
+  `rights` varchar(9) NOT NULL default '______',
+  `pass` varchar(11) NOT NULL default '',
+  `group` enum('','PE','TPM') NOT NULL default 'PE',
+  `hide` int(1) NOT NULL default '0',
+  `descr` text,                                     -- und hier die Beschreibung des Ganzen
+  PRIMARY KEY  (`id`),
+  KEY `mitarbeiter_id` (`mitarbeiter_id`)
+) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=11 ;
+
+SET FOREIGN_KEY_CHECKS=1; # Checks wieder enablen
+
+
+-- Default-Datensatz einfügen
+INSERT INTO /*! 5.0 */ `users` (`id`, `mitarbeiter_id`, `rights`, `pass`, `group`, `hide`, `descr`) VALUES (1, 262, 'rwr_r_', 'test', 'PE', 0, 'Nur''n Beispielnutzer für so \\'ne Sache.' );
+INSERT INTO `users` (`id`, `mitarbeiter_id`, `rights`, `pass`, `group`, `hide`, `descr`) VALUES (1, 262, 'rwr_r_', 'test', 'PE', 0, 'Falscher Blockkommentar: /* hdfbvhebf*/' );
+
+ENDE
+
+my $statements = $parser->parse($sql);
+
+#$Data::Dumper::Indent = 1;
+
+print "Ergebnisse: " . Dumper($statements);
+
+
diff --git a/bin/test-oracle.pl b/bin/test-oracle.pl
new file mode 100755 (executable)
index 0000000..b4075ca
--- /dev/null
@@ -0,0 +1,85 @@
+#!/usr/bin/perl
+
+use strict;
+use warnings;
+
+use Data::Dumper;
+
+use FindBin;
+use lib "$FindBin::Bin/../lib";
+
+use Text::Parse::SQL;
+
+my $params = {
+       'sql_syntax' => 'oracle',
+       'debug' => 0,
+};
+
+my $parser = new Text::Parse::SQL( $params );
+
+print $parser->_DUMP();
+
+my $sql = <<ENDE;
+
+SET LONG 100; -- Checks aus Perfomancegründen disablen
+SET LINES 150
+SET PAGES 500;
+
+-- Als erstes Tabelle users löschen, falls sie existieren sollte.
+
+SPOOL OFF
+
+/* mmm */
+
+/*
+
+Zweiter Blockkommentar
+
+*/
+
+DROP TABLE IF EXISTS users
+/* Ein Blockkommentar
+
+   Zweite Zeile
+
+ */
+;
+
+PROMPT Blablabla
+
+/
+
+-- Jetzt Tabelle users neu erstellen
+
+CREATE TABLE IF NOT EXISTS users (
+  id NUMBER NOT NULL,              -- Das wird der Primary
+  mitarbeiter_id NUMBER NOT NULL DEFAULT 0,
+  rights VARCHAR2(9) NOT NULL default '______',
+  description LONG,                -- und hier die Beschreibung des Ganzen
+  PRIMARY KEY  (`id`)
+);
+
+-- Default-Datensatz einfügen
+INSERT INTO /*+ 5.0 */ users (id, mitarbeiter_id, rights, description ) VALUES ( 1, 262, 'rwr_r_', 'Nur''n Beispielnutzer für so \\''ne Sache.' );
+INSERT INTO users (id, mitarbeiter_id, rights, description ) VALUES (1, 262, 'rwr_r_', 'Falscher Blockkommentar: /* hdfbvhebf*/' );
+
+ENDE
+
+#$sql = <<ENDE;
+#
+#\@uhu.sql
+#
+#SET LONG 100; -- Checks aus Perfomancegründen disablen
+#
+#-- Als erstes Tabelle users löschen, falls sie existieren sollte.
+#DROP TABLE IF EXISTS users;
+#
+#ENDE
+
+my $statements = $parser->parse($sql);
+
+#$Data::Dumper::Indent = 1;
+
+print "Ergebnisse: " . Dumper($statements);
+
+
diff --git a/bin/test-parse.pl b/bin/test-parse.pl
new file mode 100755 (executable)
index 0000000..373c15c
--- /dev/null
@@ -0,0 +1,60 @@
+#!/usr/bin/perl
+
+use strict;
+use warnings;
+
+use Data::Dumper;
+
+use FindBin;
+use lib "$FindBin::Bin/../lib";
+
+use Text::Parse::SQL;
+
+my $params = {
+       'remove_block_comments' => 1,
+};
+
+my $sqlfile = $FindBin::Bin . "/../data/create_db.sql";
+
+my $parser = new Text::Parse::SQL( $params );
+
+print $parser->_DUMP();
+
+my $sql = <<ENDE;
+
+-- Als erstes Tabelle newsletters löschen, falls sie existieren sollte.
+
+DROP TABLE IF EXISTS "newsletters"
+/* Ein Blockkommentar
+
+   Zweite Zeile
+
+ */
+;
+
+-- Jetzt Tabelle newsletters neu erstellen
+
+CREATE TABLE "newsletters" (
+    "nid" INTEGER PRIMARY KEY AUTOINCREMENT,
+    "title" TEXT COLLATE NOCASE NOT NULL,
+    "desc" TEXT,
+    "creation" TEXT NOT NULL DEFAULT CURRENT_TIMESTAMP
+);
+
+-- Index über den Newsletter-Titel erstellen
+CREATE INDEX IF NOT EXISTS "ix_newsletters_title" ON "newsletters" ( "title" );
+
+-- Default-Datensatz einfügen
+INSERT INTO "newsletters" ( "nid", "title", "desc" ) VALUES ( 1, 'Default newsletter', 'Nicht zuzuordnende locations, 
+zum Beispiel so''n Unsinn.' );
+
+ENDE
+
+my $statements = $parser->parse($sql);
+
+$Data::Dumper::Indent = 1;
+
+print "Ergebnisse: " . Dumper($statements);
+
+$statements = $parser->parse_file($sqlfile);
+print "Ergebnisse: " . Dumper($statements);
diff --git a/data/create_db.sql b/data/create_db.sql
new file mode 100644 (file)
index 0000000..0cd36f4
--- /dev/null
@@ -0,0 +1,67 @@
+--
+-- Erzeugung der Datenbank-Struktur.
+--
+-- Voraussetzung: SqLite >=3.3
+--
+
+-- $Id$
+-- $URL$
+
+-- Tabelle newsletters
+
+DROP TABLE IF EXISTS "newsletters";
+CREATE TABLE "newsletters" (
+    "nid" INTEGER PRIMARY KEY AUTOINCREMENT,
+    "title" TEXT COLLATE NOCASE NOT NULL,
+    "desc" TEXT,
+    "creation" TEXT NOT NULL DEFAULT CURRENT_TIMESTAMP
+);
+CREATE INDEX IF NOT EXISTS "ix_newsletters_title" ON "newsletters" ( "title" );
+
+INSERT INTO "newsletters" ( "nid", "title", "desc" ) VALUES ( 1, 'Default newsletter', 'Nicht zuzuordnende locations' );
+
+-- Tabelle locations
+
+DROP TABLE IF EXISTS "locations";
+CREATE TABLE "locations" (
+    "lid" INTEGER PRIMARY KEY AUTOINCREMENT,
+    "nid" INTEGER,
+    "url" TEXT COLLATE NOCASE NOT NULL,
+    "desc" TEXT,
+    "creation" TEXT NOT NULL DEFAULT CURRENT_TIMESTAMP
+);
+CREATE INDEX IF NOT EXISTS "ix_locations_nid" ON "locations" ( "nid" );
+
+INSERT INTO locations ( "nid", "url", "desc" ) VALUES ( 1, 'http://www.strato.de', 'Standard-Eintrag' );
+INSERT INTO locations ( "nid", "url", "desc" ) VALUES ( 1, 'http://www.strato.com', 'Standard-Eintrag' );
+
+
+-- Tabelle iplist
+
+DROP TABLE IF EXISTS "iplist";
+CREATE TABLE "iplist" (
+    "id" INTEGER PRIMARY KEY AUTOINCREMENT,
+    "lid" INTEGER NOT NULL,
+    "ip" NOT NULL,
+    "type" TEXT NOT NULL DEFAULT 'r',
+    "tstamp" TEXT NOT NULL DEFAULT CURRENT_TIMESTAMP
+);                
+CREATE UNIQUE INDEX IF NOT EXISTS "ix_iplist_ident" ON "iplist" ( "lid", "ip", "type" );
+CREATE INDEX IF NOT EXISTS "ix_iplist_tstamp" ON "iplist" ( "tstamp" );
+
+-- Tabelle count
+
+DROP TABLE IF EXISTS "count";
+CREATE TABLE "count" (
+    "id" INTEGER PRIMARY KEY AUTOINCREMENT,
+    "lid" INTEGER NOT NULL,
+    "ip" NOT NULL,
+    "type" TEXT NOT NULL DEFAULT 'r',
+    "tstamp" TEXT NOT NULL DEFAULT CURRENT_TIMESTAMP
+);
+CREATE INDEX IF NOT EXISTS "ix_count_lid" ON "count" ( "lid" );
+CREATE INDEX IF NOT EXISTS "ix_count_tstamp" ON "count" ( "tstamp" );
+
+-- Bereinigen der gesamten Datenbank
+VACUUM;
+