@@ -100,11 +100,7 @@ func (r *Results) Next(t ...reflect.Type) ([]interface{}, error) {
100100 r .cols [i ] = v
101101 }
102102 } else {
103- if v , err := r .value (i ); err != nil {
104- result = multierror .Append (result , err )
105- } else {
106- r .cols [i ] = v
107- }
103+ r .cols [i ] = r .value (i )
108104 }
109105 }
110106
@@ -188,21 +184,8 @@ func (r *Results) ColumnOriginName(i int) string {
188184///////////////////////////////////////////////////////////////////////////////
189185// PRIVATE METHODS
190186
191- func (r * Results ) value (index int ) (interface {}, error ) {
192- switch r .st .ColumnType (index ) {
193- case SQLITE_INTEGER :
194- return r .st .ColumnInt64 (index ), nil
195- case SQLITE_FLOAT :
196- return r .st .ColumnDouble (index ), nil
197- case SQLITE_TEXT :
198- return r .st .ColumnText (index ), nil
199- case SQLITE_BLOB :
200- return r .st .ColumnBlob (index ), nil
201- case SQLITE_NULL :
202- return nil , nil
203- default :
204- return nil , fmt .Errorf ("Unsupported column type %d" , r .st .ColumnType (index ))
205- }
187+ func (r * Results ) value (index int ) interface {} {
188+ return r .st .ColumnInterface (index )
206189}
207190
208191func (r * Results ) castvalue (index int , t reflect.Type ) (interface {}, error ) {
@@ -251,7 +234,7 @@ func (r *Results) castvalue(index int, t reflect.Type) (interface{}, error) {
251234 }
252235 case typeBlob :
253236 if st == SQLITE_BLOB {
254- return r .st .ColumnBlob (index ), nil
237+ return r .st .ColumnBlob (index , true ), nil
255238 } else if st == SQLITE_TEXT {
256239 return []byte (r .st .ColumnText (index )), nil
257240 }
0 commit comments