📄 conglomeratecontroller.java
字号:
* and validColumns work together to * describe the row to be returned by the fetch - * see RowUtil for description of how these three * parameters work together to describe a fetched * "row". * @param qualifier An array of qualifiers which, * applied to each key, restrict the rows returned * by the scan. Rows for which any one of the * qualifiers returns false are not returned by * the scan. If null, all rows are returned. * Qualifiers can only reference columns which are * included in the scanColumnList. The column id * that a qualifier returns in the column id the * table, not the column id in the partial row being * returned. See openScan() for description of how * qualifiers are applied. * * @return Returns true if fetch was successful, false if the record * pointed at no longer represents a valid record. * * @exception StandardException Standard exception policy. * * @see RowUtil **/ /* boolean fetch( RowLocation loc, DataValueDescriptor[] destRow, FormatableBitSet validColumns, Qualifier[][] qualifier) throws StandardException; */ /** Insert a row into the conglomerate. @param row The row to insert into the conglomerate. The stored representations of the row's columns are copied into a new row somewhere in the conglomerate. @return Returns 0 if insert succeeded. Returns ConglomerateController.ROWISDUPLICATE if conglomerate supports uniqueness checks and has been created to disallow duplicates, and the row inserted had key columns which were duplicate of a row already in the table. Other insert failures will raise StandardException's. @exception StandardException Standard exception policy. @see RowUtil **/ int insert(DataValueDescriptor[] row) throws StandardException; /** * insert row and fetch it's row location in one operation. * <p> * Insert a row into the conglomerate, and store its location in * the provided destination row location. The row location must be of the * correct type for this conglomerate (a new row location of the correct * type can be obtained from newRowLocationTemplate()). * * @param row The row to insert into the conglomerate. The * stored representations of the row's columns are * copied into a new row somewhere in the conglomerate. * * @param destRowLocation The rowlocation to read the inserted row location * into. * * @exception StandardException Standard exception policy. * * @see RowUtil **/ void insertAndFetchLocation( DataValueDescriptor[] row, RowLocation destRowLocation) throws StandardException; /** Return whether this is a keyed conglomerate. **/ boolean isKeyed(); public static final int LOCK_READ = (0x00000000); public static final int LOCK_UPD = (0x00000001); public static final int LOCK_INS = (0x00000002); public static final int LOCK_INS_PREVKEY = (0x00000004); public static final int LOCK_UPDATE_LOCKS = (0x00000008); /** * Lock the given row location. * <p> * Should only be called by access. * <p> * This call can be made on a ConglomerateController that was opened * for locking only. * <p> * RESOLVE (mikem) - move this call to ConglomerateManager so it is * obvious that non-access clients should not call this. * * @return true if lock was granted, only can be false if wait was false. * * @param loc The "RowLocation" of the exact row to lock. * @param lock_oper For what operation are we requesting the lock, this * should be one of the following 4 options: * LOCK_READ [read lock], * (LOCK_INS | LOCK_UPD) [ lock for insert], * (LOCK_INSERT_PREVKEY | LOCK_UPD) [lock for * previous key to insert], * (LOCK_UPD) [lock for delete or replace] * (LOCK_UPD | LOCK_UPDATE_LOCKS) [lock scan for * update, will upgrade lock later if actual update * is take place] * @param wait Should the lock call wait to be granted? * @param lock_duration If set to TransactionManager.LOCK_INSTANT_DURATION, * then lock will be released immediately after being * granted. * * @exception StandardException Standard exception policy. **/ boolean lockRow( RowLocation loc, int lock_oper, boolean wait, int lock_duration) throws StandardException; /** * Lock the given record id/page num pair. * <p> * Should only be called by access, to lock "special" locks formed from * the Recordhandle.* reserved constants for page specific locks. * <p> * This call can be made on a ConglomerateController that was opened * for locking only. * <p> * RESOLVE (mikem) - move this call to ConglomerateManager so it is * obvious that non-access clients should not call this. * * @return true if lock was granted, only can be false if wait was false. * * @param page_num page number of record to lock. * @param record_id record id of record to lock. * @param lock_oper For what operation are we requesting the lock, this * should be one of the following 4 options: * LOCK_READ [read lock], * (LOCK_INS | LOCK_UPD) [ lock for insert], * (LOCK_INSERT_PREVKEY | LOCK_UPD) [lock for * previous key to insert], * (LOCK_UPD) [lock for delete or replace] * (LOCK_UPD | LOCK_UPDATE_LOCKS) [lock scan for * update, will upgrade lock later if actual update * is take place] * @param wait Should the lock call wait to be granted? * @param lock_duration If set to TransactionManager.LOCK_INSTANT_DURATION, * then lock will be released immediately after being * granted. * * @exception StandardException Standard exception policy. **/ boolean lockRow( long page_num, int record_id, int lock_oper, boolean wait, int lock_duration) throws StandardException; /** * UnLock the given row location. * <p> * Should only be called by access. * <p> * This call can be made on a ConglomerateController that was opened * for locking only. * <p> * RESOLVE (mikem) - move this call to ConglomerateManager so it is * obvious that non-access clients should not call this. * * @param loc The "RowLocation" which describes the row to unlock. * @param forUpdate Row was locked for read or update. * @param row_qualified Row was qualified and returned to the user. * * @exception StandardException Standard exception policy. **/ public void unlockRowAfterRead( RowLocation loc, boolean forUpdate, boolean row_qualified) throws StandardException; /** Return a row location object of the correct type to be used in calls to insertAndFetchLocation. @exception StandardException Standard exception policy. **/ RowLocation newRowLocationTemplate() throws StandardException; /** Replace the (partial) row at the given location. @return true if update was successful, returns false if the update fails because the record pointed at no longer represents a valid record. @exception StandardException Standard exception policy. @see RowUtil **/ boolean replace( RowLocation loc, DataValueDescriptor[] row, FormatableBitSet validColumns) throws StandardException; /** Get information about space used by the conglomerate. **/ SpaceInfo getSpaceInfo() throws StandardException; /** * Dump debugging output to error log. * <p> * Dump information about the conglomerate to error log. * This is only for debugging purposes, does nothing in a delivered * system, currently. * * @exception StandardException Standard exception policy. **/ void debugConglomerate() throws StandardException;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -