@@ -26,6 +26,101 @@ test('parsing array results', function() {
26
26
pg . end ( ) ;
27
27
} ) )
28
28
} )
29
+
30
+ test ( 'empty array' , function ( ) {
31
+ client . query ( "SELECT '{}'::text[] as names" , assert . success ( function ( result ) {
32
+ var names = result . rows [ 0 ] . names ;
33
+ assert . lengthIs ( names , 0 ) ;
34
+ pg . end ( ) ;
35
+ } ) )
36
+ } )
37
+
38
+ test ( 'element containing comma' , function ( ) {
39
+ client . query ( "SELECT '{\"joe,bob\",jim}'::text[] as names" , assert . success ( function ( result ) {
40
+ var names = result . rows [ 0 ] . names ;
41
+ assert . lengthIs ( names , 2 ) ;
42
+ assert . equal ( names [ 0 ] , 'joe,bob' ) ;
43
+ assert . equal ( names [ 1 ] , 'jim' ) ;
44
+ pg . end ( ) ;
45
+ } ) )
46
+ } )
47
+
48
+ test ( 'bracket in quotes' , function ( ) {
49
+ client . query ( "SELECT '{\"{\",\"}\"}'::text[] as names" , assert . success ( function ( result ) {
50
+ var names = result . rows [ 0 ] . names ;
51
+ assert . lengthIs ( names , 2 ) ;
52
+ assert . equal ( names [ 0 ] , '{' ) ;
53
+ assert . equal ( names [ 1 ] , '}' ) ;
54
+ pg . end ( ) ;
55
+ } ) )
56
+ } )
57
+
58
+ test ( 'null value' , function ( ) {
59
+ client . query ( "SELECT '{joe,null,bob}'::text[] as names" , assert . success ( function ( result ) {
60
+ var names = result . rows [ 0 ] . names ;
61
+ assert . lengthIs ( names , 3 ) ;
62
+ assert . equal ( names [ 0 ] , 'joe' ) ;
63
+ assert . equal ( names [ 1 ] , null ) ;
64
+ assert . equal ( names [ 2 ] , 'bob' ) ;
65
+ pg . end ( ) ;
66
+ } ) )
67
+ } )
68
+
69
+ test ( 'element containing quote char' , function ( ) {
70
+ client . query ( "SELECT '{\"joe''\",jim'',\"bob\\\\\"\"}'::text[] as names" , assert . success ( function ( result ) {
71
+ var names = result . rows [ 0 ] . names ;
72
+ assert . lengthIs ( names , 3 ) ;
73
+ assert . equal ( names [ 0 ] , 'joe\'' ) ;
74
+ assert . equal ( names [ 1 ] , 'jim\'' ) ;
75
+ assert . equal ( names [ 2 ] , 'bob"' ) ;
76
+ pg . end ( ) ;
77
+ } ) )
78
+ } )
79
+
80
+ test ( 'nested array' , function ( ) {
81
+ client . query ( "SELECT '{{1,joe},{2,bob}}'::text[] as names" , assert . success ( function ( result ) {
82
+ var names = result . rows [ 0 ] . names ;
83
+ assert . lengthIs ( names , 2 ) ;
84
+
85
+ assert . lengthIs ( names [ 0 ] , 2 ) ;
86
+ assert . equal ( names [ 0 ] [ 0 ] , '1' ) ;
87
+ assert . equal ( names [ 0 ] [ 1 ] , 'joe' ) ;
88
+
89
+ assert . lengthIs ( names [ 1 ] , 2 ) ;
90
+ assert . equal ( names [ 1 ] [ 0 ] , '2' ) ;
91
+ assert . equal ( names [ 1 ] [ 1 ] , 'bob' ) ;
92
+
93
+ pg . end ( ) ;
94
+ } ) )
95
+ } )
96
+
97
+ test ( 'integer array' , function ( ) {
98
+ client . query ( "SELECT '{1,2,3}'::integer[] as names" , assert . success ( function ( result ) {
99
+ var names = result . rows [ 0 ] . names ;
100
+ assert . lengthIs ( names , 3 ) ;
101
+ assert . equal ( names [ 0 ] , 1 ) ;
102
+ assert . equal ( names [ 1 ] , 2 ) ;
103
+ assert . equal ( names [ 2 ] , 3 ) ;
104
+ pg . end ( ) ;
105
+ } ) )
106
+ } )
107
+
108
+ test ( 'integer nested array' , function ( ) {
109
+ client . query ( "SELECT '{{1,100},{2,100},{3,100}}'::integer[] as names" , assert . success ( function ( result ) {
110
+ var names = result . rows [ 0 ] . names ;
111
+ assert . lengthIs ( names , 3 ) ;
112
+ assert . equal ( names [ 0 ] [ 0 ] , 1 ) ;
113
+ assert . equal ( names [ 0 ] [ 1 ] , 100 ) ;
114
+
115
+ assert . equal ( names [ 1 ] [ 0 ] , 2 ) ;
116
+ assert . equal ( names [ 1 ] [ 1 ] , 100 ) ;
117
+
118
+ assert . equal ( names [ 2 ] [ 0 ] , 3 ) ;
119
+ assert . equal ( names [ 2 ] [ 1 ] , 100 ) ;
120
+ pg . end ( ) ;
121
+ } ) )
122
+ } )
123
+
29
124
} ) )
30
125
} )
31
126
0 commit comments