| 1 | | As we just need a unique name for an index can so, can we create index_name as : |
| 2 | | {{{#!python |
| 3 | | index_name = '%s%s' % (self._digest(*([table_name] + column_names)), suffix) |
| 4 | | }}} |
| 5 | | |
| 6 | | _digest function will be: |
| 7 | | |
| 8 | | {{{#!python |
| 9 | | @classmethod |
| 10 | | def _digest(cls, *args): |
| 11 | | """ |
| 12 | | Generate a 32-bit digest of a set of arguments that can be used to |
| 13 | | shorten identifying names. |
| 14 | | """ |
| 15 | | h = hashlib.md5() |
| 16 | | for arg in args: |
| 17 | | h.update(force_bytes(arg)) |
| 18 | | return h.hexdigest() |
| 19 | | }}} |
| 20 | | |
| 21 | | Using _digest method we will get 32 byte string and in that we will add suffix which will give us a length of index_name = 32 + length of suffix. |
| 22 | | As suffix length will be very small length of index_name will not be able to exceed 40 also. |