mirror of
				https://github.com/go-gitea/gitea.git
				synced 2025-10-29 10:57:44 +09:00 
			
		
		
		
	Fix label count (#8267)
* fix label count * fix vendor * fix import order * update xorm to fix bug * fix tests * fix mssql bug
This commit is contained in:
		
							
								
								
									
										113
									
								
								vendor/xorm.io/builder/builder.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										113
									
								
								vendor/xorm.io/builder/builder.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -7,7 +7,6 @@ package builder | ||||
| import ( | ||||
| 	sql2 "database/sql" | ||||
| 	"fmt" | ||||
| 	"sort" | ||||
| ) | ||||
|  | ||||
| type optype byte | ||||
| @@ -21,6 +20,7 @@ const ( | ||||
| 	unionType                // union | ||||
| ) | ||||
|  | ||||
| // all databasees | ||||
| const ( | ||||
| 	POSTGRES = "postgres" | ||||
| 	SQLITE   = "sqlite3" | ||||
| @@ -31,7 +31,7 @@ const ( | ||||
|  | ||||
| type join struct { | ||||
| 	joinType  string | ||||
| 	joinTable string | ||||
| 	joinTable interface{} | ||||
| 	joinCond  Cond | ||||
| } | ||||
|  | ||||
| @@ -60,7 +60,7 @@ type Builder struct { | ||||
| 	limitation *limit | ||||
| 	insertCols []string | ||||
| 	insertVals []interface{} | ||||
| 	updates    []Eq | ||||
| 	updates    []UpdateCond | ||||
| 	orderBy    string | ||||
| 	groupBy    string | ||||
| 	having     string | ||||
| @@ -143,18 +143,6 @@ func (b *Builder) Into(tableName string) *Builder { | ||||
| 	return b | ||||
| } | ||||
|  | ||||
| // Join sets join table and conditions | ||||
| func (b *Builder) Join(joinType, joinTable string, joinCond interface{}) *Builder { | ||||
| 	switch joinCond.(type) { | ||||
| 	case Cond: | ||||
| 		b.joins = append(b.joins, join{joinType, joinTable, joinCond.(Cond)}) | ||||
| 	case string: | ||||
| 		b.joins = append(b.joins, join{joinType, joinTable, Expr(joinCond.(string))}) | ||||
| 	} | ||||
|  | ||||
| 	return b | ||||
| } | ||||
|  | ||||
| // Union sets union conditions | ||||
| func (b *Builder) Union(unionTp string, unionCond *Builder) *Builder { | ||||
| 	var builder *Builder | ||||
| @@ -199,31 +187,6 @@ func (b *Builder) Limit(limitN int, offset ...int) *Builder { | ||||
| 	return b | ||||
| } | ||||
|  | ||||
| // InnerJoin sets inner join | ||||
| func (b *Builder) InnerJoin(joinTable string, joinCond interface{}) *Builder { | ||||
| 	return b.Join("INNER", joinTable, joinCond) | ||||
| } | ||||
|  | ||||
| // LeftJoin sets left join SQL | ||||
| func (b *Builder) LeftJoin(joinTable string, joinCond interface{}) *Builder { | ||||
| 	return b.Join("LEFT", joinTable, joinCond) | ||||
| } | ||||
|  | ||||
| // RightJoin sets right join SQL | ||||
| func (b *Builder) RightJoin(joinTable string, joinCond interface{}) *Builder { | ||||
| 	return b.Join("RIGHT", joinTable, joinCond) | ||||
| } | ||||
|  | ||||
| // CrossJoin sets cross join SQL | ||||
| func (b *Builder) CrossJoin(joinTable string, joinCond interface{}) *Builder { | ||||
| 	return b.Join("CROSS", joinTable, joinCond) | ||||
| } | ||||
|  | ||||
| // FullJoin sets full join SQL | ||||
| func (b *Builder) FullJoin(joinTable string, joinCond interface{}) *Builder { | ||||
| 	return b.Join("FULL", joinTable, joinCond) | ||||
| } | ||||
|  | ||||
| // Select sets select SQL | ||||
| func (b *Builder) Select(cols ...string) *Builder { | ||||
| 	b.selects = cols | ||||
| @@ -245,68 +208,12 @@ func (b *Builder) Or(cond Cond) *Builder { | ||||
| 	return b | ||||
| } | ||||
|  | ||||
| type insertColsSorter struct { | ||||
| 	cols []string | ||||
| 	vals []interface{} | ||||
| } | ||||
|  | ||||
| func (s insertColsSorter) Len() int { | ||||
| 	return len(s.cols) | ||||
| } | ||||
| func (s insertColsSorter) Swap(i, j int) { | ||||
| 	s.cols[i], s.cols[j] = s.cols[j], s.cols[i] | ||||
| 	s.vals[i], s.vals[j] = s.vals[j], s.vals[i] | ||||
| } | ||||
|  | ||||
| func (s insertColsSorter) Less(i, j int) bool { | ||||
| 	return s.cols[i] < s.cols[j] | ||||
| } | ||||
|  | ||||
| // Insert sets insert SQL | ||||
| func (b *Builder) Insert(eq ...interface{}) *Builder { | ||||
| 	if len(eq) > 0 { | ||||
| 		var paramType = -1 | ||||
| 		for _, e := range eq { | ||||
| 			switch t := e.(type) { | ||||
| 			case Eq: | ||||
| 				if paramType == -1 { | ||||
| 					paramType = 0 | ||||
| 				} | ||||
| 				if paramType != 0 { | ||||
| 					break | ||||
| 				} | ||||
| 				for k, v := range t { | ||||
| 					b.insertCols = append(b.insertCols, k) | ||||
| 					b.insertVals = append(b.insertVals, v) | ||||
| 				} | ||||
| 			case string: | ||||
| 				if paramType == -1 { | ||||
| 					paramType = 1 | ||||
| 				} | ||||
| 				if paramType != 1 { | ||||
| 					break | ||||
| 				} | ||||
| 				b.insertCols = append(b.insertCols, t) | ||||
| 			} | ||||
| 		} | ||||
| 	} | ||||
|  | ||||
| 	if len(b.insertCols) == len(b.insertVals) { | ||||
| 		sort.Sort(insertColsSorter{ | ||||
| 			cols: b.insertCols, | ||||
| 			vals: b.insertVals, | ||||
| 		}) | ||||
| 	} | ||||
| 	b.optype = insertType | ||||
| 	return b | ||||
| } | ||||
|  | ||||
| // Update sets update SQL | ||||
| func (b *Builder) Update(updates ...Eq) *Builder { | ||||
| 	b.updates = make([]Eq, 0, len(updates)) | ||||
| func (b *Builder) Update(updates ...Cond) *Builder { | ||||
| 	b.updates = make([]UpdateCond, 0, len(updates)) | ||||
| 	for _, update := range updates { | ||||
| 		if update.IsValid() { | ||||
| 			b.updates = append(b.updates, update) | ||||
| 		if u, ok := update.(UpdateCond); ok && u.IsValid() { | ||||
| 			b.updates = append(b.updates, u) | ||||
| 		} | ||||
| 	} | ||||
| 	b.optype = updateType | ||||
| @@ -354,7 +261,7 @@ func (b *Builder) ToSQL() (string, []interface{}, error) { | ||||
| 		} | ||||
| 	} | ||||
|  | ||||
| 	var sql = w.writer.String() | ||||
| 	var sql = w.String() | ||||
| 	var err error | ||||
|  | ||||
| 	switch b.dialect { | ||||
| @@ -383,12 +290,12 @@ func (b *Builder) ToSQL() (string, []interface{}, error) { | ||||
| 	return sql, w.args, nil | ||||
| } | ||||
|  | ||||
| // ToBoundSQL | ||||
| // ToBoundSQL generated a bound SQL string | ||||
| func (b *Builder) ToBoundSQL() (string, error) { | ||||
| 	w := NewWriter() | ||||
| 	if err := b.WriteTo(w); err != nil { | ||||
| 		return "", err | ||||
| 	} | ||||
|  | ||||
| 	return ConvertToBoundSQL(w.writer.String(), w.args) | ||||
| 	return ConvertToBoundSQL(w.String(), w.args) | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user