Skip to content

Commit 2ee1e45

Browse files
committed
feat(manager): log API-executed SQL with parameters at INFO
1 parent 4ad9438 commit 2ee1e45

3 files changed

Lines changed: 37 additions & 22 deletions

File tree

‎CHANGELOG.md‎

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -104,6 +104,20 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
104104
Pinned by a core test that all three flag values reach `ApiAssignmentDao.searchAll` and that none of them
105105
reads the online table.
106106

107+
- Manager-side API execution now logs every statement it runs together with the bound parameter values at INFO.
108+
The SQL and GraphQL engines already did this (`ExecuteSQL:{sql}\n{params}` in `SqlJdbcUtils`, on because both
109+
manager entry points — the data MCP server and `assignment/debug` — pass `printSqlLog=true`); the gaps were the
110+
SCRIPT engine, whose `db.*` functions logged the raw template plus the whole script parameter map instead of
111+
the executed statement, and the data task preview, which logged nothing. Both now emit the same shape so one
112+
grep finds every statement: `ExecuteSQL [db.selectAll]` / `[db.page]` / `[db.insert]` … carry the rendered SQL
113+
and the values actually bound (pagination arguments included, since `page` logs after the page consumer ran),
114+
`batchUpdate` carries its statement list, and the preview line carries the task name
115+
(`ExecuteSQL [data task preview <task>]`). Parameters are printed as-is, matching the existing engine line and
116+
the debug endpoint's `logs` payload, so a password that reaches a statement is readable in
117+
`manager_server.log`. Gating is unchanged: the `db.*` lines stay behind `printSqlLog` (the executor keeps
118+
`datapoly.executor.print-sql-log=false`) and the preview line sits on the manager-only path, the task worker
119+
being enabled in the executor alone.
120+
107121
### Fixed
108122

109123
- Data task streaming memory and completeness: the single statement now executes

‎datapoly-core/src/main/java/com/cs/core/datatask/DataTaskJobEngine.java‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -378,6 +378,7 @@ public Map<String, Object> debugPreview(DataTaskDefEntity def, Map<String, Objec
378378

379379
XmlSqlTemplate template = new XmlSqlTemplate(def.getSqlText());
380380
SqlMeta sqlMeta = template.process(boundParams, Boolean.TRUE.equals(def.getDollarAllowed()));
381+
log.info("ExecuteSQL [data task preview {}]:{}\n{}", def.getName(), sqlMeta.getSql(), sqlMeta.getParameter());
381382

382383
PreviewChannel channel = new PreviewChannel(def);
383384
StreamSpec spec = StreamSpec.builder()

‎datapoly-core/src/main/java/com/cs/core/exec/module/DbVarModule.java‎

Lines changed: 22 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -86,11 +86,11 @@ private List<Map<String, Object>> build(List<Map<String, Object>> rows) {
8686

8787
@Comment("comment.db.selectAll")
8888
public List<Map<String, Object>> selectAll(@Comment("comment.param.sqlOrXml") String sqlOrXml) throws SQLException {
89-
if (printSqlLog) {
90-
log.info("Enter selectAll() function, SQL:{},params:{}", sqlOrXml, params);
91-
}
9289
XmlSqlTemplate template = new XmlSqlTemplate(sqlOrXml);
9390
SqlMeta sqlMeta = processTemplate(template);
91+
if (printSqlLog) {
92+
log.info("ExecuteSQL [db.selectAll]:{}\n{}", sqlMeta.getSql(), sqlMeta.getParameter());
93+
}
9494
long start = System.currentTimeMillis();
9595
try {
9696
return build(jdbcTemplate.queryForList(sqlMeta.getSql(), sqlMeta.getParameter().toArray()));
@@ -101,12 +101,12 @@ public List<Map<String, Object>> selectAll(@Comment("comment.param.sqlOrXml") St
101101

102102
@Comment("comment.db.selectCount")
103103
public Integer selectCount(@Comment("comment.param.sqlOrXml") String sqlOrXml) {
104-
if (printSqlLog) {
105-
log.info("Enter selectCount() function, SQL:{},params:{}", sqlOrXml, params);
106-
}
107104
XmlSqlTemplate template = new XmlSqlTemplate(sqlOrXml);
108105
SqlMeta sqlMeta = processTemplate(template);
109106
String countSql = String.format("select count(*) from (%s) a", sqlMeta.getSql());
107+
if (printSqlLog) {
108+
log.info("ExecuteSQL [db.selectCount]:{}\n{}", countSql, sqlMeta.getParameter());
109+
}
110110
long start = System.currentTimeMillis();
111111
try {
112112
return jdbcTemplate.queryForObject(countSql, Integer.class, sqlMeta.getParameter().toArray());
@@ -117,11 +117,11 @@ public Integer selectCount(@Comment("comment.param.sqlOrXml") String sqlOrXml) {
117117

118118
@Comment("comment.db.selectOne")
119119
public Map<String, Object> selectOne(@Comment("comment.param.sqlOrXml") String sqlOrXml) {
120-
if (printSqlLog) {
121-
log.info("Enter selectOne() function, SQL:{},params:{}", sqlOrXml, params);
122-
}
123120
XmlSqlTemplate template = new XmlSqlTemplate(sqlOrXml);
124121
SqlMeta sqlMeta = processTemplate(template);
122+
if (printSqlLog) {
123+
log.info("ExecuteSQL [db.selectOne]:{}\n{}", sqlMeta.getSql(), sqlMeta.getParameter());
124+
}
125125
long start = System.currentTimeMillis();
126126
try {
127127
return build(jdbcTemplate
@@ -145,16 +145,16 @@ public Map<String, Object> extractData(ResultSet rs) throws SQLException, DataAc
145145
@Comment("comment.db.page")
146146
public List<Map<String, Object>> page(@Comment("comment.param.sqlOrXml") String sqlOrXml)
147147
throws SQLException {
148-
if (printSqlLog) {
149-
log.info("Enter page() function, SQL:{},params:{}", sqlOrXml, params);
150-
}
151148
int page = PageSizeUtils.getPageFromParams(params);
152149
int size = PageSizeUtils.getSizeFromParams(params);
153150
XmlSqlTemplate template = new XmlSqlTemplate(sqlOrXml);
154151
SqlMeta sqlMeta = processTemplate(template);
155152
String pageSql = getPageSql(sqlMeta.getSql(), page, size);
156153
List<Object> parameters = sqlMeta.getParameter();
157154
this.productType.getPageConsumer().accept(page, size, parameters);
155+
if (printSqlLog) {
156+
log.info("ExecuteSQL [db.page]:{}\n{}", pageSql, parameters);
157+
}
158158
long start = System.currentTimeMillis();
159159
try {
160160
return build(jdbcTemplate.queryForList(pageSql, parameters.toArray()));
@@ -165,12 +165,12 @@ public List<Map<String, Object>> page(@Comment("comment.param.sqlOrXml") String
165165

166166
@Comment("comment.db.insert")
167167
public Map<String, Object> insert(@Comment("comment.param.sqlOrXml") String sqlOrXml) {
168-
if (printSqlLog) {
169-
log.info("Enter insert() function, SQL:{},params:{}", sqlOrXml, params);
170-
}
171168
XmlSqlTemplate template = new XmlSqlTemplate(sqlOrXml);
172169
SqlMeta sqlMeta = processTemplate(template);
173170
List<Object> parameters = sqlMeta.getParameter();
171+
if (printSqlLog) {
172+
log.info("ExecuteSQL [db.insert]:{}\n{}", sqlMeta.getSql(), parameters);
173+
}
174174
GeneratedKeyHolder keyHolder = new GeneratedKeyHolder();
175175
long start = System.currentTimeMillis();
176176
try {
@@ -189,12 +189,12 @@ public Map<String, Object> insert(@Comment("comment.param.sqlOrXml") String sqlO
189189

190190
@Comment("comment.db.update")
191191
public int update(@Comment("comment.param.sqlOrXml") String sqlOrXml) {
192-
if (printSqlLog) {
193-
log.info("Enter update() function, SQL:{},params:{}", sqlOrXml, params);
194-
}
195192
XmlSqlTemplate template = new XmlSqlTemplate(sqlOrXml);
196193
SqlMeta sqlMeta = processTemplate(template);
197194
List<Object> parameters = sqlMeta.getParameter();
195+
if (printSqlLog) {
196+
log.info("ExecuteSQL [db.update]:{}\n{}", sqlMeta.getSql(), parameters);
197+
}
198198
long start = System.currentTimeMillis();
199199
try {
200200
return jdbcTemplate.update(sqlMeta.getSql(), parameters.toArray());
@@ -206,7 +206,7 @@ public int update(@Comment("comment.param.sqlOrXml") String sqlOrXml) {
206206
@Comment("comment.db.batchUpdate")
207207
public int batchUpdate(@Comment("comment.param.sqlList") List<String> sqlList) {
208208
if (printSqlLog) {
209-
log.info("Enter batchUpdate() function, SQL:{},params:{}", sqlList);
209+
log.info("ExecuteSQL [db.batchUpdate]:{}", sqlList);
210210
}
211211
long start = System.currentTimeMillis();
212212
try {
@@ -219,12 +219,12 @@ public int batchUpdate(@Comment("comment.param.sqlList") List<String> sqlList) {
219219

220220
@Comment("comment.db.delete")
221221
public int delete(@Comment("comment.param.sqlOrXml") String sqlOrXml) {
222-
if (printSqlLog) {
223-
log.info("Enter delete() function, SQL:{},params:{}", sqlOrXml, params);
224-
}
225222
XmlSqlTemplate template = new XmlSqlTemplate(sqlOrXml);
226223
SqlMeta sqlMeta = processTemplate(template);
227224
List<Object> parameters = sqlMeta.getParameter();
225+
if (printSqlLog) {
226+
log.info("ExecuteSQL [db.delete]:{}\n{}", sqlMeta.getSql(), parameters);
227+
}
228228
long start = System.currentTimeMillis();
229229
try {
230230
return jdbcTemplate.update(sqlMeta.getSql(), parameters.toArray());

0 commit comments

Comments
 (0)