@maiyunnet/kebab 9.12.1 → 9.12.2
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/doc/kebab-rag.md +31 -31
- package/index.d.ts +1 -1
- package/index.js +1 -1
- package/lib/net.js +2 -2
- package/lib/sql.d.ts +1 -1
- package/lib/sql.js +10 -9
- package/lib/undici.js +1 -1
- package/package.json +1 -1
- package/sys/mod.js +1 -1
package/doc/kebab-rag.md
CHANGED
|
@@ -1360,7 +1360,7 @@ index/variables/VER.md
|
|
|
1360
1360
|
|
|
1361
1361
|
# Variable: VER
|
|
1362
1362
|
|
|
1363
|
-
> `const` **VER**: `"9.12.
|
|
1363
|
+
> `const` **VER**: `"9.12.2"` = `'9.12.2'`
|
|
1364
1364
|
|
|
1365
1365
|
Defined in: [index.ts:10](https://github.com/maiyunnet/kebab/blob/master/index.ts#L10)
|
|
1366
1366
|
|
|
@@ -13741,7 +13741,7 @@ Defined in: [lib/sql.ts:69](https://github.com/maiyunnet/kebab/blob/master/lib/s
|
|
|
13741
13741
|
|
|
13742
13742
|
> **append**(`sql`): `this`
|
|
13743
13743
|
|
|
13744
|
-
Defined in: [lib/sql.ts:
|
|
13744
|
+
Defined in: [lib/sql.ts:1006](https://github.com/maiyunnet/kebab/blob/master/lib/sql.ts#L1006)
|
|
13745
13745
|
|
|
13746
13746
|
在 sql 最后追加字符串
|
|
13747
13747
|
|
|
@@ -13761,7 +13761,7 @@ Defined in: [lib/sql.ts:1005](https://github.com/maiyunnet/kebab/blob/master/lib
|
|
|
13761
13761
|
|
|
13762
13762
|
> **by**(`c`, `d?`): `this`
|
|
13763
13763
|
|
|
13764
|
-
Defined in: [lib/sql.ts:
|
|
13764
|
+
Defined in: [lib/sql.ts:762](https://github.com/maiyunnet/kebab/blob/master/lib/sql.ts#L762)
|
|
13765
13765
|
|
|
13766
13766
|
ORDER BY
|
|
13767
13767
|
|
|
@@ -13789,7 +13789,7 @@ ORDER BY
|
|
|
13789
13789
|
|
|
13790
13790
|
> **copy**(`f?`, `opt?`): `Sql`
|
|
13791
13791
|
|
|
13792
|
-
Defined in: [lib/sql.ts:
|
|
13792
|
+
Defined in: [lib/sql.ts:830](https://github.com/maiyunnet/kebab/blob/master/lib/sql.ts#L830)
|
|
13793
13793
|
|
|
13794
13794
|
创建一个本对象的一个新的 sql 对象拷贝
|
|
13795
13795
|
|
|
@@ -13817,7 +13817,7 @@ Defined in: [lib/sql.ts:829](https://github.com/maiyunnet/kebab/blob/master/lib/
|
|
|
13817
13817
|
|
|
13818
13818
|
> **crossJoin**(`f`, `s?`, `suf?`, `pre?`): `this`
|
|
13819
13819
|
|
|
13820
|
-
Defined in: [lib/sql.ts:
|
|
13820
|
+
Defined in: [lib/sql.ts:491](https://github.com/maiyunnet/kebab/blob/master/lib/sql.ts#L491)
|
|
13821
13821
|
|
|
13822
13822
|
cross join 方法
|
|
13823
13823
|
|
|
@@ -13857,7 +13857,7 @@ MySQL 时为表前缀,PostgreSQL 时为 Schema 名,仅在 join 非默认前
|
|
|
13857
13857
|
|
|
13858
13858
|
> **delete**(`f`): `this`
|
|
13859
13859
|
|
|
13860
|
-
Defined in: [lib/sql.ts:
|
|
13860
|
+
Defined in: [lib/sql.ts:379](https://github.com/maiyunnet/kebab/blob/master/lib/sql.ts#L379)
|
|
13861
13861
|
|
|
13862
13862
|
'xx'
|
|
13863
13863
|
|
|
@@ -13879,7 +13879,7 @@ Defined in: [lib/sql.ts:378](https://github.com/maiyunnet/kebab/blob/master/lib/
|
|
|
13879
13879
|
|
|
13880
13880
|
> **field**(`str`, `pre?`, `suf?`): `string`
|
|
13881
13881
|
|
|
13882
|
-
Defined in: [lib/sql.ts:
|
|
13882
|
+
Defined in: [lib/sql.ts:1017](https://github.com/maiyunnet/kebab/blob/master/lib/sql.ts#L1017)
|
|
13883
13883
|
|
|
13884
13884
|
对字段进行包裹
|
|
13885
13885
|
|
|
@@ -13911,7 +13911,7 @@ MySQL 时为表前缀,PostgreSQL 时为 Schema 名,仅请在 field 表名时
|
|
|
13911
13911
|
|
|
13912
13912
|
> **format**(`sql?`, `data?`): `string`
|
|
13913
13913
|
|
|
13914
|
-
Defined in: [lib/sql.ts:
|
|
13914
|
+
Defined in: [lib/sql.ts:996](https://github.com/maiyunnet/kebab/blob/master/lib/sql.ts#L996)
|
|
13915
13915
|
|
|
13916
13916
|
获取带 data 的 sql 语句
|
|
13917
13917
|
|
|
@@ -13935,7 +13935,7 @@ Defined in: [lib/sql.ts:995](https://github.com/maiyunnet/kebab/blob/master/lib/
|
|
|
13935
13935
|
|
|
13936
13936
|
> **fullJoin**(`f`, `s?`, `suf?`, `pre?`): `this`
|
|
13937
13937
|
|
|
13938
|
-
Defined in: [lib/sql.ts:
|
|
13938
|
+
Defined in: [lib/sql.ts:480](https://github.com/maiyunnet/kebab/blob/master/lib/sql.ts#L480)
|
|
13939
13939
|
|
|
13940
13940
|
full join 方法
|
|
13941
13941
|
|
|
@@ -13975,7 +13975,7 @@ MySQL 时为表前缀,PostgreSQL 时为 Schema 名,仅在 join 非默认前
|
|
|
13975
13975
|
|
|
13976
13976
|
> **getData**(): [`DbValue`](../../../index/type-aliases/DbValue.md)[]
|
|
13977
13977
|
|
|
13978
|
-
Defined in: [lib/sql.ts:
|
|
13978
|
+
Defined in: [lib/sql.ts:980](https://github.com/maiyunnet/kebab/blob/master/lib/sql.ts#L980)
|
|
13979
13979
|
|
|
13980
13980
|
获取全部 data
|
|
13981
13981
|
|
|
@@ -13989,7 +13989,7 @@ Defined in: [lib/sql.ts:979](https://github.com/maiyunnet/kebab/blob/master/lib/
|
|
|
13989
13989
|
|
|
13990
13990
|
> **getPre**(): `string`
|
|
13991
13991
|
|
|
13992
|
-
Defined in: [lib/sql.ts:
|
|
13992
|
+
Defined in: [lib/sql.ts:987](https://github.com/maiyunnet/kebab/blob/master/lib/sql.ts#L987)
|
|
13993
13993
|
|
|
13994
13994
|
获取定义的 pre
|
|
13995
13995
|
|
|
@@ -14003,7 +14003,7 @@ Defined in: [lib/sql.ts:986](https://github.com/maiyunnet/kebab/blob/master/lib/
|
|
|
14003
14003
|
|
|
14004
14004
|
> **getSql**(): `string`
|
|
14005
14005
|
|
|
14006
|
-
Defined in: [lib/sql.ts:
|
|
14006
|
+
Defined in: [lib/sql.ts:964](https://github.com/maiyunnet/kebab/blob/master/lib/sql.ts#L964)
|
|
14007
14007
|
|
|
14008
14008
|
获取 sql 语句
|
|
14009
14009
|
|
|
@@ -14017,7 +14017,7 @@ Defined in: [lib/sql.ts:963](https://github.com/maiyunnet/kebab/blob/master/lib/
|
|
|
14017
14017
|
|
|
14018
14018
|
> **group**(`c`): `this`
|
|
14019
14019
|
|
|
14020
|
-
Defined in: [lib/sql.ts:
|
|
14020
|
+
Defined in: [lib/sql.ts:786](https://github.com/maiyunnet/kebab/blob/master/lib/sql.ts#L786)
|
|
14021
14021
|
|
|
14022
14022
|
GROUP BY
|
|
14023
14023
|
|
|
@@ -14039,7 +14039,7 @@ GROUP BY
|
|
|
14039
14039
|
|
|
14040
14040
|
> **having**(`s?`): `this`
|
|
14041
14041
|
|
|
14042
|
-
Defined in: [lib/sql.ts:
|
|
14042
|
+
Defined in: [lib/sql.ts:498](https://github.com/maiyunnet/kebab/blob/master/lib/sql.ts#L498)
|
|
14043
14043
|
|
|
14044
14044
|
having 后置筛选器,用法类似 where
|
|
14045
14045
|
|
|
@@ -14059,7 +14059,7 @@ having 后置筛选器,用法类似 where
|
|
|
14059
14059
|
|
|
14060
14060
|
> **innerJoin**(`f`, `s?`, `suf?`, `pre?`): `this`
|
|
14061
14061
|
|
|
14062
|
-
Defined in: [lib/sql.ts:
|
|
14062
|
+
Defined in: [lib/sql.ts:469](https://github.com/maiyunnet/kebab/blob/master/lib/sql.ts#L469)
|
|
14063
14063
|
|
|
14064
14064
|
inner join 方法
|
|
14065
14065
|
|
|
@@ -14127,7 +14127,7 @@ Defined in: [lib/sql.ts:99](https://github.com/maiyunnet/kebab/blob/master/lib/s
|
|
|
14127
14127
|
|
|
14128
14128
|
> **join**(`f`, `s?`, `type?`, `suf?`, `pre?`): `this`
|
|
14129
14129
|
|
|
14130
|
-
Defined in: [lib/sql.ts:
|
|
14130
|
+
Defined in: [lib/sql.ts:421](https://github.com/maiyunnet/kebab/blob/master/lib/sql.ts#L421)
|
|
14131
14131
|
|
|
14132
14132
|
join 方法
|
|
14133
14133
|
|
|
@@ -14173,7 +14173,7 @@ MySQL 时为表前缀,PostgreSQL 时为 Schema 名,仅在 join 非默认前
|
|
|
14173
14173
|
|
|
14174
14174
|
> **leftJoin**(`f`, `s?`, `suf?`, `pre?`): `this`
|
|
14175
14175
|
|
|
14176
|
-
Defined in: [lib/sql.ts:
|
|
14176
|
+
Defined in: [lib/sql.ts:447](https://github.com/maiyunnet/kebab/blob/master/lib/sql.ts#L447)
|
|
14177
14177
|
|
|
14178
14178
|
left join 方法
|
|
14179
14179
|
|
|
@@ -14213,7 +14213,7 @@ MySQL 时为表前缀,PostgreSQL 时为 Schema 名,仅在 join 非默认前
|
|
|
14213
14213
|
|
|
14214
14214
|
> **limit**(`a`, `b?`): `this`
|
|
14215
14215
|
|
|
14216
|
-
Defined in: [lib/sql.ts:
|
|
14216
|
+
Defined in: [lib/sql.ts:806](https://github.com/maiyunnet/kebab/blob/master/lib/sql.ts#L806)
|
|
14217
14217
|
|
|
14218
14218
|
LIMIT(limit、offset, limit)
|
|
14219
14219
|
|
|
@@ -14241,7 +14241,7 @@ LIMIT(limit、offset, limit)
|
|
|
14241
14241
|
|
|
14242
14242
|
> **lock**(): `this`
|
|
14243
14243
|
|
|
14244
|
-
Defined in: [lib/sql.ts:
|
|
14244
|
+
Defined in: [lib/sql.ts:821](https://github.com/maiyunnet/kebab/blob/master/lib/sql.ts#L821)
|
|
14245
14245
|
|
|
14246
14246
|
追加消极锁,通常不建议使用
|
|
14247
14247
|
|
|
@@ -14255,7 +14255,7 @@ Defined in: [lib/sql.ts:820](https://github.com/maiyunnet/kebab/blob/master/lib/
|
|
|
14255
14255
|
|
|
14256
14256
|
> **rightJoin**(`f`, `s?`, `suf?`, `pre?`): `this`
|
|
14257
14257
|
|
|
14258
|
-
Defined in: [lib/sql.ts:
|
|
14258
|
+
Defined in: [lib/sql.ts:458](https://github.com/maiyunnet/kebab/blob/master/lib/sql.ts#L458)
|
|
14259
14259
|
|
|
14260
14260
|
right join 方法
|
|
14261
14261
|
|
|
@@ -14295,7 +14295,7 @@ MySQL 时为表前缀,PostgreSQL 时为 Schema 名,仅在 join 非默认前
|
|
|
14295
14295
|
|
|
14296
14296
|
> **select**(`c`, `f`): `this`
|
|
14297
14297
|
|
|
14298
|
-
Defined in: [lib/sql.ts:
|
|
14298
|
+
Defined in: [lib/sql.ts:270](https://github.com/maiyunnet/kebab/blob/master/lib/sql.ts#L270)
|
|
14299
14299
|
|
|
14300
14300
|
'*', 'xx'
|
|
14301
14301
|
|
|
@@ -14323,7 +14323,7 @@ Defined in: [lib/sql.ts:269](https://github.com/maiyunnet/kebab/blob/master/lib/
|
|
|
14323
14323
|
|
|
14324
14324
|
> **union**(`lsql`, `type?`): `this`
|
|
14325
14325
|
|
|
14326
|
-
Defined in: [lib/sql.ts:
|
|
14326
|
+
Defined in: [lib/sql.ts:391](https://github.com/maiyunnet/kebab/blob/master/lib/sql.ts#L391)
|
|
14327
14327
|
|
|
14328
14328
|
联查另一个 sql 对象
|
|
14329
14329
|
|
|
@@ -14351,7 +14351,7 @@ sql 对象
|
|
|
14351
14351
|
|
|
14352
14352
|
> **unionAll**(`lsql`): `this`
|
|
14353
14353
|
|
|
14354
|
-
Defined in: [lib/sql.ts:
|
|
14354
|
+
Defined in: [lib/sql.ts:409](https://github.com/maiyunnet/kebab/blob/master/lib/sql.ts#L409)
|
|
14355
14355
|
|
|
14356
14356
|
所有联查另一个 sql 对象
|
|
14357
14357
|
|
|
@@ -14373,7 +14373,7 @@ sql 对象
|
|
|
14373
14373
|
|
|
14374
14374
|
> **update**(`f`, `s`): `this`
|
|
14375
14375
|
|
|
14376
|
-
Defined in: [lib/sql.ts:
|
|
14376
|
+
Defined in: [lib/sql.ts:311](https://github.com/maiyunnet/kebab/blob/master/lib/sql.ts#L311)
|
|
14377
14377
|
|
|
14378
14378
|
UPDATE SQL 方法
|
|
14379
14379
|
|
|
@@ -14500,7 +14500,7 @@ Defined in: [lib/sql.ts:118](https://github.com/maiyunnet/kebab/blob/master/lib/
|
|
|
14500
14500
|
|
|
14501
14501
|
> **where**(`s`): `this`
|
|
14502
14502
|
|
|
14503
|
-
Defined in: [lib/sql.ts:
|
|
14503
|
+
Defined in: [lib/sql.ts:532](https://github.com/maiyunnet/kebab/blob/master/lib/sql.ts#L532)
|
|
14504
14504
|
|
|
14505
14505
|
筛选器
|
|
14506
14506
|
1. 'city': 'bj', 'type': '2'
|
|
@@ -14643,7 +14643,7 @@ lib/sql/functions/aoMix.md
|
|
|
14643
14643
|
|
|
14644
14644
|
> **aoMix**(`arr`): `Record`\<`string`, `string` \| `number` \| [`Json`](../../../index/type-aliases/Json.md)\>
|
|
14645
14645
|
|
|
14646
|
-
Defined in: [lib/sql.ts:
|
|
14646
|
+
Defined in: [lib/sql.ts:1402](https://github.com/maiyunnet/kebab/blob/master/lib/sql.ts#L1402)
|
|
14647
14647
|
|
|
14648
14648
|
将数组兑换为组合的对象(Array/Object mix)
|
|
14649
14649
|
|
|
@@ -14672,7 +14672,7 @@ lib/sql/functions/column.md
|
|
|
14672
14672
|
|
|
14673
14673
|
> **column**(`field`): `object`
|
|
14674
14674
|
|
|
14675
|
-
Defined in: [lib/sql.ts:
|
|
14675
|
+
Defined in: [lib/sql.ts:1423](https://github.com/maiyunnet/kebab/blob/master/lib/sql.ts#L1423)
|
|
14676
14676
|
|
|
14677
14677
|
创建字段对象
|
|
14678
14678
|
|
|
@@ -14711,7 +14711,7 @@ lib/sql/functions/format.md
|
|
|
14711
14711
|
|
|
14712
14712
|
> **format**(`sql`, `data`, `service?`): `string`
|
|
14713
14713
|
|
|
14714
|
-
Defined in: [lib/sql.ts:
|
|
14714
|
+
Defined in: [lib/sql.ts:1364](https://github.com/maiyunnet/kebab/blob/master/lib/sql.ts#L1364)
|
|
14715
14715
|
|
|
14716
14716
|
返回代入后的完整 SQL 字符串,这并不安全不能直接执行,只是用来调试打印 sql 语句
|
|
14717
14717
|
|
|
@@ -14752,7 +14752,7 @@ lib/sql/functions/get.md
|
|
|
14752
14752
|
|
|
14753
14753
|
> **get**(`opt`): [`Sql`](../classes/Sql.md)
|
|
14754
14754
|
|
|
14755
|
-
Defined in: [lib/sql.ts:
|
|
14755
|
+
Defined in: [lib/sql.ts:1336](https://github.com/maiyunnet/kebab/blob/master/lib/sql.ts#L1336)
|
|
14756
14756
|
|
|
14757
14757
|
创建 sql 对象
|
|
14758
14758
|
|
|
@@ -14805,7 +14805,7 @@ lib/sql/functions/json.md
|
|
|
14805
14805
|
|
|
14806
14806
|
> **json**(`obj`): `any`
|
|
14807
14807
|
|
|
14808
|
-
Defined in: [lib/sql.ts:
|
|
14808
|
+
Defined in: [lib/sql.ts:1461](https://github.com/maiyunnet/kebab/blob/master/lib/sql.ts#L1461)
|
|
14809
14809
|
|
|
14810
14810
|
将对象转换为 JSON 字符串并避开类型检查,用于适配 PostgreSQL 的 jsonb 字段
|
|
14811
14811
|
|
|
@@ -14834,7 +14834,7 @@ lib/sql/functions/value.md
|
|
|
14834
14834
|
|
|
14835
14835
|
> **value**(`val`): `object`
|
|
14836
14836
|
|
|
14837
|
-
Defined in: [lib/sql.ts:
|
|
14837
|
+
Defined in: [lib/sql.ts:1442](https://github.com/maiyunnet/kebab/blob/master/lib/sql.ts#L1442)
|
|
14838
14838
|
|
|
14839
14839
|
创建字面量值对象,用于 where 条件中 v[0] 需要是值而非字段名的场景
|
|
14840
14840
|
例:[value('hello'), 'IN', column('tags')]
|
package/index.d.ts
CHANGED
package/index.js
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* --- 本文件用来定义每个目录实体地址的常量 ---
|
|
7
7
|
*/
|
|
8
8
|
/** --- 当前系统版本号 --- */
|
|
9
|
-
export const VER = '9.12.
|
|
9
|
+
export const VER = '9.12.2';
|
|
10
10
|
// --- 服务端用的路径 ---
|
|
11
11
|
const imu = decodeURIComponent(import.meta.url).replace('file://', '').replace(/^\/(\w:)/, '$1');
|
|
12
12
|
/** --- /xxx/xxx --- */
|
package/lib/net.js
CHANGED
|
@@ -445,8 +445,8 @@ export function getFormData() {
|
|
|
445
445
|
}
|
|
446
446
|
/** --- proxy 要剔除的基础头部 --- */
|
|
447
447
|
const proxyContinueHeaders = [
|
|
448
|
-
'host', 'connection', 'http-version', 'http-code', 'http-url',
|
|
449
|
-
'transfer-encoding'
|
|
448
|
+
'host', 'connection', 'keep-alive', 'http-version', 'http-code', 'http-url',
|
|
449
|
+
'transfer-encoding', 'upgrade', 'proxy-connection'
|
|
450
450
|
];
|
|
451
451
|
/**
|
|
452
452
|
* --- 剔除不代理的 header,返回新的 header ---
|
package/lib/sql.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Project: Kebab, User: JianSuoQiYue
|
|
3
3
|
* Date: 2019-5-27 20:18:50
|
|
4
|
-
* Last: 2020-3-29 19:37:25, 2022-07-24 22:38:11, 2023-5-24 18:49:18, 2023-6-13 22:20:21, 2023-12-11 13:58:54, 2023-12-14 13:14:40, 2023-12-21 00:04:40, 2024-4-11 19:29:29, 2024-9-2 17:15:28, 2025-8-3 21:28:18, 2025-11-9 16:20:23, 2026-4-30 13:49:44
|
|
4
|
+
* Last: 2020-3-29 19:37:25, 2022-07-24 22:38:11, 2023-5-24 18:49:18, 2023-6-13 22:20:21, 2023-12-11 13:58:54, 2023-12-14 13:14:40, 2023-12-21 00:04:40, 2024-4-11 19:29:29, 2024-9-2 17:15:28, 2025-8-3 21:28:18, 2025-11-9 16:20:23, 2026-4-30 13:49:44, 2026-6-1 11:30:00
|
|
5
5
|
*/
|
|
6
6
|
import * as kebab from '#kebab/index.js';
|
|
7
7
|
import * as ctr from '#kebab/sys/ctr.js';
|
package/lib/sql.js
CHANGED
|
@@ -183,25 +183,26 @@ export class Sql {
|
|
|
183
183
|
const quotedTable = this.field(table, this._pre);
|
|
184
184
|
const quotedKey = this.field(key);
|
|
185
185
|
if (this._service === ESERVICE.MYSQL) {
|
|
186
|
-
// --- MySQL
|
|
186
|
+
// --- MySQL UNION ALL SELECT 派生表语法 ---
|
|
187
187
|
// --- 必须把 tmp 放在 UPDATE 的 table_references 最前面,并使用 STRAIGHT_JOIN:
|
|
188
188
|
// 1. tmp 是小数据集,作为驱动表逐行查找目标表
|
|
189
189
|
// 2. STRAIGHT_JOIN 强制目标表按 key 条件被查找,避免优化器反向全表扫描
|
|
190
|
-
// 3. 相比
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
190
|
+
// 3. 相比 VALUES ROW(),UNION ALL SELECT 不会将派生表列强制转换为目标表类型,
|
|
191
|
+
// 避免 "Data too long for column" 错误 ---
|
|
192
|
+
const selectParts = [];
|
|
193
|
+
for (let ri = 0; ri < rows.length; ri++) {
|
|
194
|
+
const row = rows[ri];
|
|
195
|
+
const parts = row.map((v, ci) => {
|
|
194
196
|
const result = this._processValue(v);
|
|
195
197
|
if (result.data.length > 0) {
|
|
196
198
|
this._data.push(...result.data);
|
|
197
199
|
}
|
|
198
|
-
return result.sql;
|
|
200
|
+
return ri === 0 ? `${result.sql} AS ${this.field(allCols[ci])}` : result.sql;
|
|
199
201
|
});
|
|
200
|
-
|
|
202
|
+
selectParts.push(`SELECT ${parts.join(', ')}`);
|
|
201
203
|
}
|
|
202
|
-
const tmpCols = allCols.map(c => this.field(c)).join(', ');
|
|
203
204
|
const setClauses = cols.map(c => `t.${this.field(c)} = tmp.${this.field(c)}`).join(', ');
|
|
204
|
-
this._sql = [`UPDATE (
|
|
205
|
+
this._sql = [`UPDATE (${selectParts.join(' UNION ALL ')}) AS tmp STRAIGHT_JOIN ${quotedTable} t ON t.${quotedKey} = tmp.${quotedKey} SET ${setClauses}`];
|
|
205
206
|
}
|
|
206
207
|
else {
|
|
207
208
|
// --- PostgreSQL 使用 UPDATE FROM (VALUES ...) ---
|
package/lib/undici.js
CHANGED
|
@@ -333,7 +333,7 @@ export async function request(u, data, opt = {}) {
|
|
|
333
333
|
headers['content-length'] = data.getLength();
|
|
334
334
|
}
|
|
335
335
|
}
|
|
336
|
-
headers['accept-encoding']
|
|
336
|
+
headers['accept-encoding'] ??= 'gzip, deflate';
|
|
337
337
|
// --- cookie 托管 ---
|
|
338
338
|
if (opt.cookie) {
|
|
339
339
|
headers['cookie'] = lCookie.buildCookieQuery(opt.cookie, uri);
|
package/package.json
CHANGED
package/sys/mod.js
CHANGED
|
@@ -1184,7 +1184,7 @@ export default class Mod {
|
|
|
1184
1184
|
sql = sql
|
|
1185
1185
|
.replace(/ LIMIT [0-9 ,]+(OFFSET [0-9]+)?/ig, '')
|
|
1186
1186
|
.replace(/ ORDER BY [\w`",. ]+(DESC|ASC)?/ig, '');
|
|
1187
|
-
if (sql.includes(' GROUP BY ')) {
|
|
1187
|
+
if (sql.includes(' GROUP BY ') || /\bUNION\b/i.test(sql)) {
|
|
1188
1188
|
return `SELECT COUNT(0) AS ${q}count${q} FROM(` + sql + `) AS ${q}f${q}`;
|
|
1189
1189
|
}
|
|
1190
1190
|
return sql
|