@@ -19,18 +19,6 @@ import (
1919
2020var ErrUnsupportedStatementType = errors .New ("parseQuery: unsupported statement type" )
2121
22- func rewriteNumberedParameters (refs []paramRef , raw * ast.RawStmt , sql string ) ([]source.Edit , error ) {
23- edits := make ([]source.Edit , len (refs ))
24- for i , ref := range refs {
25- edits [i ] = source.Edit {
26- Location : ref .ref .Location - raw .StmtLocation ,
27- Old : fmt .Sprintf ("$%d" , ref .ref .Number ),
28- New : "?" ,
29- }
30- }
31- return edits , nil
32- }
33-
3422func (c * Compiler ) parseQuery (stmt ast.Node , src string , o opts.Parser ) (* Query , error ) {
3523 if o .Debug .DumpAST {
3624 debug .Dump (stmt )
@@ -90,19 +78,14 @@ func (c *Compiler) parseQuery(stmt ast.Node, src string, o opts.Parser) (*Query,
9078 if err != nil {
9179 return nil , err
9280 }
93- if o .UsePositionalParameters {
94- edits , err = rewriteNumberedParameters (refs , raw , rawSQL )
95- if err != nil {
96- return nil , err
97- }
81+
82+ refs = uniqueParamRefs (refs , dollar )
83+ if c .conf .Engine == config .EngineMySQL || ! dollar {
84+ sort .Slice (refs , func (i , j int ) bool { return refs [i ].ref .Location < refs [j ].ref .Location })
9885 } else {
99- refs = uniqueParamRefs (refs , dollar )
100- if c .conf .Engine == config .EngineMySQL || ! dollar {
101- sort .Slice (refs , func (i , j int ) bool { return refs [i ].ref .Location < refs [j ].ref .Location })
102- } else {
103- sort .Slice (refs , func (i , j int ) bool { return refs [i ].ref .Number < refs [j ].ref .Number })
104- }
86+ sort .Slice (refs , func (i , j int ) bool { return refs [i ].ref .Number < refs [j ].ref .Number })
10587 }
88+
10689 qc , err := buildQueryCatalog (c .catalog , raw .Stmt )
10790 if err != nil {
10891 return nil , err
0 commit comments