@@ -488,3 +488,49 @@ func TestBindZeroBlob(t *testing.T) {
488488 assert .Equal (t , byte (0 ), b )
489489 }
490490}
491+
492+ func TestStatementReset (t * testing.T ) {
493+ db , err := goliat .Open (":memory:" )
494+ assert .NoError (t , err )
495+ defer db .Close ()
496+
497+ err = db .Exec ("CREATE TABLE foo (bar TEXT)" )
498+ assert .NoError (t , err )
499+
500+ stmt , err := db .Prepare ("INSERT INTO foo (bar) VALUES (?)" )
501+ assert .NoError (t , err )
502+
503+ stmt .Bind ("baz" )
504+ assert .Equal (t , goliat .DONE , stmt .Step ())
505+
506+ stmt .Reset ()
507+
508+ stmt .Bind ("qux" )
509+ assert .Equal (t , goliat .DONE , stmt .Step ())
510+
511+ var count int
512+ err = db .QueryRow ("SELECT COUNT(*) FROM foo WHERE bar IN (?, ?)" , "baz" , "qux" ).Scan (& count )
513+ assert .NoError (t , err )
514+ assert .Equal (t , 2 , count )
515+ }
516+
517+ func TestStatementClearBindings (t * testing.T ) {
518+ db , err := goliat .Open (":memory:" )
519+ assert .NoError (t , err )
520+ defer db .Close ()
521+
522+ err = db .Exec ("CREATE TABLE foo (bar TEXT)" )
523+ assert .NoError (t , err )
524+ stmt , err := db .Prepare ("INSERT INTO foo (bar) VALUES (?)" )
525+ assert .NoError (t , err )
526+
527+ stmt .Bind ("baz" )
528+ stmt .ClearBindings ()
529+ stmt .Bind ("qux" )
530+ assert .Equal (t , goliat .DONE , stmt .Step ())
531+
532+ var count int
533+ err = db .QueryRow ("SELECT COUNT(*) FROM foo WHERE bar = ?" , "qux" ).Scan (& count )
534+ assert .NoError (t , err )
535+ assert .Equal (t , 1 , count )
536+ }
0 commit comments