Skip to content

Commit 4c2135b

Browse files
committed
fixes to PROTECT and other errors
1 parent 7ab34a7 commit 4c2135b

File tree

2 files changed

+18
-33
lines changed

2 files changed

+18
-33
lines changed

cls/SourceControl/Git/Change.cls

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -195,10 +195,14 @@ ClassMethod InstanceUncommittedExecute(ByRef qHandle As %Binary) As %Status
195195
set namespaces = ##class(SourceControl.Git.Utils).GetGitEnabledNamespaces()
196196
set tPtr = 0
197197
set qHandle("i") = 1
198+
new $namespace
198199
while $LISTNEXT(namespaces, tPtr, tValue) {
199200
set namespace = $ZCONVERT(tValue, "U")
200201
set $NAMESPACE = namespace
201-
set resultSet = ##class(%SQL.Statement).%ExecDirect(, qHandle("q"))
202+
set statement = ##class(%SQL.Statement).%New()
203+
$$$ThrowOnError(statement.%Prepare(qHandle("q"), 0))
204+
set resultSet = statement.%Execute()
205+
throw:resultSet.%SQLCODE<0 ##class(%Exception.SQL).CreateFromSQLCODE(resultSet.%SQLCODE,resultSet.%Message)
202206
while resultSet.%Next() {
203207
set qHandle("changes", $increment(qHandle("changes")), "InternalName") = resultSet.%GetData(1)
204208
set qHandle("changes", qHandle("changes"), "User") = resultSet.%GetData(2)
@@ -211,20 +215,17 @@ ClassMethod InstanceUncommittedExecute(ByRef qHandle As %Binary) As %Status
211215
ClassMethod InstanceUncommittedFetch(ByRef qHandle As %Binary, ByRef Row As %List, ByRef AtEnd As %Integer = 0) As %Status [ PlaceAfter = InstanceUncommittedExecute ]
212216
{
213217
set i = qHandle("i")
214-
set Row = $listbuild(qHandle("changes", i, "InternalName"), qHandle("changes", i, "User"))
215-
if i = qHandle("changes") {
218+
if $data(qHandle("changes",i))=10 {
219+
set Row = $listbuild(qHandle("changes", i, "InternalName"), qHandle("changes", i, "User"))
220+
}
221+
if i >= $get(qHandle("changes"),0) {
216222
set AtEnd = 1
217223
} else {
218224
set qHandle("i") = $increment(qHandle("i"))
219225
}
220226
Quit $$$OK
221227
}
222228

223-
ClassMethod InstanceUncommittedClose(ByRef qHandle As %Binary) As %Status [ PlaceAfter = InstanceUncommittedFetch ]
224-
{
225-
Quit $$$OK
226-
}
227-
228229
Storage Default
229230
{
230231
<Data name="ChangeDefaultData">
@@ -277,3 +278,4 @@ Storage Default
277278
}
278279

279280
}
281+

cls/SourceControl/Git/Utils.cls

Lines changed: 8 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -2425,35 +2425,16 @@ ClassMethod GetGitEnabledNamespaces() As %String
24252425
do ##class(%SYS.Namespace).ListAll(.allNamespaces)
24262426

24272427
set enabledNamespaces = ""
2428-
2429-
// Write query for verifying git sourcecontrol in namespace
2430-
set gitscQuery = 9
2431-
set gitscQuery(1) = "SELECT CASE"
2432-
set gitscQuery(2) = "WHEN EXISTS ("
2433-
set gitscQuery(3) = "SELECT TABLE_SCHEMA"
2434-
set gitscQuery(4) = "FROM INFORMATION_SCHEMA.TABLES"
2435-
set gitscQuery(5) = "WHERE TABLE_TYPE = 'BASE TABLE'"
2436-
set gitscQuery(6) = "AND TABLE_SCHEMA = 'SourceControl_Git'"
2437-
set gitscQuery(7) = ") THEN 1"
2438-
set gitscQuery(8) = "ELSE 0"
2439-
set gitscQuery(9) = "END AS SchemaExists;"
2440-
2441-
24422428
set namespace = ""
2443-
new $NAMESPACE
24442429
for {
24452430
set namespace = $ORDER(allNamespaces(namespace))
24462431
quit:namespace=""
2447-
set $NAMESPACE = namespace
2448-
set statement = ##class(%SQL.Statement).%New()
2449-
set status = statement.%Prepare(.gitscQuery)
2450-
set result = statement.%Execute()
2451-
do result.%Next()
2452-
set gitEnabled = result.%GetData(1)
2453-
if (gitEnabled) set enabledNamespaces = enabledNamespaces _ $listbuild(namespace)
2454-
2455-
2456-
2432+
try {
2433+
set sourceControlClass = ##class(%Studio.SourceControl.Interface).SourceControlClassGet(namespace)
2434+
} catch err {
2435+
set sourceControlClass = "" // user does not have access to this namespace
2436+
}
2437+
if (sourceControlClass = "SourceControl.Git.Extension") set enabledNamespaces = enabledNamespaces _ $listbuild(namespace)
24572438
}
24582439

24592440
quit enabledNamespaces
@@ -2463,6 +2444,7 @@ ClassMethod FileIsUncommitted(InternalName As %String, Output User) As %Boolean
24632444
{
24642445
set isUncommitted = 0
24652446
set resultSet = ##class(SourceControl.Git.Change).InstanceUncommittedFunc()
2447+
throw:resultSet.%SQLCODE<0 ##class(%Exception.SQL).CreateFromSQLCODE(resultSet.%SQLCODE,resultSet.%Message)
24662448
while resultSet.%Next() {
24672449
set fileName = resultSet.InternalName
24682450
if InternalName = fileName {
@@ -2628,3 +2610,4 @@ ClassMethod BaselineExport(pCommitMessage = "", pPushToRemote = "") As %Status
26282610
}
26292611

26302612
}
2613+

0 commit comments

Comments
 (0)