Opened 8 years ago

Closed 7 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 8 years ago by mtredinnick

  • Component changed from Core framework to Database wrapper
  • Keywords qs-rf-fixed added
  • Needs documentation unset
  • Needs tests unset
  • Patch needs improvement unset
  • Triage Stage changed from Unreviewed to Accepted

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 7 years ago by mtredinnick

  • Resolution set to fixed
  • Status changed from new to closed

(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