--- /dev/null
+#!/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);
+
+
--- /dev/null
+#!/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);
+
+
--- /dev/null
+#!/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);
--- /dev/null
+--
+-- 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;
+