-
-
Notifications
You must be signed in to change notification settings - Fork 6.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
fix: resolves Postgres sequence identifier length error #7115
Conversation
@@ -2051,11 +2051,14 @@ export class PostgresQueryRunner extends BaseQueryRunner implements QueryRunner | |||
tableName = table.name.split(".")[1]; | |||
} | |||
|
|||
let seqName = `${tableName}_${columnName}_seq`; | |||
if (seqName.length > 63) // note doesn't yet handle corner cases where .length differs from number of UTF-8 bytes |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
instead of hard-coded magic value 63
I would recommend to use Driver.maxAliasLength
property.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think in all other places we already use a shorten
function to shorten things... Can we use it here as well to achieve consistency?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I have pushed an amended commit that uses the maxAliasLength
property. I have not used shorten
because it doesn't match the truncation algorithm that Postgres uses, thus won't fix the issue.
Changes the sequence name generator to handle cases where PostgreSQL auto-generated sequence name differed from TypeORM generated sequence name. Closes: typeorm#7106
a8dde23
to
8720d44
Compare
In the failing circleci test, it does pass the additional test, however there was a segfault that occurred later for some reason unrelated to the latest change. |
Thank you for contribution! 🎉 |
* typeorm-0.2.30: (212 commits) version bump docs: fix javascript usage examples (typeorm#7031) fix: resolve migration for UpdateDateColumn without ON UPDATE clause (typeorm#7057) fix: Error when sorting by an embedded entity while using join and skip/take (typeorm#7082) fix: resolves Postgres sequence identifier length error (typeorm#7115) feat: closure table custom naming (typeorm#7120) feat: relations: Orphaned row action (typeorm#7105) docs: fix invalid code block in "find many options" (typeorm#7268) docs: Embodying the example (typeorm#7116) docs: document withDeleted option (typeorm#7132) fix: return 'null' (instead of 'undefined') on lazy relations that have no results (typeorm#7146) (typeorm#7147) docs: update cascade options (typeorm#7140) docs: add .ts to supported ormconfig formats (typeorm#7139) fix: improve stack traces when using persist executor (typeorm#7218) refactor: remove Oracle multirow insert workaround (since typeorm#6927) (typeorm#7083) feat: add NOWAIT and SKIP LOCKED lock support for MySQL (typeorm#7236) docs: update OneToMany grammar (typeorm#7252) feat: JavaScript file migrations output (typeorm#7253) docs: update Repository.ts (typeorm#7254) chore: update dependency cli-highlight to v2.1.10 (typeorm#7265) ...
Changes the sequence name generator to handle cases where PostgreSQL auto-generated sequence name differed from TypeORM generated sequence name.
Closes: #7106
Description of change
Current behaviour: sequence name generator for PostgreSQL does not match PostgreSQL automatic sequence name implementation for some cases.
New behaviour: now it does.
Pull-Request Checklist
master
branchnpm run lint
passes with this changenpm run test
passes with this changeFixes #0000