@@ -2032,3 +2032,338 @@ SELECT pgv_free();
2032
2032
2033
2033
(1 row)
2034
2034
2035
+ -- Variables should be insertable after pgv_remove (variable)
2036
+ BEGIN;
2037
+ SELECT pgv_insert('test', 'x', ROW (1::int, 2::int), TRUE);
2038
+ pgv_insert
2039
+ ------------
2040
+
2041
+ (1 row)
2042
+
2043
+ SELECT pgv_select('test', 'x');
2044
+ pgv_select
2045
+ ------------
2046
+ (1,2)
2047
+ (1 row)
2048
+
2049
+ SELECT pgv_remove('test', 'x');
2050
+ pgv_remove
2051
+ ------------
2052
+
2053
+ (1 row)
2054
+
2055
+ SELECT pgv_insert('test', 'x', ROW (1::int, 3::int), TRUE);
2056
+ pgv_insert
2057
+ ------------
2058
+
2059
+ (1 row)
2060
+
2061
+ SELECT pgv_select('test', 'x');
2062
+ pgv_select
2063
+ ------------
2064
+ (1,3)
2065
+ (1 row)
2066
+
2067
+ SELECT pgv_insert('test', 'x', ROW (2::int, 4::int), TRUE);
2068
+ pgv_insert
2069
+ ------------
2070
+
2071
+ (1 row)
2072
+
2073
+ SELECT pgv_select('test', 'x');
2074
+ pgv_select
2075
+ ------------
2076
+ (1,3)
2077
+ (2,4)
2078
+ (2 rows)
2079
+
2080
+ ROLLBACK;
2081
+ SELECT * FROM pgv_list() order by package, name;
2082
+ package | name | is_transactional
2083
+ ---------+------+------------------
2084
+ (0 rows)
2085
+
2086
+ BEGIN;
2087
+ SELECT pgv_insert('test', 'x', ROW (1::int, 2::int), TRUE);
2088
+ pgv_insert
2089
+ ------------
2090
+
2091
+ (1 row)
2092
+
2093
+ SELECT pgv_select('test', 'x');
2094
+ pgv_select
2095
+ ------------
2096
+ (1,2)
2097
+ (1 row)
2098
+
2099
+ SELECT pgv_remove('test', 'x');
2100
+ pgv_remove
2101
+ ------------
2102
+
2103
+ (1 row)
2104
+
2105
+ SELECT pgv_insert('test', 'x', ROW (1::int, 3::int), TRUE);
2106
+ pgv_insert
2107
+ ------------
2108
+
2109
+ (1 row)
2110
+
2111
+ SELECT pgv_select('test', 'x');
2112
+ pgv_select
2113
+ ------------
2114
+ (1,3)
2115
+ (1 row)
2116
+
2117
+ SELECT pgv_insert('test', 'x', ROW (2::int, 4::int), TRUE);
2118
+ pgv_insert
2119
+ ------------
2120
+
2121
+ (1 row)
2122
+
2123
+ SELECT pgv_select('test', 'x');
2124
+ pgv_select
2125
+ ------------
2126
+ (1,3)
2127
+ (2,4)
2128
+ (2 rows)
2129
+
2130
+ COMMIT;
2131
+ SELECT * FROM pgv_list() order by package, name;
2132
+ package | name | is_transactional
2133
+ ---------+------+------------------
2134
+ test | x | t
2135
+ (1 row)
2136
+
2137
+ SELECT pgv_select('test', 'x');
2138
+ pgv_select
2139
+ ------------
2140
+ (1,3)
2141
+ (2,4)
2142
+ (2 rows)
2143
+
2144
+ -- Variables should be insertable after pgv_remove (package)
2145
+ BEGIN;
2146
+ SELECT pgv_insert('test', 'y', ROW (1::int, 2::int), TRUE);
2147
+ pgv_insert
2148
+ ------------
2149
+
2150
+ (1 row)
2151
+
2152
+ SELECT pgv_select('test', 'y');
2153
+ pgv_select
2154
+ ------------
2155
+ (1,2)
2156
+ (1 row)
2157
+
2158
+ SELECT pgv_remove('test');
2159
+ pgv_remove
2160
+ ------------
2161
+
2162
+ (1 row)
2163
+
2164
+ SELECT pgv_insert('test', 'y', ROW (1::int, 3::int), TRUE);
2165
+ pgv_insert
2166
+ ------------
2167
+
2168
+ (1 row)
2169
+
2170
+ SELECT pgv_select('test', 'y');
2171
+ pgv_select
2172
+ ------------
2173
+ (1,3)
2174
+ (1 row)
2175
+
2176
+ SELECT pgv_insert('test', 'y', ROW (2::int, 4::int), TRUE);
2177
+ pgv_insert
2178
+ ------------
2179
+
2180
+ (1 row)
2181
+
2182
+ SELECT pgv_select('test', 'y');
2183
+ pgv_select
2184
+ ------------
2185
+ (1,3)
2186
+ (2,4)
2187
+ (2 rows)
2188
+
2189
+ ROLLBACK;
2190
+ SELECT * FROM pgv_list() order by package, name;
2191
+ package | name | is_transactional
2192
+ ---------+------+------------------
2193
+ test | x | t
2194
+ (1 row)
2195
+
2196
+ BEGIN;
2197
+ SELECT pgv_insert('test', 'y', ROW (1::int, 2::int), TRUE);
2198
+ pgv_insert
2199
+ ------------
2200
+
2201
+ (1 row)
2202
+
2203
+ SELECT pgv_select('test', 'y');
2204
+ pgv_select
2205
+ ------------
2206
+ (1,2)
2207
+ (1 row)
2208
+
2209
+ SELECT pgv_remove('test');
2210
+ pgv_remove
2211
+ ------------
2212
+
2213
+ (1 row)
2214
+
2215
+ SELECT pgv_insert('test', 'y', ROW (1::int, 3::int), TRUE);
2216
+ pgv_insert
2217
+ ------------
2218
+
2219
+ (1 row)
2220
+
2221
+ SELECT pgv_select('test', 'y');
2222
+ pgv_select
2223
+ ------------
2224
+ (1,3)
2225
+ (1 row)
2226
+
2227
+ SELECT pgv_insert('test', 'y', ROW (2::int, 4::int), TRUE);
2228
+ pgv_insert
2229
+ ------------
2230
+
2231
+ (1 row)
2232
+
2233
+ SELECT pgv_select('test', 'y');
2234
+ pgv_select
2235
+ ------------
2236
+ (1,3)
2237
+ (2,4)
2238
+ (2 rows)
2239
+
2240
+ COMMIT;
2241
+ SELECT * FROM pgv_list() order by package, name;
2242
+ package | name | is_transactional
2243
+ ---------+------+------------------
2244
+ test | y | t
2245
+ (1 row)
2246
+
2247
+ SELECT pgv_select('test', 'y');
2248
+ pgv_select
2249
+ ------------
2250
+ (1,3)
2251
+ (2,4)
2252
+ (2 rows)
2253
+
2254
+ -- Variables should be insertable after pgv_free
2255
+ BEGIN;
2256
+ SELECT pgv_insert('test', 'z', ROW (1::int, 2::int), TRUE);
2257
+ pgv_insert
2258
+ ------------
2259
+
2260
+ (1 row)
2261
+
2262
+ SELECT pgv_select('test', 'z');
2263
+ pgv_select
2264
+ ------------
2265
+ (1,2)
2266
+ (1 row)
2267
+
2268
+ SELECT pgv_free();
2269
+ pgv_free
2270
+ ----------
2271
+
2272
+ (1 row)
2273
+
2274
+ SELECT pgv_insert('test', 'z', ROW (1::int, 3::int), TRUE);
2275
+ pgv_insert
2276
+ ------------
2277
+
2278
+ (1 row)
2279
+
2280
+ SELECT pgv_select('test', 'z');
2281
+ pgv_select
2282
+ ------------
2283
+ (1,3)
2284
+ (1 row)
2285
+
2286
+ SELECT pgv_insert('test', 'z', ROW (2::int, 4::int), TRUE);
2287
+ pgv_insert
2288
+ ------------
2289
+
2290
+ (1 row)
2291
+
2292
+ SELECT pgv_select('test', 'z');
2293
+ pgv_select
2294
+ ------------
2295
+ (1,3)
2296
+ (2,4)
2297
+ (2 rows)
2298
+
2299
+ ROLLBACK;
2300
+ SELECT * FROM pgv_list() order by package, name;
2301
+ package | name | is_transactional
2302
+ ---------+------+------------------
2303
+ test | y | t
2304
+ (1 row)
2305
+
2306
+ BEGIN;
2307
+ SELECT pgv_insert('test', 'z', ROW (1::int, 2::int), TRUE);
2308
+ pgv_insert
2309
+ ------------
2310
+
2311
+ (1 row)
2312
+
2313
+ SELECT pgv_select('test', 'z');
2314
+ pgv_select
2315
+ ------------
2316
+ (1,2)
2317
+ (1 row)
2318
+
2319
+ SELECT pgv_free();
2320
+ pgv_free
2321
+ ----------
2322
+
2323
+ (1 row)
2324
+
2325
+ SELECT pgv_insert('test', 'z', ROW (1::int, 3::int), TRUE);
2326
+ pgv_insert
2327
+ ------------
2328
+
2329
+ (1 row)
2330
+
2331
+ SELECT pgv_select('test', 'z');
2332
+ pgv_select
2333
+ ------------
2334
+ (1,3)
2335
+ (1 row)
2336
+
2337
+ SELECT pgv_insert('test', 'z', ROW (2::int, 4::int), TRUE);
2338
+ pgv_insert
2339
+ ------------
2340
+
2341
+ (1 row)
2342
+
2343
+ SELECT pgv_select('test', 'z');
2344
+ pgv_select
2345
+ ------------
2346
+ (1,3)
2347
+ (2,4)
2348
+ (2 rows)
2349
+
2350
+ COMMIT;
2351
+ SELECT * FROM pgv_list() order by package, name;
2352
+ package | name | is_transactional
2353
+ ---------+------+------------------
2354
+ test | z | t
2355
+ (1 row)
2356
+
2357
+ SELECT pgv_select('test', 'z');
2358
+ pgv_select
2359
+ ------------
2360
+ (1,3)
2361
+ (2,4)
2362
+ (2 rows)
2363
+
2364
+ SELECT pgv_free();
2365
+ pgv_free
2366
+ ----------
2367
+
2368
+ (1 row)
2369
+
0 commit comments