Exemple #1
0
func GenerateSelectOuterQuery(sel *sqlparser.Select, tableInfo *schema.Table, alloc arena.ArenaAllocator) *sqlparser.ParsedQuery {
	buf := sqlparser.NewTrackedBuffer(nil, alloc)
	fmt.Fprintf(buf, "select ")
	writeColumnList(buf, tableInfo.Columns)
	buf.Myprintf(" from %v where %a", sel.From, ":#pk")
	return buf.ParsedQuery()
}
Exemple #2
0
func GenerateFieldQuery(statement sqlparser.Statement, alloc arena.ArenaAllocator) *sqlparser.ParsedQuery {
	buf := sqlparser.NewTrackedBuffer(FormatImpossible, alloc)
	buf.Myprintf("%v", statement)
	if buf.HasBindVars() {
		return nil
	}
	return buf.ParsedQuery()
}
Exemple #3
0
func GenerateInsertOuterQuery(ins *sqlparser.Insert, alloc arena.ArenaAllocator) *sqlparser.ParsedQuery {
	buf := sqlparser.NewTrackedBuffer(nil, alloc)
	buf.Myprintf("insert %vinto %v%v values %a%v",
		ins.Comments,
		ins.Table,
		ins.Columns,
		":#values",
		ins.OnDup,
	)
	return buf.ParsedQuery()
}
Exemple #4
0
func GenerateSelectLimitQuery(selStmt sqlparser.SelectStatement, alloc arena.ArenaAllocator) *sqlparser.ParsedQuery {
	buf := sqlparser.NewTrackedBuffer(nil, alloc)
	sel, ok := selStmt.(*sqlparser.Select)
	if ok {
		limit := sel.Limit
		if limit == nil {
			sel.Limit = execLimit
			defer func() {
				sel.Limit = nil
			}()
		}
	}
	buf.Myprintf("%v", selStmt)
	return buf.ParsedQuery()
}
Exemple #5
0
func GenerateSubquery(columns []string, table *sqlparser.AliasedTableExpr, where *sqlparser.Where, order sqlparser.OrderBy, limit *sqlparser.Limit, for_update bool, alloc arena.ArenaAllocator) *sqlparser.ParsedQuery {
	buf := sqlparser.NewTrackedBuffer(nil, alloc)
	if limit == nil {
		limit = execLimit
	}
	fmt.Fprintf(buf, "select ")
	i := 0
	for i = 0; i < len(columns)-1; i++ {
		fmt.Fprintf(buf, "%s, ", columns[i])
	}
	fmt.Fprintf(buf, "%s", columns[i])
	buf.Myprintf(" from %v%v%v%v", table, where, order, limit)
	if for_update {
		buf.Myprintf(sqlparser.AST_FOR_UPDATE)
	}
	return buf.ParsedQuery()
}
Exemple #6
0
func GenerateUpdateOuterQuery(upd *sqlparser.Update, alloc arena.ArenaAllocator) *sqlparser.ParsedQuery {
	buf := sqlparser.NewTrackedBuffer(nil, alloc)
	buf.Myprintf("update %v%v set %v where %a", upd.Comments, upd.Table, upd.Exprs, ":#pk")
	return buf.ParsedQuery()
}
Exemple #7
0
func GenerateFullQuery(statement sqlparser.Statement, alloc arena.ArenaAllocator) *sqlparser.ParsedQuery {
	buf := sqlparser.NewTrackedBuffer(nil, alloc)
	statement.Format(buf)
	return buf.ParsedQuery()
}
Exemple #8
0
func GenerateDeleteOuterQuery(del *sqlparser.Delete, alloc arena.ArenaAllocator) *sqlparser.ParsedQuery {
	buf := sqlparser.NewTrackedBuffer(nil, alloc)
	buf.Myprintf("delete %vfrom %v where %a", del.Comments, del.Table, ":#pk")
	return buf.ParsedQuery()
}