Files
dc/sas/mocks/test/parity/golden/public/getddl/mpe_tables.json
T
dc 96f70d53b6
Build / Build-and-ng-test (pull_request) Successful in 5m11s
Build / Build-and-test-development (pull_request) Canceled after 3m24s
Build / lighthouse (pull_request) Canceled after 3m22s
feat(mocks): generate the DDL download from the table, not a sample
public/getddl answered one fixed Postgres-flavoured body for every request -
DC_JSLIB.MPE_X_TEST whatever dataset was asked for - which is the last read path
the client calls where the mock invented its answer.

It now builds the SAS-flavour DDL from the table file, the way mp_ds2ddl builds
it from dictionary.columns and dictionary.indexes: the header, the create table
with each column's type, format, NOT NULL and label, and the unique index. The
list-output spacing was derived from the estate's own answers and reproduces
them byte for byte for all forty control tables.

Recorded as public/getddl/mpe_tables, so a mock change that alters the text
fails the gate. The header credits a user and a timestamp, so the projection
masks both - a user id is not something to publish, and the comparison is about
the DDL.

TSQL and PGSQL are not generated yet: a caller asking for one gets the SAS text,
and the README says so rather than inventing a second dialect without a
recording to check it against.
2026-11-07 18:10:11 +00:00

19 lines
1.3 KiB
JSON

{
"_meta": {
"scenario": "mpe_tables",
"service": "public/getddl",
"estate": "synthetic",
"targetType": "SASJS",
"sas": "unknown",
"dc": "7.22.0",
"captured": "2026-11-07",
"tls": "verified",
"members": [
"text"
]
},
"body": {
"text": "/* DDL generated by <USER> on <DATETIME> */\n/* SAS Flavour DDL for <LIBREF>.MPE_TABLES */\nproc sql;\ncreate table <LIBREF>.MPE_TABLES(\n tx_from num format=DATETIME19.3 not null \n ,tx_to num format=DATETIME19.3 not null \n ,libref char(8) not null \n ,dsn char(32) not null \n ,num_of_approvals_required num \n ,loadtype char(12) \n ,buskey char(1000) \n ,var_txfrom char(32) \n ,var_txto char(32) \n ,var_busfrom char(32) \n ,var_busto char(32) \n ,var_processed char(32) \n ,close_vars char(500) \n ,pre_edit_hook char(200) \n ,post_edit_hook char(200) \n ,pre_approve_hook char(200) \n ,post_approve_hook char(200) \n ,signoff_cols char(500) \n ,signoff_hook char(200) \n ,notes char(1000) \n ,rk_underlying char(1000) \n ,audit_libds char(41) \n);\nCREATE UNIQUE INDEX pk_mpe_tables ON <LIBREF>.MPE_TABLES (\n tx_to\n ,libref\n ,dsn\n);\n"
}
}