99 "strings"
1010
1111 "github.com/stackql/any-sdk/anysdk"
12- "github.com/stackql/any-sdk/pkg/client"
1312 "github.com/stackql/any-sdk/pkg/constants"
1413 "github.com/stackql/any-sdk/pkg/db/sqlcontrol"
1514 "github.com/stackql/any-sdk/pkg/logging"
@@ -474,22 +473,8 @@ func (dc *staticDRMConfig) genRelationalTable(
474473 tableName ,
475474 tabAnn .GetInputTableName (),
476475 )
477- schemaAnalyzer := util .NewTableSchemaAnalyzer (tabAnn .GetTabulation ().GetSchema (), m , isNilResponseAlloed )
478- tableColumns , err := schemaAnalyzer .GetColumns ()
479- if err != nil {
480- return nil , err
481- }
482- for _ , col := range tableColumns {
483- colName := col .GetName ()
484- colType := dc .inferColType (col )
485- // relationalType := dc.GetRelationalType(colType)
486- // TODO: add drm logic to infer / transform width as suplied by openapi doc
487- colWidth := col .GetWidth ()
488- relationalColumn := typing .NewRelationalColumn (colName , colType ).WithWidth (colWidth )
489- relationalTable .PushBackColumn (relationalColumn )
490- }
491- protocolType , _ := prov .GetProtocolType ()
492- if protocolType == client .HTTP {
476+ addressSpace , hasAddressSpace := m .GetAddressSpace ()
477+ if ! hasAddressSpace {
493478 addressSpaceFormulator := radix_tree_address_space .NewAddressSpaceFormulator (
494479 radix_tree_address_space .NewAddressSpaceGrammar (),
495480 prov ,
@@ -503,15 +488,29 @@ func (dc *staticDRMConfig) genRelationalTable(
503488 return nil , addressSpaceErr
504489 }
505490 // TODO: use address space
506- addressSpace : = addressSpaceFormulator .GetAddressSpace ()
491+ addressSpace = addressSpaceFormulator .GetAddressSpace ()
507492 if addressSpace == nil {
508493 return nil , fmt .Errorf ("failed to obtain address space" )
509494 }
510495 }
511- // analyzer, analyzerErr := methodAnalyzerFactory.CreateMethodAggregateStaticAnalyzer(
512- // path.Join(dc.registryAPI.GetLocalProviderDocPath("", ""),
513-
514- // )
496+ inferredRelation , inferredRelationErr := addressSpace .ToRelation (
497+ radix_tree_address_space .NewStandardAddressSpaceExpansionConfig (
498+ true , // TODO: switch this off at the appropriate time
499+ isNilResponseAlloed ,
500+ ))
501+ if inferredRelationErr != nil {
502+ return nil , inferredRelationErr
503+ }
504+ tableColumns := inferredRelation .GetColumns ()
505+ for _ , col := range tableColumns {
506+ colName := col .GetName ()
507+ colType := dc .inferColType (col )
508+ // relationalType := dc.GetRelationalType(colType)
509+ // TODO: add drm logic to infer / transform width as suplied by openapi doc
510+ colWidth := col .GetWidth ()
511+ relationalColumn := typing .NewRelationalColumn (colName , colType ).WithWidth (colWidth )
512+ relationalTable .PushBackColumn (relationalColumn )
513+ }
515514 return relationalTable , nil
516515}
517516
@@ -525,7 +524,8 @@ func (dc *staticDRMConfig) GenerateDDL(
525524 dropTable bool ,
526525 isNilResponseAlloed bool ,
527526) ([]string , error ) {
528- relationalTable , err := dc .genRelationalTable (tabAnn , prov , svc , resource , m , discoveryGenerationID , isNilResponseAlloed )
527+ relationalTable , err := dc .genRelationalTable (
528+ tabAnn , prov , svc , resource , m , discoveryGenerationID , isNilResponseAlloed )
529529 if err != nil {
530530 return nil , err
531531 }
0 commit comments