Add vendor directory and update vendorHash to null

This commit is contained in:
soup 2026-01-17 22:29:54 -05:00
parent 523831cb8d
commit 1e5424c844
Signed by: soup
SSH key fingerprint: SHA256:GYxje8eQkJ6HZKzVWDdyOUF1TyDiprruGhE0Ym8qYDY
778 changed files with 407919 additions and 1 deletions

View file

@ -0,0 +1,53 @@
package dialects
import (
"fmt"
"github.com/pressly/goose/v3/database/dialect"
)
// NewClickhouse returns a new [dialect.Querier] for Clickhouse dialect.
func NewClickhouse() dialect.Querier {
return &clickhouse{}
}
type clickhouse struct{}
var _ dialect.Querier = (*clickhouse)(nil)
func (c *clickhouse) CreateTable(tableName string) string {
q := `CREATE TABLE IF NOT EXISTS %s (
version_id Int64,
is_applied UInt8,
date Date default now(),
tstamp DateTime default now()
)
ENGINE = MergeTree()
ORDER BY (date)`
return fmt.Sprintf(q, tableName)
}
func (c *clickhouse) InsertVersion(tableName string) string {
q := `INSERT INTO %s (version_id, is_applied) VALUES ($1, $2)`
return fmt.Sprintf(q, tableName)
}
func (c *clickhouse) DeleteVersion(tableName string) string {
q := `ALTER TABLE %s DELETE WHERE version_id = $1 SETTINGS mutations_sync = 2`
return fmt.Sprintf(q, tableName)
}
func (c *clickhouse) GetMigrationByVersion(tableName string) string {
q := `SELECT tstamp, is_applied FROM %s WHERE version_id = $1 ORDER BY tstamp DESC LIMIT 1`
return fmt.Sprintf(q, tableName)
}
func (c *clickhouse) ListMigrations(tableName string) string {
q := `SELECT version_id, is_applied FROM %s ORDER BY version_id DESC`
return fmt.Sprintf(q, tableName)
}
func (c *clickhouse) GetLatestVersion(tableName string) string {
q := `SELECT max(version_id) FROM %s`
return fmt.Sprintf(q, tableName)
}

View file

@ -0,0 +1,66 @@
package dialects
import (
"fmt"
"github.com/pressly/goose/v3/database/dialect"
)
// NewAuroraDSQL returns a new [dialect.Querier] for Aurora DSQL dialect.
func NewAuroraDSQL() dialect.QuerierExtender {
return &dsql{}
}
type dsql struct{}
var _ dialect.QuerierExtender = (*dsql)(nil)
func (d *dsql) CreateTable(tableName string) string {
q := `CREATE TABLE %s (
id integer PRIMARY KEY,
version_id bigint NOT NULL,
is_applied boolean NOT NULL,
tstamp timestamp NOT NULL DEFAULT now()
)`
return fmt.Sprintf(q, tableName)
}
func (d *dsql) InsertVersion(tableName string) string {
q := `INSERT INTO %s (id, version_id, is_applied)
VALUES (
COALESCE((SELECT MAX(id) FROM %s), 0) + 1,
$1,
$2
)`
return fmt.Sprintf(q, tableName, tableName)
}
func (d *dsql) DeleteVersion(tableName string) string {
q := `DELETE FROM %s WHERE version_id=$1`
return fmt.Sprintf(q, tableName)
}
func (d *dsql) GetMigrationByVersion(tableName string) string {
q := `SELECT tstamp, is_applied FROM %s WHERE version_id=$1 ORDER BY tstamp DESC LIMIT 1`
return fmt.Sprintf(q, tableName)
}
func (d *dsql) ListMigrations(tableName string) string {
q := `SELECT version_id, is_applied from %s ORDER BY id DESC`
return fmt.Sprintf(q, tableName)
}
func (d *dsql) GetLatestVersion(tableName string) string {
q := `SELECT max(version_id) FROM %s`
return fmt.Sprintf(q, tableName)
}
func (d *dsql) TableExists(tableName string) string {
schemaName, tableName := parseTableIdentifier(tableName)
if schemaName != "" {
q := `SELECT EXISTS ( SELECT 1 FROM pg_tables WHERE schemaname = '%s' AND tablename = '%s' )`
return fmt.Sprintf(q, schemaName, tableName)
}
q := `SELECT EXISTS ( SELECT 1 FROM pg_tables WHERE (current_schema() IS NULL OR schemaname = current_schema()) AND tablename = '%s' )`
return fmt.Sprintf(q, tableName)
}

View file

@ -0,0 +1,62 @@
package dialects
import (
"fmt"
"github.com/pressly/goose/v3/database/dialect"
)
// NewMysql returns a new [dialect.Querier] for MySQL dialect.
func NewMysql() dialect.QuerierExtender {
return &mysql{}
}
type mysql struct{}
var _ dialect.QuerierExtender = (*mysql)(nil)
func (m *mysql) CreateTable(tableName string) string {
q := `CREATE TABLE %s (
id bigint(20) unsigned NOT NULL AUTO_INCREMENT,
version_id bigint NOT NULL,
is_applied boolean NOT NULL,
tstamp timestamp NULL default now(),
PRIMARY KEY(id)
)`
return fmt.Sprintf(q, tableName)
}
func (m *mysql) InsertVersion(tableName string) string {
q := `INSERT INTO %s (version_id, is_applied) VALUES (?, ?)`
return fmt.Sprintf(q, tableName)
}
func (m *mysql) DeleteVersion(tableName string) string {
q := `DELETE FROM %s WHERE version_id=?`
return fmt.Sprintf(q, tableName)
}
func (m *mysql) GetMigrationByVersion(tableName string) string {
q := `SELECT tstamp, is_applied FROM %s WHERE version_id=? ORDER BY tstamp DESC LIMIT 1`
return fmt.Sprintf(q, tableName)
}
func (m *mysql) ListMigrations(tableName string) string {
q := `SELECT version_id, is_applied from %s ORDER BY id DESC`
return fmt.Sprintf(q, tableName)
}
func (m *mysql) GetLatestVersion(tableName string) string {
q := `SELECT MAX(version_id) FROM %s`
return fmt.Sprintf(q, tableName)
}
func (m *mysql) TableExists(tableName string) string {
schemaName, tableName := parseTableIdentifier(tableName)
if schemaName != "" {
q := `SELECT EXISTS ( SELECT 1 FROM information_schema.tables WHERE table_schema = '%s' AND table_name = '%s' )`
return fmt.Sprintf(q, schemaName, tableName)
}
q := `SELECT EXISTS ( SELECT 1 FROM information_schema.tables WHERE (database() IS NULL OR table_schema = database()) AND table_name = '%s' )`
return fmt.Sprintf(q, tableName)
}

View file

@ -0,0 +1,70 @@
package dialects
import (
"fmt"
"strings"
"github.com/pressly/goose/v3/database/dialect"
)
// NewPostgres returns a new [dialect.Querier] for PostgreSQL dialect.
func NewPostgres() dialect.QuerierExtender {
return &postgres{}
}
type postgres struct{}
var _ dialect.QuerierExtender = (*postgres)(nil)
func (p *postgres) CreateTable(tableName string) string {
q := `CREATE TABLE %s (
id integer PRIMARY KEY GENERATED BY DEFAULT AS IDENTITY,
version_id bigint NOT NULL,
is_applied boolean NOT NULL,
tstamp timestamp NOT NULL DEFAULT now()
)`
return fmt.Sprintf(q, tableName)
}
func (p *postgres) InsertVersion(tableName string) string {
q := `INSERT INTO %s (version_id, is_applied) VALUES ($1, $2)`
return fmt.Sprintf(q, tableName)
}
func (p *postgres) DeleteVersion(tableName string) string {
q := `DELETE FROM %s WHERE version_id=$1`
return fmt.Sprintf(q, tableName)
}
func (p *postgres) GetMigrationByVersion(tableName string) string {
q := `SELECT tstamp, is_applied FROM %s WHERE version_id=$1 ORDER BY tstamp DESC LIMIT 1`
return fmt.Sprintf(q, tableName)
}
func (p *postgres) ListMigrations(tableName string) string {
q := `SELECT version_id, is_applied from %s ORDER BY id DESC`
return fmt.Sprintf(q, tableName)
}
func (p *postgres) GetLatestVersion(tableName string) string {
q := `SELECT max(version_id) FROM %s`
return fmt.Sprintf(q, tableName)
}
func (p *postgres) TableExists(tableName string) string {
schemaName, tableName := parseTableIdentifier(tableName)
if schemaName != "" {
q := `SELECT EXISTS ( SELECT 1 FROM pg_tables WHERE schemaname = '%s' AND tablename = '%s' )`
return fmt.Sprintf(q, schemaName, tableName)
}
q := `SELECT EXISTS ( SELECT 1 FROM pg_tables WHERE (current_schema() IS NULL OR schemaname = current_schema()) AND tablename = '%s' )`
return fmt.Sprintf(q, tableName)
}
func parseTableIdentifier(name string) (schema, table string) {
schema, table, found := strings.Cut(name, ".")
if !found {
return "", name
}
return schema, table
}

View file

@ -0,0 +1,52 @@
package dialects
import (
"fmt"
"github.com/pressly/goose/v3/database/dialect"
)
// Redshift returns a new [dialect.Querier] for Redshift dialect.
func NewRedshift() dialect.Querier {
return &redshift{}
}
type redshift struct{}
var _ dialect.Querier = (*redshift)(nil)
func (r *redshift) CreateTable(tableName string) string {
q := `CREATE TABLE %s (
id integer NOT NULL identity(1, 1),
version_id bigint NOT NULL,
is_applied boolean NOT NULL,
tstamp timestamp NULL default sysdate,
PRIMARY KEY(id)
)`
return fmt.Sprintf(q, tableName)
}
func (r *redshift) InsertVersion(tableName string) string {
q := `INSERT INTO %s (version_id, is_applied) VALUES ($1, $2)`
return fmt.Sprintf(q, tableName)
}
func (r *redshift) DeleteVersion(tableName string) string {
q := `DELETE FROM %s WHERE version_id=$1`
return fmt.Sprintf(q, tableName)
}
func (r *redshift) GetMigrationByVersion(tableName string) string {
q := `SELECT tstamp, is_applied FROM %s WHERE version_id=$1 ORDER BY tstamp DESC LIMIT 1`
return fmt.Sprintf(q, tableName)
}
func (r *redshift) ListMigrations(tableName string) string {
q := `SELECT version_id, is_applied from %s ORDER BY id DESC`
return fmt.Sprintf(q, tableName)
}
func (r *redshift) GetLatestVersion(tableName string) string {
q := `SELECT max(version_id) FROM %s`
return fmt.Sprintf(q, tableName)
}

View file

@ -0,0 +1,51 @@
package dialects
import (
"fmt"
"github.com/pressly/goose/v3/database/dialect"
)
// NewSqlite3 returns a [dialect.Querier] for SQLite3 dialect.
func NewSqlite3() dialect.Querier {
return &sqlite3{}
}
type sqlite3 struct{}
var _ dialect.Querier = (*sqlite3)(nil)
func (s *sqlite3) CreateTable(tableName string) string {
q := `CREATE TABLE %s (
id INTEGER PRIMARY KEY AUTOINCREMENT,
version_id INTEGER NOT NULL,
is_applied INTEGER NOT NULL,
tstamp TIMESTAMP DEFAULT (datetime('now'))
)`
return fmt.Sprintf(q, tableName)
}
func (s *sqlite3) InsertVersion(tableName string) string {
q := `INSERT INTO %s (version_id, is_applied) VALUES (?, ?)`
return fmt.Sprintf(q, tableName)
}
func (s *sqlite3) DeleteVersion(tableName string) string {
q := `DELETE FROM %s WHERE version_id=?`
return fmt.Sprintf(q, tableName)
}
func (s *sqlite3) GetMigrationByVersion(tableName string) string {
q := `SELECT tstamp, is_applied FROM %s WHERE version_id=? ORDER BY tstamp DESC LIMIT 1`
return fmt.Sprintf(q, tableName)
}
func (s *sqlite3) ListMigrations(tableName string) string {
q := `SELECT version_id, is_applied from %s ORDER BY id DESC`
return fmt.Sprintf(q, tableName)
}
func (s *sqlite3) GetLatestVersion(tableName string) string {
q := `SELECT MAX(version_id) FROM %s`
return fmt.Sprintf(q, tableName)
}

View file

@ -0,0 +1,51 @@
package dialects
import (
"fmt"
"github.com/pressly/goose/v3/database/dialect"
)
// NewSqlserver returns a [dialect.Querier] for SQL Server dialect.
func NewSqlserver() dialect.Querier {
return &sqlserver{}
}
type sqlserver struct{}
var _ dialect.Querier = (*sqlserver)(nil)
func (s *sqlserver) CreateTable(tableName string) string {
q := `CREATE TABLE %s (
id INT NOT NULL IDENTITY(1,1) PRIMARY KEY,
version_id BIGINT NOT NULL,
is_applied BIT NOT NULL,
tstamp DATETIME NULL DEFAULT CURRENT_TIMESTAMP
)`
return fmt.Sprintf(q, tableName)
}
func (s *sqlserver) InsertVersion(tableName string) string {
q := `INSERT INTO %s (version_id, is_applied) VALUES (@p1, @p2)`
return fmt.Sprintf(q, tableName)
}
func (s *sqlserver) DeleteVersion(tableName string) string {
q := `DELETE FROM %s WHERE version_id=@p1`
return fmt.Sprintf(q, tableName)
}
func (s *sqlserver) GetMigrationByVersion(tableName string) string {
q := `SELECT TOP 1 tstamp, is_applied FROM %s WHERE version_id=@p1 ORDER BY tstamp DESC`
return fmt.Sprintf(q, tableName)
}
func (s *sqlserver) ListMigrations(tableName string) string {
q := `SELECT version_id, is_applied FROM %s ORDER BY id DESC`
return fmt.Sprintf(q, tableName)
}
func (s *sqlserver) GetLatestVersion(tableName string) string {
q := `SELECT MAX(version_id) FROM %s`
return fmt.Sprintf(q, tableName)
}

View file

@ -0,0 +1,54 @@
package dialects
import (
"fmt"
"github.com/pressly/goose/v3/database/dialect"
)
// NewStarrocks returns a [dialect.Querier] for StarRocks dialect.
func NewStarrocks() dialect.Querier {
return &starrocks{}
}
type starrocks struct{}
var _ dialect.Querier = (*starrocks)(nil)
func (m *starrocks) CreateTable(tableName string) string {
q := `CREATE TABLE IF NOT EXISTS %s (
id bigint NOT NULL AUTO_INCREMENT,
version_id bigint NOT NULL,
is_applied boolean NOT NULL,
tstamp datetime NULL default CURRENT_TIMESTAMP
)
PRIMARY KEY (id)
DISTRIBUTED BY HASH (id)
ORDER BY (id,version_id)`
return fmt.Sprintf(q, tableName)
}
func (m *starrocks) InsertVersion(tableName string) string {
q := `INSERT INTO %s (version_id, is_applied) VALUES (?, ?)`
return fmt.Sprintf(q, tableName)
}
func (m *starrocks) DeleteVersion(tableName string) string {
q := `DELETE FROM %s WHERE version_id=?`
return fmt.Sprintf(q, tableName)
}
func (m *starrocks) GetMigrationByVersion(tableName string) string {
q := `SELECT tstamp, is_applied FROM %s WHERE version_id=? ORDER BY tstamp DESC LIMIT 1`
return fmt.Sprintf(q, tableName)
}
func (m *starrocks) ListMigrations(tableName string) string {
q := `SELECT version_id, is_applied from %s ORDER BY id DESC`
return fmt.Sprintf(q, tableName)
}
func (m *starrocks) GetLatestVersion(tableName string) string {
q := `SELECT MAX(version_id) FROM %s`
return fmt.Sprintf(q, tableName)
}

View file

@ -0,0 +1,52 @@
package dialects
import (
"fmt"
"github.com/pressly/goose/v3/database/dialect"
)
// NewTidb returns a [dialect.Querier] for TiDB dialect.
func NewTidb() dialect.Querier {
return &Tidb{}
}
type Tidb struct{}
var _ dialect.Querier = (*Tidb)(nil)
func (t *Tidb) CreateTable(tableName string) string {
q := `CREATE TABLE %s (
id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT UNIQUE,
version_id bigint NOT NULL,
is_applied boolean NOT NULL,
tstamp timestamp NULL default now(),
PRIMARY KEY(id)
)`
return fmt.Sprintf(q, tableName)
}
func (t *Tidb) InsertVersion(tableName string) string {
q := `INSERT INTO %s (version_id, is_applied) VALUES (?, ?)`
return fmt.Sprintf(q, tableName)
}
func (t *Tidb) DeleteVersion(tableName string) string {
q := `DELETE FROM %s WHERE version_id=?`
return fmt.Sprintf(q, tableName)
}
func (t *Tidb) GetMigrationByVersion(tableName string) string {
q := `SELECT tstamp, is_applied FROM %s WHERE version_id=? ORDER BY tstamp DESC LIMIT 1`
return fmt.Sprintf(q, tableName)
}
func (t *Tidb) ListMigrations(tableName string) string {
q := `SELECT version_id, is_applied from %s ORDER BY id DESC`
return fmt.Sprintf(q, tableName)
}
func (t *Tidb) GetLatestVersion(tableName string) string {
q := `SELECT MAX(version_id) FROM %s`
return fmt.Sprintf(q, tableName)
}

View file

@ -0,0 +1,14 @@
package dialects
import "github.com/pressly/goose/v3/database/dialect"
// NewTurso returns a [dialect.Querier] for Turso dialect.
func NewTurso() dialect.Querier {
return &turso{}
}
type turso struct {
sqlite3
}
var _ dialect.Querier = (*turso)(nil)

View file

@ -0,0 +1,54 @@
package dialects
import (
"fmt"
"github.com/pressly/goose/v3/database/dialect"
)
// NewVertica returns a new [dialect.Querier] for Vertica dialect.
//
// DEPRECATED: Vertica support is deprecated and will be removed in a future release.
func NewVertica() dialect.Querier {
return &vertica{}
}
type vertica struct{}
var _ dialect.Querier = (*vertica)(nil)
func (v *vertica) CreateTable(tableName string) string {
q := `CREATE TABLE %s (
id identity(1,1) NOT NULL,
version_id bigint NOT NULL,
is_applied boolean NOT NULL,
tstamp timestamp NULL default now(),
PRIMARY KEY(id)
)`
return fmt.Sprintf(q, tableName)
}
func (v *vertica) InsertVersion(tableName string) string {
q := `INSERT INTO %s (version_id, is_applied) VALUES (?, ?)`
return fmt.Sprintf(q, tableName)
}
func (v *vertica) DeleteVersion(tableName string) string {
q := `DELETE FROM %s WHERE version_id=?`
return fmt.Sprintf(q, tableName)
}
func (v *vertica) GetMigrationByVersion(tableName string) string {
q := `SELECT tstamp, is_applied FROM %s WHERE version_id=? ORDER BY tstamp DESC LIMIT 1`
return fmt.Sprintf(q, tableName)
}
func (v *vertica) ListMigrations(tableName string) string {
q := `SELECT version_id, is_applied from %s ORDER BY id DESC`
return fmt.Sprintf(q, tableName)
}
func (v *vertica) GetLatestVersion(tableName string) string {
q := `SELECT MAX(version_id) FROM %s`
return fmt.Sprintf(q, tableName)
}

View file

@ -0,0 +1,62 @@
package dialects
import (
"fmt"
"github.com/pressly/goose/v3/database/dialect"
)
// NewYDB returns a new [dialect.Querier] for Vertica dialect.
func NewYDB() dialect.Querier {
return &ydb{}
}
type ydb struct{}
var _ dialect.Querier = (*ydb)(nil)
func (c *ydb) CreateTable(tableName string) string {
q := `CREATE TABLE %s (
version_id Uint64,
is_applied Bool,
tstamp Timestamp,
PRIMARY KEY(version_id)
)`
return fmt.Sprintf(q, tableName)
}
func (c *ydb) InsertVersion(tableName string) string {
q := `INSERT INTO %s (
version_id,
is_applied,
tstamp
) VALUES (
CAST($1 AS Uint64),
$2,
CurrentUtcTimestamp()
)`
return fmt.Sprintf(q, tableName)
}
func (c *ydb) DeleteVersion(tableName string) string {
q := `DELETE FROM %s WHERE version_id = $1`
return fmt.Sprintf(q, tableName)
}
func (c *ydb) GetMigrationByVersion(tableName string) string {
q := `SELECT tstamp, is_applied FROM %s WHERE version_id = $1 ORDER BY tstamp DESC LIMIT 1`
return fmt.Sprintf(q, tableName)
}
func (c *ydb) ListMigrations(tableName string) string {
q := `
SELECT version_id, is_applied, tstamp AS __discard_column_tstamp
FROM %s ORDER BY __discard_column_tstamp DESC`
return fmt.Sprintf(q, tableName)
}
func (c *ydb) GetLatestVersion(tableName string) string {
q := `SELECT MAX(version_id) FROM %s`
return fmt.Sprintf(q, tableName)
}