SQL Generator

The SQL Generator module contains the core SQL generation functionality for TLSQL. tlsql.convert() and tlsql.convert_workflow_queries() use these classes internally.

Example

import tlsql

result = tlsql.convert("PREDICT VALUE(users.Age, CLF) FROM users WHERE users.Gender='F'")
print(result.statement_type)
print(result.target_column)
print(result.sql)

Main API

Single-statement conversion: tlsql.convert(). Workflow conversion: tlsql.convert_workflow_queries().

convert(tlsql)[source]

Convert a single TLSQL statement to standard SQL.

Parameters:

tlsql – One TLSQL statement (PREDICT, TRAIN, or VALIDATE).

Returns:

StatementResult with sql_list, target_table, where_condition, etc.

Source code for convert:

def convert(tlsql: str) -> StatementResult:
    """Convert a single TLSQL statement to standard SQL.

    Args:
        tlsql: One TLSQL statement (PREDICT, TRAIN, or VALIDATE).

    Returns:
        StatementResult with sql_list, target_table, where_condition, etc.
    """
    return SQLGenerator.convert(tlsql)

convert_workflow_queries(query_list, table_list=None)[source]

Workflow-level API built on convert().

It takes three statements at once and returns a ConversionResult. PREDICT is required; TRAIN and VALIDATEare optional. When TRAIN is omitted, it is auto-generated from the PREDICT statement and table_list (PREDICT table: NOT(WHERE); other tables: SELECT *).

Parameters:
  • query_list – List of three TLSQL strings [PREDICT, TRAIN, VALIDATE]. Only the first (PREDICT) is required; the others may be None or “”.

  • table_list – List of table names used when auto-generating TRAIN. Required when query_list[1] (TRAIN) is not provided.

Returns:

ConversionResult containing predict_result, train_result, and validate_result (None if VALIDATE not provided). Use result.predict, result.train, and result.validate for access.

SQL Generator Class

The SQLGenerator class provides the core SQL generation functionality:

class SQLGenerator[source]

Bases: object

SQL generator that converts TLSQL AST nodes to standard SQL statements.

__init__()[source]

Initialize SQL generator.

classmethod convert(tlsql)[source]

Convert a single TLSQL query to standard SQL.

Parameters:

tlsql – TLSQL query string.

Returns:

StatementResult object containing SQL and other meta information.

Result Classes

class ConversionResult(predict_result, train_result, validate_result=None)[source]

Bases: object

Result from TLSQL workflow conversion.

This class represents the result of converting a TLSQL workflow (PREDICT, TRAIN, VALIDATE) into standard SQL. It contains individual statement results for each component.

predict_result

StatementResult for PREDICT statement (required).

train_result

StatementResult for TRAIN statement (required).

validate_result

StatementResult for VALIDATE statement (optional).

class StatementResult(statement_type, sql_list, target_column=None, task_type=None, target_table=None, tables=<factory>, where_condition=None)[source]

Bases: object

Result for a single TLSQL statement (PREDICT/TRAIN/VALIDATE).

This class represents the result of converting a single TLSQL statement (PREDICT, TRAIN, or VALIDATE) into standard SQL.

statement_type

Type of statement (‘PREDICT’, ‘TRAIN’, or ‘VALIDATE’).

sql_list

List of GeneratedSQL objects per table.

target_column

Target column reference (for PREDICT statements).

task_type

Task type (for PREDICT statements).

target_table

Target table name.

tables

List of all tables involved in the statement.

where_condition

WHERE condition as SQL string.

class GeneratedSQL(table, sql, columns=<factory>)[source]

Bases: object

Generated SQL statement.

table

Table name.

sql

SQL string.

columns

Selected column list.