mirror of
				https://github.com/superseriousbusiness/gotosocial.git
				synced 2025-10-31 18:32:25 -05:00 
			
		
		
		
	[feature] Default to WASM-based SQLite driver (#3053)
* [feature] Default to WASM-based SQLite driver With 0.16 out this switches our default SQLite driver to the WASM-based solution instead. So far the driver seems to perform just as well. Switching our default should result in it getting a bit more testing during the 0.17 development cycle. * add the ol' john hancock --------- Co-authored-by: tobi <tobi.smethurst@protonmail.com>
This commit is contained in:
		
					parent
					
						
							
								86786ae5b3
							
						
					
				
			
			
				commit
				
					
						137ef5a9ff
					
				
			
		
					 7 changed files with 111 additions and 111 deletions
				
			
		|  | @ -15,7 +15,7 @@ | |||
| // You should have received a copy of the GNU Affero General Public License | ||||
| // along with this program.  If not, see <http://www.gnu.org/licenses/>. | ||||
| 
 | ||||
| //go:build !wasmsqlite3 | ||||
| //go:build !moderncsqlite3 | ||||
| 
 | ||||
| package sqlite | ||||
| 
 | ||||
|  | @ -23,9 +23,7 @@ import ( | |||
| 	"database/sql/driver" | ||||
| 	"fmt" | ||||
| 
 | ||||
| 	"modernc.org/sqlite" | ||||
| 	sqlite3 "modernc.org/sqlite/lib" | ||||
| 
 | ||||
| 	"github.com/ncruces/go-sqlite3" | ||||
| 	"github.com/superseriousbusiness/gotosocial/internal/db" | ||||
| ) | ||||
| 
 | ||||
|  | @ -33,30 +31,30 @@ import ( | |||
| // handle conversion to any of our common db types. | ||||
| func processSQLiteError(err error) error { | ||||
| 	// Attempt to cast as sqlite error. | ||||
| 	sqliteErr, ok := err.(*sqlite.Error) | ||||
| 	sqliteErr, ok := err.(*sqlite3.Error) | ||||
| 	if !ok { | ||||
| 		return err | ||||
| 	} | ||||
| 
 | ||||
| 	// Handle supplied error code: | ||||
| 	switch sqliteErr.Code() { | ||||
| 	case sqlite3.SQLITE_CONSTRAINT_UNIQUE, | ||||
| 		sqlite3.SQLITE_CONSTRAINT_PRIMARYKEY: | ||||
| 	switch sqliteErr.ExtendedCode() { | ||||
| 	case sqlite3.CONSTRAINT_UNIQUE, | ||||
| 		sqlite3.CONSTRAINT_PRIMARYKEY: | ||||
| 		return db.ErrAlreadyExists | ||||
| 
 | ||||
| 	// Busy should be very rare, but | ||||
| 	// on busy tell the database to close | ||||
| 	// the connection, re-open and re-attempt | ||||
| 	// which should give a necessary timeout. | ||||
| 	case sqlite3.SQLITE_BUSY, | ||||
| 		sqlite3.SQLITE_BUSY_RECOVERY, | ||||
| 		sqlite3.SQLITE_BUSY_SNAPSHOT: | ||||
| 	// Busy should be very rare, but on | ||||
| 	// busy tell the database to close the | ||||
| 	// connection, re-open and re-attempt | ||||
| 	// which should give necessary timeout. | ||||
| 	case sqlite3.BUSY_RECOVERY, | ||||
| 		sqlite3.BUSY_SNAPSHOT: | ||||
| 		return driver.ErrBadConn | ||||
| 	} | ||||
| 
 | ||||
| 	// Wrap the returned error with the code and | ||||
| 	// extended code for easier debugging later. | ||||
| 	return fmt.Errorf("%w (code=%d)", err, | ||||
| 	return fmt.Errorf("%w (code=%d extended=%d)", err, | ||||
| 		sqliteErr.Code(), | ||||
| 		sqliteErr.ExtendedCode(), | ||||
| 	) | ||||
| } | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue