--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 false
sortierung | 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 amh
LEFT JOIN arbeitsmittel am ON am.hidx::text = amh.hidx::text AND am.versionsnr = 0;

which is a join between 'arbeitsmittelhierarchy'

Toolbox2Test=# \d arbeitsmittelhierarchy
Table "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 0
generator_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


Attachment: pgp2B5TofKaSu.pgp
Description: PGP signature

Reply via email to