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

"Compiled" EntityResult ; Switch SelectQuery processing to use EntityResult

Attach filesAttach ScreenshotVotersWatch issueWatchersCreate sub-taskLinkCloneUpdate Comment AuthorReplace String in CommentUpdate Comment VisibilityDelete Comments
    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Closed
    • Major
    • Resolution: Won't Fix
    • 3.0
    • 3.0
    • Core Library
    • None

    Description

      Related to the inheritance tasks (CAY-795)... We need a way to process all different forms of DataRows that inheritance select queries require. Till now Cayenne worked with DataRows that represented a single entity and used DbAttribute names as keys to the values.

      There were a few exceptions that were handled by "normalization" process during object creation. I want this to exception to become a rule, and abstract normalization process via EntityResult, "compiled" in the ClassDescriptor. So for the old style rows , normalization will be a noop (encapsulated in an EntityResult), and for the rows using special column naming and extra meta-columns (such as in case of horizontal inheritance), there will be a conversion process involved.

      Also the plan is to use EntityResult in SELECT ... clause column name generation, including UNION queries under horizontal inheritance.

      [Finally going forward (will not be done under this Jira, or maybe not even in 3.0), we may migrate to array-based positional DataRows instead of a current Map-based. Per CAY-999 this should provide huge memory savings, and preclude the need for "normalization".]

      Attachments

        Issue Links

        Activity

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

          People

            andrus Andrus Adamchik
            andrus Andrus Adamchik
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Slack

                Issue deployment