func (m *Model) AddVirtualColumn(name string, v Identifier) {
	if m.virtualColumns == nil {
		m.ClearVirtualColumns()
	}
	m.virtualColumns[name] = v
}
AddVirtualColumn adds a new virtual column with the given name and value.
This method is only intended for internal use. It is only exposed for
technical reasons.
package kallax
import (
	"bytes"
	"crypto/rand"
	"database/sql"
	"database/sql/driver"
	"encoding/hex"
	"fmt"
	"time"
	"github.com/gofrs/uuid"
	"github.com/oklog/ulid"
)
type Model struct {
	virtualColumns map[string]Identifier
	persisted      bool
	writable       bool
	saving         bool
}
func NewModel() Model {
	return Model{
		persisted:      false,
		writable:       true,
		virtualColumns: make(map[string]Identifier),
		saving:         false,
	}
}
func (m *Model) IsPersisted() bool {
	return m.persisted
}
func (m *Model) setPersisted() {
	m.persisted = true
}
func (m *Model) IsWritable() bool {
	return m.writable
}
func (m *Model) setWritable(w bool) {
	m.writable = w
}
func (m *Model) IsSaving() bool {
	return m.saving
}
func (m *Model) SetSaving(saving bool) {
	m.saving = saving
}
func (m *Model) ClearVirtualColumns() {
	m.virtualColumns = make(map[string]Identifier)
}
func (m *Model) getVirtualColumns() map[string]Identifier {
	return m.virtualColumns
}