summaryrefslogtreecommitdiff
path: root/sql/conflicthandler/merge_on_time.sql
blob: 2af5c4597d7ac4cc6c7f186f2a1400a647371426 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
create or replace function merge_on_time(
    fn_conf text,
    cur_tick text,
    ev_id text,
    ev_time text,
    ev_txid text,
    ev_retry text,
    ev_type text,
    ev_data text,
    ev_extra1 text,
    ev_extra2 text,
    ev_extra3 text,
    ev_extra4 text)
returns text as $$
# callback function for londiste applyfn handler
try:
    import pkgloader
    pkgloader.require('skytools', '3.0')
    from skytools.plpy_applyrow import ts_conflict_handler
    args = [fn_conf, ev_type, ev_data, ev_extra1, ev_extra2, ev_extra3, ev_extra4]
    return ts_conflict_handler(SD, args)
except:
    import traceback
    for ln in traceback.format_exc().split('\n'):
        if ln:
            plpy.warning(ln)
    raise

$$ language plpythonu;

-- select merge_on_time('timefield=modified_date', 'I:id_ccard', 'key_user=foo&id_ccard=1&modified_date=2005-01-01', 'ccdb.ccard', '', '', '');