Project

General

Profile

« Previous | Next » 

Revision 2738

sql.py: insert(): Use new sql_gen.Values

View differences:

lib/sql.py
655 655
    return run_query_into(db, query, params, into, recover=recover,
656 656
        cacheable=cacheable, log_level=log_level)
657 657

  
658
default = object() # tells insert() to use the default value for a column
658
default = sql_gen.default # tells insert() to use the default value for a column
659 659

  
660 660
def insert(db, table, row, *args, **kw_args):
661 661
    '''For params, see insert_select()'''
......
663 663
    else:
664 664
        cols = row.keys()
665 665
        row = row.values()
666
    row = list(row) # ensure that "!= []" works
666
    row = list(row) # ensure that "== []" works
667 667
    
668
    # Check for special values
669
    labels = []
670
    values = []
671
    for value in row:
672
        value = sql_gen.remove_col_rename(sql_gen.as_Value(value)).value
673
        if value is default: labels.append('DEFAULT')
674
        else:
675
            labels.append('%s')
676
            values.append(value)
668
    if row == []: query = None
669
    else: query = sql_gen.Values(row).to_str(db)
677 670
    
678
    # Build query
679
    if values != []: query = 'VALUES ('+(', '.join(labels))+')'
680
    else: query = None
681
    
682
    return insert_select(db, table, cols, query, values, *args, **kw_args)
671
    return insert_select(db, table, cols, query, [], *args, **kw_args)
683 672

  
684 673
def mk_update(db, table, changes=None, cond=None):
685 674
    '''

Also available in: Unified diff