/
index.js
66 lines (60 loc) · 1.94 KB
/
index.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
// Copyright (c) 2022, Oracle and/or its affiliates. All rights reserved
'use strict';
const _ = require('lodash');
const { AbstractDialect } = require('../abstract');
const { OracleConnectionManager } = require('./connection-manager');
const { OracleQuery } = require('./query');
const { OracleQueryGenerator } = require('./query-generator');
const DataTypes = require('../../data-types').oracle;
const { OracleQueryInterface } = require('./query-interface');
class OracleDialect extends AbstractDialect {
constructor(sequelize) {
super();
this.sequelize = sequelize;
this.connectionManager = new OracleConnectionManager(this, sequelize);
this.connectionManager.initPools();
this.queryGenerator = new OracleQueryGenerator({
_dialect: this,
sequelize
});
this.queryInterface = new OracleQueryInterface(sequelize, this.queryGenerator);
}
}
OracleDialect.prototype.supports = _.merge(_.cloneDeep(AbstractDialect.prototype.supports), {
'VALUES ()': true,
'LIMIT ON UPDATE': true,
IGNORE: ' IGNORE',
lock: false,
forShare: ' IN SHARE MODE',
index: {
collate: false,
length: false,
parser: false,
type: false,
using: false
},
constraints: {
restrict: false
},
returnValues: false,
returnIntoValues: true,
'ORDER NULLS': true,
schemas: true,
updateOnDuplicate: false,
indexViaAlter: false,
NUMERIC: true,
JSON: true,
upserts: true,
bulkDefault: true,
topLevelOrderByRequired: true,
GEOMETRY: false
});
OracleDialect.prototype.defaultVersion = '18.0.0';
OracleDialect.prototype.Query = OracleQuery;
OracleDialect.prototype.queryGenerator = OracleQueryGenerator;
OracleDialect.prototype.DataTypes = DataTypes;
OracleDialect.prototype.name = 'oracle';
OracleDialect.prototype.TICK_CHAR = '"';
OracleDialect.prototype.TICK_CHAR_LEFT = OracleDialect.prototype.TICK_CHAR;
OracleDialect.prototype.TICK_CHAR_RIGHT = OracleDialect.prototype.TICK_CHAR;
module.exports = OracleDialect;