@@ -2418,16 +2418,76 @@ ClassMethod UncommittedWithAction() As %Library.DynamicObject
24182418 quit fileToOtherDevelopers
24192419}
24202420
2421+ /// Retrieve the list of Namespaces that have git enabled
2422+ ClassMethod GetGitEnabledNamespaces () As %String
2423+ {
2424+ // Get all namespaces
2425+ set allNamespaces = " "
2426+ do ##class (%SYS.Namespace ).GetList (.allNamespaces )
2427+
2428+ set enabledNamespaces = " "
2429+
2430+ // Write query for verifying git sourcecontrol in namespace
2431+ set gitscQuery = 9
2432+ set gitscQuery (1 ) = " SELECT CASE"
2433+ set gitscQuery (2 ) = " WHEN EXISTS ("
2434+ set gitscQuery (3 ) = " SELECT TABLE_SCHEMA"
2435+ set gitscQuery (4 ) = " FROM INFORMATION_SCHEMA.TABLES"
2436+ set gitscQuery (5 ) = " WHERE TABLE_TYPE = 'BASE TABLE'"
2437+ set gitscQuery (6 ) = " AND TABLE_SCHEMA = 'SourceControl_Git'"
2438+ set gitscQuery (7 ) = " ) THEN 1"
2439+ set gitscQuery (8 ) = " ELSE 0"
2440+ set gitscQuery (9 ) = " END AS SchemaExists;"
2441+
2442+
2443+ set namespace = " "
2444+ new $NAMESPACE
2445+ for {
2446+ set namespace = $ORDER (allNamespaces (namespace ))
2447+ quit :namespace =" "
2448+ set $NAMESPACE = namespace
2449+ set statement = ##class (%SQL.Statement ).%New ()
2450+ set status = statement .%Prepare (.gitscQuery )
2451+ set result = statement .%Execute ()
2452+ do result .%Next ()
2453+ set gitEnabled = result .%GetData (1 )
2454+ if (gitEnabled ) set enabledNamespaces = enabledNamespaces _ $listbuild (namespace )
2455+
2456+
2457+
2458+ }
2459+
2460+ quit enabledNamespaces
2461+ }
2462+
2463+
24212464Query InstanceUncommitted () As %Query ()
24222465{
24232466}
24242467
24252468ClassMethod InstanceUncommittedExecute (ByRef qHandle As %Binary ) As %Status {
2426-
2469+ set qHandle (" q" ) = " SELECT InternalName FROM SourceControl_Git.Change"
2470+ set namespaces = ..GetGitEnabledNamespaces ()
2471+ set tPtr = 0
2472+ while $LISTNEXT (namespaces , tPtr , tValue ) {
2473+ set qHandle (" n" , $increment (qHandle (" n" ))) = $ZCONVERT (tValue , " U" )
2474+ }
2475+
2476+ Quit $$$OK
24272477}
24282478
24292479ClassMethod InstanceUncommittedFetch (ByRef qHandle As %Binary , ByRef Row As %List , ByRef AtEnd As %Integer = 0 ) As %Status [PlaceAfter = InstanceUncommittedExecute ]{
2430-
2480+ #dim tResult as %SQL.StatementResult
2481+ New $Namespace
2482+ set tSC = $$$OK
2483+ try {
2484+ set namespace = " "
2485+ for {
2486+ set namespace = $ORDER (
2487+ }
2488+ } catch e {
2489+ set tSC = e .AsStatus ()
2490+ }
24312491}
24322492
24332493ClassMethod InstanceUncommittedClose (ByRef qHandle As %Binary ) As %Status [PlaceAfter = InstanceUncommittedFetch ] {
0 commit comments