--- pgadmin2/frmOperator.frm.orig Mon Jun 16 21:24:41 2003 +++ pgadmin2/frmOperator.frm Thu Sep 11 22:32:59 2003 @@ -65,9 +65,9 @@ End Begin TabDlg.SSTab tabProperties Height = 6360 - Left = 45 + Left = 120 TabIndex = 0 - Top = 45 + Top = 120 Width = 5460 _ExtentX = 9631 _ExtentY = 11218 @@ -116,20 +116,36 @@ TabCaption(1) = "P&roperties 2" TabPicture(1) = "frmOperator.frx":1E7E Tab(1).ControlEnabled= 0 'False - Tab(1).Control(0)= "chkProperties(0)" - Tab(1).Control(1)= "cboProperties(4)" - Tab(1).Control(2)= "cboProperties(5)" - Tab(1).Control(3)= "cboProperties(6)" - Tab(1).Control(4)= "cboProperties(7)" - Tab(1).Control(5)= "cboProperties(8)" - Tab(1).Control(6)= "cboProperties(9)" - Tab(1).Control(7)= "lblProperties(13)" - Tab(1).Control(8)= "lblProperties(12)" - Tab(1).Control(9)= "lblProperties(11)" - Tab(1).Control(10)= "lblProperties(10)" - Tab(1).Control(11)= "lblProperties(9)" - Tab(1).Control(12)= "lblProperties(8)" - Tab(1).ControlCount= 13 + Tab(1).Control(0)= "chkProperties(1)" + Tab(1).Control(1)= "chkProperties(0)" + Tab(1).Control(2)= "cboProperties(4)" + Tab(1).Control(3)= "cboProperties(5)" + Tab(1).Control(4)= "cboProperties(6)" + Tab(1).Control(5)= "cboProperties(7)" + Tab(1).Control(6)= "cboProperties(8)" + Tab(1).Control(7)= "cboProperties(9)" + Tab(1).Control(8)= "cboProperties(10)" + Tab(1).Control(9)= "cboProperties(11)" + Tab(1).Control(10)= "lblProperties(15)" + Tab(1).Control(11)= "lblProperties(14)" + Tab(1).Control(12)= "lblProperties(13)" + Tab(1).Control(13)= "lblProperties(12)" + Tab(1).Control(14)= "lblProperties(11)" + Tab(1).Control(15)= "lblProperties(10)" + Tab(1).Control(16)= "lblProperties(9)" + Tab(1).Control(17)= "lblProperties(8)" + Tab(1).ControlCount= 18 + Begin VB.CheckBox chkProperties + Alignment = 1 'Right Justify + Caption = "Merges?" + Height = 195 + Index = 1 + Left = -74880 + TabIndex = 37 + ToolTipText = "Indicates this operator can support a hash join." + Top = 2640 + Width = 1995 + End Begin VB.CheckBox chkProperties Alignment = 1 'Right Justify Caption = "Hashes?" @@ -207,7 +223,7 @@ Caption = "Comments" End Begin MSComctlLib.ImageCombo cboProperties - Height = 330 + Height = 315 Index = 0 Left = 1935 TabIndex = 4 @@ -215,7 +231,7 @@ Top = 1845 Width = 3390 _ExtentX = 5980 - _ExtentY = 582 + _ExtentY = 556 _Version = 393216 ForeColor = -2147483640 BackColor = -2147483633 @@ -223,7 +239,7 @@ ImageList = "il" End Begin MSComctlLib.ImageCombo cboProperties - Height = 330 + Height = 315 Index = 1 Left = 1935 TabIndex = 5 @@ -231,7 +247,7 @@ Top = 2250 Width = 3390 _ExtentX = 5980 - _ExtentY = 582 + _ExtentY = 556 _Version = 393216 ForeColor = -2147483640 BackColor = -2147483633 @@ -239,7 +255,7 @@ ImageList = "il" End Begin MSComctlLib.ImageCombo cboProperties - Height = 330 + Height = 315 Index = 4 Left = -73065 TabIndex = 12 @@ -247,7 +263,7 @@ Top = 630 Width = 3390 _ExtentX = 5980 - _ExtentY = 582 + _ExtentY = 556 _Version = 393216 ForeColor = -2147483640 BackColor = -2147483633 @@ -255,7 +271,7 @@ ImageList = "il" End Begin MSComctlLib.ImageCombo cboProperties - Height = 330 + Height = 315 Index = 5 Left = -73065 TabIndex = 13 @@ -263,7 +279,7 @@ Top = 1035 Width = 3390 _ExtentX = 5980 - _ExtentY = 582 + _ExtentY = 556 _Version = 393216 ForeColor = -2147483640 BackColor = -2147483633 @@ -271,7 +287,7 @@ ImageList = "il" End Begin MSComctlLib.ImageCombo cboProperties - Height = 330 + Height = 315 Index = 6 Left = -73065 TabIndex = 14 @@ -279,7 +295,7 @@ Top = 1440 Width = 3390 _ExtentX = 5980 - _ExtentY = 582 + _ExtentY = 556 _Version = 393216 ForeColor = -2147483640 BackColor = -2147483633 @@ -287,7 +303,7 @@ ImageList = "il" End Begin MSComctlLib.ImageCombo cboProperties - Height = 330 + Height = 315 Index = 7 Left = -73065 TabIndex = 15 @@ -295,7 +311,7 @@ Top = 1845 Width = 3390 _ExtentX = 5980 - _ExtentY = 582 + _ExtentY = 556 _Version = 393216 ForeColor = -2147483640 BackColor = -2147483633 @@ -303,15 +319,15 @@ ImageList = "il" End Begin MSComctlLib.ImageCombo cboProperties - Height = 330 + Height = 315 Index = 8 Left = -73065 TabIndex = 17 ToolTipText = "If this operator can support a merge join, the operator that sorts the left-hand data type of this operator. " - Top = 2655 + Top = 3000 Width = 3390 _ExtentX = 5980 - _ExtentY = 582 + _ExtentY = 556 _Version = 393216 ForeColor = -2147483640 BackColor = -2147483633 @@ -319,15 +335,15 @@ ImageList = "il" End Begin MSComctlLib.ImageCombo cboProperties - Height = 330 + Height = 315 Index = 9 Left = -73065 TabIndex = 18 ToolTipText = "If this operator can support a merge join, the operator that sorts the right-hand data type of this operator." - Top = 3060 + Top = 3360 Width = 3390 _ExtentX = 5980 - _ExtentY = 582 + _ExtentY = 556 _Version = 393216 ForeColor = -2147483640 BackColor = -2147483633 @@ -335,7 +351,7 @@ ImageList = "il" End Begin MSComctlLib.ImageCombo cboProperties - Height = 330 + Height = 315 Index = 3 Left = 1935 TabIndex = 8 @@ -343,7 +359,7 @@ Top = 3465 Width = 3390 _ExtentX = 5980 - _ExtentY = 582 + _ExtentY = 556 _Version = 393216 ForeColor = -2147483640 BackColor = -2147483633 @@ -351,7 +367,7 @@ ImageList = "il" End Begin MSComctlLib.ImageCombo cboProperties - Height = 330 + Height = 315 Index = 2 Left = 1935 TabIndex = 6 @@ -359,13 +375,65 @@ Top = 2655 Width = 3390 _ExtentX = 5980 - _ExtentY = 582 + _ExtentY = 556 + _Version = 393216 + ForeColor = -2147483640 + BackColor = -2147483633 + Locked = -1 'True + ImageList = "il" + End + Begin MSComctlLib.ImageCombo cboProperties + Height = 315 + Index = 10 + Left = -73080 + TabIndex = 35 + ToolTipText = "If this operator can support a merge join, the operator that sorts the right-hand data type of this operator." + Top = 3840 + Width = 3390 + _ExtentX = 5980 + _ExtentY = 556 _Version = 393216 ForeColor = -2147483640 BackColor = -2147483633 Locked = -1 'True ImageList = "il" End + Begin MSComctlLib.ImageCombo cboProperties + Height = 315 + Index = 11 + Left = -73080 + TabIndex = 36 + ToolTipText = "If this operator can support a merge join, the operator that sorts the right-hand data type of this operator." + Top = 4200 + Width = 3390 + _ExtentX = 5980 + _ExtentY = 556 + _Version = 393216 + ForeColor = -2147483640 + BackColor = -2147483633 + Locked = -1 'True + ImageList = "il" + End + Begin VB.Label lblProperties + AutoSize = -1 'True + Caption = "Greater Than operator" + Height = 180 + Index = 15 + Left = -74880 + TabIndex = 34 + Top = 4320 + Width = 1695 + End + Begin VB.Label lblProperties + AutoSize = -1 'True + Caption = "Less Than operator" + Height = 180 + Index = 14 + Left = -74880 + TabIndex = 33 + Top = 3960 + Width = 1485 + End Begin VB.Label lblProperties AutoSize = -1 'True Caption = "Operator function" @@ -381,20 +449,20 @@ Caption = "Right sort operator" Height = 195 Index = 13 - Left = -74865 + Left = -74880 TabIndex = 31 - Top = 3150 - Width = 1305 + Top = 3480 + Width = 1545 End Begin VB.Label lblProperties AutoSize = -1 'True Caption = "Left sort operator" Height = 195 Index = 12 - Left = -74865 + Left = -74880 TabIndex = 30 - Top = 2745 - Width = 1200 + Top = 3120 + Width = 1440 End Begin VB.Label lblProperties AutoSize = -1 'True @@ -550,6 +618,9 @@ Dim szJoin As String Dim szLeftSort As String Dim szRightSort As String +' +Dim szLessThan As String +Dim szGreaterThan As String 'Check the data If txtProperties(0).Text = "" Then @@ -580,6 +651,8 @@ If Not (cboProperties(7).SelectedItem Is Nothing) Then szJoin = cboProperties(7).SelectedItem.Text If Not (cboProperties(8).SelectedItem Is Nothing) Then szLeftSort = cboProperties(8).SelectedItem.Text If Not (cboProperties(9).SelectedItem Is Nothing) Then szRightSort = cboProperties(9).SelectedItem.Text + If Not (cboProperties(10).SelectedItem Is Nothing) Then szLessThan = cboProperties(10).SelectedItem.Text + If Not (cboProperties(11).SelectedItem Is Nothing) Then szGreaterThan = cboProperties(11).SelectedItem.Text Set objNewOperator = frmMain.svr.Databases(szDatabase).Namespaces(szNamespace).Operators.Add(txtProperties(0).Text, szFunction, cboProperties(0).Text, cboProperties(1).Text, szCommutator, szNegator, szRestrict, szJoin, Bin2Bool(chkProperties(0).Value), szLeftSort, szRightSort, hbxProperties(0).Text) 'Add a new node and update the text on the parent @@ -646,6 +719,8 @@ cboProperties(5).ComboItems.Add , , objTempOperator.Name, "operator" cboProperties(8).ComboItems.Add , , objTempOperator.Name, "operator" cboProperties(9).ComboItems.Add , , objTempOperator.Name, "operator" + cboProperties(10).ComboItems.Add , , objTempOperator.Name, "operator" + cboProperties(11).ComboItems.Add , , objTempOperator.Name, "operator" Next objTempOperator 'Now load the rest For Each objNamespace In frmMain.svr.Databases(szDatabase).Namespaces @@ -663,6 +738,8 @@ cboProperties(5).ComboItems.Add , , objTempOperator.FormattedID, "operator" cboProperties(8).ComboItems.Add , , objTempOperator.FormattedID, "operator" cboProperties(9).ComboItems.Add , , objTempOperator.FormattedID, "operator" + cboProperties(10).ComboItems.Add , , objTempOperator.FormattedID, "operator" + cboProperties(11).ComboItems.Add , , objTempOperator.FormattedID, "operator" Next objTempOperator End If Next objNamespace @@ -680,6 +757,8 @@ cboProperties(5).ComboItems.Add , , objTempOperator.Name, "operator" cboProperties(8).ComboItems.Add , , objTempOperator.Name, "operator" cboProperties(9).ComboItems.Add , , objTempOperator.Name, "operator" + cboProperties(10).ComboItems.Add , , objTempOperator.Name, "operator" + cboProperties(11).ComboItems.Add , , objTempOperator.Name, "operator" Next objTempOperator End If @@ -689,7 +768,7 @@ For X = 0 To 2 cboProperties(X).BackColor = &H80000005 Next X - For X = 4 To 9 + For X = 4 To 11 cboProperties(X).BackColor = &H80000005 Next X @@ -724,8 +803,13 @@ objItem.Selected = True Set objItem = cboProperties(9).ComboItems.Add(, , objOperator.RightTypeSortOperator, "function") objItem.Selected = True + Set objItem = cboProperties(10).ComboItems.Add(, , objOperator.LessThanOperator, "function") + objItem.Selected = True + Set objItem = cboProperties(11).ComboItems.Add(, , objOperator.GreaterThanOperator, "function") + objItem.Selected = True chkProperties(0).Value = Bool2Bin(objOperator.HashJoins) + chkProperties(1).Value = Bool2Bin(objOperator.MergeJoins) hbxProperties(0).Text = objOperator.Comment End If @@ -752,6 +836,7 @@ If Not (objOperator Is Nothing) Then chkProperties(0).Value = Bool2Bin(objOperator.HashJoins) + chkProperties(1).Value = Bool2Bin(objOperator.MergeJoins) End If Exit Sub --- pgadmin2/frmMain.frm.orig Thu Sep 11 21:41:04 2003 +++ pgadmin2/frmMain.frm Thu Sep 11 21:49:58 2003 @@ -3386,16 +3386,30 @@ lvItem.SubItems(1) = ctx.CurrentObject.Negator Set lvItem = lv.ListItems.Add(, "PRO-" & GetID, "Kind", "property", "property") lvItem.SubItems(1) = ctx.CurrentObject.Kind - Set lvItem = lv.ListItems.Add(, "PRO-" & GetID, "Left Sort Operator", "property", "property") - lvItem.SubItems(1) = ctx.CurrentObject.LeftTypeSortOperator - Set lvItem = lv.ListItems.Add(, "PRO-" & GetID, "Right Sort Operator", "property", "property") - lvItem.SubItems(1) = ctx.CurrentObject.RightTypeSortOperator + ' Set lvItem = lv.ListItems.Add(, "PRO-" & GetID, "Hash Joins?", "property", "property") If ctx.CurrentObject.HashJoins Then lvItem.SubItems(1) = "Yes" Else lvItem.SubItems(1) = "No" End If + ' + Set lvItem = lv.ListItems.Add(, "PRO-" & GetID, "Merge Joins?", "property", "property") + If ctx.CurrentObject.MergeJoins Then + lvItem.SubItems(1) = "Yes" + Else + lvItem.SubItems(1) = "No" + End If + ' + Set lvItem = lv.ListItems.Add(, "PRO-" & GetID, "Left Sort Operator", "property", "property") + lvItem.SubItems(1) = ctx.CurrentObject.LeftTypeSortOperator + Set lvItem = lv.ListItems.Add(, "PRO-" & GetID, "Right Sort Operator", "property", "property") + lvItem.SubItems(1) = ctx.CurrentObject.RightTypeSortOperator + Set lvItem = lv.ListItems.Add(, "PRO-" & GetID, "Less Than Operator", "property", "property") + lvItem.SubItems(1) = ctx.CurrentObject.LessThanOperator + Set lvItem = lv.ListItems.Add(, "PRO-" & GetID, "Greater Than Operator", "property", "property") + lvItem.SubItems(1) = ctx.CurrentObject.GreaterThanOperator + ' Set lvItem = lv.ListItems.Add(, "PRO-" & GetID, "System Operator?", "property", "property") If ctx.CurrentObject.SystemObject Then lvItem.SubItems(1) = "Yes" --- pgschema/Operators.cls.orig Thu Sep 11 20:21:31 2003 +++ pgschema/Operators.cls Thu Sep 11 20:23:06 2003 @@ -146,9 +146,9 @@ End Property 'Internal Add -Private Function iAdd(dOID As Double, szName As String, szOwner As String, szKind As String, bHashJoins As Boolean, dLeftOperandType As Double, dRightOperandType As Double, dResultType As Double, dCommutator As Double, dNegator As Double, dLeftTypeSortOperator As Double, dRightTypeSortOperator As Double, szOperatorFunction As String, szRestrictFunction As String, szJoinFunction As String) As pgOperator +Private Function iAdd(dOID As Double, szName As String, szOwner As String, szKind As String, bHashJoins As Boolean, dLeftOperandType As Double, dRightOperandType As Double, dResultType As Double, dCommutator As Double, dNegator As Double, dLeftTypeSortOperator As Double, dRightTypeSortOperator As Double, szOperatorFunction As String, szRestrictFunction As String, szJoinFunction As String, bMergeJoins As Boolean, dLessThanOperator As Double, dGreaterThanOperator As Double) As pgOperator If inIDE Then: On Error GoTo 0: Else: On Error GoTo Err_Handler -objServer.iLogEvent "Entering " & App.Title & ":Operators.iAdd(" & dOID & ", " & QUOTE & szName & QUOTE & ", " & QUOTE & szOwner & QUOTE & ", " & QUOTE & szKind & QUOTE & ", " & bHashJoins & ", " & dLeftOperandType & ", " & dRightOperandType & ", " & dResultType & ", " & dCommutator & ", " & dNegator & ", " & dLeftTypeSortOperator & ", " & dRightTypeSortOperator & ", " & QUOTE & szOperatorFunction & QUOTE & ", " & QUOTE & szRestrictFunction & QUOTE & ", " & QUOTE & szJoinFunction & QUOTE & ")", etFullDebug +objServer.iLogEvent "Entering " & App.Title & ":Operators.iAdd(" & dOID & ", " & QUOTE & szName & QUOTE & ", " & QUOTE & szOwner & QUOTE & ", " & QUOTE & szKind & QUOTE & ", " & bHashJoins & ", " & dLeftOperandType & ", " & dRightOperandType & ", " & dResultType & ", " & dCommutator & ", " & dNegator & ", " & dLeftTypeSortOperator & ", " & dRightTypeSortOperator & ", " & QUOTE & szOperatorFunction & QUOTE & ", " & QUOTE & szRestrictFunction & QUOTE & ", " & QUOTE & szJoinFunction & QUOTE & ", " & QUOTE & bMergeJoins & QUOTE & ", " & QUOTE & dLessThanOperator & QUOTE & ", " & QUOTE & dGreaterThanOperator & QUOTE & ")", etFullDebug Dim objNewMember As pgOperator Dim rs As New Recordset @@ -182,6 +182,7 @@ End Select objNewMember.HashJoins = bHashJoins + szLOT = objServer.Databases(Database).LookupType(dLeftOperandType) If szLOT = "opaque" Then szLOT = "NONE" objNewMember.LeftOperandType = szLOT @@ -193,12 +194,22 @@ objNewMember.ResultType = szTemp objNewMember.Commutator = objServer.Databases(Database).LookupOperator(dCommutator) objNewMember.Negator = objServer.Databases(Database).LookupOperator(dNegator) + szTemp = objServer.Databases(Database).LookupOperator(dLeftTypeSortOperator) If szTemp = "opaque" Then szTemp = "NONE" objNewMember.LeftTypeSortOperator = szTemp szTemp = objServer.Databases(Database).LookupOperator(dRightTypeSortOperator) If szTemp = "opaque" Then szTemp = "NONE" objNewMember.RightTypeSortOperator = szTemp + + objNewMember.MergeJoins = bMergeJoins + szTemp = objServer.Databases(Database).LookupOperator(dLessThanOperator) + If szTemp = "opaque" Then szTemp = "NONE" + objNewMember.LessThanOperator = szTemp + szTemp = objServer.Databases(Database).LookupOperator(dGreaterThanOperator) + If szTemp = "opaque" Then szTemp = "NONE" + objNewMember.GreaterThanOperator = szTemp + objNewMember.OperatorFunction = szOperatorFunction If szRestrictFunction = "-" Then szRestrictFunction = "" If szJoinFunction = "-" Then szJoinFunction = "" @@ -219,10 +230,10 @@ End Function 'External Add -Public Function Add(ByVal Name As String, ByVal OperatorFunction As String, Optional ByVal LeftOperandType As String, Optional ByVal RightOperandType As String, Optional ByVal Commutator As String, Optional ByVal Negator As String, Optional ByVal RestrictFunction As String, Optional ByVal JoinFunction As String, Optional ByVal Hashes As Boolean, Optional ByVal LeftTypeSortOperator As String, Optional ByVal RightTypeSortOperator As String, Optional ByVal Comment As String) As pgOperator +Public Function Add(ByVal Name As String, ByVal OperatorFunction As String, Optional ByVal LeftOperandType As String, Optional ByVal RightOperandType As String, Optional ByVal Commutator As String, Optional ByVal Negator As String, Optional ByVal RestrictFunction As String, Optional ByVal JoinFunction As String, Optional ByVal Hashes As Boolean, Optional ByVal LeftTypeSortOperator As String, Optional ByVal RightTypeSortOperator As String, Optional ByVal Comment As String, Optional ByVal Merges As Boolean, Optional ByVal LessThanOperator As String, Optional ByVal GraterThanOperator As String) As pgOperator Attribute Add.VB_Description = "Add a new Operator." If inIDE Then: On Error GoTo 0: Else: On Error GoTo Err_Handler -objServer.iLogEvent "Entering " & App.Title & ":Operators.Add(" & QUOTE & Name & QUOTE & ", " & QUOTE & OperatorFunction & QUOTE & ", " & QUOTE & LeftOperandType & QUOTE & ", " & QUOTE & RightOperandType & QUOTE & ", " & QUOTE & Commutator & QUOTE & ", " & QUOTE & Negator & QUOTE & ", " & QUOTE & RestrictFunction & QUOTE & ", " & QUOTE & JoinFunction & QUOTE & ", " & Hashes & ", " & QUOTE & LeftTypeSortOperator & QUOTE & ", " & QUOTE & RightTypeSortOperator & QUOTE & ", " & QUOTE & Comment & QUOTE & ")", etFullDebug +objServer.iLogEvent "Entering " & App.Title & ":Operators.Add(" & QUOTE & Name & QUOTE & ", " & QUOTE & OperatorFunction & QUOTE & ", " & QUOTE & LeftOperandType & QUOTE & ", " & QUOTE & RightOperandType & QUOTE & ", " & QUOTE & Commutator & QUOTE & ", " & QUOTE & Negator & QUOTE & ", " & QUOTE & RestrictFunction & QUOTE & ", " & QUOTE & JoinFunction & QUOTE & ", " & Hashes & ", " & QUOTE & Merges & QUOTE & ", " & QUOTE & LeftTypeSortOperator & QUOTE & ", " & QUOTE & RightTypeSortOperator & QUOTE & ", " & QUOTE & LessThanOperator & QUOTE & ", " & QUOTE & GraterThanOperator & QUOTE & ", " & QUOTE & Comment & QUOTE & ")", etFullDebug Dim rs As New Recordset Dim szSQL As String @@ -246,8 +257,11 @@ If RestrictFunction <> "" Then szSQL = szSQL & ", RESTRICT = " & RestrictFunction If JoinFunction <> "" Then szSQL = szSQL & ", JOIN = " & JoinFunction If Hashes Then szSQL = szSQL & ", HASHES" + If Merges Then szSQL = szSQL & ", MERGES" If LeftTypeSortOperator <> "" Then szSQL = szSQL & ", SORT1 = " & LeftTypeSortOperator If RightTypeSortOperator <> "" Then szSQL = szSQL & ", SORT2 = " & RightTypeSortOperator + If LessThanOperator <> "" Then szSQL = szSQL & ", LTCMP = " & LessThanOperator + If GraterThanOperator <> "" Then szSQL = szSQL & ", GTCMP = " & GraterThanOperator szSQL = szSQL & ")" objServer.ExecSQL szSQL, cnDatabase @@ -286,7 +300,9 @@ Set rs = objServer.ExecSQL(szSQL, cnDatabase) If Not rs.EOF Then - Set objOperator = iAdd(rs.Fields("oid"), rs!oprname & "", rs!opowner & "", rs!oprkind & "", ToBool(rs!oprcanhash), rs!oprleft, rs!oprright, rs!oprresult, rs!oprcom, rs!oprnegate, rs!oprlsortop, rs!oprrsortop, rs!oprcode & "", rs!oprrest & "", rs!oprjoin & "") + Dim tmpMergeJoin As Boolean + If rs!oprlsortop = 0 And rs!oprrsortop = 0 And rs!oprltcmpop = 0 And rs!oprgtcmpop = 0 Then: tmpMergeJoin = False: Else: tmpMergeJoin = True + Set objOperator = iAdd(rs.Fields("oid"), rs!oprname & "", rs!opowner & "", rs!oprkind & "", ToBool(rs!oprcanhash), rs!oprleft, rs!oprright, rs!oprresult, rs!oprcom, rs!oprnegate, rs!oprlsortop, rs!oprrsortop, rs!oprcode & "", rs!oprrest & "", rs!oprjoin & "", tmpMergeJoin, rs!oprltcmpop & "", rs!oprgtcmpop & "") End If 'Invalidate the Operator Cache... @@ -404,7 +420,6 @@ objServer.iLogEvent "Entering " & App.Title & ":Operators.Initialize()", etFullDebug Dim rs As New Recordset - 'Create a new collection Set mCol = New Collection @@ -416,7 +431,9 @@ Set rs = objServer.ExecSQL(SQL_GET_OPERATORS & " ORDER BY oprname", cnDatabase) End If While Not rs.EOF - iAdd rs.Fields("oid"), rs!oprname & "", rs!opowner & "", rs!oprkind & "", ToBool(rs!oprcanhash), rs!oprleft, rs!oprright, rs!oprresult, rs!oprcom, rs!oprnegate, rs!oprlsortop, rs!oprrsortop, rs!oprcode & "", rs!oprrest & "", rs!oprjoin & "" + Dim tmpMergeJoin As Boolean + If rs!oprlsortop = 0 And rs!oprrsortop = 0 And rs!oprltcmpop = 0 And rs!oprgtcmpop = 0 Then: tmpMergeJoin = False: Else: tmpMergeJoin = True + iAdd rs.Fields("oid"), rs!oprname & "", rs!opowner & "", rs!oprkind & "", ToBool(rs!oprcanhash), rs!oprleft, rs!oprright, rs!oprresult, rs!oprcom, rs!oprnegate, rs!oprlsortop, rs!oprrsortop, rs!oprcode & "", rs!oprrest & "", rs!oprjoin & "", tmpMergeJoin, rs!oprltcmpop & "", rs!oprgtcmpop & "" rs.MoveNext Wend End If --- pgschema/pgOperator.cls.orig Thu Sep 11 20:21:40 2003 +++ pgschema/pgOperator.cls Thu Sep 11 20:23:13 2003 @@ -41,6 +41,10 @@ Private vTag As Variant Private colDependent As Collection Private colReferenced As Collection +' +Private bMergeJoins As Boolean +Private szLessThanOperator As String +Private szGreaterThanOperator As String Public Property Get FormattedID() As String Attribute FormattedID.VB_Description = "Returns a formatted identifier for use in SQL statements." @@ -326,6 +330,26 @@ Err_Handler: objServer.iLogError Err.Number, Err.Description End Property +'Set/Return MergeJoins? +Friend Property Let MergeJoins(ByVal vData As Boolean) +If inIDE Then: On Error GoTo 0: Else: On Error GoTo Err_Handler +objServer.iLogEvent "Entering " & App.Title & ":pgOperator.Property Let MergeJoins(" & vData & ")", etFullDebug + + bMergeJoins = vData + + Exit Property +Err_Handler: objServer.iLogError Err.Number, Err.Description +End Property +Public Property Get MergeJoins() As Boolean +Attribute MergeJoins.VB_Description = "Returns a value indicating whether the Operator supports Merge Joins." +If inIDE Then: On Error GoTo 0: Else: On Error GoTo Err_Handler +objServer.iLogEvent "Entering " & App.Title & ":pgOperator.Property Get MergeJoins()", etFullDebug + + MergeJoins = bMergeJoins + + Exit Property +Err_Handler: objServer.iLogError Err.Number, Err.Description +End Property 'Set/Return the LeftOperandType Friend Property Let LeftOperandType(ByVal vData As String) If inIDE Then: On Error GoTo 0: Else: On Error GoTo Err_Handler @@ -463,7 +487,6 @@ Err_Handler: objServer.iLogError Err.Number, Err.Description End Property Public Property Get RightTypeSortOperator() As String -Attribute RightTypeSortOperator.VB_Description = "Returns the Operator's right type-sort Operator." If inIDE Then: On Error GoTo 0: Else: On Error GoTo Err_Handler objServer.iLogEvent "Entering " & App.Title & ":pgOperator.Property Get RightTypeSortOperator()", etFullDebug @@ -473,6 +496,48 @@ Err_Handler: objServer.iLogError Err.Number, Err.Description End Property +'Set/Return the LessThanOperator +Friend Property Let LessThanOperator(ByVal vData As String) +If inIDE Then: On Error GoTo 0: Else: On Error GoTo Err_Handler +objServer.iLogEvent "Entering " & App.Title & ":pgOperator.Property Let LessThanOperator(" & QUOTE & vData & QUOTE & ")", etFullDebug + + szLessThanOperator = vData + + Exit Property +Err_Handler: objServer.iLogError Err.Number, Err.Description +End Property +Public Property Get LessThanOperator() As String +Attribute LessThanOperator.VB_Description = "Returns the Operator's less-then Operator." +If inIDE Then: On Error GoTo 0: Else: On Error GoTo Err_Handler +objServer.iLogEvent "Entering " & App.Title & ":pgOperator.Property Get LessThanOperator()", etFullDebug + + LessThanOperator = szLessThanOperator + + Exit Property +Err_Handler: objServer.iLogError Err.Number, Err.Description +End Property + +'Set/Return the GreaterThanOperator +Friend Property Let GreaterThanOperator(ByVal vData As String) +If inIDE Then: On Error GoTo 0: Else: On Error GoTo Err_Handler +objServer.iLogEvent "Entering " & App.Title & ":pgOperator.Property Let GreaterThanOperator(" & QUOTE & vData & QUOTE & ")", etFullDebug + + szGreaterThanOperator = vData + + Exit Property +Err_Handler: objServer.iLogError Err.Number, Err.Description +End Property +Public Property Get GreaterThanOperator() As String +Attribute GreaterThanOperator.VB_Description = "Returns the Operator's greater-then Operator." +If inIDE Then: On Error GoTo 0: Else: On Error GoTo Err_Handler +objServer.iLogEvent "Entering " & App.Title & ":pgOperator.Property Get GreaterThanOperator()", etFullDebug + + GreaterThanOperator = szGreaterThanOperator + + Exit Property +Err_Handler: objServer.iLogError Err.Number, Err.Description +End Property + 'Set/Return the OperatorFunction Friend Property Let OperatorFunction(ByVal vData As String) If inIDE Then: On Error GoTo 0: Else: On Error GoTo Err_Handler @@ -592,8 +657,11 @@ If szRestrictFunction <> "" Then szSQL = szSQL & ", RESTRICT = " & szRestrictFunction If szJoinFunction <> "" Then szSQL = szSQL & ", JOIN = " & szJoinFunction If bHashJoins Then szSQL = szSQL & ", HASHES" + If bMergeJoins Then szSQL = szSQL & ", MERGES" If szLeftTypeSortOperator <> "" Then szSQL = szSQL & ", SORT1 = " & szLeftTypeSortOperator If szRightTypeSortOperator <> "" Then szSQL = szSQL & ", SORT2 = " & szRightTypeSortOperator + If szLessThanOperator <> "" Then szSQL = szSQL & ", LTCMP = " & szLessThanOperator + If szGreaterThanOperator <> "" Then szSQL = szSQL & ", GTCMP = " & szGreaterThanOperator szSQL = szSQL & ");" & vbCrLf