8
8
"os"
9
9
"os/signal"
10
10
"strconv"
11
- "sync"
12
11
"syscall"
13
12
14
13
"github.com/fatih/color"
@@ -56,20 +55,6 @@ func validateConfirmation(value string) (bool, error) {
56
55
return false , errors .New ("invalid value supplied" )
57
56
}
58
57
59
- // createPartition executes the CREATE INDEX queries.
60
- func createPartition (db * sql.DB , query string , wg * sync.WaitGroup , concurrency bool ) {
61
- if concurrency == true {
62
- defer wg .Done ()
63
- }
64
-
65
- cyan .Println (fmt .Sprintf ("Executing '%s'" , query ))
66
- _ , err := db .Exec (query )
67
-
68
- if err != nil {
69
- red .Println (err )
70
- }
71
- }
72
-
73
58
func main () {
74
59
scanner := bufio .NewScanner (os .Stdin )
75
60
@@ -150,7 +135,7 @@ func main() {
150
135
yellow .Println ("Connnected!" )
151
136
152
137
tr:
153
- // TABLE NAME REGEX.
138
+ // TABLE NAME REGEX.
154
139
tableNameRegex := ""
155
140
for {
156
141
green .Print ("Table name regex to apply index (E.g. tablename_.*_.*): " )
@@ -234,21 +219,10 @@ tr:
234
219
}
235
220
}
236
221
237
- var concurrency bool
238
- for {
239
- green .Print ("Execute queries concurrently? [y/n]: " )
240
- scanner .Scan ()
241
- concurrency , err = validateConfirmation (scanner .Text ())
242
-
243
- if err == nil {
244
- break
245
- }
246
- }
247
-
248
222
var queries []string
249
223
for _ , table := range tables {
250
224
fullIndexName := fmt .Sprintf ("%s_%s" , table , indexName )
251
- indexQuery := fmt .Sprintf (`CREATE %s INDEX %s ON %s (%s);` , uniqueIndexStr , fullIndexName , table , indexColumns )
225
+ indexQuery := fmt .Sprintf (`CREATE %s INDEX CONCURRENTLY %s ON %s (%s);` , uniqueIndexStr , fullIndexName , table , indexColumns )
252
226
queries = append (queries , indexQuery )
253
227
cyan .Println (indexQuery )
254
228
}
@@ -267,17 +241,14 @@ tr:
267
241
if ! execute {
268
242
os .Exit (0 )
269
243
}
270
-
271
- var wg sync.WaitGroup
272
244
for _ , query := range queries {
273
- if concurrency {
274
- wg . Add ( 1 )
275
- go createPartition ( db , query , & wg , concurrency )
276
- } else {
277
- createPartition ( db , query , & wg , concurrency )
245
+ cyan . Println ( fmt . Sprintf ( "Executing '%s'" , query ))
246
+ _ , err := db . Exec ( query )
247
+
248
+ if err != nil {
249
+ red . Println ( err )
278
250
}
279
251
}
280
252
281
- wg .Wait ()
282
253
green .Println ("All queries executed!" )
283
254
}
0 commit comments