public bool Matches(DataSet dataSet, VirtualRow virtualRow)
        {
            object leftValue = virtualRow.GetColumnValue(_leftColumn);
            object rightValue = virtualRow.GetColumnValue(_rightColumn);

            return !leftValue.Equals(rightValue);
        }
        public bool Matches(DataSet dataSet, VirtualRow virtualRow)
        {
            // TODO: It's only necessary to execute this query for each row if it's
            // a correlated subquery. Is there a way to execute it once and then cache it
            // if it's not correlated?

            DataTable subQueryResults = _subQuery.ExecuteDataTable(dataSet, virtualRow);

            object leftValue = virtualRow.GetColumnValue(_column);

            foreach (DataRow row in subQueryResults.Rows)
            {
                object rightValue = row[0];

                if (leftValue.Equals(rightValue))
                {
                    return true;
                }
            }

            return false;
        }