code.vegaprotocol.io/vega@v0.79.0/blockexplorer/store/utils.go (about) 1 // Copyright (C) 2023 Gobalsky Labs Limited 2 // 3 // This program is free software: you can redistribute it and/or modify 4 // it under the terms of the GNU Affero General Public License as 5 // published by the Free Software Foundation, either version 3 of the 6 // License, or (at your option) any later version. 7 // 8 // This program is distributed in the hope that it will be useful, 9 // but WITHOUT ANY WARRANTY; without even the implied warranty of 10 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 // GNU Affero General Public License for more details. 12 // 13 // You should have received a copy of the GNU Affero General Public License 14 // along with this program. If not, see <http://www.gnu.org/licenses/>. 15 16 package store 17 18 import "strconv" 19 20 // A handy little helper function for building queries. Appends 'value' 21 // to the 'args' slice and returns a string '$N' referring to the index 22 // of the value in args. For example: 23 // 24 // var args []interface{} 25 // query = "select * from foo where id=" + nextBindVar(&args, 100) 26 // db.Query(query, args...) 27 func nextBindVar(args *[]interface{}, value interface{}) string { 28 *args = append(*args, value) 29 return "$" + strconv.Itoa(len(*args)) 30 }