From 0da94879ef5736961287e08ba36438f3320c3ec6 Mon Sep 17 00:00:00 2001
From: akwizgran <akwizgran@users.sourceforge.net>
Date: Tue, 15 Nov 2011 09:35:07 +0000
Subject: [PATCH] Use aliases for shorter, clearer SQL.

---
 components/net/sf/briar/db/JdbcDatabase.java | 103 +++++++++----------
 1 file changed, 46 insertions(+), 57 deletions(-)

diff --git a/components/net/sf/briar/db/JdbcDatabase.java b/components/net/sf/briar/db/JdbcDatabase.java
index 7dcff3b5d0..58b905b61c 100644
--- a/components/net/sf/briar/db/JdbcDatabase.java
+++ b/components/net/sf/briar/db/JdbcDatabase.java
@@ -1077,8 +1077,7 @@ abstract class JdbcDatabase implements Database<Connection> {
 		try {
 			String sql = "SELECT transports.transportId, index, key, value"
 				+ " FROM transports LEFT OUTER JOIN transportProperties"
-				+ " ON transports.transportId"
-				+ " = transportProperties.transportId"
+				+ " ON transports.transportId = transportProperties.transportId"
 				+ " ORDER BY transports.transportId";
 			ps = txn.prepareStatement(sql);
 			rs = ps.executeQuery();
@@ -1240,17 +1239,15 @@ abstract class JdbcDatabase implements Database<Connection> {
 			ps.close();
 			if(raw != null) return raw;
 			// Do we have a sendable group message with the given ID?
-			sql = "SELECT length, raw FROM messages"
-				+ " JOIN contactSubscriptions"
-				+ " ON messages.groupId = contactSubscriptions.groupId"
-				+ " JOIN visibilities"
-				+ " ON messages.groupId = visibilities.groupId"
-				+ " AND contactSubscriptions.contactId = visibilities.contactId"
-				+ " JOIN statuses"
-				+ " ON messages.messageId = statuses.messageId"
-				+ " AND contactSubscriptions.contactId = statuses.contactId"
-				+ " WHERE messages.messageId = ?"
-				+ " AND contactSubscriptions.contactId = ?"
+			sql = "SELECT length, raw FROM messages AS m"
+				+ " JOIN contactSubscriptions AS cs"
+				+ " ON m.groupId = cs.groupId"
+				+ " JOIN visibilities AS v"
+				+ " ON m.groupId = v.groupId AND cs.contactId = v.contactId"
+				+ " JOIN statuses AS s"
+				+ " ON m.messageId = s.messageId AND cs.contactId = s.contactId"
+				+ " WHERE m.messageId = ?"
+				+ " AND cs.contactId = ?"
 				+ " AND timestamp >= start"
 				+ " AND status = ?"
 				+ " AND sendability > ZERO()";
@@ -1454,13 +1451,12 @@ abstract class JdbcDatabase implements Database<Connection> {
 		PreparedStatement ps = null;
 		ResultSet rs = null;
 		try {
-			String sql = "SELECT contactTransports.contactId, key, value"
-				+ " FROM contactTransports"
-				+ " LEFT OUTER JOIN contactTransportProperties"
-				+ " ON contactTransports.transportId"
-				+ " = contactTransportProperties.transportId"
-				+ " WHERE contactTransports.transportId = ?"
-				+ " ORDER BY contactTransports.contactId";
+			String sql = "SELECT ct.contactId, key, value"
+				+ " FROM contactTransports AS ct"
+				+ " LEFT OUTER JOIN contactTransportProperties AS ctp"
+				+ " ON ct.transportId = ctp.transportId"
+				+ " WHERE ct.transportId = ?"
+				+ " ORDER BY ct.contactId";
 			ps = txn.prepareStatement(sql);
 			ps.setBytes(1, t.getBytes());
 			rs = ps.executeQuery();
@@ -1531,16 +1527,14 @@ abstract class JdbcDatabase implements Database<Connection> {
 			if(LOG.isLoggable(Level.FINE))
 				LOG.fine(ids.size() + " sendable private messages");
 			// Do we have any sendable group messages?
-			sql = "SELECT messages.messageId FROM messages"
-				+ " JOIN contactSubscriptions"
-				+ " ON messages.groupId = contactSubscriptions.groupId"
-				+ " JOIN visibilities"
-				+ " ON messages.groupId = visibilities.groupId"
-				+ " AND contactSubscriptions.contactId = visibilities.contactId"
-				+ " JOIN statuses"
-				+ " ON messages.messageId = statuses.messageId"
-				+ " AND contactSubscriptions.contactId = statuses.contactId"
-				+ " WHERE contactSubscriptions.contactId = ?"
+			sql = "SELECT m.messageId FROM messages AS m"
+				+ " JOIN contactSubscriptions AS cs"
+				+ " ON m.groupId = cs.groupId"
+				+ " JOIN visibilities AS v"
+				+ " ON m.groupId = v.groupId AND cs.contactId = v.contactId"
+				+ " JOIN statuses AS s"
+				+ " ON m.messageId = s.messageId AND cs.contactId = s.contactId"
+				+ " WHERE cs.contactId = ?"
 				+ " AND timestamp >= start"
 				+ " AND status = ?"
 				+ " AND sendability > ZERO()"
@@ -1591,16 +1585,14 @@ abstract class JdbcDatabase implements Database<Connection> {
 						total + "/" + capacity + " bytes");
 			if(total == capacity) return ids;
 			// Do we have any sendable group messages?
-			sql = "SELECT length, messages.messageId FROM messages"
-				+ " JOIN contactSubscriptions"
-				+ " ON messages.groupId = contactSubscriptions.groupId"
-				+ " JOIN visibilities"
-				+ " ON messages.groupId = visibilities.groupId"
-				+ " AND contactSubscriptions.contactId = visibilities.contactId"
-				+ " JOIN statuses"
-				+ " ON messages.messageId = statuses.messageId"
-				+ " AND contactSubscriptions.contactId = statuses.contactId"
-				+ " WHERE contactSubscriptions.contactId = ?"
+			sql = "SELECT length, m.messageId FROM messages AS m"
+				+ " JOIN contactSubscriptions AS cs"
+				+ " ON m.groupId = cs.groupId"
+				+ " JOIN visibilities AS v"
+				+ " ON m.groupId = v.groupId AND cs.contactId = v.contactId"
+				+ " JOIN statuses AS s"
+				+ " ON m.messageId = s.messageId AND cs.contactId = s.contactId"
+				+ " WHERE cs.contactId = ?"
 				+ " AND timestamp >= start"
 				+ " AND status = ?"
 				+ " AND sendability > ZERO()"
@@ -1941,16 +1933,14 @@ abstract class JdbcDatabase implements Database<Connection> {
 			ps.close();
 			if(found) return true;
 			// Do we have any sendable group messages?
-			sql = "SELECT messages.messageId FROM messages"
-				+ " JOIN contactSubscriptions"
-				+ " ON messages.groupId = contactSubscriptions.groupId"
-				+ " JOIN visibilities"
-				+ " ON messages.groupId = visibilities.groupId"
-				+ " AND contactSubscriptions.contactId = visibilities.contactId"
-				+ " JOIN statuses"
-				+ " ON messages.messageId = statuses.messageId"
-				+ " AND contactSubscriptions.contactId = statuses.contactId"
-				+ " WHERE contactSubscriptions.contactId = ?"
+			sql = "SELECT m.messageId FROM messages AS m"
+				+ " JOIN contactSubscriptions AS cs"
+				+ " ON m.groupId = cs.groupId"
+				+ " JOIN visibilities AS v"
+				+ " ON m.groupId = v.groupId AND cs.contactId = v.contactId"
+				+ " JOIN statuses AS s"
+				+ " ON m.messageId = s.messageId AND cs.contactId = s.contactId"
+				+ " WHERE cs.contactId = ?"
 				+ " AND timestamp >= start"
 				+ " AND status = ?"
 				+ " AND sendability > ZERO()"
@@ -2464,14 +2454,13 @@ abstract class JdbcDatabase implements Database<Connection> {
 		PreparedStatement ps = null;
 		ResultSet rs = null;
 		try {
-			String sql = "SELECT NULL FROM messages"
-				+ " JOIN contactSubscriptions"
-				+ " ON messages.groupId = contactSubscriptions.groupId"
-				+ " JOIN visibilities"
-				+ " ON messages.groupId = visibilities.groupId"
-				+ " AND contactSubscriptions.contactId = visibilities.contactId"
+			String sql = "SELECT NULL FROM messages AS m"
+				+ " JOIN contactSubscriptions AS cs"
+				+ " ON m.groupId = cs.groupId"
+				+ " JOIN visibilities AS v"
+				+ " ON m.groupId = v.groupId AND cs.contactId = v.contactId"
 				+ " WHERE messageId = ?"
-				+ " AND contactSubscriptions.contactId = ?"
+				+ " AND cs.contactId = ?"
 				+ " AND timestamp >= start";
 			ps = txn.prepareStatement(sql);
 			ps.setBytes(1, m.getBytes());
-- 
GitLab