ODAC local filter raises EVariantTypeCastError

ODAC local filter raises EVariantTypeCastError

We have tried to use a newer ODAC version in production. The following issue is a showstopper for us. It seems that this issue exists since version 12.3.0.

Steps:
- compile and execute the following command line application

Expected: the output is PASS

Actual:
version 12.2.0:
PASS

version 12.3.0 till 13.3.0:
Exception EVariantTypeCastError in module VTNotFilterTest.exe at <address>.
Could not convert variant of type (String) into type (Boolean).

  1. program VTNotFilterTest;

    {$APPTYPE CONSOLE}

    uses
      SysUtils, DB, VirtualTable;

    function CreateStringField(ADataset: TDataSet; AFieldName: string): TStringField;
    begin
      Result := TStringField.Create(ADataset);
      with Result do
      begin
        FieldName := AFieldName;
        DataSet := ADataset;
      end;
    end;

    procedure AddRecordValue(ADataset: TDataSet; AValue: string);
    begin
      ADataSet.Append;
      ADataSet.FieldByName('FIELD').AsString := AValue;
      ADataSet.Post;
    end;

    var
      vt: TVirtualTable;
      OkayCounter: Integer;
    begin
      OkayCounter := 0;

      vt := TVirtualTable.Create(nil);
      try
        CreateStringField(vt, 'FIELD');

        vt.Open;

        AddRecordValue(vt, 'Meier');
        AddRecordValue(vt, 'Miller');


        if vt.RecordCount = 2 then
          Inc(OkayCounter);

        vt.Filter := 'not Field = ''Miller''';
        vt.Filtered := True;

        if vt.RecordCount = 1 then
          Inc(OkayCounter);
      finally
        vt.Free;
      end;

      if OkayCounter = 2 then
        WriteLn('PASS')
      else
        WriteLn('FAIL');
      ReadLn;
    end.