Skip to content

Commit 56b9ef1

Browse files
feat: added sqllite and named parameters
1 parent dd6b07f commit 56b9ef1

6 files changed

Lines changed: 1350 additions & 0 deletions

File tree

lit/helpers.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,8 @@ func JoinStringForIn[T any](offset int, params []string) string {
2828
return pgJoinStringForIn(offset, len(params))
2929
case MySQL:
3030
return mysqlJoinStringForIn(len(params))
31+
case SQLite:
32+
return sqliteJoinStringForIn(len(params))
3133
default:
3234
return pgJoinStringForIn(offset, len(params))
3335
}
@@ -39,6 +41,8 @@ func JoinStringForInWithDriver(driver Driver, offset int, count int) string {
3941
return pgJoinStringForIn(offset, count)
4042
case MySQL:
4143
return mysqlJoinStringForIn(count)
44+
case SQLite:
45+
return sqliteJoinStringForIn(count)
4246
default:
4347
return pgJoinStringForIn(offset, count)
4448
}

lit/lit.go

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ type Driver int
1313
const (
1414
PostgreSQL Driver = iota
1515
MySQL
16+
SQLite
1617
)
1718

1819
func (d Driver) String() string {
@@ -21,6 +22,8 @@ func (d Driver) String() string {
2122
return "PostgreSQL"
2223
case MySQL:
2324
return "MySQL"
25+
case SQLite:
26+
return "SQLite"
2427
default:
2528
return "Unknown"
2629
}
@@ -46,6 +49,16 @@ func (d Driver) InsertAndGetId(ex Executor, query string, args ...any) (int, err
4649
return 0, err
4750
}
4851
return int(id), nil
52+
case SQLite:
53+
result, err := ex.Exec(query, args...)
54+
if err != nil {
55+
return 0, err
56+
}
57+
id, err := result.LastInsertId()
58+
if err != nil {
59+
return 0, err
60+
}
61+
return int(id), nil
4962
default:
5063
return 0, fmt.Errorf("unsupported driver: %v", d)
5164
}
@@ -164,6 +177,8 @@ func RegisterModelWithNaming[T any](driver Driver, namingStrategy DbNamingStrate
164177
queryGenerator = PgInsertUpdateQueryGenerator{}
165178
case MySQL:
166179
queryGenerator = MySqlInsertUpdateQueryGenerator{}
180+
case SQLite:
181+
queryGenerator = SqliteInsertUpdateQueryGenerator{}
167182
default:
168183
panic(fmt.Sprintf("unsupported driver: %v", driver))
169184
}

0 commit comments

Comments
 (0)