Skip to content

Commit 64bbf2a

Browse files
view-param-publish (#628)
Summary: - `SHOW METHODS` now publishes views. - Added robot test `Show Methods including view`. - Added robot test `Show Methods including view and others`. - Added robot test `Show Methods including required params view and others`.
1 parent 4a58491 commit 64bbf2a

6 files changed

Lines changed: 58 additions & 5 deletions

File tree

go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ require (
1818
github.com/spf13/cobra v1.4.0
1919
github.com/spf13/pflag v1.0.5
2020
github.com/spf13/viper v1.10.1
21-
github.com/stackql/any-sdk v0.5.1-alpha03
21+
github.com/stackql/any-sdk v0.5.1-alpha07
2222
github.com/stackql/go-suffix-map v0.0.1-alpha01
2323
github.com/stackql/psql-wire v0.1.2-alpha01
2424
github.com/stackql/stackql-parser v0.0.16-alpha01

go.sum

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -467,8 +467,8 @@ github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA=
467467
github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
468468
github.com/spf13/viper v1.10.1 h1:nuJZuYpG7gTj/XqiUwg8bA0cp1+M2mC3J4g5luUYBKk=
469469
github.com/spf13/viper v1.10.1/go.mod h1:IGlFPqhNAPKRxohIzWpI5QEy4kuI7tcl5WvR+8qy1rU=
470-
github.com/stackql/any-sdk v0.5.1-alpha03 h1:zYVr/ysJ26Tb1JCl/49MymMsHH+5dC2iGircAJhGbIg=
471-
github.com/stackql/any-sdk v0.5.1-alpha03/go.mod h1:ZRTGrcDKFLaC+5yWo4OqXVs1HTNxgYM9nQsQDlq0Fe0=
470+
github.com/stackql/any-sdk v0.5.1-alpha07 h1:CfWos4QmtETs9UNXv36JXT9vK7DR/PiNOWhvlTi6aDg=
471+
github.com/stackql/any-sdk v0.5.1-alpha07/go.mod h1:ZRTGrcDKFLaC+5yWo4OqXVs1HTNxgYM9nQsQDlq0Fe0=
472472
github.com/stackql/go-suffix-map v0.0.1-alpha01 h1:TDUDS8bySu41Oo9p0eniUeCm43mnRM6zFEd6j6VUaz8=
473473
github.com/stackql/go-suffix-map v0.0.1-alpha01/go.mod h1:QAi+SKukOyf4dBtWy8UMy+hsXXV+yyEE4vmBkji2V7g=
474474
github.com/stackql/psql-wire v0.1.2-alpha01 h1:RMBRURGspmSNqm2/sgoEc+D6Sri2y/3drjl4nKlOOi4=

internal/stackql/planbuilder/plan_builder.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1276,7 +1276,7 @@ func (pgb *standardPlanGraphBuilder) handleShow(pbi planbuilderinput.PlanBuilder
12761276
}
12771277
case "METHODS":
12781278
//nolint:wastedassign // TODO: fix this
1279-
tbl, err = primitiveGenerator.GetPrimitiveComposer().GetTable(node.OnTable) //nolint:ineffassign,staticcheck,lll // TODO: fix this
1279+
tbl, err = primitiveGenerator.GetPrimitiveComposer().GetTable(node) //nolint:ineffassign,staticcheck,lll // TODO: fix this
12801280
}
12811281
prov := primitiveGenerator.GetPrimitiveComposer().GetProvider()
12821282
pr := primitive.NewMetaDataPrimitive(

internal/stackql/primitivebuilder/shortcuts.go

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -204,11 +204,25 @@ func NewShowInstructionExecutor(
204204
return util.PrepareResultSet(internaldto.NewPrepareResultSetDTO(nil, keys, columnOrder, nil, mErr, nil,
205205
handlerCtx.GetTypingConfig()))
206206
}
207+
views, hasViews := rsc.GetViewsForSqlDialect(
208+
handlerCtx.GetSQLSystem().GetName(),
209+
)
207210
methodKeys := make(map[string]map[string]interface{})
211+
j := 0
212+
if hasViews {
213+
for i, v := range views {
214+
vMap := v.ToPresentationMap(extended)
215+
if i == 0 {
216+
methodKeys[fmt.Sprintf("%06d", i)] = vMap
217+
j++
218+
columnOrder = v.GetColumnOrder(extended)
219+
}
220+
}
221+
}
208222
for i, k := range mOrd {
209223
method := k
210224
methMap := method.ToPresentationMap(extended)
211-
methodKeys[fmt.Sprintf("%06d", i)] = methMap
225+
methodKeys[fmt.Sprintf("%06d", j+i)] = methMap
212226
columnOrder = method.GetColumnOrder(extended)
213227
}
214228
keys = methodKeys

test/robot/functional/stackql_from_cmd_line.robot

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -655,6 +655,43 @@ Show Methods including server params AWS
655655
... show methods in aws.ec2.vpcs;
656656
... ${outputStr}
657657

658+
Show Methods including view
659+
${outputStr} = Catenate SEPARATOR=\n
660+
... |------------|----------------|---------|
661+
... |${SPACE}MethodName${SPACE}|${SPACE}RequiredParams${SPACE}|${SPACE}SQLVerb${SPACE}|
662+
... |------------|----------------|---------|
663+
... |${SPACE}__view__${SPACE}${SPACE}${SPACE}|${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}|${SPACE}SELECT${SPACE}${SPACE}|
664+
... |------------|----------------|---------|
665+
Should StackQL Current Exec Equal
666+
... show methods in aws.pseudo_s3.s3_bucket_listing;
667+
... ${outputStr}
668+
669+
Show Methods including view and others
670+
${outputStr} = Catenate SEPARATOR=\n
671+
... |-----------------|----------------|---------|
672+
... |${SPACE}${SPACE}${SPACE}MethodName${SPACE}${SPACE}${SPACE}${SPACE}|${SPACE}RequiredParams${SPACE}|${SPACE}SQLVerb${SPACE}|
673+
... |-----------------|----------------|---------|
674+
... |${SPACE}__view__${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}|${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}|${SPACE}SELECT${SPACE}${SPACE}|
675+
... |-----------------|----------------|---------|
676+
... |${SPACE}create_resource${SPACE}|${SPACE}region${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}|${SPACE}INSERT${SPACE}${SPACE}|
677+
... |-----------------|----------------|---------|
678+
Should StackQL Current Exec Equal
679+
... show methods in aws.pseudo_s3.s3_bucket_detail_defaulted;
680+
... ${outputStr}
681+
682+
Show Methods including required params view and others
683+
${outputStr} = Catenate SEPARATOR=\n
684+
... |-----------------|--------------------------|---------|
685+
... |${SPACE}${SPACE}${SPACE}MethodName${SPACE}${SPACE}${SPACE}${SPACE}|${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}RequiredParams${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}|${SPACE}SQLVerb${SPACE}|
686+
... |-----------------|--------------------------|---------|
687+
... |${SPACE}__view__${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}|${SPACE}data__Identifier,${SPACE}region${SPACE}|${SPACE}SELECT${SPACE}${SPACE}|
688+
... |-----------------|--------------------------|---------|
689+
... |${SPACE}create_resource${SPACE}|${SPACE}region${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}|${SPACE}INSERT${SPACE}${SPACE}|
690+
... |-----------------|--------------------------|---------|
691+
Should StackQL Current Exec Equal
692+
... show methods in aws.pseudo_s3.s3_bucket_polymorphic;
693+
... ${outputStr}
694+
658695
Show Insert Google Container Clusters
659696
Should StackQL Exec Contain
660697
... SHOW INSERT INTO google.container."projects.zones.clusters";

test/robot/functional/stackql_mocked_from_cmd_line.robot

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -460,6 +460,8 @@ AWS Hybrid Service Cloud Control S3 Bucket Show Methods
460460
... |-----------------|----------------------------|---------|
461461
... |${SPACE}${SPACE}${SPACE}MethodName${SPACE}${SPACE}${SPACE}${SPACE}|${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}RequiredParams${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}|${SPACE}SQLVerb${SPACE}|
462462
... |-----------------|----------------------------|---------|
463+
... |${SPACE}__view__${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}|${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}|${SPACE}SELECT${SPACE}${SPACE}|
464+
... |-----------------|----------------------------|---------|
463465
... |${SPACE}create_resource${SPACE}|${SPACE}data__DesiredState,${SPACE}region${SPACE}|${SPACE}INSERT${SPACE}${SPACE}|
464466
... |-----------------|----------------------------|---------|
465467
Should StackQL Exec Inline Equal Both Streams

0 commit comments

Comments
 (0)