SQLAlchemy 0.5 Documentation

Multiple Pages | One Page
Version: 0.5.0rc3 Last Updated: 11/07/08 13:55:35

module sqlalchemy.sql.compiler

Base SQL and DDL compiler implementations.

Provides the DefaultCompiler class, which is responsible for generating all SQL query strings, as well as SchemaGenerator and SchemaDropper which issue CREATE and DROP DDL for tables, sequences, and indexes.

The elements in this module are used by public-facing constructs like ClauseElement and Engine. While dialect authors will want to be familiar with this module for the purpose of creating database-specific compilers and schema generators, the module is otherwise internal to SQLAlchemy.

class DDLBase(SchemaIterator)

def find_alterables(self, tables)
back to section top

class DefaultCompiler(Compiled)

Default implementation of Compiled.

Compiles ClauseElements into SQL strings. Uses a similar visit paradigm as visitors.ClauseVisitor but implements its own traversal.

def __init__(self, dialect, statement, column_keys=None, inline=False, **kwargs)

Construct a new DefaultCompiler object.

dialect
Dialect to be used
statement
ClauseElement to be compiled
column_keys
a list of column names to be compiled into an INSERT or UPDATE statement.
def bindparam_string(self, name)
def compile(self)
def construct_params(self, params=None)

return a dictionary of bind parameter keys and values

def default_from(self)

Called when a SELECT statement has no froms, and no FROM clause is to be appended.

Gives Oracle a chance to tack on a FROM DUAL to the string output.

def escape_literal_column(self, text)

provide escaping for the literal_column() construct.

def for_update_clause(self, select)
def function_argspec(self, func, **kwargs)
def function_string(self, func)
def get_select_precolumns(self, select)

Called when building a SELECT statement, position is just before column list.

def is_subquery(self)
def label_select_column(self, select, column, asfrom)

label columns present in a select().

def limit_clause(self, select)
def operator_string(self, operator)
def order_by_clause(self, select)
params = property()

return a dictionary of bind parameter keys and values

def process(self, obj, **kwargs)
def visit_alias(self, alias, asfrom=False, **kwargs)
def visit_binary(self, binary, **kwargs)
def visit_bindparam(self, bindparam, **kwargs)
def visit_calculatedclause(self, clause, **kwargs)
def visit_cast(self, cast, **kwargs)
def visit_clauselist(self, clauselist, **kwargs)
def visit_column(self, column, result_map=None, **kwargs)
def visit_compound_select(self, cs, asfrom=False, parens=True, **kwargs)
def visit_delete(self, delete_stmt)
def visit_fromclause(self, fromclause, **kwargs)
def visit_function(self, func, result_map=None, **kwargs)
def visit_grouping(self, grouping, **kwargs)
def visit_index(self, index, **kwargs)
def visit_insert(self, insert_stmt)
def visit_join(self, join, asfrom=False, **kwargs)
def visit_label(self, label, result_map=None, within_columns_clause=False)
def visit_null(self, null, **kwargs)
def visit_release_savepoint(self, savepoint_stmt)
def visit_rollback_to_savepoint(self, savepoint_stmt)
def visit_savepoint(self, savepoint_stmt)
def visit_select(self, select, asfrom=False, parens=True, iswrapper=False, compound_index=1, **kwargs)
def visit_sequence(self, seq)
def visit_table(self, table, asfrom=False, **kwargs)
def visit_textclause(self, textclause, **kwargs)
def visit_typeclause(self, typeclause, **kwargs)
def visit_unary(self, unary, **kwargs)
def visit_update(self, update_stmt)
back to section top

class IdentifierPreparer(object)

Handle quoting and case-folding of identifiers based on options.

def __init__(self, dialect, initial_quote='"', final_quote=None, omit_schema=False)

Construct a new IdentifierPreparer object.

initial_quote
Character that begins a delimited identifier.
final_quote
Character that ends a delimited identifier. Defaults to initial_quote.
omit_schema
Prevent prepending schema name. Useful for databases that do not support schemae.
def format_alias(self, alias, name=None)
def format_column(self, column, use_table=False, name=None, table_name=None)

Prepare a quoted column name.

def format_constraint(self, constraint)
def format_label(self, label, name=None)
def format_savepoint(self, savepoint, name=None)
def format_sequence(self, sequence, use_schema=True)
def format_table(self, table, use_schema=True, name=None)

Prepare a quoted table and schema name.

def format_table_seq(self, table, use_schema=True)

Format table name and schema as a tuple.

def quote(self, ident, force)
def quote_identifier(self, value)

Quote an identifier.

Subclasses should override this to provide database-dependent quoting behavior.

def unformat_identifiers(self, identifiers)

Unpack 'schema.table.column'-like strings into components.

back to section top

class SchemaDropper(DDLBase)

def __init__(self, dialect, connection, checkfirst=False, tables=None, **kwargs)

Construct a new SchemaDropper.

def drop_foreignkey(self, constraint)
def visit_index(self, index)
def visit_metadata(self, metadata)
def visit_table(self, table)
back to section top

class SchemaGenerator(DDLBase)

def __init__(self, dialect, connection, checkfirst=False, tables=None, **kwargs)

Construct a new SchemaGenerator.

def add_foreignkey(self, constraint)
def define_constraint_deferrability(self, constraint)
def define_foreign_key(self, constraint)
def get_column_default_string(self, column)
def get_column_specification(self, column, first_pk=False)
def post_create_table(self, table)
def visit_check_constraint(self, constraint)
def visit_column(self, column)
def visit_column_check_constraint(self, constraint)
def visit_foreign_key_constraint(self, constraint)
def visit_index(self, index)
def visit_metadata(self, metadata)
def visit_primary_key_constraint(self, constraint)
def visit_table(self, table)
def visit_unique_constraint(self, constraint)
back to section top
Up: API Documentation | Previous: module sqlalchemy.schema | Next: module sqlalchemy.sql.expression