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
+ >
+
+ )}
);
}