python-sql 1.6.0__py3-none-any.whl → 1.8.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {python_sql-1.6.0.dist-info → python_sql-1.8.0.dist-info}/METADATA +28 -48
- python_sql-1.8.0.dist-info/RECORD +41 -0
- {python_sql-1.6.0.dist-info → python_sql-1.8.0.dist-info}/WHEEL +1 -2
- python_sql-1.8.0.dist-info/licenses/COPYRIGHT +26 -0
- sql/__init__.py +24 -2
- sql/aggregate.py +16 -6
- sql/functions.py +63 -3
- sql/operators.py +36 -18
- sql/tests/test_aggregate.py +6 -6
- sql/tests/test_combining_query.py +1 -1
- sql/tests/test_conditionals.py +3 -3
- sql/tests/test_delete.py +4 -4
- sql/tests/test_functions.py +36 -4
- sql/tests/test_insert.py +4 -4
- sql/tests/test_join.py +2 -2
- sql/tests/test_lateral.py +1 -1
- sql/tests/test_merge.py +12 -12
- sql/tests/test_operators.py +84 -67
- sql/tests/test_order.py +3 -3
- sql/tests/test_select.py +62 -31
- sql/tests/test_update.py +6 -6
- sql/tests/test_with.py +3 -3
- python_sql-1.6.0.dist-info/RECORD +0 -41
- python_sql-1.6.0.dist-info/top_level.txt +0 -1
sql/tests/test_select.py
CHANGED
|
@@ -31,7 +31,7 @@ class TestSelect(unittest.TestCase):
|
|
|
31
31
|
def test_select3(self):
|
|
32
32
|
query = self.table.select(where=(self.table.c == 'foo'))
|
|
33
33
|
self.assertEqual(str(query),
|
|
34
|
-
'SELECT * FROM "t" AS "a" WHERE
|
|
34
|
+
'SELECT * FROM "t" AS "a" WHERE "a"."c" = %s')
|
|
35
35
|
self.assertEqual(tuple(query.params), ('foo',))
|
|
36
36
|
|
|
37
37
|
def test_select_iter(self):
|
|
@@ -110,7 +110,7 @@ class TestSelect(unittest.TestCase):
|
|
|
110
110
|
'SELECT * FROM "t2" AS "c") AS "a"')
|
|
111
111
|
query1.where = self.table.c == 'foo'
|
|
112
112
|
self.assertEqual(str(union),
|
|
113
|
-
'SELECT * FROM "t" AS "a" WHERE
|
|
113
|
+
'SELECT * FROM "t" AS "a" WHERE "a"."c" = %s UNION ALL '
|
|
114
114
|
'SELECT * FROM "t2" AS "b"')
|
|
115
115
|
self.assertEqual(tuple(union.params), ('foo',))
|
|
116
116
|
|
|
@@ -197,7 +197,7 @@ class TestSelect(unittest.TestCase):
|
|
|
197
197
|
output = column.as_('c1')
|
|
198
198
|
query = self.table.select(output, group_by=output)
|
|
199
199
|
self.assertEqual(str(query),
|
|
200
|
-
'SELECT "a"."c" AS "c1" FROM "t" AS "a" GROUP BY
|
|
200
|
+
'SELECT "a"."c" AS "c1" FROM "t" AS "a" GROUP BY 1')
|
|
201
201
|
self.assertEqual(tuple(query.params), ())
|
|
202
202
|
|
|
203
203
|
query = self.table.select(Literal('foo'), group_by=Literal('foo'))
|
|
@@ -205,6 +205,19 @@ class TestSelect(unittest.TestCase):
|
|
|
205
205
|
'SELECT %s FROM "t" AS "a" GROUP BY %s')
|
|
206
206
|
self.assertEqual(tuple(query.params), ('foo', 'foo'))
|
|
207
207
|
|
|
208
|
+
output1 = column.as_('c1')
|
|
209
|
+
output2 = column.as_('c2')
|
|
210
|
+
query = self.table.select(output1, output2, group_by=output2)
|
|
211
|
+
self.assertEqual(str(query),
|
|
212
|
+
'SELECT "a"."c" AS "c1", "a"."c" AS "c2" FROM "t" AS "a" '
|
|
213
|
+
'GROUP BY 2')
|
|
214
|
+
self.assertEqual(tuple(query.params), ())
|
|
215
|
+
|
|
216
|
+
query = self.table.select(column, group_by=output)
|
|
217
|
+
self.assertEqual(str(query),
|
|
218
|
+
'SELECT "a"."c" FROM "t" AS "a" GROUP BY "c1"')
|
|
219
|
+
self.assertEqual(tuple(query.params), ())
|
|
220
|
+
|
|
208
221
|
def test_select_group_by_grouping_sets(self):
|
|
209
222
|
query = self.table.select(
|
|
210
223
|
Literal('*'),
|
|
@@ -253,6 +266,12 @@ class TestSelect(unittest.TestCase):
|
|
|
253
266
|
with self.assertRaises(ValueError):
|
|
254
267
|
self.table.select(group_by=['foo'])
|
|
255
268
|
|
|
269
|
+
def test_select_invalid_group_by_alias(self):
|
|
270
|
+
query = self.table.select(
|
|
271
|
+
self.table.c1.as_('c'), group_by=self.table.c2.as_('c'))
|
|
272
|
+
with self.assertRaises(ValueError):
|
|
273
|
+
str(query)
|
|
274
|
+
|
|
256
275
|
def test_select_having(self):
|
|
257
276
|
col1 = self.table.col1
|
|
258
277
|
col2 = self.table.col2
|
|
@@ -260,7 +279,7 @@ class TestSelect(unittest.TestCase):
|
|
|
260
279
|
having=(Min(col2) > 3))
|
|
261
280
|
self.assertEqual(str(query),
|
|
262
281
|
'SELECT "a"."col1", MIN("a"."col2") FROM "t" AS "a" '
|
|
263
|
-
'HAVING
|
|
282
|
+
'HAVING MIN("a"."col2") > %s')
|
|
264
283
|
self.assertEqual(tuple(query.params), (3,))
|
|
265
284
|
|
|
266
285
|
def test_select_invalid_having(self):
|
|
@@ -268,16 +287,28 @@ class TestSelect(unittest.TestCase):
|
|
|
268
287
|
self.table.select(having='foo')
|
|
269
288
|
|
|
270
289
|
def test_select_order(self):
|
|
271
|
-
|
|
272
|
-
query = self.table.select(
|
|
290
|
+
column = self.table.c
|
|
291
|
+
query = self.table.select(column, order_by=column)
|
|
273
292
|
self.assertEqual(str(query),
|
|
274
|
-
'SELECT "a"."c" FROM "t" AS "a" ORDER BY
|
|
275
|
-
self.assertEqual(tuple(query.params), (
|
|
293
|
+
'SELECT "a"."c" FROM "t" AS "a" ORDER BY "a"."c"')
|
|
294
|
+
self.assertEqual(tuple(query.params), ())
|
|
295
|
+
|
|
296
|
+
output = column.as_('c1')
|
|
297
|
+
query = self.table.select(output, order_by=output)
|
|
298
|
+
self.assertEqual(str(query),
|
|
299
|
+
'SELECT "a"."c" AS "c1" FROM "t" AS "a" ORDER BY "c1"')
|
|
300
|
+
self.assertEqual(tuple(query.params), ())
|
|
276
301
|
|
|
277
302
|
def test_select_invalid_order(self):
|
|
278
303
|
with self.assertRaises(ValueError):
|
|
279
304
|
self.table.select(order_by='foo')
|
|
280
305
|
|
|
306
|
+
def test_select_invalid_order_alias(self):
|
|
307
|
+
query = self.table.select(
|
|
308
|
+
self.table.c1.as_('c'), order_by=self.table.c2.as_('c'))
|
|
309
|
+
with self.assertRaises(ValueError):
|
|
310
|
+
str(query)
|
|
311
|
+
|
|
281
312
|
def test_select_limit_offset(self):
|
|
282
313
|
try:
|
|
283
314
|
Flavor.set(Flavor(limitstyle='limit'))
|
|
@@ -352,8 +383,8 @@ class TestSelect(unittest.TestCase):
|
|
|
352
383
|
'SELECT "a".* FROM ('
|
|
353
384
|
'SELECT "b".*, ROWNUM AS "rnum" FROM ('
|
|
354
385
|
'SELECT * FROM "t" AS "c") AS "b" '
|
|
355
|
-
'WHERE
|
|
356
|
-
'WHERE
|
|
386
|
+
'WHERE ROWNUM <= %s) AS "a" '
|
|
387
|
+
'WHERE "rnum" > %s')
|
|
357
388
|
self.assertEqual(tuple(query.params), (60, 10))
|
|
358
389
|
|
|
359
390
|
query = self.table.select(
|
|
@@ -364,8 +395,8 @@ class TestSelect(unittest.TestCase):
|
|
|
364
395
|
'SELECT "b"."col1", "b"."col2", ROWNUM AS "rnum" FROM ('
|
|
365
396
|
'SELECT "c"."c1" AS "col1", "c"."c2" AS "col2" '
|
|
366
397
|
'FROM "t" AS "c") AS "b" '
|
|
367
|
-
'WHERE
|
|
368
|
-
'WHERE
|
|
398
|
+
'WHERE ROWNUM <= %s) AS "a" '
|
|
399
|
+
'WHERE "rnum" > %s')
|
|
369
400
|
self.assertEqual(tuple(query.params), (60, 10))
|
|
370
401
|
|
|
371
402
|
subquery = query.select(query.col1, query.col2)
|
|
@@ -376,8 +407,8 @@ class TestSelect(unittest.TestCase):
|
|
|
376
407
|
'FROM ('
|
|
377
408
|
'SELECT "c"."c1" AS "col1", "c"."c2" AS "col2" '
|
|
378
409
|
'FROM "t" AS "c") AS "a" '
|
|
379
|
-
'WHERE
|
|
380
|
-
'WHERE
|
|
410
|
+
'WHERE ROWNUM <= %s) AS "b" '
|
|
411
|
+
'WHERE "rnum" > %s) AS "a"')
|
|
381
412
|
# XXX alias of query is reused but not a problem
|
|
382
413
|
# as it is hidden in subquery
|
|
383
414
|
self.assertEqual(tuple(query.params), (60, 10))
|
|
@@ -388,15 +419,15 @@ class TestSelect(unittest.TestCase):
|
|
|
388
419
|
'SELECT "a".* FROM ('
|
|
389
420
|
'SELECT "b".*, ROWNUM AS "rnum" FROM ('
|
|
390
421
|
'SELECT * FROM "t" AS "c" ORDER BY "c"."c") AS "b" '
|
|
391
|
-
'WHERE
|
|
392
|
-
'WHERE
|
|
422
|
+
'WHERE ROWNUM <= %s) AS "a" '
|
|
423
|
+
'WHERE "rnum" > %s')
|
|
393
424
|
self.assertEqual(tuple(query.params), (60, 10))
|
|
394
425
|
|
|
395
426
|
query = self.table.select(limit=50)
|
|
396
427
|
self.assertEqual(str(query),
|
|
397
428
|
'SELECT "a".* FROM ('
|
|
398
429
|
'SELECT * FROM "t" AS "b") AS "a" '
|
|
399
|
-
'WHERE
|
|
430
|
+
'WHERE ROWNUM <= %s')
|
|
400
431
|
self.assertEqual(tuple(query.params), (50,))
|
|
401
432
|
|
|
402
433
|
query = self.table.select(offset=10)
|
|
@@ -404,7 +435,7 @@ class TestSelect(unittest.TestCase):
|
|
|
404
435
|
'SELECT "a".* FROM ('
|
|
405
436
|
'SELECT "b".*, ROWNUM AS "rnum" FROM ('
|
|
406
437
|
'SELECT * FROM "t" AS "c") AS "b") AS "a" '
|
|
407
|
-
'WHERE
|
|
438
|
+
'WHERE "rnum" > %s')
|
|
408
439
|
self.assertEqual(tuple(query.params), (10,))
|
|
409
440
|
|
|
410
441
|
query = self.table.select(self.table.c.as_('col'),
|
|
@@ -414,9 +445,9 @@ class TestSelect(unittest.TestCase):
|
|
|
414
445
|
'SELECT "a"."col" FROM ('
|
|
415
446
|
'SELECT "b"."col", ROWNUM AS "rnum" FROM ('
|
|
416
447
|
'SELECT "c"."c" AS "col" FROM "t" AS "c" '
|
|
417
|
-
'WHERE
|
|
418
|
-
'WHERE
|
|
419
|
-
'WHERE
|
|
448
|
+
'WHERE "c"."c" >= %s) AS "b" '
|
|
449
|
+
'WHERE ROWNUM <= %s) AS "a" '
|
|
450
|
+
'WHERE "rnum" > %s')
|
|
420
451
|
self.assertEqual(tuple(query.params), (20, 60, 10))
|
|
421
452
|
finally:
|
|
422
453
|
Flavor.set(Flavor())
|
|
@@ -468,7 +499,7 @@ class TestSelect(unittest.TestCase):
|
|
|
468
499
|
Rank(filter_=self.table.c1 > 0, window=window),
|
|
469
500
|
Min(self.table.c1, window=window))
|
|
470
501
|
self.assertEqual(str(query),
|
|
471
|
-
'SELECT RANK() FILTER (WHERE
|
|
502
|
+
'SELECT RANK() FILTER (WHERE "a"."c1" > %s) OVER "b", '
|
|
472
503
|
'MIN("a"."c1") OVER "b" FROM "t" AS "a" '
|
|
473
504
|
'WINDOW "b" AS (PARTITION BY "a"."c1")')
|
|
474
505
|
self.assertEqual(tuple(query.params), (0,))
|
|
@@ -486,8 +517,8 @@ class TestSelect(unittest.TestCase):
|
|
|
486
517
|
Max(self.table.c1, window=window)
|
|
487
518
|
/ Min(self.table.c1, window=window))
|
|
488
519
|
self.assertEqual(str(query),
|
|
489
|
-
'SELECT
|
|
490
|
-
'/ MIN("a"."c1") OVER (PARTITION BY "a"."c2")
|
|
520
|
+
'SELECT MAX("a"."c1") OVER (PARTITION BY "a"."c2") '
|
|
521
|
+
'/ MIN("a"."c1") OVER (PARTITION BY "a"."c2") '
|
|
491
522
|
'FROM "t" AS "a"')
|
|
492
523
|
self.assertEqual(tuple(query.params), ())
|
|
493
524
|
|
|
@@ -496,8 +527,8 @@ class TestSelect(unittest.TestCase):
|
|
|
496
527
|
Max(self.table.c1, window=window)
|
|
497
528
|
/ Min(self.table.c1, window=window))
|
|
498
529
|
self.assertEqual(str(query),
|
|
499
|
-
'SELECT
|
|
500
|
-
'/ MIN("a"."c1") OVER (PARTITION BY %s)
|
|
530
|
+
'SELECT MAX("a"."c1") OVER (PARTITION BY %s) '
|
|
531
|
+
'/ MIN("a"."c1") OVER (PARTITION BY %s) '
|
|
501
532
|
'FROM "t" AS "a"')
|
|
502
533
|
self.assertEqual(tuple(query.params), (1, 1))
|
|
503
534
|
|
|
@@ -508,8 +539,8 @@ class TestSelect(unittest.TestCase):
|
|
|
508
539
|
/ Min(self.table.c1, window=window2),
|
|
509
540
|
windows=[window1])
|
|
510
541
|
self.assertEqual(str(query),
|
|
511
|
-
'SELECT
|
|
512
|
-
'/ MIN("a"."c1") OVER (PARTITION BY %s)
|
|
542
|
+
'SELECT MAX("a"."c1") OVER "b" '
|
|
543
|
+
'/ MIN("a"."c1") OVER (PARTITION BY %s) '
|
|
513
544
|
'FROM "t" AS "a" '
|
|
514
545
|
'WINDOW "b" AS (PARTITION BY "a"."c2")')
|
|
515
546
|
self.assertEqual(tuple(query.params), (1,))
|
|
@@ -541,10 +572,10 @@ class TestSelect(unittest.TestCase):
|
|
|
541
572
|
order_by=[Literal(8)])
|
|
542
573
|
self.assertEqual(
|
|
543
574
|
str(query),
|
|
544
|
-
'WITH "c" AS (SELECT "a"."c" FROM "t" AS "a" WHERE
|
|
575
|
+
'WITH "c" AS (SELECT "a"."c" FROM "t" AS "a" WHERE "a"."c" > %s)'
|
|
545
576
|
' SELECT %s, MIN("a"."c") OVER "b" '
|
|
546
|
-
'FROM SELECT * FROM "t" AS "a" WHERE
|
|
547
|
-
'WHERE
|
|
577
|
+
'FROM SELECT * FROM "t" AS "a" WHERE "a"."c" > %s '
|
|
578
|
+
'WHERE "a"."c" > %s '
|
|
548
579
|
'GROUP BY %s '
|
|
549
580
|
'HAVING %s '
|
|
550
581
|
'WINDOW "b" AS (PARTITION BY %s) '
|
sql/tests/test_update.py
CHANGED
|
@@ -15,7 +15,7 @@ class TestUpdate(unittest.TestCase):
|
|
|
15
15
|
|
|
16
16
|
query.where = (self.table.b == Literal(True))
|
|
17
17
|
self.assertEqual(str(query),
|
|
18
|
-
'UPDATE "t" AS "a" SET "c" = %s WHERE
|
|
18
|
+
'UPDATE "t" AS "a" SET "c" = %s WHERE "a"."b" = %s')
|
|
19
19
|
self.assertEqual(query.params, ('foo', True))
|
|
20
20
|
|
|
21
21
|
def test_update2(self):
|
|
@@ -24,7 +24,7 @@ class TestUpdate(unittest.TestCase):
|
|
|
24
24
|
query = t1.update([t1.c], ['foo'], from_=[t2], where=(t1.c == t2.c))
|
|
25
25
|
self.assertEqual(str(query),
|
|
26
26
|
'UPDATE "t1" AS "b" SET "c" = %s FROM "t2" AS "a" '
|
|
27
|
-
'WHERE
|
|
27
|
+
'WHERE "b"."c" = "a"."c"')
|
|
28
28
|
self.assertEqual(query.params, ('foo',))
|
|
29
29
|
|
|
30
30
|
def test_update_invalid_values(self):
|
|
@@ -43,7 +43,7 @@ class TestUpdate(unittest.TestCase):
|
|
|
43
43
|
for query in [query_list, query_nolist]:
|
|
44
44
|
self.assertEqual(str(query),
|
|
45
45
|
'UPDATE "t1" AS "b" SET "c" = ('
|
|
46
|
-
'SELECT "a"."c" FROM "t2" AS "a" WHERE
|
|
46
|
+
'SELECT "a"."c" FROM "t2" AS "a" WHERE "a"."i" = "b"."i")')
|
|
47
47
|
self.assertEqual(query.params, ())
|
|
48
48
|
|
|
49
49
|
def test_update_returning(self):
|
|
@@ -62,7 +62,7 @@ class TestUpdate(unittest.TestCase):
|
|
|
62
62
|
self.assertEqual(str(query),
|
|
63
63
|
'UPDATE "t1" AS "b" SET "c" = %s '
|
|
64
64
|
'RETURNING (SELECT "a"."c" FROM "t2" AS "a" '
|
|
65
|
-
'WHERE (
|
|
65
|
+
'WHERE ("a"."c1" = "b"."c") AND ("a"."c2" = %s))')
|
|
66
66
|
self.assertEqual(query.params, ('foo', 'bar'))
|
|
67
67
|
|
|
68
68
|
def test_with(self):
|
|
@@ -76,7 +76,7 @@ class TestUpdate(unittest.TestCase):
|
|
|
76
76
|
self.assertEqual(str(query),
|
|
77
77
|
'WITH "a" AS (SELECT "b"."c1" FROM "t1" AS "b") '
|
|
78
78
|
'UPDATE "t" AS "c" SET "c2" = (SELECT "a"."c3" FROM "a" AS "a" '
|
|
79
|
-
'WHERE
|
|
79
|
+
'WHERE "a"."c4" = %s)')
|
|
80
80
|
self.assertEqual(query.params, (2,))
|
|
81
81
|
|
|
82
82
|
def test_schema(self):
|
|
@@ -95,5 +95,5 @@ class TestUpdate(unittest.TestCase):
|
|
|
95
95
|
self.assertEqual(str(query),
|
|
96
96
|
'UPDATE "default"."t1" AS "b" SET "c1" = ('
|
|
97
97
|
'SELECT "a"."c" FROM "default"."t2" AS "a" '
|
|
98
|
-
'WHERE
|
|
98
|
+
'WHERE "a"."i" = "b"."i")')
|
|
99
99
|
self.assertEqual(query.params, ())
|
sql/tests/test_with.py
CHANGED
|
@@ -15,7 +15,7 @@ class TestWith(unittest.TestCase):
|
|
|
15
15
|
|
|
16
16
|
self.assertEqual(simple.statement(),
|
|
17
17
|
'"a" AS ('
|
|
18
|
-
'SELECT "b"."id" FROM "t" AS "b" WHERE
|
|
18
|
+
'SELECT "b"."id" FROM "t" AS "b" WHERE "b"."id" = %s'
|
|
19
19
|
')')
|
|
20
20
|
self.assertEqual(simple.statement_params(), (1,))
|
|
21
21
|
|
|
@@ -40,7 +40,7 @@ class TestWith(unittest.TestCase):
|
|
|
40
40
|
wq = WithQuery(with_=[simple, second])
|
|
41
41
|
self.assertEqual(wq._with_str(),
|
|
42
42
|
'WITH "a" AS ('
|
|
43
|
-
'SELECT "b"."id" FROM "t" AS "b" WHERE
|
|
43
|
+
'SELECT "b"."id" FROM "t" AS "b" WHERE "b"."id" = %s'
|
|
44
44
|
'), "c" AS ('
|
|
45
45
|
'SELECT * FROM "a" AS "a"'
|
|
46
46
|
') ')
|
|
@@ -59,7 +59,7 @@ class TestWith(unittest.TestCase):
|
|
|
59
59
|
'WITH RECURSIVE "a" ("n") AS ('
|
|
60
60
|
'VALUES (%s) '
|
|
61
61
|
'UNION ALL '
|
|
62
|
-
'SELECT
|
|
62
|
+
'SELECT "a"."n" + %s FROM "a" AS "a" WHERE "a"."n" < %s'
|
|
63
63
|
') SELECT * FROM "a" AS "a"')
|
|
64
64
|
self.assertEqual(tuple(q.params), (1, 1, 100))
|
|
65
65
|
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
sql/__init__.py,sha256=-nJkGjLVQGCXqmhds4JZSFJv0hmWO_v9X3G3JaNbSEI,64423
|
|
2
|
-
sql/aggregate.py,sha256=RXBhXHKRARhbTjMxuf6PR29vz5lHzEm_qJHzvfwHw2Q,5834
|
|
3
|
-
sql/conditionals.py,sha256=xJY6ffEBeES6CiGKErXSa2dK2FXaEaR_QQl_CKILP30,2541
|
|
4
|
-
sql/functions.py,sha256=IrX7ft6Psvr0XgoACE_iq6AupdeFJbo_62JoJCXnycs,12550
|
|
5
|
-
sql/operators.py,sha256=Yw8cQCKT9p-OkwkCTjLg4Une2Daur14CbpsRo4SX-v8,10923
|
|
6
|
-
sql/tests/__init__.py,sha256=QA18gftL_tykRkbGriAobA3THDVu34v8Pdn-a2qJywY,679
|
|
7
|
-
sql/tests/test_aggregate.py,sha256=RZDc_6pQg7pBmrDEXY15N3ntojVhjR81qkzyp3P7PD8,3376
|
|
8
|
-
sql/tests/test_alias.py,sha256=wtBwMkA8HADz3Tq6kz-MJXBG75hL0AbO2Z3LE7L2YTY,2408
|
|
9
|
-
sql/tests/test_as.py,sha256=OfXDu0CnJ2paRKR29dMdx7q_Q9TFY60MWlvib6MR5LY,926
|
|
10
|
-
sql/tests/test_cast.py,sha256=ejrqHQZwA3967UhszYR3caZYvH3waPcF6li4rnmxGi4,653
|
|
11
|
-
sql/tests/test_collate.py,sha256=_RJM_t-YzCoO34b6k35jBoTyQedTK7EXywYosrK1bUQ,688
|
|
12
|
-
sql/tests/test_column.py,sha256=_GkBkBzLW_fDoJy5yUWDtHTSyka1s5Drd4gDuvtIM_8,866
|
|
13
|
-
sql/tests/test_combining_query.py,sha256=vag9FEKuGEFu6tlMc0lT6PkaE4mtl0KiuCNBxSfKTLY,2415
|
|
14
|
-
sql/tests/test_conditionals.py,sha256=kNkgsjOatXpJnF9AED03ANNd0zWIwWTrnWdi4PWfl3E,2705
|
|
15
|
-
sql/tests/test_delete.py,sha256=QmBt8QfS03uxWEBRetSv4q2PGFiAZRp_NavQd6E1aEs,2243
|
|
16
|
-
sql/tests/test_excluded.py,sha256=aOdzg9oOTeaCPzQ2MOBC2F-KJl1hWI39MnM2cfaVSHs,388
|
|
17
|
-
sql/tests/test_expression.py,sha256=39Z4hZXxUW6vJDmWMKJGpdf1tMP5i-1bfNaYvrHv2JY,457
|
|
18
|
-
sql/tests/test_flavor.py,sha256=ho8wjHDbZDVB0NYN_lCPL3MdyzBhYYfCxolR1wQv3qU,1240
|
|
19
|
-
sql/tests/test_for.py,sha256=_qk3ovyPtcq4XBK21OzmovLPiqgSvhGc4nhpX8IYC4s,651
|
|
20
|
-
sql/tests/test_from.py,sha256=USwyW8WnbRO_oQBc-Fmgv9rwhARY2bOF-k5ZBxozyIw,713
|
|
21
|
-
sql/tests/test_from_item.py,sha256=SJosqjO8UKPNppgtYRN_HKFlu17j5Aw6OVAQ4BGSNXo,1177
|
|
22
|
-
sql/tests/test_functions.py,sha256=PAM3-QbdZs7_3UGbLGNIuW9f5LahkR8fyFiNadItM7w,5915
|
|
23
|
-
sql/tests/test_grouping.py,sha256=hdUOeEhYIuKxvLrSmkFZlIW93uMq8exbtp9XqEodgEE,338
|
|
24
|
-
sql/tests/test_insert.py,sha256=809miHmYCNVp0yi2sJW7TalutLzmYn8pfNam5Ncq4_o,9367
|
|
25
|
-
sql/tests/test_join.py,sha256=Sg47Hs3NIhGq_eIajv36TzGykwqdNe9exPNwJwkffRg,2643
|
|
26
|
-
sql/tests/test_lateral.py,sha256=cmdoNCGZZoiqQRKioYcLHLRJImfDjDPFz9Mbdt0qi_E,1047
|
|
27
|
-
sql/tests/test_literal.py,sha256=ht-VLhGdpUm_rbtOzpQgbX3YQup_xp7F9va0RSWY0Ts,1010
|
|
28
|
-
sql/tests/test_merge.py,sha256=1E9xxaJ8N1UxrAUcDpBI-OVIqzLpmzFn2Q7FE3cfEdk,5460
|
|
29
|
-
sql/tests/test_operators.py,sha256=tyAnzTpUlhYXTJ2XKN8EEwan2p21xU1cB0cXhJmCQD0,16160
|
|
30
|
-
sql/tests/test_order.py,sha256=jJJ2I5lshkACurwPqQekipzT6RzFuklbprxX5LMsGRI,2272
|
|
31
|
-
sql/tests/test_rollup.py,sha256=Ae7PVTnyELICcjC00dkcAiHzr61NG8cnIcAoHagHr98,339
|
|
32
|
-
sql/tests/test_select.py,sha256=etrdugGEUW9NG0AIOYU3ALxP9JQLAEkhIRlh1FeUJWQ,22164
|
|
33
|
-
sql/tests/test_table.py,sha256=ZF6VzLcx54ulj69Qnt0hdQ7_XamAqpofyTKs0WiGB4E,758
|
|
34
|
-
sql/tests/test_update.py,sha256=SCUsUCfMqtOS0m_87Ne24wgdPHgEs3jynbDEQP33oeg,3784
|
|
35
|
-
sql/tests/test_values.py,sha256=qKvaFSDEQmVWajWhMZgqD2-rQcWJeW_nsevVMsV3jD8,1053
|
|
36
|
-
sql/tests/test_window.py,sha256=EpqjZX2cyQ-m7UWMubrB5MOtL_5uF8jSnNhODfE74xc,3183
|
|
37
|
-
sql/tests/test_with.py,sha256=SSLN1b0L8bLr5MwvCPOynP0HdfkUNPCNv7BWSJ4DalY,2371
|
|
38
|
-
python_sql-1.6.0.dist-info/METADATA,sha256=yDf7Ch11yLkhncjfGgHtocDjQSrtDLvi_wiAlEOMvQo,8776
|
|
39
|
-
python_sql-1.6.0.dist-info/WHEEL,sha256=CmyFI0kx5cdEMTLiONQRbGQwjIoR1aIYB7eCAQ4KPJ0,91
|
|
40
|
-
python_sql-1.6.0.dist-info/top_level.txt,sha256=hwJHmWfbRP5a_XNfqgHwi2zrjAAzAJk24QZoTocslow,4
|
|
41
|
-
python_sql-1.6.0.dist-info/RECORD,,
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
sql
|