mirror of
https://github.com/ncruces/go-sqlite3.git
synced 2026-01-12 22:19:14 +00:00
40 lines
740 B
Go
40 lines
740 B
Go
package csv
|
|
|
|
import (
|
|
"strconv"
|
|
"strings"
|
|
|
|
"github.com/ncruces/go-sqlite3"
|
|
)
|
|
|
|
func getSchema(header bool, columns int, row []string) string {
|
|
var sep string
|
|
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.WriteString("c")
|
|
str.WriteString(strconv.Itoa(i + 1))
|
|
}
|
|
str.WriteString(" TEXT")
|
|
sep = ","
|
|
}
|
|
for i := len(row); i < columns; i++ {
|
|
str.WriteString(sep)
|
|
str.WriteString("c")
|
|
str.WriteString(strconv.Itoa(i + 1))
|
|
str.WriteString(" TEXT")
|
|
sep = ","
|
|
}
|
|
str.WriteByte(')')
|
|
|
|
return str.String()
|
|
}
|