-
Task
-
Resolution: Fixed
-
P1: Critical
-
None
-
None
-
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.