diff --git a/packages/datalib/src/TableGridDisplay.ts b/packages/datalib/src/TableGridDisplay.ts index 7d2e68ab8..1d93bd387 100644 --- a/packages/datalib/src/TableGridDisplay.ts +++ b/packages/datalib/src/TableGridDisplay.ts @@ -81,7 +81,7 @@ export class TableGridDisplay extends GridDisplay { const childAlias = `${column.uniqueName}_ref`; if ((select.from.relations || []).find((x) => x.alias == childAlias)) return; const table = this.getFkTarget(column); - if (table) { + if (table && table.primaryKey) { select.from.relations = [ ...(select.from.relations || []), { @@ -118,7 +118,7 @@ export class TableGridDisplay extends GridDisplay { continue; } const table = this.getFkTarget(column); - if (table && table.columns && table.columns.length > 0) { + if (table && table.columns && table.columns.length > 0 && table.primaryKey) { const hintColumn = table.columns.find((x) => x?.dataType?.toLowerCase()?.includes('char')); if (hintColumn) { const parentUniqueName = column.uniquePath.slice(0, -1).join('.'); diff --git a/packages/engines/mysql/MySqlAnalyser.js b/packages/engines/mysql/MySqlAnalyser.js index 9604af13d..6cab911c7 100644 --- a/packages/engines/mysql/MySqlAnalyser.js +++ b/packages/engines/mysql/MySqlAnalyser.js @@ -20,7 +20,7 @@ function getColumnInfo({ if (numericPrecision && numericScale && isTypeNumeric(dataType)) fullDataType = `${dataType}(${numericPrecision},${numericScale})`; return { - notNull: !isNullable, + notNull: !isNullable || isNullable == 'NO' || isNullable == 'no', autoIncrement: extra && extra.toLowerCase().includes('auto_increment'), columnName, dataType: fullDataType, diff --git a/packages/web/src/widgets/DatabaseWidget.js b/packages/web/src/widgets/DatabaseWidget.js index 7a4b3d9c6..1919acba8 100644 --- a/packages/web/src/widgets/DatabaseWidget.js +++ b/packages/web/src/widgets/DatabaseWidget.js @@ -131,7 +131,7 @@ function SqlObjectListWrapper() { return ( <> Tables, views, functions - + ); } diff --git a/packages/web/src/widgets/ErrorInfo.js b/packages/web/src/widgets/ErrorInfo.js index dcf4e469e..04e50d8ee 100644 --- a/packages/web/src/widgets/ErrorInfo.js +++ b/packages/web/src/widgets/ErrorInfo.js @@ -1,6 +1,7 @@ import React from 'react'; import styled from 'styled-components'; +import { FontIcon } from '../icons'; const Container = styled.div` display: flex; @@ -11,14 +12,13 @@ const Container = styled.div` const Icon = styled.div` font-size: 20pt; margin: 10px; - color: red; `; -export default function ErrorInfo({ message }) { +export default function ErrorInfo({ message, icon = 'fas fa-times-circle red' }) { return ( - + {message} diff --git a/packages/web/src/widgets/StatusBar.js b/packages/web/src/widgets/StatusBar.js index 623cfff5e..33466a953 100644 --- a/packages/web/src/widgets/StatusBar.js +++ b/packages/web/src/widgets/StatusBar.js @@ -42,7 +42,7 @@ export default function StatusBar() { )} - {status && ( + {connection && status && ( {status.name == 'pending' && ( <> @@ -61,6 +61,13 @@ export default function StatusBar() { )} )} + {!connection && ( + + <> + Not connected + + + )} ); }