CREATE TABLE "Adressen" ("ID" "int4" NOT NULL, "Name" varchar(60) NOT NULL, "Strasse" varchar(40) NOT NULL, "PLZ" char(5) NOT NULL, "Ort" varchar(40) NOT NULL); CREATE TABLE "doppelt_name_ort" ("Name" varchar(60), "Ort" varchar(40)); CREATE TABLE "doppelt_name_strasse" ("Name" varchar(60), "Strasse" varchar(40)); CREATE TABLE "doppelt_ort_strasse" ("Ort" varchar(40), "Strasse" varchar(40)); CREATE UNIQUE INDEX "Adressen_pkey" on "Adressen" using btree ( "ID" "int4_ops" ); CREATE INDEX "adressen_name" on "Adressen" using hash ( "Name" "varchar_ops" ); CREATE INDEX "adressen_plz" on "Adressen" using hash ( "PLZ" "bpchar_ops" ); CREATE INDEX "adressen_ort" on "Adressen" using hash ( "Ort" "varchar_ops" ); CREATE INDEX "adressen_strasse" on "Adressen" using hash ( "Strasse" "varchar_ops" ); CREATE UNIQUE INDEX "adressen_id" on "Adressen" using btree ( "ID" "int4_ops" ); CREATE INDEX "adressen_name_ort" on "Adressen" using btree ( "Name" "varchar_ops", "Ort" "varchar_ops" ); CREATE INDEX "adressen_name_strasse" on "Adressen" using btree ( "Name" "varchar_ops", "Strasse" "varchar_ops" ); CREATE INDEX "adressen_ort_strasse" on "Adressen" using btree ( "Ort" "varchar_ops", "Strasse" "varchar_ops" ); CREATE RULE "_RETdoppelt_name_ort" AS ON SELECT TO "doppelt_name_ort" DO INSTEAD SELECT "Name", "Ort" FROM "Adressen" GROUP BY "Name", "Ort"; CREATE RULE "_RETdoppelt_name_strasse" AS ON SELECT TO "doppelt_name_strasse" DO INSTEAD SELECT "Name", "Strasse" FROM "Adressen" GROUP BY "Name", "Strasse"; CREATE RULE "_RETdoppelt_ort_strasse" AS ON SELECT TO "doppelt_ort_strasse" DO INSTEAD SELECT "Ort", "Strasse" FROM "Adressen" GROUP BY "Ort", "Strasse";