Ai
1 Star 0 Fork 0

彭明/dm

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
a.go 24.45 KB
一键复制 编辑 原始数据 按行查看 历史
彭明 提交于 2024-04-10 13:53 +08:00 . DmDMS first init
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818
/*
* Copyright (c) 2000-2018, 达梦数据库有限公司.
* All rights reserved.
*/
package dm
import (
"bytes"
"crypto/tls"
"fmt"
"gitee.com/sitkcn/dm/security"
"net"
"strconv"
"time"
"unicode/utf8"
)
const (
Dm_build_695 = 8192
Dm_build_696 = 2 * time.Second
)
type dm_build_697 struct {
dm_build_698 *net.TCPConn
dm_build_699 *tls.Conn
dm_build_700 *Dm_build_361
dm_build_701 *DmConnection
dm_build_702 security.Cipher
dm_build_703 bool
dm_build_704 bool
dm_build_705 *security.DhKey
dm_build_706 bool
dm_build_707 string
dm_build_708 bool
}
func dm_build_709(dm_build_710 *DmConnection) (*dm_build_697, error) {
dm_build_711, dm_build_712 := dm_build_714(dm_build_710.dmConnector.host+":"+strconv.Itoa(int(dm_build_710.dmConnector.port)), time.Duration(dm_build_710.dmConnector.socketTimeout)*time.Second)
if dm_build_712 != nil {
return nil, dm_build_712
}
dm_build_713 := dm_build_697{}
dm_build_713.dm_build_698 = dm_build_711
dm_build_713.dm_build_700 = Dm_build_364(Dm_build_976)
dm_build_713.dm_build_701 = dm_build_710
dm_build_713.dm_build_703 = false
dm_build_713.dm_build_704 = false
dm_build_713.dm_build_706 = false
dm_build_713.dm_build_707 = ""
dm_build_713.dm_build_708 = false
dm_build_710.Access = &dm_build_713
return &dm_build_713, nil
}
func dm_build_714(dm_build_715 string, dm_build_716 time.Duration) (*net.TCPConn, error) {
dm_build_717, dm_build_718 := net.DialTimeout("tcp", dm_build_715, dm_build_716)
if dm_build_718 != nil {
return nil, ECGO_COMMUNITION_ERROR.addDetail("\tdial address: " + dm_build_715).throw()
}
if tcpConn, ok := dm_build_717.(*net.TCPConn); ok {
tcpConn.SetKeepAlive(true)
tcpConn.SetKeepAlivePeriod(Dm_build_696)
tcpConn.SetNoDelay(true)
return tcpConn, nil
}
return nil, nil
}
func (dm_build_720 *dm_build_697) dm_build_719(dm_build_721 dm_build_1097) bool {
var dm_build_722 = dm_build_720.dm_build_701.dmConnector.compress
if dm_build_721.dm_build_1112() == Dm_build_1004 || dm_build_722 == Dm_build_1053 {
return false
}
if dm_build_722 == Dm_build_1051 {
return true
} else if dm_build_722 == Dm_build_1052 {
return !dm_build_720.dm_build_701.Local && dm_build_721.dm_build_1110() > Dm_build_1050
}
return false
}
func (dm_build_724 *dm_build_697) dm_build_723(dm_build_725 dm_build_1097) bool {
var dm_build_726 = dm_build_724.dm_build_701.dmConnector.compress
if dm_build_725.dm_build_1112() == Dm_build_1004 || dm_build_726 == Dm_build_1053 {
return false
}
if dm_build_726 == Dm_build_1051 {
return true
} else if dm_build_726 == Dm_build_1052 {
return dm_build_724.dm_build_700.Dm_build_628(Dm_build_1012) == 1
}
return false
}
func (dm_build_728 *dm_build_697) dm_build_727(dm_build_729 dm_build_1097) (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_731 := dm_build_729.dm_build_1110()
if dm_build_731 > 0 {
if dm_build_728.dm_build_719(dm_build_729) {
var retBytes, err = Compress(dm_build_728.dm_build_700, Dm_build_1005, int(dm_build_731), int(dm_build_728.dm_build_701.dmConnector.compressID))
if err != nil {
return err
}
dm_build_728.dm_build_700.Dm_build_375(Dm_build_1005)
dm_build_728.dm_build_700.Dm_build_416(dm_build_731)
dm_build_728.dm_build_700.Dm_build_444(retBytes)
dm_build_729.dm_build_1111(int32(len(retBytes)) + ULINT_SIZE)
dm_build_728.dm_build_700.Dm_build_548(Dm_build_1012, 1)
}
if dm_build_728.dm_build_704 {
dm_build_731 = dm_build_729.dm_build_1110()
var retBytes = dm_build_728.dm_build_702.Encrypt(dm_build_728.dm_build_700.Dm_build_655(Dm_build_1005, int(dm_build_731)), true)
dm_build_728.dm_build_700.Dm_build_375(Dm_build_1005)
dm_build_728.dm_build_700.Dm_build_444(retBytes)
dm_build_729.dm_build_1111(int32(len(retBytes)))
}
}
if dm_build_728.dm_build_700.Dm_build_373() > Dm_build_977 {
return ECGO_MSG_TOO_LONG.throw()
}
dm_build_729.dm_build_1106()
if dm_build_728.dm_build_959(dm_build_729) {
if dm_build_728.dm_build_699 != nil {
dm_build_728.dm_build_700.Dm_build_378(0)
if _, err := dm_build_728.dm_build_700.Dm_build_397(dm_build_728.dm_build_699); err != nil {
return err
}
}
} else {
dm_build_728.dm_build_700.Dm_build_378(0)
if _, err := dm_build_728.dm_build_700.Dm_build_397(dm_build_728.dm_build_698); err != nil {
return err
}
}
return nil
}
func (dm_build_733 *dm_build_697) dm_build_732(dm_build_734 dm_build_1097) (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_736 := int32(0)
if dm_build_733.dm_build_959(dm_build_734) {
if dm_build_733.dm_build_699 != nil {
dm_build_733.dm_build_700.Dm_build_375(0)
if _, err := dm_build_733.dm_build_700.Dm_build_391(dm_build_733.dm_build_699, Dm_build_1005); err != nil {
return err
}
dm_build_736 = dm_build_734.dm_build_1110()
if dm_build_736 > 0 {
if _, err := dm_build_733.dm_build_700.Dm_build_391(dm_build_733.dm_build_699, int(dm_build_736)); err != nil {
return err
}
}
}
} else {
dm_build_733.dm_build_700.Dm_build_375(0)
if _, err := dm_build_733.dm_build_700.Dm_build_391(dm_build_733.dm_build_698, Dm_build_1005); err != nil {
return err
}
dm_build_736 = dm_build_734.dm_build_1110()
if dm_build_736 > 0 {
if _, err := dm_build_733.dm_build_700.Dm_build_391(dm_build_733.dm_build_698, int(dm_build_736)); err != nil {
return err
}
}
}
dm_build_734.dm_build_1107()
dm_build_736 = dm_build_734.dm_build_1110()
if dm_build_736 <= 0 {
return nil
}
if dm_build_733.dm_build_704 {
ebytes := dm_build_733.dm_build_700.Dm_build_655(Dm_build_1005, int(dm_build_736))
bytes, err := dm_build_733.dm_build_702.Decrypt(ebytes, true)
if err != nil {
return err
}
dm_build_733.dm_build_700.Dm_build_375(Dm_build_1005)
dm_build_733.dm_build_700.Dm_build_444(bytes)
dm_build_734.dm_build_1111(int32(len(bytes)))
}
if dm_build_733.dm_build_723(dm_build_734) {
dm_build_736 = dm_build_734.dm_build_1110()
cbytes := dm_build_733.dm_build_700.Dm_build_655(Dm_build_1005+ULINT_SIZE, int(dm_build_736-ULINT_SIZE))
bytes, err := UnCompress(cbytes, int(dm_build_733.dm_build_701.dmConnector.compressID))
if err != nil {
return err
}
dm_build_733.dm_build_700.Dm_build_375(Dm_build_1005)
dm_build_733.dm_build_700.Dm_build_444(bytes)
dm_build_734.dm_build_1111(int32(len(bytes)))
}
return nil
}
func (dm_build_738 *dm_build_697) dm_build_737(dm_build_739 dm_build_1097) (dm_build_740 interface{}, dm_build_741 error) {
dm_build_741 = dm_build_739.dm_build_1101(dm_build_739)
if dm_build_741 != nil {
return nil, dm_build_741
}
dm_build_741 = dm_build_738.dm_build_727(dm_build_739)
if dm_build_741 != nil {
return nil, dm_build_741
}
dm_build_741 = dm_build_738.dm_build_732(dm_build_739)
if dm_build_741 != nil {
return nil, dm_build_741
}
return dm_build_739.dm_build_1105(dm_build_739)
}
func (dm_build_743 *dm_build_697) dm_build_742() (*dm_build_1551, error) {
Dm_build_744 := dm_build_1557(dm_build_743)
_, dm_build_745 := dm_build_743.dm_build_737(Dm_build_744)
if dm_build_745 != nil {
return nil, dm_build_745
}
return Dm_build_744, nil
}
func (dm_build_747 *dm_build_697) dm_build_746() error {
dm_build_748 := dm_build_1418(dm_build_747)
_, dm_build_749 := dm_build_747.dm_build_737(dm_build_748)
if dm_build_749 != nil {
return dm_build_749
}
return nil
}
func (dm_build_751 *dm_build_697) dm_build_750() error {
var dm_build_752 *dm_build_1551
var err error
if dm_build_752, err = dm_build_751.dm_build_742(); err != nil {
return err
}
if dm_build_751.dm_build_701.sslEncrypt == 2 {
if err = dm_build_751.dm_build_955(false); err != nil {
return ECGO_INIT_SSL_FAILED.addDetail("\n" + err.Error()).throw()
}
} else if dm_build_751.dm_build_701.sslEncrypt == 1 {
if err = dm_build_751.dm_build_955(true); err != nil {
return ECGO_INIT_SSL_FAILED.addDetail("\n" + err.Error()).throw()
}
}
if dm_build_751.dm_build_704 || dm_build_751.dm_build_703 {
k, err := dm_build_751.dm_build_945()
if err != nil {
return err
}
sessionKey := security.ComputeSessionKey(k, dm_build_752.Dm_build_1555)
encryptType := dm_build_752.dm_build_1553
hashType := int(dm_build_752.Dm_build_1554)
if encryptType == -1 {
encryptType = security.DES_CFB
}
if hashType == -1 {
hashType = security.MD5
}
err = dm_build_751.dm_build_948(encryptType, sessionKey, dm_build_751.dm_build_701.dmConnector.cipherPath, hashType)
if err != nil {
return err
}
}
if err := dm_build_751.dm_build_746(); err != nil {
return err
}
return nil
}
func (dm_build_755 *dm_build_697) Dm_build_754(dm_build_756 *DmStatement) error {
dm_build_757 := dm_build_1580(dm_build_755, dm_build_756)
_, dm_build_758 := dm_build_755.dm_build_737(dm_build_757)
if dm_build_758 != nil {
return dm_build_758
}
return nil
}
func (dm_build_760 *dm_build_697) Dm_build_759(dm_build_761 int32) error {
dm_build_762 := dm_build_1590(dm_build_760, dm_build_761)
_, dm_build_763 := dm_build_760.dm_build_737(dm_build_762)
if dm_build_763 != nil {
return dm_build_763
}
return nil
}
func (dm_build_765 *dm_build_697) Dm_build_764(dm_build_766 *DmStatement, dm_build_767 bool, dm_build_768 int16) (*execRetInfo, error) {
dm_build_769 := dm_build_1457(dm_build_765, dm_build_766, dm_build_767, dm_build_768)
dm_build_770, dm_build_771 := dm_build_765.dm_build_737(dm_build_769)
if dm_build_771 != nil {
return nil, dm_build_771
}
return dm_build_770.(*execRetInfo), nil
}
func (dm_build_773 *dm_build_697) Dm_build_772(dm_build_774 *DmStatement, dm_build_775 int16) (*execRetInfo, error) {
return dm_build_773.Dm_build_764(dm_build_774, false, Dm_build_1057)
}
func (dm_build_777 *dm_build_697) Dm_build_776(dm_build_778 *DmStatement, dm_build_779 []OptParameter) (*execRetInfo, error) {
dm_build_780, dm_build_781 := dm_build_777.dm_build_737(dm_build_1200(dm_build_777, dm_build_778, dm_build_779))
if dm_build_781 != nil {
return nil, dm_build_781
}
return dm_build_780.(*execRetInfo), nil
}
func (dm_build_783 *dm_build_697) Dm_build_782(dm_build_784 *DmStatement, dm_build_785 int16) (*execRetInfo, error) {
return dm_build_783.Dm_build_764(dm_build_784, true, dm_build_785)
}
func (dm_build_787 *dm_build_697) Dm_build_786(dm_build_788 *DmStatement, dm_build_789 [][]interface{}) (*execRetInfo, error) {
dm_build_790 := dm_build_1232(dm_build_787, dm_build_788, dm_build_789)
dm_build_791, dm_build_792 := dm_build_787.dm_build_737(dm_build_790)
if dm_build_792 != nil {
return nil, dm_build_792
}
return dm_build_791.(*execRetInfo), nil
}
func (dm_build_794 *dm_build_697) Dm_build_793(dm_build_795 *DmStatement, dm_build_796 [][]interface{}, dm_build_797 bool) (*execRetInfo, error) {
var dm_build_798, dm_build_799 = 0, 0
var dm_build_800 = len(dm_build_796)
var dm_build_801 [][]interface{}
var dm_build_802 = NewExceInfo()
dm_build_802.updateCounts = make([]int64, dm_build_800)
var dm_build_803 = false
for dm_build_798 < dm_build_800 {
for dm_build_799 = dm_build_798; dm_build_799 < dm_build_800; dm_build_799++ {
paramData := dm_build_796[dm_build_799]
bindData := make([]interface{}, dm_build_795.paramCount)
dm_build_803 = false
for icol := 0; icol < int(dm_build_795.paramCount); icol++ {
if dm_build_795.bindParams[icol].ioType == IO_TYPE_OUT {
continue
}
if dm_build_794.dm_build_928(bindData, paramData, icol) {
dm_build_803 = true
break
}
}
if dm_build_803 {
break
}
dm_build_801 = append(dm_build_801, bindData)
}
if dm_build_799 != dm_build_798 {
tmpExecInfo, err := dm_build_794.Dm_build_786(dm_build_795, dm_build_801)
if err != nil {
return nil, err
}
dm_build_801 = dm_build_801[0:0]
dm_build_802.union(tmpExecInfo, dm_build_798, dm_build_799-dm_build_798)
}
if dm_build_799 < dm_build_800 {
tmpExecInfo, err := dm_build_794.Dm_build_804(dm_build_795, dm_build_796[dm_build_799], dm_build_797)
if err != nil {
return nil, err
}
dm_build_797 = true
dm_build_802.union(tmpExecInfo, dm_build_799, 1)
}
dm_build_798 = dm_build_799 + 1
}
for _, i := range dm_build_802.updateCounts {
if i > 0 {
dm_build_802.updateCount += i
}
}
return dm_build_802, nil
}
func (dm_build_805 *dm_build_697) Dm_build_804(dm_build_806 *DmStatement, dm_build_807 []interface{}, dm_build_808 bool) (*execRetInfo, error) {
var dm_build_809 = make([]interface{}, dm_build_806.paramCount)
for icol := 0; icol < int(dm_build_806.paramCount); icol++ {
if dm_build_806.bindParams[icol].ioType == IO_TYPE_OUT {
continue
}
if dm_build_805.dm_build_928(dm_build_809, dm_build_807, icol) {
if !dm_build_808 {
preExecute := dm_build_1446(dm_build_805, dm_build_806, dm_build_806.bindParams)
dm_build_805.dm_build_737(preExecute)
dm_build_808 = true
}
dm_build_805.dm_build_934(dm_build_806, dm_build_806.bindParams[icol], icol, dm_build_807[icol].(iOffRowBinder))
dm_build_809[icol] = ParamDataEnum_OFF_ROW
}
}
var dm_build_810 = make([][]interface{}, 1, 1)
dm_build_810[0] = dm_build_809
dm_build_811 := dm_build_1232(dm_build_805, dm_build_806, dm_build_810)
dm_build_812, dm_build_813 := dm_build_805.dm_build_737(dm_build_811)
if dm_build_813 != nil {
return nil, dm_build_813
}
return dm_build_812.(*execRetInfo), nil
}
func (dm_build_815 *dm_build_697) Dm_build_814(dm_build_816 *DmStatement, dm_build_817 int16) (*execRetInfo, error) {
dm_build_818 := dm_build_1433(dm_build_815, dm_build_816, dm_build_817)
dm_build_819, dm_build_820 := dm_build_815.dm_build_737(dm_build_818)
if dm_build_820 != nil {
return nil, dm_build_820
}
return dm_build_819.(*execRetInfo), nil
}
func (dm_build_822 *dm_build_697) Dm_build_821(dm_build_823 *innerRows, dm_build_824 int64) (*execRetInfo, error) {
dm_build_825 := dm_build_1338(dm_build_822, dm_build_823, dm_build_824, INT64_MAX)
dm_build_826, dm_build_827 := dm_build_822.dm_build_737(dm_build_825)
if dm_build_827 != nil {
return nil, dm_build_827
}
return dm_build_826.(*execRetInfo), nil
}
func (dm_build_829 *dm_build_697) Commit() error {
dm_build_830 := dm_build_1185(dm_build_829)
_, dm_build_831 := dm_build_829.dm_build_737(dm_build_830)
if dm_build_831 != nil {
return dm_build_831
}
return nil
}
func (dm_build_833 *dm_build_697) Rollback() error {
dm_build_834 := dm_build_1495(dm_build_833)
_, dm_build_835 := dm_build_833.dm_build_737(dm_build_834)
if dm_build_835 != nil {
return dm_build_835
}
return nil
}
func (dm_build_837 *dm_build_697) Dm_build_836(dm_build_838 *DmConnection) error {
dm_build_839 := dm_build_1500(dm_build_837, dm_build_838.IsoLevel)
_, dm_build_840 := dm_build_837.dm_build_737(dm_build_839)
if dm_build_840 != nil {
return dm_build_840
}
return nil
}
func (dm_build_842 *dm_build_697) Dm_build_841(dm_build_843 *DmStatement, dm_build_844 string) error {
dm_build_845 := dm_build_1190(dm_build_842, dm_build_843, dm_build_844)
_, dm_build_846 := dm_build_842.dm_build_737(dm_build_845)
if dm_build_846 != nil {
return dm_build_846
}
return nil
}
func (dm_build_848 *dm_build_697) Dm_build_847(dm_build_849 []uint32) ([]int64, error) {
dm_build_850 := dm_build_1598(dm_build_848, dm_build_849)
dm_build_851, dm_build_852 := dm_build_848.dm_build_737(dm_build_850)
if dm_build_852 != nil {
return nil, dm_build_852
}
return dm_build_851.([]int64), nil
}
func (dm_build_854 *dm_build_697) Close() error {
if dm_build_854.dm_build_708 {
return nil
}
dm_build_855 := dm_build_854.dm_build_698.Close()
if dm_build_855 != nil {
return dm_build_855
}
dm_build_854.dm_build_701 = nil
dm_build_854.dm_build_708 = true
return nil
}
func (dm_build_857 *dm_build_697) dm_build_856(dm_build_858 *lob) (int64, error) {
dm_build_859 := dm_build_1369(dm_build_857, dm_build_858)
dm_build_860, dm_build_861 := dm_build_857.dm_build_737(dm_build_859)
if dm_build_861 != nil {
return 0, dm_build_861
}
return dm_build_860.(int64), nil
}
func (dm_build_863 *dm_build_697) dm_build_862(dm_build_864 *lob, dm_build_865 int32, dm_build_866 int32) ([]byte, error) {
dm_build_867 := dm_build_1356(dm_build_863, dm_build_864, int(dm_build_865), int(dm_build_866))
dm_build_868, dm_build_869 := dm_build_863.dm_build_737(dm_build_867)
if dm_build_869 != nil {
return nil, dm_build_869
}
return dm_build_868.([]byte), nil
}
func (dm_build_871 *dm_build_697) dm_build_870(dm_build_872 *DmBlob, dm_build_873 int32, dm_build_874 int32) ([]byte, error) {
var dm_build_875 = make([]byte, dm_build_874)
var dm_build_876 int32 = 0
var dm_build_877 int32 = 0
var dm_build_878 []byte
var dm_build_879 error
for dm_build_876 < dm_build_874 {
dm_build_877 = dm_build_874 - dm_build_876
if dm_build_877 > Dm_build_1090 {
dm_build_877 = Dm_build_1090
}
dm_build_878, dm_build_879 = dm_build_871.dm_build_862(&dm_build_872.lob, dm_build_873, dm_build_877)
if dm_build_879 != nil {
return nil, dm_build_879
}
if dm_build_878 == nil || len(dm_build_878) == 0 {
break
}
Dm_build_1.Dm_build_57(dm_build_875, int(dm_build_876), dm_build_878, 0, len(dm_build_878))
dm_build_876 += int32(len(dm_build_878))
dm_build_873 += int32(len(dm_build_878))
if dm_build_872.readOver {
break
}
}
return dm_build_875, nil
}
func (dm_build_881 *dm_build_697) dm_build_880(dm_build_882 *DmClob, dm_build_883 int32, dm_build_884 int32) (string, error) {
var dm_build_885 bytes.Buffer
var dm_build_886 int32 = 0
var dm_build_887 int32 = 0
var dm_build_888 []byte
var dm_build_889 string
var dm_build_890 error
for dm_build_886 < dm_build_884 {
dm_build_887 = dm_build_884 - dm_build_886
if dm_build_887 > Dm_build_1090/2 {
dm_build_887 = Dm_build_1090 / 2
}
dm_build_888, dm_build_890 = dm_build_881.dm_build_862(&dm_build_882.lob, dm_build_883, dm_build_887)
if dm_build_890 != nil {
return "", dm_build_890
}
if dm_build_888 == nil || len(dm_build_888) == 0 {
break
}
dm_build_889 = Dm_build_1.Dm_build_158(dm_build_888, 0, len(dm_build_888), dm_build_882.serverEncoding, dm_build_881.dm_build_701)
dm_build_885.WriteString(dm_build_889)
strLen := utf8.RuneCountInString(dm_build_889)
dm_build_886 += int32(strLen)
dm_build_883 += int32(strLen)
if dm_build_882.readOver {
break
}
}
return dm_build_885.String(), nil
}
func (dm_build_892 *dm_build_697) dm_build_891(dm_build_893 *DmClob, dm_build_894 int, dm_build_895 string, dm_build_896 string) (int, error) {
var dm_build_897 = Dm_build_1.Dm_build_217(dm_build_895, dm_build_896, dm_build_892.dm_build_701)
var dm_build_898 = 0
var dm_build_899 = len(dm_build_897)
var dm_build_900 = 0
var dm_build_901 = 0
var dm_build_902 = 0
var dm_build_903 = dm_build_899/Dm_build_1089 + 1
var dm_build_904 byte = 0
var dm_build_905 byte = 0x01
var dm_build_906 byte = 0x02
for i := 0; i < dm_build_903; i++ {
dm_build_904 = 0
if i == 0 {
dm_build_904 |= dm_build_905
}
if i == dm_build_903-1 {
dm_build_904 |= dm_build_906
}
dm_build_902 = dm_build_899 - dm_build_901
if dm_build_902 > Dm_build_1089 {
dm_build_902 = Dm_build_1089
}
setLobData := dm_build_1514(dm_build_892, &dm_build_893.lob, dm_build_904, dm_build_894, dm_build_897, dm_build_898, dm_build_902)
ret, err := dm_build_892.dm_build_737(setLobData)
if err != nil {
return 0, err
}
tmp := ret.(int32)
if err != nil {
return -1, err
}
if tmp <= 0 {
return dm_build_900, nil
} else {
dm_build_894 += int(tmp)
dm_build_900 += int(tmp)
dm_build_901 += dm_build_902
dm_build_898 += dm_build_902
}
}
return dm_build_900, nil
}
func (dm_build_908 *dm_build_697) dm_build_907(dm_build_909 *DmBlob, dm_build_910 int, dm_build_911 []byte) (int, error) {
var dm_build_912 = 0
var dm_build_913 = len(dm_build_911)
var dm_build_914 = 0
var dm_build_915 = 0
var dm_build_916 = 0
var dm_build_917 = dm_build_913/Dm_build_1089 + 1
var dm_build_918 byte = 0
var dm_build_919 byte = 0x01
var dm_build_920 byte = 0x02
for i := 0; i < dm_build_917; i++ {
dm_build_918 = 0
if i == 0 {
dm_build_918 |= dm_build_919
}
if i == dm_build_917-1 {
dm_build_918 |= dm_build_920
}
dm_build_916 = dm_build_913 - dm_build_915
if dm_build_916 > Dm_build_1089 {
dm_build_916 = Dm_build_1089
}
setLobData := dm_build_1514(dm_build_908, &dm_build_909.lob, dm_build_918, dm_build_910, dm_build_911, dm_build_912, dm_build_916)
ret, err := dm_build_908.dm_build_737(setLobData)
if err != nil {
return 0, err
}
tmp := ret.(int32)
if tmp <= 0 {
return dm_build_914, nil
} else {
dm_build_910 += int(tmp)
dm_build_914 += int(tmp)
dm_build_915 += dm_build_916
dm_build_912 += dm_build_916
}
}
return dm_build_914, nil
}
func (dm_build_922 *dm_build_697) dm_build_921(dm_build_923 *lob, dm_build_924 int) (int64, error) {
dm_build_925 := dm_build_1380(dm_build_922, dm_build_923, dm_build_924)
dm_build_926, dm_build_927 := dm_build_922.dm_build_737(dm_build_925)
if dm_build_927 != nil {
return dm_build_923.length, dm_build_927
}
return dm_build_926.(int64), nil
}
func (dm_build_929 *dm_build_697) dm_build_928(dm_build_930 []interface{}, dm_build_931 []interface{}, dm_build_932 int) bool {
var dm_build_933 = false
dm_build_930[dm_build_932] = dm_build_931[dm_build_932]
if binder, ok := dm_build_931[dm_build_932].(iOffRowBinder); ok {
dm_build_933 = true
dm_build_930[dm_build_932] = 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_929.dm_build_701) {
dm_build_930[dm_build_932] = &lobCtl{lob.buildCtlData()}
dm_build_933 = false
}
} else {
dm_build_930[dm_build_932] = dm_build_931[dm_build_932]
}
return dm_build_933
}
func (dm_build_935 *dm_build_697) dm_build_934(dm_build_936 *DmStatement, dm_build_937 parameter, dm_build_938 int, dm_build_939 iOffRowBinder) error {
var dm_build_940 = Dm_build_287()
dm_build_939.read(dm_build_940)
var dm_build_941 = 0
for !dm_build_939.isReadOver() || dm_build_940.Dm_build_288() > 0 {
if !dm_build_939.isReadOver() && dm_build_940.Dm_build_288() < Dm_build_1089 {
dm_build_939.read(dm_build_940)
}
if dm_build_940.Dm_build_288() > Dm_build_1089 {
dm_build_941 = Dm_build_1089
} else {
dm_build_941 = dm_build_940.Dm_build_288()
}
putData := dm_build_1485(dm_build_935, dm_build_936, int16(dm_build_938), dm_build_940, int32(dm_build_941))
_, err := dm_build_935.dm_build_737(putData)
if err != nil {
return err
}
}
return nil
}
func (dm_build_943 *dm_build_697) dm_build_942() ([]byte, error) {
var dm_build_944 error
if dm_build_943.dm_build_705 == nil {
if dm_build_943.dm_build_705, dm_build_944 = security.NewClientKeyPair(); dm_build_944 != nil {
return nil, dm_build_944
}
}
return security.Bn2Bytes(dm_build_943.dm_build_705.GetY(), security.DH_KEY_LENGTH), nil
}
func (dm_build_946 *dm_build_697) dm_build_945() (*security.DhKey, error) {
var dm_build_947 error
if dm_build_946.dm_build_705 == nil {
if dm_build_946.dm_build_705, dm_build_947 = security.NewClientKeyPair(); dm_build_947 != nil {
return nil, dm_build_947
}
}
return dm_build_946.dm_build_705, nil
}
func (dm_build_949 *dm_build_697) dm_build_948(dm_build_950 int, dm_build_951 []byte, dm_build_952 string, dm_build_953 int) (dm_build_954 error) {
if dm_build_950 > 0 && dm_build_950 < security.MIN_EXTERNAL_CIPHER_ID && dm_build_951 != nil {
dm_build_949.dm_build_702, dm_build_954 = security.NewSymmCipher(dm_build_950, dm_build_951)
} else if dm_build_950 >= security.MIN_EXTERNAL_CIPHER_ID {
if dm_build_949.dm_build_702, dm_build_954 = security.NewThirdPartCipher(dm_build_950, dm_build_951, dm_build_952, dm_build_953); dm_build_954 != nil {
dm_build_954 = THIRD_PART_CIPHER_INIT_FAILED.addDetailln(dm_build_954.Error()).throw()
}
}
return
}
func (dm_build_956 *dm_build_697) dm_build_955(dm_build_957 bool) (dm_build_958 error) {
if dm_build_956.dm_build_699, dm_build_958 = security.NewTLSFromTCP(dm_build_956.dm_build_698, dm_build_956.dm_build_701.dmConnector.sslCertPath, dm_build_956.dm_build_701.dmConnector.sslKeyPath, dm_build_956.dm_build_701.dmConnector.user); dm_build_958 != nil {
return
}
if !dm_build_957 {
dm_build_956.dm_build_699 = nil
}
return
}
func (dm_build_960 *dm_build_697) dm_build_959(dm_build_961 dm_build_1097) bool {
return dm_build_961.dm_build_1112() != Dm_build_1004 && dm_build_960.dm_build_701.sslEncrypt == 1
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Go
1
https://gitee.com/sitkcn/dm.git
git@gitee.com:sitkcn/dm.git
sitkcn
dm
dm
v0.0.1

搜索帮助