Skip to content

Commit

Permalink
feat(Firebird SQL): table add/edit/delete support
Browse files Browse the repository at this point in the history
  • Loading branch information
Fabio286 committed Nov 15, 2022
1 parent 27566c1 commit 1b5cc31
Show file tree
Hide file tree
Showing 20 changed files with 242 additions and 201 deletions.
5 changes: 4 additions & 1 deletion src/common/customizations/defaults.ts
Original file line number Diff line number Diff line change
@@ -1,10 +1,14 @@
import { Customizations } from '../interfaces/customizations';

// Everything OFF
export const defaults: Customizations = {
// Defaults
defaultPort: null,
defaultUser: null,
defaultDatabase: null,
dataTypes: [],
indexTypes: [],
foreignActions: [],
// Core
database: false,
collations: false,
Expand Down Expand Up @@ -45,7 +49,6 @@ export const defaults: Customizations = {
exportByChunks: false,
schemaImport: false,
tableSettings: false,
tableOptions: false,
tableArray: false,
tableRealCount: false,
viewSettings: false,
Expand Down
84 changes: 21 additions & 63 deletions src/common/customizations/firebird.ts
Original file line number Diff line number Diff line change
@@ -1,10 +1,26 @@
import { Customizations } from '../interfaces/customizations';
import { defaults } from './defaults';
import firebirdTypes from '../data-types/firebird';

export const customizations: Customizations = {
...defaults,
// Defaults
defaultPort: 3050,
defaultUser: 'SYSDBA',
defaultDatabase: null,
dataTypes: firebirdTypes,
indexTypes: [
'PRIMARY',
// 'CHECK',
'UNIQUE'
],
foreignActions: [
'RESTRICT',
'NO ACTION',
'CASCADE',
'SET NULL',
'SET DEFAULT'
],
// Core
database: true,
collations: false,
Expand All @@ -23,72 +39,14 @@ export const customizations: Customizations = {
tables: true,
views: false,
triggers: true,
triggerFunctions: false,
routines: false,
functions: false,
schedulers: false,
// Settings
elementsWrapper: '',
elementsWrapper: '"',
stringsWrapper: '\'',
tableAdd: false,
tableTruncateDisableFKCheck: false,
viewAdd: false,
triggerAdd: false,
triggerFunctionAdd: false,
routineAdd: false,
functionAdd: false,
schedulerAdd: false,
databaseEdit: false,
schemaEdit: false,
schemaDrop: false,
schemaExport: false,
exportByChunks: false,
schemaImport: false,
tableAdd: true,
tableSettings: true,
tableOptions: false,
tableArray: false,
tableRealCount: false,
viewSettings: false,
triggerSettings: false,
triggerFunctionSettings: false,
routineSettings: false,
functionSettings: false,
schedulerSettings: false,
indexes: false,
foreigns: false,
sortableFields: false,
unsigned: false,
nullable: true,
nullablePrimary: false,
zerofill: false,
autoIncrement: false,
comment: false,
collation: false,
definer: false,
onUpdate: false,
viewAlgorithm: false,
viewSqlSecurity: false,
viewUpdateOption: false,
procedureDeterministic: false,
procedureDataAccess: false,
procedureSql: null,
procedureContext: false,
procedureLanguage: false,
functionDeterministic: false,
functionDataAccess: false,
functionSql: null,
functionContext: false,
functionLanguage: false,
triggerSql: null,
triggerStatementInCreation: false,
triggerMultipleEvents: false,
triggerTableInName: false,
triggerUpdateColumns: false,
triggerOnlyRename: false,
triggerEnableDisable: false,
triggerFunctionSql: null,
triggerFunctionlanguages: null,
parametersLength: false,
languages: null,
readOnlyMode: false
indexes: true,
foreigns: true,
nullable: true
};
14 changes: 14 additions & 0 deletions src/common/customizations/mysql.ts
Original file line number Diff line number Diff line change
@@ -1,12 +1,26 @@
import { Customizations } from '../interfaces/customizations';
import { defaults } from './defaults';
import mysqlTypes from '../data-types/mysql';

export const customizations: Customizations = {
...defaults,
// Defaults
defaultPort: 3306,
defaultUser: 'root',
defaultDatabase: null,
dataTypes: mysqlTypes,
indexTypes: [
'PRIMARY',
'INDEX',
'UNIQUE',
'FULLTEXT'
],
foreignActions: [
'RESTRICT',
'CASCADE',
'SET NULL',
'NO ACTION'
],
// Core
connectionSchema: true,
collations: true,
Expand Down
13 changes: 13 additions & 0 deletions src/common/customizations/postgresql.ts
Original file line number Diff line number Diff line change
@@ -1,12 +1,25 @@
import { Customizations } from '../interfaces/customizations';
import { defaults } from './defaults';
import postgresqlTypes from '../data-types/postgresql';

export const customizations: Customizations = {
...defaults,
// Defaults
defaultPort: 5432,
defaultUser: 'postgres',
defaultDatabase: 'postgres',
dataTypes: postgresqlTypes,
indexTypes: [
'PRIMARY',
'INDEX',
'UNIQUE'
],
foreignActions: [
'RESTRICT',
'CASCADE',
'SET NULL',
'NO ACTION'
],
// Core
database: true,
sslConnection: true,
Expand Down
13 changes: 13 additions & 0 deletions src/common/customizations/sqlite.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,21 @@
import { Customizations } from '../interfaces/customizations';
import { defaults } from './defaults';
import sqliteTypes from '../data-types/sqlite';

export const customizations: Customizations = {
...defaults,
dataTypes: sqliteTypes,
indexTypes: [
'PRIMARY',
'INDEX',
'UNIQUE'
],
foreignActions: [
'RESTRICT',
'CASCADE',
'SET NULL',
'NO ACTION'
],
// Core
fileConnection: true,
// Structure
Expand Down
4 changes: 0 additions & 4 deletions src/common/index-types/firebird.ts

This file was deleted.

6 changes: 0 additions & 6 deletions src/common/index-types/mysql.ts

This file was deleted.

5 changes: 0 additions & 5 deletions src/common/index-types/postgresql.ts

This file was deleted.

5 changes: 0 additions & 5 deletions src/common/index-types/sqlite.ts

This file was deleted.

6 changes: 5 additions & 1 deletion src/common/interfaces/customizations.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,13 @@
import { TypesGroup } from './antares';

export interface Customizations {
// Defaults
defaultPort?: number;
defaultUser?: string;
defaultDatabase?: string;
dataTypes?: TypesGroup[];
indexTypes?: string[];
foreignActions?: string[];
// Core
database?: boolean;
collations?: boolean;
Expand Down Expand Up @@ -30,7 +35,6 @@ export interface Customizations {
stringsWrapper: string;
tableAdd?: boolean;
tableSettings?: boolean;
tableOptions?: boolean;
tableArray?: boolean;
tableRealCount?: boolean;
tableTruncateDisableFKCheck?: boolean;
Expand Down
4 changes: 3 additions & 1 deletion src/main/ipc-handlers/tables.ts
Original file line number Diff line number Diff line change
Expand Up @@ -227,10 +227,11 @@ export default (connections: {[key: string]: antares.Client}) => {
}).join(',');

try {
const result = await connections[params.uid]
const result: unknown = await connections[params.uid]
.schema(params.schema)
.delete(params.table)
.where({ [params.primary]: `IN (${idString})` })
.limit(params.rows.length)
.run();

return { status: 'success', response: result };
Expand Down Expand Up @@ -289,6 +290,7 @@ export default (connections: {[key: string]: antares.Client}) => {
break;
case 'pg':
case 'sqlite':
case 'firebird':
escapedParam = `'${params.row[key].value.replaceAll('\'', '\'\'')}'`;
break;
}
Expand Down
Loading

0 comments on commit 1b5cc31

Please sign in to comment.