@@ -228,7 +228,12 @@ void createsCountQueryForNestedReferenceCorrectly() {
228
228
229
229
@ Test // DATAJPA-420
230
230
void createsCountQueryForScalarSelects () {
231
- assertCountQuery ("select p.lastname,p.firstname from Person p" , "select count(p) from Person p" , true );
231
+ assertCountQuery ("select p.lastname,p.firstname from Person p" , "select count(p) from Person p" , false );
232
+ }
233
+
234
+ @ Test // DATAJPA-420
235
+ void createsCountQueryForNativeScalarSelects () {
236
+ assertCountQuery ("select p.lastname,p.firstname from Person p" , "select count(1) from Person p" , true );
232
237
}
233
238
234
239
@ Test // DATAJPA-456
@@ -487,7 +492,7 @@ void createCountQuerySupportsWhitespaceCharacters() {
487
492
" order by user.name\n " , true );
488
493
489
494
assertThat (getEnhancer (query ).createCountQueryFor ())
490
- .isEqualToIgnoringCase ("select count(user ) from User user where user.age = 18" );
495
+ .isEqualToIgnoringCase ("select count(1 ) from User user where user.age = 18" );
491
496
}
492
497
493
498
@ Test
@@ -500,7 +505,7 @@ void createCountQuerySupportsLineBreaksInSelectClause() {
500
505
" order\n by\n user.name\n " , true );
501
506
502
507
assertThat (getEnhancer (query ).createCountQueryFor ())
503
- .isEqualToIgnoringCase ("select count(user ) from User user where user.age = 18" );
508
+ .isEqualToIgnoringCase ("select count(1 ) from User user where user.age = 18" );
504
509
}
505
510
506
511
@ Test // DATAJPA-1061
@@ -721,17 +726,17 @@ void countQueryUsesCorrectVariable() {
721
726
722
727
QueryEnhancer queryEnhancer = getEnhancer (nativeQuery );
723
728
String countQueryFor = queryEnhancer .createCountQueryFor ();
724
- assertThat (countQueryFor ).isEqualTo ("SELECT count(* ) FROM User WHERE created_at > $1" );
729
+ assertThat (countQueryFor ).isEqualTo ("SELECT count(1 ) FROM User WHERE created_at > $1" );
725
730
726
731
nativeQuery = new StringQuery ("SELECT * FROM (select * from test) " , true );
727
732
queryEnhancer = getEnhancer (nativeQuery );
728
733
countQueryFor = queryEnhancer .createCountQueryFor ();
729
- assertThat (countQueryFor ).isEqualTo ("SELECT count(* ) FROM (SELECT * FROM test)" );
734
+ assertThat (countQueryFor ).isEqualTo ("SELECT count(1 ) FROM (SELECT * FROM test)" );
730
735
731
736
nativeQuery = new StringQuery ("SELECT * FROM (select * from test) as test" , true );
732
737
queryEnhancer = getEnhancer (nativeQuery );
733
738
countQueryFor = queryEnhancer .createCountQueryFor ();
734
- assertThat (countQueryFor ).isEqualTo ("SELECT count(test ) FROM (SELECT * FROM test) AS test" );
739
+ assertThat (countQueryFor ).isEqualTo ("SELECT count(1 ) FROM (SELECT * FROM test) AS test" );
735
740
}
736
741
737
742
@ Test // GH-2555
@@ -861,7 +866,7 @@ void withStatementsWorksWithJSQLParser() {
861
866
862
867
assertThat (queryEnhancer .createCountQueryFor ()).isEqualToIgnoringCase (
863
868
"with sample_data (day, value) AS (VALUES ((0, 13), (1, 12), (2, 15), (3, 4), (4, 8), (5, 16)))\n "
864
- + "SELECT count(a ) FROM sample_data AS a" );
869
+ + "SELECT count(1 ) FROM sample_data AS a" );
865
870
assertThat (queryEnhancer .applySorting (Sort .by ("day" ).descending ())).endsWith ("ORDER BY a.day DESC" );
866
871
assertThat (queryEnhancer .getJoinAliases ()).isEmpty ();
867
872
assertThat (queryEnhancer .detectAlias ()).isEqualToIgnoringCase ("a" );
@@ -884,7 +889,7 @@ void multipleWithStatementsWorksWithJSQLParser() {
884
889
885
890
assertThat (queryEnhancer .createCountQueryFor ()).isEqualToIgnoringCase (
886
891
"with sample_data (day, value) AS (VALUES ((0, 13), (1, 12), (2, 15), (3, 4), (4, 8), (5, 16))),test2 AS (VALUES (1, 2, 3))\n "
887
- + "SELECT count(a ) FROM sample_data AS a" );
892
+ + "SELECT count(1 ) FROM sample_data AS a" );
888
893
assertThat (queryEnhancer .applySorting (Sort .by ("day" ).descending ())).endsWith ("ORDER BY a.day DESC" );
889
894
assertThat (queryEnhancer .getJoinAliases ()).isEmpty ();
890
895
assertThat (queryEnhancer .detectAlias ()).isEqualToIgnoringCase ("a" );
@@ -989,4 +994,5 @@ private static void endsIgnoringCase(String original, String endWithIgnoreCase)
989
994
private static QueryEnhancer getEnhancer (DeclaredQuery query ) {
990
995
return QueryEnhancerFactory .forQuery (query );
991
996
}
997
+
992
998
}
0 commit comments