5 Star 36 Fork 19

springrain / dm

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
a.go 26.03 KB
一键复制 编辑 原始数据 按行查看 历史
springrain 提交于 2024-01-30 17:18 . v1.8.14 来自 达梦8.1.3.100
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838
/*
* Copyright (c) 2000-2018, 达梦数据库有限公司.
* All rights reserved.
*/
package dm
import (
"bytes"
"context"
"crypto/tls"
"fmt"
"net"
"strconv"
"time"
"unicode/utf8"
"gitee.com/chunanyong/dm/security"
)
const (
Dm_build_1343 = 8192
Dm_build_1344 = 2 * time.Second
)
type dm_build_1345 struct {
dm_build_1346 net.Conn
dm_build_1347 *tls.Conn
dm_build_1348 *Dm_build_1009
dm_build_1349 *DmConnection
dm_build_1350 security.Cipher
dm_build_1351 bool
dm_build_1352 bool
dm_build_1353 *security.DhKey
dm_build_1354 bool
dm_build_1355 string
dm_build_1356 bool
}
func dm_build_1357(dm_build_1358 context.Context, dm_build_1359 *DmConnection) (*dm_build_1345, error) {
var dm_build_1360 net.Conn
var dm_build_1361 error
dialsLock.RLock()
dm_build_1362, dm_build_1363 := dials[dm_build_1359.dmConnector.dialName]
dialsLock.RUnlock()
if dm_build_1363 {
dm_build_1360, dm_build_1361 = dm_build_1362(dm_build_1358, dm_build_1359.dmConnector.host+":"+strconv.Itoa(int(dm_build_1359.dmConnector.port)))
} else {
dm_build_1360, dm_build_1361 = dm_build_1365(dm_build_1359.dmConnector.host+":"+strconv.Itoa(int(dm_build_1359.dmConnector.port)), time.Duration(dm_build_1359.dmConnector.socketTimeout)*time.Second)
}
if dm_build_1361 != nil {
return nil, dm_build_1361
}
dm_build_1364 := dm_build_1345{}
dm_build_1364.dm_build_1346 = dm_build_1360
dm_build_1364.dm_build_1348 = Dm_build_1012(Dm_build_14)
dm_build_1364.dm_build_1349 = dm_build_1359
dm_build_1364.dm_build_1351 = false
dm_build_1364.dm_build_1352 = false
dm_build_1364.dm_build_1354 = false
dm_build_1364.dm_build_1355 = ""
dm_build_1364.dm_build_1356 = false
dm_build_1359.Access = &dm_build_1364
return &dm_build_1364, nil
}
func dm_build_1365(dm_build_1366 string, dm_build_1367 time.Duration) (net.Conn, error) {
dm_build_1368, dm_build_1369 := net.DialTimeout("tcp", dm_build_1366, dm_build_1367)
if dm_build_1369 != nil {
return &net.TCPConn{}, ECGO_COMMUNITION_ERROR.addDetail("\tdial address: " + dm_build_1366).throw()
}
if tcpConn, ok := dm_build_1368.(*net.TCPConn); ok {
tcpConn.SetKeepAlive(true)
tcpConn.SetKeepAlivePeriod(Dm_build_1344)
tcpConn.SetNoDelay(true)
}
return dm_build_1368, nil
}
func (dm_build_1371 *dm_build_1345) dm_build_1370(dm_build_1372 dm_build_135) bool {
var dm_build_1373 = dm_build_1371.dm_build_1349.dmConnector.compress
if dm_build_1372.dm_build_150() == Dm_build_42 || dm_build_1373 == Dm_build_91 {
return false
}
if dm_build_1373 == Dm_build_89 {
return true
} else if dm_build_1373 == Dm_build_90 {
return !dm_build_1371.dm_build_1349.Local && dm_build_1372.dm_build_148() > Dm_build_88
}
return false
}
func (dm_build_1375 *dm_build_1345) dm_build_1374(dm_build_1376 dm_build_135) bool {
var dm_build_1377 = dm_build_1375.dm_build_1349.dmConnector.compress
if dm_build_1376.dm_build_150() == Dm_build_42 || dm_build_1377 == Dm_build_91 {
return false
}
if dm_build_1377 == Dm_build_89 {
return true
} else if dm_build_1377 == Dm_build_90 {
return dm_build_1375.dm_build_1348.Dm_build_1276(Dm_build_50) == 1
}
return false
}
func (dm_build_1379 *dm_build_1345) dm_build_1378(dm_build_1380 dm_build_135) (err error) {
defer func() {
if p := recover(); p != nil {
if _, ok := p.(string); ok {
err = ECGO_COMMUNITION_ERROR.addDetail("\t" + p.(string)).throw()
} else {
err = fmt.Errorf("internal error: %v", p)
}
}
}()
dm_build_1382 := dm_build_1380.dm_build_148()
if dm_build_1382 > 0 {
if dm_build_1379.dm_build_1370(dm_build_1380) {
var retBytes, err = Compress(dm_build_1379.dm_build_1348, Dm_build_43, int(dm_build_1382), int(dm_build_1379.dm_build_1349.dmConnector.compressID))
if err != nil {
return err
}
dm_build_1379.dm_build_1348.Dm_build_1023(Dm_build_43)
dm_build_1379.dm_build_1348.Dm_build_1064(dm_build_1382)
dm_build_1379.dm_build_1348.Dm_build_1092(retBytes)
dm_build_1380.dm_build_149(int32(len(retBytes)) + ULINT_SIZE)
dm_build_1379.dm_build_1348.Dm_build_1196(Dm_build_50, 1)
}
if dm_build_1379.dm_build_1352 {
dm_build_1382 = dm_build_1380.dm_build_148()
var retBytes = dm_build_1379.dm_build_1350.Encrypt(dm_build_1379.dm_build_1348.Dm_build_1303(Dm_build_43, int(dm_build_1382)), true)
dm_build_1379.dm_build_1348.Dm_build_1023(Dm_build_43)
dm_build_1379.dm_build_1348.Dm_build_1092(retBytes)
dm_build_1380.dm_build_149(int32(len(retBytes)))
}
}
if dm_build_1379.dm_build_1348.Dm_build_1021() > Dm_build_15 {
return ECGO_MSG_TOO_LONG.throw()
}
dm_build_1380.dm_build_144()
if dm_build_1379.dm_build_1613(dm_build_1380) {
if dm_build_1379.dm_build_1347 != nil {
dm_build_1379.dm_build_1348.Dm_build_1026(0)
if _, err := dm_build_1379.dm_build_1348.Dm_build_1045(dm_build_1379.dm_build_1347); err != nil {
return err
}
}
} else {
dm_build_1379.dm_build_1348.Dm_build_1026(0)
if _, err := dm_build_1379.dm_build_1348.Dm_build_1045(dm_build_1379.dm_build_1346); err != nil {
return err
}
}
return nil
}
func (dm_build_1384 *dm_build_1345) dm_build_1383(dm_build_1385 dm_build_135) (err error) {
defer func() {
if p := recover(); p != nil {
if _, ok := p.(string); ok {
err = ECGO_COMMUNITION_ERROR.addDetail("\t" + p.(string)).throw()
} else {
err = fmt.Errorf("internal error: %v", p)
}
}
}()
dm_build_1387 := int32(0)
if dm_build_1384.dm_build_1613(dm_build_1385) {
if dm_build_1384.dm_build_1347 != nil {
dm_build_1384.dm_build_1348.Dm_build_1023(0)
if _, err := dm_build_1384.dm_build_1348.Dm_build_1039(dm_build_1384.dm_build_1347, Dm_build_43); err != nil {
return err
}
dm_build_1387 = dm_build_1385.dm_build_148()
if dm_build_1387 > 0 {
if _, err := dm_build_1384.dm_build_1348.Dm_build_1039(dm_build_1384.dm_build_1347, int(dm_build_1387)); err != nil {
return err
}
}
}
} else {
dm_build_1384.dm_build_1348.Dm_build_1023(0)
if _, err := dm_build_1384.dm_build_1348.Dm_build_1039(dm_build_1384.dm_build_1346, Dm_build_43); err != nil {
return err
}
dm_build_1387 = dm_build_1385.dm_build_148()
if dm_build_1387 > 0 {
if _, err := dm_build_1384.dm_build_1348.Dm_build_1039(dm_build_1384.dm_build_1346, int(dm_build_1387)); err != nil {
return err
}
}
}
dm_build_1385.dm_build_145()
dm_build_1387 = dm_build_1385.dm_build_148()
if dm_build_1387 <= 0 {
return nil
}
if dm_build_1384.dm_build_1352 {
ebytes := dm_build_1384.dm_build_1348.Dm_build_1303(Dm_build_43, int(dm_build_1387))
bytes, err := dm_build_1384.dm_build_1350.Decrypt(ebytes, true)
if err != nil {
return err
}
dm_build_1384.dm_build_1348.Dm_build_1023(Dm_build_43)
dm_build_1384.dm_build_1348.Dm_build_1092(bytes)
dm_build_1385.dm_build_149(int32(len(bytes)))
}
if dm_build_1384.dm_build_1374(dm_build_1385) {
dm_build_1387 = dm_build_1385.dm_build_148()
cbytes := dm_build_1384.dm_build_1348.Dm_build_1303(Dm_build_43+ULINT_SIZE, int(dm_build_1387-ULINT_SIZE))
bytes, err := UnCompress(cbytes, int(dm_build_1384.dm_build_1349.dmConnector.compressID))
if err != nil {
return err
}
dm_build_1384.dm_build_1348.Dm_build_1023(Dm_build_43)
dm_build_1384.dm_build_1348.Dm_build_1092(bytes)
dm_build_1385.dm_build_149(int32(len(bytes)))
}
return nil
}
func (dm_build_1389 *dm_build_1345) dm_build_1388(dm_build_1390 dm_build_135) (dm_build_1391 interface{}, dm_build_1392 error) {
if dm_build_1389.dm_build_1356 {
return nil, ECGO_CONNECTION_CLOSED.throw()
}
dm_build_1393 := dm_build_1389.dm_build_1349
dm_build_1393.mu.Lock()
defer dm_build_1393.mu.Unlock()
dm_build_1392 = dm_build_1390.dm_build_139(dm_build_1390)
if dm_build_1392 != nil {
return nil, dm_build_1392
}
dm_build_1392 = dm_build_1389.dm_build_1378(dm_build_1390)
if dm_build_1392 != nil {
return nil, dm_build_1392
}
dm_build_1392 = dm_build_1389.dm_build_1383(dm_build_1390)
if dm_build_1392 != nil {
return nil, dm_build_1392
}
return dm_build_1390.dm_build_143(dm_build_1390)
}
func (dm_build_1395 *dm_build_1345) dm_build_1394() (*dm_build_592, error) {
Dm_build_1396 := dm_build_598(dm_build_1395)
_, dm_build_1397 := dm_build_1395.dm_build_1388(Dm_build_1396)
if dm_build_1397 != nil {
return nil, dm_build_1397
}
return Dm_build_1396, nil
}
func (dm_build_1399 *dm_build_1345) dm_build_1398() error {
dm_build_1400 := dm_build_459(dm_build_1399)
_, dm_build_1401 := dm_build_1399.dm_build_1388(dm_build_1400)
if dm_build_1401 != nil {
return dm_build_1401
}
return nil
}
func (dm_build_1403 *dm_build_1345) dm_build_1402() error {
var dm_build_1404 *dm_build_592
var err error
if dm_build_1404, err = dm_build_1403.dm_build_1394(); err != nil {
return err
}
if dm_build_1403.dm_build_1349.sslEncrypt == 2 {
if err = dm_build_1403.dm_build_1609(false); err != nil {
return ECGO_INIT_SSL_FAILED.addDetail("\n" + err.Error()).throw()
}
} else if dm_build_1403.dm_build_1349.sslEncrypt == 1 {
if err = dm_build_1403.dm_build_1609(true); err != nil {
return ECGO_INIT_SSL_FAILED.addDetail("\n" + err.Error()).throw()
}
}
if dm_build_1403.dm_build_1352 || dm_build_1403.dm_build_1351 {
k, err := dm_build_1403.dm_build_1599()
if err != nil {
return err
}
sessionKey := security.ComputeSessionKey(k, dm_build_1404.Dm_build_596)
encryptType := dm_build_1404.dm_build_594
hashType := int(dm_build_1404.Dm_build_595)
if encryptType == -1 {
encryptType = security.DES_CFB
}
if hashType == -1 {
hashType = security.MD5
}
err = dm_build_1403.dm_build_1602(encryptType, sessionKey, dm_build_1403.dm_build_1349.dmConnector.cipherPath, hashType)
if err != nil {
return err
}
}
if err := dm_build_1403.dm_build_1398(); err != nil {
return err
}
return nil
}
func (dm_build_1407 *dm_build_1345) Dm_build_1406(dm_build_1408 *DmStatement) error {
dm_build_1409 := dm_build_621(dm_build_1407, dm_build_1408)
_, dm_build_1410 := dm_build_1407.dm_build_1388(dm_build_1409)
if dm_build_1410 != nil {
return dm_build_1410
}
return nil
}
func (dm_build_1412 *dm_build_1345) Dm_build_1411(dm_build_1413 int32) error {
dm_build_1414 := dm_build_631(dm_build_1412, dm_build_1413)
_, dm_build_1415 := dm_build_1412.dm_build_1388(dm_build_1414)
if dm_build_1415 != nil {
return dm_build_1415
}
return nil
}
func (dm_build_1417 *dm_build_1345) Dm_build_1416(dm_build_1418 *DmStatement, dm_build_1419 bool, dm_build_1420 int16) (*execRetInfo, error) {
dm_build_1421 := dm_build_498(dm_build_1417, dm_build_1418, dm_build_1419, dm_build_1420)
dm_build_1422, dm_build_1423 := dm_build_1417.dm_build_1388(dm_build_1421)
if dm_build_1423 != nil {
return nil, dm_build_1423
}
return dm_build_1422.(*execRetInfo), nil
}
func (dm_build_1425 *dm_build_1345) Dm_build_1424(dm_build_1426 *DmStatement, dm_build_1427 int16) (*execRetInfo, error) {
return dm_build_1425.Dm_build_1416(dm_build_1426, false, Dm_build_95)
}
func (dm_build_1429 *dm_build_1345) Dm_build_1428(dm_build_1430 *DmStatement, dm_build_1431 []OptParameter) (*execRetInfo, error) {
dm_build_1432, dm_build_1433 := dm_build_1429.dm_build_1388(dm_build_238(dm_build_1429, dm_build_1430, dm_build_1431))
if dm_build_1433 != nil {
return nil, dm_build_1433
}
return dm_build_1432.(*execRetInfo), nil
}
func (dm_build_1435 *dm_build_1345) Dm_build_1434(dm_build_1436 *DmStatement, dm_build_1437 int16) (*execRetInfo, error) {
return dm_build_1435.Dm_build_1416(dm_build_1436, true, dm_build_1437)
}
func (dm_build_1439 *dm_build_1345) Dm_build_1438(dm_build_1440 *DmStatement, dm_build_1441 [][]interface{}) (*execRetInfo, error) {
dm_build_1442 := dm_build_270(dm_build_1439, dm_build_1440, dm_build_1441)
dm_build_1443, dm_build_1444 := dm_build_1439.dm_build_1388(dm_build_1442)
if dm_build_1444 != nil {
return nil, dm_build_1444
}
return dm_build_1443.(*execRetInfo), nil
}
func (dm_build_1446 *dm_build_1345) Dm_build_1445(dm_build_1447 *DmStatement, dm_build_1448 [][]interface{}, dm_build_1449 bool) (*execRetInfo, error) {
var dm_build_1450, dm_build_1451 = 0, 0
var dm_build_1452 = len(dm_build_1448)
var dm_build_1453 [][]interface{}
var dm_build_1454 = NewExceInfo()
dm_build_1454.updateCounts = make([]int64, dm_build_1452)
var dm_build_1455 = false
for dm_build_1450 < dm_build_1452 {
for dm_build_1451 = dm_build_1450; dm_build_1451 < dm_build_1452; dm_build_1451++ {
paramData := dm_build_1448[dm_build_1451]
bindData := make([]interface{}, dm_build_1447.paramCount)
dm_build_1455 = false
for icol := 0; icol < int(dm_build_1447.paramCount); icol++ {
if dm_build_1447.bindParams[icol].ioType == IO_TYPE_OUT {
continue
}
if dm_build_1446.dm_build_1582(bindData, paramData, icol) {
dm_build_1455 = true
break
}
}
if dm_build_1455 {
break
}
dm_build_1453 = append(dm_build_1453, bindData)
}
if dm_build_1451 != dm_build_1450 {
tmpExecInfo, err := dm_build_1446.Dm_build_1438(dm_build_1447, dm_build_1453)
if err != nil {
return nil, err
}
dm_build_1453 = dm_build_1453[0:0]
dm_build_1454.union(tmpExecInfo, dm_build_1450, dm_build_1451-dm_build_1450)
}
if dm_build_1451 < dm_build_1452 {
tmpExecInfo, err := dm_build_1446.Dm_build_1456(dm_build_1447, dm_build_1448[dm_build_1451], dm_build_1449)
if err != nil {
return nil, err
}
dm_build_1449 = true
dm_build_1454.union(tmpExecInfo, dm_build_1451, 1)
}
dm_build_1450 = dm_build_1451 + 1
}
for _, i := range dm_build_1454.updateCounts {
if i > 0 {
dm_build_1454.updateCount += i
}
}
return dm_build_1454, nil
}
func (dm_build_1457 *dm_build_1345) Dm_build_1456(dm_build_1458 *DmStatement, dm_build_1459 []interface{}, dm_build_1460 bool) (*execRetInfo, error) {
var dm_build_1461 = make([]interface{}, dm_build_1458.paramCount)
for icol := 0; icol < int(dm_build_1458.paramCount); icol++ {
if dm_build_1458.bindParams[icol].ioType == IO_TYPE_OUT {
continue
}
if dm_build_1457.dm_build_1582(dm_build_1461, dm_build_1459, icol) {
if !dm_build_1460 {
preExecute := dm_build_487(dm_build_1457, dm_build_1458, dm_build_1458.bindParams)
dm_build_1457.dm_build_1388(preExecute)
dm_build_1460 = true
}
dm_build_1457.dm_build_1588(dm_build_1458, dm_build_1458.bindParams[icol], icol, dm_build_1459[icol].(iOffRowBinder))
dm_build_1461[icol] = ParamDataEnum_OFF_ROW
}
}
var dm_build_1462 = make([][]interface{}, 1, 1)
dm_build_1462[0] = dm_build_1461
dm_build_1463 := dm_build_270(dm_build_1457, dm_build_1458, dm_build_1462)
dm_build_1464, dm_build_1465 := dm_build_1457.dm_build_1388(dm_build_1463)
if dm_build_1465 != nil {
return nil, dm_build_1465
}
return dm_build_1464.(*execRetInfo), nil
}
func (dm_build_1467 *dm_build_1345) Dm_build_1466(dm_build_1468 *DmStatement, dm_build_1469 int16) (*execRetInfo, error) {
dm_build_1470 := dm_build_474(dm_build_1467, dm_build_1468, dm_build_1469)
dm_build_1471, dm_build_1472 := dm_build_1467.dm_build_1388(dm_build_1470)
if dm_build_1472 != nil {
return nil, dm_build_1472
}
return dm_build_1471.(*execRetInfo), nil
}
func (dm_build_1474 *dm_build_1345) Dm_build_1473(dm_build_1475 *innerRows, dm_build_1476 int64) (*execRetInfo, error) {
dm_build_1477 := dm_build_377(dm_build_1474, dm_build_1475, dm_build_1476, INT64_MAX)
dm_build_1478, dm_build_1479 := dm_build_1474.dm_build_1388(dm_build_1477)
if dm_build_1479 != nil {
return nil, dm_build_1479
}
return dm_build_1478.(*execRetInfo), nil
}
func (dm_build_1481 *dm_build_1345) Commit() error {
dm_build_1482 := dm_build_223(dm_build_1481)
_, dm_build_1483 := dm_build_1481.dm_build_1388(dm_build_1482)
if dm_build_1483 != nil {
return dm_build_1483
}
return nil
}
func (dm_build_1485 *dm_build_1345) Rollback() error {
dm_build_1486 := dm_build_536(dm_build_1485)
_, dm_build_1487 := dm_build_1485.dm_build_1388(dm_build_1486)
if dm_build_1487 != nil {
return dm_build_1487
}
return nil
}
func (dm_build_1489 *dm_build_1345) Dm_build_1488(dm_build_1490 *DmConnection) error {
dm_build_1491 := dm_build_541(dm_build_1489, dm_build_1490.IsoLevel)
_, dm_build_1492 := dm_build_1489.dm_build_1388(dm_build_1491)
if dm_build_1492 != nil {
return dm_build_1492
}
return nil
}
func (dm_build_1494 *dm_build_1345) Dm_build_1493(dm_build_1495 *DmStatement, dm_build_1496 string) error {
dm_build_1497 := dm_build_228(dm_build_1494, dm_build_1495, dm_build_1496)
_, dm_build_1498 := dm_build_1494.dm_build_1388(dm_build_1497)
if dm_build_1498 != nil {
return dm_build_1498
}
return nil
}
func (dm_build_1500 *dm_build_1345) Dm_build_1499(dm_build_1501 []uint32) ([]int64, error) {
dm_build_1502 := dm_build_639(dm_build_1500, dm_build_1501)
dm_build_1503, dm_build_1504 := dm_build_1500.dm_build_1388(dm_build_1502)
if dm_build_1504 != nil {
return nil, dm_build_1504
}
return dm_build_1503.([]int64), nil
}
func (dm_build_1506 *dm_build_1345) Close() error {
if dm_build_1506.dm_build_1356 {
return nil
}
dm_build_1507 := dm_build_1506.dm_build_1346.Close()
if dm_build_1507 != nil {
return dm_build_1507
}
dm_build_1506.dm_build_1349 = nil
dm_build_1506.dm_build_1356 = true
return nil
}
func (dm_build_1509 *dm_build_1345) dm_build_1508(dm_build_1510 *lob) (int64, error) {
dm_build_1511 := dm_build_410(dm_build_1509, dm_build_1510)
dm_build_1512, dm_build_1513 := dm_build_1509.dm_build_1388(dm_build_1511)
if dm_build_1513 != nil {
return 0, dm_build_1513
}
return dm_build_1512.(int64), nil
}
func (dm_build_1515 *dm_build_1345) dm_build_1514(dm_build_1516 *lob, dm_build_1517 int32, dm_build_1518 int32) (*lobRetInfo, error) {
dm_build_1519 := dm_build_395(dm_build_1515, dm_build_1516, int(dm_build_1517), int(dm_build_1518))
dm_build_1520, dm_build_1521 := dm_build_1515.dm_build_1388(dm_build_1519)
if dm_build_1521 != nil {
return nil, dm_build_1521
}
return dm_build_1520.(*lobRetInfo), nil
}
func (dm_build_1523 *dm_build_1345) dm_build_1522(dm_build_1524 *DmBlob, dm_build_1525 int32, dm_build_1526 int32) ([]byte, error) {
var dm_build_1527 = make([]byte, dm_build_1526)
var dm_build_1528 int32 = 0
var dm_build_1529 int32 = 0
var dm_build_1530 *lobRetInfo
var dm_build_1531 []byte
var dm_build_1532 error
for dm_build_1528 < dm_build_1526 {
dm_build_1529 = dm_build_1526 - dm_build_1528
if dm_build_1529 > Dm_build_128 {
dm_build_1529 = Dm_build_128
}
dm_build_1530, dm_build_1532 = dm_build_1523.dm_build_1514(&dm_build_1524.lob, dm_build_1525+dm_build_1528, dm_build_1529)
if dm_build_1532 != nil {
return nil, dm_build_1532
}
dm_build_1531 = dm_build_1530.data
if dm_build_1531 == nil || len(dm_build_1531) == 0 {
break
}
Dm_build_650.Dm_build_706(dm_build_1527, int(dm_build_1528), dm_build_1531, 0, len(dm_build_1531))
dm_build_1528 += int32(len(dm_build_1531))
if dm_build_1524.readOver {
break
}
}
return dm_build_1527, nil
}
func (dm_build_1534 *dm_build_1345) dm_build_1533(dm_build_1535 *DmClob, dm_build_1536 int32, dm_build_1537 int32) (string, error) {
var dm_build_1538 bytes.Buffer
var dm_build_1539 int32 = 0
var dm_build_1540 int32 = 0
var dm_build_1541 *lobRetInfo
var dm_build_1542 []byte
var dm_build_1543 string
var dm_build_1544 error
for dm_build_1539 < dm_build_1537 {
dm_build_1540 = dm_build_1537 - dm_build_1539
if dm_build_1540 > Dm_build_128/2 {
dm_build_1540 = Dm_build_128 / 2
}
dm_build_1541, dm_build_1544 = dm_build_1534.dm_build_1514(&dm_build_1535.lob, dm_build_1536+dm_build_1539, dm_build_1540)
if dm_build_1544 != nil {
return "", dm_build_1544
}
dm_build_1542 = dm_build_1541.data
if dm_build_1542 == nil || len(dm_build_1542) == 0 {
break
}
dm_build_1543 = Dm_build_650.Dm_build_807(dm_build_1542, 0, len(dm_build_1542), dm_build_1535.serverEncoding, dm_build_1534.dm_build_1349)
dm_build_1538.WriteString(dm_build_1543)
var strLen = dm_build_1541.charLen
if strLen == -1 {
strLen = int64(utf8.RuneCountInString(dm_build_1543))
}
dm_build_1539 += int32(strLen)
if dm_build_1535.readOver {
break
}
}
return dm_build_1538.String(), nil
}
func (dm_build_1546 *dm_build_1345) dm_build_1545(dm_build_1547 *DmClob, dm_build_1548 int, dm_build_1549 string, dm_build_1550 string) (int, error) {
var dm_build_1551 = Dm_build_650.Dm_build_866(dm_build_1549, dm_build_1550, dm_build_1546.dm_build_1349)
var dm_build_1552 = 0
var dm_build_1553 = len(dm_build_1551)
var dm_build_1554 = 0
var dm_build_1555 = 0
var dm_build_1556 = 0
var dm_build_1557 = dm_build_1553/Dm_build_127 + 1
var dm_build_1558 byte = 0
var dm_build_1559 byte = 0x01
var dm_build_1560 byte = 0x02
for i := 0; i < dm_build_1557; i++ {
dm_build_1558 = 0
if i == 0 {
dm_build_1558 |= dm_build_1559
}
if i == dm_build_1557-1 {
dm_build_1558 |= dm_build_1560
}
dm_build_1556 = dm_build_1553 - dm_build_1555
if dm_build_1556 > Dm_build_127 {
dm_build_1556 = Dm_build_127
}
setLobData := dm_build_555(dm_build_1546, &dm_build_1547.lob, dm_build_1558, dm_build_1548, dm_build_1551, dm_build_1552, dm_build_1556)
ret, err := dm_build_1546.dm_build_1388(setLobData)
if err != nil {
return 0, err
}
tmp := ret.(int32)
if err != nil {
return -1, err
}
if tmp <= 0 {
return dm_build_1554, nil
} else {
dm_build_1548 += int(tmp)
dm_build_1554 += int(tmp)
dm_build_1555 += dm_build_1556
dm_build_1552 += dm_build_1556
}
}
return dm_build_1554, nil
}
func (dm_build_1562 *dm_build_1345) dm_build_1561(dm_build_1563 *DmBlob, dm_build_1564 int, dm_build_1565 []byte) (int, error) {
var dm_build_1566 = 0
var dm_build_1567 = len(dm_build_1565)
var dm_build_1568 = 0
var dm_build_1569 = 0
var dm_build_1570 = 0
var dm_build_1571 = dm_build_1567/Dm_build_127 + 1
var dm_build_1572 byte = 0
var dm_build_1573 byte = 0x01
var dm_build_1574 byte = 0x02
for i := 0; i < dm_build_1571; i++ {
dm_build_1572 = 0
if i == 0 {
dm_build_1572 |= dm_build_1573
}
if i == dm_build_1571-1 {
dm_build_1572 |= dm_build_1574
}
dm_build_1570 = dm_build_1567 - dm_build_1569
if dm_build_1570 > Dm_build_127 {
dm_build_1570 = Dm_build_127
}
setLobData := dm_build_555(dm_build_1562, &dm_build_1563.lob, dm_build_1572, dm_build_1564, dm_build_1565, dm_build_1566, dm_build_1570)
ret, err := dm_build_1562.dm_build_1388(setLobData)
if err != nil {
return 0, err
}
tmp := ret.(int32)
if tmp <= 0 {
return dm_build_1568, nil
} else {
dm_build_1564 += int(tmp)
dm_build_1568 += int(tmp)
dm_build_1569 += dm_build_1570
dm_build_1566 += dm_build_1570
}
}
return dm_build_1568, nil
}
func (dm_build_1576 *dm_build_1345) dm_build_1575(dm_build_1577 *lob, dm_build_1578 int) (int64, error) {
dm_build_1579 := dm_build_421(dm_build_1576, dm_build_1577, dm_build_1578)
dm_build_1580, dm_build_1581 := dm_build_1576.dm_build_1388(dm_build_1579)
if dm_build_1581 != nil {
return dm_build_1577.length, dm_build_1581
}
return dm_build_1580.(int64), nil
}
func (dm_build_1583 *dm_build_1345) dm_build_1582(dm_build_1584 []interface{}, dm_build_1585 []interface{}, dm_build_1586 int) bool {
var dm_build_1587 = false
dm_build_1584[dm_build_1586] = dm_build_1585[dm_build_1586]
if binder, ok := dm_build_1585[dm_build_1586].(iOffRowBinder); ok {
dm_build_1587 = true
dm_build_1584[dm_build_1586] = make([]byte, 0)
var lob lob
if l, ok := binder.getObj().(DmBlob); ok {
lob = l.lob
} else if l, ok := binder.getObj().(DmClob); ok {
lob = l.lob
}
if &lob != nil && lob.canOptimized(dm_build_1583.dm_build_1349) {
dm_build_1584[dm_build_1586] = &lobCtl{lob.buildCtlData()}
dm_build_1587 = false
}
} else {
dm_build_1584[dm_build_1586] = dm_build_1585[dm_build_1586]
}
return dm_build_1587
}
func (dm_build_1589 *dm_build_1345) dm_build_1588(dm_build_1590 *DmStatement, dm_build_1591 parameter, dm_build_1592 int, dm_build_1593 iOffRowBinder) error {
var dm_build_1594 = Dm_build_935()
dm_build_1593.read(dm_build_1594)
var dm_build_1595 = 0
for !dm_build_1593.isReadOver() || dm_build_1594.Dm_build_936() > 0 {
if !dm_build_1593.isReadOver() && dm_build_1594.Dm_build_936() < Dm_build_127 {
dm_build_1593.read(dm_build_1594)
}
if dm_build_1594.Dm_build_936() > Dm_build_127 {
dm_build_1595 = Dm_build_127
} else {
dm_build_1595 = dm_build_1594.Dm_build_936()
}
putData := dm_build_526(dm_build_1589, dm_build_1590, int16(dm_build_1592), dm_build_1594, int32(dm_build_1595))
_, err := dm_build_1589.dm_build_1388(putData)
if err != nil {
return err
}
}
return nil
}
func (dm_build_1597 *dm_build_1345) dm_build_1596() ([]byte, error) {
var dm_build_1598 error
if dm_build_1597.dm_build_1353 == nil {
if dm_build_1597.dm_build_1353, dm_build_1598 = security.NewClientKeyPair(); dm_build_1598 != nil {
return nil, dm_build_1598
}
}
return security.Bn2Bytes(dm_build_1597.dm_build_1353.GetY(), security.DH_KEY_LENGTH), nil
}
func (dm_build_1600 *dm_build_1345) dm_build_1599() (*security.DhKey, error) {
var dm_build_1601 error
if dm_build_1600.dm_build_1353 == nil {
if dm_build_1600.dm_build_1353, dm_build_1601 = security.NewClientKeyPair(); dm_build_1601 != nil {
return nil, dm_build_1601
}
}
return dm_build_1600.dm_build_1353, nil
}
func (dm_build_1603 *dm_build_1345) dm_build_1602(dm_build_1604 int, dm_build_1605 []byte, dm_build_1606 string, dm_build_1607 int) (dm_build_1608 error) {
if dm_build_1604 > 0 && dm_build_1604 < security.MIN_EXTERNAL_CIPHER_ID && dm_build_1605 != nil {
dm_build_1603.dm_build_1350, dm_build_1608 = security.NewSymmCipher(dm_build_1604, dm_build_1605)
} else if dm_build_1604 >= security.MIN_EXTERNAL_CIPHER_ID {
if dm_build_1603.dm_build_1350, dm_build_1608 = security.NewThirdPartCipher(dm_build_1604, dm_build_1605, dm_build_1606, dm_build_1607); dm_build_1608 != nil {
dm_build_1608 = THIRD_PART_CIPHER_INIT_FAILED.addDetailln(dm_build_1608.Error()).throw()
}
}
return
}
func (dm_build_1610 *dm_build_1345) dm_build_1609(dm_build_1611 bool) (dm_build_1612 error) {
if dm_build_1610.dm_build_1347, dm_build_1612 = security.NewTLSFromTCP(dm_build_1610.dm_build_1346, dm_build_1610.dm_build_1349.dmConnector.sslCertPath, dm_build_1610.dm_build_1349.dmConnector.sslKeyPath, dm_build_1610.dm_build_1349.dmConnector.user); dm_build_1612 != nil {
return
}
if !dm_build_1611 {
dm_build_1610.dm_build_1347 = nil
}
return
}
func (dm_build_1614 *dm_build_1345) dm_build_1613(dm_build_1615 dm_build_135) bool {
return dm_build_1615.dm_build_150() != Dm_build_42 && dm_build_1614.dm_build_1349.sslEncrypt == 1
}
Go
1
https://gitee.com/chunanyong/dm.git
git@gitee.com:chunanyong/dm.git
chunanyong
dm
dm
master

搜索帮助