Fix problem with new table column names: ProgrammeName -> ProgramName, Version -...
[proteocache.git] / datadb / compbio / cassandra / CassandraNativeConnector.java
index 0a5a795..3360ad1 100644 (file)
@@ -3,6 +3,7 @@ package compbio.cassandra;
 import java.util.Calendar;
 
 import org.apache.log4j.Logger;
+import org.springframework.dao.DataIntegrityViolationException;
 
 import com.datastax.driver.core.Cluster;
 import com.datastax.driver.core.Configuration;
@@ -17,6 +18,8 @@ import com.datastax.driver.core.Row;
 import com.datastax.driver.core.SocketOptions;
 
 import com.datastax.driver.core.Session;
+import com.datastax.driver.core.exceptions.QueryExecutionException;
+import com.datastax.driver.core.exceptions.QueryValidationException;
 import com.datastax.driver.core.policies.Policies;
 
 import compbio.engine.ProteoCachePropertyHelperManager;
@@ -30,7 +33,7 @@ public class CassandraNativeConnector {
 
        public static String CASSANDRA_HOSTNAME = "localhost";
 
-       public static Session getSession () {
+       public static Session getSession() {
                return session;
        }
 
@@ -46,7 +49,7 @@ public class CassandraNativeConnector {
 
                Cluster.Builder builder = Cluster.builder();
                builder.addContactPoint(CASSANDRA_HOSTNAME);
-               //PrintClusterConfiguration( builder.getConfiguration());
+               // PrintClusterConfiguration( builder.getConfiguration());
                cluster = builder.build();
 
                Metadata metadata = cluster.getMetadata();
@@ -63,35 +66,43 @@ public class CassandraNativeConnector {
                session.execute("CREATE KEYSPACE IF NOT EXISTS ProteinKeyspace WITH replication = {'class':'SimpleStrategy', 'replication_factor':3};");
                session.execute("USE ProteinKeyspace");
 
-               session.execute("CREATE TABLE IF NOT EXISTS MainParameters "
-                               + "(Name ascii, Value ascii, PRIMARY KEY(Name));");
-               
+               session.execute("CREATE TABLE IF NOT EXISTS MainParameters " + "(Name ascii, Value ascii, PRIMARY KEY(Name));");
+
                session.execute("CREATE TABLE IF NOT EXISTS ProteinRow "
                                + "(Protein ascii, JobID ascii, Predictions map<ascii,ascii>, PRIMARY KEY(JobID));");
 
                session.execute("CREATE TABLE IF NOT EXISTS ProteinLog "
                                + "(JobID ascii, DataBegin ascii, DataEnd ascii, ip ascii, FinalStatus ascii, "
-                               + "ExecutionStatus ascii, Protein ascii, PRIMARY KEY(JobID));");
+                               + "ExecutionStatus ascii, Protein ascii, ProgramName ascii, ProgramVersion ascii, PRIMARY KEY(JobID));");
 
                session.execute("CREATE TABLE IF NOT EXISTS ProteinData "
                                + "(jobtime bigint, JobID ascii, ExecTime int, Protein ascii, PRIMARY KEY(jobtime, JobID));");
 
                session.execute("CREATE TABLE IF NOT EXISTS FailLog "
                                + "(jobtime bigint, JobID ascii, ExecTime int, ip ascii, FinalStatus ascii, PRIMARY KEY(jobtime, JobID));");
-               
+
                session.execute("CREATE TABLE IF NOT EXISTS JpredArchive "
                                + "(JobID ascii, Protein varchar, IP ascii, StartTime bigint, ExecTime int, FinalStatus ascii, ExecutionStatus ascii, alignment map<ascii,ascii>, "
-                               + "predictions map<ascii,ascii>, ArchiveLink varchar, LOG varchar, PRIMARY KEY(JobID));");
-               
+                               + "predictions map<ascii,ascii>, ArchiveLink varchar, LOG varchar, ProgramName ascii, ProgramVersion ascii, PRIMARY KEY(JobID));");
+
                session.execute("CREATE TABLE IF NOT EXISTS JobDateInfo "
                                + "(jobday bigint, Total bigint,  TotalOK bigint, TotalStopped bigint, TotalError bigint, TotalTimeOut bigint, Program varchar, Version varchar, PRIMARY KEY(jobday));");
 
+               String com = "CREATE TABLE IF NOT EXISTS Users "
+                               + "(name varchar, id bigint, email varchar, password varchar, organisation varchar, position varchar, signedtolist boolean, registrationdate bigint, PRIMARY KEY(id));";
+
+               // session.execute("ALTER TABLE ProteinLog ADD ProgramName ascii;");
+               // session.execute("ALTER TABLE ProteinLog ADD ProgramVersion ascii;");
+               // session.execute("ALTER TABLE JpredArchive ADD ProgramName ascii;");
+               // session.execute("ALTER TABLE JpredArchive ADD ProgramVersion ascii;");
+
                session.execute("CREATE INDEX IF NOT EXISTS ProteinSeq ON ProteinRow (protein);");
                session.execute("CREATE INDEX IF NOT EXISTS ProteinIp ON ProteinLog (ip);");
                session.execute("CREATE INDEX IF NOT EXISTS ON ProteinLog (ExecutionStatus);");
                session.execute("CREATE INDEX IF NOT EXISTS ON FailLog (FinalStatus);");
-       //      session.execute("CREATE INDEX IF NOT EXISTS JobDateStamp ON ProteinData (jobtime);");
-       } 
+               session.execute("CREATE INDEX IF NOT EXISTS ON Users (email);");
+               // session.execute("CREATE INDEX IF NOT EXISTS JobDateStamp ON ProteinData (jobtime);");
+       }
 
        public void Closing() {
                session.shutdown();
@@ -114,14 +125,14 @@ public class CassandraNativeConnector {
                Calendar cal = Calendar.getInstance();
                return cal.getTimeInMillis();
        }
-       
+
        private void PrintClusterConfiguration(Configuration cc) {
                Policies policies = cc.getPolicies();
                SocketOptions sopt = cc.getSocketOptions();
                ProtocolOptions propt = cc.getProtocolOptions();
                PoolingOptions plopt = cc.getPoolingOptions();
                MetricsOptions mopt = cc.getMetricsOptions();
-               QueryOptions qopt =  cc.getQueryOptions();
+               QueryOptions qopt = cc.getQueryOptions();
                System.out.println("Cluster configuration:");
                System.out.println("   Policies = " + policies.toString());
                System.out.println("   Socket Options = " + sopt.toString());