Table

scalation.database.table.Table
See theTable companion object
class Table(name: String, schema: Schema, domain: Domain, key: Schema) extends Tabular[Table], Serializable

The Table class stores relational data and implements relational algebra operators. Supported domains/data-types are 'D'ouble, 'I'nt, 'L'ong, 'S'tring, and 'T'imeNum.

Value parameters

domain

the domains/data-types for the attributes ('D', 'I', 'L', 'S', 'X', 'T')

key

the attributes forming the primary key

name

the name of the table

schema

the attributes for the table

Attributes

Companion
object
Graph
Supertypes
trait Tabular[Table]
trait Serializable
class Object
trait Matchable
class Any
Known subtypes
class GTable
class KGTable
class LTable
class VTable

Members list

Value members

Concrete methods

def add(t: Tuple): Table

ADD (insert) tuple t into this table checking to make sure the domains are correct. Also, checks referential integrity for any foreign keys in the tuple. Return true iff the tuple passes the type check and reference check.

ADD (insert) tuple t into this table checking to make sure the domains are correct. Also, checks referential integrity for any foreign keys in the tuple. Return true iff the tuple passes the type check and reference check.

Value parameters

t

the tuple to be inserted

Attributes

def addLinkage(fkey: String, refTab: Table): Unit

Add LINKAGE from this table to the refTab, by adding a FOREIGN KEY CONSTRAINT to this table specifying the foreign key attribute fkey and the table it references refTab. If refTab does not have a primary index already, make one. Caveat: a foreign key may not be composite.

Add LINKAGE from this table to the refTab, by adding a FOREIGN KEY CONSTRAINT to this table specifying the foreign key attribute fkey and the table it references refTab. If refTab does not have a primary index already, make one. Caveat: a foreign key may not be composite.

Value parameters

fkey

the foreign key attribute

refTab

the table being referenced (to its primary key)

Attributes

def aggregate(ag: String, f_as: (AggFunction, String)*): Table
def apply(r: Range): Table

Return the table restricted to the given range of rows.

Return the table restricted to the given range of rows.

Value parameters

r

the given range of rows

Attributes

def apply(pos: IndexedSeq[Int]): Table

Return the table restricted to the given collection of rows.

Return the table restricted to the given collection of rows.

Value parameters

pos

the given collection of rows

Attributes

def col(j: Int, tups: ArrayBuffer[Tuple]): Array[ValueType]

Return the j-th column in this table (or the passed in tuples) as an array of value-type.

Return the j-th column in this table (or the passed in tuples) as an array of value-type.

Value parameters

j

the column to return

tups

the collection of tuples to use (defaults to all tuples in this table)

Attributes

infix def contains(u: Tuple): Boolean

Return whether this table contains tuple u.

Return whether this table contains tuple u.

Value parameters

u

the tuple to look for

Attributes

def create_index(rebuild: Boolean): Unit

CREATE/recreate the primary INDEX that maps the primary key to the tuple containing it. Warning, creating an index will remove DUPLICATES based on maintaining UNIQUENESS CONSTRAINT of primary key values.

CREATE/recreate the primary INDEX that maps the primary key to the tuple containing it. Warning, creating an index will remove DUPLICATES based on maintaining UNIQUENESS CONSTRAINT of primary key values.

Value parameters

rebuild

if rebuild is true, use old index to build new index; otherwise, create new index

Attributes

def create_mindex(atr: String): Unit

CREATE a non-unique INDEX (multi-valued) that maps a non-unique attribute to the tuple containing it.

CREATE a non-unique INDEX (multi-valued) that maps a non-unique attribute to the tuple containing it.

Value parameters

atr

the attribute/column to create the non-unique index on

Attributes

See also

scalation.database.MultiMap

def create_sindex(atr: String): Unit

CREATE a secondary unique INDEX that maps a secondary key to the tuple containing it. Has no effect on duplicates; should first create a primary index to remove duplicates, otherwise, this index may skip tuples.

CREATE a secondary unique INDEX that maps a secondary key to the tuple containing it. Has no effect on duplicates; should first create a primary index to remove duplicates, otherwise, this index may skip tuples.

Value parameters

atr

the attribute/column to create the index on

Attributes

def delete(predicate: Predicate): Boolean

DELETE all tuples in this table satisfying the deletion predicate. If there is an index, remove those tuples from the index as well. Return true iff at least one tuple is deleted.

DELETE all tuples in this table satisfying the deletion predicate. If there is an index, remove those tuples from the index as well. Return true iff at least one tuple is deleted.

Value parameters

predicate

the predicate that specifies which tuples to delete

Attributes

def drop_index(): Unit

DROP the primary INDEX that maps the primary key to the tuple containing it.

DROP the primary INDEX that maps the primary key to the tuple containing it.

Attributes

def drop_mindex(atr: String): Unit

DROP a non-unique INDEX that maps a non-unique attribute to the tuple containing it.

DROP a non-unique INDEX that maps a non-unique attribute to the tuple containing it.

Attributes

def drop_sindex(atr: String): Unit

DROP a secondary INDEX that maps a secondary key to the tuple containing it.

DROP a secondary INDEX that maps a secondary key to the tuple containing it.

Attributes

def getPkey(i: Int): KeyType

Return the i-th primary key.

Return the i-th primary key.

Value parameters

i

the index in the tuples/row index

Attributes

def join(condition: String, r2: Table): Table
def join(x: Schema, y: Schema, r2: Table): Table

Value parameters

r2

the second table

x

the subschema/attributes for the first/this table

y

the subschema/attributes for the second table

Attributes

def project(cPos: IndexedSeq[Int]): Table
def prt(v: ValueType, w: Int): Unit

PRINT value-type v with a width of w.

PRINT value-type v with a width of w.

Value parameters

v

the value to be printed

w

the width (# chars) for the column

Attributes

def referenceCheck(t: Tuple): Boolean

Check that all the foreign keys values in tuple t satisfy their REFERENTIAL INTEGRITY CONSTRAINTS.

Check that all the foreign keys values in tuple t satisfy their REFERENTIAL INTEGRITY CONSTRAINTS.

Value parameters

t

the tuple being checked for referential integrity

Attributes

def rename(newName: String): Table

Value parameters

newName

the new name for the table

Attributes

def resetWidth(col: Int, w: Int): Unit

Reset the width of column col to w.

Reset the width of column col to w.

Value parameters

col

the column whose width is to be adjusted

w

the new width (# chars) for column col

Attributes

def rows: Int

Return the cardinality (number of tuples) in this table.

Return the cardinality (number of tuples) in this table.

Attributes

def save(): Unit

SAVE this table in a file using serialization.

SAVE this table in a file using serialization.

Attributes

See also

load in Table object

def select(a: String, apred: APredicate): Table

Value parameters

a

the attribute name of the column used for selection

apred

the atomic predicate (Boolean function) to be satisfied

Attributes

def select(predicate: Predicate): Table

Value parameters

predicate

the predicate (Boolean function) to be satisfied

Attributes

def select(condition: String): Table

Value parameters

condition

the simple condition string "a1 op a2" to be satisfied, where a1 is attribute, op is comparison operator, a2 is attribute or value

Attributes

def selproject(a: String, apred: APredicate): Table

Value parameters

a

the attribute name of the column used for selection

apred

the atomic predicate (Boolean function) to be satisfied

Attributes

def show(rng: Range): Unit

SHOW/print this table, one tuple per row. Formatting: regular column is 'width_' chars wide, 'X' is double that FIX - currently only works for width_, not width

SHOW/print this table, one tuple per row. Formatting: regular column is 'width_' chars wide, 'X' is double that FIX - currently only works for width_, not width

Value parameters

rng

the range of tuples to show (e.g, 0 until 10), defaults to all

Attributes

def show_foreign_keys(): Unit

SHOW/print this table's foreign keys.

SHOW/print this table's foreign keys.

Attributes

def show_index(): Unit

SHOW/print this table's primary index.

SHOW/print this table's primary index.

Attributes

def stats: Table

Return the basic statistics for each column of this table.

Return the basic statistics for each column of this table.

Attributes

def string2Dom(str: String, dom: Char): ValueType

Convert a String into a ValueType with the given domain.

Convert a String into a ValueType with the given domain.

Value parameters

dom

the domain/data-type to convert it into

str

the given string

Attributes

def toMatrix(cols: Array[Int]): MatrixD

CONVERT this table to a matrix of doubles by making the necessary type transformations.

CONVERT this table to a matrix of doubles by making the necessary type transformations.

Value parameters

cols

the column positions to use for forming the matrix

Attributes

See also

the fromMatrix method

def toMatrixV(cols: Array[Int], colj: Int): (MatrixD, VectorD)

CONVERT this table to a matrix and a vector of doubles by making the necessary type transformations. Usage: table -> (X, y) for linear algebra/regression problem Xb = y.

CONVERT this table to a matrix and a vector of doubles by making the necessary type transformations. Usage: table -> (X, y) for linear algebra/regression problem Xb = y.

Value parameters

colj

the column position to use for forming the vector

cols

the column positions to use for forming the matrix

Attributes

def toVectorD(colj: Int): VectorD

CONVERT the colj column of this table into a vector of doubles, etc.

CONVERT the colj column of this table into a vector of doubles, etc.

Value parameters

colj

the column position to use for the vector

Attributes

def toVectorI(colj: Int): VectorI
def toVectorL(colj: Int): VectorL
def toVectorS(colj: Int): VectorS
def toVectorT(colj: Int): VectorT
def update(a: String, newVal: ValueType, matchVal: ValueType): Boolean

UPDATE the column with attribute name a using newVal for elements with value matchVal. Return true iff at least one tuple is updated.

UPDATE the column with attribute name a using newVal for elements with value matchVal. Return true iff at least one tuple is updated.

Value parameters

a

the attribute name for the column to be updated

matchVal

the value to be matched to elements

newVal

the value used to assign updated values

Attributes

def update(a: String, func: ValueType => ValueType, matchVal: ValueType): Boolean

UPDATE the column with attribute name a using function func for elements with value matchVal. Return true iff at least one tuple is updated.

UPDATE the column with attribute name a using function func for elements with value matchVal. Return true iff at least one tuple is updated.

Value parameters

a

the attribute name for the column to be updated

func

the function used to assign updated values

matchVal

the value to be matched to elements

Attributes

def writeCSV(fileName: String): Unit

WRITE this table into a Comma-Separated-Value (CSV) file with each tuple written to a line.

WRITE this table into a Comma-Separated-Value (CSV) file with each tuple written to a line.

Value parameters

fileName

the file name of the data file (defaults to "name.csv")

Attributes

def writeJSON(fileName: String): Unit

WRITE this table into a JavaScript Object Notation (JSON) file.

WRITE this table into a JavaScript Object Notation (JSON) file.

Value parameters

fileName

the file name of the data file

Attributes

Inherited methods

def +=(v: ValueType*): Table

Attributes

Inherited from:
Tabular
inline def -(r2: Table): Table

Attributes

Inherited from:
Tabular
inline def /(r2: Table): Table

Attributes

Inherited from:
Tabular
def add(v: ValueType*): Table

Attributes

Inherited from:
Tabular
def colIndices: Range

Return the range of columns numbers for the table.

Return the range of columns numbers for the table.

Attributes

Inherited from:
Tabular
def cols: Int

Return the size in terms of number of columns in the table.

Return the size in terms of number of columns in the table.

Attributes

Inherited from:
Tabular
inline def dims: (Int, Int)

Return the cardinality (number of tuples) and arity (number of attributes).

Return the cardinality (number of tuples) and arity (number of attributes).

Attributes

Inherited from:
Tabular
def incompatible(r2: Table): Boolean

Determine whether this table and r2 are incompatible by having differing domains.

Determine whether this table and r2 are incompatible by having differing domains.

Value parameters

r2

the second table

Attributes

Inherited from:
Tabular
def indices: Range

Return the range of row numbers for the table.

Return the range of row numbers for the table.

Attributes

Inherited from:
Tabular
inline def join(x: String, y: String, r2: Table): Table

Attributes

Inherited from:
Tabular
infix def leftJoin(r2: Table): Table

Compute the LEFT-JOIN of this table and r2 keeping concatenated tuples that are equal on specified attributes. Also, keep all tuples in the left table padding the missing attributes with null.

Compute the LEFT-JOIN of this table and r2 keeping concatenated tuples that are equal on specified attributes. Also, keep all tuples in the left table padding the missing attributes with null.

Value parameters

r2

the second table

Attributes

Inherited from:
Tabular
def nullTuple(domain: Domain): Tuple

Create a tuple with missing values for each column according to the given domains. This method is used by leftJoin.

Create a tuple with missing values for each column according to the given domains. This method is used by leftJoin.

Value parameters

domain

the domains of the table for which a null tuple is required

Attributes

Inherited from:
Tabular
inline def project(x: String): Table

Attributes

Inherited from:
Tabular
def pull(cp: IndexedSeq[Int]): Domain

Pull the domains out of this table for the attributes in subschema column positions cp.

Pull the domains out of this table for the attributes in subschema column positions cp.

Value parameters

cp

the subschema/attribute column positions to be collected

Attributes

Inherited from:
Tabular
def pull(x: Schema): Domain

Pull the domains out of this table for the attributes in subschema x.

Pull the domains out of this table for the attributes in subschema x.

Value parameters

x

the subschema/attributes to be collected

Attributes

Inherited from:
Tabular
def pull(t: Tuple, a: String): ValueType

Pull a value out of tuple t for attribute a.

Pull a value out of tuple t for attribute a.

Value parameters

a

the attribute to be collected

t

the given tuple to pull value out of

Attributes

Inherited from:
Tabular
def pull(t: Row, cp: IndexedSeq[Int]): Row

Pull the values out of row t for the attributes in subschema column positions cp.

Pull the values out of row t for the attributes in subschema column positions cp.

Value parameters

cp

the subschema/attribute column positions to be collected

t

the given row to pull values out of

Attributes

Inherited from:
Tabular
def pull(t: Row, x: Schema): Row

Pull the values out of row t for the attributes in subschema x.

Pull the values out of row t for the attributes in subschema x.

Value parameters

t

the given row to pull values out of

x

the subschema/attributes to be collected

Attributes

Inherited from:
Tabular
def pull(t: Tuple, cp: IndexedSeq[Int]): Tuple

Pull the values out of tuple t for the attributes in subschema column positions cp.

Pull the values out of tuple t for the attributes in subschema column positions cp.

Value parameters

cp

the subschema/attribute column positions to be collected

t

the given tuple to pull values out of

Attributes

Inherited from:
Tabular
def pull(t: Tuple, x: Schema): Tuple

Pull the values out of tuple t for the attributes in subschema x.

Pull the values out of tuple t for the attributes in subschema x.

Value parameters

t

the given tuple to pull values out of

x

the subschema/attributes to be collected

Attributes

Inherited from:
Tabular
def rightJoin(r2: Table): Table

Compute the RIGHT-JOIN of this table and r2 keeping concatenated tuples that are equal on specified attributes. Also, keep all tuples in the right table padding the missing attributes with null.

Compute the RIGHT-JOIN of this table and r2 keeping concatenated tuples that are equal on specified attributes. Also, keep all tuples in the right table padding the missing attributes with null.

Value parameters

r2

the second table

Attributes

Inherited from:
Tabular
def rightJoin(x: Schema, y: Schema, r2: Table): Table

Compute the RIGHT-EQUI-JOIN of this table and r2 keeping concatenated tuples that are equal on specified attributes. Also, keep all tuples in the right table padding the missing attributes with null.

Compute the RIGHT-EQUI-JOIN of this table and r2 keeping concatenated tuples that are equal on specified attributes. Also, keep all tuples in the right table padding the missing attributes with null.

Value parameters

r2

the second table

x

the subschema/attributes for the left/first/this table

y

the subschema/attributes for the right/second table

Attributes

Inherited from:
Tabular
def showT(tups: ArrayBuffer[Tuple]): String

Convert the tuples in tups into a string, e.g., for displaying a collection of tuples.

Convert the tuples in tups into a string, e.g., for displaying a collection of tuples.

Value parameters

tups

the tuples to be converted to a string

Attributes

Inherited from:
Tabular
def typeCheck(t: Tuple): Boolean

Check the size of the tuple (number of elements) as well as the type of each value to ensure it is from the right domain (satisfies the DOMAIN CONSTRAINTS).

Check the size of the tuple (number of elements) as well as the type of each value to ensure it is from the right domain (satisfies the DOMAIN CONSTRAINTS).

Value parameters

t

the tuple to be type checked

Attributes

Inherited from:
Tabular
inline def ×(r2: Table): Table

Attributes

Inherited from:
Tabular
inline def γ(ag: String): Table

Attributes

Inherited from:
Tabular
inline def π(cPos: IndexedSeq[Int]): Table

Attributes

Inherited from:
Tabular
inline def π(x: String): Table

Attributes

Inherited from:
Tabular
inline def ρ(newName: String): Table

Attributes

Inherited from:
Tabular
inline def σ(pkey: KeyType): Table

Attributes

Inherited from:
Tabular
inline def σ(condition: String): Table

Attributes

Inherited from:
Tabular
inline def σ(predicate: Predicate): Table

Attributes

Inherited from:
Tabular
inline def σ(a: String, apred: APredicate): Table

Attributes

Inherited from:
Tabular
inline def σπ(a: String, apred: APredicate): Table

Attributes

Inherited from:
Tabular
inline def (ag: String, f_as: (AggFunction, String)*): Table

Attributes

Inherited from:
Tabular
inline def (x: String*): Table

Attributes

Inherited from:
Tabular
inline def (x: String*): Table

Attributes

Inherited from:
Tabular
inline def (r2: Table): Table

Attributes

Inherited from:
Tabular
inline def (r2: Table): Table

Attributes

Inherited from:
Tabular
inline def (r2: Table): Table

Attributes

Inherited from:
Tabular
inline def (fkey: (String, Table)): Table

Attributes

Inherited from:
Tabular
inline def (x: String, y: String, r2: Table): Table

Attributes

Inherited from:
Tabular
inline def (condition: String, r2: Table): Table

Attributes

Inherited from:
Tabular
inline def (predicate: Predicate2, r2: Table): Table

Attributes

Inherited from:
Tabular
inline def (r2: Table): Table

Attributes

Inherited from:
Tabular
inline def (x: Schema, y: Schema, r2: Table): Table

Attributes

Inherited from:
Tabular
inline def (r2: Table): Table

Attributes

Inherited from:
Tabular
inline def (x: Schema, y: Schema, r2: Table): Table

Attributes

Inherited from:
Tabular

Inherited fields

val on: Map[String, Int]

Attributes

Inherited from:
Tabular