99
1010namespace EfCore . Ydb . Query . Internal ;
1111
12- public class YdbQuerySqlGenerator : QuerySqlGenerator
12+ public class YdbQuerySqlGenerator ( QuerySqlGeneratorDependencies dependencies ) : QuerySqlGenerator ( dependencies )
1313{
14- protected readonly ISqlGenerationHelper SqlGenerationHelper ;
15- protected readonly IRelationalTypeMappingSource TypeMappingSource ;
16- protected bool SkipAliases ;
17-
18- public YdbQuerySqlGenerator (
19- QuerySqlGeneratorDependencies dependencies ,
20- IRelationalTypeMappingSource typeMappingSource
21- ) : base ( dependencies )
22- {
23- SqlGenerationHelper = dependencies . SqlGenerationHelper ;
24- TypeMappingSource = typeMappingSource ;
25- }
26-
27- [ return : NotNullIfNotNull ( "node" ) ]
28- public override Expression ? Visit ( Expression ? node ) => node != null ? base . Visit ( node ) : null ;
14+ private bool SkipAliases { get ; set ; }
15+ private ISqlGenerationHelper SqlGenerationHelper => Dependencies . SqlGenerationHelper ;
2916
3017 protected override Expression VisitColumn ( ColumnExpression columnExpression )
3118 {
3219 if ( SkipAliases )
3320 {
34- Sql . Append ( SqlGenerationHelper . DelimitIdentifier ( columnExpression . Name ) ) ;
21+ Sql . Append ( Dependencies . SqlGenerationHelper . DelimitIdentifier ( columnExpression . Name ) ) ;
3522 }
3623 else
3724 {
@@ -139,17 +126,17 @@ private void GenerateUpdateColumnSetters(UpdateExpression updateExpression)
139126 {
140127 foreach ( var columnValueSetter in updateExpression . ColumnValueSetters . Skip ( 1 ) )
141128 {
142- Sql
143- . AppendLine ( "," )
144- . Append ( $ " { SqlGenerationHelper . DelimitIdentifier ( columnValueSetter . Column . Name ) } = ") ;
129+ Sql . AppendLine ( "," )
130+ . Append ( SqlGenerationHelper . DelimitIdentifier ( columnValueSetter . Column . Name ) )
131+ . Append ( " = ") ;
145132 SkipAliases = true ;
146133 Visit ( columnValueSetter . Value ) ;
147134 SkipAliases = false ;
148135 }
149136 }
150137 }
151138
152- protected void GenerateOnSubquery (
139+ private void GenerateOnSubquery (
153140 IReadOnlyList < ColumnValueSetter > ? columnValueSetters ,
154141 SelectExpression select
155142 )
@@ -196,9 +183,13 @@ SelectExpression select
196183 }
197184 }
198185
186+ /// <inheritdoc />
199187 protected override void GenerateLimitOffset ( SelectExpression selectExpression )
200188 {
201- if ( selectExpression . Limit == null && selectExpression . Offset == null ) return ;
189+ if ( selectExpression . Limit == null && selectExpression . Offset == null )
190+ {
191+ return ;
192+ }
202193
203194 Sql . AppendLine ( ) . Append ( "LIMIT " ) ;
204195 if ( selectExpression . Limit != null )
@@ -211,14 +202,15 @@ protected override void GenerateLimitOffset(SelectExpression selectExpression)
211202 Sql . Append ( ulong . MaxValue . ToString ( ) ) ;
212203 }
213204
205+ // ReSharper disable once InvertIf
214206 if ( selectExpression . Offset != null )
215207 {
216208 Sql . Append ( " OFFSET " ) ;
217209 Visit ( selectExpression . Offset ) ;
218210 }
219211 }
220212
221- private bool IsComplexSelect ( SelectExpression select , TableExpressionBase fromTable ) =>
213+ private static bool IsComplexSelect ( SelectExpression select , TableExpressionBase fromTable ) =>
222214 select . Offset != null
223215 || select . Limit != null
224216 || select . Having != null
0 commit comments