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 }