@sqg/sqg 0.17.2 → 0.17.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.mjs +37 -1
- package/dist/sqg.mjs +39 -3
- package/dist/templates/java-jdbc.hbs +22 -1
- package/dist/ui-server.mjs +19 -21
- package/package.json +1 -1
package/dist/index.mjs
CHANGED
|
@@ -1870,7 +1870,10 @@ var JavaGenerator = class extends BaseGenerator {
|
|
|
1870
1870
|
}).join(" + ");
|
|
1871
1871
|
}
|
|
1872
1872
|
readColumn(column, index, path) {
|
|
1873
|
-
|
|
1873
|
+
const idx = index + 1;
|
|
1874
|
+
const readExpr = jdbcReadExpression(column, idx, this.typeMapper);
|
|
1875
|
+
if (readExpr !== null) return readExpr;
|
|
1876
|
+
return this.typeMapper.parseValue(column, `rs.getObject(${idx})`, path);
|
|
1874
1877
|
}
|
|
1875
1878
|
async beforeGenerate(_projectDir, _gen, _queries, _tables) {
|
|
1876
1879
|
Handlebars.registerHelper("isDuckDB", () => this.engine === "duckdb");
|
|
@@ -1979,6 +1982,39 @@ var JavaGenerator = class extends BaseGenerator {
|
|
|
1979
1982
|
}
|
|
1980
1983
|
}
|
|
1981
1984
|
};
|
|
1985
|
+
const JDBC_GETTER_MAP = {
|
|
1986
|
+
String: (i) => `rs.getString(${i})`,
|
|
1987
|
+
"byte[]": (i) => `rs.getBytes(${i})`,
|
|
1988
|
+
BigDecimal: (i) => `rs.getBigDecimal(${i})`,
|
|
1989
|
+
Integer: (i) => `rs.getObject(${i}, Integer.class)`,
|
|
1990
|
+
Long: (i) => `rs.getObject(${i}, Long.class)`,
|
|
1991
|
+
Short: (i) => `rs.getObject(${i}, Short.class)`,
|
|
1992
|
+
Byte: (i) => `rs.getObject(${i}, Byte.class)`,
|
|
1993
|
+
Boolean: (i) => `rs.getObject(${i}, Boolean.class)`,
|
|
1994
|
+
Double: (i) => `rs.getObject(${i}, Double.class)`,
|
|
1995
|
+
Float: (i) => `rs.getObject(${i}, Float.class)`
|
|
1996
|
+
};
|
|
1997
|
+
const OPAQUE_SQL_TYPES = new Set([
|
|
1998
|
+
"TIMESTAMP",
|
|
1999
|
+
"DATETIME",
|
|
2000
|
+
"TIMESTAMPTZ",
|
|
2001
|
+
"TIMESTAMP WITH TIME ZONE",
|
|
2002
|
+
"TIMESTAMP_S",
|
|
2003
|
+
"TIMESTAMP_MS",
|
|
2004
|
+
"TIMESTAMP_NS",
|
|
2005
|
+
"DATE",
|
|
2006
|
+
"TIME",
|
|
2007
|
+
"TIME WITH TIME ZONE",
|
|
2008
|
+
"JSON",
|
|
2009
|
+
"JSONB"
|
|
2010
|
+
]);
|
|
2011
|
+
function jdbcReadExpression(column, index, typeMapper) {
|
|
2012
|
+
if (column.type instanceof EnumType || column.type instanceof ListType || column.type instanceof StructType) return null;
|
|
2013
|
+
const upperType = column.type?.toString().toUpperCase() ?? "";
|
|
2014
|
+
if (OPAQUE_SQL_TYPES.has(upperType) || upperType.startsWith("_")) return null;
|
|
2015
|
+
const getter = JDBC_GETTER_MAP[typeMapper.getTypeName(column)];
|
|
2016
|
+
return getter ? getter(index) : null;
|
|
2017
|
+
}
|
|
1982
2018
|
const JDBC_SETTER_MAP = {
|
|
1983
2019
|
String: {
|
|
1984
2020
|
setter: "setString",
|
package/dist/sqg.mjs
CHANGED
|
@@ -2189,7 +2189,10 @@ var JavaGenerator = class extends BaseGenerator {
|
|
|
2189
2189
|
}).join(" + ");
|
|
2190
2190
|
}
|
|
2191
2191
|
readColumn(column, index, path) {
|
|
2192
|
-
|
|
2192
|
+
const idx = index + 1;
|
|
2193
|
+
const readExpr = jdbcReadExpression(column, idx, this.typeMapper);
|
|
2194
|
+
if (readExpr !== null) return readExpr;
|
|
2195
|
+
return this.typeMapper.parseValue(column, `rs.getObject(${idx})`, path);
|
|
2193
2196
|
}
|
|
2194
2197
|
async beforeGenerate(_projectDir, _gen, _queries, _tables) {
|
|
2195
2198
|
Handlebars.registerHelper("isDuckDB", () => this.engine === "duckdb");
|
|
@@ -2298,6 +2301,39 @@ var JavaGenerator = class extends BaseGenerator {
|
|
|
2298
2301
|
}
|
|
2299
2302
|
}
|
|
2300
2303
|
};
|
|
2304
|
+
const JDBC_GETTER_MAP = {
|
|
2305
|
+
String: (i) => `rs.getString(${i})`,
|
|
2306
|
+
"byte[]": (i) => `rs.getBytes(${i})`,
|
|
2307
|
+
BigDecimal: (i) => `rs.getBigDecimal(${i})`,
|
|
2308
|
+
Integer: (i) => `rs.getObject(${i}, Integer.class)`,
|
|
2309
|
+
Long: (i) => `rs.getObject(${i}, Long.class)`,
|
|
2310
|
+
Short: (i) => `rs.getObject(${i}, Short.class)`,
|
|
2311
|
+
Byte: (i) => `rs.getObject(${i}, Byte.class)`,
|
|
2312
|
+
Boolean: (i) => `rs.getObject(${i}, Boolean.class)`,
|
|
2313
|
+
Double: (i) => `rs.getObject(${i}, Double.class)`,
|
|
2314
|
+
Float: (i) => `rs.getObject(${i}, Float.class)`
|
|
2315
|
+
};
|
|
2316
|
+
const OPAQUE_SQL_TYPES = new Set([
|
|
2317
|
+
"TIMESTAMP",
|
|
2318
|
+
"DATETIME",
|
|
2319
|
+
"TIMESTAMPTZ",
|
|
2320
|
+
"TIMESTAMP WITH TIME ZONE",
|
|
2321
|
+
"TIMESTAMP_S",
|
|
2322
|
+
"TIMESTAMP_MS",
|
|
2323
|
+
"TIMESTAMP_NS",
|
|
2324
|
+
"DATE",
|
|
2325
|
+
"TIME",
|
|
2326
|
+
"TIME WITH TIME ZONE",
|
|
2327
|
+
"JSON",
|
|
2328
|
+
"JSONB"
|
|
2329
|
+
]);
|
|
2330
|
+
function jdbcReadExpression(column, index, typeMapper) {
|
|
2331
|
+
if (column.type instanceof EnumType || column.type instanceof ListType || column.type instanceof StructType) return null;
|
|
2332
|
+
const upperType = column.type?.toString().toUpperCase() ?? "";
|
|
2333
|
+
if (OPAQUE_SQL_TYPES.has(upperType) || upperType.startsWith("_")) return null;
|
|
2334
|
+
const getter = JDBC_GETTER_MAP[typeMapper.getTypeName(column)];
|
|
2335
|
+
return getter ? getter(index) : null;
|
|
2336
|
+
}
|
|
2301
2337
|
const JDBC_SETTER_MAP = {
|
|
2302
2338
|
String: {
|
|
2303
2339
|
setter: "setString",
|
|
@@ -3418,7 +3454,7 @@ async function processProject(projectPath, ui) {
|
|
|
3418
3454
|
//#region src/mcp-server.ts
|
|
3419
3455
|
const server = new Server({
|
|
3420
3456
|
name: "sqg-mcp",
|
|
3421
|
-
version: process.env.npm_package_version ?? "0.17.
|
|
3457
|
+
version: process.env.npm_package_version ?? "0.17.4"
|
|
3422
3458
|
}, { capabilities: {
|
|
3423
3459
|
tools: {},
|
|
3424
3460
|
resources: {}
|
|
@@ -3883,7 +3919,7 @@ function formatMs(ms) {
|
|
|
3883
3919
|
}
|
|
3884
3920
|
//#endregion
|
|
3885
3921
|
//#region src/sqg.ts
|
|
3886
|
-
const version = process.env.npm_package_version ?? "0.17.
|
|
3922
|
+
const version = process.env.npm_package_version ?? "0.17.4";
|
|
3887
3923
|
updateNotifier({ pkg: {
|
|
3888
3924
|
name: "@sqg/sqg",
|
|
3889
3925
|
version
|
|
@@ -46,6 +46,12 @@ public class {{className}} {
|
|
|
46
46
|
this.connection = connection;
|
|
47
47
|
}
|
|
48
48
|
|
|
49
|
+
/** Options for streaming queries. fetchSize hints at the JDBC driver's batch size; 0 means driver default. */
|
|
50
|
+
public record StreamOptions(int fetchSize) {
|
|
51
|
+
public static final StreamOptions DEFAULT = new StreamOptions({{#if (isPostgres)}}1000{{else}}0{{/if}});
|
|
52
|
+
public StreamOptions withFetchSize(int fetchSize) { return new StreamOptions(fetchSize); }
|
|
53
|
+
}
|
|
54
|
+
|
|
49
55
|
private static Object[] getObjectArray(Array array) {
|
|
50
56
|
if (array == null) {
|
|
51
57
|
return null;
|
|
@@ -258,7 +264,16 @@ public class {{className}} {
|
|
|
258
264
|
{{/if}}
|
|
259
265
|
{{#if isQuery}}{{#unless isOne}}
|
|
260
266
|
public Stream<{{rowType}}> {{functionName}}Stream({{#each variables}}{{{type}}} {{name}}{{#unless @last}}, {{/unless}}{{/each}}) throws SQLException {
|
|
267
|
+
return {{functionName}}Stream({{#each variables}}{{name}}, {{/each}}StreamOptions.DEFAULT);
|
|
268
|
+
}
|
|
269
|
+
|
|
270
|
+
public Stream<{{rowType}}> {{functionName}}Stream({{#each variables}}{{{type}}} {{name}}, {{/each}}StreamOptions options) throws SQLException {
|
|
271
|
+
{{#if (isPostgres)}}
|
|
272
|
+
boolean wasAutoCommit = connection.getAutoCommit();
|
|
273
|
+
if (wasAutoCommit) connection.setAutoCommit(false);
|
|
274
|
+
{{/if}}
|
|
261
275
|
var stmt = connection.prepareStatement({{{partsToString sqlQueryParts}}});
|
|
276
|
+
if (options.fetchSize() > 0) stmt.setFetchSize(options.fetchSize());
|
|
262
277
|
{{#each parameters}}{{#if isArray}}stmt.setArray({{plusOne @index}}, connection.createArrayOf("{{arrayBaseType}}", {{name}}.toArray()));
|
|
263
278
|
{{else if isEnum}}stmt.setObject({{plusOne @index}}, {{name}}.getValue());
|
|
264
279
|
{{else}}{{{jdbcSet type (plusOne @index) name}}}
|
|
@@ -283,7 +298,13 @@ public class {{className}} {
|
|
|
283
298
|
return StreamSupport.stream(
|
|
284
299
|
Spliterators.spliteratorUnknownSize(iter, Spliterator.ORDERED), false
|
|
285
300
|
).onClose(() -> {
|
|
286
|
-
try {
|
|
301
|
+
try {
|
|
302
|
+
rs.close();
|
|
303
|
+
stmt.close();
|
|
304
|
+
{{#if (isPostgres)}}
|
|
305
|
+
if (wasAutoCommit) connection.setAutoCommit(true);
|
|
306
|
+
{{/if}}
|
|
307
|
+
}
|
|
287
308
|
catch (SQLException e) { throw new RuntimeException(e); }
|
|
288
309
|
});
|
|
289
310
|
}
|
package/dist/ui-server.mjs
CHANGED
|
@@ -13228,31 +13228,28 @@ var require_schemes = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
|
13228
13228
|
parse: wsParse,
|
|
13229
13229
|
serialize: wsSerialize
|
|
13230
13230
|
};
|
|
13231
|
-
const wss = {
|
|
13232
|
-
scheme: "wss",
|
|
13233
|
-
domainHost: ws.domainHost,
|
|
13234
|
-
parse: ws.parse,
|
|
13235
|
-
serialize: ws.serialize
|
|
13236
|
-
};
|
|
13237
|
-
const urn = {
|
|
13238
|
-
scheme: "urn",
|
|
13239
|
-
parse: urnParse,
|
|
13240
|
-
serialize: urnSerialize,
|
|
13241
|
-
skipNormalize: true
|
|
13242
|
-
};
|
|
13243
|
-
const urnuuid = {
|
|
13244
|
-
scheme: "urn:uuid",
|
|
13245
|
-
parse: urnuuidParse,
|
|
13246
|
-
serialize: urnuuidSerialize,
|
|
13247
|
-
skipNormalize: true
|
|
13248
|
-
};
|
|
13249
13231
|
const SCHEMES = {
|
|
13250
13232
|
http,
|
|
13251
13233
|
https,
|
|
13252
13234
|
ws,
|
|
13253
|
-
wss
|
|
13254
|
-
|
|
13255
|
-
|
|
13235
|
+
wss: {
|
|
13236
|
+
scheme: "wss",
|
|
13237
|
+
domainHost: ws.domainHost,
|
|
13238
|
+
parse: ws.parse,
|
|
13239
|
+
serialize: ws.serialize
|
|
13240
|
+
},
|
|
13241
|
+
urn: {
|
|
13242
|
+
scheme: "urn",
|
|
13243
|
+
parse: urnParse,
|
|
13244
|
+
serialize: urnSerialize,
|
|
13245
|
+
skipNormalize: true
|
|
13246
|
+
},
|
|
13247
|
+
"urn:uuid": {
|
|
13248
|
+
scheme: "urn:uuid",
|
|
13249
|
+
parse: urnuuidParse,
|
|
13250
|
+
serialize: urnuuidSerialize,
|
|
13251
|
+
skipNormalize: true
|
|
13252
|
+
}
|
|
13256
13253
|
};
|
|
13257
13254
|
Object.setPrototypeOf(SCHEMES, null);
|
|
13258
13255
|
/**
|
|
@@ -22274,6 +22271,7 @@ var require_min_version = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
|
22274
22271
|
break;
|
|
22275
22272
|
case "<":
|
|
22276
22273
|
case "<=": break;
|
|
22274
|
+
/* istanbul ignore next */
|
|
22277
22275
|
default: throw new Error(`Unexpected operation: ${comparator.operator}`);
|
|
22278
22276
|
}
|
|
22279
22277
|
});
|