package compute
import (
"testing"
"github.com/daviszhen/plan/pkg/common"
)
const (
NOT_CAST = 0
EXPLICIT_CAST = 1
IMPLICIT_CAST = 2
)
var typeMatrix = [120][120]int{}
func fillTypeMatrix() {
typeMatrix[common.LTID_BLOB][common.LTID_BIT] = EXPLICIT_CAST
typeMatrix[common.LTID_BLOB][common.LTID_VARCHAR] = EXPLICIT_CAST
typeMatrix[common.LTID_INTERVAL][common.LTID_VARCHAR] = IMPLICIT_CAST
typeMatrix[common.LTID_DATE][common.LTID_TIMESTAMP] = IMPLICIT_CAST
typeMatrix[common.LTID_DATE][common.LTID_VARCHAR] = IMPLICIT_CAST
typeMatrix[common.LTID_TIME][common.LTID_VARCHAR] = IMPLICIT_CAST
typeMatrix[common.LTID_TIMESTAMP][common.LTID_DATE] = EXPLICIT_CAST
typeMatrix[common.LTID_TIMESTAMP][common.LTID_TIME] = EXPLICIT_CAST
typeMatrix[common.LTID_TIMESTAMP][common.LTID_VARCHAR] = IMPLICIT_CAST
typeMatrix[common.LTID_BOOLEAN][common.LTID_BIT] = EXPLICIT_CAST
typeMatrix[common.LTID_BOOLEAN][common.LTID_DOUBLE] = EXPLICIT_CAST
typeMatrix[common.LTID_BOOLEAN][common.LTID_FLOAT] = EXPLICIT_CAST
typeMatrix[common.LTID_BOOLEAN][common.LTID_HUGEINT] = EXPLICIT_CAST
typeMatrix[common.LTID_BOOLEAN][common.LTID_BIGINT] = EXPLICIT_CAST
typeMatrix[common.LTID_BOOLEAN][common.LTID_INTEGER] = EXPLICIT_CAST
typeMatrix[common.LTID_BOOLEAN][common.LTID_SMALLINT] = EXPLICIT_CAST
typeMatrix[common.LTID_BOOLEAN][common.LTID_TINYINT] = EXPLICIT_CAST
typeMatrix[common.LTID_BOOLEAN][common.LTID_UBIGINT] = EXPLICIT_CAST
typeMatrix[common.LTID_BOOLEAN][common.LTID_UINTEGER] = EXPLICIT_CAST
typeMatrix[common.LTID_BOOLEAN][common.LTID_USMALLINT] = EXPLICIT_CAST
typeMatrix[common.LTID_BOOLEAN][common.LTID_UTINYINT] = EXPLICIT_CAST
typeMatrix[common.LTID_BOOLEAN][common.LTID_DECIMAL] = EXPLICIT_CAST
typeMatrix[common.LTID_BOOLEAN][common.LTID_VARCHAR] = IMPLICIT_CAST
typeMatrix[common.LTID_BIT][common.LTID_BLOB] = EXPLICIT_CAST
typeMatrix[common.LTID_BIT][common.LTID_DOUBLE] = EXPLICIT_CAST
typeMatrix[common.LTID_BIT][common.LTID_FLOAT] = EXPLICIT_CAST
typeMatrix[common.LTID_BIT][common.LTID_HUGEINT] = EXPLICIT_CAST
typeMatrix[common.LTID_BIT][common.LTID_BIGINT] = EXPLICIT_CAST
typeMatrix[common.LTID_BIT][common.LTID_INTEGER] = EXPLICIT_CAST
typeMatrix[common.LTID_BIT][common.LTID_UBIGINT] = EXPLICIT_CAST
typeMatrix[common.LTID_BIT][common.LTID_UINTEGER] = EXPLICIT_CAST
typeMatrix[common.LTID_BIT][common.LTID_VARCHAR] = IMPLICIT_CAST
typeMatrix[common.LTID_DOUBLE][common.LTID_BOOLEAN] = EXPLICIT_CAST
typeMatrix[common.LTID_DOUBLE][common.LTID_BIT] = EXPLICIT_CAST
typeMatrix[common.LTID_DOUBLE][common.LTID_VARCHAR] = IMPLICIT_CAST
typeMatrix[common.LTID_FLOAT][common.LTID_BOOLEAN] = EXPLICIT_CAST
typeMatrix[common.LTID_FLOAT][common.LTID_BIT] = EXPLICIT_CAST
typeMatrix[common.LTID_FLOAT][common.LTID_DOUBLE] = IMPLICIT_CAST
typeMatrix[common.LTID_FLOAT][common.LTID_VARCHAR] = IMPLICIT_CAST
typeMatrix[common.LTID_HUGEINT][common.LTID_BOOLEAN] = EXPLICIT_CAST
typeMatrix[common.LTID_HUGEINT][common.LTID_BIT] = EXPLICIT_CAST
typeMatrix[common.LTID_HUGEINT][common.LTID_DOUBLE] = IMPLICIT_CAST
typeMatrix[common.LTID_HUGEINT][common.LTID_FLOAT] = IMPLICIT_CAST
typeMatrix[common.LTID_HUGEINT][common.LTID_DECIMAL] = IMPLICIT_CAST
typeMatrix[common.LTID_HUGEINT][common.LTID_VARCHAR] = IMPLICIT_CAST
typeMatrix[common.LTID_BIGINT][common.LTID_BOOLEAN] = EXPLICIT_CAST
typeMatrix[common.LTID_BIGINT][common.LTID_BIT] = EXPLICIT_CAST
typeMatrix[common.LTID_BIGINT][common.LTID_DOUBLE] = IMPLICIT_CAST
typeMatrix[common.LTID_BIGINT][common.LTID_FLOAT] = IMPLICIT_CAST
typeMatrix[common.LTID_BIGINT][common.LTID_HUGEINT] = IMPLICIT_CAST
typeMatrix[common.LTID_BIGINT][common.LTID_DECIMAL] = IMPLICIT_CAST
typeMatrix[common.LTID_BIGINT][common.LTID_VARCHAR] = IMPLICIT_CAST
typeMatrix[common.LTID_INTEGER][common.LTID_BOOLEAN] = EXPLICIT_CAST
typeMatrix[common.LTID_INTEGER][common.LTID_BIT] = EXPLICIT_CAST
typeMatrix[common.LTID_INTEGER][common.LTID_DOUBLE] = IMPLICIT_CAST
typeMatrix[common.LTID_INTEGER][common.LTID_FLOAT] = IMPLICIT_CAST
typeMatrix[common.LTID_INTEGER][common.LTID_HUGEINT] = IMPLICIT_CAST
typeMatrix[common.LTID_INTEGER][common.LTID_BIGINT] = IMPLICIT_CAST
typeMatrix[common.LTID_INTEGER][common.LTID_DECIMAL] = IMPLICIT_CAST
typeMatrix[common.LTID_INTEGER][common.LTID_VARCHAR] = IMPLICIT_CAST
typeMatrix[common.LTID_SMALLINT][common.LTID_BOOLEAN] = EXPLICIT_CAST
typeMatrix[common.LTID_SMALLINT][common.LTID_BIT] = EXPLICIT_CAST
typeMatrix[common.LTID_SMALLINT][common.LTID_DOUBLE] = IMPLICIT_CAST
typeMatrix[common.LTID_SMALLINT][common.LTID_FLOAT] = IMPLICIT_CAST
typeMatrix[common.LTID_SMALLINT][common.LTID_HUGEINT] = IMPLICIT_CAST
typeMatrix[common.LTID_SMALLINT][common.LTID_BIGINT] = IMPLICIT_CAST
typeMatrix[common.LTID_SMALLINT][common.LTID_INTEGER] = IMPLICIT_CAST
typeMatrix[common.LTID_SMALLINT][common.LTID_DECIMAL] = IMPLICIT_CAST
typeMatrix[common.LTID_SMALLINT][common.LTID_VARCHAR] = IMPLICIT_CAST
typeMatrix[common.LTID_TINYINT][common.LTID_BOOLEAN] = EXPLICIT_CAST
typeMatrix[common.LTID_TINYINT][common.LTID_BIT] = EXPLICIT_CAST
typeMatrix[common.LTID_TINYINT][common.LTID_DOUBLE] = IMPLICIT_CAST
typeMatrix[common.LTID_TINYINT][common.LTID_FLOAT] = IMPLICIT_CAST
typeMatrix[common.LTID_TINYINT][common.LTID_HUGEINT] = IMPLICIT_CAST
typeMatrix[common.LTID_TINYINT][common.LTID_BIGINT] = IMPLICIT_CAST
typeMatrix[common.LTID_TINYINT][common.LTID_INTEGER] = IMPLICIT_CAST
typeMatrix[common.LTID_TINYINT][common.LTID_SMALLINT] = IMPLICIT_CAST
typeMatrix[common.LTID_TINYINT][common.LTID_DECIMAL] = IMPLICIT_CAST
typeMatrix[common.LTID_TINYINT][common.LTID_VARCHAR] = IMPLICIT_CAST
typeMatrix[common.LTID_UBIGINT][common.LTID_BOOLEAN] = EXPLICIT_CAST
typeMatrix[common.LTID_UBIGINT][common.LTID_BIT] = EXPLICIT_CAST
typeMatrix[common.LTID_UBIGINT][common.LTID_DOUBLE] = IMPLICIT_CAST
typeMatrix[common.LTID_UBIGINT][common.LTID_FLOAT] = IMPLICIT_CAST
typeMatrix[common.LTID_UBIGINT][common.LTID_HUGEINT] = IMPLICIT_CAST
typeMatrix[common.LTID_UBIGINT][common.LTID_BIGINT] = EXPLICIT_CAST
typeMatrix[common.LTID_UBIGINT][common.LTID_INTEGER] = EXPLICIT_CAST
typeMatrix[common.LTID_UBIGINT][common.LTID_SMALLINT] = EXPLICIT_CAST
typeMatrix[common.LTID_UBIGINT][common.LTID_TINYINT] = EXPLICIT_CAST
typeMatrix[common.LTID_UBIGINT][common.LTID_UINTEGER] = EXPLICIT_CAST
typeMatrix[common.LTID_UBIGINT][common.LTID_USMALLINT] = EXPLICIT_CAST
typeMatrix[common.LTID_UBIGINT][common.LTID_UTINYINT] = EXPLICIT_CAST
typeMatrix[common.LTID_UBIGINT][common.LTID_DECIMAL] = IMPLICIT_CAST
typeMatrix[common.LTID_UBIGINT][common.LTID_VARCHAR] = IMPLICIT_CAST
typeMatrix[common.LTID_UINTEGER][common.LTID_BOOLEAN] = EXPLICIT_CAST
typeMatrix[common.LTID_UINTEGER][common.LTID_BIT] = EXPLICIT_CAST
typeMatrix[common.LTID_UINTEGER][common.LTID_DOUBLE] = IMPLICIT_CAST
typeMatrix[common.LTID_UINTEGER][common.LTID_FLOAT] = IMPLICIT_CAST
typeMatrix[common.LTID_UINTEGER][common.LTID_HUGEINT] = IMPLICIT_CAST
typeMatrix[common.LTID_UINTEGER][common.LTID_BIGINT] = IMPLICIT_CAST
typeMatrix[common.LTID_UINTEGER][common.LTID_INTEGER] = EXPLICIT_CAST
typeMatrix[common.LTID_UINTEGER][common.LTID_SMALLINT] = EXPLICIT_CAST
typeMatrix[common.LTID_UINTEGER][common.LTID_TINYINT] = EXPLICIT_CAST
typeMatrix[common.LTID_UINTEGER][common.LTID_UBIGINT] = IMPLICIT_CAST
typeMatrix[common.LTID_UINTEGER][common.LTID_USMALLINT] = EXPLICIT_CAST
typeMatrix[common.LTID_UINTEGER][common.LTID_UTINYINT] = EXPLICIT_CAST
typeMatrix[common.LTID_UINTEGER][common.LTID_DECIMAL] = IMPLICIT_CAST
typeMatrix[common.LTID_UINTEGER][common.LTID_VARCHAR] = IMPLICIT_CAST
typeMatrix[common.LTID_USMALLINT][common.LTID_BOOLEAN] = EXPLICIT_CAST
typeMatrix[common.LTID_USMALLINT][common.LTID_BIT] = EXPLICIT_CAST
typeMatrix[common.LTID_USMALLINT][common.LTID_DOUBLE] = IMPLICIT_CAST
typeMatrix[common.LTID_USMALLINT][common.LTID_FLOAT] = IMPLICIT_CAST
typeMatrix[common.LTID_USMALLINT][common.LTID_HUGEINT] = IMPLICIT_CAST
typeMatrix[common.LTID_USMALLINT][common.LTID_BIGINT] = IMPLICIT_CAST
typeMatrix[common.LTID_USMALLINT][common.LTID_INTEGER] = IMPLICIT_CAST
typeMatrix[common.LTID_USMALLINT][common.LTID_SMALLINT] = EXPLICIT_CAST
typeMatrix[common.LTID_USMALLINT][common.LTID_TINYINT] = EXPLICIT_CAST
typeMatrix[common.LTID_USMALLINT][common.LTID_UBIGINT] = IMPLICIT_CAST
typeMatrix[common.LTID_USMALLINT][common.LTID_UINTEGER] = IMPLICIT_CAST
typeMatrix[common.LTID_USMALLINT][common.LTID_UTINYINT] = EXPLICIT_CAST
typeMatrix[common.LTID_USMALLINT][common.LTID_DECIMAL] = IMPLICIT_CAST
typeMatrix[common.LTID_USMALLINT][common.LTID_VARCHAR] = IMPLICIT_CAST
typeMatrix[common.LTID_UTINYINT][common.LTID_BOOLEAN] = EXPLICIT_CAST
typeMatrix[common.LTID_UTINYINT][common.LTID_BIT] = EXPLICIT_CAST
typeMatrix[common.LTID_UTINYINT][common.LTID_DOUBLE] = IMPLICIT_CAST
typeMatrix[common.LTID_UTINYINT][common.LTID_FLOAT] = IMPLICIT_CAST
typeMatrix[common.LTID_UTINYINT][common.LTID_HUGEINT] = IMPLICIT_CAST
typeMatrix[common.LTID_UTINYINT][common.LTID_BIGINT] = IMPLICIT_CAST
typeMatrix[common.LTID_UTINYINT][common.LTID_INTEGER] = IMPLICIT_CAST
typeMatrix[common.LTID_UTINYINT][common.LTID_SMALLINT] = IMPLICIT_CAST
typeMatrix[common.LTID_UTINYINT][common.LTID_TINYINT] = EXPLICIT_CAST
typeMatrix[common.LTID_UTINYINT][common.LTID_UBIGINT] = IMPLICIT_CAST
typeMatrix[common.LTID_UTINYINT][common.LTID_UINTEGER] = IMPLICIT_CAST
typeMatrix[common.LTID_UTINYINT][common.LTID_USMALLINT] = IMPLICIT_CAST
typeMatrix[common.LTID_UTINYINT][common.LTID_DECIMAL] = IMPLICIT_CAST
typeMatrix[common.LTID_UTINYINT][common.LTID_VARCHAR] = IMPLICIT_CAST
typeMatrix[common.LTID_DECIMAL][common.LTID_BOOLEAN] = EXPLICIT_CAST
typeMatrix[common.LTID_DECIMAL][common.LTID_DOUBLE] = IMPLICIT_CAST
typeMatrix[common.LTID_DECIMAL][common.LTID_FLOAT] = IMPLICIT_CAST
typeMatrix[common.LTID_DECIMAL][common.LTID_HUGEINT] = EXPLICIT_CAST
typeMatrix[common.LTID_DECIMAL][common.LTID_BIGINT] = EXPLICIT_CAST
typeMatrix[common.LTID_DECIMAL][common.LTID_INTEGER] = EXPLICIT_CAST
typeMatrix[common.LTID_DECIMAL][common.LTID_SMALLINT] = EXPLICIT_CAST
typeMatrix[common.LTID_DECIMAL][common.LTID_VARCHAR] = IMPLICIT_CAST
typeMatrix[common.LTID_UUID][common.LTID_VARCHAR] = IMPLICIT_CAST
}
func init() {
fillTypeMatrix()
}
func Test_type(t *testing.T) {
}