| 242 | } |
| 243 | |
| 244 | func sequentialKey(tbl, pk string, b squirrel.StatementBuilderType) bool { |
| 245 | |
| 246 | tlen := 58 |
| 247 | |
| 248 | stbl := tbl |
| 249 | if len(tbl) > 29 { |
| 250 | stbl = tbl[0:29] |
| 251 | } |
| 252 | |
| 253 | left := tlen - len(stbl) |
| 254 | spk := pk |
| 255 | if len(pk) > left { |
| 256 | spk = pk[0:left] |
| 257 | } |
| 258 | seq := fmt.Sprintf("%s_%s_seq", stbl, spk) |
| 259 | |
| 260 | q := b.Select("COUNT(*)"). |
| 261 | From("INFORMATION_SCHEMA.SEQUENCES"). |
| 262 | Where("sequence_name = ?", seq) |
| 263 | |
| 264 | var num int |
| 265 | if err := q.Scan(&num); err != nil { |
| 266 | panic(err) |
| 267 | } |
| 268 | return num > 0 |
| 269 | } |
| 270 | |
| 271 | func structField(c *column, pks []string, tbl string, b squirrel.StatementBuilderType) string { |
| 272 | tpl := "%s %s `stbl:\"%s\"`" |