sdata

package
v3.0.37 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 6, 2024 License: Apache-2.0 Imports: 10 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrFromEdgeNotFound   = errors.New("from edge not found")
	ErrToEdgeNotFound     = errors.New("to edge not found")
	ErrPathNotFound       = errors.New("path not found")
	ErrThoughNodeNotFound = errors.New("though node not found")
)

Functions

func GetRelName

func GetRelName(colName string) string

GetRelName returns the relationship name

Types

type DBColumn

type DBColumn struct {
	Comment     string
	ID          int32
	Name        string
	Type        string
	Array       bool
	NotNull     bool
	PrimaryKey  bool
	UniqueKey   bool
	FullText    bool
	FKRecursive bool
	FKeySchema  string
	FKeyTable   string
	FKeyCol     string
	Blocked     bool
	Table       string
	Schema      string
}

DBColumn returns the column as a string

func DiscoverColumns

func DiscoverColumns(db *sql.DB, dbtype string, blockList []string) ([]DBColumn, error)

DiscoverColumns returns the columns of a table

func (DBColumn) String

func (col DBColumn) String() string

String returns a string representation of the DBColumn

type DBFuncParam

type DBFuncParam struct {
	ID    int
	Name  string
	Type  string
	Array bool
}

DBFuncParam holds the database function parameter information

type DBFunction

type DBFunction struct {
	Comment string
	Schema  string
	Name    string
	Type    string
	Agg     bool
	Inputs  []DBFuncParam
	Outputs []DBFuncParam
}

DBFunction holds the database function information

func DiscoverFunctions

func DiscoverFunctions(db *sql.DB, dbtype string, blockList []string) ([]DBFunction, error)

DiscoverFunctions returns the functions of a database

func (*DBFunction) GetInput

func (fn *DBFunction) GetInput(name string) (ret DBFuncParam, err error)

GetInput returns the input of a function

func (DBFunction) String

func (fn DBFunction) String() string

String returns a string representation of the DBFunction

type DBInfo

type DBInfo struct {
	Type    string
	Version int
	Schema  string
	Name    string

	Tables    []DBTable
	Functions []DBFunction
	VTables   []VirtualTable `json:"-"`
	// contains filtered or unexported fields
}

DBInfo holds the database schema information

func GetDBInfo

func GetDBInfo(
	db *sql.DB,
	dbType string,
	blockList []string,
) (*DBInfo, error)

GetDBInfo returns the database schema information

func GetTestDBInfo

func GetTestDBInfo() *DBInfo

func NewDBInfo

func NewDBInfo(
	dbType string,
	dbVersion int,
	dbSchema string,
	dbName string,
	cols []DBColumn,
	funcs []DBFunction,
	blockList []string,
) *DBInfo

NewDBInfo returns a new DBInfo object

func (*DBInfo) AddTable

func (di *DBInfo) AddTable(t DBTable)

AddTable adds a table to the DBInfo object

func (*DBInfo) GetColumn

func (di *DBInfo) GetColumn(schema, table, column string) (*DBColumn, error)

GetTable returns a table from the DBInfo object

func (*DBInfo) GetTable

func (di *DBInfo) GetTable(schema, table string) (*DBTable, error)

GetTable returns a table from the DBInfo object

func (*DBInfo) Hash

func (di *DBInfo) Hash() int

Hash returns the hash of the DBInfo object

type DBRel

type DBRel struct {
	Type  RelType
	Left  DBRelLeft
	Right DBRelRight
}

DBRel represents a database relationship

func PathToRel

func PathToRel(p TPath) DBRel

PathToRel converts a table path to a relationship

func (*DBRel) String

func (re *DBRel) String() string

String returns a string representation of the DBRel

type DBRelLeft

type DBRelLeft struct {
	Ti  DBTable
	Col DBColumn
}

DBRelLeft represents database information

type DBRelRight

type DBRelRight struct {
	VTable string
	Ti     DBTable
	Col    DBColumn
}

DBRelRight represents a database relationship

type DBSchema

type DBSchema struct {
	// contains filtered or unexported fields
}

func GetTestSchema

func GetTestSchema() (*DBSchema, error)

func NewDBSchema

func NewDBSchema(
	info *DBInfo,
	aliases map[string][]string,
) (*DBSchema, error)

NewDBSchema creates a new database schema

func (*DBSchema) DBName

func (s *DBSchema) DBName() string

DBName returns the database name

func (*DBSchema) DBSchema

func (s *DBSchema) DBSchema() string

DBSchema returns the database schema

func (*DBSchema) DBType

func (s *DBSchema) DBType() string

DBType returns the database type

func (*DBSchema) DBVersion

func (s *DBSchema) DBVersion() int

DBVersion returns the database version

func (*DBSchema) Find

func (s *DBSchema) Find(schema, name string) (DBTable, error)

Find returns a table by schema and name

func (*DBSchema) FindPath

func (s *DBSchema) FindPath(from, to, through string) ([]TPath, error)

FindPath returns a path between two tables

func (*DBSchema) GetAliases

func (s *DBSchema) GetAliases() map[string]DBTable

GetAliases returns a map of table aliases

func (*DBSchema) GetFirstDegree

func (s *DBSchema) GetFirstDegree(t DBTable) (items []RelNode, err error)

GetFirstDegree returns the first degree relationships of a table

func (*DBSchema) GetFunctions

func (s *DBSchema) GetFunctions() map[string]DBFunction

GetFunction returns a function from the schema

func (*DBSchema) GetSecondDegree

func (s *DBSchema) GetSecondDegree(t DBTable) (items []RelNode, err error)

GetSecondDegree returns the second degree relationships of a table

func (*DBSchema) GetTables

func (s *DBSchema) GetTables() []DBTable

GetTables returns a table from the schema

func (*DBSchema) IsAlias

func (s *DBSchema) IsAlias(name string) bool

IsAlias checks if a table is an alias

func (*DBSchema) PrintEdgeInfo

func (s *DBSchema) PrintEdgeInfo(e edgeInfo)

PrintEdgeInfo prints edge info

func (*DBSchema) PrintLines

func (s *DBSchema) PrintLines(lines []util.Edge)

PrintLines prints the graph lines

type DBTable

type DBTable struct {
	Comment      string
	Schema       string
	Name         string
	Type         string
	Columns      []DBColumn
	PrimaryCol   DBColumn
	SecondaryCol DBColumn
	FullText     []DBColumn
	Blocked      bool
	Func         DBFunction
	// contains filtered or unexported fields
}

DBTable holds the database table information

func NewDBTable

func NewDBTable(schema, name, _type string, cols []DBColumn) DBTable

NewDBTable returns a new DBTable object

func (*DBTable) ColumnExists

func (ti *DBTable) ColumnExists(name string) (DBColumn, bool)

ColumnExists returns true if a column exists in a table

func (*DBTable) GetColumn

func (ti *DBTable) GetColumn(name string) (DBColumn, error)

GetColumn returns a column from a table

func (*DBTable) String

func (ti *DBTable) String() string

String returns a string representation of the DBTable

type RelNode

type RelNode struct {
	Name  string
	Type  RelType
	Table DBTable
}

RelNode represents a relationship node

type RelType

type RelType int
const (
	RelNone RelType = iota
	RelOneToOne
	RelOneToMany
	RelPolymorphic
	RelRecursive
	RelEmbedded
	RelRemote
	RelSkip
)

func (RelType) String

func (i RelType) String() string

type TEdge

type TEdge struct {
	From, To, Weight int32

	Type   RelType
	LT, RT DBTable
	L, R   DBColumn
	CName  string
	// contains filtered or unexported fields
}

TEdge represents a table edge for the graph

type TPath

type TPath struct {
	Rel RelType
	LT  DBTable
	LC  DBColumn
	RT  DBTable
	RC  DBColumn
}

TPath represents a table path

func (*TPath) String

func (tp *TPath) String() string

String returns a string representation of a table path

type VirtualTable

type VirtualTable struct {
	Name       string
	IDColumn   string
	TypeColumn string
	FKeyColumn string
}

VirtualTable holds the virtual table information

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL