1 package com.daffodilwoods.daffodildb.server.sessionsystem; 2 3 4 5 6 import com.daffodilwoods.daffodildb.server.sql99.utils.parser.SessionConditionParser; 7 8 9 import com.daffodilwoods.database.general.*; 10 import com.daffodilwoods.database.sqlinitiator.*; 11 import com.daffodilwoods.database.resource.*; 12 import com.daffodilwoods.daffodildb.server.sql99.expression.booleanvalueexpression.*; 13 import com.daffodilwoods.daffodildb.utils.FieldUtility; 14 15 16 23 public class SystemFieldsCharacteristics { 24 25 28 29 private static int[] systemFields = { 0,1,2,3,4 } ; 30 31 34 private static int systemColumnCount = 5; 35 36 39 40 private static Object [] defaultValue = new Object []{ FieldUtility.getField(new Long (Long.MAX_VALUE)), 41 FieldUtility.getField(new Long (Long.MAX_VALUE)),FieldUtility.getField(new Long (Long.MAX_VALUE)), 42 FieldUtility.getField(new Long (Long.MAX_VALUE)),FieldUtility.getField(new Long (Long.MAX_VALUE)) }; 43 44 private static booleanvalueexpression invalidRecordCondition, 45 recordsValidityCondition,repeatableFilterCondition; 46 47 public static final int[] RTS = {SystemFields.rowId ,SystemFields.transactionId , SystemFields.sessionId }; 48 49 public static final int[] TS = {SystemFields.transactionId ,SystemFields.sessionId }; 50 51 public static final int[] IS ={SystemFields.invalidSessionId }; 52 53 public static final int[] ISIT = {SystemFields.invalidSessionId , SystemFields.invalidTransactionId }; 54 55 public static final int[] SIS = {SystemFields.sessionId ,SystemFields.invalidSessionId }; 56 57 public static final int[] SIST = {SystemFields.sessionId ,SystemFields.invalidSessionId ,SystemFields.transactionId }; 58 59 public static final int[] TISIT = {SystemFields.transactionId ,SystemFields.invalidSessionId ,SystemFields.invalidTransactionId }; 60 61 62 63 67 public SystemFieldsCharacteristics()throws DException{ 68 setInvlidRecordCondition(); 69 setRecordValidityCondition(); 70 setRepeatableFilterCondition(); 71 } 72 73 74 75 90 91 92 private void setInvlidRecordCondition()throws DException{ 93 String invalidRecordCond = "__InvalidTransactionId = " + SystemFields.maxIntegerValue +" and __invalidSessionId = ? "; 94 invalidRecordCondition = (booleanvalueexpression)SessionConditionParser.parseCondition( invalidRecordCond ); 95 } 96 private void setRecordValidityCondition()throws DException{ 97 String recordsValidityCond = "__invalidSessionId = " + SystemFields.maxIntegerValue +" and __InvalidTransactionId = " + SystemFields.maxIntegerValue; 98 recordsValidityCondition = (booleanvalueexpression)SessionConditionParser.parseCondition( recordsValidityCond ); 99 } 100 101 147 private void setRepeatableFilterCondition() throws DException{ 148 String repetableFilterCond = "( __rowId = ? and __transactionId <= ? )"; 149 repeatableFilterCondition = SessionConditionParser.parseCondition( repetableFilterCond ); 150 } 151 156 179 183 184 188 public static int getSystemColumnCount() { 189 return systemColumnCount; 190 } 191 192 193 197 public static int[] getSystemFields() { 198 return systemFields; 199 } 200 201 public static Object [] defaultValues() { 202 return defaultValue; 203 } 204 212 213 public static booleanvalueexpression getInvalidRecordCondition() throws DException { 214 return invalidRecordCondition; 215 } 216 public static booleanvalueexpression getRecordsValidityCondition() throws DException { 217 return recordsValidityCondition; 218 } 219 public static int[] getUserColumnIndexes( com.daffodilwoods.daffodildb.server.datasystem.utility._Record record )throws DException{ 220 return getUserColumnIndexes( record.getColumnCount()); 221 } 222 223 224 public static int[] getUserColumnIndexes( int columnsCount ) throws DException { 225 int[] userColumnIndex = new int[ columnsCount - systemColumnCount]; 226 for(int i=0; i< userColumnIndex.length; i++) 227 userColumnIndex[i] = i + systemColumnCount ; 228 return userColumnIndex; 229 } 230 231 232 public static booleanvalueexpression getRepeatableFilterCondition()throws DException{ 233 return repeatableFilterCondition; 234 } 235 236 237 242 250 251 public static int[] getUserColumnIndexesForDatedTable( int columnsCount ) throws DException { 252 int[] userColumnIndex = new int[ columnsCount - systemColumnCount - 2 ]; 253 for(int i=0; i< userColumnIndex.length; i++) 254 userColumnIndex[i] = i + systemColumnCount +2; 255 return userColumnIndex; 256 } 257 258 259 260 261 262 } 263 | Popular Tags |