Use aliases for shorter, clearer SQL.

This commit is contained in:
akwizgran
2011-11-15 09:35:07 +00:00
parent 2ad15518a5
commit 0da94879ef

View File

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