Revision 2738
Added by Aaron Marcuse-Kubitza over 12 years ago
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
sql.py: insert(): Use new sql_gen.Values