github.com/wanlay/gorm-dm8@v1.0.5/dmr/a.go (about)

     1  /*
     2   * Copyright (c) 2000-2018, 达梦数据库有限公司.
     3   * All rights reserved.
     4   */
     5  package dmr
     6  
     7  import (
     8  	"bytes"
     9  	"crypto/tls"
    10  	"net"
    11  	"strconv"
    12  	"time"
    13  
    14  	"github.com/wanlay/gorm-dm8/dmr/security"
    15  )
    16  
    17  const (
    18  	Dm_build_330 = 8192
    19  	Dm_build_331 = 2 * time.Second
    20  )
    21  
    22  type dm_build_332 struct {
    23  	dm_build_333 *net.TCPConn
    24  	dm_build_334 *tls.Conn
    25  	dm_build_335 *Dm_build_0
    26  	dm_build_336 *DmConnection
    27  	dm_build_337 security.Cipher
    28  	dm_build_338 bool
    29  	dm_build_339 bool
    30  	dm_build_340 *security.DhKey
    31  
    32  	dm_build_341 bool
    33  	dm_build_342 string
    34  	dm_build_343 bool
    35  }
    36  
    37  func dm_build_344(dm_build_345 *DmConnection) (*dm_build_332, error) {
    38  	dm_build_346, dm_build_347 := dm_build_349(dm_build_345.dmConnector.host+":"+strconv.Itoa(int(dm_build_345.dmConnector.port)), time.Duration(dm_build_345.dmConnector.socketTimeout)*time.Second)
    39  	if dm_build_347 != nil {
    40  		return nil, dm_build_347
    41  	}
    42  
    43  	dm_build_348 := dm_build_332{}
    44  	dm_build_348.dm_build_333 = dm_build_346
    45  	dm_build_348.dm_build_335 = Dm_build_3(Dm_build_604)
    46  	dm_build_348.dm_build_336 = dm_build_345
    47  	dm_build_348.dm_build_338 = false
    48  	dm_build_348.dm_build_339 = false
    49  	dm_build_348.dm_build_341 = false
    50  	dm_build_348.dm_build_342 = ""
    51  	dm_build_348.dm_build_343 = false
    52  	dm_build_345.Access = &dm_build_348
    53  
    54  	return &dm_build_348, nil
    55  }
    56  
    57  func dm_build_349(dm_build_350 string, dm_build_351 time.Duration) (*net.TCPConn, error) {
    58  	dm_build_352, dm_build_353 := net.DialTimeout("tcp", dm_build_350, dm_build_351)
    59  	if dm_build_353 != nil {
    60  		return nil, ECGO_COMMUNITION_ERROR.addDetail("\tdial address: " + dm_build_350).throw()
    61  	}
    62  
    63  	if tcpConn, ok := dm_build_352.(*net.TCPConn); ok {
    64  
    65  		tcpConn.SetKeepAlive(true)
    66  		tcpConn.SetKeepAlivePeriod(Dm_build_331)
    67  		tcpConn.SetNoDelay(true)
    68  
    69  		return tcpConn, nil
    70  	}
    71  
    72  	return nil, nil
    73  }
    74  
    75  func (dm_build_355 *dm_build_332) dm_build_354(dm_build_356 dm_build_725) bool {
    76  	var dm_build_357 = dm_build_355.dm_build_336.dmConnector.compress
    77  	if dm_build_356.dm_build_740() == Dm_build_632 || dm_build_357 == Dm_build_681 {
    78  		return false
    79  	}
    80  
    81  	if dm_build_357 == Dm_build_679 {
    82  		return true
    83  	} else if dm_build_357 == Dm_build_680 {
    84  		return !dm_build_355.dm_build_336.Local && dm_build_356.dm_build_738() > Dm_build_678
    85  	}
    86  
    87  	return false
    88  }
    89  
    90  func (dm_build_359 *dm_build_332) dm_build_358(dm_build_360 dm_build_725) bool {
    91  	var dm_build_361 = dm_build_359.dm_build_336.dmConnector.compress
    92  	if dm_build_360.dm_build_740() == Dm_build_632 || dm_build_361 == Dm_build_681 {
    93  		return false
    94  	}
    95  
    96  	if dm_build_361 == Dm_build_679 {
    97  		return true
    98  	} else if dm_build_361 == Dm_build_680 {
    99  		return dm_build_359.dm_build_335.Dm_build_263(Dm_build_640) == 1
   100  	}
   101  
   102  	return false
   103  }
   104  
   105  func (dm_build_363 *dm_build_332) dm_build_362(dm_build_364 dm_build_725) (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_366 := dm_build_364.dm_build_738()
   117  
   118  	if dm_build_366 > 0 {
   119  
   120  		if dm_build_363.dm_build_354(dm_build_364) {
   121  			var retBytes, err = Compress(dm_build_363.dm_build_335, Dm_build_633, int(dm_build_366), int(dm_build_363.dm_build_336.dmConnector.compressID))
   122  			if err != nil {
   123  				return err
   124  			}
   125  
   126  			dm_build_363.dm_build_335.Dm_build_14(Dm_build_633)
   127  
   128  			dm_build_363.dm_build_335.Dm_build_51(dm_build_366)
   129  
   130  			dm_build_363.dm_build_335.Dm_build_79(retBytes)
   131  
   132  			dm_build_364.dm_build_739(int32(len(retBytes)) + ULINT_SIZE)
   133  
   134  			dm_build_363.dm_build_335.Dm_build_183(Dm_build_640, 1)
   135  		}
   136  
   137  		if dm_build_363.dm_build_339 {
   138  			dm_build_366 = dm_build_364.dm_build_738()
   139  			var retBytes = dm_build_363.dm_build_337.Encrypt(dm_build_363.dm_build_335.Dm_build_290(Dm_build_633, int(dm_build_366)), true)
   140  
   141  			dm_build_363.dm_build_335.Dm_build_14(Dm_build_633)
   142  
   143  			dm_build_363.dm_build_335.Dm_build_79(retBytes)
   144  
   145  			dm_build_364.dm_build_739(int32(len(retBytes)))
   146  		}
   147  	}
   148  
   149  	if dm_build_363.dm_build_335.Dm_build_12() > Dm_build_605 {
   150  		return ECGO_MSG_TOO_LONG.throw()
   151  	}
   152  
   153  	dm_build_364.dm_build_734()
   154  	if dm_build_363.dm_build_594(dm_build_364) {
   155  		if dm_build_363.dm_build_334 != nil {
   156  			dm_build_363.dm_build_335.Dm_build_17(0)
   157  			dm_build_363.dm_build_335.Dm_build_36(dm_build_363.dm_build_334)
   158  		}
   159  	} else {
   160  		dm_build_363.dm_build_335.Dm_build_17(0)
   161  		dm_build_363.dm_build_335.Dm_build_36(dm_build_363.dm_build_333)
   162  	}
   163  	return nil
   164  }
   165  
   166  func (dm_build_368 *dm_build_332) dm_build_367(dm_build_369 dm_build_725) (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_371 := int32(0)
   178  	if dm_build_368.dm_build_594(dm_build_369) {
   179  		if dm_build_368.dm_build_334 != nil {
   180  			dm_build_368.dm_build_335.Dm_build_14(0)
   181  			dm_build_368.dm_build_335.Dm_build_30(dm_build_368.dm_build_334, Dm_build_633)
   182  			dm_build_371 = dm_build_369.dm_build_738()
   183  			if dm_build_371 > 0 {
   184  				dm_build_368.dm_build_335.Dm_build_30(dm_build_368.dm_build_334, int(dm_build_371))
   185  			}
   186  		}
   187  	} else {
   188  
   189  		dm_build_368.dm_build_335.Dm_build_14(0)
   190  		dm_build_368.dm_build_335.Dm_build_30(dm_build_368.dm_build_333, Dm_build_633)
   191  		dm_build_371 = dm_build_369.dm_build_738()
   192  
   193  		if dm_build_371 > 0 {
   194  			dm_build_368.dm_build_335.Dm_build_30(dm_build_368.dm_build_333, int(dm_build_371))
   195  		}
   196  	}
   197  
   198  	dm_build_369.dm_build_735()
   199  
   200  	dm_build_371 = dm_build_369.dm_build_738()
   201  	if dm_build_371 <= 0 {
   202  		return nil
   203  	}
   204  
   205  	if dm_build_368.dm_build_339 {
   206  		ebytes := dm_build_368.dm_build_335.Dm_build_290(Dm_build_633, int(dm_build_371))
   207  		bytes, err := dm_build_368.dm_build_337.Decrypt(ebytes, true)
   208  		if err != nil {
   209  			return err
   210  		}
   211  		dm_build_368.dm_build_335.Dm_build_14(Dm_build_633)
   212  		dm_build_368.dm_build_335.Dm_build_79(bytes)
   213  		dm_build_369.dm_build_739(int32(len(bytes)))
   214  	}
   215  
   216  	if dm_build_368.dm_build_358(dm_build_369) {
   217  
   218  		dm_build_371 = dm_build_369.dm_build_738()
   219  		cbytes := dm_build_368.dm_build_335.Dm_build_290(Dm_build_633+ULINT_SIZE, int(dm_build_371-ULINT_SIZE))
   220  		bytes, err := UnCompress(cbytes, int(dm_build_368.dm_build_336.dmConnector.compressID))
   221  		if err != nil {
   222  			return err
   223  		}
   224  		dm_build_368.dm_build_335.Dm_build_14(Dm_build_633)
   225  		dm_build_368.dm_build_335.Dm_build_79(bytes)
   226  		dm_build_369.dm_build_739(int32(len(bytes)))
   227  	}
   228  	return nil
   229  }
   230  
   231  func (dm_build_373 *dm_build_332) dm_build_372(dm_build_374 dm_build_725) (dm_build_375 interface{}, dm_build_376 error) {
   232  	dm_build_376 = dm_build_374.dm_build_729(dm_build_374)
   233  	if dm_build_376 != nil {
   234  		return nil, dm_build_376
   235  	}
   236  
   237  	dm_build_376 = dm_build_373.dm_build_362(dm_build_374)
   238  	if dm_build_376 != nil {
   239  		return nil, dm_build_376
   240  	}
   241  
   242  	dm_build_376 = dm_build_373.dm_build_367(dm_build_374)
   243  	if dm_build_376 != nil {
   244  		return nil, dm_build_376
   245  	}
   246  
   247  	return dm_build_374.dm_build_733(dm_build_374)
   248  }
   249  
   250  func (dm_build_378 *dm_build_332) dm_build_377() (*dm_build_1162, error) {
   251  
   252  	Dm_build_379 := dm_build_1168(dm_build_378)
   253  	_, dm_build_380 := dm_build_378.dm_build_372(Dm_build_379)
   254  	if dm_build_380 != nil {
   255  		return nil, dm_build_380
   256  	}
   257  
   258  	return Dm_build_379, nil
   259  }
   260  
   261  func (dm_build_382 *dm_build_332) dm_build_381() error {
   262  
   263  	dm_build_383 := dm_build_1030(dm_build_382)
   264  	_, dm_build_384 := dm_build_382.dm_build_372(dm_build_383)
   265  	if dm_build_384 != nil {
   266  		return dm_build_384
   267  	}
   268  
   269  	return nil
   270  }
   271  
   272  func (dm_build_386 *dm_build_332) dm_build_385() error {
   273  
   274  	var dm_build_387 *dm_build_1162
   275  	var err error
   276  	if dm_build_387, err = dm_build_386.dm_build_377(); err != nil {
   277  		return err
   278  	}
   279  
   280  	if dm_build_386.dm_build_336.sslEncrypt == 2 {
   281  		if err = dm_build_386.dm_build_590(false); err != nil {
   282  			return ECGO_INIT_SSL_FAILED.addDetail("\n" + err.Error()).throw()
   283  		}
   284  	} else if dm_build_386.dm_build_336.sslEncrypt == 1 {
   285  		if err = dm_build_386.dm_build_590(true); err != nil {
   286  			return ECGO_INIT_SSL_FAILED.addDetail("\n" + err.Error()).throw()
   287  		}
   288  	}
   289  
   290  	if dm_build_386.dm_build_339 || dm_build_386.dm_build_338 {
   291  		k, err := dm_build_386.dm_build_580()
   292  		if err != nil {
   293  			return err
   294  		}
   295  		sessionKey := security.ComputeSessionKey(k, dm_build_387.Dm_build_1166)
   296  		encryptType := dm_build_387.dm_build_1164
   297  		hashType := int(dm_build_387.Dm_build_1165)
   298  		if encryptType == -1 {
   299  			encryptType = security.DES_CFB
   300  		}
   301  		if hashType == -1 {
   302  			hashType = security.MD5
   303  		}
   304  		err = dm_build_386.dm_build_583(encryptType, sessionKey, dm_build_386.dm_build_336.dmConnector.cipherPath, hashType)
   305  		if err != nil {
   306  			return err
   307  		}
   308  	}
   309  
   310  	if err := dm_build_386.dm_build_381(); err != nil {
   311  		return err
   312  	}
   313  	return nil
   314  }
   315  
   316  func (dm_build_390 *dm_build_332) Dm_build_389(dm_build_391 *DmStatement) error {
   317  	dm_build_392 := dm_build_1191(dm_build_390, dm_build_391)
   318  	_, dm_build_393 := dm_build_390.dm_build_372(dm_build_392)
   319  	if dm_build_393 != nil {
   320  		return dm_build_393
   321  	}
   322  
   323  	return nil
   324  }
   325  
   326  func (dm_build_395 *dm_build_332) Dm_build_394(dm_build_396 int32) error {
   327  	dm_build_397 := dm_build_1201(dm_build_395, dm_build_396)
   328  	_, dm_build_398 := dm_build_395.dm_build_372(dm_build_397)
   329  	if dm_build_398 != nil {
   330  		return dm_build_398
   331  	}
   332  
   333  	return nil
   334  }
   335  
   336  func (dm_build_400 *dm_build_332) Dm_build_399(dm_build_401 *DmStatement, dm_build_402 bool, dm_build_403 int16) (*execRetInfo, error) {
   337  	dm_build_404 := dm_build_1068(dm_build_400, dm_build_401, dm_build_402, dm_build_403)
   338  	dm_build_405, dm_build_406 := dm_build_400.dm_build_372(dm_build_404)
   339  	if dm_build_406 != nil {
   340  		return nil, dm_build_406
   341  	}
   342  	return dm_build_405.(*execRetInfo), nil
   343  }
   344  
   345  func (dm_build_408 *dm_build_332) Dm_build_407(dm_build_409 *DmStatement, dm_build_410 int16) (*execRetInfo, error) {
   346  	return dm_build_408.Dm_build_399(dm_build_409, false, Dm_build_685)
   347  }
   348  
   349  func (dm_build_412 *dm_build_332) Dm_build_411(dm_build_413 *DmStatement, dm_build_414 []OptParameter) (*execRetInfo, error) {
   350  	dm_build_415, dm_build_416 := dm_build_412.dm_build_372(dm_build_827(dm_build_412, dm_build_413, dm_build_414))
   351  	if dm_build_416 != nil {
   352  		return nil, dm_build_416
   353  	}
   354  
   355  	return dm_build_415.(*execRetInfo), nil
   356  }
   357  
   358  func (dm_build_418 *dm_build_332) Dm_build_417(dm_build_419 *DmStatement, dm_build_420 int16) (*execRetInfo, error) {
   359  	return dm_build_418.Dm_build_399(dm_build_419, true, dm_build_420)
   360  }
   361  
   362  func (dm_build_422 *dm_build_332) Dm_build_421(dm_build_423 *DmStatement, dm_build_424 [][]interface{}) (*execRetInfo, error) {
   363  	dm_build_425 := dm_build_850(dm_build_422, dm_build_423, dm_build_424)
   364  	dm_build_426, dm_build_427 := dm_build_422.dm_build_372(dm_build_425)
   365  	if dm_build_427 != nil {
   366  		return nil, dm_build_427
   367  	}
   368  	return dm_build_426.(*execRetInfo), nil
   369  }
   370  
   371  func (dm_build_429 *dm_build_332) Dm_build_428(dm_build_430 *DmStatement, dm_build_431 [][]interface{}, dm_build_432 bool) (*execRetInfo, error) {
   372  	var dm_build_433, dm_build_434 = 0, 0
   373  	var dm_build_435 = len(dm_build_431)
   374  	var dm_build_436 [][]interface{}
   375  	var dm_build_437 = NewExceInfo()
   376  	dm_build_437.updateCounts = make([]int64, dm_build_435)
   377  	var dm_build_438 = false
   378  	for dm_build_433 < dm_build_435 {
   379  		for dm_build_434 = dm_build_433; dm_build_434 < dm_build_435; dm_build_434++ {
   380  			paramData := dm_build_431[dm_build_434]
   381  			bindData := make([]interface{}, dm_build_430.paramCount)
   382  			dm_build_438 = false
   383  			for icol := 0; icol < int(dm_build_430.paramCount); icol++ {
   384  				if dm_build_430.params[icol].ioType == IO_TYPE_OUT {
   385  					continue
   386  				}
   387  				if dm_build_429.dm_build_563(bindData, paramData, icol) {
   388  					dm_build_438 = true
   389  					break
   390  				}
   391  			}
   392  
   393  			if dm_build_438 {
   394  				break
   395  			}
   396  			dm_build_436 = append(dm_build_436, bindData)
   397  		}
   398  
   399  		if dm_build_434 != dm_build_433 {
   400  			tmpExecInfo, err := dm_build_429.Dm_build_421(dm_build_430, dm_build_436)
   401  			if err != nil {
   402  				return nil, err
   403  			}
   404  			dm_build_436 = dm_build_436[0:0]
   405  			dm_build_437.union(tmpExecInfo, dm_build_433, dm_build_434-dm_build_433)
   406  		}
   407  
   408  		if dm_build_434 < dm_build_435 {
   409  			tmpExecInfo, err := dm_build_429.Dm_build_439(dm_build_430, dm_build_431[dm_build_434], dm_build_432)
   410  			if err != nil {
   411  				return nil, err
   412  			}
   413  
   414  			dm_build_432 = true
   415  			dm_build_437.union(tmpExecInfo, dm_build_434, 1)
   416  		}
   417  
   418  		dm_build_433 = dm_build_434 + 1
   419  	}
   420  	for _, i := range dm_build_437.updateCounts {
   421  		if i > 0 {
   422  			dm_build_437.updateCount += i
   423  		}
   424  	}
   425  	return dm_build_437, nil
   426  }
   427  
   428  func (dm_build_440 *dm_build_332) Dm_build_439(dm_build_441 *DmStatement, dm_build_442 []interface{}, dm_build_443 bool) (*execRetInfo, error) {
   429  
   430  	var dm_build_444 = make([]interface{}, dm_build_441.paramCount)
   431  	for icol := 0; icol < int(dm_build_441.paramCount); icol++ {
   432  		if dm_build_441.params[icol].ioType == IO_TYPE_OUT {
   433  			continue
   434  		}
   435  		if dm_build_440.dm_build_563(dm_build_444, dm_build_442, icol) {
   436  
   437  			if !dm_build_443 {
   438  				preExecute := dm_build_1058(dm_build_440, dm_build_441, dm_build_441.params)
   439  				dm_build_440.dm_build_372(preExecute)
   440  				dm_build_443 = true
   441  			}
   442  
   443  			dm_build_440.dm_build_569(dm_build_441, dm_build_441.params[icol], icol, dm_build_442[icol].(iOffRowBinder))
   444  			dm_build_444[icol] = ParamDataEnum_OFF_ROW
   445  		}
   446  	}
   447  
   448  	var dm_build_445 = make([][]interface{}, 1, 1)
   449  	dm_build_445[0] = dm_build_444
   450  
   451  	dm_build_446 := dm_build_850(dm_build_440, dm_build_441, dm_build_445)
   452  	dm_build_447, dm_build_448 := dm_build_440.dm_build_372(dm_build_446)
   453  	if dm_build_448 != nil {
   454  		return nil, dm_build_448
   455  	}
   456  	return dm_build_447.(*execRetInfo), nil
   457  }
   458  
   459  func (dm_build_450 *dm_build_332) Dm_build_449(dm_build_451 *DmStatement, dm_build_452 int16) (*execRetInfo, error) {
   460  	dm_build_453 := dm_build_1045(dm_build_450, dm_build_451, dm_build_452)
   461  
   462  	dm_build_454, dm_build_455 := dm_build_450.dm_build_372(dm_build_453)
   463  	if dm_build_455 != nil {
   464  		return nil, dm_build_455
   465  	}
   466  	return dm_build_454.(*execRetInfo), nil
   467  }
   468  
   469  func (dm_build_457 *dm_build_332) Dm_build_456(dm_build_458 *innerRows, dm_build_459 int64) (*execRetInfo, error) {
   470  	dm_build_460 := dm_build_950(dm_build_457, dm_build_458, dm_build_459, INT64_MAX)
   471  	dm_build_461, dm_build_462 := dm_build_457.dm_build_372(dm_build_460)
   472  	if dm_build_462 != nil {
   473  		return nil, dm_build_462
   474  	}
   475  	return dm_build_461.(*execRetInfo), nil
   476  }
   477  
   478  func (dm_build_464 *dm_build_332) Commit() error {
   479  	dm_build_465 := dm_build_813(dm_build_464)
   480  	_, dm_build_466 := dm_build_464.dm_build_372(dm_build_465)
   481  	if dm_build_466 != nil {
   482  		return dm_build_466
   483  	}
   484  
   485  	return nil
   486  }
   487  
   488  func (dm_build_468 *dm_build_332) Rollback() error {
   489  	dm_build_469 := dm_build_1106(dm_build_468)
   490  	_, dm_build_470 := dm_build_468.dm_build_372(dm_build_469)
   491  	if dm_build_470 != nil {
   492  		return dm_build_470
   493  	}
   494  
   495  	return nil
   496  }
   497  
   498  func (dm_build_472 *dm_build_332) Dm_build_471(dm_build_473 *DmConnection) error {
   499  	dm_build_474 := dm_build_1111(dm_build_472, dm_build_473.IsoLevel)
   500  	_, dm_build_475 := dm_build_472.dm_build_372(dm_build_474)
   501  	if dm_build_475 != nil {
   502  		return dm_build_475
   503  	}
   504  
   505  	return nil
   506  }
   507  
   508  func (dm_build_477 *dm_build_332) Dm_build_476(dm_build_478 *DmStatement, dm_build_479 string) error {
   509  	dm_build_480 := dm_build_818(dm_build_477, dm_build_478, dm_build_479)
   510  	_, dm_build_481 := dm_build_477.dm_build_372(dm_build_480)
   511  	if dm_build_481 != nil {
   512  		return dm_build_481
   513  	}
   514  
   515  	return nil
   516  }
   517  
   518  func (dm_build_483 *dm_build_332) Dm_build_482(dm_build_484 []uint32) ([]int64, error) {
   519  	dm_build_485 := dm_build_1209(dm_build_483, dm_build_484)
   520  	dm_build_486, dm_build_487 := dm_build_483.dm_build_372(dm_build_485)
   521  	if dm_build_487 != nil {
   522  		return nil, dm_build_487
   523  	}
   524  	return dm_build_486.([]int64), nil
   525  }
   526  
   527  func (dm_build_489 *dm_build_332) Close() error {
   528  	if dm_build_489.dm_build_343 {
   529  		return nil
   530  	}
   531  
   532  	dm_build_490 := dm_build_489.dm_build_333.Close()
   533  	if dm_build_490 != nil {
   534  		return dm_build_490
   535  	}
   536  
   537  	dm_build_489.dm_build_336 = nil
   538  	dm_build_489.dm_build_343 = true
   539  	return nil
   540  }
   541  
   542  func (dm_build_492 *dm_build_332) dm_build_491(dm_build_493 *lob) (int64, error) {
   543  	dm_build_494 := dm_build_981(dm_build_492, dm_build_493)
   544  	dm_build_495, dm_build_496 := dm_build_492.dm_build_372(dm_build_494)
   545  	if dm_build_496 != nil {
   546  		return 0, dm_build_496
   547  	}
   548  	return dm_build_495.(int64), nil
   549  }
   550  
   551  func (dm_build_498 *dm_build_332) dm_build_497(dm_build_499 *lob, dm_build_500 int32, dm_build_501 int32) ([]byte, error) {
   552  	dm_build_502 := dm_build_968(dm_build_498, dm_build_499, int(dm_build_500), int(dm_build_501))
   553  	dm_build_503, dm_build_504 := dm_build_498.dm_build_372(dm_build_502)
   554  	if dm_build_504 != nil {
   555  		return nil, dm_build_504
   556  	}
   557  	return dm_build_503.([]byte), nil
   558  }
   559  
   560  func (dm_build_506 *dm_build_332) dm_build_505(dm_build_507 *DmBlob, dm_build_508 int32, dm_build_509 int32) ([]byte, error) {
   561  	var dm_build_510 = make([]byte, dm_build_509)
   562  	var dm_build_511 int32 = 0
   563  	var dm_build_512 int32 = 0
   564  	var dm_build_513 []byte
   565  	var dm_build_514 error
   566  	for dm_build_511 < dm_build_509 {
   567  		dm_build_512 = dm_build_509 - dm_build_511
   568  		if dm_build_512 > Dm_build_718 {
   569  			dm_build_512 = Dm_build_718
   570  		}
   571  		dm_build_513, dm_build_514 = dm_build_506.dm_build_497(&dm_build_507.lob, dm_build_508, dm_build_512)
   572  		if dm_build_514 != nil {
   573  			return nil, dm_build_514
   574  		}
   575  		if dm_build_513 == nil || len(dm_build_513) == 0 {
   576  			break
   577  		}
   578  		Dm_build_1220.Dm_build_1276(dm_build_510, int(dm_build_511), dm_build_513, 0, len(dm_build_513))
   579  		dm_build_511 += int32(len(dm_build_513))
   580  		dm_build_508 += int32(len(dm_build_513))
   581  		if dm_build_507.readOver {
   582  			break
   583  		}
   584  	}
   585  	return dm_build_510, nil
   586  }
   587  
   588  func (dm_build_516 *dm_build_332) dm_build_515(dm_build_517 *DmClob, dm_build_518 int32, dm_build_519 int32) (string, error) {
   589  	var dm_build_520 bytes.Buffer
   590  	var dm_build_521 int32 = 0
   591  	var dm_build_522 int32 = 0
   592  	var dm_build_523 []byte
   593  	var dm_build_524 string
   594  	var dm_build_525 error
   595  	for dm_build_521 < dm_build_519 {
   596  		dm_build_522 = dm_build_519 - dm_build_521
   597  		if dm_build_522 > Dm_build_718/2 {
   598  			dm_build_522 = Dm_build_718 / 2
   599  		}
   600  		dm_build_523, dm_build_525 = dm_build_516.dm_build_497(&dm_build_517.lob, dm_build_518, dm_build_522)
   601  		if dm_build_525 != nil {
   602  			return "", dm_build_525
   603  		}
   604  		if dm_build_523 == nil || len(dm_build_523) == 0 {
   605  			break
   606  		}
   607  		dm_build_524 = Dm_build_1220.Dm_build_1377(dm_build_523, 0, len(dm_build_523), dm_build_517.serverEncoding, dm_build_516.dm_build_336)
   608  
   609  		dm_build_520.WriteString(dm_build_524)
   610  		dm_build_521 += int32(len(dm_build_524))
   611  		dm_build_518 += int32(len(dm_build_524))
   612  		if dm_build_517.readOver {
   613  			break
   614  		}
   615  	}
   616  	return dm_build_520.String(), nil
   617  }
   618  
   619  func (dm_build_527 *dm_build_332) dm_build_526(dm_build_528 *DmClob, dm_build_529 int, dm_build_530 string, dm_build_531 string) (int, error) {
   620  	var dm_build_532 = Dm_build_1220.Dm_build_1433(dm_build_530, dm_build_531, dm_build_527.dm_build_336)
   621  	var dm_build_533 = 0
   622  	var dm_build_534 = len(dm_build_532)
   623  	var dm_build_535 = 0
   624  	var dm_build_536 = 0
   625  	var dm_build_537 = 0
   626  	var dm_build_538 = dm_build_534/Dm_build_717 + 1
   627  	var dm_build_539 byte = 0
   628  	var dm_build_540 byte = 0x01
   629  	var dm_build_541 byte = 0x02
   630  	for i := 0; i < dm_build_538; i++ {
   631  		dm_build_539 = 0
   632  		if i == 0 {
   633  			dm_build_539 |= dm_build_540
   634  		}
   635  		if i == dm_build_538-1 {
   636  			dm_build_539 |= dm_build_541
   637  		}
   638  		dm_build_537 = dm_build_534 - dm_build_536
   639  		if dm_build_537 > Dm_build_717 {
   640  			dm_build_537 = Dm_build_717
   641  		}
   642  
   643  		setLobData := dm_build_1125(dm_build_527, &dm_build_528.lob, dm_build_539, dm_build_529, dm_build_532, dm_build_533, dm_build_537)
   644  		ret, err := dm_build_527.dm_build_372(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_535, nil
   654  		} else {
   655  			dm_build_529 += int(tmp)
   656  			dm_build_535 += int(tmp)
   657  			dm_build_536 += dm_build_537
   658  			dm_build_533 += dm_build_537
   659  		}
   660  	}
   661  	return dm_build_535, nil
   662  }
   663  
   664  func (dm_build_543 *dm_build_332) dm_build_542(dm_build_544 *DmBlob, dm_build_545 int, dm_build_546 []byte) (int, error) {
   665  	var dm_build_547 = 0
   666  	var dm_build_548 = len(dm_build_546)
   667  	var dm_build_549 = 0
   668  	var dm_build_550 = 0
   669  	var dm_build_551 = 0
   670  	var dm_build_552 = dm_build_548/Dm_build_717 + 1
   671  	var dm_build_553 byte = 0
   672  	var dm_build_554 byte = 0x01
   673  	var dm_build_555 byte = 0x02
   674  	for i := 0; i < dm_build_552; i++ {
   675  		dm_build_553 = 0
   676  		if i == 0 {
   677  			dm_build_553 |= dm_build_554
   678  		}
   679  		if i == dm_build_552-1 {
   680  			dm_build_553 |= dm_build_555
   681  		}
   682  		dm_build_551 = dm_build_548 - dm_build_550
   683  		if dm_build_551 > Dm_build_717 {
   684  			dm_build_551 = Dm_build_717
   685  		}
   686  
   687  		setLobData := dm_build_1125(dm_build_543, &dm_build_544.lob, dm_build_553, dm_build_545, dm_build_546, dm_build_547, dm_build_551)
   688  		ret, err := dm_build_543.dm_build_372(setLobData)
   689  		if err != nil {
   690  			return 0, err
   691  		}
   692  		tmp := ret.(int32)
   693  		if tmp <= 0 {
   694  			return dm_build_549, nil
   695  		} else {
   696  			dm_build_545 += int(tmp)
   697  			dm_build_549 += int(tmp)
   698  			dm_build_550 += dm_build_551
   699  			dm_build_547 += dm_build_551
   700  		}
   701  	}
   702  	return dm_build_549, nil
   703  }
   704  
   705  func (dm_build_557 *dm_build_332) dm_build_556(dm_build_558 *lob, dm_build_559 int) (int64, error) {
   706  	dm_build_560 := dm_build_992(dm_build_557, dm_build_558, dm_build_559)
   707  	dm_build_561, dm_build_562 := dm_build_557.dm_build_372(dm_build_560)
   708  	if dm_build_562 != nil {
   709  		return dm_build_558.length, dm_build_562
   710  	}
   711  	return dm_build_561.(int64), nil
   712  }
   713  
   714  func (dm_build_564 *dm_build_332) dm_build_563(dm_build_565 []interface{}, dm_build_566 []interface{}, dm_build_567 int) bool {
   715  	var dm_build_568 = false
   716  	if dm_build_567 >= len(dm_build_566) || dm_build_566[dm_build_567] == nil {
   717  		dm_build_565[dm_build_567] = ParamDataEnum_Null
   718  	} else if binder, ok := dm_build_566[dm_build_567].(iOffRowBinder); ok {
   719  		dm_build_568 = true
   720  		dm_build_565[dm_build_567] = 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_564.dm_build_336) {
   728  			dm_build_565[dm_build_567] = &lobCtl{lob.buildCtlData()}
   729  			dm_build_568 = false
   730  		}
   731  	} else {
   732  		dm_build_565[dm_build_567] = dm_build_566[dm_build_567]
   733  	}
   734  	return dm_build_568
   735  }
   736  
   737  func (dm_build_570 *dm_build_332) dm_build_569(dm_build_571 *DmStatement, dm_build_572 parameter, dm_build_573 int, dm_build_574 iOffRowBinder) error {
   738  	var dm_build_575 = Dm_build_1503()
   739  	dm_build_574.read(dm_build_575)
   740  	var dm_build_576 = 0
   741  	for !dm_build_574.isReadOver() || dm_build_575.Dm_build_1504() > 0 {
   742  		if !dm_build_574.isReadOver() && dm_build_575.Dm_build_1504() < Dm_build_717 {
   743  			dm_build_574.read(dm_build_575)
   744  		}
   745  		if dm_build_575.Dm_build_1504() > Dm_build_717 {
   746  			dm_build_576 = Dm_build_717
   747  		} else {
   748  			dm_build_576 = dm_build_575.Dm_build_1504()
   749  		}
   750  
   751  		putData := dm_build_1096(dm_build_570, dm_build_571, int16(dm_build_573), dm_build_575, int32(dm_build_576))
   752  		_, err := dm_build_570.dm_build_372(putData)
   753  		if err != nil {
   754  			return err
   755  		}
   756  	}
   757  	return nil
   758  }
   759  
   760  func (dm_build_578 *dm_build_332) dm_build_577() ([]byte, error) {
   761  	var dm_build_579 error
   762  	if dm_build_578.dm_build_340 == nil {
   763  		if dm_build_578.dm_build_340, dm_build_579 = security.NewClientKeyPair(); dm_build_579 != nil {
   764  			return nil, dm_build_579
   765  		}
   766  	}
   767  	return security.Bn2Bytes(dm_build_578.dm_build_340.GetY(), security.DH_KEY_LENGTH), nil
   768  }
   769  
   770  func (dm_build_581 *dm_build_332) dm_build_580() (*security.DhKey, error) {
   771  	var dm_build_582 error
   772  	if dm_build_581.dm_build_340 == nil {
   773  		if dm_build_581.dm_build_340, dm_build_582 = security.NewClientKeyPair(); dm_build_582 != nil {
   774  			return nil, dm_build_582
   775  		}
   776  	}
   777  	return dm_build_581.dm_build_340, nil
   778  }
   779  
   780  func (dm_build_584 *dm_build_332) dm_build_583(dm_build_585 int, dm_build_586 []byte, dm_build_587 string, dm_build_588 int) (dm_build_589 error) {
   781  	if dm_build_585 > 0 && dm_build_585 < security.MIN_EXTERNAL_CIPHER_ID && dm_build_586 != nil {
   782  		dm_build_584.dm_build_337, dm_build_589 = security.NewSymmCipher(dm_build_585, dm_build_586)
   783  	} else if dm_build_585 >= security.MIN_EXTERNAL_CIPHER_ID {
   784  		if dm_build_584.dm_build_337, dm_build_589 = security.NewThirdPartCipher(dm_build_585, dm_build_586, dm_build_587, dm_build_588); dm_build_589 != nil {
   785  			dm_build_589 = THIRD_PART_CIPHER_INIT_FAILED.addDetailln(dm_build_589.Error()).throw()
   786  		}
   787  	}
   788  	return
   789  }
   790  
   791  func (dm_build_591 *dm_build_332) dm_build_590(dm_build_592 bool) (dm_build_593 error) {
   792  	if dm_build_591.dm_build_334, dm_build_593 = security.NewTLSFromTCP(dm_build_591.dm_build_333, dm_build_591.dm_build_336.dmConnector.sslCertPath, dm_build_591.dm_build_336.dmConnector.sslKeyPath, dm_build_591.dm_build_336.dmConnector.user); dm_build_593 != nil {
   793  		return
   794  	}
   795  	if !dm_build_592 {
   796  		dm_build_591.dm_build_334 = nil
   797  	}
   798  	return
   799  }
   800  
   801  func (dm_build_595 *dm_build_332) dm_build_594(dm_build_596 dm_build_725) bool {
   802  	return dm_build_596.dm_build_740() != Dm_build_632 && dm_build_595.dm_build_336.sslEncrypt == 1
   803  }