[GH-ISSUE #59] Doctrine2 / Postgresql indexes issue #51

Closed
opened 2026-02-26 09:35:26 +03:00 by kerem · 0 comments
Owner

Originally created by @barryo on GitHub (Feb 17, 2014).
Original GitHub issue: https://github.com/opensolutions/ViMbAdmin/issues/59

Submitted by
I think i found a problem with doctrine

Following SQL statements are done at create which have the same name:

CREATE INDEX IX_AliasPreference_1 ON alias_pref (Alias_id, attribute, ix);
CREATE INDEX IX_AliasPreference_1 ON domain_pref (Domain_id, attribute, ix);

I searched for this definition and found it in the file ViMbAdmin.ormdesigner

<entity name="AliasPreference" uuid="ecb7d3bf-095b-4207-93be-0645ca2fb077">
      <field name="id" type="bigint" required="true" primary="true" auto-increment="true" uuid="dfbcaa8c-b8a3-432b-b280-aff4f496cae$
      <field name="Alias_id" type="bigint" uuid="73a86289-7aa3-48e7-90c4-c25af97ee269"/>
      <field name="attribute" type="string" size="255" required="true" uuid="b4db6ad1-340c-4727-a1ea-0a48c9ef098c"/>
      <field name="ix" type="integer" default="0" required="true" uuid="013929bc-e981-4e47-96e9-830c53483bf4"/>
      <field name="op" type="string" size="2" default=":=" required="true" uuid="c4d0f66c-7d09-4982-a84d-f0151eb75db9"/>
      <field name="value" type="text" required="true" uuid="5b7d3292-9df0-4193-9743-10180780eaec"/>
      <field name="expire" type="bigint" default="0" required="true" uuid="7ea94f28-a50a-4b71-80aa-cb8ed4f81831"/>
      <index name="IX_AliasPreference_1">
        <index-field name="Alias_id"/>
        <index-field name="attribute"/>
        <index-field name="ix"/>
      </index>
      <orm-attributes>
        <attribute name="repository-class">Repositories\AliasPreference</attribute>
        <attribute name="schema">alias_pref</attribute>
        <attribute name="table">alias_pref</attribute>
      </orm-attributes>
    </entity>
<entity name="DomainPreference" uuid="6f2a163e-900a-4bf5-af83-eb13191ff10e">
      <field name="id" type="bigint" required="true" primary="true" auto-increment="true" uuid="d967b9e7-7c0f-42ce-9064-48b029ee590$
      <field name="Domain_id" type="bigint" uuid="4a052a0f-f14b-46ed-be97-49b79dfeddfc"/>
      <field name="attribute" type="string" size="255" required="true" uuid="24c3dd68-d392-4ee2-a737-e5c8fad08a0c"/>
      <field name="ix" type="integer" default="0" required="true" uuid="6eb0875c-45ad-4947-8e78-2d754b5145fd"/>
      <field name="op" type="string" size="2" default=":=" required="true" uuid="f5f0284e-6b4c-4569-9255-b7a0cc15f5bb"/>
      <field name="value" type="text" required="true" uuid="d286cd76-42b2-4695-96b4-0bd03d853b44"/>
      <field name="expire" type="bigint" default="0" required="true" uuid="8d41cc0f-4c5a-4213-9cdc-28a3ee60cddf"/>
      <index name="IX_AliasPreference_1">
        <index-field name="Domain_id"/>
        <index-field name="attribute"/>
        <index-field name="ix"/>
      </index>
      <orm-attributes>
        <attribute name="repository-class">Repositories\DomainPreference</attribute>
        <attribute name="schema">domain_pref</attribute>
        <attribute name="table">domain_pref</attribute>
      </orm-attributes>
    </entity>

Entities.DomainPreference.dcm.xml:

<?xml version="1.0"?>
<doctrine-mapping xmlns="http://doctrine-project.org/schemas/orm/doctrine-mapping" xsi="http://www.w3.org/2001/XMLSchema-instance" $
  <entity name="Entities\DomainPreference" repository-class="Repositories\DomainPreference" schema="domain_pref" table="domain_pref$
    <id name="id" type="bigint">
      <generator strategy="AUTO"/>
    </id>
    <field name="attribute" type="string" length="255" nullable="false"/>
    <field name="ix" type="integer" nullable="false"/>
    <field name="op" type="string" length="2" nullable="false"/>
    <field name="value" type="text" nullable="false"/>
    <field name="expire" type="bigint" nullable="false"/>
    <indexes>
      <index name="IX_AliasPreference_1" columns="Domain_id,attribute,ix"/>
    </indexes>
    <many-to-one field="Domain" target-entity="Entities\Domain" inversed-by="Preferences">
      <join-columns>
        <join-column name="Domain_id" referenced-column-name="id"/>
      </join-columns>
    </many-to-one>
  </entity>
</doctrine-mapping>

Changing this to IX_DomainPreference_1 and create is working.

I think this is a copy and paste mistake.

This is causing an error and the create is impossible.

Maybe MySQL accept such things but the most DB systems don't.

Originally created by @barryo on GitHub (Feb 17, 2014). Original GitHub issue: https://github.com/opensolutions/ViMbAdmin/issues/59 Submitted by I think i found a problem with doctrine Following SQL statements are done at create which have the same name: ``` sql CREATE INDEX IX_AliasPreference_1 ON alias_pref (Alias_id, attribute, ix); CREATE INDEX IX_AliasPreference_1 ON domain_pref (Domain_id, attribute, ix); ``` I searched for this definition and found it in the file ViMbAdmin.ormdesigner ``` xml <entity name="AliasPreference" uuid="ecb7d3bf-095b-4207-93be-0645ca2fb077"> <field name="id" type="bigint" required="true" primary="true" auto-increment="true" uuid="dfbcaa8c-b8a3-432b-b280-aff4f496cae$ <field name="Alias_id" type="bigint" uuid="73a86289-7aa3-48e7-90c4-c25af97ee269"/> <field name="attribute" type="string" size="255" required="true" uuid="b4db6ad1-340c-4727-a1ea-0a48c9ef098c"/> <field name="ix" type="integer" default="0" required="true" uuid="013929bc-e981-4e47-96e9-830c53483bf4"/> <field name="op" type="string" size="2" default=":=" required="true" uuid="c4d0f66c-7d09-4982-a84d-f0151eb75db9"/> <field name="value" type="text" required="true" uuid="5b7d3292-9df0-4193-9743-10180780eaec"/> <field name="expire" type="bigint" default="0" required="true" uuid="7ea94f28-a50a-4b71-80aa-cb8ed4f81831"/> <index name="IX_AliasPreference_1"> <index-field name="Alias_id"/> <index-field name="attribute"/> <index-field name="ix"/> </index> <orm-attributes> <attribute name="repository-class">Repositories\AliasPreference</attribute> <attribute name="schema">alias_pref</attribute> <attribute name="table">alias_pref</attribute> </orm-attributes> </entity> ``` ``` xml <entity name="DomainPreference" uuid="6f2a163e-900a-4bf5-af83-eb13191ff10e"> <field name="id" type="bigint" required="true" primary="true" auto-increment="true" uuid="d967b9e7-7c0f-42ce-9064-48b029ee590$ <field name="Domain_id" type="bigint" uuid="4a052a0f-f14b-46ed-be97-49b79dfeddfc"/> <field name="attribute" type="string" size="255" required="true" uuid="24c3dd68-d392-4ee2-a737-e5c8fad08a0c"/> <field name="ix" type="integer" default="0" required="true" uuid="6eb0875c-45ad-4947-8e78-2d754b5145fd"/> <field name="op" type="string" size="2" default=":=" required="true" uuid="f5f0284e-6b4c-4569-9255-b7a0cc15f5bb"/> <field name="value" type="text" required="true" uuid="d286cd76-42b2-4695-96b4-0bd03d853b44"/> <field name="expire" type="bigint" default="0" required="true" uuid="8d41cc0f-4c5a-4213-9cdc-28a3ee60cddf"/> <index name="IX_AliasPreference_1"> <index-field name="Domain_id"/> <index-field name="attribute"/> <index-field name="ix"/> </index> <orm-attributes> <attribute name="repository-class">Repositories\DomainPreference</attribute> <attribute name="schema">domain_pref</attribute> <attribute name="table">domain_pref</attribute> </orm-attributes> </entity> ``` Entities.DomainPreference.dcm.xml: ``` xml <?xml version="1.0"?> <doctrine-mapping xmlns="http://doctrine-project.org/schemas/orm/doctrine-mapping" xsi="http://www.w3.org/2001/XMLSchema-instance" $ <entity name="Entities\DomainPreference" repository-class="Repositories\DomainPreference" schema="domain_pref" table="domain_pref$ <id name="id" type="bigint"> <generator strategy="AUTO"/> </id> <field name="attribute" type="string" length="255" nullable="false"/> <field name="ix" type="integer" nullable="false"/> <field name="op" type="string" length="2" nullable="false"/> <field name="value" type="text" nullable="false"/> <field name="expire" type="bigint" nullable="false"/> <indexes> <index name="IX_AliasPreference_1" columns="Domain_id,attribute,ix"/> </indexes> <many-to-one field="Domain" target-entity="Entities\Domain" inversed-by="Preferences"> <join-columns> <join-column name="Domain_id" referenced-column-name="id"/> </join-columns> </many-to-one> </entity> </doctrine-mapping> ``` Changing this to `IX_DomainPreference_1` and create is working. I think this is a copy and paste mistake. This is causing an error and the create is impossible. Maybe MySQL accept such things but the most DB systems don't.
kerem 2026-02-26 09:35:26 +03:00
  • closed this issue
  • added the
    bug
    label
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/ViMbAdmin-opensolutions#51
No description provided.