Opened 10 years ago

Closed 9 years ago

#5707 closed (fixed)

Aliases truncated to 64 characters on Postgres

Reported by: jhenry@… Owned by: nobody
Component: Database layer (models, ORM) Version: master
Severity: Keywords: qs-rf-fixed
Cc: Triage Stage: Accepted
Has patch: no Needs documentation: no
Needs tests: no Patch needs improvement: no
Easy pickings: UI/UX:

Description

With a large join or long table names, postgres will truncate the aliases of the tables to 64 characters resulting in duplicate table names on the query. This makes the query unexecutable.

One solution is to shorten long alias names. I wrote something that modifies the alias when it is produced in db/models/query.py, but unfortunately, the join conditions get the alias as well, so the change will probably have to ultimately go into the SortedDict class to truncate and make the names unique in 64 characters there.

An alternate solution would be to prefix the aliases with incrementing numbers since the truncation will still preserve unique names for the aliases.

Change History (2)

comment:1 Changed 10 years ago by Malcolm Tredinnick

Component: Core frameworkDatabase wrapper
Keywords: qs-rf-fixed added
Triage Stage: UnreviewedAccepted

This is being fixed automatically on the queryset-refactor branch. All the aliases there look like T0, T1, etc. I'll close this when the branch is merged into trunk.

comment:2 Changed 9 years ago by Malcolm Tredinnick

Resolution: fixed
Status: newclosed

(In [7477]) Merged the queryset-refactor branch into trunk.

This is a big internal change, but mostly backwards compatible with existing
code. Also adds a couple of new features.

Fixed #245, #1050, #1656, #1801, #2076, #2091, #2150, #2253, #2306, #2400, #2430, #2482, #2496, #2676, #2737, #2874, #2902, #2939, #3037, #3141, #3288, #3440, #3592, #3739, #4088, #4260, #4289, #4306, #4358, #4464, #4510, #4858, #5012, #5020, #5261, #5295, #5321, #5324, #5325, #5555, #5707, #5796, #5817, #5987, #6018, #6074, #6088, #6154, #6177, #6180, #6203, #6658

Note: See TracTickets for help on using tickets.
Back to Top