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
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
|
import { Ok, Error } from "./gleam.mjs"
import { DBErrorJson } from "./glv8.mjs"
import { NilRow } from "./glv8/database.mjs"
export function identity(x) {
return x;
}
export function object() {
return {};
}
export function merge(o, k, v) {
return {
...o,
[k]: v,
};
}
export function get(o, k) {
return k in o ? new Ok(o[k]) : new Error(undefined);
}
export function name(f) {
return f.name;
}
export function id(a) {
return a;
}
export function info() {
return plv8_info();
}
export function reset(c) {
plv8_reset(c);
}
export function reset_all() {
plv8_reset();
}
export function version() {
return plv8.version();
}
export function memory_usage() {
return plv8.memory_usage();
}
export function elog(l, m) {
switch (l) {
case "DEBUG5":
plv8.elog(DEBUG5, m);
break;
case "DEBUG4":
plv8.elog(DEBUG4, m);
break;
case "DEBUG3":
plv8.elog(DEBUG3, m);
break;
case "DEBUG2":
plv8.elog(DEBUG2, m);
break;
case "DEBUG1":
plv8.elog(DEBUG1, m);
break;
case "LOG":
plv8.elog(LOG, m);
break;
case "INFO":
plv8.elog(INFO, m);
break;
case "NOTICE":
plv8.elog(NOTICE, m);
break;
case "WARNING":
plv8.elog(WARNING, m);
break;
case "ERROR":
plv8.elog(ERROR, m);
break;
}
}
export function run_script(s, f) {
plv8.run_script(s, f);
}
export function find_function(f) {
return plv8.find_function(f);
}
export function execute(q, p) {
try {
let r = p ? plv8.execute(q, p) : plv8.execute(q);
return new Ok(r);
} catch (e) {
return new Error(new DBErrorJson(e));
}
}
export function prepare(q, p) {
return plv8.prepare(q, p);
}
export function plan_execute(pl, p) {
try {
let r = pl.execute(p);
return new Ok(r);
} catch (e) {
return new Error(new DBErrorJson(e));
}
}
export function plan_free(pl) {
pl.free();
}
export function plan_cursor(pl, p) {
return pl.cursor(p);
}
export function cursor_fetch(c) {
try {
let r = c.fetch();
return r ? new Ok(r) : new Ok(new NilRow(undefined));
} catch (e) {
return new Error(new DBErrorJson(e));
}
}
export function cursor_fetch_rows(c, n) {
try {
let r = c.fetch(n);
return new Ok(r);
} catch (e) {
return new Error(new DBErrorJson(e));
}
}
export function cursor_move(c, n) {
c.move(n);
}
export function cursor_close(c) {
c.close();
}
export function subtransaction(f) {
try {
plv8.subtransaction(f);
return new Ok(undefined);
} catch (e) {
return new Error(new DBErrorJson(e));
}
}
export function get_window_object() {
return plv8.get_window_object();
}
export function check_nil(n) {
return n ? true : false;
}
|