1 package com.daffodilwoods.daffodildb.server.sessionsystem; 2 3 import java.util.*; 4 5 6 import com.daffodilwoods.daffodildb.client.*; 7 import com.daffodilwoods.daffodildb.server.datasystem.interfaces.*; 8 import com.daffodilwoods.daffodildb.server.datasystem.utility._Record; 9 import com.daffodilwoods.daffodildb.server.sessionsystem.sessioncondition.*; 10 import com.daffodilwoods.daffodildb.server.sql99.common.*; 11 import com.daffodilwoods.daffodildb.server.sql99.dql.execution.*; 12 import com.daffodilwoods.daffodildb.server.sql99.dql.iterator.*; 13 import com.daffodilwoods.daffodildb.server.sql99.utils.*; 14 import com.daffodilwoods.daffodildb.utils.comparator.*; 15 import com.daffodilwoods.daffodildb.utils.field.*; 16 import com.daffodilwoods.database.resource.*; 17 import com.daffodilwoods.database.sqlinitiator.*; 18 import com.daffodilwoods.database.general.SystemFields; 19 import com.daffodilwoods.daffodildb.utils.FieldUtility; 20 import com.daffodilwoods.daffodildb.server.datasystem.persistentsystem.DatabaseConstants; 21 import com.daffodilwoods.daffodildb.utils.byteconverter.CCzufDpowfsufs; 22 import com.daffodilwoods.daffodildb.utils.BufferRange; 23 public class SessionIteratorWithoutCondition extends BaseExceptionSingleIterator 24 implements _Iterator, _TableOperations, _IndexIteratorInfo{ 25 _Iterator iterator; 26 int[] columnIndexesUntillRowID; 27 SuperComparator objectComparator; 28 29 30 public SessionIteratorWithoutCondition( _Iterator iterator0) { 31 iterator = iterator0; 32 33 Object [] allColumns = null; 34 try { 35 allColumns = iterator.getUniqueColumnReference(); 36 int[] cloumnIndexes = (int[])allColumns[0]; 37 String [] columnNames = (String [])allColumns[1]; 38 ArrayList list = new ArrayList(); 39 40 for (int i = 0; i < columnNames.length; i++) { 41 list.add(new Integer (cloumnIndexes[i])); 42 if((columnNames[i].equalsIgnoreCase(SystemFields.systemFields[SystemFields.rowId]))){ 43 break; 44 } 45 } 46 47 columnIndexesUntillRowID = new int[list.size()]; 48 for (int j = 0; j < list.size(); j++) { 49 columnIndexesUntillRowID[j] = ((Integer )list.get(j)).intValue(); 50 } 51 objectComparator = ((_IndexIteratorInfo)iterator).getComparator(); 52 } 53 catch (Exception ex) { 54 } 55 } 56 57 public void setKeyCount(Object [][] tableAndKeyCount) throws DException { 58 59 throw new java.lang.UnsupportedOperationException ("Method setKeyCount() not yet implemented."); 60 } 61 62 63 public _OrderCount getOrderCounts() throws com.daffodilwoods.database.resource.DException { 64 return iterator.getOrderCounts(); 65 } 66 67 public TableDetails[] getTableDetails() throws com.daffodilwoods.database.resource.DException { 68 return iterator.getTableDetails(); 69 } 70 71 public _Iterator getBaseIterator(ColumnDetails column) throws com.daffodilwoods.database.resource.DException { 72 return iterator.getBaseIterator(column); 73 } 74 75 public void setConditionVariableValue(_Reference[] parm1, Object [] parm2, int parm3) throws com.daffodilwoods.database.resource.DException { 76 iterator.setConditionVariableValue(parm1,parm2,parm3); 77 } 78 79 public Object getColumnValues() throws com.daffodilwoods.database.resource.DException { 80 return iterator.getColumnValues(); 81 } 82 public _KeyColumnInformation[] getKeyColumnInformations() throws com.daffodilwoods.database.resource.DException { 83 _KeyColumnInformation[] keyColumnInformation = iterator.getKeyColumnInformations(); 84 if(columnIndexesUntillRowID == null) 85 return keyColumnInformation; 86 _KeyColumnInformation[] keyColumnInformationToReturn = new _KeyColumnInformation[columnIndexesUntillRowID.length]; 87 for (int i = 0; i < columnIndexesUntillRowID.length; i++) { 88 keyColumnInformationToReturn[i] = keyColumnInformation[i]; 89 } 90 91 return keyColumnInformationToReturn; 92 } 93 94 public Object [] getUniqueColumnReference() throws com.daffodilwoods.database.resource.DException { 95 return iterator.getUniqueColumnReference(); 96 } 97 98 99 public boolean seek(Object parm1) throws DException { 100 if(!(parm1 instanceof Object [] )) 101 parm1 = new Object []{parm1}; 102 return iterator.seek(parm1); 103 } 104 105 public _Order getDefaultOrder() throws com.daffodilwoods.database.resource.DException { 106 return iterator.getDefaultOrder(); 107 } 108 109 public Object getColumnValues(_Reference[] parm1) throws com.daffodilwoods.database.resource.DException { 110 return iterator.getColumnValues(parm1); 111 } 112 public Object getColumnValues(_Reference parm1) throws com.daffodilwoods.database.resource.DException { 113 return iterator.getColumnValues(parm1); 114 } 115 public boolean seekFromTop(_IndexPredicate[] parm1) throws com.daffodilwoods.database.resource.DException { 116 return iterator.seekFromTop(parm1); 117 } 118 public boolean seekFromTopRelative(Object parm1) throws com.daffodilwoods.database.resource.DException { 119 return iterator.seekFromTopRelative(parm1); 120 } 121 public boolean seekFromBottom(_IndexPredicate[] parm1) throws com.daffodilwoods.database.resource.DException { 122 return iterator.seekFromBottom(parm1); 123 } 124 public boolean seekFromBottomRelative(Object parm1) throws com.daffodilwoods.database.resource.DException { 125 return iterator.seekFromBottomRelative(parm1); 126 } 127 public boolean first() throws com.daffodilwoods.database.resource.DException { 128 return iterator.first(); 129 } 130 public boolean last() throws com.daffodilwoods.database.resource.DException { 131 return iterator.last(); 132 } 133 public boolean next() throws com.daffodilwoods.database.resource.DException { 134 return iterator.next(); 135 } 136 public boolean previous() throws com.daffodilwoods.database.resource.DException { 137 return iterator.previous(); 138 } 139 public Object getKey() throws com.daffodilwoods.database.resource.DException { 140 return iterator.getColumnValues(columnIndexesUntillRowID); 141 } 142 143 public void move(Object parm1) throws com.daffodilwoods.database.resource.DException { 144 if( !seek(parm1)){ 145 throw new DException("DSE5518",null); 146 } 147 } 148 149 public Object getColumnValues(int[] parm1) throws com.daffodilwoods.database.resource.DException { 150 return iterator.getColumnValues(parm1); 151 } 152 153 public _Record getRecord() throws com.daffodilwoods.database.resource.DException { 154 return iterator.getRecord(); 155 } 156 public void insert(Object parm1) throws com.daffodilwoods.database.resource.DException { 157 ((_TableOperations)iterator).insert(parm1); 158 } 159 public void update(Object parm1) throws com.daffodilwoods.database.resource.DException { 160 ((_TableOperations)iterator).update(parm1); 161 } 162 public void update(int[] parm1, Object [] parm2) throws com.daffodilwoods.database.resource.DException { 163 ((_TableOperations)iterator).update(parm1,parm2); 164 } 165 public void delete() throws com.daffodilwoods.database.resource.DException { 166 ((_TableOperations)iterator).delete(); 167 } 168 169 public int getBtreeIndex() throws com.daffodilwoods.database.resource.DException { 170 return ((_IndexIteratorInfo)iterator).getBtreeIndex(); 171 } 172 public boolean locateKey(Object parm1, boolean parm2) throws com.daffodilwoods.database.resource.DException { 173 return ((_IndexIteratorInfo)iterator).locateKey(parm1,parm2); 174 } 175 176 177 public void ensureRecordInMemory() throws com.daffodilwoods.database.resource.DException { 178 ((_IndexIteratorInfo)iterator).ensureRecordInMemory(); 179 180 } 181 public void moveOnActualKey(Object parm1) throws com.daffodilwoods.database.resource.DException { 182 iterator.seek(parm1); 183 } 184 public Object getActualKey() throws com.daffodilwoods.database.resource.DException { 185 return iterator.getKey(); 186 } 187 public String toString(){ 188 return "RowIdSessionIterator["+ iterator + "]"; 189 } 190 public Object getColumnValues(int column) throws DException { 191 192 throw new java.lang.UnsupportedOperationException ("Method getColumnValues() not yet implemented."); 193 } 194 195 public _ExecutionPlan getExecutionPlan() throws DException{ 196 _ExecutionPlan plan = iterator.getExecutionPlan(); 197 _ExecutionPlan cplans[] = plan == null ? null : new _ExecutionPlan[]{plan}; 198 return new ExecutionPlan("RowIdSessionIterator",cplans, null ,null,null); 199 } 200 public boolean seekKeyAddress(Object parm1) throws com.daffodilwoods.database.resource.DException { 201 return ((_IndexIteratorInfo)iterator).seekKeyAddress(parm1); 202 } 203 public Object getPhysicalAddress() throws com.daffodilwoods.database.resource.DException { 204 205 throw new java.lang.UnsupportedOperationException ("Method getPhysicalAddress() not yet implemented."); 206 } 207 208 public ExecutionPlanForBrowser getExecutionPlanForBrowser() throws DException { 209 return iterator.getExecutionPlanForBrowser(); 210 } 211 public SuperComparator getComparator() { 212 return ((_IndexIteratorInfo)iterator).getComparator(); 213 } 214 public SuperComparator getObjectComparator() throws com.daffodilwoods.database.resource.DException { 215 return objectComparator; 216 } 217 public _Iterator getBaseIteratorHasRecord(ColumnDetails hasRecordColumn) throws DException { 218 return iterator.getBaseIteratorHasRecord(hasRecordColumn); 219 } 220 public FieldBase field(_Reference reference) throws com.daffodilwoods.database.resource.DException { 221 return iterator.field(reference); 222 } 223 public FieldBase[] fields(_Reference[] references) throws com.daffodilwoods.database.resource.DException { 224 return iterator.fields(references); 225 } 226 public FieldBase[] fields(int[] columns) throws com.daffodilwoods.database.resource.DException { 227 return iterator.fields(columns); 228 } 229 public void releaseResource() throws DException { 230 iterator.releaseResource(); 231 } 232 233 public byte[] getByteKey() throws DException{ 234 FieldBase[] columnValues = FieldUtility.changeIntoFildBase(getKey()); 235 int numberOfColumns = columnValues.length; 236 int totalLengthOfKey = numberOfColumns * 2 * SessionIterator.LENGTH + SessionIterator.LENGTH; 237 for (int i = 0; i < numberOfColumns; i++) { 238 totalLengthOfKey += columnValues[i].getLength(); 239 } 240 byte[] byteKey = new byte[totalLengthOfKey]; 241 int pointer = 0; 242 System.arraycopy(CCzufDpowfsufs.getBytes((short)numberOfColumns),0,byteKey,pointer,SessionIterator.LENGTH); 243 pointer+=SessionIterator.LENGTH; 244 for (int i = 0; i < numberOfColumns; i++) { 245 short dataType =(short) columnValues[i].getDatatype(); 246 short length = 0; 247 byte[] columnValue = new byte[]{}; 248 if(!columnValues[i].isNull()){ 249 columnValue = columnValues[i].getBytes(); 250 length = (short) columnValue.length; 251 } 252 253 System.arraycopy(CCzufDpowfsufs.getBytes(dataType),0,byteKey,pointer,SessionIterator.LENGTH); 254 pointer+=SessionIterator.LENGTH; 255 System.arraycopy(CCzufDpowfsufs.getBytes(length),0,byteKey,pointer,SessionIterator.LENGTH); 256 pointer+=SessionIterator.LENGTH; 257 System.arraycopy(columnValue,0,byteKey,pointer,length); 258 pointer+=length; 259 } 260 return byteKey; 261 } 262 public void moveByteKey(byte[] key) throws DException{ 263 int pointer=0; 264 int numberOfColumns = CCzufDpowfsufs.getShortValue(key,pointer); 265 pointer+=SessionIterator.LENGTH; 266 FieldBase[] columnValues = new FieldBase[numberOfColumns]; 267 for (int i = 0; i < numberOfColumns; i++) { 268 int dataType = CCzufDpowfsufs.getShortValue(key,pointer); 269 pointer+=SessionIterator.LENGTH; 270 int columnLength = CCzufDpowfsufs.getShortValue(key,pointer); 271 pointer+=SessionIterator.LENGTH; 272 byte[] b = new byte[columnLength]; 273 System.arraycopy(key,pointer,b,0,columnLength); 274 BufferRange buffer= null; 275 if (columnLength == 0) 276 buffer = FieldUtility.NULLBUFFERRANGE; 277 else 278 buffer = new BufferRange(b, 0, columnLength); 279 columnValues[i] = FieldUtility.getField(dataType,buffer); 280 pointer+=columnLength; 281 } 282 moveOnActualKey(columnValues); 283 } 284 285 public void deleteBlobClobRecord(_DatabaseUser user) throws com.daffodilwoods.database.resource.DException { 286 ((_TableOperations)iterator).deleteBlobClobRecord(user) ; 287 } 288 289 290 } 291 | Popular Tags |