Uploaded image for project: 'Cayenne'
  1. Cayenne
  2. CAY-2445

Oracle: Problem with ExpressionFactory.notInExp()

Agile BoardRank to TopRank to BottomAttach filesAttach ScreenshotBulk Copy AttachmentsBulk Move AttachmentsVotersWatch issueWatchersCreate sub-taskConvert to sub-taskLinkCloneLabelsUpdate Comment AuthorReplace String in CommentUpdate Comment VisibilityDelete Comments
    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 3.1.2, 4.0.RC1, 4.1.M2
    • 3.1.4, 4.0, 4.1.B1
    • Core Library
    • None

    Description

      When collection in notInExp() contains more than 1000 items, the ExpressionException is thrown:

      org.apache.cayenne.exp.ExpressionException: [v.3.1.2 Nov 13 2017 07:52:36] Or: invalid parent - Negate
      at org.apache.cayenne.exp.parser.AggregateConditionNode.jjtSetParent(AggregateConditionNode.java:80)
      at org.apache.cayenne.exp.parser.SimpleNode.connectChildren(SimpleNode.java:324)
      ...

      Code to reproduce the problem

      SelectQuery query = new SelectQuery(Artist.class);
      List<Integer> excluded = new ArrayList<Integer>();
      for (int i = 0; i < 1001; ++i) {
       excluded.add(i);
      }
      query.andQualifier(ExpressionFactory.notInExp(Artist.ID_PK_COLUMN, excluded));
      getContext().performQuery(query); 

       

      Attachments

        Issue Links

        Activity

          This comment will be Viewable by All Users Viewable by All Users
          Cancel

          People

            ntimofeev Nikita Timofeev
            vzhilin Vladimir Zhilin
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Slack

                Issue deployment