v1.0.108: advisory lock + NFKC + ID-суррогаты + обогащение ops именами
This commit is contained in:
+5
-1
@@ -25,6 +25,10 @@
|
||||
<cfset result = {ok: true, skipped: true, message: "supplement already processed"}>
|
||||
<cfelse>
|
||||
<cftransaction>
|
||||
<!--- Advisory lock: атомарный seq без гонки --->
|
||||
<cfquery datasource="baza">
|
||||
SELECT pg_advisory_xact_lock(hashtext(<cfqueryparam value="#url.contract_id#" cfsqltype="cf_sql_varchar">))
|
||||
</cfquery>
|
||||
<cfset seq = 0>
|
||||
<cfquery name="sq" datasource="baza">
|
||||
SELECT COALESCE(MAX(seq), 0) as m FROM spec_events
|
||||
@@ -114,7 +118,7 @@
|
||||
INSERT INTO spec_current (contract_id, name_hash, name, price, qty, sum, date_start, last_event_id)
|
||||
VALUES (
|
||||
<cfqueryparam value="#url.contract_id#" cfsqltype="cf_sql_varchar">,
|
||||
md5(lower(trim(<cfqueryparam value="#nm#" cfsqltype="cf_sql_varchar">)) || coalesce(<cfqueryparam value="#ds#" cfsqltype="cf_sql_varchar">, '')),
|
||||
md5(lower(trim(regexp_replace(translate(normalize(<cfqueryparam value="#nm#" cfsqltype="cf_sql_varchar">, NFKC), '–—‑−«»""', '------""'), '\s+', ' ', 'g'))) || coalesce(<cfqueryparam value="#ds#" cfsqltype="cf_sql_varchar">, '')),
|
||||
<cfqueryparam value="#nm#" cfsqltype="cf_sql_varchar">,
|
||||
<cfqueryparam value="#pr#" cfsqltype="cf_sql_float" null="#len(pr) EQ 0#">,
|
||||
<cfqueryparam value="#qt#" cfsqltype="cf_sql_float" null="#len(qt) EQ 0#">,
|
||||
|
||||
Reference in New Issue
Block a user