feat: fetch only base column info for modifications, drop columnComment only if exists

This commit is contained in:
Pavel
2025-08-05 17:39:53 +02:00
parent 32b1a5b22d
commit de43880a1c
4 changed files with 33 additions and 8 deletions

View File

@@ -90,7 +90,7 @@ function getColumnInfo({
/**
* @param {ReturnType<objectTypeToField>} fieldType
* @param {any} item
* @param {Array<ReturnType<getColumnInfo>>} columns
* @param {Array<{ objectId: string; columnComment: string }>} columns
* @returns {string|null}
*/
function createObjectContentHash(fieldType, item, columns) {
@@ -273,8 +273,8 @@ class MsSqlAnalyser extends DatabaseAnalyser {
async _getFastSnapshot() {
const modificationsQueryData = await this.analyserQuery('modifications');
const columnsRows = await this.analyserQuery('columns', ['tables']);
const columns = columnsRows.rows.map(getColumnInfo);
const baseColumnsRows = await this.analyserQuery('columns', ['tables']);
const baseColumns = baseColumnsRows.rows.map(getColumnInfo);
const tableSizes = await this.analyserQuery('tableSizes');
const res = DatabaseAnalyser.createEmptyStructure();
@@ -285,7 +285,7 @@ class MsSqlAnalyser extends DatabaseAnalyser {
res[field].push({
objectId,
contentHash: createObjectContentHash(field, item, columns),
contentHash: createObjectContentHash(field, item, baseColumns),
schemaName,
pureName,
});

View File

@@ -0,0 +1,10 @@
module.exports = `
select c.object_id as objectId,
ep.value as columnComment
from sys.columns c
inner join sys.objects o on c.object_id = o.object_id
INNER JOIN sys.schemas u ON u.schema_id=o.schema_id
left join sys.extended_properties ep on ep.major_id = c.object_id and ep.minor_id = c.column_id and ep.name = 'MS_Description'
where o.type IN ('U', 'V') and o.object_id =OBJECT_ID_CONDITION and u.name =SCHEMA_NAME_CONDITION
order by c.column_id
`;

View File

@@ -13,6 +13,7 @@ const viewColumns = require('./viewColumns');
const indexes = require('./indexes');
const indexcols = require('./indexcols');
const triggers = require('./triggers');
const baseColumns = require('./baseColumns');
module.exports = {
columns,
@@ -30,4 +31,5 @@ module.exports = {
indexcols,
tableSizes,
triggers,
baseColumns,
};