@@ -1276,8 +1276,8 @@ func (stmt *Stmt) ExecContext(ctx context.Context, args []driver.NamedValue) (dr
1276
1276
}
1277
1277
tracer := stmt .connection .tracer
1278
1278
tracer .Printf ("Exec With Context:" )
1279
- stmt .connection .session .StartContext (ctx )
1280
- defer stmt .connection .session .EndContext ()
1279
+ done := stmt .connection .session .StartContext (ctx )
1280
+ defer stmt .connection .session .EndContext (done )
1281
1281
tracer .Printf ("Exec:\n %s" , stmt .text )
1282
1282
stmt .arrayBindCount = 0
1283
1283
result , err := stmt ._exec (args )
@@ -1392,46 +1392,6 @@ func (stmt *Stmt) fillStructPar(parValue driver.Value) error {
1392
1392
if err != nil {
1393
1393
return err
1394
1394
}
1395
-
1396
- //var pFieldValue reflect.Value
1397
- //if fieldValue.Kind() != reflect.Ptr && fieldValue.CanAddr() {
1398
- // pFieldValue = fieldValue.Addr()
1399
- //} else {
1400
- // pFieldValue = fieldValue
1401
- //}
1402
- //if _, ok := pFieldValue.Interface().(sql.Scanner); ok {
1403
- //err := scanner.Scan(par.Value)
1404
- //if err != nil {
1405
- // return err
1406
- //}
1407
- //continue
1408
- //}
1409
- //if valuer, ok := par.Value.(driver.Valuer); ok {
1410
- // tempVal, err := valuer.Value()
1411
- // if err != nil {
1412
- // return err
1413
- // }
1414
- // if tempVal == nil {
1415
- // fieldValue.Set(reflect.Zero(fieldType))
1416
- // } else {
1417
- // if fieldType.Kind() == reflect.Ptr {
1418
- // if fieldValue.IsNil() {
1419
- // temp := reflect.New(fieldType.Elem())
1420
- // fieldValue.Set(temp)
1421
- // }
1422
- // fieldValue = fieldValue.Elem()
1423
- // }
1424
- // if scanner, ok := fieldValue.Interface().(sql.Scanner); ok {
1425
- // err = scanner.Scan(par.Value)
1426
- // if err != nil {
1427
- // return err
1428
- // }
1429
- // continue
1430
- // }
1431
- // }
1432
- //} else {
1433
- //
1434
- //}
1435
1395
}
1436
1396
}
1437
1397
}
@@ -1565,181 +1525,7 @@ func (stmt *Stmt) structPar(parValue driver.Value, parIndex int) (processedPars
1565
1525
err = fmt .Errorf ("unknown type: %s for parameter: %s" , _type , name )
1566
1526
}
1567
1527
return
1568
- //if _, ok := fieldValue.(driver.Valuer); ok {
1569
- // if _, ok = structValue.Field(fieldIndex).Addr().Interface().(sql.Scanner); ok {
1570
- // tempPar, err = stmt.NewParam(name, structValue.Field(fieldIndex).Addr().Interface(), size, dir)
1571
- // return
1572
- // }
1573
- //}
1574
- //if len(_type) > 0 {
1575
- //} else {
1576
- // //fieldType := reflect.TypeOf(fieldValue)
1577
- // if tNumber(fieldType) {
1578
- // var fieldVal = &sql.NullFloat64{}
1579
- // if !hasNullValue {
1580
- // fieldVal.Float64, err = getFloat(fieldValue)
1581
- // if err != nil {
1582
- // err = typeErr
1583
- // return
1584
- // }
1585
- // fieldVal.Valid = true
1586
- // }
1587
- // tempPar, err = stmt.NewParam(name, fieldVal, size, dir)
1588
- // }
1589
- // switch fieldType.Kind() {
1590
- // case reflect.Bool:
1591
- // var fieldVal = &sql.NullFloat64{}
1592
- // if !hasNullValue {
1593
- // fieldVal.Float64, err = getFloat(fieldValue)
1594
- // if err != nil {
1595
- // err = typeErr
1596
- // return
1597
- // }
1598
- // fieldVal.Valid = true
1599
- // }
1600
- // tempPar, err = stmt.NewParam(name, fieldVal, size, dir)
1601
- // case reflect.String:
1602
- // fieldVal := &sql.NullString{}
1603
- // if !hasNullValue {
1604
- // fieldVal.String, fieldVal.Valid = getString(fieldValue), true
1605
- // }
1606
- // tempPar, err = stmt.NewParam(name, fieldVal, size, dir)
1607
- // default:
1608
- // switch aval := fieldValue.(type) {
1609
- // case NVarChar:
1610
- // fieldVal := &NullNVarChar{}
1611
- // if !hasNullValue {
1612
- // fieldVal.NVarChar, fieldVal.Valid = aval, true
1613
- // }
1614
- // tempPar, err = stmt.NewParam(name, fieldVal, size, dir)
1615
- // case []byte:
1616
- // var fieldVal []byte
1617
- // if !hasNullValue {
1618
- // fieldVal = aval
1619
- // }
1620
- // tempPar, err = stmt.NewParam(name, &fieldVal, size, dir)
1621
- // case time.Time:
1622
- // fieldVal := &sql.NullTime{}
1623
- // if !hasNullValue {
1624
- // fieldVal.Time, fieldVal.Valid = aval, true
1625
- // }
1626
- // tempPar, err = stmt.NewParam(name, fieldVal, size, dir)
1627
- // case TimeStamp:
1628
- // fieldVal := &NullTimeStamp{}
1629
- // if !hasNullValue {
1630
- // fieldVal.TimeStamp, fieldVal.Valid = aval, true
1631
- // }
1632
- // tempPar, err = stmt.NewParam(name, fieldVal, size, dir)
1633
- // case TimeStampTZ:
1634
- // fieldVal := &NullTimeStampTZ{}
1635
- // if !hasNullValue {
1636
- // fieldVal.TimeStampTZ, fieldVal.Valid = aval, true
1637
- // }
1638
- // tempPar, err = stmt.NewParam(name, fieldVal, size, dir)
1639
- // case Clob:
1640
- // tempPar, err = stmt.NewParam(name, &aval, size, dir)
1641
- // case NClob:
1642
- // tempPar, err = stmt.NewParam(name, &aval, size, dir)
1643
- // case Blob:
1644
- // tempPar, err = stmt.NewParam(name, &aval, size, dir)
1645
- // }
1646
- // }
1647
- //}
1648
- //return
1649
1528
}
1650
- //addInputField := func(name, _type string, fieldIndex int) (tempPar *ParameterInfo, err error) {
1651
- // var fieldValue = structValue.Field(fieldIndex).Interface()
1652
- // if fieldValue == nil {
1653
- // tempPar, err = stmt.NewParam(name, fieldValue, 0, Input)
1654
- // return
1655
- // }
1656
- // // value is pointer
1657
- // if tempType.Field(fieldIndex).Type.Kind() == reflect.Ptr {
1658
- // if structValue.Field(fieldIndex).IsNil() {
1659
- // tempPar, err = stmt.NewParam(name, nil, 0, Input)
1660
- // return
1661
- // } else {
1662
- // fieldValue = structValue.Field(fieldIndex).Elem().Interface()
1663
- // }
1664
- // }
1665
- // typeErr := fmt.Errorf("error passing field %s as type %s", tempType.Field(fieldIndex).Name, _type)
1666
- // switch _type {
1667
- // case "number":
1668
- // var fieldVal float64
1669
- // fieldVal, err = getFloat(fieldValue)
1670
- // if err != nil {
1671
- // err = typeErr
1672
- // return
1673
- // }
1674
- // tempPar, err = stmt.NewParam(name, fieldVal, 0, Input)
1675
- // case "varchar":
1676
- // fieldVal := getString(fieldValue)
1677
- // tempPar, err = stmt.NewParam(name, fieldVal, 0, Input)
1678
- // case "nvarchar":
1679
- // fieldVal := getString(fieldValue)
1680
- // tempPar, err = stmt.NewParam(name, NVarChar(fieldVal), 0, Input)
1681
- // case "date":
1682
- // var fieldVal time.Time
1683
- // fieldVal, err = getDate(fieldValue)
1684
- // if err != nil {
1685
- // err = typeErr
1686
- // return
1687
- // }
1688
- // tempPar, err = stmt.NewParam(name, fieldVal, 0, Input)
1689
- // case "timestamp":
1690
- // var fieldVal time.Time
1691
- // fieldVal, err = getDate(fieldValue)
1692
- // if err != nil {
1693
- // err = typeErr
1694
- // return
1695
- // }
1696
- // tempPar, err = stmt.NewParam(name, TimeStamp(fieldVal), 0, Input)
1697
- // case "timestamptz":
1698
- // var fieldVal time.Time
1699
- // fieldVal, err = getDate(fieldValue)
1700
- // if err != nil {
1701
- // err = typeErr
1702
- // return
1703
- // }
1704
- // tempPar, err = stmt.NewParam(name, TimeStampTZ(fieldVal), 0, Input)
1705
- // case "raw":
1706
- // var fieldVal []byte
1707
- // fieldVal, err = getBytes(fieldValue)
1708
- // if err != nil {
1709
- // err = typeErr
1710
- // return
1711
- // }
1712
- // tempPar = &ParameterInfo{
1713
- // Name: name,
1714
- // Direction: Input,
1715
- // Value: fieldVal,
1716
- // }
1717
- // case "clob":
1718
- // fieldVal := getString(fieldValue)
1719
- // tempPar = &ParameterInfo{
1720
- // Name: name,
1721
- // Direction: Input,
1722
- // Value: Clob{String: fieldVal, Valid: true},
1723
- // }
1724
- // case "nclob":
1725
- // fieldVal := getString(fieldValue)
1726
- // tempPar, err = stmt.NewParam(name, NClob{String: fieldVal, Valid: true}, 0, Input)
1727
- // case "blob":
1728
- // var fieldVal []byte
1729
- // fieldVal, err = getBytes(fieldValue)
1730
- // if err != nil {
1731
- // err = typeErr
1732
- // return
1733
- // }
1734
- // tempPar, err = stmt.NewParam(name, Blob{Data: fieldVal}, 0, Input)
1735
- // case "":
1736
- // tempPar, err = stmt.NewParam(name, structValue.Field(fieldIndex).Interface(), 0, Input)
1737
- // default:
1738
- // err = typeErr
1739
- // }
1740
- // return
1741
- //}
1742
- // deal with struct types
1743
1529
if parValue != nil && tempType .Kind () == reflect .Struct {
1744
1530
structFieldCount := tempType .NumField ()
1745
1531
@@ -1930,19 +1716,6 @@ func (stmt *Stmt) _exec(args []driver.NamedValue) (*QueryResult, error) {
1930
1716
return nil , err
1931
1717
}
1932
1718
stmt .temporaryLobs = append (stmt .temporaryLobs , par .collectLocators ()... )
1933
- //switch value := par.iPrimValue.(type) {
1934
- //case *Lob:
1935
- // if value != nil && value.sourceLocator != nil {
1936
- // stmt.temporaryLobs = append(stmt.temporaryLobs, value.sourceLocator)
1937
- // }
1938
- //case *BFile:
1939
- // if value != nil && value.lob.sourceLocator != nil {
1940
- // stmt.temporaryLobs = append(stmt.temporaryLobs, value.lob.sourceLocator)
1941
- // }
1942
- //case []ParameterInfo:
1943
- // temp := collectLocators(value)
1944
- // stmt.temporaryLobs = append(stmt.temporaryLobs, temp...)
1945
- //}
1946
1719
if maxLen < par .MaxLen {
1947
1720
maxLen = par .MaxLen
1948
1721
}
@@ -1955,13 +1728,6 @@ func (stmt *Stmt) _exec(args []driver.NamedValue) (*QueryResult, error) {
1955
1728
continue
1956
1729
}
1957
1730
dataType = par .DataType
1958
- //if y == 0 {
1959
- // dataType = par.DataType
1960
- //} else {
1961
- // if par.DataType != dataType && par.DataType != NCHAR {
1962
- //
1963
- // }
1964
- //}
1965
1731
}
1966
1732
// save arrayValues into primitive
1967
1733
par .iPrimValue = arrayValues
@@ -2250,8 +2016,8 @@ func (stmt *Stmt) QueryContext(ctx context.Context, namedArgs []driver.NamedValu
2250
2016
tracer := stmt .connection .tracer
2251
2017
tracer .Print ("Query With Context:" , stmt .text )
2252
2018
2253
- stmt .connection .session .StartContext (ctx )
2254
- defer stmt .connection .session .EndContext ()
2019
+ done := stmt .connection .session .StartContext (ctx )
2020
+ defer stmt .connection .session .EndContext (done )
2255
2021
return stmt .Query_ (namedArgs )
2256
2022
}
2257
2023
0 commit comments