Projekat

Općenito

Profil

Akcije

Podrška #25309

Zatvoren

fmk package - server db 4.0.6

Dodano od Ernad Husremović prije više od 13 godina. Izmjenjeno prije više od 13 godina.

Status:
Zatvoreno
Prioritet:
Odmah riješiti
Odgovorna osoba:
Početak:
20.11.2011
Završetak:
21.11.2011
% završeno:

100%

Procjena vremena:

Povezani tiketi 2 (0 otvoreno2 zatvorenih)

korelira sa F18 - Podrška #25876: sample data upgrade (server db 4.0.8)ZatvorenoJasmin Beganović24.12.2011

Akcije
korelira sa F18 - Podrška #25877: tip: urnek za TDD: fetch_metric, set_metricZatvorenoErnad Husremović24.12.2011

Akcije
Akcije #1

Izmjenjeno od Ernad Husremović prije više od 13 godina

treba get_metric, set_metric stored procedure i samu tabelu prekopirati i public u fmk šemu tako da se F18 parametri ne mješaju sa knowhow.

Akcije #2

Izmjenjeno od Ernad Husremović prije više od 13 godina

  • Završetak postavljeno na 21.11.2011
Akcije #3

Izmjenjeno od Saša Vranić prije više od 13 godina

heh, imamo tu tabelu i nekolicinu funkcija...

Akcije #4

Izmjenjeno od Ernad Husremović prije više od 13 godina

Saša Vranić je napisao/la:

heh, imamo tu tabelu i nekolicinu funkcija...

da i to kopiraj u fmk šemu. pretpostavjam da ne možeš funkcije bez modifikacija koristiti za tabelu koja se nalazi u fmk shemi. pošto nećemo raditi modifikacije knowhow radi ovih stvari, copy-paste je u ovom slučaju, iako nije DRY, najbolje rješenje.

Akcije #5

Izmjenjeno od Saša Vranić prije više od 13 godina

fetchmetrictext()

Ova funkcija je čista

CREATE OR REPLACE FUNCTION fetchmetrictext(text)
  RETURNS text AS
$BODY$
DECLARE
  _pMetricName ALIAS FOR $1;
  _returnVal TEXT;
BEGIN
  SELECT metric_value::TEXT INTO _returnVal
    FROM metric
   WHERE metric_name = _pMetricName;
  RETURN _returnVal;
END;
$BODY$
  LANGUAGE plpgsql STABLE
  COST 100;
ALTER FUNCTION fetchmetrictext(text)
  OWNER TO admin;

setmetric()

I ova funkcija je čista

CREATE OR REPLACE FUNCTION setmetric(text, text)
  RETURNS boolean AS
$BODY$
DECLARE
  pMetricName ALIAS FOR $1;
  pMetricValue ALIAS FOR $2;
  _metricid INTEGER;

BEGIN

  SELECT metric_id INTO _metricid
  FROM metric
  WHERE (metric_name=pMetricName);

  IF (FOUND) THEN
    UPDATE metric
    SET metric_value=pMetricValue
    WHERE (metric_id=_metricid);

  ELSE
    INSERT INTO metric
    (metric_name, metric_value)
    VALUES (pMetricName, pMetricValue);
  END IF;

  RETURN TRUE;

END;
$BODY$
  LANGUAGE plpgsql VOLATILE
  COST 100;
ALTER FUNCTION setmetric(text, text)
  OWNER TO admin;
Akcije #6

Izmjenjeno od Saša Vranić prije više od 13 godina

tabela "metric"

CREATE TABLE metric
(
  metric_id integer NOT NULL DEFAULT nextval(('metric_metric_id_seq'::text)::regclass),
  metric_name text,
  metric_value text,
  metric_module text,
  CONSTRAINT metric_pkey PRIMARY KEY (metric_id )
)
WITH (
  OIDS=FALSE
);
ALTER TABLE metric
  OWNER TO admin;
GRANT ALL ON TABLE metric TO admin;
GRANT ALL ON TABLE metric TO xtrole;
COMMENT ON TABLE metric
  IS 'Application-wide settings information';

-- Index: metric_name_key

-- DROP INDEX metric_name_key;

CREATE INDEX metric_name_key
  ON metric
  USING btree
  (metric_name COLLATE pg_catalog."default" );

Akcije #7

Izmjenjeno od Saša Vranić prije više od 13 godina

ovdje imamo NextVal() ali to je ok, koristi se public funkcija

Akcije #8

Izmjenjeno od Saša Vranić prije više od 13 godina

to sam ja nešto prolupao... negdje drugo sam vidio milion funkcija

ahh da, to su one privilegije za usere itd...

Akcije #9

Izmjenjeno od Saša Vranić prije više od 13 godina

Nije dobro, šta će nextval() uraditi ?

Da li je nextval() itegralna funkcija pgsql-a ?

Akcije #10

Izmjenjeno od Ernad Husremović prije više od 13 godina

postoji negdje statement

create sequence ... metric_metric_id_seq

time se kreira sekvenca - brojač u plsql-u, funkcije nextval currval itd koriste tu sekvencu. one su integralni dio plsql

Akcije #11

Izmjenjeno od Ernad Husremović prije više od 13 godina

obavezno daj link na postojeći source u github-u.

Akcije #13

Izmjenjeno od Saša Vranić prije više od 13 godina

dobro:

Akcije #14

Izmjenjeno od Saša Vranić prije više od 13 godina

  • Odgovorna osoba promijenjeno iz Saša Vranić u Ernad Husremović
  • Prioritet promijenjeno iz Odmah riješiti u Normalan

pošto ćeš ti parametre raditi ovo će ti vjerovarno trebati

Akcije #15

Izmjenjeno od Ernad Husremović prije više od 13 godina

  • Naslov promijenjeno iz fmk package - metric tabela za F18 u fmk package - server db 4.0.2
Akcije #16

Izmjenjeno od Ernad Husremović prije više od 13 godina

  • Naslov promijenjeno iz fmk package - server db 4.0.2 u fmk package - server db 4.0.6
  • Prioritet promijenjeno iz Normalan u Odmah riješiti
Akcije #17

Izmjenjeno od Ernad Husremović prije više od 13 godina

changelog

fetchmetrictext

setmetric

primjer:

unsetuj parametar 'color' (izbrisi iz tabele metrika)

SELECT setmetric('color', '!!UNSET!!')

Akcije #18

Izmjenjeno od Ernad Husremović prije više od 13 godina

takođe fetchmetric vraća !!notfound!! ako nema parametra

Akcije #19

Izmjenjeno od Ernad Husremović prije više od 13 godina

PL/pgsql je moćan

zaključak: PL/pgsql je pravo moćan i u njemu se može dosta toga uraditi

Akcije #20

Izmjenjeno od Ernad Husremović prije više od 13 godina

  • Status promijenjeno iz Dodijeljeno u Zatvoreno
  • % završeno promijenjeno iz 0 u 100
Akcije

Također dostupno kao Atom PDF