You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
fix(select): do not force set subQuery to false (#13490)
* fix(select): do not force set subQuery to false
this occurred on validating included elements in spite of user set it to true in include options
* test: make include (subQuery alias) tests dry
Co-authored-by: Victor Korzunin <victor.korzunin@blanco.services>
Co-authored-by: Constantin Metz <58604248+Keimeno@users.noreply.github.com>
Co-authored-by: Sascha Depold <sdepold@users.noreply.github.com>
'(SELECT [User].[name], [User].[age], [User].[id] AS [id], [postaliasname].[id] AS [postaliasname.id], [postaliasname].[title] AS [postaliasname.title] FROM [User] AS [User] '+
487
+
'INNER JOIN [Post] AS [postaliasname] ON [User].[id] = [postaliasname].[user_id] '+
488
+
`WHERE ( SELECT [user_id] FROM [Post] AS [postaliasname] WHERE ([postaliasname].[user_id] = [User].[id])${sql.addLimitAndOffset({limit: 1,tableAs: 'postaliasname'},User)} ) IS NOT NULL) AS [User];`
489
+
});
490
+
});
491
+
492
+
it('w/ nested column filter',()=>{
493
+
expectsql(sql.selectQuery('User',{
494
+
table: User.getTableName(),
495
+
model: User,
496
+
attributes: ['name','age'],
497
+
where: {'$postaliasname.title$': 'test'},
498
+
include: Model._validateIncludedElements({
499
+
include: [{
500
+
attributes: ['title'],
501
+
association: User.Posts,
502
+
subQuery: true,
503
+
required: true
504
+
}],
505
+
as: 'User'
506
+
}).include,
507
+
subQuery: true
508
+
},User),{
509
+
default: 'SELECT [User].* FROM '+
510
+
'(SELECT [User].[name], [User].[age], [User].[id] AS [id], [postaliasname].[id] AS [postaliasname.id], [postaliasname].[title] AS [postaliasname.title] FROM [User] AS [User] '+
511
+
'INNER JOIN [Post] AS [postaliasname] ON [User].[id] = [postaliasname].[user_id] '+
512
+
`WHERE [postaliasname].[title] = ${sql.escape('test')} AND ( SELECT [user_id] FROM [Post] AS [postaliasname] WHERE ([postaliasname].[user_id] = [User].[id])${sql.addLimitAndOffset({limit: 1,tableAs: 'postaliasname'},User)} ) IS NOT NULL) AS [User];`
default: 'SELECT [User].*, [postaliasname].[id] AS [postaliasname.id], [postaliasname].[title] AS [postaliasname.title] FROM '+
485
-
'(SELECT [User].[name], [User].[age], [User].[id] AS [id] FROM [User] AS [User] '+
486
-
'WHERE ( SELECT [user_id] FROM [Post] AS [postaliasname] WHERE ([postaliasname].[user_id] = [User].[id]) LIMIT 1 ) IS NOT NULL) AS [User] '+
487
-
'INNER JOIN [Post] AS [postaliasname] ON [User].[id] = [postaliasname].[user_id];',
488
-
mssql: 'SELECT [User].*, [postaliasname].[id] AS [postaliasname.id], [postaliasname].[title] AS [postaliasname.title] FROM '+
489
-
'(SELECT [User].[name], [User].[age], [User].[id] AS [id] FROM [User] AS [User] '+
490
-
'WHERE ( SELECT [user_id] FROM [Post] AS [postaliasname] WHERE ([postaliasname].[user_id] = [User].[id]) ORDER BY [postaliasname].[id] OFFSET 0 ROWS FETCH NEXT 1 ROWS ONLY ) IS NOT NULL) AS [User] '+
491
-
'INNER JOIN [Post] AS [postaliasname] ON [User].[id] = [postaliasname].[user_id];'
560
+
},Company),{
561
+
default: 'SELECT [Company].* FROM ('+
562
+
'SELECT [Company].[name], [Company].[public], [Company].[id] AS [id] FROM [Company] AS [Company] '+
563
+
'INNER JOIN [Users] AS [Users] ON [Company].[id] = [Users].[companyId] '+
564
+
'INNER JOIN [Professions] AS [Users->Profession] ON [Users].[professionId] = [Users->Profession].[id] '+
565
+
`WHERE ([Company].[scopeId] IN (42)) AND [Users->Profession].[name] = ${sql.escape('test')} AND ( `+
566
+
'SELECT [Users].[companyId] FROM [Users] AS [Users] '+
567
+
'INNER JOIN [Professions] AS [Profession] ON [Users].[professionId] = [Profession].[id] '+
0 commit comments