@hawiah/postgres 0.1.1 → 0.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -4,52 +4,55 @@ import { IDriver, Query, Data } from '../interfaces/IDriver';
|
|
|
4
4
|
* PostgreSQL driver configuration options
|
|
5
5
|
*/
|
|
6
6
|
export interface PostgreSQLDriverOptions {
|
|
7
|
-
/**
|
|
8
|
-
* PostgreSQL connection string (recommended)
|
|
9
|
-
* Example: 'postgresql://user:password@host:port/database'
|
|
10
|
-
*/
|
|
7
|
+
/** PostgreSQL connection string (e.g. 'postgres://user:pass@host:port/db') */
|
|
11
8
|
connectionString?: string;
|
|
12
|
-
/**
|
|
13
|
-
* Or individual connection parameters
|
|
14
|
-
*/
|
|
9
|
+
/** Database host */
|
|
15
10
|
host?: string;
|
|
11
|
+
/** Database port (default: 5432) */
|
|
16
12
|
port?: number;
|
|
13
|
+
/** Database user */
|
|
17
14
|
user?: string;
|
|
15
|
+
/** Database password */
|
|
18
16
|
password?: string;
|
|
17
|
+
/** Database name */
|
|
19
18
|
database?: string;
|
|
20
|
-
/**
|
|
21
|
-
* Table name to use
|
|
22
|
-
*/
|
|
19
|
+
/** Table name to use for storing data */
|
|
23
20
|
tableName: string;
|
|
24
|
-
/**
|
|
25
|
-
* SSL configuration (required for cloud providers like Neon, Supabase)
|
|
26
|
-
*/
|
|
21
|
+
/** SSL configuration (required for some cloud providers) */
|
|
27
22
|
ssl?: boolean | object;
|
|
28
|
-
/**
|
|
29
|
-
* Connection pool size (default: 10)
|
|
30
|
-
*/
|
|
23
|
+
/** Connection pool size (default: 10) */
|
|
31
24
|
max?: number;
|
|
32
|
-
/**
|
|
33
|
-
* Additional PostgreSQL pool options
|
|
34
|
-
*/
|
|
25
|
+
/** Additional pool configuration */
|
|
35
26
|
poolOptions?: PoolConfig;
|
|
36
27
|
}
|
|
37
28
|
/**
|
|
38
29
|
* Driver implementation for PostgreSQL using node-postgres.
|
|
39
|
-
*
|
|
30
|
+
* Supports Hybrid Schema (Real Columns + JSONB) for optimized storage and querying.
|
|
40
31
|
*/
|
|
41
32
|
export declare class PostgreSQLDriver implements IDriver {
|
|
42
33
|
private pool;
|
|
43
34
|
private tableName;
|
|
44
35
|
private config;
|
|
36
|
+
private schema;
|
|
37
|
+
/**
|
|
38
|
+
* Database type (sql or nosql).
|
|
39
|
+
* Defaults to 'nosql' until a schema is set via setSchema().
|
|
40
|
+
*/
|
|
41
|
+
dbType: 'sql' | 'nosql';
|
|
45
42
|
/**
|
|
46
43
|
* Creates a new instance of PostgreSQLDriver
|
|
47
44
|
* @param options - PostgreSQL driver configuration options
|
|
48
45
|
*/
|
|
49
46
|
constructor(options: PostgreSQLDriverOptions);
|
|
47
|
+
/**
|
|
48
|
+
* Sets the schema for the driver.
|
|
49
|
+
* Switches the driver to SQL mode to use real columns.
|
|
50
|
+
* @param schema - The schema instance
|
|
51
|
+
*/
|
|
52
|
+
setSchema(schema: any): void;
|
|
50
53
|
/**
|
|
51
54
|
* Connects to the PostgreSQL database.
|
|
52
|
-
* Creates the table if it doesn't exist.
|
|
55
|
+
* Creates the table (Hybrid or JSONB only) if it doesn't exist.
|
|
53
56
|
*/
|
|
54
57
|
connect(): Promise<void>;
|
|
55
58
|
/**
|
|
@@ -58,12 +61,14 @@ export declare class PostgreSQLDriver implements IDriver {
|
|
|
58
61
|
disconnect(): Promise<void>;
|
|
59
62
|
/**
|
|
60
63
|
* Inserts a new record into the database.
|
|
64
|
+
* Uses real columns if schema is present, otherwise stores as JSONB.
|
|
61
65
|
* @param data - The data to insert
|
|
62
66
|
* @returns The inserted record with ID
|
|
63
67
|
*/
|
|
64
68
|
set(data: Data): Promise<Data>;
|
|
65
69
|
/**
|
|
66
70
|
* Retrieves records matching the query.
|
|
71
|
+
* Merges JSONB data with columns if in Hybrid mode.
|
|
67
72
|
* @param query - The query criteria
|
|
68
73
|
* @returns Array of matching records
|
|
69
74
|
*/
|
|
@@ -76,6 +81,7 @@ export declare class PostgreSQLDriver implements IDriver {
|
|
|
76
81
|
getOne(query: Query): Promise<Data | null>;
|
|
77
82
|
/**
|
|
78
83
|
* Updates records matching the query.
|
|
84
|
+
* Updates both columns and extra JSONB data accordingly.
|
|
79
85
|
* @param query - The query criteria
|
|
80
86
|
* @param data - The data to update
|
|
81
87
|
* @returns The number of updated records
|
|
@@ -119,6 +125,27 @@ export declare class PostgreSQLDriver implements IDriver {
|
|
|
119
125
|
* @private
|
|
120
126
|
*/
|
|
121
127
|
private matchesQuery;
|
|
128
|
+
/**
|
|
129
|
+
* Maps Hawiah types to Postgres types.
|
|
130
|
+
* @param type - The Hawiah schema type
|
|
131
|
+
* @returns The corresponding PostgreSQL type string
|
|
132
|
+
* @private
|
|
133
|
+
*/
|
|
134
|
+
private mapHawiahTypeToSQL;
|
|
135
|
+
/**
|
|
136
|
+
* Splits data into schema columns and extra data.
|
|
137
|
+
* @param data - The full data object
|
|
138
|
+
* @returns Object containing separate schemaData and extraData
|
|
139
|
+
* @private
|
|
140
|
+
*/
|
|
141
|
+
private splitData;
|
|
142
|
+
/**
|
|
143
|
+
* Merges schema columns and extra data back into a single object.
|
|
144
|
+
* @param row - The raw database row
|
|
145
|
+
* @returns The fully merged data object
|
|
146
|
+
* @private
|
|
147
|
+
*/
|
|
148
|
+
private mergeData;
|
|
122
149
|
/**
|
|
123
150
|
* Gets the PostgreSQL connection pool.
|
|
124
151
|
* @returns The PostgreSQL connection pool
|
|
@@ -129,7 +156,7 @@ export declare class PostgreSQLDriver implements IDriver {
|
|
|
129
156
|
* WARNING: Use with caution. This bypasses the abstraction layer.
|
|
130
157
|
* @param sql - The SQL query to execute
|
|
131
158
|
* @param params - Optional parameters for the query
|
|
132
|
-
* @returns Query results
|
|
159
|
+
* @returns Query results (rows)
|
|
133
160
|
*/
|
|
134
161
|
executeRaw(sql: string, params?: any[]): Promise<any>;
|
|
135
162
|
/**
|
|
@@ -4,12 +4,18 @@ exports.PostgreSQLDriver = void 0;
|
|
|
4
4
|
const pg_1 = require("pg");
|
|
5
5
|
/**
|
|
6
6
|
* Driver implementation for PostgreSQL using node-postgres.
|
|
7
|
-
*
|
|
7
|
+
* Supports Hybrid Schema (Real Columns + JSONB) for optimized storage and querying.
|
|
8
8
|
*/
|
|
9
9
|
class PostgreSQLDriver {
|
|
10
10
|
pool = null;
|
|
11
11
|
tableName;
|
|
12
12
|
config;
|
|
13
|
+
schema = null;
|
|
14
|
+
/**
|
|
15
|
+
* Database type (sql or nosql).
|
|
16
|
+
* Defaults to 'nosql' until a schema is set via setSchema().
|
|
17
|
+
*/
|
|
18
|
+
dbType = 'nosql';
|
|
13
19
|
/**
|
|
14
20
|
* Creates a new instance of PostgreSQLDriver
|
|
15
21
|
* @param options - PostgreSQL driver configuration options
|
|
@@ -28,21 +34,55 @@ class PostgreSQLDriver {
|
|
|
28
34
|
...options.poolOptions,
|
|
29
35
|
};
|
|
30
36
|
}
|
|
37
|
+
/**
|
|
38
|
+
* Sets the schema for the driver.
|
|
39
|
+
* Switches the driver to SQL mode to use real columns.
|
|
40
|
+
* @param schema - The schema instance
|
|
41
|
+
*/
|
|
42
|
+
setSchema(schema) {
|
|
43
|
+
this.schema = schema;
|
|
44
|
+
this.dbType = 'sql';
|
|
45
|
+
}
|
|
31
46
|
/**
|
|
32
47
|
* Connects to the PostgreSQL database.
|
|
33
|
-
* Creates the table if it doesn't exist.
|
|
48
|
+
* Creates the table (Hybrid or JSONB only) if it doesn't exist.
|
|
34
49
|
*/
|
|
35
50
|
async connect() {
|
|
36
51
|
this.pool = new pg_1.Pool(this.config);
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
)
|
|
44
|
-
|
|
52
|
+
let createTableSQL = '';
|
|
53
|
+
if (this.schema && this.dbType === 'sql') {
|
|
54
|
+
const definition = typeof this.schema.getDefinition === 'function'
|
|
55
|
+
? this.schema.getDefinition()
|
|
56
|
+
: this.schema;
|
|
57
|
+
// Map schema fields to Postgres column definitions
|
|
58
|
+
const columns = Object.entries(definition).map(([key, type]) => {
|
|
59
|
+
const sqlType = this.mapHawiahTypeToSQL(type);
|
|
60
|
+
return `${key} ${sqlType}`; // e.g. "age INTEGER"
|
|
61
|
+
}).join(', \n');
|
|
62
|
+
// Hybrid Table: Real Columns + _extras JSONB
|
|
63
|
+
createTableSQL = `
|
|
64
|
+
CREATE TABLE IF NOT EXISTS ${this.tableName} (
|
|
65
|
+
_id VARCHAR(100) PRIMARY KEY,
|
|
66
|
+
${columns},
|
|
67
|
+
_extras JSONB DEFAULT '{}',
|
|
68
|
+
_createdAt TIMESTAMP NOT NULL,
|
|
69
|
+
_updatedAt TIMESTAMP NOT NULL
|
|
70
|
+
)
|
|
71
|
+
`;
|
|
72
|
+
}
|
|
73
|
+
else {
|
|
74
|
+
// NoSQL Mode: Everything stored in _data JSONB
|
|
75
|
+
createTableSQL = `
|
|
76
|
+
CREATE TABLE IF NOT EXISTS ${this.tableName} (
|
|
77
|
+
_id VARCHAR(100) PRIMARY KEY,
|
|
78
|
+
_data JSONB NOT NULL,
|
|
79
|
+
_createdAt TIMESTAMP NOT NULL,
|
|
80
|
+
_updatedAt TIMESTAMP NOT NULL
|
|
81
|
+
)
|
|
82
|
+
`;
|
|
83
|
+
}
|
|
45
84
|
await this.pool.query(createTableSQL);
|
|
85
|
+
// Ensure standard indexes exist
|
|
46
86
|
await this.pool.query(`CREATE INDEX IF NOT EXISTS idx_${this.tableName}_createdAt ON ${this.tableName}(_createdAt)`);
|
|
47
87
|
await this.pool.query(`CREATE INDEX IF NOT EXISTS idx_${this.tableName}_updatedAt ON ${this.tableName}(_updatedAt)`);
|
|
48
88
|
}
|
|
@@ -57,6 +97,7 @@ class PostgreSQLDriver {
|
|
|
57
97
|
}
|
|
58
98
|
/**
|
|
59
99
|
* Inserts a new record into the database.
|
|
100
|
+
* Uses real columns if schema is present, otherwise stores as JSONB.
|
|
60
101
|
* @param data - The data to insert
|
|
61
102
|
* @returns The inserted record with ID
|
|
62
103
|
*/
|
|
@@ -70,32 +111,53 @@ class PostgreSQLDriver {
|
|
|
70
111
|
_createdAt: now.toISOString(),
|
|
71
112
|
_updatedAt: now.toISOString(),
|
|
72
113
|
};
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
114
|
+
if (this.schema && this.dbType === 'sql') {
|
|
115
|
+
const { schemaData, extraData } = this.splitData(record);
|
|
116
|
+
const schemaKeys = Object.keys(schemaData);
|
|
117
|
+
const schemaValues = Object.values(schemaData);
|
|
118
|
+
// Columns: ID + Schema Fields + Extras + Times
|
|
119
|
+
const cols = ['_id', ...schemaKeys, '_extras', '_createdAt', '_updatedAt'];
|
|
120
|
+
// Placeholders: $1, $2, ...
|
|
121
|
+
const valueParams = cols.map((_, i) => `$${i + 1}`).join(', ');
|
|
122
|
+
// Values mapped to placeholders
|
|
123
|
+
const values = [id, ...schemaValues, JSON.stringify(extraData), now, now];
|
|
124
|
+
const sql = `INSERT INTO ${this.tableName} (${cols.join(', ')}) VALUES (${valueParams})`;
|
|
125
|
+
await this.pool.query(sql, values);
|
|
126
|
+
}
|
|
127
|
+
else {
|
|
128
|
+
const sql = `
|
|
129
|
+
INSERT INTO ${this.tableName} (_id, _data, _createdAt, _updatedAt)
|
|
130
|
+
VALUES ($1, $2, $3, $4)
|
|
131
|
+
`;
|
|
132
|
+
await this.pool.query(sql, [id, JSON.stringify(record), now, now]);
|
|
133
|
+
}
|
|
83
134
|
return record;
|
|
84
135
|
}
|
|
85
136
|
/**
|
|
86
137
|
* Retrieves records matching the query.
|
|
138
|
+
* Merges JSONB data with columns if in Hybrid mode.
|
|
87
139
|
* @param query - The query criteria
|
|
88
140
|
* @returns Array of matching records
|
|
89
141
|
*/
|
|
90
142
|
async get(query) {
|
|
91
143
|
this.ensureConnected();
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
144
|
+
if (this.schema && this.dbType === 'sql') {
|
|
145
|
+
const sql = `SELECT * FROM ${this.tableName}`;
|
|
146
|
+
const result = await this.pool.query(sql);
|
|
147
|
+
// Merge Real Columns + Extras JSONB
|
|
148
|
+
const records = result.rows.map(row => this.mergeData(row));
|
|
149
|
+
if (Object.keys(query).length === 0)
|
|
150
|
+
return records;
|
|
151
|
+
return records.filter(record => this.matchesQuery(record, query));
|
|
152
|
+
}
|
|
153
|
+
else {
|
|
154
|
+
const sql = `SELECT _data FROM ${this.tableName}`;
|
|
155
|
+
const result = await this.pool.query(sql);
|
|
156
|
+
const allRecords = result.rows.map((row) => row._data);
|
|
157
|
+
if (Object.keys(query).length === 0)
|
|
158
|
+
return allRecords;
|
|
159
|
+
return allRecords.filter((record) => this.matchesQuery(record, query));
|
|
97
160
|
}
|
|
98
|
-
return allRecords.filter((record) => this.matchesQuery(record, query));
|
|
99
161
|
}
|
|
100
162
|
/**
|
|
101
163
|
* Retrieves a single record matching the query.
|
|
@@ -105,18 +167,23 @@ class PostgreSQLDriver {
|
|
|
105
167
|
async getOne(query) {
|
|
106
168
|
this.ensureConnected();
|
|
107
169
|
if (query._id) {
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
return result.rows[0]
|
|
170
|
+
if (this.schema && this.dbType === 'sql') {
|
|
171
|
+
const sql = `SELECT * FROM ${this.tableName} WHERE _id = $1 LIMIT 1`;
|
|
172
|
+
const result = await this.pool.query(sql, [query._id]);
|
|
173
|
+
return result.rows.length > 0 ? this.mergeData(result.rows[0]) : null;
|
|
174
|
+
}
|
|
175
|
+
else {
|
|
176
|
+
const sql = `SELECT _data FROM ${this.tableName} WHERE _id = $1 LIMIT 1`;
|
|
177
|
+
const result = await this.pool.query(sql, [query._id]);
|
|
178
|
+
return result.rows.length > 0 ? result.rows[0]._data : null;
|
|
112
179
|
}
|
|
113
|
-
return null;
|
|
114
180
|
}
|
|
115
181
|
const results = await this.get(query);
|
|
116
182
|
return results.length > 0 ? results[0] : null;
|
|
117
183
|
}
|
|
118
184
|
/**
|
|
119
185
|
* Updates records matching the query.
|
|
186
|
+
* Updates both columns and extra JSONB data accordingly.
|
|
120
187
|
* @param query - The query criteria
|
|
121
188
|
* @param data - The data to update
|
|
122
189
|
* @returns The number of updated records
|
|
@@ -125,24 +192,37 @@ class PostgreSQLDriver {
|
|
|
125
192
|
this.ensureConnected();
|
|
126
193
|
const records = await this.get(query);
|
|
127
194
|
let count = 0;
|
|
128
|
-
const sql = `
|
|
129
|
-
UPDATE ${this.tableName}
|
|
130
|
-
SET _data = $1, _updatedAt = $2
|
|
131
|
-
WHERE _id = $3
|
|
132
|
-
`;
|
|
133
195
|
for (const record of records) {
|
|
134
196
|
const updatedRecord = {
|
|
135
197
|
...record,
|
|
136
198
|
...data,
|
|
137
199
|
_updatedAt: new Date().toISOString(),
|
|
138
200
|
};
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
201
|
+
const now = new Date();
|
|
202
|
+
if (this.schema && this.dbType === 'sql') {
|
|
203
|
+
const { schemaData, extraData } = this.splitData(updatedRecord);
|
|
204
|
+
const schemaKeys = Object.keys(schemaData);
|
|
205
|
+
const schemaValues = Object.values(schemaData);
|
|
206
|
+
// Build dynamic SET clause: "col1 = $1, col2 = $2, ..."
|
|
207
|
+
let setParts = [];
|
|
208
|
+
let params = [];
|
|
209
|
+
let idx = 1;
|
|
210
|
+
for (let i = 0; i < schemaKeys.length; i++) {
|
|
211
|
+
setParts.push(`${schemaKeys[i]} = $${idx++}`);
|
|
212
|
+
params.push(schemaValues[i]);
|
|
213
|
+
}
|
|
214
|
+
setParts.push(`_extras = $${idx++}`);
|
|
215
|
+
params.push(JSON.stringify(extraData));
|
|
216
|
+
setParts.push(`_updatedAt = $${idx++}`);
|
|
217
|
+
params.push(now);
|
|
218
|
+
params.push(record._id); // Last param is ID
|
|
219
|
+
const sql = `UPDATE ${this.tableName} SET ${setParts.join(', ')} WHERE _id = $${idx}`;
|
|
220
|
+
await this.pool.query(sql, params);
|
|
221
|
+
}
|
|
222
|
+
else {
|
|
223
|
+
const sql = `UPDATE ${this.tableName} SET _data = $1, _updatedAt = $2 WHERE _id = $3`;
|
|
224
|
+
await this.pool.query(sql, [JSON.stringify(updatedRecord), now, record._id]);
|
|
225
|
+
}
|
|
146
226
|
count++;
|
|
147
227
|
}
|
|
148
228
|
return count;
|
|
@@ -221,19 +301,88 @@ class PostgreSQLDriver {
|
|
|
221
301
|
}
|
|
222
302
|
return true;
|
|
223
303
|
}
|
|
304
|
+
/**
|
|
305
|
+
* Maps Hawiah types to Postgres types.
|
|
306
|
+
* @param type - The Hawiah schema type
|
|
307
|
+
* @returns The corresponding PostgreSQL type string
|
|
308
|
+
* @private
|
|
309
|
+
*/
|
|
310
|
+
mapHawiahTypeToSQL(type) {
|
|
311
|
+
let t = type;
|
|
312
|
+
if (typeof type === 'object' && type !== null && type.type) {
|
|
313
|
+
t = type.type;
|
|
314
|
+
}
|
|
315
|
+
t = String(t).toUpperCase();
|
|
316
|
+
if (t.includes('STRING') || t.includes('TEXT') || t.includes('EMAIL') || t.includes('URL') || t.includes('CHAR'))
|
|
317
|
+
return 'TEXT';
|
|
318
|
+
if (t.includes('UUID'))
|
|
319
|
+
return 'UUID'; // Native UUID support
|
|
320
|
+
if (t.includes('NUMBER')) {
|
|
321
|
+
if (t.includes('INT'))
|
|
322
|
+
return 'INTEGER';
|
|
323
|
+
if (t.includes('BIGINT'))
|
|
324
|
+
return 'BIGINT';
|
|
325
|
+
return 'REAL'; // Default float
|
|
326
|
+
}
|
|
327
|
+
if (t.includes('BOOLEAN'))
|
|
328
|
+
return 'BOOLEAN';
|
|
329
|
+
if (t.includes('DATE'))
|
|
330
|
+
return 'TIMESTAMP';
|
|
331
|
+
if (t.includes('JSON'))
|
|
332
|
+
return 'JSONB'; // Native JSON support
|
|
333
|
+
if (t.includes('BLOB'))
|
|
334
|
+
return 'BYTEA';
|
|
335
|
+
return 'TEXT';
|
|
336
|
+
}
|
|
337
|
+
/**
|
|
338
|
+
* Splits data into schema columns and extra data.
|
|
339
|
+
* @param data - The full data object
|
|
340
|
+
* @returns Object containing separate schemaData and extraData
|
|
341
|
+
* @private
|
|
342
|
+
*/
|
|
343
|
+
splitData(data) {
|
|
344
|
+
if (!this.schema)
|
|
345
|
+
return { schemaData: {}, extraData: data };
|
|
346
|
+
const definition = typeof this.schema.getDefinition === 'function'
|
|
347
|
+
? this.schema.getDefinition()
|
|
348
|
+
: this.schema;
|
|
349
|
+
const schemaData = {};
|
|
350
|
+
const extraData = {};
|
|
351
|
+
for (const [key, value] of Object.entries(data)) {
|
|
352
|
+
if (key in definition) {
|
|
353
|
+
schemaData[key] = value;
|
|
354
|
+
}
|
|
355
|
+
else if (!['_id', '_createdAt', '_updatedAt'].includes(key)) {
|
|
356
|
+
extraData[key] = value;
|
|
357
|
+
}
|
|
358
|
+
}
|
|
359
|
+
return { schemaData, extraData };
|
|
360
|
+
}
|
|
361
|
+
/**
|
|
362
|
+
* Merges schema columns and extra data back into a single object.
|
|
363
|
+
* @param row - The raw database row
|
|
364
|
+
* @returns The fully merged data object
|
|
365
|
+
* @private
|
|
366
|
+
*/
|
|
367
|
+
mergeData(row) {
|
|
368
|
+
const { _extras, ...rest } = row;
|
|
369
|
+
// Postgres pg driver automatically parses JSONB columns into objects
|
|
370
|
+
const extras = (typeof _extras === 'object' && _extras !== null) ? _extras :
|
|
371
|
+
(typeof _extras === 'string' ? JSON.parse(_extras) : {});
|
|
372
|
+
return { ...rest, ...extras };
|
|
373
|
+
}
|
|
374
|
+
// --- Public Utility Methods ---
|
|
224
375
|
/**
|
|
225
376
|
* Gets the PostgreSQL connection pool.
|
|
226
377
|
* @returns The PostgreSQL connection pool
|
|
227
378
|
*/
|
|
228
|
-
getPool() {
|
|
229
|
-
return this.pool;
|
|
230
|
-
}
|
|
379
|
+
getPool() { return this.pool; }
|
|
231
380
|
/**
|
|
232
381
|
* Executes a raw SQL query.
|
|
233
382
|
* WARNING: Use with caution. This bypasses the abstraction layer.
|
|
234
383
|
* @param sql - The SQL query to execute
|
|
235
384
|
* @param params - Optional parameters for the query
|
|
236
|
-
* @returns Query results
|
|
385
|
+
* @returns Query results (rows)
|
|
237
386
|
*/
|
|
238
387
|
async executeRaw(sql, params) {
|
|
239
388
|
this.ensureConnected();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PostgreSQLDriver.js","sourceRoot":"","sources":["../../src/drivers/PostgreSQLDriver.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"PostgreSQLDriver.js","sourceRoot":"","sources":["../../src/drivers/PostgreSQLDriver.ts"],"names":[],"mappings":"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"}
|
|
@@ -65,4 +65,13 @@ export interface IDriver {
|
|
|
65
65
|
* @returns Number of matching records
|
|
66
66
|
*/
|
|
67
67
|
count(query: Query): Promise<number>;
|
|
68
|
+
/**
|
|
69
|
+
* Database type (sql or nosql)
|
|
70
|
+
* Used to determine schema behavior
|
|
71
|
+
*/
|
|
72
|
+
dbType?: 'sql' | 'nosql';
|
|
73
|
+
/**
|
|
74
|
+
* Optional: Set schema for the driver to use (e.g. for creating SQL tables)
|
|
75
|
+
*/
|
|
76
|
+
setSchema?(schema: any): void;
|
|
68
77
|
}
|
package/package.json
CHANGED