クラス org.objectweb.cjdbc.controller.cache.result.ResultCacheColumn

org.objectweb.cjdbc.controller.cache.result.ResultCacheColumnに対する継承グラフ

Inheritance graph
[凡例]
org.objectweb.cjdbc.controller.cache.result.ResultCacheColumnのコラボレーション図

Collaboration graph
[凡例]
すべてのメンバ一覧

説明

This is a query cache implementation with a column granularity:

作者:
Emmanuel Cecchet

Nicolas Modrzyk

バージョン:
1.0

ResultCacheColumn.java51 行で定義されています。

Public メソッド

 ResultCacheColumn (int maxEntries, int pendingTimeout)
void processAddToCache (CacheEntry qe)
boolean isUpdateNecessary (UpdateRequest request)
String getName ()

Protected メソッド

void processWriteNotify (AbstractWriteRequest request)


コンストラクタとデストラクタ

org.objectweb.cjdbc.controller.cache.result.ResultCacheColumn.ResultCacheColumn int  maxEntries,
int  pendingTimeout
 

Builds a new ResultCache with a Column granularity.

引数:
maxEntries maximum number of entries
pendingTimeout pending timeout for concurrent queries
ResultCacheColumn.java59 行で定義されています。
00060 { 00061 super(maxEntries, pendingTimeout); 00062 parsingGranularity = ParsingGranularities.COLUMN; 00063 }


メソッド

String org.objectweb.cjdbc.controller.cache.result.ResultCacheColumn.getName  )  [virtual]
 

参照:
org.objectweb.cjdbc.controller.cache.result.ResultCache.getName()

org.objectweb.cjdbc.controller.cache.result.ResultCacheを実装しています.

ResultCacheColumn.java142 行で定義されています。

00143 { 00144 return "column"; 00145 }

boolean org.objectweb.cjdbc.controller.cache.result.ResultCacheColumn.isUpdateNecessary UpdateRequest  request  )  [virtual]
 

参照:
org.objectweb.cjdbc.controller.cache.result.AbstractResultCache.isUpdateNecessary(org.objectweb.cjdbc.common.sql.UpdateRequest)

org.objectweb.cjdbc.controller.cache.result.ResultCacheを実装しています.

ResultCacheColumn.java108 行で定義されています。

00109 { 00110 return true; 00111 }

void org.objectweb.cjdbc.controller.cache.result.ResultCacheColumn.processAddToCache CacheEntry  qe  )  [virtual]
 

参照:
org.objectweb.cjdbc.controller.cache.result.ResultCache.processAddToCache(CacheEntry)

org.objectweb.cjdbc.controller.cache.result.ResultCacheを実装しています.

ResultCacheColumn.java68 行で定義されています。

参照先 org.objectweb.cjdbc.controller.cache.result.schema.CacheDatabaseColumn.addCacheEntry(), org.objectweb.cjdbc.controller.cache.result.schema.CacheDatabaseTable.addCacheEntry(), org.objectweb.cjdbc.controller.cache.result.schema.CacheDatabaseTable.getColumn(), org.objectweb.cjdbc.common.sql.schema.TableColumn.getColumnName(), org.objectweb.cjdbc.controller.cache.result.schema.CacheDatabaseTable.getColumns(), org.objectweb.cjdbc.common.sql.SelectRequest.getFrom(), org.objectweb.cjdbc.controller.cache.result.entries.CacheEntry.getRequest(), org.objectweb.cjdbc.common.sql.SelectRequest.getSelect(), org.objectweb.cjdbc.controller.cache.result.schema.CacheDatabaseSchema.getTable(), org.objectweb.cjdbc.common.sql.schema.TableColumn.getTableName(), org.objectweb.cjdbc.common.sql.SelectRequest.getWhere(), と org.objectweb.cjdbc.common.log.Trace.warn().

00069 { 00070 SelectRequest request = qe.getRequest(); 00071 ArrayList selectedColumns = request.getSelect(); 00072 // Update the tables columns dependencies 00073 if (selectedColumns == null || selectedColumns.isEmpty()) 00074 { 00075 logger 00076 .warn("No parsing of select clause found - Fallback to table granularity"); 00077 for (Iterator i = request.getFrom().iterator(); i.hasNext();) 00078 { 00079 CacheDatabaseTable table = cdbs.getTable((String) i.next()); 00080 table.addCacheEntry(qe); 00081 // Add all columns, entries will be added below. 00082 ArrayList columns = table.getColumns(); 00083 for (int j = 0; j < columns.size(); j++) 00084 { 00085 ((CacheDatabaseColumn) columns.get(j)).addCacheEntry(qe); 00086 } 00087 return; 00088 } 00089 } 00090 for (Iterator i = selectedColumns.iterator(); i.hasNext();) 00091 { 00092 TableColumn tc = (TableColumn) i.next(); 00093 cdbs.getTable(tc.getTableName()).getColumn(tc.getColumnName()) 00094 .addCacheEntry(qe); 00095 } 00096 if (request.getWhere() != null) 00097 for (Iterator i = request.getWhere().iterator(); i.hasNext();) 00098 { 00099 TableColumn tc = (TableColumn) i.next(); 00100 cdbs.getTable(tc.getTableName()).getColumn(tc.getColumnName()) 00101 .addCacheEntry(qe); 00102 } 00103 }

void org.objectweb.cjdbc.controller.cache.result.ResultCacheColumn.processWriteNotify AbstractWriteRequest  request  )  [protected, virtual]
 

参照:
org.objectweb.cjdbc.controller.cache.result.ResultCache.processWriteNotify(org.objectweb.cjdbc.common.sql.AbstractWriteRequest)

org.objectweb.cjdbc.controller.cache.result.ResultCacheを実装しています.

ResultCacheColumn.java116 行で定義されています。

参照先 org.objectweb.cjdbc.controller.cache.result.schema.CacheDatabaseTable.getColumn(), org.objectweb.cjdbc.common.sql.schema.TableColumn.getColumnName(), org.objectweb.cjdbc.common.sql.AbstractWriteRequest.getColumns(), org.objectweb.cjdbc.common.sql.AbstractRequest.getSQL(), org.objectweb.cjdbc.controller.cache.result.schema.CacheDatabaseSchema.getTable(), org.objectweb.cjdbc.common.sql.schema.TableColumn.getTableName(), org.objectweb.cjdbc.common.sql.AbstractWriteRequest.getTableName(), org.objectweb.cjdbc.controller.cache.result.schema.CacheDatabaseColumn.invalidateAll(), org.objectweb.cjdbc.controller.cache.result.schema.CacheDatabaseTable.invalidateAll(), org.objectweb.cjdbc.common.sql.AbstractWriteRequest.isAlter(), と org.objectweb.cjdbc.common.log.Trace.warn().

00117 { 00118 // Sanity check 00119 if (request.getColumns() == null) 00120 { 00121 logger.warn("No column parsing found - Fallback to table granularity (" 00122 + request.getSQL() + ")"); 00123 cdbs.getTable(request.getTableName()).invalidateAll(); 00124 return; 00125 } 00126 if (request.isAlter()) 00127 { 00128 cdbs.getTable(request.getTableName()).invalidateAll(); 00129 return; 00130 } 00131 for (Iterator i = request.getColumns().iterator(); i.hasNext();) 00132 { 00133 TableColumn tc = (TableColumn) i.next(); 00134 cdbs.getTable(tc.getTableName()).getColumn(tc.getColumnName()) 00135 .invalidateAll(); 00136 } 00137 }


このクラスの説明は次のファイルから生成されました:
CJDBCversion1.0.4に対してTue Oct 12 15:16:37 2004に生成されました。 doxygen 1.3.8