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
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
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
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
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
if the number of exisiting subscribers (used as caller/callee
in created cdrs) is low, there is a higher risk that it can
fail to randomize one.
Change-Id: Id8f37f259e07f1b50251008a207a3e6122a628ea