Columns

The column module defines two classes, Column derived from DbSchemaObject and ColumnDict, derived from DbObjectDict.

Column

Column is derived from DbSchemaObject and represents a column of a table, or an attribute of a composite type. Its keylist attributes are the schema name and the table name.

A Column has the following attributes: name, type, not_null, default and collation. The number attribute is also present but is not made visible externally.

class pyrseas.dbobject.column.Column(name, schema, table, number, type, description=None, privileges=[], not_null=True, default=None, identity=None, collation=None, statistics=None, inherited=False, dropped=False)

A table column or attribute of a composite type

Column.to_map(db, no_privs)

Convert a column to a YAML-suitable format

Parameters:no_privs – exclude privilege information
Returns:dictionary
Column.add()

Return a string to specify the column in a CREATE or ALTER TABLE

Returns:partial SQL statement
Column.add_privs()

Generate SQL statements to grant privileges on new column

Returns:list of SQL statements
Column.diff_privileges(incol)

Generate SQL statements to grant or revoke privileges

Parameters:incol – a YAML map defining the input column
Returns:list of SQL statements
Column.comment()

Return a SQL COMMENT statement for the column

Returns:SQL statement
Column.drop()

Return string to drop the column via ALTER TABLE

Returns:SQL statement
Column.rename(newname)

Return SQL statement to RENAME the column

Parameters:newname – the new name of the object
Returns:SQL statement
Column.alter(incol)

Generate SQL to transform an existing column

Parameters:insequence – a YAML map defining the new column
Returns:list of partial SQL statements

Compares the column to an input column and generates partial SQL statements to transform it into the one represented by the input.

Column Dictionary

Class ColumnDict is a dictionary derived from DbObjectDict and represents the collection of columns in a database, across multiple tables. It is indexed by the schema name and table name, and each value is a list of Column objects.

class pyrseas.dbobject.column.ColumnDict(dbconn=None)

The collection of columns in tables in a database

ColumnDict.from_map(table, incols)

Initialize the dictionary of columns by converting the input list

Parameters:
  • table – table or type owning the columns/attributes
  • incols – YAML list defining the columns