1 package com.daffodilwoods.daffodildb.server.sql99.dml; 2 3 import java.util.*; 4 5 import com.daffodilwoods.daffodildb.server.datadictionarysystem.*; 6 import com.daffodilwoods.daffodildb.server.serversystem.*; 7 import com.daffodilwoods.daffodildb.server.sessionsystem.*; 8 import com.daffodilwoods.daffodildb.server.sql99.common.*; 9 import com.daffodilwoods.daffodildb.server.sql99.dql.execution.*; 10 import com.daffodilwoods.daffodildb.server.sql99.dql.iterator.*; 11 import com.daffodilwoods.daffodildb.server.sql99.dql.semanticchecker.*; 12 import com.daffodilwoods.daffodildb.server.sql99.expression.booleanvalueexpression.*; 13 import com.daffodilwoods.daffodildb.server.sql99.token.*; 14 import com.daffodilwoods.daffodildb.server.sql99.utils.*; 15 import com.daffodilwoods.database.general.*; 16 import com.daffodilwoods.database.resource.*; 17 import com.daffodilwoods.database.utility.P; 18 import com.daffodilwoods.daffodildb.server.sql99.expression.*; 19 import com.daffodilwoods.daffodildb.server.sql99.dql.listenerevents.IteratorConstants; 20 import java.util.ArrayList ; 21 import com.daffodilwoods.daffodildb.server.sql99.dql.plan.table.SingleTablePlan; 22 import com.daffodilwoods.daffodildb.server.sql99.dql.iterator.table.SelectedColumnIterator; 23 24 25 public class updatestatementsearched implements com.daffodilwoods.daffodildb.utils.parser.StatementExecuter, SQLdatachangestatement, Parameters, TypeConstants { 26 27 public SRESERVEDWORD1206543922searchcondition _OptSRESERVEDWORD1206543922searchcondition0; 28 public setclauselist _setclauselist1; 29 public SRESERVEDWORD1206543922 _SRESERVEDWORD12065439222; 30 public correlationname _Optcorrelationname3 ; 31 public targettable _targettable4 ; 32 public SRESERVEDWORD1206543922 _SRESERVEDWORD12065439225 ; 33 34 35 private TableDetails tableDetails = null; 36 private ArrayList knownReferences; 37 private boolean checkingPerformed; 38 private _Reference[] questionMarks; 39 private String aliasName =null; 40 private ColumnDetails[] columnDetail =null; 41 public _Reference[] checkSemantic(_ServerSession serverSession) throws DException { 42 tableDetails = (TableDetails) _targettable4.run(serverSession); 43 if(_Optcorrelationname3 != null){ 44 aliasName = (String ) _Optcorrelationname3.run(serverSession); 45 tableDetails.setAliasName(aliasName); 46 } 47 SemanticChecker.initializeCatalogNameAndSchemaNameOfTable(tableDetails, serverSession); 48 _ColumnCharacteristics cc = serverSession.getColumnCharacteristics(tableDetails.getQualifiedIdentifier()); 49 tableDetails.cc = cc; 50 tableDetails.setTableType(cc.getTableType()); 51 54 55 60 ColumnDetails[] leftCDs = _setclauselist1.getLeftColumnDetails(serverSession); 61 DmlStaticFunctionality.checkColumnUniqueness(leftCDs); 62 checkColumnsValidity(leftCDs, tableDetails); 63 knownReferences = new ArrayList (4); 64 _Reference[] rightReferences = getRightSetClauseReferences(tableDetails, serverSession); 65 66 _Reference[] references1 = _setclauselist1.checkSemantic(serverSession); 67 _PrivilegeTable privilegeTable = serverSession.getUserSession().getPrivilegeCharacteristics().getPrivilegeTable(tableDetails.getQualifiedIdentifier()); 68 boolean updateRight = privilegeTable.hasTablePrivileges(_PrivilegeTable.UPDATE); 69 ArrayList LeftColumnList = new ArrayList (); 70 GeneralPurposeStaticClass.addRecursively(leftCDs, LeftColumnList); 71 ColumnDetails[] leftColunmcds = (ColumnDetails[]) LeftColumnList.toArray(new ColumnDetails[0]); 72 int[] columns = getColumns(leftColunmcds, cc, TypeConstants.REFERENCE); 73 if (columns == null && !updateRight) 74 throw new PrivilegeException("DSE340", new Object [] {"UPDATE", tableDetails.getQualifiedIdentifier()}); 75 updateRight = privilegeTable.hasColumnPrivileges(_PrivilegeTable.UPDATE, columns); 76 if (!updateRight) 77 throw new PrivilegeException("DSE340", new Object [] {"UPDATE", tableDetails.getQualifiedIdentifier()}); 78 79 ColumnDetails[] rightCDs = _setclauselist1.getColumnDetails(serverSession); 80 ArrayList rightColumnList = new ArrayList (); 81 GeneralPurposeStaticClass.addRecursively(rightCDs, rightColumnList); 82 ColumnDetails[] rightColunmcds = (ColumnDetails[]) rightColumnList.toArray(new ColumnDetails[0]); 83 columns = getColumns(rightColunmcds, cc, ColumnDetails.COLUMNDETAIL); 84 if (columns != null) { 85 updateRight = privilegeTable.hasColumnPrivileges(_PrivilegeTable.SELECT, columns); 86 if (!updateRight) 87 throw new PrivilegeException("DSE8132", null); 88 } 89 90 references1 = makeProvisionForKnownReferences(references1, tableDetails); 91 checkingPerformed = true; 92 93 if (_OptSRESERVEDWORD1206543922searchcondition0 == null) { 94 _Reference[] asd = GeneralPurposeStaticClass.getJointReferences(references1, rightReferences); 95 setDataTypeInKnownReferences(serverSession); 96 return getRefereceWithSequence(asd); 97 } 98 ArrayList list = new ArrayList (); 99 GeneralPurposeStaticClass.addRecursively(_OptSRESERVEDWORD1206543922searchcondition0.getColumnDetails(), list); 100 ColumnDetails[] cds = (ColumnDetails[]) list.toArray(new ColumnDetails[0]); 101 int[] wherecolumns = getColumns(cds, cc, ColumnDetails.COLUMNDETAIL); 102 if (wherecolumns != null) { 103 boolean fetchRight = privilegeTable.hasColumnPrivileges(_PrivilegeTable.SELECT, 104 wherecolumns); 105 if (!fetchRight) { 106 throw new DException("DSE8132", null); 107 } 108 } 109 110 _Reference[] ref = GeneralPurposeStaticClass.getJointReferences(rightReferences, getWhereReferences(tableDetails, serverSession)); 111 _Reference[] asd = GeneralPurposeStaticClass.getJointReferences(references1, ref); 112 setDataTypeInKnownReferences(serverSession); 113 114 return getRefereceWithSequence(asd); 115 } 116 117 private void setDataTypeInKnownReferences(_ServerSession serverSession) throws 118 DException { 119 if (knownReferences.size()> 0) { 120 ArrayList aList = new ArrayList (5); 121 SetColumnProperties.setTableNamesAndDatatypesOfAllColumns(serverSession, 122 (ColumnDetails[]) knownReferences.toArray(new ColumnDetails[0]), 123 new TableDetails[] {tableDetails} 124 , aList, new ArrayList ()); 125 if(aList.size()>0){ 126 knownReferences.clear(); 127 knownReferences.addAll(Arrays.asList(aList.toArray())); 128 } 129 } 130 } 131 132 private int[] getColumns(ColumnDetails[] cds, _ColumnCharacteristics cc, int columnDetailType) throws DException { 133 int[] columns = new int[cds.length]; 134 int j = 0; 135 for (int i = 0; i < cds.length; i++) { 136 if (cds[i].getType() == columnDetailType) { 137 try { 138 columns[j] = cds[i].getIndex(); 139 } catch (DException e) { 140 int tt = cc.getColumnIndex(cds[i].getColumn()); 141 cds[i].setIndex(tt); 142 columns[j] = tt; 143 } 144 j++; 145 } 146 } 147 if (j > 0) { 148 int[] toReturn = new int[j]; 149 System.arraycopy(columns, 0, toReturn, 0, j); 150 return toReturn; 151 } 152 return null; 153 } 154 155 private _Reference[] getRefereceWithSequence(_Reference[] asd) throws DException { 156 if (asd != null) { 157 ArrayList list = new ArrayList (); 158 for (int i = 0; i < asd.length; i++) { 159 if (asd[i].getReferenceType() != SimpleConstants.SEQUENCE) { 160 list.add(asd[i]); 161 } 162 } 163 return list.size() == 0 ? null : (_Reference[]) list.toArray(new _Reference[0]); 164 } 165 return asd; 166 } 167 168 public Object run(Object object) throws DException { 169 _StatementExecutionContext sec = (_StatementExecutionContext) object; 170 _ServerSession serverSession = sec.getServerSession(); 171 if (!checkingPerformed) { 172 performChecking(serverSession); 173 } 174 Object [][] setclauselistarray = (Object [][]) _setclauselist1.run(serverSession); 175 Object referencesIteratorMapping = _setclauselist1.getReferenceIteratorMapping(tableDetails, serverSession); 176 booleanvalueexpression condition = null; 177 if (_OptSRESERVEDWORD1206543922searchcondition0 != null) { 178 condition = (booleanvalueexpression) _OptSRESERVEDWORD1206543922searchcondition0.run(object); 179 } 180 QualifiedIdentifier tTable = tableDetails.getQualifiedIdentifier(); 181 ArrayList listOfTables = new ArrayList (); 182 if (_OptSRESERVEDWORD1206543922searchcondition0 != null) 183 _OptSRESERVEDWORD1206543922searchcondition0.getTablesIncluded(listOfTables); 184 _setclauselist1.getTablesIncluded(listOfTables); 185 186 187 if (tableDetails.getTableType() == TypeConstants.VIEW) { 188 String query ="Select * from " +tTable; 189 if(condition!=null) 190 query += " where "+condition.toString(); 191 192 _Iterator iterator =(_Iterator) serverSession.execute(query,0,IteratorConstants.UPDATABLE); 193 if(iterator instanceof SelectedColumnIterator ) 194 throw new DException("DSE8205",new Object []{tTable}); 195 ViewUpdateExecuter viwUpdateExecuter = new ViewUpdateExecuter(sec, tableDetails, iterator, setclauselistarray, System.currentTimeMillis(), referencesIteratorMapping, knownReferences.size() > 0 ? (_Reference[]) knownReferences.toArray(new _Reference[0]) : null, questionMarks, listOfTables, tTable); 196 return viwUpdateExecuter; 197 } 198 199 200 SingleTablePlan singleTablePlan = new SingleTablePlan(tTable.toString(),condition,tableDetails,null,true,columnDetail); 201 singleTablePlan.setInternalIteratorRequired(true); 202 _Iterator iterator = singleTablePlan.execute(serverSession); 203 204 UpdateExecuter uExecuter = new UpdateExecuter(sec, tableDetails, iterator, setclauselistarray, System.currentTimeMillis(), referencesIteratorMapping, knownReferences.size() > 0 ? (_Reference[]) knownReferences.toArray(new _Reference[0]) : null, questionMarks, listOfTables, tTable); 205 return uExecuter; 206 } 207 208 public _Reference[] getReferences(Object [] obj) throws DException { 209 throw new UnsupportedOperationException (" METHOD NOT IMPLEMENTED "); 210 } 211 212 public Object [] getParameters(Object object) throws DException { 213 Object [] values = _setclauselist1.getParameters(object); 214 if (_OptSRESERVEDWORD1206543922searchcondition0 == null) { 215 return values; 216 } 217 Object [] temp = _OptSRESERVEDWORD1206543922searchcondition0.getParameters(object); 218 if (values == null || values.length == 0) { 219 return temp; 220 } 221 if (temp == null || temp.length == 0) { 222 return values; 223 } 224 ArrayList arr = new ArrayList (); 225 arr.addAll(Arrays.asList(values)); 226 arr.addAll(Arrays.asList(temp)); 227 return arr.toArray(); 228 } 229 230 public ParameterInfo[] getParameterInfo() throws DException { 231 ParameterInfo[] setClauseP = _setclauselist1.getParameterInfo(); 232 ParameterInfo[] whereP = _OptSRESERVEDWORD1206543922searchcondition0 == null ? null : 233 _OptSRESERVEDWORD1206543922searchcondition0.getParameterInfo(); 234 if (whereP == null) { 235 return getParam(setClauseP); 236 } 237 if (setClauseP == null) { 238 return getParam(whereP); 239 } 240 ParameterInfo[] merged = new ParameterInfo[setClauseP.length + whereP.length]; 241 System.arraycopy(setClauseP, 0, merged, 0, setClauseP.length); 242 System.arraycopy(whereP, 0, merged, setClauseP.length, whereP.length); 243 ParameterInfo[] param = getParam(merged); 244 return param; 245 } 246 247 private ParameterInfo[] getParam(ParameterInfo[] param) throws DException { 248 if (param == null) 249 return new ParameterInfo[] {}; 250 _ColumnCharacteristics cc = tableDetails.getColumnCharacteristics(); 251 ArrayList list = new ArrayList (); 252 for (int i = 0; i < param.length; i++) { 253 if (param[i].getQuestionMark()) { 254 String columnName = param[i].getName(); 255 if (columnName != null) { 256 if (param[i].getDataType() == -1) { 257 int index = cc.getColumnIndex(columnName); 258 param[i].setDataType(cc.getColumnType(index)); 259 } 260 }else { 261 try { 262 int ordinalPosition=param[i].getOridinalPosition(); 263 param[i].setName(cc.getColumnName(ordinalPosition+6)); 264 if (param[i].getDataType() == -1) { 265 param[i].setDataType(cc.getColumnType(ordinalPosition+6)); 266 } 267 } catch (IllegalColumnException ex) { 268 if (ex.getDseCode().equalsIgnoreCase("DSE3514")) { 269 if (cc.getColumnCount() < (i + 6)) 270 throw new DmlStatementException("DSE8141", null); 271 } 272 throw ex; 273 } 274 } 275 276 list.add(param[i]); 277 278 } else if (param[i].getSubQuery()) { 279 ParameterInfo[] pp = param[i].getParameterInfoArray(); 280 if (pp != null) { 281 list.addAll(Arrays.asList(pp)); 282 } 283 } 284 285 } 286 ParameterInfo[] tt = new ParameterInfo[list.size()]; 287 list.toArray(tt); 288 return tt; 289 } 290 291 public _Reference[] getReferences() throws com.daffodilwoods.database.resource.DException { 292 return null; 293 } 294 295 public _Reference[] checkColumnsValidityAsReference(ColumnDetails[] columns, TableDetails tableDetails, _ServerSession serverSession) throws DException { 296 ArrayList aList = new ArrayList (5); 297 if (columns != null) { 298 SetColumnProperties.setTableNamesAndDatatypesOfAllColumns(serverSession, columns, new TableDetails[] {tableDetails} 299 , aList, new ArrayList ()); 300 for (int i = 0, length = aList.size(); i < length; i++) { 301 ( (ColumnDetails) aList.get(i)).setUnderLyingReference(true); 302 } 303 return aList.size() > 0 ? (_Reference[]) aList.toArray(new _Reference[0]) : null; 304 } 305 return null; 306 } 307 308 private void checkColumnsValidity(ColumnDetails[] columns, TableDetails tableDetails) throws DException { 309 if (columns != null) { 310 for (int i = 0; i < columns.length; i++) { 311 if (!check(tableDetails, columns[i].getColumnName())) { 312 throw new DmlStatementException("DSE1276", new Object [] {tableDetails.getQualifiedTableName()} 313 , new DException("DSE1130", new Object [] {columns[i].getColumn(), tableDetails.getQualifiedTableName()})); 314 } 315 } 316 } 317 } 318 319 private boolean check(TableDetails tableDetails, String [] columnName) throws DException { 320 try { 321 if(_Optcorrelationname3 !=null){ 322 String aliasName = (String )_Optcorrelationname3.run(null); 323 if(columnName.length >=2 && aliasName.equalsIgnoreCase(columnName[0])){ 324 return true; 325 } 326 } 327 String [] tableName = tableDetails.getTableName(); 328 for (int i = columnName.length - 2, j = tableName.length - 1, 329 length = columnName.length; i >= 0 && j >= 0; i--, j--) { 330 if (!tableName[j].equalsIgnoreCase(columnName[i])) { 331 return false; 332 } 333 } 334 boolean columnFound= tableDetails.cc.getColumnIndex(columnName[columnName.length - 1]) != -1; 335 return columnFound; 336 } catch (Exception e) { 337 return false; 338 } 339 } 340 341 342 private _Reference[] getWhereReferences(TableDetails tableDetails, _ServerSession serverSession) throws DException { 343 ArrayList list =new ArrayList (); 344 ColumnDetails[] whereColumnDetails = _OptSRESERVEDWORD1206543922searchcondition0.getColumnDetails(); 345 _Reference[] ref1 = checkColumnsValidityAsReference(whereColumnDetails, tableDetails, serverSession); 346 setKnownReferences(ref1, tableDetails,list); 347 _Reference[] ref2 = _OptSRESERVEDWORD1206543922searchcondition0.checkSemantic(serverSession); 348 _Reference[] ref3 = makeProvisionForKnownReferences(ref2, tableDetails); 349 list.addAll(knownReferences); 350 _Reference[] ref4 =(_Reference[])list.toArray(new _Reference[0]); 351 352 whereColumnDetails = removeUnknownColumnDetailFromWhereClause(whereColumnDetails,tableDetails); 353 columnDetail =GeneralPurposeStaticClass.getJoinOfColumnDetailsAndReferences(whereColumnDetails,ref4); 354 355 for (int i = 0; i < columnDetail.length; i++) { 356 if(columnDetail[i].getTableDetails()==null) 357 columnDetail[i].setTableDetails(tableDetails); 358 } 359 360 return GeneralPurposeStaticClass.getJointReferences(ref1, ref3); 361 } 362 363 364 368 private void setKnownReferences(_Reference[] columns, TableDetails tableDetails,ArrayList alist) throws DException { 369 if (columns != null ) { 370 int len = columns.length; 371 for (int i = 0; i < len; i++) { 372 if ( (columns[i].getReferenceType() != SimpleConstants.VARIABLECOLUMN) && check(tableDetails, ( (ColumnDetails) columns[i]).getColumnName())) { 373 alist.add(columns[i]); 374 } 375 } 376 } 377 } 378 379 private ColumnDetails[] removeUnknownColumnDetailFromWhereClause(ColumnDetails[] cd,TableDetails tableDetails) throws DException{ 380 ArrayList listcd =new ArrayList (); 381 for (int j = 0, length1 = cd.length; j < length1; ++j) { 382 if ((cd[j].getType() == REFERENCE || cd[j].getUnderLyingReference()) && cd[j].getTable() != null ) { 383 if (cd[j].getTable().equals(tableDetails)) 384 listcd.add(cd[j]); 385 } 386 } 387 ColumnDetails[] cdlast = (ColumnDetails[]) listcd.toArray(new ColumnDetails[0]); 388 return cdlast ; 389 } 390 391 392 393 private _Reference[] getRightSetClauseReferences(TableDetails tableDetails, _ServerSession serverSession) throws DException { 394 ColumnDetails[] setRightColumnDetails = _setclauselist1.getColumnDetails(serverSession); 395 398 return checkColumnsValidityAsReference(setRightColumnDetails, tableDetails, serverSession); 399 } 400 401 412 413 private void performChecking(_ServerSession serverSession) throws DException { 414 _Reference[] refToCheck = checkSemantic(serverSession); 415 if (refToCheck != null) { 416 for (int i = 0; i < refToCheck.length; i++) { 417 if (refToCheck[i].getReferenceType() != SimpleConstants.VARIABLECOLUMN) { 418 String targetTableName = tableDetails.getQualifiedTableName(); 419 ColumnDetails columnDetails = ( (ColumnDetails) refToCheck[i]); 420 String [] column_name = columnDetails.getColumnName(); 421 if (column_name.length == 1) { 422 throw new DmlStatementException("DSE1276", new Object [] {targetTableName} 423 , new DException("DSE1130", new Object [] {refToCheck[i].getColumn(), targetTableName})); 424 } else if (column_name.length == 2) { 425 String tableName = tableDetails.getQualifiedTableName(); 426 int lastIndexOfDot = tableName.lastIndexOf("."); 427 tableName = tableName.substring(lastIndexOfDot + 1); 428 if( aliasName == null || !aliasName.equalsIgnoreCase(column_name[0])){ 429 if (tableName.equalsIgnoreCase(column_name[0])) { 430 throw new DmlStatementException("DSE1276", 431 new Object [] {targetTableName} 432 , 433 new DException("DSE1130", 434 new Object [] {refToCheck[i].getColumn(), targetTableName})); 435 } 436 else { 437 throw new DmlStatementException("DSE1276", 438 new Object [] {targetTableName} 439 , 440 new DException("DSE1130", 441 new Object [] {refToCheck[i].getColumn(), column_name[0]})); 442 } 443 } 444 } else if (column_name.length == 3) { 445 String tableName = tableDetails.getQualifiedTableName(); 446 int lastIndexOfDot = tableName.lastIndexOf("."); 447 tableName = tableName.substring(lastIndexOfDot + 1); 448 String schemName = tableDetails.getSchemaName(); 449 if ( (schemName + "." + tableName).equalsIgnoreCase(column_name[0] + "." + column_name[1])) { 450 throw new DmlStatementException("DSE1276", new Object [] {targetTableName} 451 , new DException("DSE1130", new Object [] {refToCheck[i].getColumn(), targetTableName})); 452 } else { 453 throw new DmlStatementException("DSE1276", new Object [] {targetTableName} 454 , new DException("DSE1130", new Object [] {refToCheck[i].getColumn(), column_name[0] + "." + column_name[1]})); 455 } 456 } else { 457 if ( (targetTableName).equalsIgnoreCase(column_name[0] + "." + column_name[1] + column_name[2])) { 458 throw new DmlStatementException("DSE1276", new Object [] {targetTableName} 459 , new DException("DSE1130", new Object [] {refToCheck[i].getColumn(), targetTableName})); 460 } else { 461 throw new DmlStatementException("DSE1276", new Object [] {targetTableName} 462 , new DException("DSE1130", new Object [] {refToCheck[i].getColumn(), column_name[0] + "." + column_name[1] + "." + column_name[2]})); 463 } 464 } 465 } 466 } 467 } 468 questionMarks = refToCheck; 469 } 470 471 private _Reference[] makeProvisionForKnownReferences(_Reference[] columns, TableDetails tableDetails) throws DException { 472 ArrayList toReturn = new ArrayList (5); 473 if (columns != null) { 474 int len = columns.length; 475 for (int i = 0; i < len; i++) { 476 477 if ( (columns[i].getReferenceType() != SimpleConstants.SEQUENCE) && (columns[i].getReferenceType() != SimpleConstants.VARIABLECOLUMN) && check(tableDetails, ( (ColumnDetails) columns[i]).getColumnName())) { 478 knownReferences.add(columns[i]); 479 } else { 480 toReturn.add(columns[i]); 481 } 482 } 483 } 484 return toReturn.size() > 0 ? (_Reference[]) toReturn.toArray(new _Reference[0]) : null; 485 } 486 487 public Object clone() throws CloneNotSupportedException { 488 return this; 489 } 490 491 492 private ColumnDetails[] getColumnDetail() throws DException { 493 494 if(_OptSRESERVEDWORD1206543922searchcondition0!=null) { 495 ColumnDetails[] columndetail =_OptSRESERVEDWORD1206543922searchcondition0.getColumnDetails(); 496 ArrayList list =new ArrayList (); 497 for (int i = 0; i < columndetail.length; i++) { 498 int type = columndetail[i].getType(); 499 if (type == FUNCTIONAL || type == GROUPING || type == SCALARFUNCTION || 500 type == CASEEXPRESSION || type == USERFUNCTION ) { 501 addColumns(list, columndetail[i].getExistingColumnDetails()); 502 } 503 } 504 505 return (ColumnDetails[]) list.toArray(new ColumnDetails[0]); 506 } 507 return null; 508 } 509 510 private void addColumns(ArrayList set, ColumnDetails[] columnDetails1) throws 511 DException { 512 if (columnDetails1.length > 0 && columnDetails1[0].getContainClauseFlag()) { 513 return; 514 } 515 for (int i = 0, length = columnDetails1.length; i < length; i++) { 516 int type = columnDetails1[i].getType(); 517 if (type == FUNCTIONAL || type == GROUPING || type == SCALARFUNCTION || 518 type == CASEEXPRESSION || type == USERFUNCTION ) { 519 addColumns(set, columnDetails1[i].getExistingColumnDetails()); 520 } 521 } 522 } 523 524 525 public String toString() { 526 StringBuffer sb = new StringBuffer (); 527 sb.append(" "); 528 sb.append(_SRESERVEDWORD12065439225); 529 sb.append(" "); 530 sb.append(_targettable4); 531 sb.append(" "); 532 if(_Optcorrelationname3 != null){ 533 sb.append(_Optcorrelationname3); 534 sb.append(" "); 535 } 536 sb.append(_SRESERVEDWORD12065439222); 537 sb.append(" "); 538 sb.append(_setclauselist1); 539 sb.append(" "); 540 if(_OptSRESERVEDWORD1206543922searchcondition0 != null ) { 541 sb.append(_OptSRESERVEDWORD1206543922searchcondition0); 542 } 543 return sb.toString(); 544 } 545 546 } 547 | Popular Tags |