Skip to content

Commit 52fc4c3

Browse files
committed
do not run children query when no parents
1 parent 9ac0613 commit 52fc4c3

File tree

5 files changed

+201
-23
lines changed

5 files changed

+201
-23
lines changed

dist/index.browser.mjs

Lines changed: 63 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2674,6 +2674,7 @@ function requireClient () {
26742674
const flags = requireFlags();
26752675

26762676
function rdbClient(options = {}) {
2677+
let cachedAdapter;
26772678
flags.useLazyDefaults = false;
26782679
if (options.pg)
26792680
options = { db: options };
@@ -2909,7 +2910,14 @@ function requireClient () {
29092910
path: 'aggregate',
29102911
args
29112912
});
2912-
let adapter = netAdapter(url, tableName, { axios: axiosInterceptor, tableOptions });
2913+
let adapter;
2914+
if (cachedAdapter)
2915+
adapter = cachedAdapter;
2916+
else {
2917+
adapter = netAdapter(url, tableName, { axios: axiosInterceptor, tableOptions });
2918+
cachedAdapter = adapter;
2919+
2920+
}
29132921
return adapter.post(body);
29142922
}
29152923

@@ -2919,7 +2927,14 @@ function requireClient () {
29192927
path: 'count',
29202928
args
29212929
});
2922-
let adapter = netAdapter(url, tableName, { axios: axiosInterceptor, tableOptions });
2930+
let adapter;
2931+
if (cachedAdapter)
2932+
adapter = cachedAdapter;
2933+
else {
2934+
adapter = netAdapter(url, tableName, { axios: axiosInterceptor, tableOptions });
2935+
cachedAdapter = adapter;
2936+
2937+
}
29232938
return adapter.post(body);
29242939
}
29252940

@@ -2955,7 +2970,15 @@ function requireClient () {
29552970
path: 'getManyDto',
29562971
args
29572972
});
2958-
let adapter = netAdapter(url, tableName, { axios: axiosInterceptor, tableOptions });
2973+
2974+
let adapter;
2975+
if (cachedAdapter)
2976+
adapter = cachedAdapter;
2977+
else {
2978+
adapter = netAdapter(url, tableName, { axios: axiosInterceptor, tableOptions });
2979+
cachedAdapter = adapter;
2980+
2981+
}
29592982
return adapter.post(body);
29602983
}
29612984

@@ -3032,7 +3055,14 @@ function requireClient () {
30323055
path: 'delete',
30333056
args
30343057
});
3035-
let adapter = netAdapter(url, tableName, { axios: axiosInterceptor, tableOptions });
3058+
let adapter;
3059+
if (cachedAdapter)
3060+
adapter = cachedAdapter;
3061+
else {
3062+
adapter = netAdapter(url, tableName, { axios: axiosInterceptor, tableOptions });
3063+
cachedAdapter = adapter;
3064+
3065+
}
30363066
return adapter.post(body);
30373067
}
30383068

@@ -3042,7 +3072,14 @@ function requireClient () {
30423072
path: 'deleteCascade',
30433073
args
30443074
});
3045-
let adapter = netAdapter(url, tableName, { axios: axiosInterceptor, tableOptions });
3075+
let adapter;
3076+
if (cachedAdapter)
3077+
adapter = cachedAdapter;
3078+
else {
3079+
adapter = netAdapter(url, tableName, { axios: axiosInterceptor, tableOptions });
3080+
cachedAdapter = adapter;
3081+
3082+
}
30463083
return adapter.post(body);
30473084
}
30483085

@@ -3052,7 +3089,14 @@ function requireClient () {
30523089
path: 'update',
30533090
args
30543091
});
3055-
let adapter = netAdapter(url, tableName, { axios: axiosInterceptor, tableOptions });
3092+
let adapter;
3093+
if (cachedAdapter)
3094+
adapter = cachedAdapter;
3095+
else {
3096+
adapter = netAdapter(url, tableName, { axios: axiosInterceptor, tableOptions });
3097+
cachedAdapter = adapter;
3098+
3099+
}
30563100
const result = await adapter.post(body);
30573101
if (strategy)
30583102
return proxify(result, strategy);
@@ -3064,7 +3108,14 @@ function requireClient () {
30643108
path: 'replace',
30653109
args
30663110
});
3067-
let adapter = netAdapter(url, tableName, { axios: axiosInterceptor, tableOptions });
3111+
let adapter;
3112+
if (cachedAdapter)
3113+
adapter = cachedAdapter;
3114+
else {
3115+
adapter = netAdapter(url, tableName, { axios: axiosInterceptor, tableOptions });
3116+
cachedAdapter = adapter;
3117+
3118+
}
30683119
const result = await adapter.post(body);
30693120
if (strategy)
30703121
return proxify(result, strategy);
@@ -3227,6 +3278,7 @@ function requireClient () {
32273278
if (meta)
32283279
return meta;
32293280
let adapter = netAdapter(url, tableName, { axios: axiosInterceptor, tableOptions });
3281+
cachedAdapter = adapter;
32303282
meta = await adapter.get();
32313283

32323284
while (hasUnresolved(meta)) {
@@ -11085,6 +11137,10 @@ function requireGetManyDto$1 () {
1108511137
const extractKey = createExtractKey(leg);
1108611138
const extractFromMap = createExtractFromMap(rowsMap, table._primaryColumns);
1108711139

11140+
if (span._ids.length === 0) {
11141+
return;
11142+
}
11143+
1108811144
// If maxRows is defined, chunk the IDs before calling getManyDto
1108911145
if (maxRows) {
1109011146
const chunkedIds = chunk(span._ids, maxRows);

dist/index.mjs

Lines changed: 69 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2675,6 +2675,7 @@ function requireClient () {
26752675
const flags = requireFlags();
26762676

26772677
function rdbClient(options = {}) {
2678+
let cachedAdapter;
26782679
flags.useLazyDefaults = false;
26792680
if (options.pg)
26802681
options = { db: options };
@@ -2910,7 +2911,14 @@ function requireClient () {
29102911
path: 'aggregate',
29112912
args
29122913
});
2913-
let adapter = netAdapter(url, tableName, { axios: axiosInterceptor, tableOptions });
2914+
let adapter;
2915+
if (cachedAdapter)
2916+
adapter = cachedAdapter;
2917+
else {
2918+
adapter = netAdapter(url, tableName, { axios: axiosInterceptor, tableOptions });
2919+
cachedAdapter = adapter;
2920+
2921+
}
29142922
return adapter.post(body);
29152923
}
29162924

@@ -2920,7 +2928,14 @@ function requireClient () {
29202928
path: 'count',
29212929
args
29222930
});
2923-
let adapter = netAdapter(url, tableName, { axios: axiosInterceptor, tableOptions });
2931+
let adapter;
2932+
if (cachedAdapter)
2933+
adapter = cachedAdapter;
2934+
else {
2935+
adapter = netAdapter(url, tableName, { axios: axiosInterceptor, tableOptions });
2936+
cachedAdapter = adapter;
2937+
2938+
}
29242939
return adapter.post(body);
29252940
}
29262941

@@ -2956,7 +2971,15 @@ function requireClient () {
29562971
path: 'getManyDto',
29572972
args
29582973
});
2959-
let adapter = netAdapter(url, tableName, { axios: axiosInterceptor, tableOptions });
2974+
2975+
let adapter;
2976+
if (cachedAdapter)
2977+
adapter = cachedAdapter;
2978+
else {
2979+
adapter = netAdapter(url, tableName, { axios: axiosInterceptor, tableOptions });
2980+
cachedAdapter = adapter;
2981+
2982+
}
29602983
return adapter.post(body);
29612984
}
29622985

@@ -3033,7 +3056,14 @@ function requireClient () {
30333056
path: 'delete',
30343057
args
30353058
});
3036-
let adapter = netAdapter(url, tableName, { axios: axiosInterceptor, tableOptions });
3059+
let adapter;
3060+
if (cachedAdapter)
3061+
adapter = cachedAdapter;
3062+
else {
3063+
adapter = netAdapter(url, tableName, { axios: axiosInterceptor, tableOptions });
3064+
cachedAdapter = adapter;
3065+
3066+
}
30373067
return adapter.post(body);
30383068
}
30393069

@@ -3043,7 +3073,14 @@ function requireClient () {
30433073
path: 'deleteCascade',
30443074
args
30453075
});
3046-
let adapter = netAdapter(url, tableName, { axios: axiosInterceptor, tableOptions });
3076+
let adapter;
3077+
if (cachedAdapter)
3078+
adapter = cachedAdapter;
3079+
else {
3080+
adapter = netAdapter(url, tableName, { axios: axiosInterceptor, tableOptions });
3081+
cachedAdapter = adapter;
3082+
3083+
}
30473084
return adapter.post(body);
30483085
}
30493086

@@ -3053,7 +3090,14 @@ function requireClient () {
30533090
path: 'update',
30543091
args
30553092
});
3056-
let adapter = netAdapter(url, tableName, { axios: axiosInterceptor, tableOptions });
3093+
let adapter;
3094+
if (cachedAdapter)
3095+
adapter = cachedAdapter;
3096+
else {
3097+
adapter = netAdapter(url, tableName, { axios: axiosInterceptor, tableOptions });
3098+
cachedAdapter = adapter;
3099+
3100+
}
30573101
const result = await adapter.post(body);
30583102
if (strategy)
30593103
return proxify(result, strategy);
@@ -3065,7 +3109,14 @@ function requireClient () {
30653109
path: 'replace',
30663110
args
30673111
});
3068-
let adapter = netAdapter(url, tableName, { axios: axiosInterceptor, tableOptions });
3112+
let adapter;
3113+
if (cachedAdapter)
3114+
adapter = cachedAdapter;
3115+
else {
3116+
adapter = netAdapter(url, tableName, { axios: axiosInterceptor, tableOptions });
3117+
cachedAdapter = adapter;
3118+
3119+
}
30693120
const result = await adapter.post(body);
30703121
if (strategy)
30713122
return proxify(result, strategy);
@@ -3228,6 +3279,7 @@ function requireClient () {
32283279
if (meta)
32293280
return meta;
32303281
let adapter = netAdapter(url, tableName, { axios: axiosInterceptor, tableOptions });
3282+
cachedAdapter = adapter;
32313283
meta = await adapter.get();
32323284

32333285
while (hasUnresolved(meta)) {
@@ -11086,6 +11138,10 @@ function requireGetManyDto$1 () {
1108611138
const extractKey = createExtractKey(leg);
1108711139
const extractFromMap = createExtractFromMap(rowsMap, table._primaryColumns);
1108811140

11141+
if (span._ids.length === 0) {
11142+
return;
11143+
}
11144+
1108911145
// If maxRows is defined, chunk the IDs before calling getManyDto
1109011146
if (maxRows) {
1109111147
const chunkedIds = chunk(span._ids, maxRows);
@@ -16037,6 +16093,7 @@ function requireWrapQuery$6 () {
1603716093
var log = requireLog();
1603816094

1603916095
function wrapQuery(_context, connection) {
16096+
const statementCache = new Map();
1604016097
return runQuery;
1604116098

1604216099
function runQuery(query, onCompleted) {
@@ -16045,7 +16102,11 @@ function requireWrapQuery$6 () {
1604516102
var sql = query.sql();
1604616103
log.emitQuery({ sql, parameters: params });
1604716104

16048-
var statement = connection.prepare(sql);
16105+
let statement = statementCache.get(sql);
16106+
if (!statement) {
16107+
statement = connection.prepare(sql);
16108+
statementCache.set(sql, statement);
16109+
}
1604916110
const rows = statement.all.apply(statement, params);
1605016111
onCompleted(null, rows);
1605116112
}

0 commit comments

Comments
 (0)