1 package com.daffodilwoods.daffodildb.server.datasystem.persistentsystem. 2 versioninfo; 3 4 import com.daffodilwoods.database.resource.DException; 5 import com.daffodilwoods.daffodildb.server.datasystem.persistentsystem.Cluster; 6 import com.daffodilwoods.daffodildb.server.datasystem.persistentsystem. 7 TableManager; 8 import com.daffodilwoods.daffodildb.server.datasystem.interfaces._DatabaseUser; 9 import com.daffodilwoods.daffodildb.utils.byteconverter.CCzufDpowfsufs; 10 import com.daffodilwoods.daffodildb.server.datasystem.persistentsystem. 11 PersistentDatabase; 12 import com.daffodilwoods.daffodildb.server.datasystem.persistentsystem. 13 DatabaseProperties; 14 import com.daffodilwoods.daffodildb.server.datasystem.persistentsystem. 15 _RecordCluster; 16 import com.daffodilwoods.daffodildb.server.datasystem.persistentsystem. 17 TableProperties; 18 import com.daffodilwoods.daffodildb.utils.comparator.SuperComparator; 19 import com.daffodilwoods.daffodildb.server.datasystem.interfaces._Index; 20 import com.daffodilwoods.daffodildb.server.datasystem.indexsystem. 21 _BTreeCharacteristics; 22 import com.daffodilwoods.daffodildb.server.datasystem.btree._NodeManager; 23 import com.daffodilwoods.daffodildb.server.datasystem.indexsystem. 24 IndexColumnInformation; 25 import com.daffodilwoods.daffodildb.server.datasystem.interfaces. 26 _ClusterProvider; 27 import com.daffodilwoods.daffodildb.utils.byteconverter.CbCUsffWbmvfIboemfs; 28 import com.daffodilwoods.database.general.QualifiedIdentifier; 29 import com.daffodilwoods.daffodildb.server.datasystem.interfaces._TableIterator; 30 import com.daffodilwoods.daffodildb.server.datasystem.interfaces._TableCharacteristics; 31 import com.daffodilwoods.daffodildb.server.datasystem.indexsystem._IndexInformation; 32 import com.daffodilwoods.daffodildb.server.datasystem.persistentsystem.PowerFileFactory; 33 import com.daffodilwoods.daffodildb.server.datasystem.persistentsystem.DRandomAccessFileUpto3_2; 34 import com.daffodilwoods.daffodildb.server.datasystem.persistentsystem.DRandomAccessFile; 35 import java.io.RandomAccessFile ; 36 import com.daffodilwoods.daffodildb.server.datasystem.persistentsystem.FileGenerator; 37 import com.daffodilwoods.daffodildb.server.datasystem.persistentsystem.EncryptDRandomAccessFile; 38 import com.daffodilwoods.daffodildb.server.datasystem.encryptdecrypt.EDBlockCipher; 39 40 public abstract class VersionHandler { 41 public short CLUSTER_STARTPOINTER = 30; 42 public int ADDRESSLENGTH = 8; public int NEWADDRESSLENGTH = 4; 44 public int LENGTH = 2; public byte DELETE = 1; 46 public byte ACTIVE = 0; 47 public byte UPDATE = 2; 48 public byte RETRIEVE = 5; 49 public byte COMPLETE = 3; 50 public byte PARTIALLY = 4; 51 public byte NULL = 1; 52 public byte NOTNULL = 0; 53 public byte FULL = -1; 54 public int BLOBBYTESFORUPDATE = 1000; 55 public byte[] POWERFILEACTIVE = new byte[]{0}; 56 public byte[] POWERFILEDELETE = new byte[]{1}; 57 58 public int UPDATEBYTES = 40; 59 public byte[] UPDATABLEMEMORY = CCzufDpowfsufs.getBytes(new Long (50)); 60 public String INITIALFILESIZE = "5 MB"; 61 public int INCREMENTFACTOR = 100; 62 public String UNICODESUPPORT = ""; 63 public String MULTIFILESUPPORT = ""; 64 public long DEFAULTTIMEINTERVALFORBACKUP = 172800000; 65 public long TIMEFORWAIT = 50000; 66 public long SYSTEMDATABASELENGTH = 3 * 1024 * 1024; 67 public int PREVIOUSCLUSTERADDRESS = 6; 68 public String SYSTEMDATABASE = "systemdatabase"; 69 public String TEMPDATABASE = "temp"; 70 71 public String INCONSISTENTONLINEBACKUP = "inconsistentOnlineBackup"; 72 public int DATABASEINFOSTORED = 1200; 73 public String DEFAULTCLUSTERSIZE = "16384"; 74 public int TABLEINFO_CATALOGNAME = 0; 75 public int TABLEINFO_SCHEMANAME = 1; 76 public int TABLEINFO_TABLENAME = 2; 77 public int TABLEINFO_STARTCLUSTERADDRESS = 3; 78 public int TABLEINFO_LASTCLUSTERADDRESS = 4; 79 80 public int COLUMNINFO_CATALOGNAME = 0; 81 public int COLUMNINFO_SCHEMANAME = 1; 82 public int COLUMNINFO_TABLENAME = 2; 83 public int COLUMNINFO_COLUMNNAME = 3; 84 public int COLUMNINFO_COLUMNTYPE = 4; 85 public int COLUMNINFO_COLUMNSIZE = 5; 86 public int COLUMNINFO_COLUMNINDEX = 6; 87 public int POWERFAILUREBITPOSITION = 1600; 88 public String DATABASEVERSION = "01.01.02.10"; 89 public int DATABASECODE = 1000; 90 public int VERSIONCODE = 1100; 91 92 public String DEFAULT_ALGO = "aes"; 93 public String NONE = "<none>"; 94 public String DEFAULT_KEY = "daffodil"; 95 96 public int TABLEKEY_LENGTH = 6; 97 public int CHILD_LENGTH = 4; 98 99 public int PARENTNODEADDRESS = 30; 100 public int LEVEL_NODE = 34; 101 public int IS_LEAFNODE = 36; 102 public short BTREECLUSTER_STARTPOINTER = 37; 103 public byte TRUE = 1; 104 public byte FALSE = 0; 105 106 public int BLOBROWHEADER = 8; 107 public int LOBACTIVEBYTE = 1; 108 public int LOBFULLBYTE = 1; 109 public int LOBRECORDLENGTH = 4; 110 public int LOBSPAREBYTE = 1; 111 public int ACTIVE_DELETE = 1; 112 public int FULL_PARTIAL = 1; 113 114 public long ACTIVE_BYTE_POSITION_IN_POWERFILE = 0; 115 public long LENGTH_POSITION_IN_POWERFILE = 1; 116 117 public int FIXEDRECORDCLUSTER = 0; 118 public int PARTIALFIXEDRECORDCLUSTER = 1; 119 public int VARIABLERECORDCLUSTER = 2; 120 public int PARTIALVARIABLERECORDCLUSTER = 3; 121 122 public VersionHandler() { 123 } 124 125 public abstract void writeInfoForSystemTables(Cluster startCluster, 126 PersistentDatabase 127 persistentDatabase) throws 128 DException; 129 130 public abstract void initializeSystemTables(TableManager tableManager, 131 _DatabaseUser user, 132 byte[] bytes, String databaseName) throws 133 DException; 134 135 public abstract DatabaseProperties getDatabaseProperties() throws DException; 136 137 public abstract _RecordCluster getRecordCluster(TableProperties 138 tableProperties, 139 DatabaseProperties 140 databaseProperties) throws 141 DException; 142 143 public abstract void setClusterSize(int clusterSize0); 144 public abstract int getClusterSize(); 145 146 public abstract boolean isFullTextSupported(); 147 148 public abstract boolean isBackUpSupported(); 149 public abstract _Index getIndex(SuperComparator comparator0,_BTreeCharacteristics btreeCharacteristics0,IndexColumnInformation iinf1,_ClusterProvider clusterProvider0, int address,CbCUsffWbmvfIboemfs handler0,boolean isDefault) throws DException; 150 public abstract _IndexInformation getIndexInformation(QualifiedIdentifier tableName,String indexName,QualifiedIdentifier indexTableName,_TableIterator iterator,_TableCharacteristics tc) throws DException; 151 public abstract double getDbVersion(); 152 public abstract boolean isDefault(String [] indexColumnNames); 153 public abstract Object [][] getDefaultIndexStructure() ; 154 155 public PowerFileFactoryUpto3_2 getPowerFileFactory(String databaseURL){ 156 if(getDbVersion() > 3.2 ) 157 return new PowerFileFactory(databaseURL); 158 else 159 return new PowerFileFactoryUpto3_2(databaseURL); 160 } 161 162 public DRandomAccessFileUpto3_2 getDRandomAccessFile(RandomAccessFile raf0,long fileSize0,String databaseURL0,int incrementFactor0,boolean multiFileSupport1,FileGenerator fileGenerator0 ,int clusterSize0) throws DException{ 163 if(getDbVersion() > 3.2 ) 164 return new DRandomAccessFile(raf0, fileSize0, databaseURL0, incrementFactor0, multiFileSupport1, fileGenerator0 ,clusterSize0); 165 else 166 return new DRandomAccessFileUpto3_2(raf0, fileSize0, databaseURL0, incrementFactor0, multiFileSupport1, fileGenerator0 ,clusterSize0); 167 } 168 169 public String getTempFileName(String fileName){ 170 if(getDbVersion() > 3.2 ) 171 return "_tempFile.swp"; 172 else 173 return fileName+"_tempFile.swp"; 174 } 175 176 public DRandomAccessFileUpto3_2 getEncryptDRandomAccessFile(RandomAccessFile raf0,long fileSize0,String databaseURL0,int incrementFactor0,boolean multiFileSupport1,FileGenerator fileGenerator0,EDBlockCipher bolckCipher0,int clusterSize ) throws DException{ 177 if(getDbVersion() > 3.2 ) 178 return new EncryptDRandomAccessFile(raf0, fileSize0, databaseURL0, incrementFactor0, multiFileSupport1, fileGenerator0 ,bolckCipher0,clusterSize); 179 else 180 return new EncryptDRandomAccessFileUpto3_2(raf0, fileSize0, databaseURL0, incrementFactor0, multiFileSupport1, fileGenerator0 ,bolckCipher0,clusterSize); 181 } 182 183 public abstract String getVersionCode(); 184 public abstract String getDefaultClusterSize(); 185 186 } 187 | Popular Tags |