anchor.diff:          let (procRightModel, procJoinCondition, procValueBinders) =
               removeSelfJoins leftModel rightModel conditionProc rightValueBinders
   
  -        let conditionToAdd =
  +        let processedLeftJoinCondition =
               procJoinCondition :: procRightModel.Filters
               |> Conjunction
               |> optimizeRelationalCondition
  +
  +        let (conditionToAdd, extraAssignment) =
  +            if procRightModel.Sources |> List.isEmpty then
  +                processedLeftJoinCondition, None
  +            else
  +                let extraAssignment =
  +                    {
  +                        Variable = { SqlType = database.IntegerType }
  +                        Expression = 1 |> Int |> Constant
  +                    }
  +
  +                extraAssignment.Variable |> Assigned |> IsNull |> Not, extraAssignment |> Some
   
           let rec addConditionToValueBinder valueBinder =
               optimizeValueBinder <|
  
positive.code:                         |> Option.defaultValue prevConstraints
                  )
  
          let intersectConstraints constraints otherConstraints =
              invalidOp "Not Implemented"
  
          let rec buildEqualityConstraints equalityConstraints = function
              | [] ->
  
negative.code:             )
      )
  
  let private processJoin (database: ISqlDatabaseSchema) (typeIndexer: TypeIndexer) (leftJoinCondition: SparqlCondition option) (left: BoundCalculusModel) (right: BoundCalculusModel) =
      let isLeftJoin = leftJoinCondition.IsSome
  
      let leftValueBinders = left.Bindings
  