File tree Expand file tree Collapse file tree 2 files changed +2
-54
lines changed Expand file tree Collapse file tree 2 files changed +2
-54
lines changed Original file line number Diff line number Diff line change 11package backend
22
3- import "regexp"
4-
53// RequestModifier is a function type that transforms a query string
64type RequestModifier func (string , * []ResultModifier ) string
75
8- // Precompile regex for performance
9- var autoIncrementRegex = regexp .MustCompile (`(?i)AUTO_INCREMENT=\d+` )
10- var showSlaveStatusRegex = regexp .MustCompile (`(?i)^show\s+slave\s+status\s*;?$` )
11-
126// default request modifier list
13- var defaultRequestModifiers = []RequestModifier {
14- replaceAutoIncrement ,
15- replaceShowSlaveStatus ,
16- }
17-
18- func replaceAutoIncrement (query string , modifiers * []ResultModifier ) string {
19- if autoIncrementRegex .MatchString (query ) {
20- query = autoIncrementRegex .ReplaceAllString (query , "" )
21- }
22- return query
23- }
24-
25- func replaceShowSlaveStatus (query string , modifiers * []ResultModifier ) string {
26- if showSlaveStatusRegex .MatchString (query ) {
27- * modifiers = append (* modifiers , replaceShowSlaveStatusFieldNames )
28- query = showSlaveStatusRegex .ReplaceAllString (query , "SHOW REPLICA STATUS;" )
29- }
30- return query
31- }
7+ var defaultRequestModifiers = []RequestModifier {}
328
339// applyRequestModifiers applies request modifiers to a query
3410func applyRequestModifiers (query string , requestModifiers []RequestModifier ) (string , []ResultModifier ) {
Original file line number Diff line number Diff line change 11package backend
22
33import (
4- "regexp"
5-
64 "github.com/dolthub/vitess/go/sqltypes"
75)
86
9- // ResultModifier is a function type that transforms a Result
7+ // ResultModifier transforms a Result.
108type ResultModifier func (* sqltypes.Result ) * sqltypes.Result
11-
12- var (
13- replicaRegex = regexp .MustCompile (`^Replica_` )
14- sourceRegex = regexp .MustCompile (`Source` )
15- )
16-
17- // replaceFieldNames modifies field names to maintain compatibility with older MySQL clients
18- // by replacing "Replica_" with "Slave_" and "Source" with "Master"
19- func replaceShowSlaveStatusFieldNames (result * sqltypes.Result ) * sqltypes.Result {
20- if result == nil || result .Fields == nil {
21- return result
22- }
23-
24- for i , field := range result .Fields {
25- name := field .Name
26- // Replace any "Replica_" with "Slave_"
27- if replicaRegex .MatchString (name ) {
28- result .Fields [i ].Name = replicaRegex .ReplaceAllString (name , "Slave_" )
29- }
30- // Replace any "Source" with "Master"
31- if sourceRegex .MatchString (name ) {
32- result .Fields [i ].Name = sourceRegex .ReplaceAllString (name , "Master" )
33- }
34- }
35- return result
36- }
You can’t perform that action at this time.
0 commit comments