Fix PERSIST_SAMPLE_PERCENT statistics option parsing (#207) · microsoft/SqlScriptDOM@a7497c8 · GitHub
Skip to content

Commit a7497c8

Browse files
aasimkhan30Aasim Khan
andauthored
Fix PERSIST_SAMPLE_PERCENT statistics option parsing (#207)
Co-authored-by: Aasim Khan <aasimkhan@gmail.com>
1 parent b317381 commit a7497c8

14 files changed

Lines changed: 170 additions & 3 deletions

‎SqlScriptDom/Parser/TSql/CodeGenerationSupporter.cs‎

Lines changed: 1 addition & 0 deletions

‎SqlScriptDom/Parser/TSql/StatisticsOptionKind.cs‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ public enum StatisticsOptionKind
3030
Rows = 11,
3131
Incremental = 12,
3232
AutoDrop = 13,
33+
PersistSamplePercent = 14,
3334
}
3435

3536
#pragma warning restore 1591

‎SqlScriptDom/Parser/TSql/TSql130.g‎

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12267,10 +12267,26 @@ incrementalStatisticsOption returns [OnOffStatisticsOption vResult = this.Fragme
1226712267
}
1226812268
;
1226912269

12270+
persistSamplePercentStatisticsOption returns [OnOffStatisticsOption vResult = this.FragmentFactory.CreateFragment<OnOffStatisticsOption>()]
12271+
{
12272+
OptionState vOptionState;
12273+
}
12274+
: tOption:Identifier EqualsSign vOptionState=optionOnOff[vResult]
12275+
{
12276+
Match(tOption, CodeGenerationSupporter.PersistSamplePercent);
12277+
vResult.OptionKind = StatisticsOptionKind.PersistSamplePercent;
12278+
vResult.OptionState = vOptionState;
12279+
UpdateTokenInfo(vResult, tOption);
12280+
}
12281+
;
12282+
1227012283
createStatisticsStatementWithOption[ref bool isConflictingOption] returns [StatisticsOption vResult]
1227112284
:
1227212285
{NextTokenMatches(CodeGenerationSupporter.Incremental)}?
1227312286
vResult = incrementalStatisticsOption
12287+
|
12288+
{NextTokenMatches(CodeGenerationSupporter.PersistSamplePercent)}?
12289+
vResult = persistSamplePercentStatisticsOption
1227412290
|
1227512291
vResult = sampleStatisticsOption[ref isConflictingOption]
1227612292
|
@@ -12327,6 +12343,8 @@ updateStatisticsStatementWithOption [ref bool isConflictingOption] returns [Stat
1232712343
vResult = resampleStatisticsOption
1232812344
| {NextTokenMatches(CodeGenerationSupporter.Incremental)}?
1232912345
vResult = incrementalStatisticsOption
12346+
| {NextTokenMatches(CodeGenerationSupporter.PersistSamplePercent)}?
12347+
vResult = persistSamplePercentStatisticsOption
1233012348
| vResult = sampleStatisticsOption[ref isConflictingOption]
1233112349
|
1233212350
{NextTokenMatches(CodeGenerationSupporter.StatsStream)}?

‎SqlScriptDom/Parser/TSql/TSql140.g‎

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12673,10 +12673,26 @@ incrementalStatisticsOption returns [OnOffStatisticsOption vResult = this.Fragme
1267312673
}
1267412674
;
1267512675

12676+
persistSamplePercentStatisticsOption returns [OnOffStatisticsOption vResult = this.FragmentFactory.CreateFragment<OnOffStatisticsOption>()]
12677+
{
12678+
OptionState vOptionState;
12679+
}
12680+
: tOption:Identifier EqualsSign vOptionState=optionOnOff[vResult]
12681+
{
12682+
Match(tOption, CodeGenerationSupporter.PersistSamplePercent);
12683+
vResult.OptionKind = StatisticsOptionKind.PersistSamplePercent;
12684+
vResult.OptionState = vOptionState;
12685+
UpdateTokenInfo(vResult, tOption);
12686+
}
12687+
;
12688+
1267612689
createStatisticsStatementWithOption[ref bool isConflictingOption] returns [StatisticsOption vResult]
1267712690
:
1267812691
{NextTokenMatches(CodeGenerationSupporter.Incremental)}?
1267912692
vResult = incrementalStatisticsOption
12693+
|
12694+
{NextTokenMatches(CodeGenerationSupporter.PersistSamplePercent)}?
12695+
vResult = persistSamplePercentStatisticsOption
1268012696
|
1268112697
vResult = sampleStatisticsOption[ref isConflictingOption]
1268212698
|
@@ -12733,6 +12749,8 @@ updateStatisticsStatementWithOption [ref bool isConflictingOption] returns [Stat
1273312749
vResult = resampleStatisticsOption
1273412750
| {NextTokenMatches(CodeGenerationSupporter.Incremental)}?
1273512751
vResult = incrementalStatisticsOption
12752+
| {NextTokenMatches(CodeGenerationSupporter.PersistSamplePercent)}?
12753+
vResult = persistSamplePercentStatisticsOption
1273612754
| vResult = sampleStatisticsOption[ref isConflictingOption]
1273712755
|
1273812756
{NextTokenMatches(CodeGenerationSupporter.StatsStream)}?

‎SqlScriptDom/Parser/TSql/TSql150.g‎

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13340,10 +13340,26 @@ incrementalStatisticsOption returns [OnOffStatisticsOption vResult = this.Fragme
1334013340
}
1334113341
;
1334213342

13343+
persistSamplePercentStatisticsOption returns [OnOffStatisticsOption vResult = this.FragmentFactory.CreateFragment<OnOffStatisticsOption>()]
13344+
{
13345+
OptionState vOptionState;
13346+
}
13347+
: tOption:Identifier EqualsSign vOptionState=optionOnOff[vResult]
13348+
{
13349+
Match(tOption, CodeGenerationSupporter.PersistSamplePercent);
13350+
vResult.OptionKind = StatisticsOptionKind.PersistSamplePercent;
13351+
vResult.OptionState = vOptionState;
13352+
UpdateTokenInfo(vResult, tOption);
13353+
}
13354+
;
13355+
1334313356
createStatisticsStatementWithOption[ref bool isConflictingOption] returns [StatisticsOption vResult]
1334413357
:
1334513358
{NextTokenMatches(CodeGenerationSupporter.Incremental)}?
1334613359
vResult = incrementalStatisticsOption
13360+
|
13361+
{NextTokenMatches(CodeGenerationSupporter.PersistSamplePercent)}?
13362+
vResult = persistSamplePercentStatisticsOption
1334713363
|
1334813364
vResult = sampleStatisticsOption[ref isConflictingOption]
1334913365
|
@@ -13400,6 +13416,8 @@ updateStatisticsStatementWithOption [ref bool isConflictingOption] returns [Stat
1340013416
vResult = resampleStatisticsOption
1340113417
| {NextTokenMatches(CodeGenerationSupporter.Incremental)}?
1340213418
vResult = incrementalStatisticsOption
13419+
| {NextTokenMatches(CodeGenerationSupporter.PersistSamplePercent)}?
13420+
vResult = persistSamplePercentStatisticsOption
1340313421
| vResult = sampleStatisticsOption[ref isConflictingOption]
1340413422
|
1340513423
{NextTokenMatches(CodeGenerationSupporter.StatsStream)}?

‎SqlScriptDom/Parser/TSql/TSql160.g‎

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13385,13 +13385,29 @@ autoDropStatisticsOption returns [OnOffStatisticsOption vResult = this.FragmentF
1338513385
}
1338613386
;
1338713387

13388+
persistSamplePercentStatisticsOption returns [OnOffStatisticsOption vResult = this.FragmentFactory.CreateFragment<OnOffStatisticsOption>()]
13389+
{
13390+
OptionState vOptionState;
13391+
}
13392+
: tOption:Identifier EqualsSign vOptionState=optionOnOff[vResult]
13393+
{
13394+
Match(tOption, CodeGenerationSupporter.PersistSamplePercent);
13395+
vResult.OptionKind = StatisticsOptionKind.PersistSamplePercent;
13396+
vResult.OptionState = vOptionState;
13397+
UpdateTokenInfo(vResult, tOption);
13398+
}
13399+
;
13400+
1338813401
createStatisticsStatementWithOption[ref bool isConflictingOption] returns [StatisticsOption vResult]
1338913402
:
1339013403
{NextTokenMatches(CodeGenerationSupporter.Incremental)}?
1339113404
vResult = incrementalStatisticsOption
1339213405
|
1339313406
{NextTokenMatches(CodeGenerationSupporter.AutoDrop)}?
1339413407
vResult = autoDropStatisticsOption
13408+
|
13409+
{NextTokenMatches(CodeGenerationSupporter.PersistSamplePercent)}?
13410+
vResult = persistSamplePercentStatisticsOption
1339513411
|
1339613412
vResult = sampleStatisticsOption[ref isConflictingOption]
1339713413
|
@@ -13450,6 +13466,8 @@ updateStatisticsStatementWithOption [ref bool isConflictingOption] returns [Stat
1345013466
vResult = incrementalStatisticsOption
1345113467
| {NextTokenMatches(CodeGenerationSupporter.AutoDrop)}?
1345213468
vResult = autoDropStatisticsOption
13469+
| {NextTokenMatches(CodeGenerationSupporter.PersistSamplePercent)}?
13470+
vResult = persistSamplePercentStatisticsOption
1345313471
| vResult = sampleStatisticsOption[ref isConflictingOption]
1345413472
|
1345513473
{NextTokenMatches(CodeGenerationSupporter.StatsStream)}?

‎SqlScriptDom/Parser/TSql/TSql170.g‎

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13440,13 +13440,29 @@ autoDropStatisticsOption returns [OnOffStatisticsOption vResult = this.FragmentF
1344013440
}
1344113441
;
1344213442

13443+
persistSamplePercentStatisticsOption returns [OnOffStatisticsOption vResult = this.FragmentFactory.CreateFragment<OnOffStatisticsOption>()]
13444+
{
13445+
OptionState vOptionState;
13446+
}
13447+
: tOption:Identifier EqualsSign vOptionState=optionOnOff[vResult]
13448+
{
13449+
Match(tOption, CodeGenerationSupporter.PersistSamplePercent);
13450+
vResult.OptionKind = StatisticsOptionKind.PersistSamplePercent;
13451+
vResult.OptionState = vOptionState;
13452+
UpdateTokenInfo(vResult, tOption);
13453+
}
13454+
;
13455+
1344313456
createStatisticsStatementWithOption[ref bool isConflictingOption] returns [StatisticsOption vResult]
1344413457
:
1344513458
{NextTokenMatches(CodeGenerationSupporter.Incremental)}?
1344613459
vResult = incrementalStatisticsOption
1344713460
|
1344813461
{NextTokenMatches(CodeGenerationSupporter.AutoDrop)}?
1344913462
vResult = autoDropStatisticsOption
13463+
|
13464+
{NextTokenMatches(CodeGenerationSupporter.PersistSamplePercent)}?
13465+
vResult = persistSamplePercentStatisticsOption
1345013466
|
1345113467
vResult = sampleStatisticsOption[ref isConflictingOption]
1345213468
|
@@ -13505,6 +13521,8 @@ updateStatisticsStatementWithOption [ref bool isConflictingOption] returns [Stat
1350513521
vResult = incrementalStatisticsOption
1350613522
| {NextTokenMatches(CodeGenerationSupporter.AutoDrop)}?
1350713523
vResult = autoDropStatisticsOption
13524+
| {NextTokenMatches(CodeGenerationSupporter.PersistSamplePercent)}?
13525+
vResult = persistSamplePercentStatisticsOption
1350813526
| vResult = sampleStatisticsOption[ref isConflictingOption]
1350913527
|
1351013528
{NextTokenMatches(CodeGenerationSupporter.StatsStream)}?

‎SqlScriptDom/Parser/TSql/TSql180.g‎

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13440,13 +13440,29 @@ autoDropStatisticsOption returns [OnOffStatisticsOption vResult = this.FragmentF
1344013440
}
1344113441
;
1344213442

13443+
persistSamplePercentStatisticsOption returns [OnOffStatisticsOption vResult = this.FragmentFactory.CreateFragment<OnOffStatisticsOption>()]
13444+
{
13445+
OptionState vOptionState;
13446+
}
13447+
: tOption:Identifier EqualsSign vOptionState=optionOnOff[vResult]
13448+
{
13449+
Match(tOption, CodeGenerationSupporter.PersistSamplePercent);
13450+
vResult.OptionKind = StatisticsOptionKind.PersistSamplePercent;
13451+
vResult.OptionState = vOptionState;
13452+
UpdateTokenInfo(vResult, tOption);
13453+
}
13454+
;
13455+
1344313456
createStatisticsStatementWithOption[ref bool isConflictingOption] returns [StatisticsOption vResult]
1344413457
:
1344513458
{NextTokenMatches(CodeGenerationSupporter.Incremental)}?
1344613459
vResult = incrementalStatisticsOption
1344713460
|
1344813461
{NextTokenMatches(CodeGenerationSupporter.AutoDrop)}?
1344913462
vResult = autoDropStatisticsOption
13463+
|
13464+
{NextTokenMatches(CodeGenerationSupporter.PersistSamplePercent)}?
13465+
vResult = persistSamplePercentStatisticsOption
1345013466
|
1345113467
vResult = sampleStatisticsOption[ref isConflictingOption]
1345213468
|
@@ -13505,6 +13521,8 @@ updateStatisticsStatementWithOption [ref bool isConflictingOption] returns [Stat
1350513521
vResult = incrementalStatisticsOption
1350613522
| {NextTokenMatches(CodeGenerationSupporter.AutoDrop)}?
1350713523
vResult = autoDropStatisticsOption
13524+
| {NextTokenMatches(CodeGenerationSupporter.PersistSamplePercent)}?
13525+
vResult = persistSamplePercentStatisticsOption
1350813526
| vResult = sampleStatisticsOption[ref isConflictingOption]
1350913527
|
1351013528
{NextTokenMatches(CodeGenerationSupporter.StatsStream)}?

‎SqlScriptDom/ScriptDom/SqlServer/ScriptGenerator/SqlScriptGeneratorVisitor.StatisticsOption.cs‎

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,9 @@ public override void ExplicitVisit(OnOffStatisticsOption node)
8181
case StatisticsOptionKind.AutoDrop:
8282
optionName = CodeGenerationSupporter.AutoDrop;
8383
break;
84+
case StatisticsOptionKind.PersistSamplePercent:
85+
optionName = CodeGenerationSupporter.PersistSamplePercent;
86+
break;
8487
default:
8588
System.Diagnostics.Debug.Assert(false, "invalid option encountered");
8689
break;
@@ -110,4 +113,4 @@ public override void ExplicitVisit(ResampleStatisticsOption node)
110113
}
111114
}
112115
}
113-
}
116+
}
Lines changed: 22 additions & 0 deletions

0 commit comments

Comments
 (0)