src/org/sonews/storage/impl/HSQLDB.java
changeset 45 7e24949b87b0
parent 44 5d7d1adf387f
child 48 b78e77619152
     1.1 --- a/src/org/sonews/storage/impl/HSQLDB.java	Tue Jun 07 11:55:22 2011 +0200
     1.2 +++ b/src/org/sonews/storage/impl/HSQLDB.java	Sat Sep 10 18:18:05 2011 +0200
     1.3 @@ -17,7 +17,10 @@
     1.4   */
     1.5  package org.sonews.storage.impl;
     1.6  
     1.7 +import java.sql.SQLException;
     1.8 +import org.sonews.storage.Channel;
     1.9  import org.sonews.storage.Storage;
    1.10 +import org.sonews.storage.StorageBackendException;
    1.11  
    1.12  /**
    1.13   * A specialized JDBCDatabase supporting HSQLDB.
    1.14 @@ -26,5 +29,31 @@
    1.15   */
    1.16  public class HSQLDB extends JDBCDatabase implements Storage {
    1.17  
    1.18 +	@Override
    1.19 +	protected void prepareAddGroupStatement() throws SQLException {
    1.20 +		this.pstmtAddGroup0 = conn.prepareStatement(
    1.21 +				"INSERT INTO groups (name, flags, group_id) VALUES (?, ?, IDENTITY())");
    1.22 +	}
    1.23  
    1.24 +	@Override
    1.25 +	protected void prepareCountGroupsStatement() throws SQLException {
    1.26 +		this.pstmtCountGroups = conn.prepareStatement(
    1.27 +				"SELECT Count(group_id) FROM groups WHERE "
    1.28 +				+ "BITAND(flags, " + Channel.DELETED + ") = 0");
    1.29 +	}
    1.30 +
    1.31 +	@Override
    1.32 +	protected void prepareGetPostingsCountStatement() throws SQLException {
    1.33 +		this.pstmtGetPostingsCount = conn.prepareStatement(
    1.34 +				"SELECT Count(*) FROM postings JOIN groups "
    1.35 +				+ "ON groups.name = ? GROUP BY groups.name");
    1.36 +	}
    1.37 +
    1.38 +	@Override
    1.39 +	protected void prepareGetSubscriptionsStatement() throws SQLException {
    1.40 +		this.pstmtGetSubscriptions = conn.prepareStatement(
    1.41 +				"SELECT * FROM (SELECT feedtype, host, port, peer_id FROM peers JOIN "
    1.42 +				+ "peer_subscriptions ON peers.peer_id = peer_subscriptions.peer_id) "
    1.43 +				+ "JOIN groups ON group_id = groups.group_id WHERE feedtype = ?");
    1.44 +	}
    1.45  }