Merge pull request 'fixes' (#18) from dev into main
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
ci/woodpecker/tag/woodpecker Pipeline was successful

Reviewed-on: #18
This commit is contained in:
jusax23 2023-03-24 16:48:40 +01:00
commit 57544dffd2
5 changed files with 22 additions and 8 deletions

4
package-lock.json generated
View file

@ -1,12 +1,12 @@
{
"name": "dblang",
"version": "0.9.0",
"version": "0.9.2",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "dblang",
"version": "0.9.0",
"version": "0.9.2",
"license": "UNLICENSED",
"dependencies": {
"mariadb": "^3.0.2",

View file

@ -1,6 +1,6 @@
{
"name": "dblang",
"version": "0.9.0",
"version": "0.9.2",
"description": "",
"main": "dist/db.js",
"types": "dist/db.d.ts",

View file

@ -132,10 +132,12 @@ export class uniqueConstraint implements Constraint {
this.attrs = attrs;
}
check(table: Table): boolean | string {
let prim = true;
for (let i = 0; i < this.attrs.length; i++) {
if (this.attrs[i].ops.primaryKey) return "Can not combine unique Constraint and primary key";
if (!this.attrs[i].ops.primaryKey) prim = false;
if (this.attrs[i].table != table) return "Referencing Attributes must be in host Table.";
}
if (prim) return "Can not combine unique Constraint and primary key";
return false;
}
uses(attr: Attribute): boolean {

View file

@ -604,6 +604,13 @@ export class Handler {
},
}
catcherrors = {
insert: (err: any) => {
if(err?.code == "ER_DUP_ENTRY") return {affectedRows: 0, insertId: -1};
throw err;
}
}
responses = {
readResponse: (resp: any) => new readResponse(resp),
writeResponse: (resp: any) => new writeResponse(resp.affectedRows),

View file

@ -138,8 +138,13 @@ export class insertQuery {
const handler = db.getHandler();
const builder = this.serialize(handler);
const s = handler.builders.query(builder);
let readResp = await db.query(s, printQuery);
return db.getHandler().responses.insertResponse(readResp);
let readResp: any;
try {
readResp = await db.query(s, printQuery);
} catch (err) {
readResp = handler.catcherrors.insert(err);
}
return handler.responses.insertResponse(readResp);
}
}
@ -168,7 +173,7 @@ export class updateQuery {
const builder = this.serialize(handler);
const s = handler.builders.query(builder);
let readResp = await db.query(s, printQuery);
return db.getHandler().responses.writeResponse(readResp);
return handler.responses.writeResponse(readResp);
}
}
@ -190,6 +195,6 @@ export class removeQuery {
const builder = this.serialize(handler);
const s = handler.builders.query(builder);
let readResp = await db.query(s, printQuery);
return db.getHandler().responses.writeResponse(readResp);
return handler.responses.writeResponse(readResp);
}
}