@@ -10,8 +10,8 @@ import (
10
10
"testing"
11
11
"time"
12
12
13
- "xorm.io/core"
14
13
"github.com/stretchr/testify/assert"
14
+ "xorm.io/core"
15
15
)
16
16
17
17
func TestGetVar (t * testing.T ) {
@@ -56,6 +56,69 @@ func TestGetVar(t *testing.T) {
56
56
assert .Equal (t , true , has )
57
57
assert .EqualValues (t , 28 , age2 )
58
58
59
+ var age3 int8
60
+ has , err = testEngine .Table ("get_var" ).Cols ("age" ).Get (& age3 )
61
+ assert .NoError (t , err )
62
+ assert .Equal (t , true , has )
63
+ assert .EqualValues (t , 28 , age3 )
64
+
65
+ var age4 int16
66
+ has , err = testEngine .Table ("get_var" ).Cols ("age" ).
67
+ Where ("age > ?" , 20 ).
68
+ And ("age < ?" , 30 ).
69
+ Get (& age4 )
70
+ assert .NoError (t , err )
71
+ assert .Equal (t , true , has )
72
+ assert .EqualValues (t , 28 , age4 )
73
+
74
+ var age5 int32
75
+ has , err = testEngine .Table ("get_var" ).Cols ("age" ).
76
+ Where ("age > ?" , 20 ).
77
+ And ("age < ?" , 30 ).
78
+ Get (& age5 )
79
+ assert .NoError (t , err )
80
+ assert .Equal (t , true , has )
81
+ assert .EqualValues (t , 28 , age5 )
82
+
83
+ var age6 int
84
+ has , err = testEngine .Table ("get_var" ).Cols ("age" ).Get (& age6 )
85
+ assert .NoError (t , err )
86
+ assert .Equal (t , true , has )
87
+ assert .EqualValues (t , 28 , age6 )
88
+
89
+ var age7 int64
90
+ has , err = testEngine .Table ("get_var" ).Cols ("age" ).
91
+ Where ("age > ?" , 20 ).
92
+ And ("age < ?" , 30 ).
93
+ Get (& age7 )
94
+ assert .NoError (t , err )
95
+ assert .Equal (t , true , has )
96
+ assert .EqualValues (t , 28 , age7 )
97
+
98
+ var age8 int8
99
+ has , err = testEngine .Table ("get_var" ).Cols ("age" ).Get (& age8 )
100
+ assert .NoError (t , err )
101
+ assert .Equal (t , true , has )
102
+ assert .EqualValues (t , 28 , age8 )
103
+
104
+ var age9 int16
105
+ has , err = testEngine .Table ("get_var" ).Cols ("age" ).
106
+ Where ("age > ?" , 20 ).
107
+ And ("age < ?" , 30 ).
108
+ Get (& age9 )
109
+ assert .NoError (t , err )
110
+ assert .Equal (t , true , has )
111
+ assert .EqualValues (t , 28 , age9 )
112
+
113
+ var age10 int32
114
+ has , err = testEngine .Table ("get_var" ).Cols ("age" ).
115
+ Where ("age > ?" , 20 ).
116
+ And ("age < ?" , 30 ).
117
+ Get (& age10 )
118
+ assert .NoError (t , err )
119
+ assert .Equal (t , true , has )
120
+ assert .EqualValues (t , 28 , age10 )
121
+
59
122
var id sql.NullInt64
60
123
has , err = testEngine .Table ("get_var" ).Cols ("id" ).Get (& id )
61
124
assert .NoError (t , err )
@@ -433,3 +496,85 @@ func TestGetCustomTableInterface(t *testing.T) {
433
496
assert .NoError (t , err )
434
497
assert .True (t , has )
435
498
}
499
+
500
+ func TestGetNullVar (t * testing.T ) {
501
+ type TestGetNullVarStruct struct {
502
+ Id int64
503
+ Name string
504
+ Age int
505
+ }
506
+
507
+ assert .NoError (t , prepareEngine ())
508
+ assertSync (t , new (TestGetNullVarStruct ))
509
+
510
+ affected , err := testEngine .Exec ("insert into " + testEngine .TableName (new (TestGetNullVarStruct ), true ) + " (name,age) values (null,null)" )
511
+ assert .NoError (t , err )
512
+ a , _ := affected .RowsAffected ()
513
+ assert .EqualValues (t , 1 , a )
514
+
515
+ var name string
516
+ has , err := testEngine .Table (new (TestGetNullVarStruct )).Where ("id = ?" , 1 ).Cols ("name" ).Get (& name )
517
+ assert .NoError (t , err )
518
+ assert .True (t , has )
519
+ assert .EqualValues (t , "" , name )
520
+
521
+ var age int
522
+ has , err = testEngine .Table (new (TestGetNullVarStruct )).Where ("id = ?" , 1 ).Cols ("age" ).Get (& age )
523
+ assert .NoError (t , err )
524
+ assert .True (t , has )
525
+ assert .EqualValues (t , 0 , age )
526
+
527
+ var age2 int8
528
+ has , err = testEngine .Table (new (TestGetNullVarStruct )).Where ("id = ?" , 1 ).Cols ("age" ).Get (& age2 )
529
+ assert .NoError (t , err )
530
+ assert .True (t , has )
531
+ assert .EqualValues (t , 0 , age2 )
532
+
533
+ var age3 int16
534
+ has , err = testEngine .Table (new (TestGetNullVarStruct )).Where ("id = ?" , 1 ).Cols ("age" ).Get (& age3 )
535
+ assert .NoError (t , err )
536
+ assert .True (t , has )
537
+ assert .EqualValues (t , 0 , age3 )
538
+
539
+ var age4 int32
540
+ has , err = testEngine .Table (new (TestGetNullVarStruct )).Where ("id = ?" , 1 ).Cols ("age" ).Get (& age4 )
541
+ assert .NoError (t , err )
542
+ assert .True (t , has )
543
+ assert .EqualValues (t , 0 , age4 )
544
+
545
+ var age5 int64
546
+ has , err = testEngine .Table (new (TestGetNullVarStruct )).Where ("id = ?" , 1 ).Cols ("age" ).Get (& age5 )
547
+ assert .NoError (t , err )
548
+ assert .True (t , has )
549
+ assert .EqualValues (t , 0 , age5 )
550
+
551
+ var age6 uint
552
+ has , err = testEngine .Table (new (TestGetNullVarStruct )).Where ("id = ?" , 1 ).Cols ("age" ).Get (& age6 )
553
+ assert .NoError (t , err )
554
+ assert .True (t , has )
555
+ assert .EqualValues (t , 0 , age6 )
556
+
557
+ var age7 uint8
558
+ has , err = testEngine .Table (new (TestGetNullVarStruct )).Where ("id = ?" , 1 ).Cols ("age" ).Get (& age7 )
559
+ assert .NoError (t , err )
560
+ assert .True (t , has )
561
+ assert .EqualValues (t , 0 , age7 )
562
+
563
+ var age8 int16
564
+ has , err = testEngine .Table (new (TestGetNullVarStruct )).Where ("id = ?" , 1 ).Cols ("age" ).Get (& age8 )
565
+ assert .NoError (t , err )
566
+ assert .True (t , has )
567
+ assert .EqualValues (t , 0 , age8 )
568
+
569
+ var age9 int32
570
+ has , err = testEngine .Table (new (TestGetNullVarStruct )).Where ("id = ?" , 1 ).Cols ("age" ).Get (& age9 )
571
+ assert .NoError (t , err )
572
+ assert .True (t , has )
573
+ assert .EqualValues (t , 0 , age9 )
574
+
575
+ var age10 int64
576
+ has , err = testEngine .Table (new (TestGetNullVarStruct )).Where ("id = ?" , 1 ).Cols ("age" ).Get (& age10 )
577
+ assert .NoError (t , err )
578
+ assert .True (t , has )
579
+ assert .EqualValues (t , 0 , age10 )
580
+ }
0 commit comments