package systemtables

import (
	"context"

	"github.com/everything-on-mysql/cassandra-on-mysql/pkg/cql/types"
)

// SchemaProvider supplies MySQL-backed system_schema rows.
type SchemaProvider interface {
	Keyspaces(ctx context.Context, columns []types.ColumnInfo, user, password string) ([]types.Row, error)
	Tables(ctx context.Context, columns []types.ColumnInfo, user, password string) ([]types.Row, error)
	Columns(ctx context.Context, columns []types.ColumnInfo, user, password string) ([]types.Row, error)
	Indexes(ctx context.Context, columns []types.ColumnInfo, user, password string) ([]types.Row, error)
	Types(ctx context.Context, columns []types.ColumnInfo, user, password string) ([]types.Row, error)
	Views(ctx context.Context, columns []types.ColumnInfo, user, password string) ([]types.Row, error)
	Triggers(ctx context.Context, columns []types.ColumnInfo, user, password string) ([]types.Row, error)
	Functions(ctx context.Context, columns []types.ColumnInfo, user, password string) ([]types.Row, error)
	Aggregates(ctx context.Context, columns []types.ColumnInfo, user, password string) ([]types.Row, error)
	Users(ctx context.Context, columns []types.ColumnInfo, user, password string) ([]types.Row, error)
}
