github.com/RevenueMonster/sqlike@v1.0.6/sql/dialect/mysql/column_test.go (about)

     1  package mysql
     2  
     3  import (
     4  	"testing"
     5  
     6  	sqlstmt "github.com/RevenueMonster/sqlike/sql/stmt"
     7  	"github.com/stretchr/testify/require"
     8  )
     9  
    10  func TestGetColumns(t *testing.T) {
    11  	ms := New()
    12  	stmt := sqlstmt.AcquireStmt(ms)
    13  	defer sqlstmt.ReleaseStmt(stmt)
    14  	ms.GetColumns(stmt, "db", "table")
    15  	require.Equal(t, `SELECT ORDINAL_POSITION, COLUMN_NAME, COLUMN_TYPE, COLUMN_DEFAULT, IS_NULLABLE,
    16  	DATA_TYPE, CHARACTER_SET_NAME, COLLATION_NAME, COLUMN_COMMENT, EXTRA FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = ? AND TABLE_NAME = ? ORDER BY ORDINAL_POSITION;`, stmt.String())
    17  	require.ElementsMatch(t, []interface{}{"db", "table"}, stmt.Args())
    18  }
    19  
    20  func TestRenameColumn(t *testing.T) {
    21  	ms := New()
    22  	stmt := sqlstmt.AcquireStmt(ms)
    23  	defer sqlstmt.ReleaseStmt(stmt)
    24  	ms.RenameColumn(stmt, "db", "table", "c1", "_column_")
    25  	require.Equal(t, "ALTER TABLE `db`.`table` RENAME COLUMN `c1` TO `_column_`;", stmt.String())
    26  	require.ElementsMatch(t, []interface{}{}, stmt.Args())
    27  }
    28  
    29  func TestDropColumn(t *testing.T) {
    30  	ms := New()
    31  	stmt := sqlstmt.AcquireStmt(ms)
    32  	defer sqlstmt.ReleaseStmt(stmt)
    33  	ms.DropColumn(stmt, "db", "table", "c1")
    34  	require.Equal(t, "ALTER TABLE `db`.`table` DROP COLUMN `c1`;", stmt.String())
    35  	require.ElementsMatch(t, []interface{}{}, stmt.Args())
    36  }