exporting the same field (path) multiple times results
in duplicate column names, which are rejected by sqlite
or DBD::xyz.
This change introduces a "colname" field for providing
an alternative column name to prevent colliding names.
Change-Id: I904862651c1a24c4cdc6c643da6f9156e15ffbc6
(cherry picked from commit 134aeff964)
This reverts commit df98b0a7c3.
This is not needed anymore, now that we use a function to fetch the
correct version for the application.
Change-Id: Ie56ba6dc01b6a75f9ac21382879891727881ccc1
(cherry picked from commit a82fb8c948)
The variable from the main space gets declared too late when we want to
initialize the variable in the module. Instead switch to use a function
that gets called on demand, which will have the available value at that
time. This removes the need to declare $VERSION in a BEGIN section, as
that is error-prone and easy to forget for new code.
Change-Id: I613698169dddd6d7ccf52b16a0ee9994e84b3543
(cherry picked from commit 2aeedad442)
This should make it easier to see the application version in contrast to
the system modules version. We initialize this at build time from the
package version, and fallback to the module version if the application
has no usable version.
Change-Id: I4b4e1a926aea517b2b3b46261794e187af0c9865
(cherry picked from commit b90ca3f3ac)
the implementation used queries based on "OR",
causing a perfromance problem as the query time
depends on the cardinality of the accounting.cdr
table.
Change-Id: I1dbb23cf8802179b89c44718915ca090a2b17b5e
CDR export jobs such as ama exporter or cdr-exporter must never execute
on both active/passive node. because the output folder resides on a
glusterfs filesystem, this will cause merged or duplicate files, and
calls charged twice to customers subsequentially.
for .ama, the 2-phase commit steps for exporting CDRs were separated
already:
(a) rename .tmp file to final output file name
(b) commit db transaction:
- cdrexportstatus of all cdrs of that file
- file sequence number increment
The implemented 2PC flow will prevent (a) properly, if (b) fails.
This is now leveraged (by escalating the UPSERT not changing anything) to
abandon a whole file, if a single CDR shows an exportstatus other than
"unexported". Such CDRs indicate there is a race condition with another
exporter (which was quicker here).
the same thechnique also has to be added to cdr-exporter, which
unfortunately has no 2PC flow impl yet.
Change-Id: Ice40fa79d2b263018ee7825e314d63c9abe888ce