Add `pipekit export` / `pipekit apply` (pipekit/config_io.py) to serialise the DB's config — drivers, connections, modules (+ columns, watermarks, hooks), groups, schedules — to a git-trackable text tree under config/, and rehydrate it. SQLite stays runtime state; definitions become diffable/reviewable/ revertible. - config only: run_log/group_run/settings and per-run state columns excluded - name-keyed refs (portable across databases); source_query in .sql sidecars; columns as real JSON arrays for line-by-line diffs - newline-normalised so CRLF-vs-LF is never a spurious change - apply is create/update by name; child collections fully synced; top-level deletes gated behind --prune; --dry-run prints the plan - round-trip is identity (export -> apply --dry-run == nothing to do) Commits the current config/ as the first baseline, capturing the freshly populated columns_json for rm00101/rm00301/iv00101. Documented in SPEC.md. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
141 lines
4.2 KiB
SQL
141 lines
4.2 KiB
SQL
WITH changed AS (
|
|
SELECT dcord# FROM lgdat.ocrh WHERE dcudat BETWEEN '{ocri_wm}' AND CURRENT_DATE
|
|
UNION
|
|
SELECT dcord# FROM lgdat.ocrh WHERE dcodat BETWEEN '{ocri_wm}' AND CURRENT_DATE
|
|
UNION
|
|
SELECT dcord# FROM lgdat.ocrh WHERE dccdat BETWEEN '{ocri_wm}' AND CURRENT_DATE
|
|
)
|
|
SELECT
|
|
"DDORD#" AS "ddord#",
|
|
"DDITM#" AS "dditm#",
|
|
"DDDES#" AS "dddes#",
|
|
DDQTOI AS ddqtoi,
|
|
DDQTBI AS ddqtbi,
|
|
DDQTSI AS ddqtsi,
|
|
RTRIM(DDUNIT) AS ddunit,
|
|
DDUNPR AS ddunpr,
|
|
DDTOTI AS ddtoti,
|
|
RTRIM(DDSLMN) AS ddslmn,
|
|
DDCPCT AS ddcpct,
|
|
DDCRAT AS ddcrat,
|
|
RTRIM(DDAIND) AS ddaind,
|
|
RTRIM(DDPTEX) AS ddptex,
|
|
RTRIM(DDFTCD) AS ddftcd,
|
|
CASE WHEN DDRDAT IN (DATE('0001-01-01'), DATE('9999-12-31')) THEN NULL ELSE DDRDAT END AS ddrdat,
|
|
RTRIM(DDMAJS) AS ddmajs,
|
|
RTRIM(DDMINS) AS ddmins,
|
|
RTRIM(DDITST) AS dditst,
|
|
RTRIM(DDPART) AS ddpart,
|
|
RTRIM(DDGLC) AS ddglc,
|
|
RTRIM(DDCRRS) AS ddcrrs,
|
|
CASE WHEN DDSDAT IN (DATE('0001-01-01'), DATE('9999-12-31')) THEN NULL ELSE DDSDAT END AS ddsdat,
|
|
RTRIM(DDTXGR) AS ddtxgr,
|
|
RTRIM(DDTXRT) AS ddtxrt,
|
|
RTRIM(DDNU07) AS ddnu07,
|
|
RTRIM(DDTMPS) AS ddtmps,
|
|
DDTEMP AS ddtemp,
|
|
DDQTOO AS ddqtoo,
|
|
DDQTBO AS ddqtbo,
|
|
DDQTSO AS ddqtso,
|
|
RTRIM(DDORUN) AS ddorun,
|
|
DDQTSP AS ddqtsp,
|
|
RTRIM(DDPRUN) AS ddprun,
|
|
DDTOTB AS ddtotb,
|
|
DDTDIS AS ddtdis,
|
|
DDTTAX AS ddttax,
|
|
DDTFRT AS ddtfrt,
|
|
DDTWGT AS ddtwgt,
|
|
RTRIM(DDTWUN) AS ddtwun,
|
|
DDTVOL AS ddtvol,
|
|
RTRIM(DDTVUN) AS ddtvun,
|
|
CASE WHEN DDODAT IN (DATE('0001-01-01'), DATE('9999-12-31')) THEN NULL ELSE DDODAT END AS ddodat,
|
|
RTRIM(DDSTKL) AS ddstkl,
|
|
RTRIM(DDSTOR) AS ddstor,
|
|
CASE WHEN DDDDAT IN (DATE('0001-01-01'), DATE('9999-12-31')) THEN NULL ELSE DDDDAT END AS ddddat,
|
|
CASE WHEN DDFDAT IN (DATE('0001-01-01'), DATE('9999-12-31')) THEN NULL ELSE DDFDAT END AS ddfdat,
|
|
CASE WHEN DDHDAT IN (DATE('0001-01-01'), DATE('9999-12-31')) THEN NULL ELSE DDHDAT END AS ddhdat,
|
|
CASE WHEN DDQDAT IN (DATE('0001-01-01'), DATE('9999-12-31')) THEN NULL ELSE DDQDAT END AS ddqdat,
|
|
CASE WHEN DDCDAT IN (DATE('0001-01-01'), DATE('9999-12-31')) THEN NULL ELSE DDCDAT END AS ddcdat,
|
|
DDOLST AS ddolst,
|
|
DDCTMS AS ddctms,
|
|
RTRIM(DDCUSR) AS ddcusr,
|
|
RTRIM(DDDBUY) AS dddbuy,
|
|
"DDREQ#" AS "ddreq#",
|
|
RTRIM(DDPJNM) AS ddpjnm,
|
|
RTRIM(DDFUT1) AS ddfut1,
|
|
RTRIM(DDFUT2) AS ddfut2,
|
|
RTRIM(DDFUT3) AS ddfut3,
|
|
RTRIM(DDFUT4) AS ddfut4,
|
|
RTRIM(DDFUT5) AS ddfut5,
|
|
RTRIM(DDFUT6) AS ddfut6,
|
|
DDFUT7 AS ddfut7,
|
|
DDFUT8 AS ddfut8,
|
|
RTRIM(DDFUT9) AS ddfut9,
|
|
RTRIM(DDFUTA) AS ddfuta,
|
|
RTRIM(DDFUTB) AS ddfutb,
|
|
RTRIM(DDFUTC) AS ddfutc,
|
|
RTRIM(DDFUTD) AS ddfutd,
|
|
DDWTCH AS ddwtch,
|
|
DDWTCI AS ddwtci,
|
|
DDLDSQ AS ddldsq,
|
|
RTRIM("DDRAN#") AS "ddran#",
|
|
RTRIM(DDCTMZ) AS ddctmz,
|
|
RTRIM(DDOTMZ) AS ddotmz,
|
|
RTRIM(DDRTMZ) AS ddrtmz,
|
|
RTRIM(DDQTMZ) AS ddqtmz,
|
|
RTRIM(DDSTMZ) AS ddstmz,
|
|
DDRTME AS ddrtme,
|
|
DDQTME AS ddqtme,
|
|
DDSTME AS ddstme,
|
|
CASE WHEN DDRXDT IN (DATE('0001-01-01'), DATE('9999-12-31')) THEN NULL ELSE DDRXDT END AS ddrxdt,
|
|
DDRXTM AS ddrxtm,
|
|
CASE WHEN DDQXDT IN (DATE('0001-01-01'), DATE('9999-12-31')) THEN NULL ELSE DDQXDT END AS ddqxdt,
|
|
DDQXTM AS ddqxtm,
|
|
RTRIM(DDPTYP) AS ddptyp,
|
|
RTRIM(DDAWLS) AS ddawls,
|
|
DDPOIT AS ddpoit,
|
|
RTRIM(DDSRVC) AS ddsrvc,
|
|
RTRIM(DDPRCL) AS ddprcl,
|
|
RTRIM(DDAVAC) AS ddavac,
|
|
RTRIM(DDDBAC) AS dddbac,
|
|
RTRIM(DDSCDP) AS ddscdp,
|
|
RTRIM(DDSOCP) AS ddsocp,
|
|
RTRIM(DDCSPI) AS ddcspi,
|
|
RTRIM(DDSCPI) AS ddscpi,
|
|
RTRIM(DDSCOR) AS ddscor,
|
|
RTRIM(DDSCIM) AS ddscim,
|
|
RTRIM("DDREV#") AS "ddrev#",
|
|
RTRIM(DDCSPA) AS ddcspa,
|
|
DDOITM AS ddoitm,
|
|
RTRIM(DDFROM) AS ddfrom,
|
|
RTRIM(DDMMEL) AS ddmmel,
|
|
RTRIM(DDFEAT) AS ddfeat,
|
|
RTRIM(DDOPTN) AS ddoptn,
|
|
RTRIM(DDFUT10) AS ddfut10,
|
|
RTRIM(DDFUT11) AS ddfut11,
|
|
RTRIM(DDFUT12) AS ddfut12,
|
|
RTRIM(DDFUT13) AS ddfut13,
|
|
RTRIM(DDFUT14) AS ddfut14,
|
|
RTRIM(DDFUT15) AS ddfut15,
|
|
RTRIM(DDFUT16) AS ddfut16,
|
|
RTRIM(DDFUT17) AS ddfut17,
|
|
DDFUT18 AS ddfut18,
|
|
DDFUT19 AS ddfut19,
|
|
DDFUT20 AS ddfut20,
|
|
RTRIM(DDCONPT) AS ddconpt,
|
|
DDUFRT AS ddufrt,
|
|
DDHFEP AS ddhfep,
|
|
RTRIM(DDOGLDC) AS ddogldc,
|
|
RTRIM(DDDRSF) AS dddrsf,
|
|
RTRIM(DDODBUY) AS ddodbuy,
|
|
RTRIM(DDATSPG) AS ddatspg,
|
|
RTRIM(DDWCOD) AS ddwcod,
|
|
DD3PNM AS dd3pnm,
|
|
DDWEOR AS ddweor,
|
|
DDWEOI AS ddweoi,
|
|
RTRIM(DDAGRM) AS ddagrm,
|
|
DDRNDR AS ddrndr,
|
|
DDRNDI AS ddrndi
|
|
FROM LGDAT.OCRI i
|
|
INNER JOIN changed c ON c.dcord# = i.ddord#
|