Skip to content

Commit df34b1b

Browse files
- Bulk API changes to anhance analysis.
1 parent c85ad8e commit df34b1b

File tree

11 files changed

+67
-28
lines changed

11 files changed

+67
-28
lines changed

go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ require (
1616
github.com/spf13/cobra v1.4.0
1717
github.com/spf13/pflag v1.0.5
1818
github.com/spf13/viper v1.10.1
19-
github.com/stackql/any-sdk v0.2.2-alpha06
19+
github.com/stackql/any-sdk v0.2.2-alpha08
2020
github.com/stackql/go-suffix-map v0.0.1-alpha01
2121
github.com/stackql/psql-wire v0.1.1-beta23
2222
github.com/stackql/stackql-parser v0.0.15-alpha06

go.sum

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -461,8 +461,8 @@ github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA=
461461
github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
462462
github.com/spf13/viper v1.10.1 h1:nuJZuYpG7gTj/XqiUwg8bA0cp1+M2mC3J4g5luUYBKk=
463463
github.com/spf13/viper v1.10.1/go.mod h1:IGlFPqhNAPKRxohIzWpI5QEy4kuI7tcl5WvR+8qy1rU=
464-
github.com/stackql/any-sdk v0.2.2-alpha06 h1:EZ3YXR4ofMgqjKZVK6AchtYlifF4fzjo2Y9Y3pRJxYQ=
465-
github.com/stackql/any-sdk v0.2.2-alpha06/go.mod h1:m1o5TCfyKkdt2bREB3itwPv1MhM+lk4eu24KpPohFoY=
464+
github.com/stackql/any-sdk v0.2.2-alpha08 h1:EmjP9s6+Blys3I9oH0mfXcexKDOibKv9j/GdQqVLleU=
465+
github.com/stackql/any-sdk v0.2.2-alpha08/go.mod h1:m1o5TCfyKkdt2bREB3itwPv1MhM+lk4eu24KpPohFoY=
466466
github.com/stackql/go-suffix-map v0.0.1-alpha01 h1:TDUDS8bySu41Oo9p0eniUeCm43mnRM6zFEd6j6VUaz8=
467467
github.com/stackql/go-suffix-map v0.0.1-alpha01/go.mod h1:QAi+SKukOyf4dBtWy8UMy+hsXXV+yyEE4vmBkji2V7g=
468468
github.com/stackql/psql-wire v0.1.1-beta23 h1:1ayYMjZArfDcIMyEOKnm+Bp1zRCISw8pguvTFuUhhVQ=

internal/stackql/bundle/bundle.go

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,15 @@ import (
55

66
"github.com/stackql/any-sdk/pkg/db/sqlcontrol"
77
"github.com/stackql/any-sdk/pkg/dto"
8+
sdk_persistence "github.com/stackql/any-sdk/public/persistence"
89
"github.com/stackql/any-sdk/public/sqlengine"
910
"github.com/stackql/stackql-parser/go/vt/sqlparser"
1011
"github.com/stackql/stackql/internal/stackql/acid/txn_context"
1112
"github.com/stackql/stackql/internal/stackql/datasource/sql_datasource"
1213
"github.com/stackql/stackql/internal/stackql/dbmsinternal"
1314
"github.com/stackql/stackql/internal/stackql/garbagecollector"
1415
"github.com/stackql/stackql/internal/stackql/kstore"
16+
"github.com/stackql/stackql/internal/stackql/persistence"
1517
"github.com/stackql/stackql/internal/stackql/sql_system"
1618
"github.com/stackql/stackql/internal/stackql/tablenamespace"
1719
"github.com/stackql/stackql/internal/stackql/typing"
@@ -26,6 +28,7 @@ type Bundle interface {
2628
GetDBMSInternalRouter() dbmsinternal.Router
2729
GetSQLDataSources() map[string]sql_datasource.SQLDataSource
2830
GetSQLSystem() sql_system.SQLSystem
31+
GetPersistenceSystem() sdk_persistence.PersistenceSystem
2932
GetSQLEngine() sqlengine.SQLEngine
3033
GetTxnCounterManager() txncounter.Manager
3134
GetTxnStore() kstore.KStore
@@ -58,6 +61,7 @@ func NewBundle(
5861
namespaces: namespaces,
5962
sqlEngine: sqlEngine,
6063
sqlSystem: sqlSystem,
64+
persistenceSystem: persistence.NewSQLPersistenceSystem(sqlSystem),
6165
controlAttributes: controlAttributes,
6266
txnStore: txnStore,
6367
txnCtrMgr: txnCtrMgr,
@@ -77,6 +81,7 @@ type simpleBundle struct {
7781
namespaces tablenamespace.Collection
7882
sqlEngine sqlengine.SQLEngine
7983
sqlSystem sql_system.SQLSystem
84+
persistenceSystem sdk_persistence.PersistenceSystem
8085
txnStore kstore.KStore
8186
txnCtrMgr txncounter.Manager
8287
typCfg typing.Config
@@ -120,6 +125,10 @@ func (sb *simpleBundle) GetSQLDataSources() map[string]sql_datasource.SQLDataSou
120125
return sb.sqlDataSources
121126
}
122127

128+
func (sb *simpleBundle) GetPersistenceSystem() sdk_persistence.PersistenceSystem {
129+
return sb.persistenceSystem
130+
}
131+
123132
func (sb *simpleBundle) GetAuthContexts() map[string]*dto.AuthCtx {
124133
return sb.authContexts
125134
}

internal/stackql/dependencyplanner/dependencyplanner.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -324,8 +324,9 @@ func (dp *standardDependencyPlanner) Plan() error {
324324
return err
325325
}
326326
logging.GetLogger().Debugf("rewrittenWhereStr = '%s'", rewrittenWhereStr)
327-
drmCfg, err := drm.GetDRMConfig(
327+
drmCfg, err := drm.GenerateDRMConfig(
328328
dp.handlerCtx.GetSQLSystem(),
329+
dp.handlerCtx.GetPersistenceSystem(),
329330
dp.handlerCtx.GetTypingConfig(),
330331
dp.handlerCtx.GetNamespaceCollection(),
331332
dp.handlerCtx.GetControlAttributes())
@@ -564,6 +565,7 @@ func (dp *standardDependencyPlanner) processAcquire(
564565
dp.handlerCtx.GetNamespaceCollection(),
565566
dp.handlerCtx.GetControlAttributes(),
566567
dp.handlerCtx.GetSQLSystem(),
568+
dp.handlerCtx.GetPersistenceSystem(),
567569
dp.handlerCtx.GetTypingConfig(),
568570
)
569571
if err != nil {

internal/stackql/docparser/doc_parser.go

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import (
66
"github.com/stackql/any-sdk/anysdk"
77
"github.com/stackql/any-sdk/pkg/db/sqlcontrol"
88
"github.com/stackql/any-sdk/pkg/logging"
9+
sdk_persistence "github.com/stackql/any-sdk/public/persistence"
910
"github.com/stackql/any-sdk/public/sqlengine"
1011
"github.com/stackql/stackql/internal/stackql/drm"
1112
"github.com/stackql/stackql/internal/stackql/sql_system"
@@ -40,9 +41,11 @@ func OpenapiStackQLTabulationsPersistor(
4041
namespaceCollection tablenamespace.Collection,
4142
controlAttributes sqlcontrol.ControlAttributes,
4243
sqlSystem sql_system.SQLSystem,
44+
persistenceSystem sdk_persistence.PersistenceSystem,
4345
typCfg typing.Config,
4446
) (int, error) {
45-
drmCfg, err := drm.GetDRMConfig(sqlSystem, typCfg, namespaceCollection, controlAttributes)
47+
drmCfg, err := drm.GenerateDRMConfig(sqlSystem, persistenceSystem,
48+
typCfg, namespaceCollection, controlAttributes)
4649
if err != nil {
4750
return 0, err
4851
}

internal/stackql/drm/drm_cfg.go

Lines changed: 19 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@ import (
1313
"github.com/stackql/any-sdk/pkg/db/sqlcontrol"
1414
"github.com/stackql/any-sdk/pkg/logging"
1515
"github.com/stackql/any-sdk/pkg/streaming"
16+
"github.com/stackql/any-sdk/public/discovery"
17+
sdk_persistence "github.com/stackql/any-sdk/public/persistence"
1618
"github.com/stackql/any-sdk/public/sqlengine"
1719
"github.com/stackql/stackql/internal/stackql/internal_data_transfer/internaldto"
1820
"github.com/stackql/stackql/internal/stackql/internal_data_transfer/relationaldto"
@@ -99,11 +101,13 @@ type Config interface {
99101
}
100102

101103
type staticDRMConfig struct {
102-
namespaceCollection tablenamespace.Collection
103-
controlAttributes sqlcontrol.ControlAttributes
104-
sqlEngine sqlengine.SQLEngine
105-
sqlSystem sql_system.SQLSystem
106-
typCfg typing.Config
104+
namespaceCollection tablenamespace.Collection
105+
controlAttributes sqlcontrol.ControlAttributes
106+
sqlEngine sqlengine.SQLEngine
107+
sqlSystem sql_system.SQLSystem
108+
typCfg typing.Config
109+
analyzerFactoryFactory discovery.StaticAnalyzerFactoryFactory
110+
persistenceSystem sdk_persistence.PersistenceSystem
107111
}
108112

109113
func (dc *staticDRMConfig) GetSQLSystem() sql_system.SQLSystem {
@@ -446,6 +450,7 @@ func (dc *staticDRMConfig) genRelationalTable(
446450
discoveryGenerationID int,
447451
isNilResponseAlloed bool,
448452
) (relationaldto.RelationalTable, error) {
453+
449454
tableName, err := dc.getTableName(tabAnn.GetHeirarchyIdentifiers(), discoveryGenerationID)
450455
if err != nil {
451456
return nil, err
@@ -897,18 +902,21 @@ func (dc *staticDRMConfig) InsertIntoPhysicalTable(
897902
)
898903
}
899904

900-
func GetDRMConfig(
905+
func GenerateDRMConfig(
901906
sqlSystem sql_system.SQLSystem,
907+
persistenceSystem sdk_persistence.PersistenceSystem,
902908
typCfg typing.Config,
903909
namespaceCollection tablenamespace.Collection,
904910
controlAttributes sqlcontrol.ControlAttributes,
905911
) (Config, error) {
906912
rv := &staticDRMConfig{
907-
namespaceCollection: namespaceCollection,
908-
controlAttributes: controlAttributes,
909-
sqlEngine: sqlSystem.GetSQLEngine(),
910-
sqlSystem: sqlSystem,
911-
typCfg: typCfg,
913+
namespaceCollection: namespaceCollection,
914+
controlAttributes: controlAttributes,
915+
sqlEngine: sqlSystem.GetSQLEngine(),
916+
sqlSystem: sqlSystem,
917+
typCfg: typCfg,
918+
analyzerFactoryFactory: discovery.NewStandardStaticAnalyzerFactoryFactory(),
919+
persistenceSystem: persistenceSystem,
912920
}
913921
return rv, nil
914922
}

internal/stackql/execution/mono_valent_execution.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@ import (
1717
"github.com/stackql/any-sdk/pkg/response"
1818
"github.com/stackql/any-sdk/pkg/stream_transform"
1919
"github.com/stackql/any-sdk/pkg/streaming"
20-
"github.com/stackql/any-sdk/public/radix_tree_address_space"
2120
"github.com/stackql/stackql-parser/go/vt/sqlparser"
2221
"github.com/stackql/stackql/internal/stackql/acid/binlog"
2322
"github.com/stackql/stackql/internal/stackql/drm"
@@ -68,7 +67,7 @@ type monoValentExecution struct {
6867
graphHolder primitivegraph.PrimitiveGraphHolder
6968
handlerCtx handler.HandlerContext
7069
tableMeta tablemetadata.ExtendedTableMetadata
71-
addressSpace radix_tree_address_space.AddressSpace
70+
addressSpace anysdk.AddressSpace
7271
drmCfg drm.Config
7372
insertPreparedStatementCtx drm.PreparedStatementCtx
7473
insertionContainer tableinsertioncontainer.TableInsertionContainer

internal/stackql/handler/handler.go

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ import (
1616
"github.com/stackql/any-sdk/pkg/jsonpath"
1717
"github.com/stackql/any-sdk/pkg/netutils"
1818
"github.com/stackql/any-sdk/pkg/nomenclature"
19+
sdk_persistence "github.com/stackql/any-sdk/public/persistence"
1920
"github.com/stackql/any-sdk/public/sqlengine"
2021
"github.com/stackql/stackql/internal/stackql/acid/tsm"
2122
"github.com/stackql/stackql/internal/stackql/acid/txn_context"
@@ -67,6 +68,7 @@ type HandlerContext interface { //nolint:revive // don't mind stuttering this on
6768
GetSQLDataSource(name string) (sql_datasource.SQLDataSource, bool)
6869
GetSQLEngine() sqlengine.SQLEngine
6970
GetSQLSystem() sql_system.SQLSystem
71+
GetPersistenceSystem() sdk_persistence.PersistenceSystem
7072
GetGarbageCollector() garbagecollector.GarbageCollector
7173
GetDrmConfig() drm.Config
7274
SetTxnCounterMgr(txncounter.Manager)
@@ -124,6 +126,7 @@ type standardHandlerContext struct {
124126
lRUCache *lrucache.LRUCache
125127
sqlEngine sqlengine.SQLEngine
126128
sqlSystem sql_system.SQLSystem
129+
persistenceSystem sdk_persistence.PersistenceSystem
127130
garbageCollector garbagecollector.GarbageCollector
128131
drmConfig drm.Config
129132
txnCounterMgr txncounter.Manager
@@ -216,6 +219,9 @@ func (hc *standardHandlerContext) SetOutErrFile(w io.Writer) {
216219
func (hc *standardHandlerContext) GetLRUCache() *lrucache.LRUCache { return hc.lRUCache }
217220
func (hc *standardHandlerContext) GetSQLEngine() sqlengine.SQLEngine { return hc.sqlEngine }
218221
func (hc *standardHandlerContext) GetSQLSystem() sql_system.SQLSystem { return hc.sqlSystem }
222+
func (hc *standardHandlerContext) GetPersistenceSystem() sdk_persistence.PersistenceSystem {
223+
return hc.persistenceSystem
224+
}
219225
func (hc *standardHandlerContext) GetGarbageCollector() garbagecollector.GarbageCollector {
220226
return hc.garbageCollector
221227
}
@@ -322,7 +328,7 @@ func (hc *standardHandlerContext) GetProvider(providerName string) (provider.IPr
322328
prov, ok := hc.providers[providerName]
323329
//nolint:nestif // TODO: review
324330
if !ok {
325-
prov, err = provider.GetProvider(hc.runtimeContext, ds.Name, ds.Tag, hc.registry, hc.sqlSystem)
331+
prov, err = provider.GenerateProvider(hc.runtimeContext, ds.Name, ds.Tag, hc.registry, hc.sqlSystem, hc.persistenceSystem)
326332
if err == nil {
327333
hc.providers[providerName] = prov
328334
// update auth info with provider default if auth not already present
@@ -519,6 +525,7 @@ func (hc *standardHandlerContext) Clone() HandlerContext {
519525
sqlEngine: hc.sqlEngine,
520526
sqlDataSources: hc.sqlDataSources,
521527
sqlSystem: hc.sqlSystem,
528+
persistenceSystem: hc.persistenceSystem,
522529
garbageCollector: hc.garbageCollector,
523530
outErrFile: hc.outErrFile,
524531
outfile: hc.outfile,
@@ -594,6 +601,7 @@ func NewHandlerCtx(
594601
sqlEngine: sqlEngine,
595602
sqlDataSources: inputBundle.GetSQLDataSources(),
596603
sqlSystem: inputBundle.GetSQLSystem(),
604+
persistenceSystem: inputBundle.GetPersistenceSystem(),
597605
garbageCollector: inputBundle.GetGC(),
598606
txnCounterMgr: inputBundle.GetTxnCounterManager(),
599607
txnStore: inputBundle.GetTxnStore(),
@@ -608,9 +616,13 @@ func NewHandlerCtx(
608616
outfile: outWriter,
609617
outErrFile: outErrWriter,
610618
}
611-
drmCfg, err := drm.GetDRMConfig(inputBundle.GetSQLSystem(),
619+
drmCfg, err := drm.GenerateDRMConfig(
620+
inputBundle.GetSQLSystem(),
621+
inputBundle.GetPersistenceSystem(),
612622
inputBundle.GetTypingConfig(),
613-
rv.namespaceCollection, controlAttributes)
623+
rv.namespaceCollection,
624+
controlAttributes,
625+
)
614626
if err != nil {
615627
return nil, err
616628
}

internal/stackql/primitivegenerator/unary_selection.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@ func (pb *standardPrimitiveGenerator) assembleUnarySelectionBuilder(
5353
handlerCtx.GetNamespaceCollection(),
5454
handlerCtx.GetControlAttributes(),
5555
handlerCtx.GetSQLSystem(),
56+
handlerCtx.GetPersistenceSystem(),
5657
handlerCtx.GetTypingConfig(),
5758
)
5859
if err != nil && !methodAnalysisOutput.IsNilResponseAllowed() {

internal/stackql/provider/provider.go

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,11 @@ import (
88
"github.com/stackql/any-sdk/pkg/constants"
99
"github.com/stackql/any-sdk/pkg/dto"
1010
"github.com/stackql/any-sdk/public/discovery"
11+
sdk_persistence "github.com/stackql/any-sdk/public/persistence"
1112
"github.com/stackql/stackql/internal/stackql/docparser"
1213
"github.com/stackql/stackql/internal/stackql/internal_data_transfer/internaldto"
1314
"github.com/stackql/stackql/internal/stackql/methodselect"
1415
"github.com/stackql/stackql/internal/stackql/parserutil"
15-
"github.com/stackql/stackql/internal/stackql/persistence"
1616
"github.com/stackql/stackql/internal/stackql/sql_system"
1717

1818
sdk_internal_dto "github.com/stackql/any-sdk/pkg/internaldto"
@@ -106,16 +106,17 @@ type IProvider interface {
106106
ShowAuth(authCtx *dto.AuthCtx) (*anysdk.AuthMetadata, error)
107107
}
108108

109-
func GetProvider(
109+
func GenerateProvider(
110110
runtimeCtx dto.RuntimeCtx,
111111
providerStr,
112112
providerVersion string,
113113
reg anysdk.RegistryAPI,
114114
sqlSystem sql_system.SQLSystem,
115+
persistenceSystem sdk_persistence.PersistenceSystem,
115116
) (IProvider, error) {
116117
switch providerStr { //nolint:gocritic // TODO: review
117118
default:
118-
return newGenericProvider(runtimeCtx, providerStr, providerVersion, reg, sqlSystem)
119+
return newGenericProvider(runtimeCtx, providerStr, providerVersion, reg, sqlSystem, persistenceSystem)
119120
}
120121
}
121122

@@ -134,6 +135,7 @@ func newGenericProvider(
134135
versionStr string,
135136
reg anysdk.RegistryAPI,
136137
sqlSystem sql_system.SQLSystem,
138+
persistenceSystem sdk_persistence.PersistenceSystem,
137139
) (IProvider, error) {
138140
methSel, err := methodselect.NewMethodSelector(providerStr, versionStr)
139141
if err != nil {
@@ -145,19 +147,17 @@ func newGenericProvider(
145147
return nil, err
146148
}
147149

148-
persistor := persistence.NewSQLPersistenceSystem(sqlSystem)
149-
150150
da := discovery.NewBasicDiscoveryAdapter(
151151
providerStr,
152152
rootURL,
153153
discovery.NewTTLDiscoveryStore(
154-
persistor,
154+
persistenceSystem,
155155
reg,
156156
rtCtx,
157157
),
158158
&rtCtx,
159159
reg,
160-
persistor,
160+
persistenceSystem,
161161
)
162162

163163
p, err := da.GetProvider(rtCtx.ProviderStr)

0 commit comments

Comments
 (0)