1 package com.daffodilwoods.daffodildb.server.datasystem.indexsystem; 2 3 4 import com.daffodilwoods.daffodildb.server.datasystem.interfaces.*; 5 import com.daffodilwoods.database.general.QualifiedIdentifier; 6 import com.daffodilwoods.database.resource.*; 7 8 9 public class TempIndexTable extends IndexTable{ 10 11 private _DatabaseUser user; 12 private int rowcount = 0; 13 int clustersInMemory; 14 15 public TempIndexTable(_DatabaseUser user0, QualifiedIdentifier tableName0, _Index[] bt) throws DException { 16 super(tableName0,bt); 17 clustersInMemory = (bt.length *2)+2; 18 user = user0; 19 } 20 21 public Object insert(_TableIterator tableIterator,Object [] values,int index) throws DException { 22 rowcount++; 23 checkMemory(); 24 return super.insert(tableIterator,user,values,index); 25 } 26 27 public Object insert(_TableIterator tableIterator,_DatabaseUser user,Object [] values,int index) throws DException { 28 rowcount++; 29 checkMemory(); 30 return super.insert(tableIterator,user,values,index); 31 } 32 33 public Object delete(_TableIterator iterator,int index) throws DException { 34 rowcount++; 35 checkMemory(); 36 return super.delete(iterator,user,index); 37 } 38 39 public Object delete(_TableIterator iterator,_DatabaseUser user,int index) throws DException { 40 rowcount++; 41 checkMemory(); 42 return super.delete(iterator,user,index); 43 } 44 45 public Object update(_TableIterator iterator, int[] columns, Object [] newValues, int index) throws DException { 46 rowcount++; 47 checkMemory(); 48 return super.update(iterator,user,columns,newValues,index); 49 } 50 51 public Object update(_TableIterator iterator,_DatabaseUser user, int[] columns, Object [] newValues, int index) throws DException { 52 rowcount++; 53 checkMemory(); 54 return super.update(iterator,user,columns,newValues,index); 55 } 56 57 public Object update(_TableIterator iterator,Object [] newValues,int index) throws DException { 58 rowcount++; 59 checkMemory(); 60 return super.update(iterator,user,newValues,index); 61 } 62 63 public Object update(_TableIterator iterator,_DatabaseUser user,Object [] newValues, int index) throws DException { 64 rowcount++; 65 checkMemory(); 66 return super.update(iterator,user,newValues,index); 67 } 68 69 public _DatabaseUser getDatabaseUser(){ 70 return user; 71 } 72 73 private void checkMemory() throws DException{ 74 if(rowcount > 50 || user.getSize() >= clustersInMemory){ 75 user.writeToFileWithLock(); 76 rowcount = 0; 77 } 78 } 79 80 } 81 | Popular Tags |