Quote column names in indexes (#13938)
* quote column names in indexes * quote column names in created indexes * fix tests
This commit is contained in:
5
.changeset/poor-bottles-sniff.md
Normal file
5
.changeset/poor-bottles-sniff.md
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
---
|
||||||
|
"@medusajs/utils": patch
|
||||||
|
---
|
||||||
|
|
||||||
|
quote column names in created indexes
|
||||||
@@ -37,7 +37,7 @@ describe("createPsqlIndexStatementHelper", function () {
|
|||||||
expect(indexStatement.expression).toEqual(
|
expect(indexStatement.expression).toEqual(
|
||||||
`CREATE INDEX IF NOT EXISTS "${options.name}" ON "${
|
`CREATE INDEX IF NOT EXISTS "${options.name}" ON "${
|
||||||
options.tableName
|
options.tableName
|
||||||
}" (${options.columns.join(", ")})`
|
}" (${options.columns.map((column) => `"${column}"`).join(", ")})`
|
||||||
)
|
)
|
||||||
})
|
})
|
||||||
|
|
||||||
@@ -53,7 +53,9 @@ describe("createPsqlIndexStatementHelper", function () {
|
|||||||
expect(indexStatement.expression).toEqual(
|
expect(indexStatement.expression).toEqual(
|
||||||
`CREATE INDEX IF NOT EXISTS "${options.name}" ON "${
|
`CREATE INDEX IF NOT EXISTS "${options.name}" ON "${
|
||||||
options.tableName
|
options.tableName
|
||||||
}" (${options.columns.join(", ")}) WHERE ${options.where}`
|
}" (${options.columns.map((column) => `"${column}"`).join(", ")}) WHERE ${
|
||||||
|
options.where
|
||||||
|
}`
|
||||||
)
|
)
|
||||||
})
|
})
|
||||||
|
|
||||||
@@ -70,7 +72,9 @@ describe("createPsqlIndexStatementHelper", function () {
|
|||||||
expect(indexStatement.toString()).toEqual(
|
expect(indexStatement.toString()).toEqual(
|
||||||
`CREATE INDEX IF NOT EXISTS "${options.name}" ON "${
|
`CREATE INDEX IF NOT EXISTS "${options.name}" ON "${
|
||||||
options.tableName
|
options.tableName
|
||||||
}" USING GIN (${options.columns.join(", ")}) WHERE ${options.where}`
|
}" USING GIN (${options.columns
|
||||||
|
.map((column) => `"${column}"`)
|
||||||
|
.join(", ")}) WHERE ${options.where}`
|
||||||
)
|
)
|
||||||
})
|
})
|
||||||
|
|
||||||
@@ -86,7 +90,9 @@ describe("createPsqlIndexStatementHelper", function () {
|
|||||||
expect(indexStatement.expression).toEqual(
|
expect(indexStatement.expression).toEqual(
|
||||||
`CREATE UNIQUE INDEX IF NOT EXISTS "IDX_table_name_column_name_1_column_name_2_unique" ON "${
|
`CREATE UNIQUE INDEX IF NOT EXISTS "IDX_table_name_column_name_1_column_name_2_unique" ON "${
|
||||||
options.tableName
|
options.tableName
|
||||||
}" (${options.columns.join(", ")}) WHERE ${options.where}`
|
}" (${options.columns.map((column) => `"${column}"`).join(", ")}) WHERE ${
|
||||||
|
options.where
|
||||||
|
}`
|
||||||
)
|
)
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|||||||
@@ -60,7 +60,9 @@ export function createPsqlIndexStatementHelper({
|
|||||||
tableReference = `"${tableName}"`
|
tableReference = `"${tableName}"`
|
||||||
}
|
}
|
||||||
|
|
||||||
columns = Array.isArray(columns) ? columns.join(", ") : columns
|
columns = Array.isArray(columns)
|
||||||
|
? columns.map((column) => `"${column}"`).join(", ")
|
||||||
|
: columns
|
||||||
name = name || `IDX_${tableName}_${columnsName}${unique ? "_unique" : ""}`
|
name = name || `IDX_${tableName}_${columnsName}${unique ? "_unique" : ""}`
|
||||||
|
|
||||||
const typeStr = type ? ` USING ${type}` : ""
|
const typeStr = type ? ` USING ${type}` : ""
|
||||||
|
|||||||
@@ -2109,16 +2109,16 @@ describe("Entity builder", () => {
|
|||||||
{
|
{
|
||||||
name: "IDX_user_id",
|
name: "IDX_user_id",
|
||||||
expression:
|
expression:
|
||||||
'CREATE INDEX IF NOT EXISTS "IDX_user_id" ON "user" (id) WHERE deleted_at IS NULL',
|
'CREATE INDEX IF NOT EXISTS "IDX_user_id" ON "user" ("id") WHERE deleted_at IS NULL',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "IDX_user_email_unique",
|
name: "IDX_user_email_unique",
|
||||||
expression:
|
expression:
|
||||||
'CREATE UNIQUE INDEX IF NOT EXISTS "IDX_user_email_unique" ON "user" (email) WHERE deleted_at IS NULL',
|
'CREATE UNIQUE INDEX IF NOT EXISTS "IDX_user_email_unique" ON "user" ("email") WHERE deleted_at IS NULL',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
expression:
|
expression:
|
||||||
'CREATE INDEX IF NOT EXISTS "IDX_user_deleted_at" ON "user" (deleted_at) WHERE deleted_at IS NULL',
|
'CREATE INDEX IF NOT EXISTS "IDX_user_deleted_at" ON "user" ("deleted_at") WHERE deleted_at IS NULL',
|
||||||
name: "IDX_user_deleted_at",
|
name: "IDX_user_deleted_at",
|
||||||
},
|
},
|
||||||
])
|
])
|
||||||
@@ -2229,16 +2229,16 @@ describe("Entity builder", () => {
|
|||||||
{
|
{
|
||||||
name: "IDX_user_id",
|
name: "IDX_user_id",
|
||||||
expression:
|
expression:
|
||||||
'CREATE INDEX IF NOT EXISTS "IDX_user_id" ON "platform"."user" (id) WHERE deleted_at IS NULL',
|
'CREATE INDEX IF NOT EXISTS "IDX_user_id" ON "platform"."user" ("id") WHERE deleted_at IS NULL',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "IDX_user_email_unique",
|
name: "IDX_user_email_unique",
|
||||||
expression:
|
expression:
|
||||||
'CREATE UNIQUE INDEX IF NOT EXISTS "IDX_user_email_unique" ON "platform"."user" (email) WHERE deleted_at IS NULL',
|
'CREATE UNIQUE INDEX IF NOT EXISTS "IDX_user_email_unique" ON "platform"."user" ("email") WHERE deleted_at IS NULL',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
expression:
|
expression:
|
||||||
'CREATE INDEX IF NOT EXISTS "IDX_user_deleted_at" ON "platform"."user" (deleted_at) WHERE deleted_at IS NULL',
|
'CREATE INDEX IF NOT EXISTS "IDX_user_deleted_at" ON "platform"."user" ("deleted_at") WHERE deleted_at IS NULL',
|
||||||
name: "IDX_user_deleted_at",
|
name: "IDX_user_deleted_at",
|
||||||
},
|
},
|
||||||
])
|
])
|
||||||
@@ -2348,16 +2348,16 @@ describe("Entity builder", () => {
|
|||||||
{
|
{
|
||||||
name: "IDX_user_id",
|
name: "IDX_user_id",
|
||||||
expression:
|
expression:
|
||||||
'CREATE INDEX IF NOT EXISTS "IDX_user_id" ON "user" (id) WHERE deleted_at IS NULL',
|
'CREATE INDEX IF NOT EXISTS "IDX_user_id" ON "user" ("id") WHERE deleted_at IS NULL',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "IDX_user_myEmail_unique",
|
name: "IDX_user_myEmail_unique",
|
||||||
expression:
|
expression:
|
||||||
'CREATE UNIQUE INDEX IF NOT EXISTS "IDX_user_myEmail_unique" ON "user" (myEmail) WHERE deleted_at IS NULL',
|
'CREATE UNIQUE INDEX IF NOT EXISTS "IDX_user_myEmail_unique" ON "user" ("myEmail") WHERE deleted_at IS NULL',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
expression:
|
expression:
|
||||||
'CREATE INDEX IF NOT EXISTS "IDX_user_deleted_at" ON "user" (deleted_at) WHERE deleted_at IS NULL',
|
'CREATE INDEX IF NOT EXISTS "IDX_user_deleted_at" ON "user" ("deleted_at") WHERE deleted_at IS NULL',
|
||||||
name: "IDX_user_deleted_at",
|
name: "IDX_user_deleted_at",
|
||||||
},
|
},
|
||||||
])
|
])
|
||||||
@@ -3945,32 +3945,32 @@ describe("Entity builder", () => {
|
|||||||
expect(metaData.indexes).toEqual([
|
expect(metaData.indexes).toEqual([
|
||||||
{
|
{
|
||||||
expression:
|
expression:
|
||||||
'CREATE INDEX IF NOT EXISTS "IDX_user_group_id" ON "user" (group_id) WHERE deleted_at IS NULL',
|
'CREATE INDEX IF NOT EXISTS "IDX_user_group_id" ON "user" ("group_id") WHERE deleted_at IS NULL',
|
||||||
name: "IDX_user_group_id",
|
name: "IDX_user_group_id",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
expression:
|
expression:
|
||||||
'CREATE INDEX IF NOT EXISTS "IDX_user_deleted_at" ON "user" (deleted_at) WHERE deleted_at IS NULL',
|
'CREATE INDEX IF NOT EXISTS "IDX_user_deleted_at" ON "user" ("deleted_at") WHERE deleted_at IS NULL',
|
||||||
name: "IDX_user_deleted_at",
|
name: "IDX_user_deleted_at",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
expression:
|
expression:
|
||||||
'CREATE UNIQUE INDEX IF NOT EXISTS "IDX_user_email_account_unique" ON "user" (email, account) WHERE deleted_at IS NULL',
|
'CREATE UNIQUE INDEX IF NOT EXISTS "IDX_user_email_account_unique" ON "user" ("email", "account") WHERE deleted_at IS NULL',
|
||||||
name: "IDX_user_email_account_unique",
|
name: "IDX_user_email_account_unique",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
expression:
|
expression:
|
||||||
'CREATE INDEX IF NOT EXISTS "IDX_user_email_account" ON "user" (email, account) WHERE deleted_at IS NULL',
|
'CREATE INDEX IF NOT EXISTS "IDX_user_email_account" ON "user" ("email", "account") WHERE deleted_at IS NULL',
|
||||||
name: "IDX_user_email_account",
|
name: "IDX_user_email_account",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
expression:
|
expression:
|
||||||
'CREATE INDEX IF NOT EXISTS "IDX_user_organization_account" ON "user" (organization, account) WHERE email IS NOT NULL AND deleted_at IS NULL',
|
'CREATE INDEX IF NOT EXISTS "IDX_user_organization_account" ON "user" ("organization", "account") WHERE email IS NOT NULL AND deleted_at IS NULL',
|
||||||
name: "IDX_user_organization_account",
|
name: "IDX_user_organization_account",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
expression:
|
expression:
|
||||||
'CREATE UNIQUE INDEX IF NOT EXISTS "IDX_unique-name" ON "user" (organization, account, group_id) WHERE deleted_at IS NULL',
|
'CREATE UNIQUE INDEX IF NOT EXISTS "IDX_unique-name" ON "user" ("organization", "account", "group_id") WHERE deleted_at IS NULL',
|
||||||
name: "IDX_unique-name",
|
name: "IDX_unique-name",
|
||||||
},
|
},
|
||||||
])
|
])
|
||||||
@@ -4026,37 +4026,37 @@ describe("Entity builder", () => {
|
|||||||
expect(metaData.indexes).toEqual([
|
expect(metaData.indexes).toEqual([
|
||||||
{
|
{
|
||||||
expression:
|
expression:
|
||||||
'CREATE INDEX IF NOT EXISTS "IDX_user_group_id" ON "user" (group_id) WHERE deleted_at IS NULL',
|
'CREATE INDEX IF NOT EXISTS "IDX_user_group_id" ON "user" ("group_id") WHERE deleted_at IS NULL',
|
||||||
name: "IDX_user_group_id",
|
name: "IDX_user_group_id",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
expression:
|
expression:
|
||||||
'CREATE INDEX IF NOT EXISTS "IDX_user_deleted_at" ON "user" (deleted_at) WHERE deleted_at IS NULL',
|
'CREATE INDEX IF NOT EXISTS "IDX_user_deleted_at" ON "user" ("deleted_at") WHERE deleted_at IS NULL',
|
||||||
name: "IDX_user_deleted_at",
|
name: "IDX_user_deleted_at",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
expression:
|
expression:
|
||||||
'CREATE INDEX IF NOT EXISTS "IDX_user_organization_account" ON "user" (organization, account) WHERE email IS NOT NULL AND deleted_at IS NULL',
|
'CREATE INDEX IF NOT EXISTS "IDX_user_organization_account" ON "user" ("organization", "account") WHERE email IS NOT NULL AND deleted_at IS NULL',
|
||||||
name: "IDX_user_organization_account",
|
name: "IDX_user_organization_account",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
expression:
|
expression:
|
||||||
'CREATE INDEX IF NOT EXISTS "IDX-email-account-special" ON "user" (organization, account) WHERE email IS NOT NULL AND account IS NULL AND deleted_at IS NULL',
|
'CREATE INDEX IF NOT EXISTS "IDX-email-account-special" ON "user" ("organization", "account") WHERE email IS NOT NULL AND account IS NULL AND deleted_at IS NULL',
|
||||||
name: "IDX-email-account-special",
|
name: "IDX-email-account-special",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
expression:
|
expression:
|
||||||
'CREATE UNIQUE INDEX IF NOT EXISTS "IDX_unique-name" ON "user" (organization, account, group_id) WHERE deleted_at IS NULL',
|
'CREATE UNIQUE INDEX IF NOT EXISTS "IDX_unique-name" ON "user" ("organization", "account", "group_id") WHERE deleted_at IS NULL',
|
||||||
name: "IDX_unique-name",
|
name: "IDX_unique-name",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
expression:
|
expression:
|
||||||
'CREATE INDEX IF NOT EXISTS "IDX_user_organization_group_id" ON "user" (organization, group_id) WHERE is_owner IS FALSE AND deleted_at IS NULL',
|
'CREATE INDEX IF NOT EXISTS "IDX_user_organization_group_id" ON "user" ("organization", "group_id") WHERE is_owner IS FALSE AND deleted_at IS NULL',
|
||||||
name: "IDX_user_organization_group_id",
|
name: "IDX_user_organization_group_id",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
expression:
|
expression:
|
||||||
'CREATE INDEX IF NOT EXISTS "IDX_user_account_group_id" ON "user" (account, group_id) WHERE is_owner IS TRUE AND deleted_at IS NULL',
|
'CREATE INDEX IF NOT EXISTS "IDX_user_account_group_id" ON "user" ("account", "group_id") WHERE is_owner IS TRUE AND deleted_at IS NULL',
|
||||||
name: "IDX_user_account_group_id",
|
name: "IDX_user_account_group_id",
|
||||||
},
|
},
|
||||||
])
|
])
|
||||||
@@ -4122,12 +4122,12 @@ describe("Entity builder", () => {
|
|||||||
expect(metaData.indexes).toEqual([
|
expect(metaData.indexes).toEqual([
|
||||||
{
|
{
|
||||||
expression:
|
expression:
|
||||||
'CREATE INDEX IF NOT EXISTS "IDX_user_group_id" ON "user" (group_id) WHERE deleted_at IS NULL',
|
'CREATE INDEX IF NOT EXISTS "IDX_user_group_id" ON "user" ("group_id") WHERE deleted_at IS NULL',
|
||||||
name: "IDX_user_group_id",
|
name: "IDX_user_group_id",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
expression:
|
expression:
|
||||||
'CREATE INDEX IF NOT EXISTS "IDX_user_deleted_at" ON "user" (deleted_at) WHERE deleted_at IS NULL',
|
'CREATE INDEX IF NOT EXISTS "IDX_user_deleted_at" ON "user" ("deleted_at") WHERE deleted_at IS NULL',
|
||||||
name: "IDX_user_deleted_at",
|
name: "IDX_user_deleted_at",
|
||||||
},
|
},
|
||||||
])
|
])
|
||||||
@@ -4138,12 +4138,12 @@ describe("Entity builder", () => {
|
|||||||
expect(settingMetadata.indexes).toEqual([
|
expect(settingMetadata.indexes).toEqual([
|
||||||
{
|
{
|
||||||
expression:
|
expression:
|
||||||
'CREATE UNIQUE INDEX IF NOT EXISTS "IDX_setting_user_id_unique" ON "setting" (user_id) WHERE deleted_at IS NULL',
|
'CREATE UNIQUE INDEX IF NOT EXISTS "IDX_setting_user_id_unique" ON "setting" ("user_id") WHERE deleted_at IS NULL',
|
||||||
name: "IDX_setting_user_id_unique",
|
name: "IDX_setting_user_id_unique",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
expression:
|
expression:
|
||||||
'CREATE INDEX IF NOT EXISTS "IDX_setting_deleted_at" ON "setting" (deleted_at) WHERE deleted_at IS NULL',
|
'CREATE INDEX IF NOT EXISTS "IDX_setting_deleted_at" ON "setting" ("deleted_at") WHERE deleted_at IS NULL',
|
||||||
name: "IDX_setting_deleted_at",
|
name: "IDX_setting_deleted_at",
|
||||||
},
|
},
|
||||||
])
|
])
|
||||||
|
|||||||
Reference in New Issue
Block a user