@@ -77,6 +77,11 @@ type sessionVar struct {
77
77
// either by SHOW or in the pg_catalog table.
78
78
Get func (evalCtx * extendedEvalContext , kv * kv.Txn ) (string , error )
79
79
80
+ // Unit, if set, is a string representing the unit in which the value of
81
+ // this session variable is expressed by default. It can be empty in which
82
+ // case the unit is not defined.
83
+ Unit string
84
+
80
85
// Exists returns true if this custom session option exists in the current
81
86
// context. It's needed to support the current_setting builtin for custom
82
87
// options. It is only defined for custom options.
@@ -97,6 +102,10 @@ type sessionVar struct {
97
102
// the Set() method has to operate on strings, because it can be
98
103
// invoked at a point where there is no evalContext yet (e.g.
99
104
// upon session initialization in pgwire).
105
+ //
106
+ // Additional use case for this field is when we want to allow values of
107
+ // multiple types to be used when setting the variable (e.g. to accept both
108
+ // strings and integers).
100
109
GetStringVal getStringValFn
101
110
102
111
// Set performs mutations to effect the change desired by SET commands.
@@ -354,6 +363,7 @@ var varGen = map[string]sessionVar{
354
363
ms := evalCtx .SessionData ().DeadlockTimeout .Nanoseconds () / int64 (time .Millisecond )
355
364
return strconv .FormatInt (ms , 10 ), nil
356
365
},
366
+ Unit : "ms" ,
357
367
GlobalDefault : func (sv * settings.Values ) string {
358
368
return "0s"
359
369
},
@@ -590,6 +600,8 @@ var varGen = map[string]sessionVar{
590
600
Get : func (evalCtx * extendedEvalContext , _ * kv.Txn ) (string , error ) {
591
601
return string (humanizeutil .IBytes (evalCtx .SessionData ().WorkMemLimit )), nil
592
602
},
603
+ Unit : "B" ,
604
+ GetStringVal : makeByteSizeVarGetter ("distsql_workmem" ),
593
605
GlobalDefault : func (sv * settings.Values ) string {
594
606
return string (humanizeutil .IBytes (settingWorkMemBytes .Get (sv )))
595
607
},
@@ -1260,6 +1272,7 @@ var varGen = map[string]sessionVar{
1260
1272
ms := evalCtx .SessionData ().LockTimeout .Nanoseconds () / int64 (time .Millisecond )
1261
1273
return strconv .FormatInt (ms , 10 ), nil
1262
1274
},
1275
+ Unit : "ms" ,
1263
1276
GlobalDefault : func (sv * settings.Values ) string {
1264
1277
return clusterLockTimeout .String (sv )
1265
1278
},
@@ -1498,6 +1511,7 @@ var varGen = map[string]sessionVar{
1498
1511
ms := evalCtx .SessionData ().TransactionTimeout .Nanoseconds () / int64 (time .Millisecond )
1499
1512
return strconv .FormatInt (ms , 10 ), nil
1500
1513
},
1514
+ Unit : "ms" ,
1501
1515
GlobalDefault : func (sv * settings.Values ) string {
1502
1516
return "0s"
1503
1517
},
@@ -1661,6 +1675,7 @@ var varGen = map[string]sessionVar{
1661
1675
ms := evalCtx .SessionData ().StmtTimeout .Nanoseconds () / int64 (time .Millisecond )
1662
1676
return strconv .FormatInt (ms , 10 ), nil
1663
1677
},
1678
+ Unit : "ms" ,
1664
1679
GlobalDefault : func (sv * settings.Values ) string {
1665
1680
return clusterStatementTimeout .String (sv )
1666
1681
},
@@ -1674,6 +1689,7 @@ var varGen = map[string]sessionVar{
1674
1689
ms := evalCtx .SessionData ().IdleInSessionTimeout .Nanoseconds () / int64 (time .Millisecond )
1675
1690
return strconv .FormatInt (ms , 10 ), nil
1676
1691
},
1692
+ Unit : "ms" ,
1677
1693
GlobalDefault : func (sv * settings.Values ) string {
1678
1694
return clusterIdleInSessionTimeout .String (sv )
1679
1695
},
@@ -1686,6 +1702,7 @@ var varGen = map[string]sessionVar{
1686
1702
ms := evalCtx .SessionData ().IdleInTransactionSessionTimeout .Nanoseconds () / int64 (time .Millisecond )
1687
1703
return strconv .FormatInt (ms , 10 ), nil
1688
1704
},
1705
+ Unit : "ms" ,
1689
1706
GlobalDefault : func (sv * settings.Values ) string {
1690
1707
return clusterIdleInTransactionSessionTimeout .String (sv )
1691
1708
},
@@ -2293,6 +2310,8 @@ var varGen = map[string]sessionVar{
2293
2310
Get : func (evalCtx * extendedEvalContext , _ * kv.Txn ) (string , error ) {
2294
2311
return string (humanizeutil .IBytes (evalCtx .SessionData ().JoinReaderOrderingStrategyBatchSize )), nil
2295
2312
},
2313
+ Unit : "B" ,
2314
+ GetStringVal : makeByteSizeVarGetter ("join_reader_ordering_strategy_batch_size" ),
2296
2315
GlobalDefault : func (sv * settings.Values ) string {
2297
2316
return string (humanizeutil .IBytes (rowexec .JoinReaderOrderingStrategyBatchSize .Get (sv )))
2298
2317
},
@@ -2314,6 +2333,8 @@ var varGen = map[string]sessionVar{
2314
2333
Get : func (evalCtx * extendedEvalContext , _ * kv.Txn ) (string , error ) {
2315
2334
return string (humanizeutil .IBytes (evalCtx .SessionData ().JoinReaderNoOrderingStrategyBatchSize )), nil
2316
2335
},
2336
+ Unit : "B" ,
2337
+ GetStringVal : makeByteSizeVarGetter ("join_reader_no_ordering_strategy_batch_size" ),
2317
2338
GlobalDefault : func (sv * settings.Values ) string {
2318
2339
return string (humanizeutil .IBytes (rowexec .JoinReaderNoOrderingStrategyBatchSize .Get (sv )))
2319
2340
},
@@ -2335,6 +2356,8 @@ var varGen = map[string]sessionVar{
2335
2356
Get : func (evalCtx * extendedEvalContext , _ * kv.Txn ) (string , error ) {
2336
2357
return string (humanizeutil .IBytes (evalCtx .SessionData ().JoinReaderIndexJoinStrategyBatchSize )), nil
2337
2358
},
2359
+ Unit : "B" ,
2360
+ GetStringVal : makeByteSizeVarGetter ("join_reader_index_join_strategy_batch_size" ),
2338
2361
GlobalDefault : func (sv * settings.Values ) string {
2339
2362
return string (humanizeutil .IBytes (execinfra .JoinReaderIndexJoinStrategyBatchSize .Get (sv )))
2340
2363
},
@@ -2356,6 +2379,8 @@ var varGen = map[string]sessionVar{
2356
2379
Get : func (evalCtx * extendedEvalContext , _ * kv.Txn ) (string , error ) {
2357
2380
return string (humanizeutil .IBytes (evalCtx .SessionData ().IndexJoinStreamerBatchSize )), nil
2358
2381
},
2382
+ Unit : "B" ,
2383
+ GetStringVal : makeByteSizeVarGetter ("index_join_streamer_batch_size" ),
2359
2384
GlobalDefault : func (sv * settings.Values ) string {
2360
2385
return string (humanizeutil .IBytes (colfetcher .IndexJoinStreamerBatchSize .Get (sv )))
2361
2386
},
@@ -3051,6 +3076,8 @@ var varGen = map[string]sessionVar{
3051
3076
Get : func (evalCtx * extendedEvalContext , _ * kv.Txn ) (string , error ) {
3052
3077
return string (humanizeutil .IBytes (evalCtx .SessionData ().PreparedStatementsCacheSize )), nil
3053
3078
},
3079
+ Unit : "B" ,
3080
+ GetStringVal : makeByteSizeVarGetter ("prepared_statements_cache_size" ),
3054
3081
GlobalDefault : func (_ * settings.Values ) string {
3055
3082
return string (humanizeutil .IBytes (0 ))
3056
3083
},
0 commit comments