def _vars_to_add(new_query_variables, current_query_variables):
    """
    Return list of dicts representing Query Variables not yet persisted

    Keyword Parameters:
    new_query_variables  -- Dict, representing a new inventory of Query
      Variables, to be associated with a DWSupport Query
    current_query_variables  -- Dict, representing the Query Variables
      currently associated with the 'new_query_variables' Query mapped
      by tuple(table_name, column_name)

    >>> from pprint import pprint
    >>> test_new_vars = { 'great_fact': ['measure_a', 'measure_b']
    ...                   ,'useful_dim': ['field_one']
    ...                   ,'occasionally_useful_dim': ['field_two']}
    >>> persisted_vars = { ('great_fact', 'measure_a'): object() #fake
    ...                   ,('useful_dim', 'field_one'): object()#objects
    ...                   ,('useful_dim', 'field_two'): object()}
    >>> out = _vars_to_add(test_new_vars, persisted_vars)
    >>> pprint(out) # check detected additions
    {'great_fact': ['measure_b'], 'occasionally_useful_dim': ['field_two']}
    """
    additional_fields_by_table_name = {} # Values to return
    # detect additions
    for new_variable_table_name, table_columns in new_query_variables.items():
        for column_name in table_columns:
            key = (new_variable_table_name, column_name) #table+column tuple
            if key not in current_query_variables:
                # New Query Variable - add variable name to table's list
                table_variables = additional_fields_by_table_name.setdefault(
                     new_variable_table_name
                    ,list()) #default to new, empty list (if none exists yet)
                table_variables.append(column_name)
    return additional_fields_by_table_name