-
Notifications
You must be signed in to change notification settings - Fork 192
Expand file tree
/
Copy patharray-tests.js
More file actions
96 lines (86 loc) · 2.25 KB
/
array-tests.js
File metadata and controls
96 lines (86 loc) · 2.25 KB
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
'use strict';
var Harness = require('./support');
var post = Harness.definePostTable();
var Sql = require('../../lib');
// Array columns
Harness.test({
query: post.update({
tags: post.tags.concat(Sql.array('nodejs'))
}),
pg: {
text : 'UPDATE "post" SET "tags" = ("post"."tags" || ARRAY[$1])',
string: 'UPDATE "post" SET "tags" = ("post"."tags" || ARRAY[\'nodejs\'])'
},
params: ['nodejs']
});
Harness.test({
query: post.select(
post.tags.contains(Sql.array('nodejs', 'js'))
),
pg: {
text : 'SELECT ("post"."tags" @> ARRAY[$1, $2]) FROM "post"',
string: 'SELECT ("post"."tags" @> ARRAY[\'nodejs\', \'js\']) FROM "post"'
},
params: ['nodejs', 'js']
});
Harness.test({
query: post.select(
post.tags.containedBy(Sql.array('nodejs', 'js'))
),
pg: {
text : 'SELECT ("post"."tags" <@ ARRAY[$1, $2]) FROM "post"',
string: 'SELECT ("post"."tags" <@ ARRAY[\'nodejs\', \'js\']) FROM "post"'
},
params: ['nodejs', 'js']
});
Harness.test({
query: post.select(
post.tags.overlap(Sql.array('nodejs', 'js'))
),
pg: {
text : 'SELECT ("post"."tags" && ARRAY[$1, $2]) FROM "post"',
string: 'SELECT ("post"."tags" && ARRAY[\'nodejs\', \'js\']) FROM "post"'
},
params: ['nodejs', 'js']
});
Harness.test({
query: post.select(post.tags.slice(2,3)),
pg: {
text : 'SELECT ("post"."tags")[$1:$2] FROM "post"',
string: 'SELECT ("post"."tags")[2:3] FROM "post"'
},
params: [2, 3]
});
Harness.test({
query: post.select(post.tags.at(2)),
pg: {
text : 'SELECT ("post"."tags")[$1] FROM "post"',
string: 'SELECT ("post"."tags")[2] FROM "post"'
},
params: [2]
});
// Array literals
Harness.test({
query: post.select(Sql.array(1,2,3)),
pg: {
text : 'SELECT ARRAY[$1, $2, $3] FROM "post"',
string: 'SELECT ARRAY[1, 2, 3] FROM "post"'
},
params: [1, 2, 3]
});
Harness.test({
query: post.select(Sql.array(1,2,3).slice(2,3)),
pg: {
text : 'SELECT (ARRAY[$1, $2, $3])[$4:$5] FROM "post"',
string: 'SELECT (ARRAY[1, 2, 3])[2:3] FROM "post"'
},
params: [1,2,3,2,3]
});
Harness.test({
query: post.select(Sql.array(1,2,3).at(2)),
pg: {
text : 'SELECT (ARRAY[$1, $2, $3])[$4] FROM "post"',
string: 'SELECT (ARRAY[1, 2, 3])[2] FROM "post"'
},
params: [1,2,3,2]
});