Example #1
0
def queryParametersFromMapping(mapping):
    """
    Take a dictionary mapping named query templates. For
    each template, parse out the referenced template
    variables. Return a list of tuples for each query name
    and its associated template variables.

    Example:
    {'query_a': sql_query} => [('query_a', var1, var2, var3)]
    """
    rows = []
    env = createQueryEnvironment()
    for key in sorted(mapping.keys(), key=len):
        spec = mapping[key]
        columns = parseVariables(env, spec['query'])
        rows.append([key] + columns)
    return rows
Example #2
0
def extractQueryParams(query):
    """
    Extract Jijna2 variables from a query template.
    """
    env = createQueryEnvironment()
    return parseVariables(env, query)