mirror of
https://github.com/ncruces/go-sqlite3.git
synced 2026-01-12 22:19:14 +00:00
38 lines
680 B
Go
38 lines
680 B
Go
package csv
|
|
|
|
import (
|
|
"strconv"
|
|
"strings"
|
|
|
|
"github.com/ncruces/go-sqlite3"
|
|
)
|
|
|
|
func getSchema(header bool, columns int, row []string) string {
|
|
var sep = ""
|
|
var str strings.Builder
|
|
str.WriteString(`CREATE TABLE x(`)
|
|
|
|
if 0 <= columns && columns < len(row) {
|
|
row = row[:columns]
|
|
}
|
|
for i, f := range row {
|
|
str.WriteString(sep)
|
|
if header && f != "" {
|
|
str.WriteString(sqlite3.QuoteIdentifier(f))
|
|
} else {
|
|
str.WriteByte('c')
|
|
str.WriteString(strconv.Itoa(i + 1))
|
|
}
|
|
sep = ","
|
|
}
|
|
for i := len(row); i < columns; i++ {
|
|
str.WriteString(sep)
|
|
str.WriteByte('c')
|
|
str.WriteString(strconv.Itoa(i + 1))
|
|
sep = ","
|
|
}
|
|
str.WriteByte(')')
|
|
|
|
return str.String()
|
|
}
|