Skip to content

Conversation

elucidsoft
Copy link
Contributor

This resolves #1404

@elucidsoft elucidsoft requested a review from Shinigami92 as a code owner May 9, 2025 20:59
Copy link

github-actions bot commented May 9, 2025

Coverage Report

Status Category Percentage Covered / Total
🟢 Lines 92.65% (🎯 90%)
⬆️ +0.02%
3215 / 3470
🟢 Statements 92.65% (🎯 90%)
⬆️ +0.02%
3215 / 3470
🟢 Functions 96.69% (🎯 90%)
🟰 ±0%
263 / 272
🟢 Branches 91.05% (🎯 85%)
⬇️ -0.03%
845 / 928
File Coverage
File Stmts Branches Functions Lines Uncovered Lines
Changed Files
src/operations/tables/alterTable.ts 100%
🟰 ±0%
100%
🟰 ±0%
100%
🟰 ±0%
100%
🟰 ±0%
src/operations/tables/createTable.ts 89.39%
⬆️ +0.87%
77.27%
⬆️ +0.80%
100%
🟰 ±0%
89.39%
⬆️ +0.87%
51-55, 92-93
src/operations/tables/shared.ts 83.15%
🟰 ±0%
81.53%
🟰 ±0%
80%
🟰 ±0%
83.15%
🟰 ±0%
157-158, 211-215, 241-242, 261-262, 287-288, 291-298, 301-302, 439-464
Unchanged Files
src/db.ts 83.18% 88.88% 87.5% 83.18% 90-92, 122, 125-137, 177-179
src/index.ts 100% 100% 100% 100%
src/logger.ts 100% 100% 100% 100%
src/migration.ts 73.38% 87.27% 66.66% 73.38% 147-150, 171-187, 226-232, 237-275, 332-333, 359-361, 369-370, 387-390, 419-420
src/migrationBuilder.ts 96.18% 93.33% 100% 96.18% 824-828, 967-972
src/migrationOptions.ts 100% 100% 100% 100%
src/pgType.ts 100% 100% 100% 100%
src/runner.ts 81.75% 63.63% 100% 81.75% 181, 201-202, 211-212, 261-262, 304-307, 316-320, 333, 345-348, 371, 382, 412-425, 428-431, 451-453, 462, 464-473
src/sqlMigration.ts 85.36% 100% 80% 85.36% 54-60
src/operations/sql.ts 100% 100% 100% 100%
src/operations/casts/createCast.ts 100% 100% 100% 100%
src/operations/casts/dropCast.ts 100% 100% 100% 100%
src/operations/casts/index.ts 100% 100% 100% 100%
src/operations/domains/alterDomain.ts 100% 100% 100% 100%
src/operations/domains/createDomain.ts 100% 100% 100% 100%
src/operations/domains/dropDomain.ts 100% 100% 100% 100%
src/operations/domains/index.ts 100% 100% 100% 100%
src/operations/domains/renameDomain.ts 100% 100% 100% 100%
src/operations/domains/shared.ts 100% 100% 100% 100%
src/operations/extensions/createExtension.ts 100% 100% 100% 100%
src/operations/extensions/dropExtension.ts 100% 100% 100% 100%
src/operations/extensions/index.ts 100% 100% 100% 100%
src/operations/extensions/shared.ts 100% 100% 100% 100%
src/operations/functions/createFunction.ts 95.52% 94.44% 100% 95.52% 71-73
src/operations/functions/dropFunction.ts 100% 100% 100% 100%
src/operations/functions/index.ts 100% 100% 100% 100%
src/operations/functions/renameFunction.ts 100% 100% 100% 100%
src/operations/functions/shared.ts 100% 100% 100% 100%
src/operations/grants/grantOnSchemas.ts 100% 100% 100% 100%
src/operations/grants/grantOnTables.ts 100% 100% 100% 100%
src/operations/grants/grantRoles.ts 100% 100% 100% 100%
src/operations/grants/index.ts 100% 100% 100% 100%
src/operations/grants/revokeOnSchemas.ts 100% 100% 100% 100%
src/operations/grants/revokeOnTables.ts 100% 100% 100% 100%
src/operations/grants/revokeRoles.ts 100% 100% 100% 100%
src/operations/grants/shared.ts 95.45% 85.71% 100% 95.45% 71
src/operations/indexes/createIndex.ts 100% 100% 100% 100%
src/operations/indexes/dropIndex.ts 100% 100% 100% 100%
src/operations/indexes/index.ts 100% 100% 100% 100%
src/operations/indexes/shared.ts 88% 86.95% 100% 88% 23, 33-36, 48
src/operations/materializedViews/alterMaterializedView.ts 100% 100% 100% 100%
src/operations/materializedViews/createMaterializedView.ts 100% 100% 100% 100%
src/operations/materializedViews/dropMaterializedView.ts 100% 100% 100% 100%
src/operations/materializedViews/index.ts 100% 100% 100% 100%
src/operations/materializedViews/refreshMaterializedView.ts 100% 100% 100% 100%
src/operations/materializedViews/renameMaterializedView.ts 100% 100% 100% 100%
src/operations/materializedViews/renameMaterializedViewColumn.ts 100% 100% 100% 100%
src/operations/materializedViews/shared.ts 100% 87.5% 100% 100%
src/operations/operators/addToOperatorFamily.ts 100% 100% 100% 100%
src/operations/operators/createOperator.ts 100% 100% 100% 100%
src/operations/operators/createOperatorClass.ts 100% 83.33% 100% 100%
src/operations/operators/createOperatorFamily.ts 100% 100% 100% 100%
src/operations/operators/dropOperator.ts 100% 100% 100% 100%
src/operations/operators/dropOperatorClass.ts 100% 100% 100% 100%
src/operations/operators/dropOperatorFamily.ts 100% 100% 100% 100%
src/operations/operators/index.ts 100% 100% 100% 100%
src/operations/operators/removeFromOperatorFamily.ts 100% 100% 100% 100%
src/operations/operators/renameOperatorClass.ts 100% 100% 100% 100%
src/operations/operators/renameOperatorFamily.ts 100% 100% 100% 100%
src/operations/operators/shared.ts 85% 75% 100% 85% 24-25, 38
src/operations/policies/alterPolicy.ts 100% 100% 100% 100%
src/operations/policies/createPolicy.ts 100% 100% 100% 100%
src/operations/policies/dropPolicy.ts 100% 100% 100% 100%
src/operations/policies/index.ts 100% 100% 100% 100%
src/operations/policies/renamePolicy.ts 100% 100% 100% 100%
src/operations/policies/shared.ts 100% 100% 100% 100%
src/operations/roles/alterRole.ts 100% 100% 100% 100%
src/operations/roles/createRole.ts 100% 75% 100% 100%
src/operations/roles/dropRole.ts 100% 100% 100% 100%
src/operations/roles/index.ts 100% 100% 100% 100%
src/operations/roles/renameRole.ts 100% 100% 100% 100%
src/operations/roles/shared.ts 98.07% 76.92% 100% 98.07% 78
src/operations/schemas/createSchema.ts 100% 100% 100% 100%
src/operations/schemas/dropSchema.ts 100% 100% 100% 100%
src/operations/schemas/index.ts 100% 100% 100% 100%
src/operations/schemas/renameSchema.ts 100% 100% 100% 100%
src/operations/sequences/alterSequence.ts 93.75% 75% 100% 93.75% 23
src/operations/sequences/createSequence.ts 100% 100% 100% 100%
src/operations/sequences/dropSequence.ts 100% 100% 100% 100%
src/operations/sequences/index.ts 100% 100% 100% 100%
src/operations/sequences/renameSequence.ts 100% 100% 100% 100%
src/operations/sequences/shared.ts 78.57% 68.75% 100% 78.57% 41, 43-44, 49-50, 63-64, 69-70
src/operations/tables/addColumns.ts 100% 80% 100% 100%
src/operations/tables/addConstraint.ts 100% 100% 100% 100%
src/operations/tables/alterColumn.ts 89.33% 77.77% 100% 89.33% 69, 76-83
src/operations/tables/dropColumns.ts 100% 100% 100% 100%
src/operations/tables/dropConstraint.ts 100% 100% 100% 100%
src/operations/tables/dropTable.ts 100% 100% 100% 100%
src/operations/tables/index.ts 100% 100% 100% 100%
src/operations/tables/renameColumn.ts 100% 100% 100% 100%
src/operations/tables/renameConstraint.ts 100% 100% 100% 100%
src/operations/tables/renameTable.ts 100% 100% 100% 100%
src/operations/triggers/createTrigger.ts 86.25% 68.18% 100% 86.25% 53-54, 66-67, 70-71, 74-77, 113
src/operations/triggers/dropTrigger.ts 100% 100% 100% 100%
src/operations/triggers/index.ts 100% 100% 100% 100%
src/operations/triggers/renameTrigger.ts 100% 100% 100% 100%
src/operations/triggers/shared.ts 100% 100% 100% 100%
src/operations/types/addTypeAttribute.ts 100% 100% 100% 100%
src/operations/types/addTypeValue.ts 100% 100% 100% 100%
src/operations/types/createType.ts 100% 100% 100% 100%
src/operations/types/dropType.ts 100% 100% 100% 100%
src/operations/types/dropTypeAttribute.ts 100% 100% 100% 100%
src/operations/types/index.ts 100% 100% 100% 100%
src/operations/types/renameType.ts 100% 100% 100% 100%
src/operations/types/renameTypeAttribute.ts 100% 100% 100% 100%
src/operations/types/renameTypeValue.ts 100% 100% 100% 100%
src/operations/types/setTypeAttribute.ts 100% 100% 100% 100%
src/operations/views/alterView.ts 100% 100% 100% 100%
src/operations/views/alterViewColumn.ts 100% 100% 100% 100%
src/operations/views/createView.ts 100% 100% 100% 100%
src/operations/views/dropView.ts 100% 100% 100% 100%
src/operations/views/index.ts 100% 100% 100% 100%
src/operations/views/renameView.ts 100% 100% 100% 100%
src/operations/views/shared.ts 100% 66.66% 100% 100%
src/utils/PgLiteral.ts 90.47% 100% 80% 90.47% 44-45
src/utils/StringIdGenerator.ts 100% 100% 100% 100%
src/utils/createSchemalize.ts 100% 100% 100% 100%
src/utils/createTransformer.ts 100% 100% 100% 100%
src/utils/decamelize.ts 100% 100% 100% 100%
src/utils/escapeValue.ts 100% 100% 100% 100%
src/utils/formatLines.ts 100% 100% 100% 100%
src/utils/formatParams.ts 100% 100% 100% 100%
src/utils/formatPartitionColumns.ts 100% 100% 100% 100%
src/utils/getMigrationTableSchema.ts 100% 100% 100% 100%
src/utils/getSchemas.ts 100% 100% 100% 100%
src/utils/identity.ts 100% 100% 100% 100%
src/utils/index.ts 100% 100% 100% 100%
src/utils/intersection.ts 100% 100% 100% 100%
src/utils/makeComment.ts 100% 100% 100% 100%
src/utils/quote.ts 100% 100% 100% 100%
src/utils/toArray.ts 100% 100% 100% 100%
src/utils/types.ts 100% 100% 100% 100%
Generated in workflow #1926 for commit 937bd72 by the Vitest Coverage Report Action

@elucidsoft elucidsoft changed the title Add Unlogged Table Support feat: Add Unlogged Table Support May 9, 2025
@elucidsoft
Copy link
Contributor Author

Not sure about those failed tests? I don't think those are related to this commit.

@Shinigami92
Copy link
Collaborator

Not sure about those failed tests? I don't think those are related to this commit.

please run format, and also use esm syntax in the test migration file (orientate on other files)

@elucidsoft
Copy link
Contributor Author

That's what I deserve for using AI lol...every time...

@Shinigami92 Shinigami92 added c: feature Request for new feature p: 1-normal Nothing urgent labels May 11, 2025
@Shinigami92 Shinigami92 added this to the vAnytime milestone May 11, 2025
Copy link
Collaborator

@Shinigami92 Shinigami92 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please add a test with combination of temporary = true and I think unloggedStr and temporaryStr need to be swapped (as far as I see in the psgl examples)

image

@elucidsoft
Copy link
Contributor Author

Please add a test with combination of temporary = true and I think unloggedStr and temporaryStr need to be swapped (as far as I see in the psgl examples)

image

Let me check that, good catch.

@elucidsoft
Copy link
Contributor Author

So it did pass either way, but I changed the order so it so it matches the docs.

@elucidsoft
Copy link
Contributor Author

I don't think a TEMPORARY UNLOGGED is allowed, although that's not super clear in their docs it would make sense.

@Shinigami92 Shinigami92 changed the title feat: Add Unlogged Table Support feat: add UNLOGGED support for table May 12, 2025
@Shinigami92
Copy link
Collaborator

Shinigami92 commented May 12, 2025

Do we want to add support for https://www.postgresql.org/docs/current/sql-altertable.html#SQL-ALTERTABLE-DESC-SET-LOGGED-UNLOGGED ?

up to you if you want to do this in a separate PR

@Shinigami92 Shinigami92 self-requested a review May 12, 2025 19:48
@elucidsoft
Copy link
Contributor Author

I don't know, I would probably just use pgm.sql to do that type of thing tbh.

@Shinigami92
Copy link
Collaborator

I don't know, I would probably just use pgm.sql to do that type of thing tbh.

Could you explain why?
I mean, why support it for create but not for alter?

@elucidsoft
Copy link
Contributor Author

elucidsoft commented May 13, 2025

I don't know about that @ts-expect-error directive? I didn't add that or change it and now it's failing. Anyways this is my best effort at adding the SET UNLOGGED support for ALTER

Shinigami92
Shinigami92 previously approved these changes May 13, 2025
@Shinigami92
Copy link
Collaborator

@elucidsoft please have a last check if everything is as you want after my changes and then I can merge

@elucidsoft
Copy link
Contributor Author

Yes those changes make it more consistent. LGTM!

@elucidsoft
Copy link
Contributor Author

Actually, it could be argued if UNLOGGED is false that it shouldn't add anything in the ALTER as it's LOGGED by default. Up to you how you want to handle that. Both ways work.

@Shinigami92
Copy link
Collaborator

Actually, it could be argued if UNLOGGED is false that it shouldn't add anything in the ALTER as it's LOGGED by default. Up to you how you want to handle that. Both ways work.

It's required this way, as otherwise you won't be able to unset/revert an UNLOGGED.

@Shinigami92 Shinigami92 merged commit dbf1e75 into salsita:main May 14, 2025
41 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
c: feature Request for new feature p: 1-normal Nothing urgent
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Add Unlogged Table Support
2 participants