Backend: - service_auto module complet: router, service, schemas, 5 teste suites (22/22 passed) - 5 endpoints: GET /ping, /firme, /tip-deviz, /masini, POST /comenzi - SP_CREEAZA_COMANDA_PROTOTIP creat în MARIUSM_AUTO (VALID, 5.9ms) - oracle_pool.py: session_callback backward-compat patch - ROA_WEB user: grants SP-only confirmate (H3), mariusm_test pool switchat - pyproject.toml: integration pytest marker înregistrat Frontend: - ComandaNoua.vue: date reale din Oracle (firme/tip-deviz/masini), nu hardcodate - src/modules/service-auto/services/api.js: axios service cu Bearer token - src/router/index.js: rută /service-auto/comanda-noua Docs: - decision-log.md: verdict MERGE, toate 6 ipoteze CONFIRMED - learnings.md: 7 patterns reutilizabile - grants-audit.md: arhitectura multi-tenant + proxy auth analysis + V_NOM_FIRME loop - template-modul-oracle.md: rețetă completă pentru module Oracle noi - TODO-phase2.md: 7 items concrete Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
1.2 KiB
1.2 KiB
Săpt 2 Notes — Oracle OUT Param Probe
Script: poc/async_out_param_probe.py
Date: 2026-04-11
Status: PASSED ✅
Latency (measured 2026-04-11)
| Operation | Time |
|---|---|
| connect | 21.9ms |
| CREATE PROCEDURE | 9.2ms |
| callproc (OUT param) | 1.0ms |
| DROP PROCEDURE | 54.6ms |
| Total | 87.5ms |
OUT Param Result
- Procedure:
MARIUSM_AUTO.test_out(p OUT NUMBER)setsp := 42 - Python:
cursor.var(oracledb.NUMBER)→cursor.callproc(...)→out_var.getvalue()= 42.0 - Assert
== 42: PASSED
Cleanup
DROP PROCEDURE MARIUSM_AUTO.test_outexecuted successfully- Cleanup OK ✅ — no residual objects left in schema
Key Findings
oracledb.cursor.var(oracledb.NUMBER)correctly round-trips OracleOUT NUMBERparameters- The returned value from
.getvalue()is a Pythonfloat(42.0), soint()cast is needed for IDs callproclatency is ~1ms once connected — Oracle OUT params add negligible overhead- DDL (CREATE/DROP) requires ~10-55ms each — avoid in hot paths
- This pattern matches exactly what
ComandaService.creeaza_comanda()uses forout_id_ordlandout_nrord