gitee.com/runner.mei/dm@v0.0.0-20220207044607-a9ba0dc20bf7/a.go (about) 1 /* 2 * Copyright (c) 2000-2018, 达梦数据库有限公司. 3 * All rights reserved. 4 */ 5 package dm 6 7 import ( 8 "bytes" 9 "crypto/tls" 10 "net" 11 "strconv" 12 "time" 13 14 "gitee.com/runner.mei/dm/security" 15 ) 16 17 const ( 18 Dm_build_1310 = 8192 19 Dm_build_1311 = 2 * time.Second 20 ) 21 22 type dm_build_1312 struct { 23 dm_build_1313 *net.TCPConn 24 dm_build_1314 *tls.Conn 25 dm_build_1315 *Dm_build_980 26 dm_build_1316 *DmConnection 27 dm_build_1317 security.Cipher 28 dm_build_1318 bool 29 dm_build_1319 bool 30 dm_build_1320 *security.DhKey 31 32 dm_build_1321 bool 33 dm_build_1322 string 34 dm_build_1323 bool 35 } 36 37 func dm_build_1324(dm_build_1325 *DmConnection) (*dm_build_1312, error) { 38 dm_build_1326, dm_build_1327 := dm_build_1329(dm_build_1325.dmConnector.host+":"+strconv.Itoa(int(dm_build_1325.dmConnector.port)), time.Duration(dm_build_1325.dmConnector.socketTimeout)*time.Second) 39 if dm_build_1327 != nil { 40 return nil, dm_build_1327 41 } 42 43 dm_build_1328 := dm_build_1312{} 44 dm_build_1328.dm_build_1313 = dm_build_1326 45 dm_build_1328.dm_build_1315 = Dm_build_983(Dm_build_7) 46 dm_build_1328.dm_build_1316 = dm_build_1325 47 dm_build_1328.dm_build_1318 = false 48 dm_build_1328.dm_build_1319 = false 49 dm_build_1328.dm_build_1321 = false 50 dm_build_1328.dm_build_1322 = "" 51 dm_build_1328.dm_build_1323 = false 52 dm_build_1325.Access = &dm_build_1328 53 54 return &dm_build_1328, nil 55 } 56 57 func dm_build_1329(dm_build_1330 string, dm_build_1331 time.Duration) (*net.TCPConn, error) { 58 dm_build_1332, dm_build_1333 := net.DialTimeout("tcp", dm_build_1330, dm_build_1331) 59 if dm_build_1333 != nil { 60 return nil, ECGO_COMMUNITION_ERROR.addDetail("\tdial address: " + dm_build_1330).throw() 61 } 62 63 if tcpConn, ok := dm_build_1332.(*net.TCPConn); ok { 64 65 tcpConn.SetKeepAlive(true) 66 tcpConn.SetKeepAlivePeriod(Dm_build_1311) 67 tcpConn.SetNoDelay(true) 68 69 return tcpConn, nil 70 } 71 72 return nil, nil 73 } 74 75 func (dm_build_1335 *dm_build_1312) dm_build_1334(dm_build_1336 dm_build_128) bool { 76 var dm_build_1337 = dm_build_1335.dm_build_1316.dmConnector.compress 77 if dm_build_1336.dm_build_143() == Dm_build_35 || dm_build_1337 == Dm_build_84 { 78 return false 79 } 80 81 if dm_build_1337 == Dm_build_82 { 82 return true 83 } else if dm_build_1337 == Dm_build_83 { 84 return !dm_build_1335.dm_build_1316.Local && dm_build_1336.dm_build_141() > Dm_build_81 85 } 86 87 return false 88 } 89 90 func (dm_build_1339 *dm_build_1312) dm_build_1338(dm_build_1340 dm_build_128) bool { 91 var dm_build_1341 = dm_build_1339.dm_build_1316.dmConnector.compress 92 if dm_build_1340.dm_build_143() == Dm_build_35 || dm_build_1341 == Dm_build_84 { 93 return false 94 } 95 96 if dm_build_1341 == Dm_build_82 { 97 return true 98 } else if dm_build_1341 == Dm_build_83 { 99 return dm_build_1339.dm_build_1315.Dm_build_1243(Dm_build_43) == 1 100 } 101 102 return false 103 } 104 105 func (dm_build_1343 *dm_build_1312) dm_build_1342(dm_build_1344 dm_build_128) (err error) { 106 defer func() { 107 if p := recover(); p != nil { 108 if _, ok := p.(string); ok { 109 err = ECGO_COMMUNITION_ERROR.addDetail("\t" + p.(string)).throw() 110 } else { 111 panic(p) 112 } 113 } 114 }() 115 116 dm_build_1346 := dm_build_1344.dm_build_141() 117 118 if dm_build_1346 > 0 { 119 120 if dm_build_1343.dm_build_1334(dm_build_1344) { 121 var retBytes, err = Compress(dm_build_1343.dm_build_1315, Dm_build_36, int(dm_build_1346), int(dm_build_1343.dm_build_1316.dmConnector.compressID)) 122 if err != nil { 123 return err 124 } 125 126 dm_build_1343.dm_build_1315.Dm_build_994(Dm_build_36) 127 128 dm_build_1343.dm_build_1315.Dm_build_1031(dm_build_1346) 129 130 dm_build_1343.dm_build_1315.Dm_build_1059(retBytes) 131 132 dm_build_1344.dm_build_142(int32(len(retBytes)) + ULINT_SIZE) 133 134 dm_build_1343.dm_build_1315.Dm_build_1163(Dm_build_43, 1) 135 } 136 137 if dm_build_1343.dm_build_1319 { 138 dm_build_1346 = dm_build_1344.dm_build_141() 139 var retBytes = dm_build_1343.dm_build_1317.Encrypt(dm_build_1343.dm_build_1315.Dm_build_1270(Dm_build_36, int(dm_build_1346)), true) 140 141 dm_build_1343.dm_build_1315.Dm_build_994(Dm_build_36) 142 143 dm_build_1343.dm_build_1315.Dm_build_1059(retBytes) 144 145 dm_build_1344.dm_build_142(int32(len(retBytes))) 146 } 147 } 148 149 if dm_build_1343.dm_build_1315.Dm_build_992() > Dm_build_8 { 150 return ECGO_MSG_TOO_LONG.throw() 151 } 152 153 dm_build_1344.dm_build_137() 154 if dm_build_1343.dm_build_1574(dm_build_1344) { 155 if dm_build_1343.dm_build_1314 != nil { 156 dm_build_1343.dm_build_1315.Dm_build_997(0) 157 dm_build_1343.dm_build_1315.Dm_build_1016(dm_build_1343.dm_build_1314) 158 } 159 } else { 160 dm_build_1343.dm_build_1315.Dm_build_997(0) 161 dm_build_1343.dm_build_1315.Dm_build_1016(dm_build_1343.dm_build_1313) 162 } 163 return nil 164 } 165 166 func (dm_build_1348 *dm_build_1312) dm_build_1347(dm_build_1349 dm_build_128) (err error) { 167 defer func() { 168 if p := recover(); p != nil { 169 if _, ok := p.(string); ok { 170 err = ECGO_COMMUNITION_ERROR.addDetail("\t" + p.(string)).throw() 171 } else { 172 panic(p) 173 } 174 } 175 }() 176 177 dm_build_1351 := int32(0) 178 if dm_build_1348.dm_build_1574(dm_build_1349) { 179 if dm_build_1348.dm_build_1314 != nil { 180 dm_build_1348.dm_build_1315.Dm_build_994(0) 181 dm_build_1348.dm_build_1315.Dm_build_1010(dm_build_1348.dm_build_1314, Dm_build_36) 182 dm_build_1351 = dm_build_1349.dm_build_141() 183 if dm_build_1351 > 0 { 184 dm_build_1348.dm_build_1315.Dm_build_1010(dm_build_1348.dm_build_1314, int(dm_build_1351)) 185 } 186 } 187 } else { 188 189 dm_build_1348.dm_build_1315.Dm_build_994(0) 190 dm_build_1348.dm_build_1315.Dm_build_1010(dm_build_1348.dm_build_1313, Dm_build_36) 191 dm_build_1351 = dm_build_1349.dm_build_141() 192 193 if dm_build_1351 > 0 { 194 dm_build_1348.dm_build_1315.Dm_build_1010(dm_build_1348.dm_build_1313, int(dm_build_1351)) 195 } 196 } 197 198 dm_build_1349.dm_build_138() 199 200 dm_build_1351 = dm_build_1349.dm_build_141() 201 if dm_build_1351 <= 0 { 202 return nil 203 } 204 205 if dm_build_1348.dm_build_1319 { 206 ebytes := dm_build_1348.dm_build_1315.Dm_build_1270(Dm_build_36, int(dm_build_1351)) 207 bytes, err := dm_build_1348.dm_build_1317.Decrypt(ebytes, true) 208 if err != nil { 209 return err 210 } 211 dm_build_1348.dm_build_1315.Dm_build_994(Dm_build_36) 212 dm_build_1348.dm_build_1315.Dm_build_1059(bytes) 213 dm_build_1349.dm_build_142(int32(len(bytes))) 214 } 215 216 if dm_build_1348.dm_build_1338(dm_build_1349) { 217 218 dm_build_1351 = dm_build_1349.dm_build_141() 219 cbytes := dm_build_1348.dm_build_1315.Dm_build_1270(Dm_build_36+ULINT_SIZE, int(dm_build_1351-ULINT_SIZE)) 220 bytes, err := UnCompress(cbytes, int(dm_build_1348.dm_build_1316.dmConnector.compressID)) 221 if err != nil { 222 return err 223 } 224 dm_build_1348.dm_build_1315.Dm_build_994(Dm_build_36) 225 dm_build_1348.dm_build_1315.Dm_build_1059(bytes) 226 dm_build_1349.dm_build_142(int32(len(bytes))) 227 } 228 return nil 229 } 230 231 func (dm_build_1353 *dm_build_1312) dm_build_1352(dm_build_1354 dm_build_128) (dm_build_1355 interface{}, dm_build_1356 error) { 232 dm_build_1356 = dm_build_1354.dm_build_132(dm_build_1354) 233 if dm_build_1356 != nil { 234 return nil, dm_build_1356 235 } 236 237 dm_build_1356 = dm_build_1353.dm_build_1342(dm_build_1354) 238 if dm_build_1356 != nil { 239 return nil, dm_build_1356 240 } 241 242 dm_build_1356 = dm_build_1353.dm_build_1347(dm_build_1354) 243 if dm_build_1356 != nil { 244 return nil, dm_build_1356 245 } 246 247 return dm_build_1354.dm_build_136(dm_build_1354) 248 } 249 250 func (dm_build_1358 *dm_build_1312) dm_build_1357() (*dm_build_565, error) { 251 252 Dm_build_1359 := dm_build_571(dm_build_1358) 253 _, dm_build_1360 := dm_build_1358.dm_build_1352(Dm_build_1359) 254 if dm_build_1360 != nil { 255 return nil, dm_build_1360 256 } 257 258 return Dm_build_1359, nil 259 } 260 261 func (dm_build_1362 *dm_build_1312) dm_build_1361() error { 262 263 dm_build_1363 := dm_build_433(dm_build_1362) 264 _, dm_build_1364 := dm_build_1362.dm_build_1352(dm_build_1363) 265 if dm_build_1364 != nil { 266 return dm_build_1364 267 } 268 269 return nil 270 } 271 272 func (dm_build_1366 *dm_build_1312) dm_build_1365() error { 273 274 var dm_build_1367 *dm_build_565 275 var err error 276 if dm_build_1367, err = dm_build_1366.dm_build_1357(); err != nil { 277 return err 278 } 279 280 if dm_build_1366.dm_build_1316.sslEncrypt == 2 { 281 if err = dm_build_1366.dm_build_1570(false); err != nil { 282 return ECGO_INIT_SSL_FAILED.addDetail("\n" + err.Error()).throw() 283 } 284 } else if dm_build_1366.dm_build_1316.sslEncrypt == 1 { 285 if err = dm_build_1366.dm_build_1570(true); err != nil { 286 return ECGO_INIT_SSL_FAILED.addDetail("\n" + err.Error()).throw() 287 } 288 } 289 290 if dm_build_1366.dm_build_1319 || dm_build_1366.dm_build_1318 { 291 k, err := dm_build_1366.dm_build_1560() 292 if err != nil { 293 return err 294 } 295 sessionKey := security.ComputeSessionKey(k, dm_build_1367.Dm_build_569) 296 encryptType := dm_build_1367.dm_build_567 297 hashType := int(dm_build_1367.Dm_build_568) 298 if encryptType == -1 { 299 encryptType = security.DES_CFB 300 } 301 if hashType == -1 { 302 hashType = security.MD5 303 } 304 err = dm_build_1366.dm_build_1563(encryptType, sessionKey, dm_build_1366.dm_build_1316.dmConnector.cipherPath, hashType) 305 if err != nil { 306 return err 307 } 308 } 309 310 if err := dm_build_1366.dm_build_1361(); err != nil { 311 return err 312 } 313 return nil 314 } 315 316 func (dm_build_1370 *dm_build_1312) Dm_build_1369(dm_build_1371 *DmStatement) error { 317 dm_build_1372 := dm_build_594(dm_build_1370, dm_build_1371) 318 _, dm_build_1373 := dm_build_1370.dm_build_1352(dm_build_1372) 319 if dm_build_1373 != nil { 320 return dm_build_1373 321 } 322 323 return nil 324 } 325 326 func (dm_build_1375 *dm_build_1312) Dm_build_1374(dm_build_1376 int32) error { 327 dm_build_1377 := dm_build_604(dm_build_1375, dm_build_1376) 328 _, dm_build_1378 := dm_build_1375.dm_build_1352(dm_build_1377) 329 if dm_build_1378 != nil { 330 return dm_build_1378 331 } 332 333 return nil 334 } 335 336 func (dm_build_1380 *dm_build_1312) Dm_build_1379(dm_build_1381 *DmStatement, dm_build_1382 bool, dm_build_1383 int16) (*execRetInfo, error) { 337 dm_build_1384 := dm_build_471(dm_build_1380, dm_build_1381, dm_build_1382, dm_build_1383) 338 dm_build_1385, dm_build_1386 := dm_build_1380.dm_build_1352(dm_build_1384) 339 if dm_build_1386 != nil { 340 return nil, dm_build_1386 341 } 342 return dm_build_1385.(*execRetInfo), nil 343 } 344 345 func (dm_build_1388 *dm_build_1312) Dm_build_1387(dm_build_1389 *DmStatement, dm_build_1390 int16) (*execRetInfo, error) { 346 return dm_build_1388.Dm_build_1379(dm_build_1389, false, Dm_build_88) 347 } 348 349 func (dm_build_1392 *dm_build_1312) Dm_build_1391(dm_build_1393 *DmStatement, dm_build_1394 []OptParameter) (*execRetInfo, error) { 350 dm_build_1395, dm_build_1396 := dm_build_1392.dm_build_1352(dm_build_230(dm_build_1392, dm_build_1393, dm_build_1394)) 351 if dm_build_1396 != nil { 352 return nil, dm_build_1396 353 } 354 355 return dm_build_1395.(*execRetInfo), nil 356 } 357 358 func (dm_build_1398 *dm_build_1312) Dm_build_1397(dm_build_1399 *DmStatement, dm_build_1400 int16) (*execRetInfo, error) { 359 return dm_build_1398.Dm_build_1379(dm_build_1399, true, dm_build_1400) 360 } 361 362 func (dm_build_1402 *dm_build_1312) Dm_build_1401(dm_build_1403 *DmStatement, dm_build_1404 [][]interface{}) (*execRetInfo, error) { 363 dm_build_1405 := dm_build_253(dm_build_1402, dm_build_1403, dm_build_1404) 364 dm_build_1406, dm_build_1407 := dm_build_1402.dm_build_1352(dm_build_1405) 365 if dm_build_1407 != nil { 366 return nil, dm_build_1407 367 } 368 return dm_build_1406.(*execRetInfo), nil 369 } 370 371 func (dm_build_1409 *dm_build_1312) Dm_build_1408(dm_build_1410 *DmStatement, dm_build_1411 [][]interface{}, dm_build_1412 bool) (*execRetInfo, error) { 372 var dm_build_1413, dm_build_1414 = 0, 0 373 var dm_build_1415 = len(dm_build_1411) 374 var dm_build_1416 [][]interface{} 375 var dm_build_1417 = NewExceInfo() 376 dm_build_1417.updateCounts = make([]int64, dm_build_1415) 377 var dm_build_1418 = false 378 for dm_build_1413 < dm_build_1415 { 379 for dm_build_1414 = dm_build_1413; dm_build_1414 < dm_build_1415; dm_build_1414++ { 380 paramData := dm_build_1411[dm_build_1414] 381 bindData := make([]interface{}, dm_build_1410.paramCount) 382 dm_build_1418 = false 383 for icol := 0; icol < int(dm_build_1410.paramCount); icol++ { 384 if dm_build_1410.params[icol].ioType == IO_TYPE_OUT { 385 continue 386 } 387 if dm_build_1409.dm_build_1543(bindData, paramData, icol) { 388 dm_build_1418 = true 389 break 390 } 391 } 392 393 if dm_build_1418 { 394 break 395 } 396 dm_build_1416 = append(dm_build_1416, bindData) 397 } 398 399 if dm_build_1414 != dm_build_1413 { 400 tmpExecInfo, err := dm_build_1409.Dm_build_1401(dm_build_1410, dm_build_1416) 401 if err != nil { 402 return nil, err 403 } 404 dm_build_1416 = dm_build_1416[0:0] 405 dm_build_1417.union(tmpExecInfo, dm_build_1413, dm_build_1414-dm_build_1413) 406 } 407 408 if dm_build_1414 < dm_build_1415 { 409 tmpExecInfo, err := dm_build_1409.Dm_build_1419(dm_build_1410, dm_build_1411[dm_build_1414], dm_build_1412) 410 if err != nil { 411 return nil, err 412 } 413 414 dm_build_1412 = true 415 dm_build_1417.union(tmpExecInfo, dm_build_1414, 1) 416 } 417 418 dm_build_1413 = dm_build_1414 + 1 419 } 420 for _, i := range dm_build_1417.updateCounts { 421 if i > 0 { 422 dm_build_1417.updateCount += i 423 } 424 } 425 return dm_build_1417, nil 426 } 427 428 func (dm_build_1420 *dm_build_1312) Dm_build_1419(dm_build_1421 *DmStatement, dm_build_1422 []interface{}, dm_build_1423 bool) (*execRetInfo, error) { 429 430 var dm_build_1424 = make([]interface{}, dm_build_1421.paramCount) 431 for icol := 0; icol < int(dm_build_1421.paramCount); icol++ { 432 if dm_build_1421.params[icol].ioType == IO_TYPE_OUT { 433 continue 434 } 435 if dm_build_1420.dm_build_1543(dm_build_1424, dm_build_1422, icol) { 436 437 if !dm_build_1423 { 438 preExecute := dm_build_461(dm_build_1420, dm_build_1421, dm_build_1421.params) 439 dm_build_1420.dm_build_1352(preExecute) 440 dm_build_1423 = true 441 } 442 443 dm_build_1420.dm_build_1549(dm_build_1421, dm_build_1421.params[icol], icol, dm_build_1422[icol].(iOffRowBinder)) 444 dm_build_1424[icol] = ParamDataEnum_OFF_ROW 445 } 446 } 447 448 var dm_build_1425 = make([][]interface{}, 1, 1) 449 dm_build_1425[0] = dm_build_1424 450 451 dm_build_1426 := dm_build_253(dm_build_1420, dm_build_1421, dm_build_1425) 452 dm_build_1427, dm_build_1428 := dm_build_1420.dm_build_1352(dm_build_1426) 453 if dm_build_1428 != nil { 454 return nil, dm_build_1428 455 } 456 return dm_build_1427.(*execRetInfo), nil 457 } 458 459 func (dm_build_1430 *dm_build_1312) Dm_build_1429(dm_build_1431 *DmStatement, dm_build_1432 int16) (*execRetInfo, error) { 460 dm_build_1433 := dm_build_448(dm_build_1430, dm_build_1431, dm_build_1432) 461 462 dm_build_1434, dm_build_1435 := dm_build_1430.dm_build_1352(dm_build_1433) 463 if dm_build_1435 != nil { 464 return nil, dm_build_1435 465 } 466 return dm_build_1434.(*execRetInfo), nil 467 } 468 469 func (dm_build_1437 *dm_build_1312) Dm_build_1436(dm_build_1438 *innerRows, dm_build_1439 int64) (*execRetInfo, error) { 470 dm_build_1440 := dm_build_353(dm_build_1437, dm_build_1438, dm_build_1439, INT64_MAX) 471 dm_build_1441, dm_build_1442 := dm_build_1437.dm_build_1352(dm_build_1440) 472 if dm_build_1442 != nil { 473 return nil, dm_build_1442 474 } 475 return dm_build_1441.(*execRetInfo), nil 476 } 477 478 func (dm_build_1444 *dm_build_1312) Commit() error { 479 dm_build_1445 := dm_build_216(dm_build_1444) 480 _, dm_build_1446 := dm_build_1444.dm_build_1352(dm_build_1445) 481 if dm_build_1446 != nil { 482 return dm_build_1446 483 } 484 485 return nil 486 } 487 488 func (dm_build_1448 *dm_build_1312) Rollback() error { 489 dm_build_1449 := dm_build_509(dm_build_1448) 490 _, dm_build_1450 := dm_build_1448.dm_build_1352(dm_build_1449) 491 if dm_build_1450 != nil { 492 return dm_build_1450 493 } 494 495 return nil 496 } 497 498 func (dm_build_1452 *dm_build_1312) Dm_build_1451(dm_build_1453 *DmConnection) error { 499 dm_build_1454 := dm_build_514(dm_build_1452, dm_build_1453.IsoLevel) 500 _, dm_build_1455 := dm_build_1452.dm_build_1352(dm_build_1454) 501 if dm_build_1455 != nil { 502 return dm_build_1455 503 } 504 505 return nil 506 } 507 508 func (dm_build_1457 *dm_build_1312) Dm_build_1456(dm_build_1458 *DmStatement, dm_build_1459 string) error { 509 dm_build_1460 := dm_build_221(dm_build_1457, dm_build_1458, dm_build_1459) 510 _, dm_build_1461 := dm_build_1457.dm_build_1352(dm_build_1460) 511 if dm_build_1461 != nil { 512 return dm_build_1461 513 } 514 515 return nil 516 } 517 518 func (dm_build_1463 *dm_build_1312) Dm_build_1462(dm_build_1464 []uint32) ([]int64, error) { 519 dm_build_1465 := dm_build_612(dm_build_1463, dm_build_1464) 520 dm_build_1466, dm_build_1467 := dm_build_1463.dm_build_1352(dm_build_1465) 521 if dm_build_1467 != nil { 522 return nil, dm_build_1467 523 } 524 return dm_build_1466.([]int64), nil 525 } 526 527 func (dm_build_1469 *dm_build_1312) Close() error { 528 if dm_build_1469.dm_build_1323 { 529 return nil 530 } 531 532 dm_build_1470 := dm_build_1469.dm_build_1313.Close() 533 if dm_build_1470 != nil { 534 return dm_build_1470 535 } 536 537 dm_build_1469.dm_build_1316 = nil 538 dm_build_1469.dm_build_1323 = true 539 return nil 540 } 541 542 func (dm_build_1472 *dm_build_1312) dm_build_1471(dm_build_1473 *lob) (int64, error) { 543 dm_build_1474 := dm_build_384(dm_build_1472, dm_build_1473) 544 dm_build_1475, dm_build_1476 := dm_build_1472.dm_build_1352(dm_build_1474) 545 if dm_build_1476 != nil { 546 return 0, dm_build_1476 547 } 548 return dm_build_1475.(int64), nil 549 } 550 551 func (dm_build_1478 *dm_build_1312) dm_build_1477(dm_build_1479 *lob, dm_build_1480 int32, dm_build_1481 int32) ([]byte, error) { 552 dm_build_1482 := dm_build_371(dm_build_1478, dm_build_1479, int(dm_build_1480), int(dm_build_1481)) 553 dm_build_1483, dm_build_1484 := dm_build_1478.dm_build_1352(dm_build_1482) 554 if dm_build_1484 != nil { 555 return nil, dm_build_1484 556 } 557 return dm_build_1483.([]byte), nil 558 } 559 560 func (dm_build_1486 *dm_build_1312) dm_build_1485(dm_build_1487 *DmBlob, dm_build_1488 int32, dm_build_1489 int32) ([]byte, error) { 561 var dm_build_1490 = make([]byte, dm_build_1489) 562 var dm_build_1491 int32 = 0 563 var dm_build_1492 int32 = 0 564 var dm_build_1493 []byte 565 var dm_build_1494 error 566 for dm_build_1491 < dm_build_1489 { 567 dm_build_1492 = dm_build_1489 - dm_build_1491 568 if dm_build_1492 > Dm_build_121 { 569 dm_build_1492 = Dm_build_121 570 } 571 dm_build_1493, dm_build_1494 = dm_build_1486.dm_build_1477(&dm_build_1487.lob, dm_build_1488, dm_build_1492) 572 if dm_build_1494 != nil { 573 return nil, dm_build_1494 574 } 575 if dm_build_1493 == nil || len(dm_build_1493) == 0 { 576 break 577 } 578 Dm_build_623.Dm_build_679(dm_build_1490, int(dm_build_1491), dm_build_1493, 0, len(dm_build_1493)) 579 dm_build_1491 += int32(len(dm_build_1493)) 580 dm_build_1488 += int32(len(dm_build_1493)) 581 if dm_build_1487.readOver { 582 break 583 } 584 } 585 return dm_build_1490, nil 586 } 587 588 func (dm_build_1496 *dm_build_1312) dm_build_1495(dm_build_1497 *DmClob, dm_build_1498 int32, dm_build_1499 int32) (string, error) { 589 var dm_build_1500 bytes.Buffer 590 var dm_build_1501 int32 = 0 591 var dm_build_1502 int32 = 0 592 var dm_build_1503 []byte 593 var dm_build_1504 string 594 var dm_build_1505 error 595 for dm_build_1501 < dm_build_1499 { 596 dm_build_1502 = dm_build_1499 - dm_build_1501 597 if dm_build_1502 > Dm_build_121/2 { 598 dm_build_1502 = Dm_build_121 / 2 599 } 600 dm_build_1503, dm_build_1505 = dm_build_1496.dm_build_1477(&dm_build_1497.lob, dm_build_1498, dm_build_1502) 601 if dm_build_1505 != nil { 602 return "", dm_build_1505 603 } 604 if dm_build_1503 == nil || len(dm_build_1503) == 0 { 605 break 606 } 607 dm_build_1504 = Dm_build_623.Dm_build_780(dm_build_1503, 0, len(dm_build_1503), dm_build_1497.serverEncoding, dm_build_1496.dm_build_1316) 608 609 dm_build_1500.WriteString(dm_build_1504) 610 dm_build_1501 += int32(len(dm_build_1504)) 611 dm_build_1498 += int32(len(dm_build_1504)) 612 if dm_build_1497.readOver { 613 break 614 } 615 } 616 return dm_build_1500.String(), nil 617 } 618 619 func (dm_build_1507 *dm_build_1312) dm_build_1506(dm_build_1508 *DmClob, dm_build_1509 int, dm_build_1510 string, dm_build_1511 string) (int, error) { 620 var dm_build_1512 = Dm_build_623.Dm_build_836(dm_build_1510, dm_build_1511, dm_build_1507.dm_build_1316) 621 var dm_build_1513 = 0 622 var dm_build_1514 = len(dm_build_1512) 623 var dm_build_1515 = 0 624 var dm_build_1516 = 0 625 var dm_build_1517 = 0 626 var dm_build_1518 = dm_build_1514/Dm_build_120 + 1 627 var dm_build_1519 byte = 0 628 var dm_build_1520 byte = 0x01 629 var dm_build_1521 byte = 0x02 630 for i := 0; i < dm_build_1518; i++ { 631 dm_build_1519 = 0 632 if i == 0 { 633 dm_build_1519 |= dm_build_1520 634 } 635 if i == dm_build_1518-1 { 636 dm_build_1519 |= dm_build_1521 637 } 638 dm_build_1517 = dm_build_1514 - dm_build_1516 639 if dm_build_1517 > Dm_build_120 { 640 dm_build_1517 = Dm_build_120 641 } 642 643 setLobData := dm_build_528(dm_build_1507, &dm_build_1508.lob, dm_build_1519, dm_build_1509, dm_build_1512, dm_build_1513, dm_build_1517) 644 ret, err := dm_build_1507.dm_build_1352(setLobData) 645 if err != nil { 646 return 0, err 647 } 648 tmp := ret.(int32) 649 if err != nil { 650 return -1, err 651 } 652 if tmp <= 0 { 653 return dm_build_1515, nil 654 } else { 655 dm_build_1509 += int(tmp) 656 dm_build_1515 += int(tmp) 657 dm_build_1516 += dm_build_1517 658 dm_build_1513 += dm_build_1517 659 } 660 } 661 return dm_build_1515, nil 662 } 663 664 func (dm_build_1523 *dm_build_1312) dm_build_1522(dm_build_1524 *DmBlob, dm_build_1525 int, dm_build_1526 []byte) (int, error) { 665 var dm_build_1527 = 0 666 var dm_build_1528 = len(dm_build_1526) 667 var dm_build_1529 = 0 668 var dm_build_1530 = 0 669 var dm_build_1531 = 0 670 var dm_build_1532 = dm_build_1528/Dm_build_120 + 1 671 var dm_build_1533 byte = 0 672 var dm_build_1534 byte = 0x01 673 var dm_build_1535 byte = 0x02 674 for i := 0; i < dm_build_1532; i++ { 675 dm_build_1533 = 0 676 if i == 0 { 677 dm_build_1533 |= dm_build_1534 678 } 679 if i == dm_build_1532-1 { 680 dm_build_1533 |= dm_build_1535 681 } 682 dm_build_1531 = dm_build_1528 - dm_build_1530 683 if dm_build_1531 > Dm_build_120 { 684 dm_build_1531 = Dm_build_120 685 } 686 687 setLobData := dm_build_528(dm_build_1523, &dm_build_1524.lob, dm_build_1533, dm_build_1525, dm_build_1526, dm_build_1527, dm_build_1531) 688 ret, err := dm_build_1523.dm_build_1352(setLobData) 689 if err != nil { 690 return 0, err 691 } 692 tmp := ret.(int32) 693 if tmp <= 0 { 694 return dm_build_1529, nil 695 } else { 696 dm_build_1525 += int(tmp) 697 dm_build_1529 += int(tmp) 698 dm_build_1530 += dm_build_1531 699 dm_build_1527 += dm_build_1531 700 } 701 } 702 return dm_build_1529, nil 703 } 704 705 func (dm_build_1537 *dm_build_1312) dm_build_1536(dm_build_1538 *lob, dm_build_1539 int) (int64, error) { 706 dm_build_1540 := dm_build_395(dm_build_1537, dm_build_1538, dm_build_1539) 707 dm_build_1541, dm_build_1542 := dm_build_1537.dm_build_1352(dm_build_1540) 708 if dm_build_1542 != nil { 709 return dm_build_1538.length, dm_build_1542 710 } 711 return dm_build_1541.(int64), nil 712 } 713 714 func (dm_build_1544 *dm_build_1312) dm_build_1543(dm_build_1545 []interface{}, dm_build_1546 []interface{}, dm_build_1547 int) bool { 715 var dm_build_1548 = false 716 if dm_build_1547 >= len(dm_build_1546) || dm_build_1546[dm_build_1547] == nil { 717 dm_build_1545[dm_build_1547] = ParamDataEnum_Null 718 } else if binder, ok := dm_build_1546[dm_build_1547].(iOffRowBinder); ok { 719 dm_build_1548 = true 720 dm_build_1545[dm_build_1547] = ParamDataEnum_OFF_ROW 721 var lob lob 722 if l, ok := binder.getObj().(DmBlob); ok { 723 lob = l.lob 724 } else if l, ok := binder.getObj().(DmClob); ok { 725 lob = l.lob 726 } 727 if &lob != nil && lob.canOptimized(dm_build_1544.dm_build_1316) { 728 dm_build_1545[dm_build_1547] = &lobCtl{lob.buildCtlData()} 729 dm_build_1548 = false 730 } 731 } else { 732 dm_build_1545[dm_build_1547] = dm_build_1546[dm_build_1547] 733 } 734 return dm_build_1548 735 } 736 737 func (dm_build_1550 *dm_build_1312) dm_build_1549(dm_build_1551 *DmStatement, dm_build_1552 parameter, dm_build_1553 int, dm_build_1554 iOffRowBinder) error { 738 var dm_build_1555 = Dm_build_906() 739 dm_build_1554.read(dm_build_1555) 740 var dm_build_1556 = 0 741 for !dm_build_1554.isReadOver() || dm_build_1555.Dm_build_907() > 0 { 742 if !dm_build_1554.isReadOver() && dm_build_1555.Dm_build_907() < Dm_build_120 { 743 dm_build_1554.read(dm_build_1555) 744 } 745 if dm_build_1555.Dm_build_907() > Dm_build_120 { 746 dm_build_1556 = Dm_build_120 747 } else { 748 dm_build_1556 = dm_build_1555.Dm_build_907() 749 } 750 751 putData := dm_build_499(dm_build_1550, dm_build_1551, int16(dm_build_1553), dm_build_1555, int32(dm_build_1556)) 752 _, err := dm_build_1550.dm_build_1352(putData) 753 if err != nil { 754 return err 755 } 756 } 757 return nil 758 } 759 760 func (dm_build_1558 *dm_build_1312) dm_build_1557() ([]byte, error) { 761 var dm_build_1559 error 762 if dm_build_1558.dm_build_1320 == nil { 763 if dm_build_1558.dm_build_1320, dm_build_1559 = security.NewClientKeyPair(); dm_build_1559 != nil { 764 return nil, dm_build_1559 765 } 766 } 767 return security.Bn2Bytes(dm_build_1558.dm_build_1320.GetY(), security.DH_KEY_LENGTH), nil 768 } 769 770 func (dm_build_1561 *dm_build_1312) dm_build_1560() (*security.DhKey, error) { 771 var dm_build_1562 error 772 if dm_build_1561.dm_build_1320 == nil { 773 if dm_build_1561.dm_build_1320, dm_build_1562 = security.NewClientKeyPair(); dm_build_1562 != nil { 774 return nil, dm_build_1562 775 } 776 } 777 return dm_build_1561.dm_build_1320, nil 778 } 779 780 func (dm_build_1564 *dm_build_1312) dm_build_1563(dm_build_1565 int, dm_build_1566 []byte, dm_build_1567 string, dm_build_1568 int) (dm_build_1569 error) { 781 if dm_build_1565 > 0 && dm_build_1565 < security.MIN_EXTERNAL_CIPHER_ID && dm_build_1566 != nil { 782 dm_build_1564.dm_build_1317, dm_build_1569 = security.NewSymmCipher(dm_build_1565, dm_build_1566) 783 } else if dm_build_1565 >= security.MIN_EXTERNAL_CIPHER_ID { 784 if dm_build_1564.dm_build_1317, dm_build_1569 = security.NewThirdPartCipher(dm_build_1565, dm_build_1566, dm_build_1567, dm_build_1568); dm_build_1569 != nil { 785 dm_build_1569 = THIRD_PART_CIPHER_INIT_FAILED.addDetailln(dm_build_1569.Error()).throw() 786 } 787 } 788 return 789 } 790 791 func (dm_build_1571 *dm_build_1312) dm_build_1570(dm_build_1572 bool) (dm_build_1573 error) { 792 if dm_build_1571.dm_build_1314, dm_build_1573 = security.NewTLSFromTCP(dm_build_1571.dm_build_1313, dm_build_1571.dm_build_1316.dmConnector.sslCertPath, dm_build_1571.dm_build_1316.dmConnector.sslKeyPath, dm_build_1571.dm_build_1316.dmConnector.user); dm_build_1573 != nil { 793 return 794 } 795 if !dm_build_1572 { 796 dm_build_1571.dm_build_1314 = nil 797 } 798 return 799 } 800 801 func (dm_build_1575 *dm_build_1312) dm_build_1574(dm_build_1576 dm_build_128) bool { 802 return dm_build_1576.dm_build_143() != Dm_build_35 && dm_build_1575.dm_build_1316.sslEncrypt == 1 803 }