'This creates a new SQLStore instance.  It requires an
established database connection be given to it, and it allows
overriding the default table names.
@param conn: This must be an established connection to a
database of the correct type for the SQLStore subclass
you\'re using.
@type conn: A python database API compatible connection
object.
@param associations_table: This is an optional parameter to
specify the name of the table used for storing
associations.  The default value is specified in
C{L{SQLStore.associations_table}}.
@type associations_table: C{str}
@param nonces_table: This is an optional parameter to specify
the name of the table used for storing nonces.  The
default value is specified in C{L{SQLStore.nonces_table}}.
@type nonces_table: C{str}'

def __init__(self, conn, associations_table=None, nonces_table=None):

    self.conn = conn
    self.cur = None
    self._statement_cache = {}
    self._table_names = {'associations': (associations_table or self.associations_table), 'nonces': (nonces_table or self.nonces_table)}
    self.max_nonce_age = ((6 * 60) * 60)
    if (hasattr(self.conn, 'IntegrityError') and hasattr(self.conn, 'OperationalError')):
        self.exceptions = self.conn
    if (not (hasattr(self.exceptions, 'IntegrityError') and hasattr(self.exceptions, 'OperationalError'))):
        raise RuntimeError("Error    using    database    connection    module    (Maybe    it    can't    be    imported?)")
