Skip to content

Commit

Permalink
fix: pass ids_ to alias builder to prevent length overflow (#6624)
Browse files Browse the repository at this point in the history
  • Loading branch information
imnotjames committed Sep 2, 2020
1 parent 4f7481b commit cf3ad62
Showing 1 changed file with 15 additions and 2 deletions.
17 changes: 15 additions & 2 deletions src/query-builder/SelectQueryBuilder.ts
Expand Up @@ -1861,7 +1861,14 @@ export class SelectQueryBuilder<Entity> extends QueryBuilder<Entity> implements
const columnAlias = this.escape(DriverUtils.buildColumnAlias(this.connection.driver, mainAliasName, primaryColumn.databaseName));
if (!orderBys[columnAlias]) // make sure we aren't overriding user-defined order in inverse direction
orderBys[columnAlias] = "ASC";
return `${distinctAlias}.${columnAlias} as "ids_${DriverUtils.buildColumnAlias(this.connection.driver, mainAliasName, primaryColumn.databaseName)}"`;

const alias = DriverUtils.buildColumnAlias(
this.connection.driver,
"ids_" + mainAliasName,
primaryColumn.databaseName
);

return `${distinctAlias}.${columnAlias} as "${alias}"`;
});

rawResults = await new SelectQueryBuilder(this.connection, queryRunner)
Expand All @@ -1888,7 +1895,13 @@ export class SelectQueryBuilder<Entity> extends QueryBuilder<Entity> implements
}).join(" AND ");
}).join(" OR ");
} else {
const ids = rawResults.map(result => result["ids_" + DriverUtils.buildColumnAlias(this.connection.driver, mainAliasName, metadata.primaryColumns[0].databaseName)]);
const alias = DriverUtils.buildColumnAlias(
this.connection.driver,
"ids_" + mainAliasName,
metadata.primaryColumns[0].databaseName
);

const ids = rawResults.map(result => result[alias]);
const areAllNumbers = ids.every((id: any) => typeof id === "number");
if (areAllNumbers) {
// fixes #190. if all numbers then its safe to perform query without parameter
Expand Down

0 comments on commit cf3ad62

Please sign in to comment.