diff --git a/packages/pg-meta/src/sql/studio/table-editor/constraints.ts b/packages/pg-meta/src/sql/studio/table-editor/constraints.ts index f89d5c59e18..8486e8508eb 100644 --- a/packages/pg-meta/src/sql/studio/table-editor/constraints.ts +++ b/packages/pg-meta/src/sql/studio/table-editor/constraints.ts @@ -1,3 +1,5 @@ +import { ident } from "../../../pg-format" + export const getDropConstraintSQL = ({ schema, table, @@ -6,4 +8,4 @@ export const getDropConstraintSQL = ({ schema: string table: string name: string -}) => `ALTER TABLE "${schema}"."${table}" DROP CONSTRAINT "${name}"` +}) => `ALTER TABLE ${ident(schema)}.${ident(table)} DROP CONSTRAINT ${ident(name)}` diff --git a/packages/pg-meta/src/sql/studio/table-editor/foreign-keys.ts b/packages/pg-meta/src/sql/studio/table-editor/foreign-keys.ts index 8465209c6d4..d3868ad68d9 100644 --- a/packages/pg-meta/src/sql/studio/table-editor/foreign-keys.ts +++ b/packages/pg-meta/src/sql/studio/table-editor/foreign-keys.ts @@ -1,3 +1,5 @@ +import { ident } from "../../../pg-format"; + export const getAddForeignKeySQL = ({ table, foreignKeys, @@ -28,9 +30,9 @@ export const getAddForeignKeySQL = ({ const onDeleteSql = getOnDeleteSql(deletionAction) const onUpdateSql = getOnUpdateSql(updateAction) return ` - ALTER TABLE "${table.schema}"."${table.name}" - ADD FOREIGN KEY (${relation.columns.map((column) => `"${column.source}"`).join(', ')}) - REFERENCES "${relation.schema}"."${relation.table}" (${relation.columns.map((column) => `"${column.target}"`).join(', ')}) + ALTER TABLE ${ident(table.schema)}.${ident(table.name)} + ADD FOREIGN KEY (${relation.columns.map((column) => ident(column.source)).join(', ')}) + REFERENCES ${ident(relation.schema)}.${ident(relation.table)} (${relation.columns.map((column) => ident(column.target)).join(', ')}) ${onUpdateSql} ${onDeleteSql} ` @@ -52,8 +54,8 @@ export const getRemoveForeignKeySQL = ({ foreignKeys .map((relation) => ` -ALTER TABLE IF EXISTS "${table.schema}"."${table.name}" -DROP CONSTRAINT IF EXISTS "${relation.name}" +ALTER TABLE IF EXISTS ${ident(table.schema)}.${ident(table.name)} +DROP CONSTRAINT IF EXISTS ${ident(relation.name)} ` .replace(/\s+/g, ' ') .trim() diff --git a/packages/pg-meta/src/sql/studio/table-editor/identity.ts b/packages/pg-meta/src/sql/studio/table-editor/identity.ts index 4e17e8d6371..9777055e57b 100644 --- a/packages/pg-meta/src/sql/studio/table-editor/identity.ts +++ b/packages/pg-meta/src/sql/studio/table-editor/identity.ts @@ -1,3 +1,5 @@ +import { ident } from "../../../pg-format" + export const getUpdateIdentitySequenceSQL = ({ schema, table, @@ -7,7 +9,7 @@ export const getUpdateIdentitySequenceSQL = ({ table: string column: string }) => { - return `SELECT setval('"${schema}"."${table}_${column}_seq"', (SELECT COALESCE(MAX("${column}"), 1) FROM "${schema}"."${table}"))` + return `SELECT setval('${ident(schema)}.${ident(`${table}_${column}_seq`)}', (SELECT COALESCE(MAX(${ident(column)}), 1) FROM ${ident(schema)}.${ident(table)}))` } @@ -22,5 +24,5 @@ export const getDuplicateIdentitySequenceSQL = ({ sourceTableName: string sourceTableSchema: string }) => { - return `SELECT setval('"${sourceTableSchema}"."${duplicatedTableName}_${columnName}_seq"', (SELECT MAX("${columnName}") FROM "${sourceTableSchema}"."${sourceTableName}"));` + return `SELECT setval('${ident(sourceTableSchema)}.${ident(`${duplicatedTableName}_${columnName}_seq`)}', (SELECT MAX(${ident(columnName)}) FROM ${ident(sourceTableSchema)}.${ident(sourceTableName)}));` } diff --git a/packages/pg-meta/src/sql/studio/table-editor/primary-keys.ts b/packages/pg-meta/src/sql/studio/table-editor/primary-keys.ts index 30192a808da..060c7d7153e 100644 --- a/packages/pg-meta/src/sql/studio/table-editor/primary-keys.ts +++ b/packages/pg-meta/src/sql/studio/table-editor/primary-keys.ts @@ -1,3 +1,5 @@ +import { ident } from "../../../pg-format" + /** * The functions below are basically just queries but may be supported directly * from the pg-meta library in the future @@ -11,6 +13,6 @@ export const getAddPrimaryKeySQL = ({ table: string columns: string[] }) => { - const primaryKeyColumns = columns.map((col) => `"${col}"`).join(', ') - return `ALTER TABLE "${schema}"."${table}" ADD PRIMARY KEY (${primaryKeyColumns})` + const primaryKeyColumns = columns.map((col) => ident(col)).join(', ') + return `ALTER TABLE ${ident(schema)}.${ident(table)} ADD PRIMARY KEY (${primaryKeyColumns})` } diff --git a/packages/pg-meta/src/sql/studio/table-editor/rls.ts b/packages/pg-meta/src/sql/studio/table-editor/rls.ts index 3fed7d00418..5b39cda5806 100644 --- a/packages/pg-meta/src/sql/studio/table-editor/rls.ts +++ b/packages/pg-meta/src/sql/studio/table-editor/rls.ts @@ -1,3 +1,5 @@ +import { ident } from "../../../pg-format"; + export const getEnableRLSSQL = ({ schema, table }: { schema: string; table: string }) => { - return `ALTER TABLE "${schema}"."${table}" ENABLE ROW LEVEL SECURITY` + return `ALTER TABLE ${ident(schema)}.${ident(table)} ENABLE ROW LEVEL SECURITY` } diff --git a/packages/pg-meta/src/sql/studio/table-editor/table.ts b/packages/pg-meta/src/sql/studio/table-editor/table.ts index 71618f71bd2..71e313551da 100644 --- a/packages/pg-meta/src/sql/studio/table-editor/table.ts +++ b/packages/pg-meta/src/sql/studio/table-editor/table.ts @@ -1,3 +1,5 @@ +import { ident } from '../../../pg-format' + export const getDuplicateTableSQL = ({ comment, duplicatedTableName, @@ -10,9 +12,9 @@ export const getDuplicateTableSQL = ({ sourceTableSchema: string }) => { return [ - `CREATE TABLE "${sourceTableSchema}"."${duplicatedTableName}" (LIKE "${sourceTableSchema}"."${sourceTableName}" INCLUDING ALL);`, + `CREATE TABLE ${ident(sourceTableSchema)}.${ident(duplicatedTableName)} (LIKE ${ident(sourceTableSchema)}.${ident(sourceTableName)} INCLUDING ALL);`, comment != undefined - ? `comment on table "${sourceTableSchema}"."${duplicatedTableName}" is '${comment}';` + ? `comment on table ${ident(sourceTableSchema)}.${ident(duplicatedTableName)} is '${comment}';` : '', ].join('\n') } @@ -26,5 +28,5 @@ export const getDuplicateRowsSQL = ({ sourceTableName: string sourceTableSchema: string }) => { - return `INSERT INTO "${sourceTableSchema}"."${duplicatedTableName}" SELECT * FROM "${sourceTableSchema}"."${sourceTableName}";` + return `INSERT INTO ${ident(sourceTableSchema)}.${ident(duplicatedTableName)} SELECT * FROM ${ident(sourceTableSchema)}.${ident(sourceTableName)};` }