42 lines
945 B
Go
42 lines
945 B
Go
// +build !go1.8
|
|
|
|
package gorm
|
|
|
|
import "fmt"
|
|
|
|
func (s sqlite3) HasIndex(tableName string, indexName string) bool {
|
|
var count int
|
|
s.db.QueryRow(fmt.Sprintf(querySQLite3HasIndex, indexName), tableName).Scan(&count)
|
|
return count > 0
|
|
}
|
|
|
|
func (s sqlite3) HasTable(tableName string) bool {
|
|
var count int
|
|
s.db.QueryRow(querySQLite3HasTable, tableName).Scan(&count)
|
|
return count > 0
|
|
}
|
|
|
|
func (s sqlite3) HasColumn(tableName string, columnName string) bool {
|
|
var count int
|
|
s.db.QueryRow(fmt.Sprintf(querySQLite3HasColumn, columnName, columnName), tableName).Scan(&count)
|
|
return count > 0
|
|
}
|
|
|
|
func (s sqlite3) CurrentDatabase() (name string) {
|
|
var (
|
|
ifaces = make([]interface{}, 3)
|
|
pointers = make([]*string, 3)
|
|
i int
|
|
)
|
|
for i = 0; i < 3; i++ {
|
|
ifaces[i] = &pointers[i]
|
|
}
|
|
if err := s.db.QueryRow(querySQLite3CurrentDatabase).Scan(ifaces...); err != nil {
|
|
return
|
|
}
|
|
if pointers[1] != nil {
|
|
name = *pointers[1]
|
|
}
|
|
return
|
|
}
|