Portál AbcLinuxu, 17. května 2024 13:34


Dotaz: Postgresql hash function jak vytvořit pro komplexní typ

11.7.2023 22:28 ZAH | skóre: 43 | blog: ZAH
Postgresql hash function jak vytvořit pro komplexní typ
Přečteno: 896×
Odpovědět | Admin
Porovnání komplexního typu skončí v postgresql chybou.
ERROR:  could not find hash function for hash operator 37709
Deklarace typu
CREATE TYPE ismaster."T_DocumentId" AS(
  year ismaster."D_YearId",
  document ismaster."D_DocNumber");
Deklarace operátoru = pro typ
CREATE OPERATOR public.= (
    FUNCTION = ismaster.op_fu_eq,
    LEFTARG = ismaster."T_DocumentId",
    RIGHTARG = ismaster."T_DocumentId",
    HASHES, MERGES);
Deklarace třídy operátorů
 CREATE OPERATOR CLASS op_cl_docid FOR TYPE ismaster."T_DocumentId" USING btree AS
    OPERATOR        1       <  ,
    OPERATOR        2       <= ,
    OPERATOR        3       =  ,
    OPERATOR        4       >= ,
    OPERATOR        5       >  ,
    FUNCTION        1       ismaster.op_fu_cmp(ismaster."T_DocumentId", ismaster."T_DocumentId")
Zkusil jsem nadefinovat funkci hashe, ale nemohu přijít na to, jak servru říct, že ji má použít.
 CREATE OR REPLACE FUNCTION ismaster.op_fu_hash (d1 ismaster."T_DocumentId")
    RETURNS bigint
    LANGUAGE 'plpgsql'
    COST 100
    IMMUTABLE PARALLEL UNSAFE
AS $BODY$
BEGIN 
 return md5(d1.year || d1.document); 
END;
$BODY$;
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

12.7.2023 00:19 X
Rozbalit Rozbalit vše Re: Postgresql hash function jak vytvořit pro komplexní typ
Odpovědět | | Sbalit | Link | Blokovat | Admin
Kde mas to porovnani? Zase, uvadej kompletnicreprodukovatelny kod. Viz minuly problem, nikdo to nebude hadat pokud to zazrakem neresil.
12.7.2023 05:05 ZAH | skóre: 43 | blog: ZAH
Rozbalit Rozbalit vše Re: Postgresql hash function jak vytvořit pro komplexní typ
SELECT xmlelement(name is_doc, xmlattributes('xyz' as bar),
				            xmlcomment('Hlavicka dokladu'),
                            xmlelement(name Header, 
							  xmlelement(name docId,"docdate"),
						        xmlelement(name date,'sss')),
                            xmlcomment('Data dokladu'),
                            xmlelement(name Data, 	(SELECT XMLFOREST( "rowNum",accdocdata.debitcredit))))
FROM accounting.accdocdata                            
INNER JOIN accounting.accdocheader ON accdocdata."docId" = accdocheader."docId"
12.7.2023 07:35 ZAH | skóre: 43 | blog: ZAH
Rozbalit Rozbalit vše Re: Postgresql hash function jak vytvořit pro komplexní typ
Příloha:
Přikládám vypreparovaný problém jako backup databáze. ZAH

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.