org.postgresql.pljava
Interface Session

All Known Implementing Classes:
Session

public interface Session

A Session maintains transaction coordinated in-memory data. The data added since the last commit will be lost on a transaction rollback, i.e. the Session state is synchronized with the transaction. Please note that if nested objects (such as lists and maps) are stored in the session, changes internal to those objects are not subject to the session semantics since the session is unaware of them.


Method Summary
 boolean executeAsSessionUser(java.sql.Connection conn, java.lang.String statement)
          Execute a statement as a session user rather then the effective user.
 java.lang.Object getAttribute(java.lang.String attributeName)
          Obtain an attribute from the current session.
 java.lang.String getSessionUserName()
          Return the name of the user that owns the current session.
 java.lang.String getUserName()
          Return the name of the effective user.
 void removeAttribute(java.lang.String attributeName)
          Remove an attribute previously stored in the session.
 void setAttribute(java.lang.String attributeName, java.lang.Object value)
          Set an attribute to a value in the current session.
 

Method Detail

getAttribute

public java.lang.Object getAttribute(java.lang.String attributeName)
Obtain an attribute from the current session.

Parameters:
attributeName - The name of the attribute
Returns:
The value of the attribute

getUserName

public java.lang.String getUserName()
Return the name of the effective user. If the currently executing funciton is declared with SECURITY DEFINER, then this method returns the name of the user that defined the function, otherwise, this method will return the same as getSessionUserName().


getSessionUserName

public java.lang.String getSessionUserName()
Return the name of the user that owns the current session.


executeAsSessionUser

public boolean executeAsSessionUser(java.sql.Connection conn,
                                    java.lang.String statement)
                             throws java.sql.SQLException
Execute a statement as a session user rather then the effective user. This is useful when functions declared using SECURITY DEFINER wants to give up the definer rights.

Parameters:
conn - The connection used for the execution
statement - The statement to execute
Returns:
The result of the execution.
Throws:
java.sql.SQLException - if something goes wrong when executing.
See Also:
Statement.execute(java.lang.String)

removeAttribute

public void removeAttribute(java.lang.String attributeName)
Remove an attribute previously stored in the session. If no attribute is found, nothing happens.

Parameters:
attributeName - The name of the attribute.

setAttribute

public void setAttribute(java.lang.String attributeName,
                         java.lang.Object value)
Set an attribute to a value in the current session.

Parameters:
attributeName -
value -


Copyright (c) 2003, 2004, 2005 TADA AB - Taby Sweden. Distributed under the terms shown in COPYRIGHT