Add Spanner dialect to pkg/storage/unified/sql/sqltemplate package. (#102121)

pull/102125/head
Peter Štibraný 4 months ago committed by GitHub
parent 20b91cfa04
commit 6f12712ad6
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
  1. 2
      pkg/storage/unified/sql/sqltemplate/dialect.go
  2. 32
      pkg/storage/unified/sql/sqltemplate/dialect_spanner.go

@ -24,6 +24,8 @@ func DialectForDriver(driverName string) Dialect {
return PostgreSQL
case "sqlite", "sqlite3":
return SQLite
case "spanner":
return Spanner
default:
return nil
}

@ -0,0 +1,32 @@
package sqltemplate
// Spanner is an implementation of Dialect for the Google Spanner database.
var Spanner = spanner{}
var _ Dialect = Spanner
type spanner struct{}
func (s spanner) DialectName() string {
return "spanner"
}
func (s spanner) Ident(a string) (string, error) {
return backtickIdent{}.Ident(a)
}
func (s spanner) ArgPlaceholder(argNum int) string {
return argFmtSQL92.ArgPlaceholder(argNum)
}
func (s spanner) SelectFor(a ...string) (string, error) {
return rowLockingClauseSpanner.SelectFor(a...)
}
func (spanner) CurrentEpoch() string {
return "UNIX_MICROS(CURRENT_TIMESTAMP())"
}
var rowLockingClauseSpanner = rowLockingClauseMap{
SelectForUpdate: SelectForUpdate,
}
Loading…
Cancel
Save