diff options
| author | Stefan Majewsky <majewsky@gmx.net> | 2026-04-10 20:13:15 +0200 |
|---|---|---|
| committer | Stefan Majewsky <majewsky@gmx.net> | 2026-04-10 20:13:15 +0200 |
| commit | 293e2a52e0b45065db12ff27f89f1adebe4bf4d2 (patch) | |
| tree | 2e7efecdf5ee359df9c6b09ece3443ea33432462 /dialect.go | |
| parent | e0fb5aa0acc1983648ab1480f22114aead234eeb (diff) | |
| download | go-oblast-293e2a52e0b45065db12ff27f89f1adebe4bf4d2.tar.gz | |
reorganize code
Diffstat (limited to 'dialect.go')
| -rw-r--r-- | dialect.go | 30 |
1 files changed, 3 insertions, 27 deletions
@@ -3,10 +3,7 @@ package oblast -import ( - "strconv" - "strings" -) +import "go.xyrillian.de/oblast/internal" // Dialect accounts for differences between different SQL dialects // that are relevant to query generation within Oblast. @@ -40,31 +37,10 @@ type Dialect interface { // PostgresDialect is the dialect of PostgreSQL databases. func PostgresDialect() Dialect { - return postgresDialect{} -} - -type postgresDialect struct{} - -func (postgresDialect) Placeholder(i int) string { return "$" + strconv.Itoa(i) } -func (postgresDialect) QuoteIdentifier(name string) string { return `"` + name + `"` } -func (postgresDialect) UsesLastInsertID() bool { return false } - -func (p postgresDialect) InsertSuffixForAutoColumns(columns []string) string { - quotedColumns := make([]string, len(columns)) - for idx, name := range columns { - quotedColumns[idx] = p.QuoteIdentifier(name) - } - return ` RETURNING ` + strings.Join(quotedColumns, ", ") + return internal.PostgresDialect{} } // SqliteDialect is the dialect of SQLite databases. func SqliteDialect() Dialect { - return sqliteDialect{} + return internal.SqliteDialect{} } - -type sqliteDialect struct{} - -func (sqliteDialect) Placeholder(_ int) string { return "?" } -func (sqliteDialect) QuoteIdentifier(name string) string { return `"` + name + `"` } -func (sqliteDialect) UsesLastInsertID() bool { return true } -func (sqliteDialect) InsertSuffixForAutoColumns(columns []string) string { return "" } |
