summaryrefslogtreecommitdiff
path: root/src/YalpInputs/YalpPGSqlInput
diff options
context:
space:
mode:
authorguest <guest@f059d3a0-6783-47b7-97ff-1fe0bbf25129>2008-09-23 21:29:27 +0000
committerguest <guest@f059d3a0-6783-47b7-97ff-1fe0bbf25129>2008-09-23 21:29:27 +0000
commitd6fa96b4cd67cf4fa18b5b9b6739f9bc2494a9f4 (patch)
tree00aa9a27acb6b4c8d9868795a5295e9231f1eb20 /src/YalpInputs/YalpPGSqlInput
initial import
git-svn-id: http://manut.eu/svn/yalp/trunk@1 f059d3a0-6783-47b7-97ff-1fe0bbf25129
Diffstat (limited to 'src/YalpInputs/YalpPGSqlInput')
-rw-r--r--src/YalpInputs/YalpPGSqlInput/DatabaseDefines.java65
-rw-r--r--src/YalpInputs/YalpPGSqlInput/PGSqlInput.java123
-rw-r--r--src/YalpInputs/YalpPGSqlInput/YalpInputPluginImpl.java189
-rw-r--r--src/YalpInputs/YalpPGSqlInput/YalpPGSqlInput.java33
-rw-r--r--src/YalpInputs/YalpPGSqlInput/db-design-backup.sql321
5 files changed, 731 insertions, 0 deletions
diff --git a/src/YalpInputs/YalpPGSqlInput/DatabaseDefines.java b/src/YalpInputs/YalpPGSqlInput/DatabaseDefines.java
new file mode 100644
index 0000000..b6ee2ce
--- /dev/null
+++ b/src/YalpInputs/YalpPGSqlInput/DatabaseDefines.java
@@ -0,0 +1,65 @@
+/*
+ * Copyright (c) 2006 Manuel Traut and Volker Dahnke
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Common Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/cpl-v10.html
+ *
+ * Contributors: Manuel Traut and Volker Dahnke
+ */
+package YalpInputs.YalpPGSqlInput;
+
+/*
+ * Class DatabaseDefines
+ *
+ * <em></em>
+ *
+ * @author Manuel Traut
+ *
+ * @version 0.1 28-08-2008<br>
+ *
+ */
+
+public class DatabaseDefines {
+
+ public String dbConnection="jdbc:postgresql://10.0.3.20:5432/yalp_media";
+ public String dbUser="yalp";
+ public String dbPasswd="huhu";
+
+/*
+ * set string for dbConnection
+ * @param dbConnection
+ * "jdbc:postgresql://<serverIP>:<portOfDB>/<dataBaseName>";
+ */
+ public void setDBConnection(String dbConnection){
+ this.dbConnection = dbConnection;
+ }
+
+/*
+ * set userName for db Edit
+ * @param dbUser
+ */
+ public void setDBUser(String dbUser){
+ this.dbUser = dbUser;
+ }
+
+/*
+ * set string for db Password
+ * @param DBPasswd
+ */
+ public void setDBPasswd(String DBPasswd){
+ this.dbPasswd = DBPasswd;
+ }
+
+ public String getDBConnection(){
+ return this.dbConnection;
+ }
+
+ public String getDBUser(){
+ return this.dbUser;
+ }
+
+ public String getDBPasswd(){
+ return this.dbPasswd;
+ }
+}
diff --git a/src/YalpInputs/YalpPGSqlInput/PGSqlInput.java b/src/YalpInputs/YalpPGSqlInput/PGSqlInput.java
new file mode 100644
index 0000000..531f53d
--- /dev/null
+++ b/src/YalpInputs/YalpPGSqlInput/PGSqlInput.java
@@ -0,0 +1,123 @@
+/*
+ * Copyright (c) 2006 Manuel Traut and Volker Dahnke
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Common Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/cpl-v10.html
+ *
+ * Contributors: Manuel Traut and Volker Dahnke
+ */
+
+package YalpInputs.YalpPGSqlInput;
+
+import YalpInterfaces.*;
+
+import org.omg.CosNaming.*;
+import org.omg.CosNaming.NamingContextPackage.*;
+import org.omg.CORBA.*;
+import org.omg.PortableServer.*;
+import org.omg.PortableServer.POA;
+
+/*
+ * Class PGSqlInput
+ *
+ * <em>Postgre SQL database connection</em>
+ *
+ * @author Volker Dahnke / Manuel Traut
+ *
+ * @version 2.0 2008-09-23<br>
+ */
+public class PGSqlInput {
+
+ private static ORB orb;
+ private static POA poa;
+ private static YalpInputPluginImpl psql;
+ private static InputPluginInterface inputPlugin;
+ private static ServerControlInterface srvCon;
+ private static PluginInfo pluginInfo;
+
+ public PGSqlInput(String[] argv) {
+
+ pluginInfo = new PluginInfo();
+ pluginInfo.name = "Postgre SQL Input Plugin";
+ pluginInfo.description = "provides information about files, which are stored on a harddisk and have been indicated to the YALP Postgre SQL database";
+ pluginInfo.type = PluginType.INPUT_PLUGIN;
+ pluginInfo.supportedTypes = new MediaType[3];
+ pluginInfo.supportedTypes[0] = MediaType.IMAGE;
+ pluginInfo.supportedTypes[1] = MediaType.VIDEO;
+ pluginInfo.supportedTypes[2] = MediaType.SOUND;
+ pluginInfo.access = new AccessInfo();
+ pluginInfo.access.name = "local files";
+ pluginInfo.access.description = "";
+ pluginInfo.access.executable = "";
+ pluginInfo.access.params = "";
+ pluginInfo.access.type = AccessType.FILES;
+
+ try {
+ this.orb = ORB.init(argv, null);
+ org.omg.CORBA.Object objRef =
+ orb.resolve_initial_references("NameService");
+ NamingContextExt ncRef = NamingContextExtHelper.narrow(objRef);
+ poa = POAHelper.narrow(orb.resolve_initial_references("RootPOA"));
+ } catch(Exception e) {
+ /* t.b.d. error handling */
+ System.out.println("couldn't host plugin implementation");
+ }
+
+ try {
+ poa.the_POAManager().activate();
+ } catch(org.omg.PortableServer.POAManagerPackage.AdapterInactive e) {
+ /* t.b.d. error handling */
+ System.out.println("poa inactive");
+ }
+
+ YalpErrorHolder err = new YalpErrorHolder();
+
+ try {
+ org.omg.CORBA.Object objRef =
+ orb.resolve_initial_references("NameService");
+
+ NamingContextExt ncRef = NamingContextExtHelper.narrow(objRef);
+ String name = "YALP_Server";
+ srvCon = ServerControlInterfaceHelper.narrow(ncRef.resolve_str(name));
+ } catch (Exception e) {
+ System.out.println("Couldn't connect to YALP Server");
+ System.exit(0);
+ }
+
+ psql = new YalpInputPluginImpl();
+ psql.setORB(orb);
+
+ try {
+ poa.activate_object(psql);
+ org.omg.CORBA.Object ref = poa.servant_to_reference(psql);
+ inputPlugin = InputPluginInterfaceHelper.narrow(ref);
+
+ org.omg.CORBA.Object objRef =
+ orb.resolve_initial_references("NameService");
+
+ NamingContextExt ncRef = NamingContextExtHelper.narrow(objRef);
+ String name = "YALP_Postgre_SQL_Input";
+ NameComponent path[] = ncRef.to_name(name);
+ ncRef.rebind(path, inputPlugin);
+
+ PluginInfoHolder tmp = new PluginInfoHolder(pluginInfo);
+ srvCon.ping(err);
+ System.out.println(err.value.descr);
+ srvCon.registerInputPlugin(inputPlugin, tmp, err );
+ pluginInfo = tmp.value;
+
+ if(err.value.code != YalpErrorCode.OK)
+ System.out.println("registring inputplugin failed");
+ else
+ System.out.println("input plugin registered");
+
+ orb.run();
+
+ } catch (Exception e) {
+ System.out.println("binding plugin failed 1");
+ e.printStackTrace();
+ System.exit(0);
+ }
+ }
+}
diff --git a/src/YalpInputs/YalpPGSqlInput/YalpInputPluginImpl.java b/src/YalpInputs/YalpPGSqlInput/YalpInputPluginImpl.java
new file mode 100644
index 0000000..7f599be
--- /dev/null
+++ b/src/YalpInputs/YalpPGSqlInput/YalpInputPluginImpl.java
@@ -0,0 +1,189 @@
+package YalpInputs.YalpPGSqlInput;
+
+import java.sql.Connection;
+import java.sql.DriverManager;
+import java.sql.SQLException;
+import java.util.*;
+import java.sql.*;
+
+import org.omg.CosNaming.*;
+import org.omg.CosNaming.NamingContextPackage.*;
+import org.omg.CORBA.*;
+
+import YalpInterfaces.*;
+
+public class YalpInputPluginImpl extends InputPluginInterfacePOA {
+
+ private String db;
+ private String dbuser;
+ private String dbpasswd;
+ private Statement stat;
+ private Connection con;
+ private PluginInfo pluginInfo;
+ private ORB orb;
+
+ public YalpInputPluginImpl()
+ {
+ System.out.println("YalpInputPluginImpl()");
+ }
+
+ public void setORB(ORB _orb)
+ {
+ orb = _orb;
+ String db = "jdbc:postgresql://localhost:5432/yalp";
+ String dbYalpUser = "yalp";
+ String dbPasswd = "yalp";
+
+ try{
+ dbuser = dbYalpUser;
+ dbpasswd = dbPasswd;
+ Class.forName("org.postgresql.Driver");
+ con = DriverManager.getConnection(db,dbuser,dbpasswd);
+ System.out.println("YalpPGSqlInput: db connection established");
+ stat= con.createStatement();
+ } catch (SQLException e) {
+ System.out.println("Exception in PGSqlInput Constructor: "+e);
+ } catch (ClassNotFoundException e) {
+ System.out.println("Exception in PGSqlInput Constructor: "+e);
+ }
+ }
+
+/*
+ * submits changes to yalpMediaDatabase
+ *
+ * @param change
+ * describes the change to commit
+ * @return int
+ * -1 if failed
+ */
+ public void changeMedia (Media toChange, Action todo, YalpErrorHolder err) {
+ /* t.b.d. alter this to new database design
+ try{
+ String sql1,sql2,sql3;
+ int Return;
+ switch (change.updateType){
+ // if updateType is UPDATE
+ case UPDATE:
+ sql1="update \"medien\" set \"type\"='"+change.type+"', \"title\"='"+change.title+"', \"author\"='"+change.author+"', \"album\"='"+change.album+"', \"category\"='"+change.category+"', \"year\"='"+change.year+"', \"duration\"='"+change.duration+"', \"aBitrate\"="+change.aBitrate+", \"vBitrate\"="+change.vBitrate+", \"resolution\"='"+change.resolution+"', \"lastEdit\"='"+new java.util.Date(System.currentTimeMillis()).toString()+"' where \"id\"= "+change.id+" ;";
+ System.out.println(sql1);
+ Return=stat.executeUpdate(sql1);
+ break;
+ // if updateType is INSERT INTO
+ case INSERT:
+ sql1="insert into \"medien\" values(nextval('medienId'),'"+change.type+"','"+change.title+"','"+change.author+"','"+change.album+"','"+change.category+"','"+change.year+"','"+change.duration+"',"+change.aBitrate+","+change.vBitrate+",'"+change.resolution+"',"+change.ownerId+",'"+new java.util.Date(System.currentTimeMillis()).toString()+"','"+change.path+"','"+change.name+"');";
+ System.out.println(sql1);
+ Return=stat.executeUpdate(sql1);
+ break;
+ // if updateType is DELETE
+ case DELETE:
+ sql1="delete from \"medien\" where \"id\"= "+change.id+" ;";
+ System.out.println(sql1);
+ Return=stat.executeUpdate(sql1);
+ break;
+ default : return -1;
+ }
+ // perform operation on table an return number of updated rows
+ }catch(SQLException e){
+ System.out.println("Exception in PGSqlInput.changeMedia: "+e);
+ }
+ */
+ }
+
+/*
+ * returns an ArrayList of Results which are matching to the commited Find object
+ *
+ * @param media
+ * Object which describes search criterias
+ * @return ArrayList<Result>
+ * List with Results matching search criteria
+ */
+ public void search(String str, MediaType[] types, MediasHolder result, YalpErrorHolder err) {
+ /* t.b.d. alter this to new database design
+ try{
+ ArrayList <String > searchWords=stringCut(media.str);
+ String query= new String();
+ Boolean first;
+ for (int i=0;i<searchWords.size();i++){
+ first=true;
+ if (i!=0)query = query+") intersect ";
+ query= query+"select * from \"medien\" where (";
+ if (media.audio){
+ first=false;
+ query=query+"\"type\" = 'audio' ";
+ }
+ if (media.video){
+ if (first)first=false;
+ else query=query+"or ";
+ query=query+"\"type\" = 'video' ";
+ }
+ if (!first)query=query+") and (";
+ query=query+"\"title\" Ilike '%"+searchWords.get(i)+"%' or \"author\" Ilike '%"+searchWords.get(i)+"%' or \"album\" Ilike '%"+searchWords.get(i)+"%'or \"year\" Ilike '%"+searchWords.get(i)+"%'or \"category\" Ilike '%"+searchWords.get(i)+"%'";
+ }
+ query=query+")order by \"id\";";
+
+ ArrayList<Result> resultList=new ArrayList<Result>();
+ Statement stat= con.createStatement();
+ ResultSet result=stat.executeQuery(query);
+ while(result.next()){
+ resultList.add( new Result(result.getInt(1),result.getString(2),result.getString(3),result.getString(4),result.getString(5),result.getString(6),result.getString(7),result.getString(8),result.getInt(9),result.getInt(10),result.getString(11),result.getInt(12),result.getString(13),result.getString(14),result.getString(15)));
+ }
+ return resultList;
+ }catch(SQLException e){
+ System.out.println("Exception in PGSqlInput.search: "+e);
+ return new ArrayList<Result>();
+ }
+ */
+ }
+
+/*
+ * cuts Strings and returns an ArrayList of the cutted Strings
+ *
+ * @param str
+ * String to cut
+ * @return ArrayList<String>
+ * ArrayList with cutted Strings
+ */
+ private ArrayList <String> stringCut (String str){
+ int i=0,j=0;
+ ArrayList<String> list= new ArrayList<String>();
+ while(j!=-1){
+ j=str.indexOf(" ",i);
+ if (j!=-1){
+ list.add(new String (str.substring(i,j)));
+ i=j+1;
+ } else list.add(new String (str.substring(i,str.length())));
+ }
+ return list;
+ }
+
+/*
+ * returns number of medias in database
+ *
+ * @return String
+ * Number of medias in database
+ */
+ public void getNumOfMedias(IntHolder num, YalpErrorHolder err) {
+ try{
+ ResultSet result=this.stat.executeQuery("select count (\"id\") from \"medien\";");
+ result.next();
+ num = new IntHolder(new Integer(result.getString(1)));
+ }catch(SQLException e){
+ System.out.println("exception in PGSql Input getNumOfMedias: "+e);
+ YalpError error = new YalpError();
+ error.code = YalpErrorCode.ERROR_SQL;
+ error.level= YalpErrorLevel.ERROR_LEVEL_ERROR;
+ error.descr= e.toString();
+ err = new YalpErrorHolder(error);
+ }
+ }
+
+/*
+ * returns plugin information
+ * @param PluginInfoHolder info holder for PluginInformation
+ * @param YalpErrorHolder err holder for error information
+ */
+ public void getInfo(PluginInfoHolder info, YalpErrorHolder err)
+ {
+ info = new PluginInfoHolder(pluginInfo);
+ }
+}
diff --git a/src/YalpInputs/YalpPGSqlInput/YalpPGSqlInput.java b/src/YalpInputs/YalpPGSqlInput/YalpPGSqlInput.java
new file mode 100644
index 0000000..b816542
--- /dev/null
+++ b/src/YalpInputs/YalpPGSqlInput/YalpPGSqlInput.java
@@ -0,0 +1,33 @@
+/*
+ * Copyright (c) 2006 Manuel Traut and Volker Dahnke
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Common Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/cpl-v10.html
+ *
+ * Contributors: Manuel Traut and Volker Dahnke
+ */
+
+package YalpInputs.YalpPGSqlInput;
+
+import YalpInterfaces.*;
+
+/*
+ * Class YalpPGSqlInput
+ *
+ * <em>Implements functionality of the DBConnectionInterface</em>
+ *
+ * @author Volker Dahnke / Manuel Traut
+ *
+ * @version 1 02-04-2006<br>
+ */
+public class YalpPGSqlInput {
+ private YalpInputInterfaceImpl con;
+ private DatabaseDefines config;
+
+ public static void main(String[] args)
+ {
+ System.out.println("YalpPGSqlInput\n");
+ PGSqlInput input = new PGSqlInput(args);
+ }
+}
diff --git a/src/YalpInputs/YalpPGSqlInput/db-design-backup.sql b/src/YalpInputs/YalpPGSqlInput/db-design-backup.sql
new file mode 100644
index 0000000..0ab8d4d
--- /dev/null
+++ b/src/YalpInputs/YalpPGSqlInput/db-design-backup.sql
@@ -0,0 +1,321 @@
+--
+-- PostgreSQL database dump
+--
+
+-- Started on 2008-09-23 20:48:41 CEST
+
+SET client_encoding = 'UNICODE';
+SET check_function_bodies = false;
+SET client_min_messages = warning;
+
+--
+-- TOC entry 1518 (class 0 OID 0)
+-- Dependencies: 5
+-- Name: SCHEMA public; Type: COMMENT; Schema: -; Owner: postgres
+--
+
+COMMENT ON SCHEMA public IS 'Standard public schema';
+
+
+SET search_path = public, pg_catalog;
+
+SET default_tablespace = '';
+
+SET default_with_oids = false;
+
+--
+-- TOC entry 1170 (class 1259 OID 17306)
+-- Dependencies: 1491 5
+-- Name: IntProperties; Type: TABLE; Schema: public; Owner: yalp; Tablespace:
+--
+
+CREATE TABLE "IntProperties" (
+ id bigserial NOT NULL,
+ description "char",
+ value integer
+);
+
+
+ALTER TABLE public."IntProperties" OWNER TO yalp;
+
+--
+-- TOC entry 1520 (class 0 OID 0)
+-- Dependencies: 1169
+-- Name: IntProperties_id_seq; Type: SEQUENCE SET; Schema: public; Owner: yalp
+--
+
+SELECT pg_catalog.setval(pg_catalog.pg_get_serial_sequence('"IntProperties"', 'id'), 1, false);
+
+
+--
+-- TOC entry 1172 (class 1259 OID 17313)
+-- Dependencies: 1492 5
+-- Name: Medias; Type: TABLE; Schema: public; Owner: yalp; Tablespace:
+--
+
+CREATE TABLE "Medias" (
+ id bigserial NOT NULL,
+ "type" character(1),
+ path "char",
+ "fileName" "char",
+ tags "char"[],
+ duration "char"
+);
+
+
+ALTER TABLE public."Medias" OWNER TO yalp;
+
+--
+-- TOC entry 1521 (class 0 OID 0)
+-- Dependencies: 1171
+-- Name: Medias_id_seq; Type: SEQUENCE SET; Schema: public; Owner: yalp
+--
+
+SELECT pg_catalog.setval(pg_catalog.pg_get_serial_sequence('"Medias"', 'id'), 1, false);
+
+
+--
+-- TOC entry 1174 (class 1259 OID 17323)
+-- Dependencies: 1493 1494 1495 5
+-- Name: PropertyConnector; Type: TABLE; Schema: public; Owner: yalp; Tablespace:
+--
+
+CREATE TABLE "PropertyConnector" (
+ "mediaId" integer,
+ "stringPropertyId" integer DEFAULT 0,
+ "intPropertyId" integer DEFAULT 0,
+ id bigserial NOT NULL
+);
+
+
+ALTER TABLE public."PropertyConnector" OWNER TO yalp;
+
+--
+-- TOC entry 1168 (class 1259 OID 17294)
+-- Dependencies: 1490 5
+-- Name: StringProperties; Type: TABLE; Schema: public; Owner: yalp; Tablespace:
+--
+
+CREATE TABLE "StringProperties" (
+ id bigserial NOT NULL,
+ description "char",
+ value "char"
+);
+
+
+ALTER TABLE public."StringProperties" OWNER TO yalp;
+
+--
+-- TOC entry 1522 (class 0 OID 0)
+-- Dependencies: 1167
+-- Name: StringProperties_id_seq; Type: SEQUENCE SET; Schema: public; Owner: yalp
+--
+
+SELECT pg_catalog.setval(pg_catalog.pg_get_serial_sequence('"StringProperties"', 'id'), 1, false);
+
+
+--
+-- TOC entry 1165 (class 1259 OID 17269)
+-- Dependencies: 1488 1489 5
+-- Name: Users; Type: TABLE; Schema: public; Owner: yalp; Tablespace:
+--
+
+CREATE TABLE "Users" (
+ name "char"[] NOT NULL,
+ "realName" name[],
+ "level" integer DEFAULT 1 NOT NULL,
+ id bigserial NOT NULL
+);
+
+
+ALTER TABLE public."Users" OWNER TO yalp;
+
+--
+-- TOC entry 1523 (class 0 OID 0)
+-- Dependencies: 1166
+-- Name: Users_id_seq; Type: SEQUENCE SET; Schema: public; Owner: yalp
+--
+
+SELECT pg_catalog.setval(pg_catalog.pg_get_serial_sequence('"Users"', 'id'), 1, false);
+
+
+--
+-- TOC entry 1524 (class 0 OID 0)
+-- Dependencies: 1173
+-- Name: propertyConnector_id_seq; Type: SEQUENCE SET; Schema: public; Owner: yalp
+--
+
+SELECT pg_catalog.setval(pg_catalog.pg_get_serial_sequence('"PropertyConnector"', 'id'), 1, false);
+
+
+--
+-- TOC entry 1513 (class 0 OID 17306)
+-- Dependencies: 1170
+-- Data for Name: IntProperties; Type: TABLE DATA; Schema: public; Owner: yalp
+--
+
+COPY "IntProperties" (id, description, value) FROM stdin;
+\.
+
+
+--
+-- TOC entry 1514 (class 0 OID 17313)
+-- Dependencies: 1172
+-- Data for Name: Medias; Type: TABLE DATA; Schema: public; Owner: yalp
+--
+
+COPY "Medias" (id, "type", path, "fileName", tags, duration) FROM stdin;
+\.
+
+
+--
+-- TOC entry 1515 (class 0 OID 17323)
+-- Dependencies: 1174
+-- Data for Name: PropertyConnector; Type: TABLE DATA; Schema: public; Owner: yalp
+--
+
+COPY "PropertyConnector" ("mediaId", "stringPropertyId", "intPropertyId", id) FROM stdin;
+\.
+
+
+--
+-- TOC entry 1512 (class 0 OID 17294)
+-- Dependencies: 1168
+-- Data for Name: StringProperties; Type: TABLE DATA; Schema: public; Owner: yalp
+--
+
+COPY "StringProperties" (id, description, value) FROM stdin;
+\.
+
+
+--
+-- TOC entry 1511 (class 0 OID 17269)
+-- Dependencies: 1165
+-- Data for Name: Users; Type: TABLE DATA; Schema: public; Owner: yalp
+--
+
+COPY "Users" (name, "realName", "level", id) FROM stdin;
+\.
+
+
+--
+-- TOC entry 1507 (class 16386 OID 17329)
+-- Dependencies: 1174 1174
+-- Name: key_id_con; Type: CONSTRAINT; Schema: public; Owner: yalp; Tablespace:
+--
+
+ALTER TABLE ONLY "PropertyConnector"
+ ADD CONSTRAINT key_id_con PRIMARY KEY (id);
+
+
+ALTER INDEX public.key_id_con OWNER TO yalp;
+
+--
+-- TOC entry 1497 (class 16386 OID 17291)
+-- Dependencies: 1165 1165
+-- Name: key_is_id; Type: CONSTRAINT; Schema: public; Owner: yalp; Tablespace:
+--
+
+ALTER TABLE ONLY "Users"
+ ADD CONSTRAINT key_is_id PRIMARY KEY (id);
+
+
+ALTER INDEX public.key_is_id OWNER TO yalp;
+
+--
+-- TOC entry 1501 (class 16386 OID 17298)
+-- Dependencies: 1168 1168
+-- Name: prim_key_id; Type: CONSTRAINT; Schema: public; Owner: yalp; Tablespace:
+--
+
+ALTER TABLE ONLY "StringProperties"
+ ADD CONSTRAINT prim_key_id PRIMARY KEY (id);
+
+
+ALTER INDEX public.prim_key_id OWNER TO yalp;
+
+--
+-- TOC entry 1503 (class 16386 OID 17310)
+-- Dependencies: 1170 1170
+-- Name: prim_key_int_id; Type: CONSTRAINT; Schema: public; Owner: yalp; Tablespace:
+--
+
+ALTER TABLE ONLY "IntProperties"
+ ADD CONSTRAINT prim_key_int_id PRIMARY KEY (id);
+
+
+ALTER INDEX public.prim_key_int_id OWNER TO yalp;
+
+--
+-- TOC entry 1505 (class 16386 OID 17320)
+-- Dependencies: 1172 1172
+-- Name: prim_key_m_id; Type: CONSTRAINT; Schema: public; Owner: yalp; Tablespace:
+--
+
+ALTER TABLE ONLY "Medias"
+ ADD CONSTRAINT prim_key_m_id PRIMARY KEY (id);
+
+
+ALTER INDEX public.prim_key_m_id OWNER TO yalp;
+
+--
+-- TOC entry 1499 (class 16386 OID 17278)
+-- Dependencies: 1165 1165
+-- Name: user_name_unique; Type: CONSTRAINT; Schema: public; Owner: yalp; Tablespace:
+--
+
+ALTER TABLE ONLY "Users"
+ ADD CONSTRAINT user_name_unique UNIQUE (name);
+
+
+ALTER INDEX public.user_name_unique OWNER TO yalp;
+
+--
+-- TOC entry 1509 (class 16386 OID 17334)
+-- Dependencies: 1174 1170 1502
+-- Name: int_prop; Type: FK CONSTRAINT; Schema: public; Owner: yalp
+--
+
+ALTER TABLE ONLY "PropertyConnector"
+ ADD CONSTRAINT int_prop FOREIGN KEY ("intPropertyId") REFERENCES "IntProperties"(id);
+
+
+--
+-- TOC entry 1508 (class 16386 OID 17330)
+-- Dependencies: 1174 1172 1504
+-- Name: media_prop; Type: FK CONSTRAINT; Schema: public; Owner: yalp
+--
+
+ALTER TABLE ONLY "PropertyConnector"
+ ADD CONSTRAINT media_prop FOREIGN KEY ("mediaId") REFERENCES "Medias"(id);
+
+
+--
+-- TOC entry 1510 (class 16386 OID 17338)
+-- Dependencies: 1174 1168 1500
+-- Name: string_prop; Type: FK CONSTRAINT; Schema: public; Owner: yalp
+--
+
+ALTER TABLE ONLY "PropertyConnector"
+ ADD CONSTRAINT string_prop FOREIGN KEY ("stringPropertyId") REFERENCES "StringProperties"(id);
+
+
+--
+-- TOC entry 1519 (class 0 OID 0)
+-- Dependencies: 5
+-- Name: public; Type: ACL; Schema: -; Owner: postgres
+--
+
+REVOKE ALL ON SCHEMA public FROM PUBLIC;
+REVOKE ALL ON SCHEMA public FROM postgres;
+GRANT ALL ON SCHEMA public TO postgres;
+GRANT ALL ON SCHEMA public TO yalp;
+GRANT ALL ON SCHEMA public TO PUBLIC;
+
+
+-- Completed on 2008-09-23 20:48:41 CEST
+
+--
+-- PostgreSQL database dump complete
+--
+