From be06dee04ce46de2da222fc9b2be4fc3b68b816d Mon Sep 17 00:00:00 2001 From: Lunny Xiao Date: Mon, 9 Dec 2019 03:15:35 +0800 Subject: Move code indexer related code to a new package (#9191) * move code indexer related code to a new package * fix lint * fix tests * fix fmt * GetMaxID support interface parameter --- models/models.go | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) (limited to 'models/models.go') diff --git a/models/models.go b/models/models.go index 854cb33b14..8c10e7abfc 100644 --- a/models/models.go +++ b/models/models.go @@ -254,3 +254,28 @@ func MaxBatchInsertSize(bean interface{}) int { func Count(bean interface{}) (int64, error) { return x.Count(bean) } + +// IsTableNotEmpty returns true if table has at least one record +func IsTableNotEmpty(tableName string) (bool, error) { + return x.Table(tableName).Exist() +} + +// DeleteAllRecords will delete all the records of this table +func DeleteAllRecords(tableName string) error { + _, err := x.Exec(fmt.Sprintf("DELETE FROM %s", tableName)) + return err +} + +// GetMaxID will return max id of the table +func GetMaxID(beanOrTableName interface{}) (maxID int64, err error) { + _, err = x.Select("MAX(id)").Table(beanOrTableName).Get(&maxID) + return +} + +// FindByMaxID filled results as the condition from database +func FindByMaxID(maxID int64, limit int, results interface{}) error { + return x.Where("id <= ?", maxID). + OrderBy("id DESC"). + Limit(limit). + Find(results) +} -- cgit v1.2.3