diff --git a/packages/web/src/elements/ScrollableTableControl.svelte b/packages/web/src/elements/ScrollableTableControl.svelte
index d5931a404..b7a966d3d 100644
--- a/packages/web/src/elements/ScrollableTableControl.svelte
+++ b/packages/web/src/elements/ScrollableTableControl.svelte
@@ -48,6 +48,20 @@
if (event.keyCode == keycodes.upArrow) {
selectedIndex = Math.max(0, selectedIndex - 1);
}
+ if (event.keyCode == keycodes.pageUp) {
+ selectedIndex -= Math.floor(clientHeight / headerHeight) - 1;
+ if (selectedIndex < 0) selectedIndex = 0;
+ }
+ if (event.keyCode == keycodes.pageDown) {
+ selectedIndex += Math.floor(clientHeight / headerHeight) - 1;
+ if (selectedIndex >= rows.length) selectedIndex = rows.length - 1;
+ }
+ if (event.keyCode == keycodes.home) {
+ selectedIndex = 0;
+ }
+ if (event.keyCode == keycodes.end) {
+ selectedIndex = rows.length - 1;
+ }
};
function scrollToIndex(index) {
diff --git a/packages/web/src/tabs/CompareModelTab.svelte b/packages/web/src/tabs/CompareModelTab.svelte
index 52a940f71..f8e9efac2 100644
--- a/packages/web/src/tabs/CompareModelTab.svelte
+++ b/packages/web/src/tabs/CompareModelTab.svelte
@@ -19,7 +19,7 @@
import SqlEditor from '../query/SqlEditor.svelte';
import useEditorData from '../query/useEditorData';
import { extensions } from '../stores';
- import { computeDbDiffRows } from '../utility/computeDiffRows';
+ import { computeDbDiffRows, computeTableDiffColumns } from '../utility/computeDiffRows';
import { useConnectionInfo, useDatabaseInfo } from '../utility/metadataLoaders';
export let tabid;
@@ -48,6 +48,12 @@
$: targetDbPaired = matchPairedObjects(sourceDb, targetDb, dbDiffOptions);
$: diffRows = computeDbDiffRows(sourceDb, targetDbPaired, dbDiffOptions, driver);
+ $: diffColumns = computeTableDiffColumns(
+ diffRows[pairIndex]?.source,
+ diffRows[pairIndex]?.target,
+ dbDiffOptions,
+ driver
+ );
$: sqlPreview = getAlterTableScript(
diffRows[pairIndex]?.source,
@@ -150,6 +156,25 @@
+
+
+
+
+
+
+
diff --git a/packages/web/src/utility/computeDiffRows.ts b/packages/web/src/utility/computeDiffRows.ts
index b01f7c617..73918e9b6 100644
--- a/packages/web/src/utility/computeDiffRows.ts
+++ b/packages/web/src/utility/computeDiffRows.ts
@@ -55,8 +55,8 @@ export function computeTableDiffColumns(
opts: DbDiffOptions,
driver: EngineDriver
) {
- if (!sourceTable || !sourceTable || !driver) return [];
- return computeDiffRowsCore(sourceTable.columns, targetTable.columns, (a, b) =>
+ if (!driver) return [];
+ return computeDiffRowsCore(sourceTable?.columns || [], targetTable?.columns || [], (a, b) =>
testEqualColumns(a, b, true, true, opts)
).map(row => ({
...row,