--On 15. Juni 2007 09:46:27 -0400 Michael Bayer <[EMAIL PROTECTED]> wrote:
On Jun 15, 2007, at 3:19 AM, Andreas Jung wrote:Bug or feature?I cant speak authoritatively here at all since youve given me no information about your schema, ive no idea what AMH_View represents, but AFAICT the queries are correct, and the results you illustate in your console queries (which you can also get by turning "echo" into "debug") are also consistent with the results youre getting....im guessing that "hidx" is the primary key column, so you are getting "HI435846" in both results. that will correspond to the same instance " 0xb75dc40c" in your sample object results. if we're talking about the "identity map", yes thats a feature.
I doubt that the identity map works the right way. The Hierarchy mapper represent the 'hierarchy' table: Toolbox2Test=# \d hierarchy Table "public.hierarchy"Column | Type | Modifiers
-------------------------+-----------------------------+-----------------------------------------------------------id | integer | not null default nextval('public.hierarchy_id_seq'::text)
parentid | bigint | idprodukt | bigint | produktkuerzel | character varying(32) | bezeichnung | character varying(160) | neudat | timestamp without time zone | aedat | timestamp without time zone | benutzer | character varying(32) | pos | integer | default 0 linkindex | character varying(20) | deleted | boolean | default false visible | boolean | sorting | boolean | comment | character varying(265) | idhierarchy_share | integer | show_gattung_in_bauplan | boolean | default falsesortierung | character varying(10) | default 'Given'::character varying
Indexes: "hierarchy_pkey" primary key, btree (id) "hierarchy_deleted_idx" btree (deleted) "hierarchy_idhierarchy_share_idx" btree (idhierarchy_share) "hierarchy_idprodukt_idx" btree (idprodukt) "hierarchy_produktkuerzel_idx" btree (produktkuerzel) The ArbeitsmittelHierarchy mapper represents a view: Toolbox2Test=# \d amhier_am_view View "public.amhier_am_view" Column | Type | Modifiers -------------------------------+--------------------------------+----------- idhierarchy | integer | id | bigint | idgattung | integer | bezeichnung | character varying(255) | version | character varying(30) | stand | timestamp without time zone | format | character varying(10) | status | integer | umfang | integer | seiten | integer | faxabruf | character varying(50) | dateiname | character varying(255) | originalname | character varying(255) | idautor | integer | idfassung | integer | neudat | timestamp without time zone | aedat | timestamp without time zone | bemerkung | text | summary | text | chgdat | timestamp(0) without time zone | signatur | character varying(255) | idsachgebiet | integer | rechtefrei | boolean | honorarfrei | boolean | markierung | boolean | benutzer | character varying(32) | stellvertreter | character varying(32) | versionsnr | integer | num_rtf | integer | num_hre | integer | num_pdf | integer | hidx | character varying(16) | versionskommentar | character varying(1024) | versionsize | bigint | zodb_path | character varying(1024) | idzielgruppe | integer | generator_tauglich | boolean | stammdatenverwaltung_tauglich | boolean | rechner_version | character varying(10) | formular_version | character varying(10) | hidx_master | character varying(10) | gesperrt_bis | timestamp without time zone | sperrgrund | character varying(255) | rechnerstand | timestamp without time zone | rechner_stand | timestamp without time zone | aedat_string | text | bezeichnung_custom | character varying(255) | pos | integer | View definition:SELECT idhierarchy, am.id, am.idgattung, am.bezeichnung, am."version", am.stand, am.format, am.status, am.umfang, am.seiten, am.faxabruf, am.dateiname, am.originalname, am.idautor, am.idfassung, am.neudat, am.aedat, am.bemerkung, am.summary, am.chgdat, am.signatur, am.idsachgebiet, am.rechtefrei, am.honorarfrei, am.markierung, am.benutzer, am.stellvertreter, am.versionsnr, am.num_rtf, am.num_hre, am.num_pdf, am.hidx, am.versionskommentar, am.versionsize, am.zodb_path, am.idzielgruppe, am.generator_tauglich, am.stammdatenverwaltung_tauglich, am.rechner_version, am.formular_version, am.hidx_master, am.gesperrt_bis, am.sperrgrund, am.rechnerstand, am.rechner_stand, to_char(am.aedat, 'DD.MM.YYYY'::text) AS aedat_string, amh.bezeichnung AS bezeichnung_custom, amh.pos
FROM arbeitsmittelhierarchy amhLEFT JOIN arbeitsmittel am ON am.hidx::text = amh.hidx::text AND am.versionsnr = 0;
which is a join between 'arbeitsmittelhierarchy' Toolbox2Test=# \d arbeitsmittelhierarchyTable "public.arbeitsmittelhierarchy" Column | Type | Modifiers
----------------+-----------------------------+------------------------------------------------------------------------id | integer | not null default nextval('public.arbeitsmittelhierarchy_id_seq'::text)
pos | integer | default 0 idhierarchy | integer |benutzer | character varying(32) | default ''::character varying
aedat | timestamp without time zone |bezeichnung | character varying(255) | default ''::character varying hidx | character varying(20) | default ''::character varying
aedat_original | timestamp without time zone | Indexes: "arbeitsmittelhierarchy_pkey" primary key, btree (id) "arbeitsmittelhierarchy_idhierarchy_idx" btree (idhierarchy) Foreign-key constraints: "$1" FOREIGN KEY (idhierarchy) REFERENCES hierarchy(id) and the 'arbeitsmitteltable' Table "public.arbeitsmittel"Column | Type | Modifiers
-------------------------------+--------------------------------+----------------------------------------------------------id | bigint | not null default nextval('"arbeitsmittel_id_key"'::text)
idgattung | integer | default 0 bezeichnung | character varying(255) | version | character varying(30) | stand | timestamp without time zone | format | character varying(10) | status | integer | default 0 umfang | integer | default 0 seiten | integer | default 0 faxabruf | character varying(50) | dateiname | character varying(255) | originalname | character varying(255) | idautor | integer | default 0 idfassung | integer | default 0 neudat | timestamp without time zone | aedat | timestamp without time zone | bemerkung | text | summary | text | chgdat | timestamp(0) without time zone | signatur | character varying(255) | idsachgebiet | integer | rechtefrei | boolean | honorarfrei | boolean | markierung | boolean |benutzer | character varying(32) | default ''::character varying
stellvertreter | character varying(32) | versionsnr | integer | default 0 num_rtf | integer | default 0 num_hre | integer | default 0 num_pdf | integer | default 0 hidx | character varying(16) | versionskommentar | character varying(1024) | versionsize | bigint | default 0 zodb_path | character varying(1024) | idzielgruppe | integer | default 0generator_tauglich | boolean | default false stammdatenverwaltung_tauglich | boolean | default false rechner_version | character varying(10) | default ''::character varying formular_version | character varying(10) | default ''::character varying
hidx_master | character varying(10) | gesperrt_bis | timestamp without time zone |sperrgrund | character varying(255) | default ''::character varying
rechnerstand | timestamp without time zone | rechner_stand | timestamp without time zone | Indexes: "arbeitsmittel_pkey" primary key, btree (id) "arbeitsmittel_unique_hidx_vnr" unique, btree (hidx, versionsnr) "arbeitsmittel_aedat_idx" btree (aedat) "arbeitsmittel_hidx_idx" btree (hidx) As you can see from my original posting, the queries return three *distinct* rows from the 'amhier_am_view' and this should result in three different instance. Andreas
pgp2B5TofKaSu.pgp
Description: PGP signature