For high speed access to internal information about views and view columns, DQL processing uses design data extracted from view notes. Currently this information will be stored in a new database, named GQFdsgn.cat.
It is created using new updall flags. It does not replicate and is solely used as a fast-path tool to access design data at runtime.
Here is some LotusScript code to add / update the design of a named Notes application to the catalog. The NSFDesignHarvest call is currently undocumented. Use it at your own risk.
'DECLARATIONS
Public Const UPDATE_DESIGN_CATALOG = 0
Public Const ADD_TO_DESIGN_CATALOG = 1
Const NNOTES ="nnotes.dll"
Const LIBNOTES ="libnotes.so"
Declare Public Function WIN_NSFDbOpen Lib NNOTES Alias "NSFDbOpen" _
(ByVal dbName As String, hDb As Long) As Integer
Declare Public Function LIN_NSFDbOpen Lib LIBNOTES Alias "NSFDbOpen" _
(ByVal dbName As String, hDb As Long) As Integer
Declare Public Function WIN_NSFDbClose Lib NNOTES Alias "NSFDbClose" _
(ByVal hDb As Long) As Integer
Declare Public Function LIN_NSFDbClose Lib LIBNOTES Alias "NSFDbClose" _
(ByVal hDb As Long) As Integer
Declare Public Function WIN_NSFDesignHarvest Lib NNOTES Alias "NSFDesignHarvest" _
(ByVal hDb As Long, ByVal flag As Long) As Integer
Declare Public Function LIN_NSFDesignHarvest Lib LIBNOTES Alias "NSFDesignHarvest" _
(ByVal hDb As Long, ByVal flag As Long) As Integer
' API FUNCTIONS
Private Function NSFDbOpen( db As String, hDB As Long) As Integer
If isDefined("WINDOWS") Then
NSFDbOpen = WIN_NSFDbOpen(db,hDb)
ElseIf isDefined("LINUX") Then
NSFDbOpen = LIN_NSFDbOpen(db,hDb)
End If
End Function
Private Function NSFDbClose (hDb As Long)
If isDefined("WINDOWS") Then
NSFDbClose = WIN_NSFDbClose(hDb)
ElseIf isDefined("LINUX") Then
NSFDbClose = LIN_NSFDbClose(hDb)
End If
End Function
Private Function NSFDesignHarvest (hDb As Long, flag As long) As Integer
If isDefined("WINDOWS") Then
NSFDesignHarvest = WIN_NSFDesignHarvest(hDb, flag)
ElseIf isDefined("LINUX") Then
NSFDesignHarvest = LIN_NSFDesignHarvest(hDb, flag)
End If
End Function
Public Function catalogDesign(sDb As String, flag As Long) As Integer
Dim hDb As Long
Dim rc As Integer
If flag > 1 Then flag = 1
If flag < 0 Then flag = 0
rc = NSFDbOpen(sDb, hDb)
If rc = 0 Then
rc = NSFDesignHarvest(hDb, flag)
rc = NSFDbClose(hDb)
End If
catalogDesign = rc
End Function