func GenerateSelectOuterQuery(sel *sqlparser.Select, tableInfo *schema.Table) *sqlparser.ParsedQuery { buf := sqlparser.NewTrackedBuffer(nil) fmt.Fprintf(buf, "select ") writeColumnList(buf, tableInfo.Columns) buf.Myprintf(" from %v where %a", sel.From, ":#pk") return buf.ParsedQuery() }
func GenerateFieldQuery(statement sqlparser.Statement) *sqlparser.ParsedQuery { buf := sqlparser.NewTrackedBuffer(FormatImpossible) buf.Myprintf("%v", statement) if buf.HasBindVars() { return nil } return buf.ParsedQuery() }
func GenerateInsertOuterQuery(ins *sqlparser.Insert) *sqlparser.ParsedQuery { buf := sqlparser.NewTrackedBuffer(nil) buf.Myprintf("insert %vinto %v%v values %a%v", ins.Comments, ins.Table, ins.Columns, ":#values", ins.OnDup, ) return buf.ParsedQuery() }
func GenerateSelectLimitQuery(selStmt sqlparser.SelectStatement) *sqlparser.ParsedQuery { buf := sqlparser.NewTrackedBuffer(nil) 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() }
func analyze(line []byte) { for _, ignore := range ignores { if bytes.HasPrefix(line, ignore) { return } } dml := string(bytes.TrimRight(line, "\n")) ast, err := sqlparser.Parse(dml) if err != nil { log.Errorf("Error parsing %s", dml) return } bindIndex = 0 buf := sqlparser.NewTrackedBuffer(FormatWithBind) buf.Myprintf("%v", ast) addQuery(buf.ParsedQuery().Query) }
func GenerateSubquery(columns []string, table *sqlparser.AliasedTableExpr, where *sqlparser.Where, order sqlparser.OrderBy, limit *sqlparser.Limit, for_update bool) *sqlparser.ParsedQuery { buf := sqlparser.NewTrackedBuffer(nil) 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() }
func GenerateDeleteOuterQuery(del *sqlparser.Delete) *sqlparser.ParsedQuery { buf := sqlparser.NewTrackedBuffer(nil) buf.Myprintf("delete %vfrom %v where %a", del.Comments, del.Table, ":#pk") return buf.ParsedQuery() }
func GenerateUpdateOuterQuery(upd *sqlparser.Update) *sqlparser.ParsedQuery { buf := sqlparser.NewTrackedBuffer(nil) buf.Myprintf("update %v%v set %v where %a", upd.Comments, upd.Table, upd.Exprs, ":#pk") return buf.ParsedQuery() }
func GenerateFullQuery(statement sqlparser.Statement) *sqlparser.ParsedQuery { buf := sqlparser.NewTrackedBuffer(nil) statement.Format(buf) return buf.ParsedQuery() }
func generateQuery(statement sqlparser.Statement) string { buf := sqlparser.NewTrackedBuffer(nil) statement.Format(buf) return buf.String() }