Revision 2134
Added by Aaron Marcuse-Kubitza about 12 years ago
sql.py | ||
---|---|---|
437 | 437 |
run_query(db, function_query, cacheable=True) |
438 | 438 |
|
439 | 439 |
# Return query that uses function |
440 |
return mk_select(db, function+'() AS f ('+returning+')', order_by=None,
|
|
441 |
table_is_esc=True) # function alias is required in AS clause
|
|
440 |
return mk_select(db, function+'() AS f ('+returning+')', start=0,
|
|
441 |
order_by=None, table_is_esc=True)# AS clause requires function alias
|
|
442 | 442 |
|
443 | 443 |
return (query, params) |
444 | 444 |
|
... | ... | |
636 | 636 |
if not create: raise |
637 | 637 |
return put(db, table, row, pkey, row_ct_ref) # insert new row |
638 | 638 |
|
639 |
def put_table(db, out_table, in_tables, mapping, row_ct_ref=None,
|
|
640 |
table_is_esc=False): |
|
639 |
def put_table(db, out_table, in_tables, mapping, limit=None, start=0,
|
|
640 |
row_ct_ref=None, table_is_esc=False):
|
|
641 | 641 |
'''Recovers from errors. |
642 | 642 |
Only works under PostgreSQL (uses INSERT RETURNING). |
643 | 643 |
@param in_tables The main input table to select from, followed by a list of |
... | ... | |
657 | 657 |
joins = [in_tables0] + [(t, {in_pkey: join_using}) for t in in_tables] |
658 | 658 |
|
659 | 659 |
def mk_select_(cols): |
660 |
return mk_select(db, joins, cols, table_is_esc=table_is_esc) |
|
660 |
return mk_select(db, joins, cols, limit=limit, start=start, |
|
661 |
table_is_esc=table_is_esc) |
|
661 | 662 |
|
662 | 663 |
out_pkeys = out_table_clean+'_out_pkeys' |
663 | 664 |
def insert_(): |
... | ... | |
676 | 677 |
# Join together out_pkeys and in_pkeys |
677 | 678 |
run_query_into(db, *mk_select(db, |
678 | 679 |
[in_pkeys, (out_pkeys, {row_num_col: join_using})], |
679 |
[in_pkey, out_pkey]), into=pkeys) |
|
680 |
[in_pkey, out_pkey], start=0), into=pkeys)
|
|
680 | 681 |
|
681 | 682 |
try: |
682 | 683 |
# Insert and capture output pkeys |
Also available in: Unified diff
sql.py: put_table(): Added support for putting just a window subset of the rows in the table. Removed "SELECT statement missing a WHERE, LIMIT, or OFFSET clause" warnings.