Skip to content

Commit b401960

Browse files
committed
commit progress
1 parent d49f01d commit b401960

File tree

1 file changed

+62
-2
lines changed

1 file changed

+62
-2
lines changed

cls/SourceControl/Git/Utils.cls

Lines changed: 62 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -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+
24212464
Query InstanceUncommitted() As %Query()
24222465
{
24232466
}
24242467

24252468
ClassMethod 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

24292479
ClassMethod 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

24332493
ClassMethod InstanceUncommittedClose(ByRef qHandle As %Binary) As %Status [PlaceAfter = InstanceUncommittedFetch] {

0 commit comments

Comments
 (0)