Uploaded image for project: 'Qt Quality Assurance Infrastructure'
  1. Qt Quality Assurance Infrastructure
  2. QTQAINFRA-5436

Refactor schema for configure_arguments of each workitem

XMLWordPrintable

    • Icon: Task Task
    • Resolution: Fixed
    • Icon: P1: Critical P1: Critical
    • None
    • None
    • Metrics / Test Results
    • None

      Example of configure arguments:

      -opensource -confirm-license -verbose -prefix /home/qt/work/install -developer-build -nomake tests --linker=gold \
          -R . -qtlibinfix TestInfix -qtnamespace TestNamespace -openssl \
          -I "{{.Env.OPENSSL_HOME}}/include" -L "{{.Env.OPENSSL_HOME}}/lib"
      

      Currently I store the configure arguments of each workitem as many-to-many relationship using a simple table:

      CREATE TABLE IF NOT EXISTS workitems_MM_configure_arguments
      (
          workitem_n            integer NOT NULL,
          configure_argument_n  integer NOT NULL,
          PRIMARY KEY (workitem_n, configure_argument_n)
      );
      

      All the configure arguments are recognized by a single id, from a normalization table:

      CREATE TABLE IF NOT EXISTS configure_arguments
      (
          configure_argument_n  integer  NOT NULL  GENERATED BY DEFAULT AS IDENTITY,
          configure_argument    text NOT NULL,
          PRIMARY KEY (configure_argument_n),
          UNIQUE      (configure_argument)
      );
      

      Problem

      The problem is that the order of the configure arguments is lost. SQL does not guarantee that it will return the rows of the table, in the order inserted. This is not important with other data, like environment variables, but is very important for command line options, for example -nomake followed by examples.

        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

            jimis Dimitrios Apostolou
            jimis Dimitrios Apostolou
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:
              Resolved:

                There are no open Gerrit changes