-
Notifications
You must be signed in to change notification settings - Fork 634
/
Copy pathrelease_notes_generated.qmd
5629 lines (5062 loc) · 716 KB
/
release_notes_generated.qmd
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
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
---
---
## [10.5.0](https://github.com/ibis-project/ibis/compare/10.4.0...10.5.0) (2025-04-18)
### Features
* **api:** expose DataType publicly at ibis.DataType ([#11101](https://github.com/ibis-project/ibis/issues/11101)) ([4164265](https://github.com/ibis-project/ibis/commit/4164265eea9bd6c5008612b90f02f68f8b2d4cd0))
* **backends:** fixup drop_database() when passing a specific catalog ([#11110](https://github.com/ibis-project/ibis/issues/11110)) ([57d79b7](https://github.com/ibis-project/ibis/commit/57d79b707fb7406cd5ba81441ef660233e4f145c))
* **databricks:** add support for json via variant ([a1f2bab](https://github.com/ibis-project/ibis/commit/a1f2bab5adf1797dcf194c192182708e2b31f152))
* **datafusion:** basic map operations ([16b0c4c](https://github.com/ibis-project/ibis/commit/16b0c4cdb933601f1677de4a42d66963b2c9d12a))
* **postgres:** allow disablement of hstore extension loading ([#11126](https://github.com/ibis-project/ibis/issues/11126)) ([35fc38b](https://github.com/ibis-project/ibis/commit/35fc38be09de01b7feb595f035b0b8820d56f2b6)), closes [#11103](https://github.com/ibis-project/ibis/issues/11103)
* **postgres:** implement maps in terms of JSONB instead of HSTORE ([ff6100a](https://github.com/ibis-project/ibis/commit/ff6100aeebe8ad19d84a19451e29a2a374d96cd5))
* **pyflink:** fix type mapping from BINARY to VARBINARY ([bbcd5b9](https://github.com/ibis-project/ibis/commit/bbcd5b9a2ea080b2c2b277c56e2e0b018857c383))
* **risingwave:** support map operations ([e7d8c3a](https://github.com/ibis-project/ibis/commit/e7d8c3ab50834efe62695feea7495e04c1694b5a))
* **temporal:** implement casting floating values to timestamps ([0356caf](https://github.com/ibis-project/ibis/commit/0356caf065cdd364f0ab5a5fd1230a5f14aca330))
### Bug Fixes
* **athena:** only replace commas instead of all special characters in column names ([#11138](https://github.com/ibis-project/ibis/issues/11138)) ([4c74ddd](https://github.com/ibis-project/ibis/commit/4c74ddd510e31acdfce71a0ec6fe363d28d8caa0))
* **databricks:** use `AS JSON` for programmatic output of schema information ([d55a5ee](https://github.com/ibis-project/ibis/commit/d55a5eee5a9fa45d53ea51775f53d1215ed819ac))
* **duckdb:** always create temp tables in `temp.main` ([#11092](https://github.com/ibis-project/ibis/issues/11092)) ([20bec13](https://github.com/ibis-project/ibis/commit/20bec137463d0dba71e741247624119b7a7b3452))
* **ir:** make ibis.to_sql() parse join limits and projections; fixes [#11105](https://github.com/ibis-project/ibis/issues/11105) ([a416755](https://github.com/ibis-project/ibis/commit/a4167551013e927c2f751777e3f63e30fb50ade0))
* **oracle:** return a `sqlglot.DataType`, not `str`, when compiling string dtype ([#11124](https://github.com/ibis-project/ibis/issues/11124)) ([99be73b](https://github.com/ibis-project/ibis/commit/99be73be73ccd175687b97a2fd02374334597470))
* **postgres:** clean up possible transaction hangs ([6f9d141](https://github.com/ibis-project/ibis/commit/6f9d14189394707cd6cfaec29911a6387a783848))
* **scalar-subquery:** ensure that scalar subqueries `value` is resolvable with no underlying projection ([#11125](https://github.com/ibis-project/ibis/issues/11125)) ([a92c3cb](https://github.com/ibis-project/ibis/commit/a92c3cb9a47a9f2976bbe29d6a8f44c726d4fea1))
* **snowflake/bigquery/athena:** ensure that timestamp casting works ([#11135](https://github.com/ibis-project/ibis/issues/11135)) ([4bb0b78](https://github.com/ibis-project/ibis/commit/4bb0b786a20ac6063c7e4b4d29e2103ea1a4fa9c))
* **typing:** remove unnecessary generics in `ibis.struct()` typing ([#11070](https://github.com/ibis-project/ibis/issues/11070)) ([9d3aece](https://github.com/ibis-project/ibis/commit/9d3aece739dbc2b0594a296b105b2e1b7a252bbc))
### Documentation
* clarify NULL/NaN/inf distinction in docstring and examples ([#11077](https://github.com/ibis-project/ibis/issues/11077)) ([3d4e741](https://github.com/ibis-project/ibis/commit/3d4e74144dc5dbcd4f0919f877c2b4bee9ae7e13))
* fix `SECURITY.md` formatting ([63aeff4](https://github.com/ibis-project/ibis/commit/63aeff41858dfb2ac568c5064bf2ded7ca6da116))
## [10.4.0](https://github.com/ibis-project/ibis/compare/10.3.1...10.4.0) (2025-03-27)
### Features
* **api:** make topk() and value_counts() more flexible ([#10928](https://github.com/ibis-project/ibis/issues/10928)) ([329ad7c](https://github.com/ibis-project/ibis/commit/329ad7c1a1500b21c02b70dd06973fe1c89aa6a3))
* **datatypes:** add string length ([#11045](https://github.com/ibis-project/ibis/issues/11045)) ([61dd7ea](https://github.com/ibis-project/ibis/commit/61dd7ea887d0c5ca60999a7f72acd355fd0af0dd))
* **flink:** support `StringSplit` ([#11049](https://github.com/ibis-project/ibis/issues/11049)) ([b83a88e](https://github.com/ibis-project/ibis/commit/b83a88eaa60a70fa9fea24608d74b91345acebdc))
* **postgres:** add support for reading enum types as strings ([#11028](https://github.com/ibis-project/ibis/issues/11028)) ([dfb818a](https://github.com/ibis-project/ibis/commit/dfb818ac06554c9de093911cd0639753b83b09f5))
* **postgres:** implement support for `asof_join` API via a lateral join ([#11024](https://github.com/ibis-project/ibis/issues/11024)) ([8eb9d33](https://github.com/ibis-project/ibis/commit/8eb9d336b10af8ea1476beff68e2c8e7aa5ff9ac))
* **ux:** include type of bad value in SignatureValidationError ([#10988](https://github.com/ibis-project/ibis/issues/10988)) ([a706afa](https://github.com/ibis-project/ibis/commit/a706afa9a9269f1f624e1630785e33cff0a016ad))
### Bug Fixes
* **backends:** array string join on empty array now consistently returns `None` across all supported backends ([#10913](https://github.com/ibis-project/ibis/issues/10913)) ([a02a392](https://github.com/ibis-project/ibis/commit/a02a3921e69170e99841f4fad3f97ff6f1867f39))
* **polars:** use engine="streaming" instead of streaming=True ([e1bbe55](https://github.com/ibis-project/ibis/commit/e1bbe55d2e634c70fbb0917ae55ff1a9c27fcbc8))
* **postgres:** clean up leaky cursor coming from `raw_sql` ([#11001](https://github.com/ibis-project/ibis/issues/11001)) ([c3097a7](https://github.com/ibis-project/ibis/commit/c3097a75d5d7b397a79702c50750c80c4cb51ec2))
### Documentation
* add introduction to pandas users for adding columns with single text values (literal) ([#11010](https://github.com/ibis-project/ibis/issues/11010)) ([6032e71](https://github.com/ibis-project/ibis/commit/6032e71b996bf5d39c0f4277dacb2255cf6b8f56))
* fix to_* methods docstrings typos ([#11013](https://github.com/ibis-project/ibis/issues/11013)) ([523e4c3](https://github.com/ibis-project/ibis/commit/523e4c30f8e3f6416cfdfb57f1dcbfa7fe4cb889))
* **ir:** remove extra backticks to fix formatting ([7c3e5fc](https://github.com/ibis-project/ibis/commit/7c3e5fc2cc31f13a7b0928c0d1ca028d52032ca2))
### Refactors
* **postgres:** use raw sql for `get_schema` invocation to simplify code ([#11037](https://github.com/ibis-project/ibis/issues/11037)) ([9b25ab1](https://github.com/ibis-project/ibis/commit/9b25ab1be5b43d8b1933a093500547710e122729))
### Performance
* **duckdb:** optimize generated SQL for ArrayConcat ([#10999](https://github.com/ibis-project/ibis/issues/10999)) ([d38db7e](https://github.com/ibis-project/ibis/commit/d38db7e125468aac65d506580e6c8f966e5d3c54))
* **struct:** drop unused fields on Struct.__getitem__ ([#10996](https://github.com/ibis-project/ibis/issues/10996)) ([e5fe34c](https://github.com/ibis-project/ibis/commit/e5fe34c0167efb77e35c43311ca779659b5168d9))
## [10.3.1](https://github.com/ibis-project/ibis/compare/10.3.0...10.3.1) (2025-03-14)
### Bug Fixes
* **datatypes:** ensure that newer sqlglot `BLOB` type is not accessed if it does not exist ([6452a5e](https://github.com/ibis-project/ibis/commit/6452a5e76130bba565ba14e2c6d68fbadbf3ef7e))
* **deps:** drop `pytz` from dependencies ([#10976](https://github.com/ibis-project/ibis/issues/10976)) ([3ecf731](https://github.com/ibis-project/ibis/commit/3ecf731f421393d54d0b156e874fe9f56fc34471))
* **postgres:** use `.transaction` method instead of managing our own ([0edbab9](https://github.com/ibis-project/ibis/commit/0edbab99e68e9c41d6efcba3e091a5781ef995a3))
### Documentation
* link to our config file for conventional commits warning ([#10986](https://github.com/ibis-project/ibis/issues/10986)) ([a945c96](https://github.com/ibis-project/ibis/commit/a945c9687506a2a6803f0043928b0d98356b0917))
## [10.3.0](https://github.com/ibis-project/ibis/compare/10.2.0...10.3.0) (2025-03-11)
### Features
* **duckdb:** add `read_xlsx` implementation ([705aa16](https://github.com/ibis-project/ibis/commit/705aa1661612421084103f4707b8ad2db14b8ebc))
* **duckdb:** add `to_xlsx` implementation ([1800abd](https://github.com/ibis-project/ibis/commit/1800abd7bed8375563419233e79904a6c12d9f4d))
* **python:** support python 3.9 again ([#10949](https://github.com/ibis-project/ibis/issues/10949)) ([786d8f0](https://github.com/ibis-project/ibis/commit/786d8f0976121c299a26319a698ca5bf68c7aa52))
### Bug Fixes
* **bigquery:** adjust codegen for newer version of sqlglot ([8105a09](https://github.com/ibis-project/ibis/commit/8105a09180df951e005f3c48150b439393d2b75d))
* **memtable:** ensure that constructing an empty memtable from a dataframe works ([#10945](https://github.com/ibis-project/ibis/issues/10945)) ([29c796a](https://github.com/ibis-project/ibis/commit/29c796a62d95d3319dd7087aafaf0e84f4f357f4)), closes [#10940](https://github.com/ibis-project/ibis/issues/10940)
* **mysql:** add regular blob to type mapping ([365c157](https://github.com/ibis-project/ibis/commit/365c15795de40efb348f98b337dcdb7603039d14))
* **mysql:** ensure that unsigned integers are mapped to the ibis type system ([#10947](https://github.com/ibis-project/ibis/issues/10947)) ([3eb76f8](https://github.com/ibis-project/ibis/commit/3eb76f8de6e76a3245649c4072845cfb4874012f)), closes [#10946](https://github.com/ibis-project/ibis/issues/10946)
* **postgres:** create server-side cursors in the iterator to ensure cursor is not cleaned up before it is used ([f5f798e](https://github.com/ibis-project/ibis/commit/f5f798e0fffe20c0218953cb60d4bd2b318bd209))
* **postgres:** ensure that cursor lifetime is at least as long as the generator ([f42ab45](https://github.com/ibis-project/ibis/commit/f42ab458cdc45d0e9a98f64172d82749b0569adb))
### Documentation
* mention theseus in the readme and docs landing page diagram ([360c25b](https://github.com/ibis-project/ibis/commit/360c25b5e29f60e64d1342790864141b97263a7a))
* **setup:** add `just` recipe and setup entry for `uv` ([#10959](https://github.com/ibis-project/ibis/issues/10959)) ([dd33f47](https://github.com/ibis-project/ibis/commit/dd33f47e173ef4d54ede5aafd4192a2a20e1f345))
* **tutorials:** reorganize the "Getting started" tab ([f78a8fb](https://github.com/ibis-project/ibis/commit/f78a8fb21da227560ffe74a4c7fff8a269b4045c))
### Refactors
* **oracle:** remove unused `owner` column from `select` metadata query ([#10935](https://github.com/ibis-project/ibis/issues/10935)) ([56dcc42](https://github.com/ibis-project/ibis/commit/56dcc42f709b7130e7fec0737aef8e47fffbe734))
* **postgres:** split out `hstore` extension registration into separate method ([0bdb5a0](https://github.com/ibis-project/ibis/commit/0bdb5a0139461492b4e3e65e3709a7252b219e4b))
### Performance
* **postgres:** improve `to_pyarrow_batches` by using server-side cursors ([#10954](https://github.com/ibis-project/ibis/issues/10954)) ([cb17b8b](https://github.com/ibis-project/ibis/commit/cb17b8b3149533a19da93acedc863c964e154817)), closes [#10938](https://github.com/ibis-project/ibis/issues/10938)
## [10.2.0](https://github.com/ibis-project/ibis/compare/10.1.0...10.2.0) (2025-03-03)
### Features
* **examples:** expand examples functionality to more backends ([#10916](https://github.com/ibis-project/ibis/issues/10916)) ([90a174b](https://github.com/ibis-project/ibis/commit/90a174b229d6363b1ade89921d21dc96687e53c0))
### Bug Fixes
* **bigquery:** ensure that count distinct can be used in window functions without a specified window ([#10911](https://github.com/ibis-project/ibis/issues/10911)) ([c9120e1](https://github.com/ibis-project/ibis/commit/c9120e111da9baaa3622f38674924dd448430a80))
* **build:** ensure that legacy tools can recognize the validity of the Ibis license ([#10905](https://github.com/ibis-project/ibis/issues/10905)) ([c29d83a](https://github.com/ibis-project/ibis/commit/c29d83af231fd95c429a9276787f3dc83582d53c))
* **datatypes:** document "!" as meaning non-nullable, enable `nullable` arg for type hints ([#10893](https://github.com/ibis-project/ibis/issues/10893)) ([601aabe](https://github.com/ibis-project/ibis/commit/601aabe2fee5910d82d304d11513def76a23a76c))
* **examples:** ensure that examples work on mssql and avoid using overwrite ([#10909](https://github.com/ibis-project/ibis/issues/10909)) ([8336483](https://github.com/ibis-project/ibis/commit/833648309ff0f7b38aef97b4764b1cbf1c550f14))
* **pyarrow-conversion:** ensure that non-nullability is preserved ([#10897](https://github.com/ibis-project/ibis/issues/10897)) ([b2c5a0c](https://github.com/ibis-project/ibis/commit/b2c5a0c8dfb9de728f8a6858371e8725889f391d))
* **snowflake:** use schema when constructing pyarrow table ([#10903](https://github.com/ibis-project/ibis/issues/10903)) ([8b9b143](https://github.com/ibis-project/ibis/commit/8b9b143d57d12bfb534e26e84c1a02d83829e174))
### Documentation
* add an example with `literal` in "Getting started" ([#10918](https://github.com/ibis-project/ibis/issues/10918)) ([b69061b](https://github.com/ibis-project/ibis/commit/b69061bcb1f371264aeff9f49aaf6822372a24ae))
* **build:** disable misbehaving duckdb spatial optimizer ([#10898](https://github.com/ibis-project/ibis/issues/10898)) ([c37116f](https://github.com/ibis-project/ibis/commit/c37116f1f104dc63518fc58ede9f94caf3e2c9de))
* **selectors:** render the module instead of hand-picking the documented components ([#10892](https://github.com/ibis-project/ibis/issues/10892)) ([d841481](https://github.com/ibis-project/ibis/commit/d841481d31d2de11d23881c6911d2a21fd40f4a7))
### Refactors
* **duckdb:** simplify loading and installation of extensions ([#10900](https://github.com/ibis-project/ibis/issues/10900)) ([421972a](https://github.com/ibis-project/ibis/commit/421972a6b2d62af8e94472dd6ac34d77fae88c0e))
### Performance
* cache entry points ([#10889](https://github.com/ibis-project/ibis/issues/10889)) ([62e9bca](https://github.com/ibis-project/ibis/commit/62e9bca2c8f9d5928b9c2c75bcd7da759044e713))
* disallow __dunder__ attributes on Deferred ([#10888](https://github.com/ibis-project/ibis/issues/10888)) ([40b20f1](https://github.com/ibis-project/ibis/commit/40b20f19541508110fa0a39db3409d0d3af76188))
## [10.1.0](https://github.com/ibis-project/ibis/compare/10.0.0...10.1.0) (2025-02-22)
### Features
* **pyspark:** add partitionBy argument to create_table ([c99cc23](https://github.com/ibis-project/ibis/commit/c99cc236be8132b237d4871e21c327955fe02f50)), closes [#8900](https://github.com/ibis-project/ibis/issues/8900)
* **python:** allow python 3.9 installations ([#10859](https://github.com/ibis-project/ibis/issues/10859)) ([fbe8c8b](https://github.com/ibis-project/ibis/commit/fbe8c8bfea80a2d619c816f2aee17e7e3e9cd780))
### Bug Fixes
* **bigquery:** allow sane use of `params` with `raw_sql` ([#10874](https://github.com/ibis-project/ibis/issues/10874)) ([0a684c3](https://github.com/ibis-project/ibis/commit/0a684c32446d944f203bb0b0a7a970abf4260006))
* **deps:** update dependency datafusion to v44 ([979cf59](https://github.com/ibis-project/ibis/commit/979cf59a82a8772a4a5634e8f50f10f0e2adf851))
* **deps:** update dependency sqlglot to >=23.4,<26.5 ([#10807](https://github.com/ibis-project/ibis/issues/10807)) ([f09e8e2](https://github.com/ibis-project/ibis/commit/f09e8e21a5bd2bd2977e5f4dbbd282f8c26daae9))
* **deps:** update dependency sqlglot to >=23.4,<26.7 ([15111f8](https://github.com/ibis-project/ibis/commit/15111f8de2997ca92feb8f096594f35e303af050))
* **dev-tools:** ensure that bump is minimal so that later release sort properly ([#10878](https://github.com/ibis-project/ibis/issues/10878)) ([39729c7](https://github.com/ibis-project/ibis/commit/39729c72709c436243cc62b613bdaeb01b053c34))
* **duckdb:** use the `delta` extension for reading deltalake data ([#10833](https://github.com/ibis-project/ibis/issues/10833)) ([beeaa29](https://github.com/ibis-project/ibis/commit/beeaa29544d632d7e6f9bb0355539443f324d4cb)), closes [#10829](https://github.com/ibis-project/ibis/issues/10829)
* **join:** error in more places on colliding column names ([#10778](https://github.com/ibis-project/ibis/issues/10778)) ([ec06e1e](https://github.com/ibis-project/ibis/commit/ec06e1ecf0937bcd6ee83109e78a2e37e8573724))
* **mssql:** ensure that dots in `database` parameter to `list_tables` are used as path delineators ([#10863](https://github.com/ibis-project/ibis/issues/10863)) ([cdbbcb9](https://github.com/ibis-project/ibis/commit/cdbbcb915a8e351b46d07d765e9ffb1806a9c4b2))
* **mssql:** ensure that we only escape passwords if the password is not `None` ([e589344](https://github.com/ibis-project/ibis/commit/e589344d812a9b8080756371498948bfa40d5985))
* **mysql:** explicitly handle the zero integer -> timestamp case ([f5e8c4f](https://github.com/ibis-project/ibis/commit/f5e8c4f5e978087a10417cdd05ca770ea160ebfc))
* **pyspark:** avoid potentially different field names produced by SQL by using python-native APIs ([#10877](https://github.com/ibis-project/ibis/issues/10877)) ([9538d51](https://github.com/ibis-project/ibis/commit/9538d51a8188695247a6bdb62f3d9f187ad4663c))
* **snowflake:** use `get` instead of `get_path`; `get_path` does not support columns with spaces ([#10836](https://github.com/ibis-project/ibis/issues/10836)) ([50c978b](https://github.com/ibis-project/ibis/commit/50c978baa2d7149444c912945b84a7527713b121)), closes [#10835](https://github.com/ibis-project/ibis/issues/10835)
* **sqlglot:** ensure that `sge.Median` is only accessed when it exists ([dc6b7e0](https://github.com/ibis-project/ibis/commit/dc6b7e01fd82aae5c148a7819b62dfd2d8503f56))
* **sqlite:** avoid generating double-quoted string literals ([#10873](https://github.com/ibis-project/ibis/issues/10873)) ([76b0114](https://github.com/ibis-project/ibis/commit/76b01148e18f7de4e3bd3dc2ea1acba96f772408))
### Documentation
* add blogpost for Athena backend ([#10796](https://github.com/ibis-project/ibis/issues/10796)) ([f2f09eb](https://github.com/ibis-project/ibis/commit/f2f09eb9694a6ed32c21c7951c6720775045c0e2))
* add information about reading from cloud buckets ([32e82c7](https://github.com/ibis-project/ibis/commit/32e82c7054d97853e05cc1cb20ca59df184438f7))
* add udf rewriting blog post ([c6ecf6b](https://github.com/ibis-project/ibis/commit/c6ecf6b060803c8fce6436de94307e866735229e))
* **blog:** add post on SQL understanding and Ibis ([#10762](https://github.com/ibis-project/ibis/issues/10762)) ([94425ec](https://github.com/ibis-project/ibis/commit/94425ec1a9cfa088d63d56a18f90ffd21a90e470))
* **blog:** convert case to cases in blog posts ([#10560](https://github.com/ibis-project/ibis/issues/10560)) ([bbf98de](https://github.com/ibis-project/ibis/commit/bbf98de4a71e4e9318919053cf2cdc8a0304a41e))
* **blog:** use more reliable URL for geospatial data ([72b7673](https://github.com/ibis-project/ibis/commit/72b7673ee442cf21cbda21697d0a823ede4a07b0))
* fix reference to incorrect value ([1945237](https://github.com/ibis-project/ibis/commit/1945237041c8e8cddf748df97813961f667fbb0f))
* move `__getitem__` docs so that quarto publishes them ([#10870](https://github.com/ibis-project/ibis/issues/10870)) ([269cdfe](https://github.com/ibis-project/ibis/commit/269cdfebc42934d3fca138c4ce7515fa4a3c0e76))
* **release-notes:** fixup release notes ([fb0798e](https://github.com/ibis-project/ibis/commit/fb0798ee0060a06783742d55b343a04fa3d8886f))
* remove incorrect parameters ([#10876](https://github.com/ibis-project/ibis/issues/10876)) ([a707778](https://github.com/ibis-project/ibis/commit/a707778fde8b1fe2ddca9a379d2babd40332029a))
* update post date ([ea0cc95](https://github.com/ibis-project/ibis/commit/ea0cc954351977d1c73cbc87c04a302afa40c20d))
### Refactors
* **duckdb:** remove the pyarrow `read_parquet` fallback ([5fa0103](https://github.com/ibis-project/ibis/commit/5fa01036117a57058ad40f70c7abd1452d53072c))
## [10.0.0](https://github.com/ibis-project/ibis/compare/9.5.0...10.0.0) (2025-02-06)
### ⚠ BREAKING CHANGES
* **api:** change `as_interval` `unit` argument to be positional-only
* **api:** change `as_timestamp` `unit` argument to be positional-only
* **api:** standardize unnest and pivot_longer signatures
* **api:** remove deprecated `Table.relabel` method
* **api:** standardize `StringValue` method signatures
* **api:** standardize `NumericValue` methods
* **api:** make `GeoSpatialValue.contains` positional-only
* **api:** make `Table.describe` `quantile` argument keyword-only
* **api:** remove deprecated `Table.relabel` method
* **api:** make `Table.drop_null`/`Table.fill_null`/`Table.window_by`/`Table.alias` argument positional-only
* **api:** make `Table.sample` `fraction` argument positional-only
* **api:** make `Table.aggregate` `metrics` argument positional-only
* **api:** make `Table` set operation methods positional-only
* **api:** make `Table.cast` and `Table.try_cast` methods positional-only
* **api:** make `nth` positional-only
* **api:** make `isin`/`notin`/`cases`/`identical_to` positional-only
* **api:** make null-related methods and `null` function positional-only
* **api:** make `Value.cast` and `Value.try_cast` positional-only
* **internals:** make `Value.name` positional-only
* **internals:** make `Expr.pipe` positional-only
* **internals:** make `Expr.equals` positional-only
* **api:** align signatures of `to_json` methods
* **api:** align signatures of `to_delta` methods
* **api:** align signatures of `to_csv`/`to_csv_dir` methods
* **api:** align signatures of `to_parquet`/`to_parquet_dir` methods
* **api:** align `.sql` method signatures across polars and sql as well as the `Table` method
* **api:** top-level `connect` method now takes its first argument as positional-only
* **duckdb:** align signatures of `read_sqlite`/`read_mysql`/`read_postgres` methods in the duckdb backend
* **api:** align signatures of `read_delta` method; sources are positional-only, everything else is required-keyword
* **api:** canonicalize `has_operation` backend method; single argument is positional-only
* **api:** canonicalize `read_kafka` and `to_kafka` methods of the PySpark backend
* **api:** canonicalize `drop_table_or_view` method of the impala backend
* **api:** canonicalize `to_geo` signature of the the DuckDB backend
* **api:** canonicalize `read_geo` signature of the the DuckDB backend
* **api:** align signatures of `list_catalogs; `like` argument is now keyword-only
* **bigquery:** canonicalize `set_database` signature
* **api:** make `list_databases` arguments all required-keyword
* **risingwave:** canonicalize signatures of risingwave-specific `create_*` methods
* **polars:** canonicalize signature of `read_pandas` method
* **api:** align signatures of `drop_table` method; `name` is positional-only; the rest are keyword-only
* **api:** align signatures of `create_catalog` and `drop_catalog` methods; `name` is positional-only; the rest are keyword-only
* **api:** `compile` method is now the same across backends
* **api:** align signatures of `create_table` method; `name` is positional-only; `obj` is positional-or-keyword; the rest are keyword-only
* **api:** align signatures of `create_view` method; `name` is positional-only; `obj` is positional-or-keyword; the rest are keyword-only
* **api:** align signatures of `drop_view` method; `name` is positional-only; the rest are keyword-only
* **api:** align signatures of `truncate_table` method; `name` is positional-only; the rest are keyword-only
* **api:** align signatures of `insert` method; `name` is positional-only; `obj` is positional-or-keyword; the rest are keyword-only
* **api:** align signatures of `read_json` method; sources are positional-only, everything else is required-keyword
* **api:** align signatures of `read_csv` method; sources are positional-only, everything else is required-keyword
* **api:** align signatures of `read_parquet` method; sources are positional-only, everything else is required-keyword
* **api:** align signatures of `to_torch` method
* **api:** align signatures of `to_polars` method
* **api:** align signatures of `Backend.list_tables` method; all arguments are now keyword-only
* **api:** align signatures of `Backend.table` method; `name` is positional-only; everything else is required-keyword
* **api:** align signatures of `create_database` and `drop_database`; `name` is positional-only; everything else is required-keyword
* **api:** standardize `MapValue` method signatures
* **api:** standardize `ArrayValue` method signatures
* **api:** `type` argument of `struct` function is now required-keyword
* **api:** standardize `TemporalValue` APIs
* **api:** `where` argument of aggregate functions is now required-keyword
* **api:** `hashbytes` and `hexdigest` are now positional-only
* **api:** standardize `how` argument to `join` methods as keyword-only and standardize remaining arguments
* **api:** `ibis.coalesce`/`ibis.greatest`/`ibis.least` are now positional-only
* **api:** `Expr.ifelse` is now positional-only
* **api:** top-level set operation functions are now positional-only
* **api:** `set_backend` and `get_backend` functions are now positional-only
* **api:** `ntile` function and method is now positional-only
* **api:** ibis.preceding`/`ibis.following` are now positional-only
* **api:** `expr` argument of `ibis.asc`/`ibis.desc` is now positional-only; `nulls_first` is keyword-only
* **api:** `data` argument of `ibis.memtable` is now positional-only; the rest are keyword-only
* **api:** `pairs` argument of `ibis.schema` is now positional-only; the rest are keyword-only
* **api:** `ibis.param` is now positional-only
* **api:** `n` argument in `Table.limit` and `Table.head` is now required-positional
* **api:** `offset` argument in `Table.limit` is now required-keyword
* **api:** temporal window expression APIs now require all arguments as keywords
* **api:** `to_pyarrow` and `to_pyarrow_batches` requires `expr` as positional-only and keyword for everything else
* **api:** `to_pandas_batches` requires `expr` as positional-only
* **api:** `execute` and `to_pandas` methods now require `expr` as positional-only
* **api:** `distance` is now a required keyword argument for the `d_within` api
* **duckdb:** The duckdb backend's `read_csv` method accepts only DuckDB types for the values components of the `columns` and `types` arguments. You may need need to adjust existing code. For example, the string `"float64"` should be replaced with the string `"double"`.
* **duckdb:** The `read_in_memory` method is removed from the duckdb backend. Use `ibis.memtable` instead.
* **api:** The `how` parameter of the `Value.arbitrary` method is removed. call `Value.first` or `Value.last` explicitly
* **api:** The `StringValue.initcap` method is removed. Use `StringValue.capitalize` instead.
* **api:** `IntegerValue.label` is redundant with the `IntegerValue.cases` method, use that instead. Replace `expr.label(labels)` with `expr.cases(*enumerate(labels))`
* **register:** The deprecated `register` method has been removed. Please use the file-specific `read_*` methods instead. For in-memory objects, pass them to `ibis.memtable` or `create_table`.
* **duckdb:** Special handling of the `temp_directory` argument passed to Ibis is removed in favor of passing the argument through directly to `duckdb.connect`. Interior nodes of directory trees must be created, e.g., using `Path.mkdir(exists_ok=True, parents=True)`, `mkdir -p`, etc.
* **config:** `option_context` is removed. Use `contextlib.contextmanager` to create your own version of this functionality if necessary.
* **duckdb:** The DuckDB lower bound has been bumped to a version that has storage backwards compatibility. You may need to migrate your DuckDB database files.
* **api:** `has_name` has always returned `True` since 9.0. It is safe to remove any calls to `has_name`.
* **backends:** `execute` now returns non-numpy objects for scalar values.
* **api:** `ibis.negate` is removed. Use the `negate` method on a specific column, instead.
* **api:** All `ibis.geo_*` functions are removed. Equivalent methods are available on all geo columns.
* **api:** `where` is removed. Use `ibis.ifelse` instead.
* **value:** `Value.greatest` and `Value.least` are removed. Use `ibis.greatest` and `ibis.least`, instead.
* **joins:** Passing a `pyarrow.Table` or a `pandas.DataFrame` as the right-hand-side of a join is no longer supported. To join against in-memory data, you can pass the in-memory object to `ibis.memtable` or `con.create_table` and use the resulting table object instead.
## Issues closed
* **api:** Removed hierarchical usage of schema.
Ibis uses the following naming conventions:
- schema: a mapping of column names to datatypes
- database: a collection of tables
- catalog: a collection of databases
* **mysql:** Ibis now uses the `MySQLdb` driver. You may need to install MySQL client libraries to **build** the extension.
* **padding:** String padding operations now follow Python semantics and leave strings greater than the padding length untouched.
* **pandas:** The `pandas` backend is removed. Note that **pandas DataFrames are STILL VALID INPUTS AND OUTPUTS** and will remain so for the foreseeable future. Please use one of the other local backends like DuckDB, Polars, or DataFusion to perform operations directly on pandas DataFrames.
* **dask:** The `dask` backend is removed. Please use one of the other backends that Ibis supports.
* **api:** remove deprecated `where` methodism ([886b2d1](https://github.com/ibis-project/ibis/commit/886b2d1ae095836f405876aa2f659c5bfd746321))
* **api:** remove top-level `negate` function ([c8c37dd](https://github.com/ibis-project/ibis/commit/c8c37dd801be84de0d29679313e5758b116f4cd5))
* **api:** remove top-level geo functions ([6b187c3](https://github.com/ibis-project/ibis/commit/6b187c3753d127292f152b9c7d5de08c569a8153))
* **backends:** convert scalars to non-numpy python objects ([#10233](https://github.com/ibis-project/ibis/issues/10233)) ([df08d5e](https://github.com/ibis-project/ibis/commit/df08d5e4c18462300842d4bdbbf5eb29962f01de))
* **duckdb:** bump version lower bound to 0.10 ([8dbbc8b](https://github.com/ibis-project/ibis/commit/8dbbc8b729a94625d3ab3200574bfb775cc0bd7f))
* **mysql:** port to MySQLdb instead of pymysql ([#10077](https://github.com/ibis-project/ibis/issues/10077)) ([2b6633c](https://github.com/ibis-project/ibis/commit/2b6633cb3805752314bd73994cd1f034f6abea06)), closes [#10055](https://github.com/ibis-project/ibis/issues/10055)
* **value:** remove deprecated `greatest` and `least` methods ([65f0973](https://github.com/ibis-project/ibis/commit/65f0973c9be2a994febaa87a8e0b311b04fe6501))
### Features
* add get_backend to expr ([#10228](https://github.com/ibis-project/ibis/issues/10228)) ([4b34a61](https://github.com/ibis-project/ibis/commit/4b34a61b54ef6aed678f8241c23667c8ddf7e474))
* **api:** add `distinct` option to `collect` ([13cf036](https://github.com/ibis-project/ibis/commit/13cf036f815fc9bd584bf746d42dd2e55c75d47f))
* **api:** add `name` kwarg to `Table.value_counts()` ([#10361](https://github.com/ibis-project/ibis/issues/10361)) ([12e6057](https://github.com/ibis-project/ibis/commit/12e60578aeeb3a3809ef9822c1316f8a2490c6ac))
* **api:** add `StringValue.as_time` for parsing strings into times ([#10278](https://github.com/ibis-project/ibis/issues/10278)) ([9134ef5](https://github.com/ibis-project/ibis/commit/9134ef532643616a10ccdacbb0fb961ecc6285a0))
* **api:** add `to_geo` methods for writing geospatial output ([#10299](https://github.com/ibis-project/ibis/issues/10299)) ([9f565a9](https://github.com/ibis-project/ibis/commit/9f565a9ad98a089fcb25959a88136a6e7bc1c506)), closes [#10296](https://github.com/ibis-project/ibis/issues/10296)
* **api:** add support for passing an optional index parameter to array map and filter ([#10205](https://github.com/ibis-project/ibis/issues/10205)) ([dfe7c34](https://github.com/ibis-project/ibis/commit/dfe7c3468d1b134febbdd9d62b06dbf328f99ee8))
* **api:** move from .case() to .cases() ([#9096](https://github.com/ibis-project/ibis/issues/9096)) ([54889db](https://github.com/ibis-project/ibis/commit/54889db679ec03790e3879f50bd65e4e1a73f143))
* **arrays:** add `modes` array aggregation ([#10737](https://github.com/ibis-project/ibis/issues/10737)) ([6603c6c](https://github.com/ibis-project/ibis/commit/6603c6c9f7a24f0dba4c50b6bd8198a33add50a5))
* **athena:** add amazon athena backend ([#10631](https://github.com/ibis-project/ibis/issues/10631)) ([66b3ed2](https://github.com/ibis-project/ibis/commit/66b3ed2dc5842e5207176dd01a84dd2d890d4945))
* **bigquery, impala, mssql, oracle, postgres:** compile `Table.sample` to native `TABLESAMPLE` syntax when possible ([321a3b5](https://github.com/ibis-project/ibis/commit/321a3b5645535ee0335f986aa22ebde557a12809))
* **bigquery:** non-nullable schema support for embedded fields in struct ([#10189](https://github.com/ibis-project/ibis/issues/10189)) ([b16db6a](https://github.com/ibis-project/ibis/commit/b16db6ab4780882df526343fdc8f59a4759540a5))
* **databricks:** add the databricks backend ([#10223](https://github.com/ibis-project/ibis/issues/10223)) ([0733705](https://github.com/ibis-project/ibis/commit/07337053122720425233d8de9058b14dc0bb7ef3))
* **databricks:** isolate volume creation ([#10432](https://github.com/ibis-project/ibis/issues/10432)) ([3cdccfb](https://github.com/ibis-project/ibis/commit/3cdccfbcd566e99e4ce62710cb7e989c956aa720))
* **datafusion:** add ArrayDistinct operation ([#10336](https://github.com/ibis-project/ibis/issues/10336)) ([4491a89](https://github.com/ibis-project/ibis/commit/4491a89c2500b0f15562196748131a9fa764b1c2))
* **datafusion:** enable reading multiple paths in `read_csv` ([#10317](https://github.com/ibis-project/ibis/issues/10317)) ([b57be01](https://github.com/ibis-project/ibis/commit/b57be014858d63a3b11dba914b4ec37d66d42bf0))
* **datatypes:** add support for fixed length arrays ([#10729](https://github.com/ibis-project/ibis/issues/10729)) ([d17d53e](https://github.com/ibis-project/ibis/commit/d17d53e960a21c93f3817964386f03e4bfd21f28))
* **datatypes:** allow trailing comma in struct string shorthands ([#10393](https://github.com/ibis-project/ibis/issues/10393)) ([858deb0](https://github.com/ibis-project/ibis/commit/858deb056673b4b39b74915484478634679d8dc0))
* **deps:** install project and dev and test dependencies in devcontainer ([#10544](https://github.com/ibis-project/ibis/issues/10544)) ([e593495](https://github.com/ibis-project/ibis/commit/e593495e5636d2e45ff9235e4f9d324ce8b7c589)), closes [#10532](https://github.com/ibis-project/ibis/issues/10532)
* **deps:** support pyarrow 18 ([#10381](https://github.com/ibis-project/ibis/issues/10381)) ([0d95336](https://github.com/ibis-project/ibis/commit/0d9533673987d723d93ba31de6158b71094f7264))
* **dtypes:** allow passing `nullable` kwarg to string parsed dtypes ([#10632](https://github.com/ibis-project/ibis/issues/10632)) ([4583dee](https://github.com/ibis-project/ibis/commit/4583dee336a7dbe1eba528477287d07fe22cdd0c)), closes [#10243](https://github.com/ibis-project/ibis/issues/10243)
* **duckdb:** add to_json() to Table and duckdb backend ([b17c28d](https://github.com/ibis-project/ibis/commit/b17c28d3af1d4897ff71d25a505d4bf3a1d94041))
* **duckdb:** allow casting to geometry from text ([#10221](https://github.com/ibis-project/ibis/issues/10221)) ([3e73479](https://github.com/ibis-project/ibis/commit/3e73479926a675df4af6d92a6a38e1cfd27020a4))
* **duckdb:** forward UDF configuration dict as kwargs during registration ([#10358](https://github.com/ibis-project/ibis/issues/10358)) ([02efbb2](https://github.com/ibis-project/ibis/commit/02efbb2f4f3f196c0dc86696b4713210b3c3d790))
* **export:** implement the `Column.to_list()` API ([#10498](https://github.com/ibis-project/ibis/issues/10498)) ([d11a292](https://github.com/ibis-project/ibis/commit/d11a292b25d17d5e31278ccae5232da8cb9fefc5)), closes [#10102](https://github.com/ibis-project/ibis/issues/10102)
* **geospatial:** accept geopandas GDFs in `memtable` ([56ec371](https://github.com/ibis-project/ibis/commit/56ec3719fc2e8433dce2f5bea82e4283f443e2d1))
* **memtable:** add pyarrow.dataset support ([#10206](https://github.com/ibis-project/ibis/issues/10206)) ([428d1a3](https://github.com/ibis-project/ibis/commit/428d1a3c6c8d5e40f1379a4c0b3f82c65b96d29a))
* **polars:** add `Intersection` and `Difference` ops ([#10623](https://github.com/ibis-project/ibis/issues/10623)) ([69b848a](https://github.com/ibis-project/ibis/commit/69b848a5ac8640cdd24b132a1cf7ac29e2c72c81))
* **polars:** add `StringFind` operation ([#10624](https://github.com/ibis-project/ibis/issues/10624)) ([5e8855d](https://github.com/ibis-project/ibis/commit/5e8855ddd57c88d1c7a4922926502f85d93d98ae))
* **polars:** add `TimeFromHMS` op ([#10635](https://github.com/ibis-project/ibis/issues/10635)) ([ff885fb](https://github.com/ibis-project/ibis/commit/ff885fb5accad15c051a3f8457b71119ab44806e))
* **polars:** add ArrayContains operation ([eb14daa](https://github.com/ibis-project/ibis/commit/eb14daad33146adc4b43e857698dea3be51b4e5a))
* **polars:** add ArrayDistinct operation ([#10334](https://github.com/ibis-project/ibis/issues/10334)) ([5657d21](https://github.com/ibis-project/ibis/commit/5657d217919b0f62a006aaebc4089d8e88ddfa01))
* **polars:** add ArrayIndex operation ([ab1df94](https://github.com/ibis-project/ibis/commit/ab1df945ef5adf939a386307f405c4d06a0e9e4e))
* **polars:** add ArrayIntersect operation ([#10335](https://github.com/ibis-project/ibis/issues/10335)) ([efbf99d](https://github.com/ibis-project/ibis/commit/efbf99da0f1af5a1838b0ffd05d7c6775b34e0b1))
* **polars:** add ArrayRemove operation ([#10322](https://github.com/ibis-project/ibis/issues/10322)) ([81d3179](https://github.com/ibis-project/ibis/commit/81d3179fafe0c34752cac09170c1b4ff838e84a6))
* **polars:** add ArraySlice operation ([224bfc3](https://github.com/ibis-project/ibis/commit/224bfc35e640086ce45dbb83b84c2cb8c36cfcdc))
* **polars:** add ArrayStringJoin op ([#10638](https://github.com/ibis-project/ibis/issues/10638)) ([42dd858](https://github.com/ibis-project/ibis/commit/42dd85822c0c35b6f06d672b502585aae64d5e51))
* **polars:** add ArrayUnion operation ([#10330](https://github.com/ibis-project/ibis/issues/10330)) ([4d5e847](https://github.com/ibis-project/ibis/commit/4d5e847818aa657bbd53bc287d5fffb27ca2c523))
* **polars:** add bitwise operations (`bit_and`, `bit_or`, `bit_xor`) ([#10634](https://github.com/ibis-project/ibis/issues/10634)) ([56a66de](https://github.com/ibis-project/ibis/commit/56a66deaad6af0a4f4c4eea875a16a44298675bc))
* **polars:** allow user to specify "engine" kwarg ([#10151](https://github.com/ibis-project/ibis/issues/10151)) ([3877d6d](https://github.com/ibis-project/ibis/commit/3877d6d46b218a3b683ce2c3175ac72183cecf06))
* **polars:** implement `sample` ([c7c900b](https://github.com/ibis-project/ibis/commit/c7c900be08043f8c8043b3067ebb05b4ad6293e4))
* **postgres:** use `psycopg` rather than `psycopg2` ([#10659](https://github.com/ibis-project/ibis/issues/10659)) ([85b449e](https://github.com/ibis-project/ibis/commit/85b449eb337bed4dcbf5d531d1f919ad77c2a78a))
* **pyarrow:** support arrow PyCapsule interface in more places ([#9663](https://github.com/ibis-project/ibis/issues/9663)) ([c9238bd](https://github.com/ibis-project/ibis/commit/c9238bdd568a2bcb5f113aea53505de02bbd4e72))
* **pyspark:** add official support and ci testing with spark connect ([#10187](https://github.com/ibis-project/ibis/issues/10187)) ([abb5593](https://github.com/ibis-project/ibis/commit/abb55939c284fee6478b75100922074907c0e706))
* **python:** support python 3.13 ([#10582](https://github.com/ibis-project/ibis/issues/10582)) ([35f2b9d](https://github.com/ibis-project/ibis/commit/35f2b9decb5cac0aa736276894a63f58db47495a))
* **risingwave:** support `include_null` in `first`/`last` aggs ([d3e4104](https://github.com/ibis-project/ibis/commit/d3e4104e7077f51764a78697d2f60cbaa7294619))
* **types:** add typing overloads to common .cast() dtypes ([#10682](https://github.com/ibis-project/ibis/issues/10682)) ([1394a2a](https://github.com/ibis-project/ibis/commit/1394a2a97d2c160347af14f78318a87863c7ec68))
### Bug Fixes
* **api:** ensure consistent typing in `round` output type ([#10351](https://github.com/ibis-project/ibis/issues/10351)) ([b2b0925](https://github.com/ibis-project/ibis/commit/b2b0925937cc91cefaf344cafab0d21a5c42658e))
* **api:** ensure memtable schema and columns match ([#10617](https://github.com/ibis-project/ibis/issues/10617)) ([f1837b7](https://github.com/ibis-project/ibis/commit/f1837b7e254a6b14d0f259b67c85b40a58e548c9))
* **api:** use `to_pyarrow()` instead of `execute()` when pretty printing scalars ([10b38ee](https://github.com/ibis-project/ibis/commit/10b38ee7e87ceb045955ceb196bf4f0e508a91d5))
* **athena:** implement proper support for inserting data ([#10770](https://github.com/ibis-project/ibis/issues/10770)) ([622de09](https://github.com/ibis-project/ibis/commit/622de09eb89cc7b4bff8a309f866bfcdc2a7af07))
* **athena:** use `exists` instead of `replace` for `create_database` ([#10767](https://github.com/ibis-project/ibis/issues/10767)) ([3c13d67](https://github.com/ibis-project/ibis/commit/3c13d67381ab00c0372af0d6f08de1917406047b))
* **backends:** ensure that analytic functions do not receive a window frame ([#10739](https://github.com/ibis-project/ibis/issues/10739)) ([85d5d68](https://github.com/ibis-project/ibis/commit/85d5d6819cb38c651c0af81704148e74f235fe0c))
* **clickhouse:** fix truncating to date from a timestamp ([#10220](https://github.com/ibis-project/ibis/issues/10220)) ([24e5395](https://github.com/ibis-project/ibis/commit/24e5395563a6ad3af5ba5c67c5357d821f8ee9f9))
* **compiler:** respect order of ops in FloorDivide ([#10353](https://github.com/ibis-project/ibis/issues/10353)) ([af24c8e](https://github.com/ibis-project/ibis/commit/af24c8e293524ba37e15003c8c64f73d064da077))
* **compiler:** use the correct exception type for a failed import ([#10430](https://github.com/ibis-project/ibis/issues/10430)) ([00d83f3](https://github.com/ibis-project/ibis/commit/00d83f393927b799339cecd6d4272df7feff0651))
* **datafusion:** handle array concat like everything else ([f6b4ca4](https://github.com/ibis-project/ibis/commit/f6b4ca49922bb7feeb98562ca8dfc0e49d3d9f87))
* **datatype-parsing:** ensure that geospatial types are round trippable through the data type parser ([#10171](https://github.com/ibis-project/ibis/issues/10171)) ([1c91d65](https://github.com/ibis-project/ibis/commit/1c91d6590f3ec2e358f6d77d6bcf9b9f05d889f9)), closes [#10170](https://github.com/ibis-project/ibis/issues/10170)
* **datatypes:** ensure that decimals can be upcast when source precision, scale are lte to their target fields ([#10470](https://github.com/ibis-project/ibis/issues/10470)) ([5ce906a](https://github.com/ibis-project/ibis/commit/5ce906a6f6ea295452e4cd7f4dbc56985df9a94d)), closes [#10467](https://github.com/ibis-project/ibis/issues/10467)
* **datatypes:** give a more useful error message when trying to cast structs with different fields ([#10214](https://github.com/ibis-project/ibis/issues/10214)) ([d3496fd](https://github.com/ibis-project/ibis/commit/d3496fd05c6b0ec1c6c3cccb32019a5e68e66c0f))
* **datatypes:** return `pd.Timestamp` or `pd.Series[datetime64]` for `date.to_pandas()` ([#8784](https://github.com/ibis-project/ibis/issues/8784)) ([2e56acb](https://github.com/ibis-project/ibis/commit/2e56acb3970c74b88f3214d5dad845563199324a))
* **deps:** bump duckdb to 1.1.2 ([#10311](https://github.com/ibis-project/ibis/issues/10311)) ([198c562](https://github.com/ibis-project/ibis/commit/198c562474ad39aa3eeedcbb1555cf3eaaffa78c))
* **deps:** bump the upper bound of duckdb to allow easier upgrades between ibis releases ([#10786](https://github.com/ibis-project/ibis/issues/10786)) ([db0e0c2](https://github.com/ibis-project/ibis/commit/db0e0c2fc3dc47a8b76b8ddc21460def5cc33df9))
* **deps:** enable running uv lock command in devcontainer ([#10576](https://github.com/ibis-project/ibis/issues/10576)) ([caf3daf](https://github.com/ibis-project/ibis/commit/caf3daf0033e6db2febc9abb2c409a54e8ef645f)), closes [#10575](https://github.com/ibis-project/ibis/issues/10575)
* **deps:** regen requirements-dev.txt ([dbe43cf](https://github.com/ibis-project/ibis/commit/dbe43cf9213f28716008c2ddde92ce7ea33daeb8))
* **deps:** remove the upper bounds for `pyarrow` ([#10503](https://github.com/ibis-project/ibis/issues/10503)) ([24c0aca](https://github.com/ibis-project/ibis/commit/24c0aca09e28844ecbb1e69f15af06f24ddb32b9)), closes [#10492](https://github.com/ibis-project/ibis/issues/10492)
* **deps:** update dependency black to v25 ([#10746](https://github.com/ibis-project/ibis/issues/10746)) ([2da91fb](https://github.com/ibis-project/ibis/commit/2da91fb161f4192e4f06c93c7c3aa6d4eb13ebf7))
* **deps:** update dependency datafusion to v41 ([#10147](https://github.com/ibis-project/ibis/issues/10147)) ([e7cfc11](https://github.com/ibis-project/ibis/commit/e7cfc11b6b2644419281658957181000384ed096))
* **deps:** update dependency datafusion to v42 ([#10304](https://github.com/ibis-project/ibis/issues/10304)) ([ae30920](https://github.com/ibis-project/ibis/commit/ae3092075d5b417f1aece08412200d39b39cf2fd))
* **deps:** update dependency datafusion to v43 ([#10573](https://github.com/ibis-project/ibis/issues/10573)) ([f26b9e6](https://github.com/ibis-project/ibis/commit/f26b9e62569a7733414e810c618c9695aca8867a))
* **deps:** update dependency snowflake-connector-python to v3.12.3 [security] ([#10366](https://github.com/ibis-project/ibis/issues/10366)) ([d841789](https://github.com/ibis-project/ibis/commit/d841789c428eee5c047eeff81291d12dbef1672e))
* **deps:** update dependency sqlglot to >=23.4,<25.22 ([#10109](https://github.com/ibis-project/ibis/issues/10109)) ([44c4de8](https://github.com/ibis-project/ibis/commit/44c4de86957a0d7fa7a6c05940b41ae73139f979))
* **deps:** update dependency sqlglot to >=23.4,<25.23 ([#10176](https://github.com/ibis-project/ibis/issues/10176)) ([6042bf4](https://github.com/ibis-project/ibis/commit/6042bf4d39bfee18e321715928db813702e7886c))
* **deps:** update dependency sqlglot to >=23.4,<25.24 ([#10230](https://github.com/ibis-project/ibis/issues/10230)) ([021df72](https://github.com/ibis-project/ibis/commit/021df72e1e438381d5fc6baa2e20939ca1dc62b1))
* **deps:** update dependency sqlglot to >=23.4,<25.25 ([#10237](https://github.com/ibis-project/ibis/issues/10237)) ([c898cbc](https://github.com/ibis-project/ibis/commit/c898cbc267fd9a3b2f141e97593e6b5d8779e749))
* **deps:** update dependency sqlglot to >=23.4,<25.26 ([#10314](https://github.com/ibis-project/ibis/issues/10314)) ([43dfe38](https://github.com/ibis-project/ibis/commit/43dfe38274464de44d229e3f7337612c340d2cd4))
* **deps:** update dependency sqlglot to >=23.4,<25.27 ([#10348](https://github.com/ibis-project/ibis/issues/10348)) ([3252b38](https://github.com/ibis-project/ibis/commit/3252b38ce372427ad3913e894a66f05b153443c1))
* **deps:** update dependency sqlglot to >=23.4,<25.28 ([#10356](https://github.com/ibis-project/ibis/issues/10356)) ([fbf214d](https://github.com/ibis-project/ibis/commit/fbf214ddda6eb5c9b3a0ecea63a793c789da861f))
* **deps:** update dependency sqlglot to >=23.4,<25.29 ([#10375](https://github.com/ibis-project/ibis/issues/10375)) ([6fffa50](https://github.com/ibis-project/ibis/commit/6fffa505c7a3900ed66b4b0aa851820b21bb95cb))
* **deps:** update dependency sqlglot to >=23.4,<25.30 ([#10444](https://github.com/ibis-project/ibis/issues/10444)) ([72e6f7b](https://github.com/ibis-project/ibis/commit/72e6f7b4d6f3a44b5f18ddefc3336f3ff57b9f0a))
* **deps:** update dependency sqlglot to >=23.4,<25.31 ([#10472](https://github.com/ibis-project/ibis/issues/10472)) ([321a382](https://github.com/ibis-project/ibis/commit/321a3828f7e3753f3c9662d1a78160884d6b815a))
* **deps:** update dependency sqlglot to >=23.4,<25.32 ([#10502](https://github.com/ibis-project/ibis/issues/10502)) ([18dbfaf](https://github.com/ibis-project/ibis/commit/18dbfaf1fde5c03deb537a7b6561ed459c63e5ee))
* **deps:** update dependency sqlglot to >=23.4,<25.33 ([#10527](https://github.com/ibis-project/ibis/issues/10527)) ([0721d11](https://github.com/ibis-project/ibis/commit/0721d11c9c5d7dd105fe7c1ad3c47e4cdb0136e1))
* **deps:** update dependency sqlglot to >=23.4,<25.35 ([2f2c834](https://github.com/ibis-project/ibis/commit/2f2c834b193b526cb158be495ea3b9d39fd7091d))
* **deps:** update dependency sqlglot to >=23.4,<26.2 ([#10662](https://github.com/ibis-project/ibis/issues/10662)) ([1be3509](https://github.com/ibis-project/ibis/commit/1be350940f3417f85e21094e60b19bec1858c9ad))
* **deps:** update dependency sqlglot to >=23.4,<26.3 ([#10668](https://github.com/ibis-project/ibis/issues/10668)) ([c987927](https://github.com/ibis-project/ibis/commit/c9879277b686eb9db6378a74c6a6a3be8604cc53))
* **deps:** update dependency sqlglot to >=23.4,<26.4 ([#10715](https://github.com/ibis-project/ibis/issues/10715)) ([30b3822](https://github.com/ibis-project/ibis/commit/30b3822a48500090eeb43449e658cc42ae2028d9))
* **deps:** update dependency sqlglot to v26 ([437146a](https://github.com/ibis-project/ibis/commit/437146a1dc9e8205eee0986ef50756bcf4829463))
* **dev-env:** fix aarch64 nix builds ([#10795](https://github.com/ibis-project/ibis/issues/10795)) ([985942d](https://github.com/ibis-project/ibis/commit/985942d1156c4954bae1c4b9d3e633e7fc0a6c74))
* **docs:** add null examples header and expected failure ([#10496](https://github.com/ibis-project/ibis/issues/10496)) ([b1be5ea](https://github.com/ibis-project/ibis/commit/b1be5ea87df99edca8b2dfac005b954459625f9d))
* **docs:** render func args as args, not list of args ([51d90a7](https://github.com/ibis-project/ibis/commit/51d90a707698baea49dd086d892c4afc2d8a7dba))
* **druid, risingwave:** better error on unsupported `random`/`sample` methods ([5a47668](https://github.com/ibis-project/ibis/commit/5a4766831b15827fd4853c9057968a8acc5aaedf))
* **duckdb:** ensure that duckdb columns argument to read_csv accepts duckdb syntax not ibis syntax ([#10696](https://github.com/ibis-project/ibis/issues/10696)) ([83bed74](https://github.com/ibis-project/ibis/commit/83bed7422b247568b6aad40bec79e0555ed081fd))
* **duckdb:** handle null propagation correctly in array concatenation ([14620bb](https://github.com/ibis-project/ibis/commit/14620bbee75eeb4e809852a4a91421f24f4d6252))
* **duckdb:** return null typed pyarrow arrays and disable creating tables with all null columns in duckdb ([#9810](https://github.com/ibis-project/ibis/issues/9810)) ([b2c0989](https://github.com/ibis-project/ibis/commit/b2c098962db447d45f3d9fec0ac702e223627b8d))
* **duckdb:** thread udf parameters through ([9377966](https://github.com/ibis-project/ibis/commit/93779669f9eeac5f043d5e3e1fb5d21033f6dabd))
* **duckdb:** use simple GEOMETRY type for all geospatial data ([#10324](https://github.com/ibis-project/ibis/issues/10324)) ([#10333](https://github.com/ibis-project/ibis/issues/10333)) ([0b98112](https://github.com/ibis-project/ibis/commit/0b9811247bc365fc52b1552d8eb76fc1eaaf6fba))
* **geometry:** make output handling robust to text or bytes ([49b404a](https://github.com/ibis-project/ibis/commit/49b404aa64f36fc0f239e7351843fe832b7c8a96))
* **graphviz:** ensure all lines are left-justified ([#10783](https://github.com/ibis-project/ibis/issues/10783)) ([3e86e2d](https://github.com/ibis-project/ibis/commit/3e86e2d2d6b547a88b7e62d9628c97d77f2486de))
* **insert:** user can specify insert table in specified database ([#10285](https://github.com/ibis-project/ibis/issues/10285)) ([0e848d0](https://github.com/ibis-project/ibis/commit/0e848d0363d82a95e8ca26e0652516890a0aeaa8))
* **interactive-repr:** ensure that null scalars can be repr'd interactively ([#10784](https://github.com/ibis-project/ibis/issues/10784)) ([5f1c75a](https://github.com/ibis-project/ibis/commit/5f1c75a85c072ed2a27bd60b668d8ca85d50fc6a)), closes [#10780](https://github.com/ibis-project/ibis/issues/10780)
* **joins:** allow chaining positional and cross joins ([#10122](https://github.com/ibis-project/ibis/issues/10122)) ([e969eda](https://github.com/ibis-project/ibis/commit/e969eda5dbecd2527052a89cf7c76660a218438e))
* make memtable cleanup tests work ([#10283](https://github.com/ibis-project/ibis/issues/10283)) ([11f8921](https://github.com/ibis-project/ibis/commit/11f89218dcca82c298e023269920ed4966ef25a3))
* **memtables:** track memtables with a weakset to allow overwriting tables with the same name but different data ([#10133](https://github.com/ibis-project/ibis/issues/10133)) ([bf0a666](https://github.com/ibis-project/ibis/commit/bf0a66642a820be6a939b5a42f56eb6a5275729b))
* **mssql:** allow `temp=None` ([#10289](https://github.com/ibis-project/ibis/issues/10289)) ([ea1c179](https://github.com/ibis-project/ibis/commit/ea1c179036b10b53e58156a0bfc3e31f3472a388))
* **mssql:** catch and bubble up exceptions from .sql ([#10332](https://github.com/ibis-project/ibis/issues/10332)) ([80ad348](https://github.com/ibis-project/ibis/commit/80ad348a0690d654746aead41c5ed398f8738afc)), closes [#10331](https://github.com/ibis-project/ibis/issues/10331)
* **mssql:** ensure `ibis.random()` generates a new value per call ([#10173](https://github.com/ibis-project/ibis/issues/10173)) ([1667f43](https://github.com/ibis-project/ibis/commit/1667f432019030483003ad884217b5da3a2da509))
* **mssql:** escape special characters in passwords ([#10437](https://github.com/ibis-project/ibis/issues/10437)) ([caf3632](https://github.com/ibis-project/ibis/commit/caf3632b9a255d06e1b21dfa38b9dd93c13e3e48)), closes [/stackoverflow.com/questions/78531086/pyodbc-connection-string-correctly-escaping-password-with-special-characters/78532507#78532507](https://github.com/ibis-project//stackoverflow.com/questions/78531086/pyodbc-connection-string-correctly-escaping-password-with-special-characters/78532507/issues/78532507)
* **mssql:** exclude window frame from rank ([#10302](https://github.com/ibis-project/ibis/issues/10302)) ([244876a](https://github.com/ibis-project/ibis/commit/244876a00e73082c3b77137a0a16f665257aba48)), closes [#10291](https://github.com/ibis-project/ibis/issues/10291)
* **mssql:** support new sqlglot temporal types ([150eff3](https://github.com/ibis-project/ibis/commit/150eff32546624345601a5c4a1ed9274946aedff))
* **mssql:** use nvarchar to avoid non ascii be question mark ([564594f](https://github.com/ibis-project/ibis/commit/564594f3c8d1d1d109eddd7a13fd210565febdb7))
* **mysql:** add dtype mapping for `mediumint` ([6d22c5c](https://github.com/ibis-project/ibis/commit/6d22c5cfee15510c88d2bd3fe01d94453016ab18))
* **mysql:** generate `IF NOT EXISTS` if `force=True` ([#10785](https://github.com/ibis-project/ibis/issues/10785)) ([d613b55](https://github.com/ibis-project/ibis/commit/d613b55b458ef4158d3ec9b2771874049241d718))
* **mysql:** handle database names that must be quoted in `list_tables` ([#10466](https://github.com/ibis-project/ibis/issues/10466)) ([23c0e81](https://github.com/ibis-project/ibis/commit/23c0e810419c227455125c3cfd233c01665fe935))
* **polars:** ensure that null literals are not mistakenly made non-null ([d4d4bcc](https://github.com/ibis-project/ibis/commit/d4d4bcc05acb4e1b56d46276260e119553ede46b))
* **polars:** handle `pl.Array` ([#10260](https://github.com/ibis-project/ibis/issues/10260)) ([aadae58](https://github.com/ibis-project/ibis/commit/aadae58192555e1892d522f437fa891c26a69625))
* **polars:** use elementwise flatten to flatten nested arrays ([#10168](https://github.com/ibis-project/ibis/issues/10168)) ([f97bb77](https://github.com/ibis-project/ibis/commit/f97bb779a75257b2aa819f79cf3f77354b3908a1)), closes [#10135](https://github.com/ibis-project/ibis/issues/10135)
* **postgres:** add dtype mapping for postgres OID type ([b279fb2](https://github.com/ibis-project/ibis/commit/b279fb2922b7f1c24d1f14423633282b32131b43))
* **postgres:** dedent in udfs ([3f5d090](https://github.com/ibis-project/ibis/commit/3f5d0904ddb291c79dc1c816716ada0fea2d57af))
* **postgres:** do not use schema when renaming a table for overwrite purposes ([#10771](https://github.com/ibis-project/ibis/issues/10771)) ([c7ea505](https://github.com/ibis-project/ibis/commit/c7ea505f7143b8bb2238f3fba4f820f4939a7708))
* **postgres:** fix insertion of `NaT`/`None` into timestamp columns ([#10748](https://github.com/ibis-project/ibis/issues/10748)) ([847ed85](https://github.com/ibis-project/ibis/commit/847ed85dec14503a76c82af9e011cf02dfb59a5a))
* **postgres:** make null handling in array concat consistent with all other backends ([6e51493](https://github.com/ibis-project/ibis/commit/6e51493ff644c26710f2b383895b9ffb91539416))
* **pyspark:** generate `IF NOT EXISTS` if `force=True` ([#10782](https://github.com/ibis-project/ibis/issues/10782)) ([c7d1d38](https://github.com/ibis-project/ibis/commit/c7d1d3878f22bb1213c29fb705333d46e493b3ea))
* **repr:** remove expression printing from exception message ([#10130](https://github.com/ibis-project/ibis/issues/10130)) ([8a260a8](https://github.com/ibis-project/ibis/commit/8a260a85c74ae2e6fad79100e3b6aee0fd2f6cb0))
* **snowflake, bigquery:** minor adjustments for passing in `dialect` to `sg.func` ([#10407](https://github.com/ibis-project/ibis/issues/10407)) ([210ab3c](https://github.com/ibis-project/ibis/commit/210ab3c77c9ef75327ef3eecbfcea06c8c3beac8))
* **snowflake:** apply casting logic for json output to scalars ([#10202](https://github.com/ibis-project/ibis/issues/10202)) ([91764d3](https://github.com/ibis-project/ibis/commit/91764d37c13c19b67fc292488144c47bf5c3ac6d))
* **snowflake:** ensure that paths are URIs on all platforms ([#10775](https://github.com/ibis-project/ibis/issues/10775)) ([42cbb5d](https://github.com/ibis-project/ibis/commit/42cbb5dc2dfa4cb59cd68b5fb59653fdf502c01e))
* **snowflake:** ensure that timestamps are properly timezoned ([#10732](https://github.com/ibis-project/ibis/issues/10732)) ([02628e8](https://github.com/ibis-project/ibis/commit/02628e85533e73177a20f5a02cc123e0cfae08c4))
* **snowflake:** make semantics of array filtering match everything else ([#10469](https://github.com/ibis-project/ibis/issues/10469)) ([bad487b](https://github.com/ibis-project/ibis/commit/bad487bd68458e8aa0cee00a68e460424c28f494))
* **snowflake:** only compile `sample` to `TABLESAMPLE` on physical tables ([#10218](https://github.com/ibis-project/ibis/issues/10218)) ([bdb718d](https://github.com/ibis-project/ibis/commit/bdb718db8238ea17b8c294ffd7ca657b8e3cc73a))
* **snowflake:** use `as_posix` instead of `as_uri` to avoid escaping special characters ([#10792](https://github.com/ibis-project/ibis/issues/10792)) ([ec41d4c](https://github.com/ibis-project/ibis/commit/ec41d4ca5aefb2d28eb44bc695a91b81b9b3bb22))
* **sql:** include dialect when creating sqlglot functions ([#10397](https://github.com/ibis-project/ibis/issues/10397)) ([36c99ba](https://github.com/ibis-project/ibis/commit/36c99badb3072f0a384513942fa8611eb4d0771a))
* **sql:** remove constants in `order_by` calls during select merging ([#10475](https://github.com/ibis-project/ibis/issues/10475)) ([6e693b7](https://github.com/ibis-project/ibis/commit/6e693b76a3c678bc400427aa10d055d279ac1137)), closes [#10428](https://github.com/ibis-project/ibis/issues/10428)
* **sql:** standardize NULL handling of `argmin`/`argmax` ([#10227](https://github.com/ibis-project/ibis/issues/10227)) ([51335ed](https://github.com/ibis-project/ibis/commit/51335edfa78bcd72d6ceacd24137cef6d253bd64))
* **trino,pyspark:** improve null handling in array filter ([#10448](https://github.com/ibis-project/ibis/issues/10448)) ([860b9ca](https://github.com/ibis-project/ibis/commit/860b9caabfcb403d31c8bb2e154c2027cb067508))
* **trino:** remove invalid ranking function window frames ([#10363](https://github.com/ibis-project/ibis/issues/10363)) ([348500c](https://github.com/ibis-project/ibis/commit/348500c4bf6105d741d83ae7ecd26142e854edc3))
* **udf:** make udfs impure and avoid merging selects with impure functions ([1693984](https://github.com/ibis-project/ibis/commit/16939849b12d4bc6c6e441262ee8072cdaacc113))
### Documentation
* add callout notes for some APIs changes and additions ([#10551](https://github.com/ibis-project/ibis/issues/10551)) ([2e1aa79](https://github.com/ibis-project/ibis/commit/2e1aa798cc3d65c5c6fe88b3ed24e9ba6f5e1dff))
* add JSON API docs ([#10722](https://github.com/ibis-project/ibis/issues/10722)) ([a9d6611](https://github.com/ibis-project/ibis/commit/a9d661165b24611f4b1c17b3e30fecf18c6f9990))
* **algolia:** also add functions to algolia index ([5ae697e](https://github.com/ibis-project/ibis/commit/5ae697e4fdee4d551a75f798bf6a0fc4c8b25ad7))
* **algolia:** feed the index a little snack ([#10210](https://github.com/ibis-project/ibis/issues/10210)) ([10f7f5b](https://github.com/ibis-project/ibis/commit/10f7f5b3519ef41eaf9b28467063225f286ebe47))
* **api:** avoid quartodoc warning about missing parameter ([499ccc6](https://github.com/ibis-project/ibis/commit/499ccc6b5fb2d33ba1daf465bcc2f7276511f620))
* **api:** deprecate `to_array` in favor of `as_scalar` in docstring ([#10508](https://github.com/ibis-project/ibis/issues/10508)) ([62e8b6c](https://github.com/ibis-project/ibis/commit/62e8b6cde4c67cc33bb92abcfa286275e602ef31))
* **api:** indicate that `re_search` need only match part of a string ([#10402](https://github.com/ibis-project/ibis/issues/10402)) ([78d88a5](https://github.com/ibis-project/ibis/commit/78d88a53c6c61996dd2123c957a24b29e26af958))
* **api:** use memtable for pipe docstring ([41ea0c7](https://github.com/ibis-project/ibis/commit/41ea0c75e41cea73fa8dd245f53978dfb63e7ef5))
* avoid needing to render API docs for any preview/render invocation ([#10106](https://github.com/ibis-project/ibis/issues/10106)) ([34c465c](https://github.com/ibis-project/ibis/commit/34c465cde2429147beb018fb5fb5b9a0308c6c2b))
* **bigquery:** add update-adc flag to gcloud auth login ([#10172](https://github.com/ibis-project/ibis/issues/10172)) ([82e9ba0](https://github.com/ibis-project/ibis/commit/82e9ba053a47d70c594a6a516d7fe736111a362a))
* **blog:** classification metrics on the backend ([#10501](https://github.com/ibis-project/ibis/issues/10501)) ([aafb30f](https://github.com/ibis-project/ibis/commit/aafb30faa1bf996c61e3662c0558a8755f1808e2))
* **blog:** fix metric print output in classification blog ([f832547](https://github.com/ibis-project/ibis/commit/f832547d6a851cfffdd5ce06f5476eabe7db1df2))
* **blog:** ibis, duckdb geo and lonboard for overture maps ([#10215](https://github.com/ibis-project/ibis/issues/10215)) ([5f18747](https://github.com/ibis-project/ibis/commit/5f18747fcebcfc7778cd9f7d403a2041356cc1dc))
* **blog:** walking talking cube ([#10160](https://github.com/ibis-project/ibis/issues/10160)) ([ea16887](https://github.com/ibis-project/ibis/commit/ea16887df497148c578b84d731e040da1ba6474e))
* **build:** fetch all commits to enable proper dynamic versioning in the docs build ([#10184](https://github.com/ibis-project/ibis/issues/10184)) ([c62efce](https://github.com/ibis-project/ibis/commit/c62efce854c6e49f896bef565733744ee00ec156))
* **campaign-finance-blog-post:** fix typo ([e438bf3](https://github.com/ibis-project/ibis/commit/e438bf3685cccb924cc4097f4a310892777d2479))
* **campaign-finance-blog-post:** use nullif ([80027bf](https://github.com/ibis-project/ibis/commit/80027bfa49ac5e64e7654c8873179adca241081e))
* clarify `distinct` in difference(), add examples ([#10716](https://github.com/ibis-project/ibis/issues/10716)) ([b711f39](https://github.com/ibis-project/ibis/commit/b711f39bced12465eba75bd5c070e198f5e1d1a7))
* **clickhouse:** entry into the accursed ([#10174](https://github.com/ibis-project/ibis/issues/10174)) ([5a2e6e8](https://github.com/ibis-project/ibis/commit/5a2e6e8314d256b66002f473af55a3d955be9c73))
* **code_of_conduct:** update committee members and reporting email ([#10117](https://github.com/ibis-project/ibis/issues/10117)) ([dcdeaea](https://github.com/ibis-project/ibis/commit/dcdeaea1330517ac1661307edc28219ed61b3800))
* **contribute:** include instructions to use Pixi ([#10504](https://github.com/ibis-project/ibis/issues/10504)) ([db8af10](https://github.com/ibis-project/ibis/commit/db8af10a30fb204dd1dff25134e88a5d7433f4e0))
* correct link generated in operations matrix ([#10345](https://github.com/ibis-project/ibis/issues/10345)) ([c7c929d](https://github.com/ibis-project/ibis/commit/c7c929d4b1cc9c660909c0133f340c1054f5da84))
* **datafusion:** add datafusion nyc presentation ([#10141](https://github.com/ibis-project/ibis/issues/10141)) ([913bc55](https://github.com/ibis-project/ibis/commit/913bc5519edd6a612a2e7302873fa7cfb4df5d72))
* **datafusion:** add imdb live demo reference to end of presentation ([#10162](https://github.com/ibis-project/ibis/issues/10162)) ([1d965c7](https://github.com/ibis-project/ibis/commit/1d965c7861879f783356525ddc718109c10a596e))
* **datafusion:** assorted edits to datafusion meetup talk ([#10144](https://github.com/ibis-project/ibis/issues/10144)) ([c6008e8](https://github.com/ibis-project/ibis/commit/c6008e80c5083867958cde20cb8d272a8c98bcda))
* **datafusion:** update talk title ([#10150](https://github.com/ibis-project/ibis/issues/10150)) ([c799f6b](https://github.com/ibis-project/ibis/commit/c799f6bc92de9bb18aee3a3ad5196b2f9786f3b1))
* deduplicate rendering of cloud support policy ([#10637](https://github.com/ibis-project/ibis/issues/10637)) ([bb0f354](https://github.com/ibis-project/ibis/commit/bb0f354405006ddb53054fec923e560d726cb58e))
* **dev:** add some hard-won pytest tips and tricks ([#10224](https://github.com/ibis-project/ibis/issues/10224)) ([d8638b6](https://github.com/ibis-project/ibis/commit/d8638b65ca816aca76ac70a149b053d49e27d07f))
* **development:** update tool matrices for accuracy ([fb4e45d](https://github.com/ibis-project/ibis/commit/fb4e45d9d3538b812b5e7482b322c7e0046381e0))
* **dropdowns:** make dropdowns scrollable and easier to see in navigation bar ([#10090](https://github.com/ibis-project/ibis/issues/10090)) ([c8932c8](https://github.com/ibis-project/ibis/commit/c8932c8b385514e1e3f01037eaf693553c11033d))
* **druid:** fix connect kwarg example ([#10372](https://github.com/ibis-project/ibis/issues/10372)) ([7dac420](https://github.com/ibis-project/ibis/commit/7dac420e29d0c32b8dbf267ad08fc4b5c5d798d0)), closes [#10368](https://github.com/ibis-project/ibis/issues/10368)
* **duckdb:** remove warning of duckdb not supporting chunk_size parameter ([af9c2a2](https://github.com/ibis-project/ibis/commit/af9c2a2697bc4f6d7940497a6b4dd25259f306b1)), closes [/github.com/duckdb/duckdb/pull/6840#issuecomment-1481387587](https://github.com/ibis-project//github.com/duckdb/duckdb/pull/6840/issues/issuecomment-1481387587) [#10443](https://github.com/ibis-project/ibis/issues/10443)
* **examples:** `count`, `percent_rank`, `cume_dist`, `ntile` example usage ([#10435](https://github.com/ibis-project/ibis/issues/10435)) ([291bb69](https://github.com/ibis-project/ibis/commit/291bb693e21cdcb4b1508355ed491a13de8a563a))
* **examples:** add `asof_join` weather example ([#10507](https://github.com/ibis-project/ibis/issues/10507)) ([7595ca6](https://github.com/ibis-project/ibis/commit/7595ca6ba4db48a4abd30996f1824bcb26ee6ee5))
* **examples:** add `having` example for GroupedTable ([#10457](https://github.com/ibis-project/ibis/issues/10457)) ([130e4d5](https://github.com/ibis-project/ibis/commit/130e4d58746f7b42b028cc3a9cb4bd4f0398af94))
* **examples:** add `Value.asc` and `Value.desc` examples ([#10515](https://github.com/ibis-project/ibis/issues/10515)) ([41c8f23](https://github.com/ibis-project/ibis/commit/41c8f23e4f55a02ab258d49918383aac09e93778))
* **examples:** add as_interval IntegerValue example ([a28ceb1](https://github.com/ibis-project/ibis/commit/a28ceb1aa0d5eb7c85075a728e721d87da09021d))
* **examples:** add as_timestamp IntegerValue example ([e693e71](https://github.com/ibis-project/ibis/commit/e693e715c8ac37334affbaba1d2770785eeafb42))
* **examples:** add cumsum, cummean, and sum examples ([#10474](https://github.com/ibis-project/ibis/issues/10474)) ([2650f7c](https://github.com/ibis-project/ibis/commit/2650f7cd497b5cc1951a7afb59344b822a2434c9))
* **examples:** add DayOfWeek method examples ([#10394](https://github.com/ibis-project/ibis/issues/10394)) ([6e08195](https://github.com/ibis-project/ibis/commit/6e0819579710662620a231c129cd159821f21db4))
* **examples:** add distinct argument example for intersect ([ac99ebb](https://github.com/ibis-project/ibis/commit/ac99ebb586aff50b4c49c9281ce9394552dd9f0b))
* **examples:** add example and see also ref for compile ([e69348b](https://github.com/ibis-project/ibis/commit/e69348b2bf8405a496ec248c8ff051a9e5119f26))
* **examples:** add example and see also ref for ibis.to_sql ([9877766](https://github.com/ibis-project/ibis/commit/9877766856b14b86e88cebfee13baf40baefba66))
* **examples:** add example and see also ref for Table.execute ([bb40a50](https://github.com/ibis-project/ibis/commit/bb40a50e1fff102f5e0bd951888b23e4f93a879f))
* **examples:** add hashbytes example ([#10537](https://github.com/ibis-project/ibis/issues/10537)) ([0b99e47](https://github.com/ibis-project/ibis/commit/0b99e4781940527a82749a235206b4044da6b8cb))
* **examples:** add ibis.get_backend examples ([#10489](https://github.com/ibis-project/ibis/issues/10489)) ([4d99018](https://github.com/ibis-project/ibis/commit/4d9901897fbcb4a480bafda3f98d85a9a32f9ed6))
* **examples:** add IntegerColumn bitwise aggregegate examples ([a189c5a](https://github.com/ibis-project/ibis/commit/a189c5a3f518091eefda4dd3a7203744af9686ae))
* **examples:** add mean, bucket, histogram examples ([3a1bb36](https://github.com/ibis-project/ibis/commit/3a1bb36441149282a305967ff810784099ec9a6a))
* **examples:** add remaining non-TimeValue temporal examples ([#10401](https://github.com/ibis-project/ibis/issues/10401)) ([c55cbd9](https://github.com/ibis-project/ibis/commit/c55cbd918c0b8275a4bdb6c15408bec62f6db027))
* **examples:** add remaining selectors examples ([#10421](https://github.com/ibis-project/ibis/issues/10421)) ([a340e4f](https://github.com/ibis-project/ibis/commit/a340e4fe7ccfaa2699b1bf70e525ba0d55c4e316))
* **examples:** add rest arg examples for intersect ([e663faf](https://github.com/ibis-project/ibis/commit/e663faf728a5b50b8db6dc1f9c3745fee472ce85))
* **examples:** add selector example for none ([#10425](https://github.com/ibis-project/ibis/issues/10425)) ([9f60ca3](https://github.com/ibis-project/ibis/commit/9f60ca343aba2f821a11a8fcf2a771f5409976f4))
* **examples:** add std, var, corr, and cov usage examples ([161c61f](https://github.com/ibis-project/ibis/commit/161c61f597b323e5f2c6b3085b545b9132514e2d))
* **examples:** add temporal `day_of_year` example ([#10376](https://github.com/ibis-project/ibis/issues/10376)) ([40c14c3](https://github.com/ibis-project/ibis/commit/40c14c3aae9fb9df36d8ee075e8242d046f5f70b))
* **examples:** add temporal `strftime` examples ([#10362](https://github.com/ibis-project/ibis/issues/10362)) ([11b4e3a](https://github.com/ibis-project/ibis/commit/11b4e3a45847351a5e293251b98de87265702fb6))
* **examples:** add temporal `truncate` examples ([#10367](https://github.com/ibis-project/ibis/issues/10367)) ([41a9b7d](https://github.com/ibis-project/ibis/commit/41a9b7db117588293318e483ffe949ccae694d16))
* **examples:** add temporal interval examples ([#10383](https://github.com/ibis-project/ibis/issues/10383)) ([5eed3f7](https://github.com/ibis-project/ibis/commit/5eed3f7f629a9261fdbe98d472b6607174c1b91d))
* **examples:** add type example ([#10420](https://github.com/ibis-project/ibis/issues/10420)) ([9d1e8cc](https://github.com/ibis-project/ibis/commit/9d1e8cc5facebfd79b161b6f8ef6820980cad9ff))
* **examples:** add unbind example ([#10454](https://github.com/ibis-project/ibis/issues/10454)) ([40a30c1](https://github.com/ibis-project/ibis/commit/40a30c11e181f3fc5c82ce65f63c6d48b3ceeae9))
* **examples:** add usage examples for `get_backend` and `get_name` ([#10449](https://github.com/ibis-project/ibis/issues/10449)) ([ae1bb20](https://github.com/ibis-project/ibis/commit/ae1bb20b0d042899126d7f74b2dbc6bf5222aeb4))
* **examples:** align Table.get_backend with ibis.get_backend examples ([#10495](https://github.com/ibis-project/ibis/issues/10495)) ([11947d8](https://github.com/ibis-project/ibis/commit/11947d85de556ec87d9f9409f238eaa4ab788595))
* **examples:** cummin, cummax, lead, lag, nth example usage ([452f807](https://github.com/ibis-project/ibis/commit/452f8078ed99b9ab6bd619798aa07a0992510f2b))
* expand ibis-for-sql-users set operator examples ([#10395](https://github.com/ibis-project/ibis/issues/10395)) ([5c14965](https://github.com/ibis-project/ibis/commit/5c149652b803f3ea009b8ca36e379f0373207dd2))
* fix typo in query docstring ([#10308](https://github.com/ibis-project/ibis/issues/10308)) ([04f8a5f](https://github.com/ibis-project/ibis/commit/04f8a5fe340f680bcfee7c4afdef1e8dc13037c4))
* **fix:** skip doctest for SqlString return ([efbe5b1](https://github.com/ibis-project/ibis/commit/efbe5b18033acabf8e6b1feb9ef1ab3b67b0bf24))
* **how-to:** fix the `ffill`/`bfill` how-to guide ([70de8db](https://github.com/ibis-project/ibis/commit/70de8db00b83dd3652a0e1e123711ee80b68983e))
* **how-to:** marimo integration ([#10392](https://github.com/ibis-project/ibis/issues/10392)) ([e1f9124](https://github.com/ibis-project/ibis/commit/e1f9124df1ad68db13598381332348dbd77ef15e))
* **impala:** remove table methods from backend docs ([#10557](https://github.com/ibis-project/ibis/issues/10557)) ([1163156](https://github.com/ibis-project/ibis/commit/11631567c68b2099dcbd8863b1c09b220ec18604)), closes [#9840](https://github.com/ibis-project/ibis/issues/9840)
* **render:** fix rendering of backend method docstrings ([#10313](https://github.com/ibis-project/ibis/issues/10313)) ([a4fe3ee](https://github.com/ibis-project/ibis/commit/a4fe3ee681af03bc68cc413c335e77f24436ecad))
* **repl:** bump duckdb pyodide wheel to 1.1.2 ([#10423](https://github.com/ibis-project/ibis/issues/10423)) ([38ccb4d](https://github.com/ibis-project/ibis/commit/38ccb4dab478fe25d046cd5191701f7ecf531498))
* reword backend counting to nearly 20 from 20+ ([#10533](https://github.com/ibis-project/ibis/issues/10533)) ([52b5353](https://github.com/ibis-project/ibis/commit/52b53531069bd776711489c163895942ee9ee763))
* **security:** update security report address to point to private Zulip channel ([#10118](https://github.com/ibis-project/ibis/issues/10118)) ([5f8a6c9](https://github.com/ibis-project/ibis/commit/5f8a6c92cb5aa694f80184a1cbf1c195a3abfd21))
* superduperdb name change ([#10250](https://github.com/ibis-project/ibis/issues/10250)) ([76940ce](https://github.com/ibis-project/ibis/commit/76940ceac01dfb0bc6f0a2bcb3555a9355aa0fa7))
* **support-matrix:** hide internal operations from the support matrix ([#10352](https://github.com/ibis-project/ibis/issues/10352)) ([c53ce33](https://github.com/ibis-project/ibis/commit/c53ce33b26c9ef551abf22238ebb24653dcc504c))
* **synonyms:** add synonym list to redirect searches with no results ([#10163](https://github.com/ibis-project/ibis/issues/10163)) ([78fd5c6](https://github.com/ibis-project/ibis/commit/78fd5c6a9c13b58dd401112c4d6148a8b53ed095))
* **table-expr:** include inherited methods (all `to_*` methods) ([#10164](https://github.com/ibis-project/ibis/issues/10164)) ([b39ec14](https://github.com/ibis-project/ibis/commit/b39ec14b96b65c67afc9b483ba0905f8b788763a))
* **tutorial:** fix typo in ibis-for-sql-users.qmd ([#10549](https://github.com/ibis-project/ibis/issues/10549)) ([6cf461f](https://github.com/ibis-project/ibis/commit/6cf461ffb9e997337d08c1db766b281bacb1b49b))
* update ci-analysis post ([#10290](https://github.com/ibis-project/ibis/issues/10290)) ([22dcce1](https://github.com/ibis-project/ibis/commit/22dcce1cf13122eb66a649f4423ad8afba8d6e08))
* update README backends ([#10259](https://github.com/ibis-project/ibis/issues/10259)) ([41462c5](https://github.com/ibis-project/ibis/commit/41462c5955fa656177a54ad587f42b363034d08f))
* use python3.11 in doctests to avoid impyla import issue ([#10464](https://github.com/ibis-project/ibis/issues/10464)) ([d60c370](https://github.com/ibis-project/ibis/commit/d60c370362ab50de8410b006750eb4aaa54101df))
### Refactors
* **api:** `compile` method is now the same across backends ([2a2e3c5](https://github.com/ibis-project/ibis/commit/2a2e3c552ddf8a7cb40a224c534d66bd2742ec93))
* **api:** `data` argument of `ibis.memtable` is now positional-only; the rest are keyword-only ([869fe02](https://github.com/ibis-project/ibis/commit/869fe0281f9baeb98472aef1ae21ee7cac74f895))
* **api:** `distance` is now a required keyword argument for the `d_within` api ([d9f1692](https://github.com/ibis-project/ibis/commit/d9f1692690aa11b04513d3f484397f341aaa3e16))
* **api:** `execute` and `to_pandas` methods now require `expr` as positional-only ([d8d6852](https://github.com/ibis-project/ibis/commit/d8d6852b277fe7299882b51d76b81455cfaa3214))
* **api:** `Expr.ifelse` is now positional-only ([8b094d7](https://github.com/ibis-project/ibis/commit/8b094d77ee4dea0926978176065a6fb0c977cdee))
* **api:** `expr` argument of `ibis.asc`/`ibis.desc` is now positional-only; `nulls_first` is keyword-only ([633ccab](https://github.com/ibis-project/ibis/commit/633ccabe60c097c93349bed21f0dbae4a8504aea))
* **api:** `hashbytes` and `hexdigest` are now positional-only ([fd5e7e3](https://github.com/ibis-project/ibis/commit/fd5e7e3d6d6995333e6f691303c516228e444a12))
* **api:** `ibis.coalesce`/`ibis.greatest`/`ibis.least` are now positional-only ([8cc7216](https://github.com/ibis-project/ibis/commit/8cc72166e737b012992063453793a820938cc269))
* **api:** `ibis.param` is now positional-only ([6d5f036](https://github.com/ibis-project/ibis/commit/6d5f0361b325b50fd4aee0529f2bcd1e7c2c425f))
* **api:** `n` argument in `Table.limit` and `Table.head` is now required-positional ([1e3473a](https://github.com/ibis-project/ibis/commit/1e3473a62226f6b76e90a658a7f55f1e44497171))
* **api:** `ntile` function and method is now positional-only ([a33ccb3](https://github.com/ibis-project/ibis/commit/a33ccb33e409b569571bce62df95743e9922f287))
* **api:** `offset` argument in `Table.limit` is now required-keyword ([9c159a7](https://github.com/ibis-project/ibis/commit/9c159a76734669e75df54696c3181b82e9a750a8))
* **api:** `pairs` argument of `ibis.schema` is now positional-only; the rest are keyword-only ([a252ee5](https://github.com/ibis-project/ibis/commit/a252ee58d6013b0491143cc36ba41d3d40005506))
* **api:** `set_backend` and `get_backend` functions are now positional-only ([6b458b7](https://github.com/ibis-project/ibis/commit/6b458b7ffd8892ce6f35ce6dd877c521ab4b8c93))
* **api:** `to_pandas_batches` requires `expr` as positional-only ([d7fb0b1](https://github.com/ibis-project/ibis/commit/d7fb0b1ac1b14ae330e780fabb05b888655c90af))
* **api:** `to_pyarrow` and `to_pyarrow_batches` requires `expr` as positional-only and keyword for everything else ([892a3cf](https://github.com/ibis-project/ibis/commit/892a3cf661bfd3eb42822819fa38f233aad78244))
* **api:** `type` argument of `struct` function is now required-keyword ([931dcbc](https://github.com/ibis-project/ibis/commit/931dcbcd8ce3acba96ce56e5b795c317fbb8f6a6))
* **api:** `where` argument of aggregate functions is now required-keyword ([5b29be3](https://github.com/ibis-project/ibis/commit/5b29be337279ce9f6fc7ac66aba36ea3b9bab9b4))
* **api:** align `.sql` method signatures across polars and sql as well as the `Table` method ([007afcf](https://github.com/ibis-project/ibis/commit/007afcf0b2c98d9551849d082ff0e632ee244bc2))
* **api:** align signatures of `Backend.list_tables` method; all arguments are now keyword-only ([03a4d8a](https://github.com/ibis-project/ibis/commit/03a4d8a02ee2d950bbb13e4f08ca3f2bbbdd17b0))
* **api:** align signatures of `Backend.table` method; `name` is positional-only; everything else is required-keyword ([22de2b5](https://github.com/ibis-project/ibis/commit/22de2b5f78b67f0f1b622387856e20e62587d6ac))
* **api:** align signatures of `create_catalog` and `drop_catalog` methods; `name` is positional-only; the rest are keyword-only ([0f8be2c](https://github.com/ibis-project/ibis/commit/0f8be2c262364999b0e3c75d5639ba1cce7c28ee))
* **api:** align signatures of `create_database` and `drop_database`; `name` is positional-only; everything else is required-keyword ([f5fae11](https://github.com/ibis-project/ibis/commit/f5fae117be329377c249f57d80bd676a4e9dbb93))
* **api:** align signatures of `create_table` method; `name` is positional-only; `obj` is positional-or-keyword; the rest are keyword-only ([895a0af](https://github.com/ibis-project/ibis/commit/895a0af25c3992159932a23abd8954972edd7f44))
* **api:** align signatures of `create_view` method; `name` is positional-only; `obj` is positional-or-keyword; the rest are keyword-only ([fae9f76](https://github.com/ibis-project/ibis/commit/fae9f76d6d89c0d91f3469170561d4e58ea1ce0d))
* **api:** align signatures of `drop_table` method; `name` is positional-only; the rest are keyword-only ([4acc7e1](https://github.com/ibis-project/ibis/commit/4acc7e1f1accf686463e00bd5248bf1be577eee7))
* **api:** align signatures of `drop_view` method; `name` is positional-only; the rest are keyword-only ([4488e62](https://github.com/ibis-project/ibis/commit/4488e6276c654716dcbec4f003a68ab809642177))
* **api:** align signatures of `insert` method; `name` is positional-only; `obj` is positional-or-keyword; the rest are keyword-only ([98dc49f](https://github.com/ibis-project/ibis/commit/98dc49f7e9e24ebe02deb6ddeefb6b8f3fc8a4ea))
* **api:** align signatures of `list_catalogs; `like` argument is now keyword-only ([456d579](https://github.com/ibis-project/ibis/commit/456d57941d0d7777498ff85cd180c3669dcee78d))
* **api:** align signatures of `read_csv` method; sources are positional-only, everything else is required-keyword ([681378c](https://github.com/ibis-project/ibis/commit/681378c8b5d551ec3747e5dba7115daf5f62819b))
* **api:** align signatures of `read_delta` method; sources are positional-only, everything else is required-keyword ([ed3df4b](https://github.com/ibis-project/ibis/commit/ed3df4b0a8c1b4583dfb4f6996706426888918c3))
* **api:** align signatures of `read_json` method; sources are positional-only, everything else is required-keyword ([643516a](https://github.com/ibis-project/ibis/commit/643516aa0cabe75e6a6fde32b2e5556e007e417d))
* **api:** align signatures of `read_parquet` method; sources are positional-only, everything else is required-keyword ([63d44e6](https://github.com/ibis-project/ibis/commit/63d44e6f8aef3a8aa25824f50f4626ed37ae97cd))
* **api:** align signatures of `to_csv`/`to_csv_dir` methods ([9a641f8](https://github.com/ibis-project/ibis/commit/9a641f8389291f38297d11ca6a21309d42e8407b))
* **api:** align signatures of `to_delta` methods ([3440922](https://github.com/ibis-project/ibis/commit/344092282bf293230d02b0f758b537ba282400fc))
* **api:** align signatures of `to_json` methods ([a557414](https://github.com/ibis-project/ibis/commit/a55741433cd87e780cdd913e841fae097e1ac5c4))
* **api:** align signatures of `to_parquet`/`to_parquet_dir` methods ([f099499](https://github.com/ibis-project/ibis/commit/f09949964c0d44f9e56ae98bec233d7b38c8cb40))
* **api:** align signatures of `to_polars` method ([6b055b1](https://github.com/ibis-project/ibis/commit/6b055b1d84bee11e399f8a77dfd9becd91fda96b))
* **api:** align signatures of `to_torch` method ([ce2f81d](https://github.com/ibis-project/ibis/commit/ce2f81db61570942e4795a7beec4e86572b67708))
* **api:** align signatures of `truncate_table` method; `name` is positional-only; the rest are keyword-only ([d6e411b](https://github.com/ibis-project/ibis/commit/d6e411b4d3cee029a5b4d98e406c0cf2300bcd62))
* **api:** canonicalize `drop_table_or_view` method of the impala backend ([b87418d](https://github.com/ibis-project/ibis/commit/b87418de5ca0bac86b7b807bb46c0654ff1f0112))
* **api:** canonicalize `has_operation` backend method; single argument is positional-only ([6b53a21](https://github.com/ibis-project/ibis/commit/6b53a2118fdc44b11dcc096fe024c0461240d1d8))
* **api:** canonicalize `read_geo` signature of the the DuckDB backend ([38d2190](https://github.com/ibis-project/ibis/commit/38d2190a736dc4e18a5f7fab0a69d371f76e5982))
* **api:** canonicalize `read_kafka` and `to_kafka` methods of the PySpark backend ([bab767d](https://github.com/ibis-project/ibis/commit/bab767d9d3d72619de00a00235da7ccc75f65685))
* **api:** canonicalize `to_geo` signature of the the DuckDB backend ([c8589b2](https://github.com/ibis-project/ibis/commit/c8589b2fd0aa5ca5bae0398e57fe265a54b059fb))
* **api:** canonicalize first argument of `Backend.from_connection` ([cb28632](https://github.com/ibis-project/ibis/commit/cb286324f6d289a5b9936559431d1bc2bf6a2c7c))
* **api:** canonicalize first argument of `Backend.from_connection` ([00ff77e](https://github.com/ibis-project/ibis/commit/00ff77e97101e16d6f959117f3ffceb79dad72cf))
* **api:** change `as_interval` `unit` argument to be positional-only ([eda91b2](https://github.com/ibis-project/ibis/commit/eda91b2873e32b52505ce43eb97bac60d518b884))
* **api:** change `as_timestamp` `unit` argument to be positional-only ([f58c9d5](https://github.com/ibis-project/ibis/commit/f58c9d5ca968aa2625aee4e2f01f1a4843c0bcb4))
* **api:** ibis.preceding`/`ibis.following` are now positional-only ([8ec0d11](https://github.com/ibis-project/ibis/commit/8ec0d11184523c933ddd8d4c12c0f8f7c6aba5f0))
* **api:** make `GeoSpatialValue.contains` positional-only ([64825db](https://github.com/ibis-project/ibis/commit/64825db4048a3f63762182655b20efec62740a73))
* **api:** make `isin`/`notin`/`cases`/`identical_to` positional-only ([13695f1](https://github.com/ibis-project/ibis/commit/13695f1fd6e622904e0bd60d3b4ce881af4f98a2))
* **api:** make `list_databases` arguments all required-keyword ([9beb279](https://github.com/ibis-project/ibis/commit/9beb27981c23ab5a88af953a1994d0cb7f371804))
* **api:** make `nth` positional-only ([dd0bbc2](https://github.com/ibis-project/ibis/commit/dd0bbc2ce710b20229bd176392d8bdafb73be63a))
* **api:** make `Table.aggregate` `metrics` argument positional-only ([028fc6c](https://github.com/ibis-project/ibis/commit/028fc6c106e69a0daf22dce1fe1fe11306cdf433))
* **api:** make `Table.cast` and `Table.try_cast` methods positional-only ([3bfcc0c](https://github.com/ibis-project/ibis/commit/3bfcc0c7759289dbc4836db32a012db0c9431283))
* **api:** make `Table.describe` `quantile` argument keyword-only ([94758b1](https://github.com/ibis-project/ibis/commit/94758b1f3b9c106611ef0f17b530278e94681323))
* **api:** make `Table.drop_null`/`Table.fill_null`/`Table.window_by`/`Table.alias` argument positional-only ([a1731a8](https://github.com/ibis-project/ibis/commit/a1731a8d0ad78768210e4714266780d699ae5cb9))
* **api:** make `Table.sample` `fraction` argument positional-only ([a1fa4b0](https://github.com/ibis-project/ibis/commit/a1fa4b0c7671ea27fcbad93a2bf9414d18613551))
* **api:** make `Table` set operation methods positional-only ([f363a07](https://github.com/ibis-project/ibis/commit/f363a07391349f17d697e306c5c6c9b94ee6dff8))
* **api:** make `Value.cast` and `Value.try_cast` positional-only ([75c9e6b](https://github.com/ibis-project/ibis/commit/75c9e6b081ec00f97529edacd43b4acd77e3724e))
* **api:** make null-related methods and `null` function positional-only ([da4cb1e](https://github.com/ibis-project/ibis/commit/da4cb1e6415496838bae3e5c5832bc630bd32b81))
* **api:** remove `has_name` ([#10246](https://github.com/ibis-project/ibis/issues/10246)) ([adc2fd0](https://github.com/ibis-project/ibis/commit/adc2fd08aaecaaed5dfa32a6c9df87e62af43111))
* **api:** remove `IntegerValue.label` ([6278f7e](https://github.com/ibis-project/ibis/commit/6278f7ee8912c7032a1d318b2799f4ce2fa55724))
* **api:** remove `StringValue.initcap` method ([0ba40da](https://github.com/ibis-project/ibis/commit/0ba40da51b3f845f9b6729743d62e883cb2524d0))
* **api:** remove deprecated `Table.relabel` method ([1480cf7](https://github.com/ibis-project/ibis/commit/1480cf7b4e9874f7273297592ac7d8f86a4f7004))
* **api:** remove deprecated `Table.relabel` method ([1ae4025](https://github.com/ibis-project/ibis/commit/1ae402511b60e9214b380df4aeaf959a96b53fb6))
* **api:** remove schema ([#10149](https://github.com/ibis-project/ibis/issues/10149)) ([9642182](https://github.com/ibis-project/ibis/commit/9642182d2d732deee31dbdc734668c94a049c7eb))
* **api:** remove the `how` parameter from `Value.arbitrary` ([64521bc](https://github.com/ibis-project/ibis/commit/64521bc4e5ba03e1a7152825bf9371917e7090ce))
* **api:** standardize `ArrayValue` method signatures ([bc4c7a3](https://github.com/ibis-project/ibis/commit/bc4c7a33b6a74ad774b4950c02c46c6523ac1a22))
* **api:** standardize `how` argument to `join` methods as keyword-only and standardize remaining arguments ([08cf816](https://github.com/ibis-project/ibis/commit/08cf816695400412060f8346c1e69bcbe637ad80))
* **api:** standardize `MapValue` method signatures ([7313dfc](https://github.com/ibis-project/ibis/commit/7313dfc51b71ae44e3f082c2cc6fb9a01196d3cd))
* **api:** standardize `NumericValue` methods ([e0460b5](https://github.com/ibis-project/ibis/commit/e0460b57c1156b1721bd23c102c8bc79fe366dcf))
* **api:** standardize `StringValue` method signatures ([cd7c1b6](https://github.com/ibis-project/ibis/commit/cd7c1b663fb85d15705499e4733a0543bc6ed825))
* **api:** standardize `TemporalValue` APIs ([72c14d7](https://github.com/ibis-project/ibis/commit/72c14d7f9e76a88063da2f7f57dcbf1478676111))
* **api:** standardize unnest and pivot_longer signatures ([62af6fa](https://github.com/ibis-project/ibis/commit/62af6fab9340a126eb523fe4da985e5defee5213))
* **api:** temporal window expression APIs now require all arguments as keywords ([12a6074](https://github.com/ibis-project/ibis/commit/12a60742575cfdd096fa1db9bd72ba7ad395cf29))
* **api:** top-level `connect` method now takes its first argument as positional-only ([a7a050a](https://github.com/ibis-project/ibis/commit/a7a050a6fd313a7c741f851233f1aa57ae07604d))
* **api:** top-level set operation functions are now positional-only ([38c275b](https://github.com/ibis-project/ibis/commit/38c275bb5c4b761a0f8379c721b463e3761c7c36))
* **bigquery:** canonicalize `set_database` signature ([6777877](https://github.com/ibis-project/ibis/commit/6777877982bb52b166150d22a39c41906041b9a7))
* **bigquery:** remove unnecessary and misspelled bigquery string find implementation ([#10119](https://github.com/ibis-project/ibis/issues/10119)) ([0558319](https://github.com/ibis-project/ibis/commit/055831974ac26d48c00d13c55a601a363c266904))
* **compiler:** fix `Compiler.dialect` type hint, remove unneeded `duckdb` compilation rule for `RegexReplace` ([#10400](https://github.com/ibis-project/ibis/issues/10400)) ([a806691](https://github.com/ibis-project/ibis/commit/a806691bc9109a3b3bb7198e371e08976c2f416a))
* **config:** remove `option_context` ([4f15905](https://github.com/ibis-project/ibis/commit/4f159052cf655ade1e5d420df73cd1a247fcd12f))
* **dask:** remove the dask backend ([d66dff5](https://github.com/ibis-project/ibis/commit/d66dff5ae0c0ba4d1f179f748390f85eaef2e085))
* **duckdb:** align signatures of `read_sqlite`/`read_mysql`/`read_postgres` methods in the duckdb backend ([a522187](https://github.com/ibis-project/ibis/commit/a522187f5ace46f23ce7b2c0ceb3d302e53b8036))
* **duckdb:** pass `temp_directory` through as-is to `duckdb.connect` ([4ea041f](https://github.com/ibis-project/ibis/commit/4ea041f6118a98070f6cf3d2dc633c5b5f21e49b))
* **duckdb:** remove the `read_in_memory` method from the duckdb backend ([8343c98](https://github.com/ibis-project/ibis/commit/8343c986e2639777bb126e74c4e254d1abc9aed9))
* **duckdb:** replace register usage with read ([56b8ce4](https://github.com/ibis-project/ibis/commit/56b8ce48aef4bfb878492612ac8b75ce7b8851be))
* **impala:** remove impala table ([#9840](https://github.com/ibis-project/ibis/issues/9840)) ([e38eb83](https://github.com/ibis-project/ibis/commit/e38eb83dc659117e534a99dbc69e8c20a94a7906)), closes [#9839](https://github.com/ibis-project/ibis/issues/9839) [#9365](https://github.com/ibis-project/ibis/issues/9365)
* **internals:** make `Expr.equals` positional-only ([024ccc6](https://github.com/ibis-project/ibis/commit/024ccc6cf71b0a73377dc33457827d028b112a40))
* **internals:** make `Expr.pipe` positional-only ([413e52e](https://github.com/ibis-project/ibis/commit/413e52e02cb3e0092ee227e39c9ab8602ba790cd))
* **internals:** make `Value.name` positional-only ([3abddd1](https://github.com/ibis-project/ibis/commit/3abddd11196bfb53ee078bf05800aed7a4427976))
* **internals:** move `_is_null_literal` to its call site ([78edd68](https://github.com/ibis-project/ibis/commit/78edd68af731cd660e4cb74fe1a63665ac6e2126))
* **joins:** require explicit abstract table as RHS of joins ([#9661](https://github.com/ibis-project/ibis/issues/9661)) ([8166717](https://github.com/ibis-project/ibis/commit/8166717f7d586979b130c005f455ce0bd3c99495)), closes [#9571](https://github.com/ibis-project/ibis/issues/9571)
* **padding:** follow python string padding conventions ([#10096](https://github.com/ibis-project/ibis/issues/10096)) ([b31fcc6](https://github.com/ibis-project/ibis/commit/b31fcc624755becae76781be1213e1a9ea8b1ff0))
* **pandas:** remove the pandas backend ([93f8e10](https://github.com/ibis-project/ibis/commit/93f8e1083ae800f5c996777c429a68338fdec780))
* **polars:** canonicalize signature of `read_pandas` method ([f5a4c79](https://github.com/ibis-project/ibis/commit/f5a4c79fbe653af85facd18badc4dd743ce45bf6))
* **pyarrow-format:** avoid constructing unnecessary array to produce a scalar ([#10204](https://github.com/ibis-project/ibis/issues/10204)) ([c9e5d58](https://github.com/ibis-project/ibis/commit/c9e5d5820166e421765090cf45c0069aed1e76ae))
* **register:** remove deprecated register method ([#10545](https://github.com/ibis-project/ibis/issues/10545)) ([aa60584](https://github.com/ibis-project/ibis/commit/aa6058433f8ff35d837415e6368a6436fe96da26))
* **risingwave:** canonicalize signatures of risingwave-specific `create_*` methods ([778ea46](https://github.com/ibis-project/ibis/commit/778ea468eb9ec40ff2b9bc8b145d5f12cfcbff3d))
* **risingwave:** decouple the risingwave backend from the postgres backend ([#10669](https://github.com/ibis-project/ibis/issues/10669)) ([bd30ba5](https://github.com/ibis-project/ibis/commit/bd30ba5ccebbf44ee1ef9642c0cd5359d0392854)), closes [#10659](https://github.com/ibis-project/ibis/issues/10659)
* **snowflake:** remove some unnecessary checking of input in the snowflake compiler ([4fceebf](https://github.com/ibis-project/ibis/commit/4fceebf2718a92c2602a6c11788d4e77238ebca9))
* **sql-compiler:** pull up argmin and argmax into the base compiler ([ef6634c](https://github.com/ibis-project/ibis/commit/ef6634c888d22d9a35639425f6edec218c4be49d))
* **sql:** centralize compilation of `sample` with a shared rewrite rule ([b95a036](https://github.com/ibis-project/ibis/commit/b95a0362f9c3a246bf5b7cc9a88fe95117f1de84))
* **sql:** clean up unnecessary use of explicit visit methods ([2acaa16](https://github.com/ibis-project/ibis/commit/2acaa16a5bbeb744a7a02b348a1e95b961ddd0f9))
* **sql:** simplify paren handling for binary ops ([721ba4e](https://github.com/ibis-project/ibis/commit/721ba4eae0460559bdcc9c5ccb4721115107a5e9))
* **table-api:** unify exception type for all backends to `TableNotFound` when a table does not exist ([#9695](https://github.com/ibis-project/ibis/issues/9695)) ([0c49e3b](https://github.com/ibis-project/ibis/commit/0c49e3bf36ac88b6345bd83812621b9c22098209))
### Performance
* **api:** return `tuple` from `Table.columns` instead of `list` ([7d89a39](https://github.com/ibis-project/ibis/commit/7d89a398fbb28a3c91815fbbb15b38e9fef7bdab))
* **clickhouse:** avoid unnecessary construction of a pyarrow table when inserting a pandas dataframe ([#10287](https://github.com/ibis-project/ibis/issues/10287)) ([7fd710c](https://github.com/ibis-project/ibis/commit/7fd710c3d1934ec100c245626217d8e671344593))
* **duckdb:** reduce branching factor for ArrayDistinct ([9b7a377](https://github.com/ibis-project/ibis/commit/9b7a377717be84af8098c90c693f5b9410167e99))
* **duckdb:** use builtin negative array slicing in newer duckdbs ([b91e3dc](https://github.com/ibis-project/ibis/commit/b91e3dca7fe0131037b93166572f9bf242b3e96e))
### Deprecations
* **structs:** slate `destructure` for removal in 11.0 ([e0bc9b7](https://github.com/ibis-project/ibis/commit/e0bc9b7aa6e9786efe739401623f2e03db2f692f))
## [9.5.0](https://github.com/ibis-project/ibis/compare/9.4.0...9.5.0) (2024-09-11)
### Features
* **api:** add `name` argument to `topk` ([1652076](https://github.com/ibis-project/ibis/commit/16520764a9debdf49106851ed1e3ee179b2cebc5))
* **api:** add `name` argument to `value_counts` ([24be184](https://github.com/ibis-project/ibis/commit/24be184827c6368d6c7509584b27c3e2a332bb24))
* **api:** add `to_sqlglot` method to `Schema` objects ([#10063](https://github.com/ibis-project/ibis/issues/10063)) ([9488115](https://github.com/ibis-project/ibis/commit/9488115b588ebf6ba0814ebbac9937c8bfc8b517))
* **mssql:** add lpad and rpad ops ([#10060](https://github.com/ibis-project/ibis/issues/10060)) ([77af14b](https://github.com/ibis-project/ibis/commit/77af14bccdd6cd13c8df28499c36b58b9868f6e8))
* **mssql:** add startswith and endswith ops ([17a628c](https://github.com/ibis-project/ibis/commit/17a628ca52a4c4249f5b09b2b03f9f429f8ba248))
### Bug Fixes
* **backends:** pass kwargs to _from_url() in every case ([#10003](https://github.com/ibis-project/ibis/issues/10003)) ([9ca92f0](https://github.com/ibis-project/ibis/commit/9ca92f07707fd8c8bbc0ca4123b1e1bf5452d6c4))
* **bigquery:** handle column name mismatches and `_TABLE_SUFFIX` everywhere ([5ade49e](https://github.com/ibis-project/ibis/commit/5ade49e6a409b691da40a6109f69c3bfd49b83ed))
* **clickhouse:** fix lstrip, rstrip, and strip ([d2539c4](https://github.com/ibis-project/ibis/commit/d2539c4201af6a4a7928b594d5e46d6a06ba3127))
* **datafusion:** raise when attempting to create temp table ([#10072](https://github.com/ibis-project/ibis/issues/10072)) ([1cf5439](https://github.com/ibis-project/ibis/commit/1cf54399c94849cf27782b2446efe3c2e31e2467))
* **deps:** update dependency fsspec to <2024.9.1 ([#10036](https://github.com/ibis-project/ibis/issues/10036)) ([ea71719](https://github.com/ibis-project/ibis/commit/ea717198f60e2143888f0901be82d137ef1a8aff))
* **deps:** update dependency sqlglot to >=23.4,<25.20 ([#10010](https://github.com/ibis-project/ibis/issues/10010)) ([ba07da7](https://github.com/ibis-project/ibis/commit/ba07da7841b276f333c4e3238507ddcb3981b6e4))
* **deps:** update dependency sqlglot to >=23.4,<25.21 ([#10050](https://github.com/ibis-project/ibis/issues/10050)) ([422d361](https://github.com/ibis-project/ibis/commit/422d3618286845612fdc5d259537385b0dfa9d2e))
* **docs:** update invalid read_parquet link ([2ae9ef4](https://github.com/ibis-project/ibis/commit/2ae9ef440a2e897377ee19e132d8f4638d798baf))
* **duckdb:** allow setting `auto_detect` to `False` by fixing translation of columns argument ([#10065](https://github.com/ibis-project/ibis/issues/10065)) ([883d2d3](https://github.com/ibis-project/ibis/commit/883d2d3f064a75ae59660ee5027c2adfa2483913))
* **duckdb:** free memtables based on operation lifetime ([#10042](https://github.com/ibis-project/ibis/issues/10042)) ([a121ab3](https://github.com/ibis-project/ibis/commit/a121ab35ece43d8cf2724dca86f1bbbbd8e047a5))
* **duckdb:** support version 1.1.0 ([#10037](https://github.com/ibis-project/ibis/issues/10037)) ([3a37626](https://github.com/ibis-project/ibis/commit/3a376265534add3d9d8de76f40a8b2dad41832a1))
* **flink:** fix strip ([01117a5](https://github.com/ibis-project/ibis/commit/01117a5308027601a315d853bec88fc6e42cdd8a))
* **impala:** allow specifying `temp=False` in `create_table` ([e29712c](https://github.com/ibis-project/ibis/commit/e29712c31264eca39d2606c70848097f092db6fb))
* **impala:** fix lstrip, rstrip, strip ([413df3b](https://github.com/ibis-project/ibis/commit/413df3bcee21faadade61549ca4e778e4b60fb7d))
* **mssql:** ensure that dot-sql can be executed when column names are not provided ([#10028](https://github.com/ibis-project/ibis/issues/10028)) ([1936437](https://github.com/ibis-project/ibis/commit/193643717d1042d3244171c9af3888f6009c9c5e)), closes [#10025](https://github.com/ibis-project/ibis/issues/10025)
* **mssql:** fix strip, lstrip, rstrip ([f53feab](https://github.com/ibis-project/ibis/commit/f53feaba1e03f6b8a05f5f705ae2cc844a865599))
* **oracle:** fix lstrip, rstrip, and strip ([3f5a304](https://github.com/ibis-project/ibis/commit/3f5a3042061bcaee7f9e611cc5ce60bd8bf973e2))
* **pandas:** don't silently ignore result column name mismatches ([48be246](https://github.com/ibis-project/ibis/commit/48be246f6a5b6381dbd83ca0d0fa9ee5fe45f542))
* **polars:** support polars `Enum` type ([#10017](https://github.com/ibis-project/ibis/issues/10017)) ([869829f](https://github.com/ibis-project/ibis/commit/869829f03d957d572113929533414a015b312047))
* **sqlite:** list temporary tables by default ([#10058](https://github.com/ibis-project/ibis/issues/10058)) ([dfa55b6](https://github.com/ibis-project/ibis/commit/dfa55b6465ebb54d65a2041c752f2058fd422d3a))
* **sql:** properly parenthesize binary ops containing named expressions ([5c2eadc](https://github.com/ibis-project/ibis/commit/5c2eadcdd5b2fbfcdae454e7149d9438c52e190f))
### Documentation
* **accursed:** add cursed knowledge page ([#10031](https://github.com/ibis-project/ibis/issues/10031)) ([85e1dcc](https://github.com/ibis-project/ibis/commit/85e1dccd59c46f5abf8670ca1d3c1f559f219ecd))
* **duckdb:** fix broken link to parquet writing ([#10026](https://github.com/ibis-project/ibis/issues/10026)) ([d22f8eb](https://github.com/ibis-project/ibis/commit/d22f8eb88cc0cfb70b2a9e292564d8c87206c352))
* **jupyterlite:** disable insecure extensions ([#10052](https://github.com/ibis-project/ibis/issues/10052)) ([3d8280b](https://github.com/ibis-project/ibis/commit/3d8280b494dd9df6f2e40fe2f4966786a6fa5766))
### Refactors
* **backends:** clean up resources produced by `memtable` ([#10055](https://github.com/ibis-project/ibis/issues/10055)) ([019cae5](https://github.com/ibis-project/ibis/commit/019cae5d8567477b7be38942069f66b6ce87805a))
* **backends:** split memtable existence check out ([#10053](https://github.com/ibis-project/ibis/issues/10053)) ([77448bf](https://github.com/ibis-project/ibis/commit/77448bfb85a48b8674d3fe432639f6ac5752c1ba))
* **datafusion:** avoid reinitializing memtables on every execute call ([#10057](https://github.com/ibis-project/ibis/issues/10057)) ([43e5f12](https://github.com/ibis-project/ibis/commit/43e5f1282bf1c4fcab8e4f1c40927bedd8bc95a8))
* **dependencies:** make `fsspec` a test-only dependency ([37e4439](https://github.com/ibis-project/ibis/commit/37e4439328315dece1ee54ade0fff1f17a5ef8b2))
* **formats:** plumb through `data_mapper` and `schema` in both pandas and pyarrow formats ([cbeb967](https://github.com/ibis-project/ibis/commit/cbeb967a48ae3ca37669721e54874aff8bbc435d))
* **mssql:** simplify lpad and rpad ops ([#10085](https://github.com/ibis-project/ibis/issues/10085)) ([ef5d58d](https://github.com/ibis-project/ibis/commit/ef5d58deab950d3bc205cb0e4c6bc1ba3e6299f7)), closes [/github.com/ibis-project/ibis/pull/10060#discussion_r1752665235](https://github.com/ibis-project//github.com/ibis-project/ibis/pull/10060/issues/discussion_r1752665235)
* **polars:** handle memtables like every other backend ([#10056](https://github.com/ibis-project/ibis/issues/10056)) ([2b0dbb9](https://github.com/ibis-project/ibis/commit/2b0dbb980f40ab52b5cdfbe906233c311c8cf8ee))
### Performance
* **backends:** speed up most memtable existence checks ([#10067](https://github.com/ibis-project/ibis/issues/10067)) ([a205ab7](https://github.com/ibis-project/ibis/commit/a205ab7810356973678ab7ff94c171c9c43edab4))
* **ir:** don't recreate nodes in `replace` if their children haven't changed ([ac79604](https://github.com/ibis-project/ibis/commit/ac79604f5acebb15281ebb2b15d0ac81c0a0c579))
* **sql:** avoid parenthesizing chains of commutative operators ([f86515c](https://github.com/ibis-project/ibis/commit/f86515c0c26a50c9cff39969e01543ea728d2391))
### Deprecations
* **api:** deprecate `bool_val.negate()`/`-bool_val` in favor of `~bool_val` ([499fc03](https://github.com/ibis-project/ibis/commit/499fc03bb613c473584669ab14dcb36584eb909f))
* **api:** deprecate filtering/expression projection in `Table.__getitem__` ([62c63d2](https://github.com/ibis-project/ibis/commit/62c63d243f13aaf566c9c66bd48510ddbd76bacf))
* **selectors:** deprecate `c` and `r` selectors in favor of `cols` and `index` ([29b865e](https://github.com/ibis-project/ibis/commit/29b865e96288dbbb3baf62d698dbea980b95e84f))
## [9.4.0](https://github.com/ibis-project/ibis/compare/9.3.0...9.4.0) (2024-09-03)
### Features
* **api:** add `approx_quantiles` for computing approximate quantiles ([dcdb7a7](https://github.com/ibis-project/ibis/commit/dcdb7a7f7de14be46f6852c7d5444ca776d32acb))
* **api:** add `DateValue.epoch` api for computing days since epoch ([#9856](https://github.com/ibis-project/ibis/issues/9856)) ([8b0fb66](https://github.com/ibis-project/ibis/commit/8b0fb66795547b42998cceb485c525cb6e3a9a21))
* **api:** make the `null` function deferrable ([0613ef1](https://github.com/ibis-project/ibis/commit/0613ef10bdf29612d3cb64080f48c0969a164eb5))
* **api:** support `SchemaLike` in `Backend.create_table()` ([#9885](https://github.com/ibis-project/ibis/issues/9885)) ([949fbea](https://github.com/ibis-project/ibis/commit/949fbea8816c20d5eeedf71a6f30687df6892a4a))
* **api:** support deferred objects in `literal` ([#9904](https://github.com/ibis-project/ibis/issues/9904)) ([0a07906](https://github.com/ibis-project/ibis/commit/0a079062abbf203277b41ff9e87435981022034e))
* **clickhouse:** partition kwargs for compile and execution in `to_pyarrow` and `to_pandas` ([2dd2c3f](https://github.com/ibis-project/ibis/commit/2dd2c3f438c56596b0864c3ac8ab2869f34c667c))
* **clickhouse:** support ms/us/ns truncate units ([9881edb](https://github.com/ibis-project/ibis/commit/9881edb0c84a919c1d76ae8af745406f76cc6bea))
* **decompile:** make the decompiler run on TPCH query 1 ([#9779](https://github.com/ibis-project/ibis/issues/9779)) ([0268044](https://github.com/ibis-project/ibis/commit/0268044140d8a6571e86cdd7d67d9da8b9c850aa))
* **exasol:** implement `approx_nunique`, `std`, `var` ([d9c3daa](https://github.com/ibis-project/ibis/commit/d9c3daa9c7fe202d02c516d5cd60910e96ca829a))
* **exasol:** implement `approx_nunique`, `std`, `var` ([63c20c0](https://github.com/ibis-project/ibis/commit/63c20c0aeb026d05b592170f4d11afc7f828f260))
* **exasol:** implement `cov`/`corr` ([24f41b2](https://github.com/ibis-project/ibis/commit/24f41b2dbfbf2be1f74f9af7761848b9cc2f2d2f))
* **exasol:** implement `median` and `approx_median` ([3cfc344](https://github.com/ibis-project/ibis/commit/3cfc344facc63733689f6008c9153a6fb2d509dd))
* **exasol:** implement `quantile` ([ecbef94](https://github.com/ibis-project/ibis/commit/ecbef9417dbbb7035feb076f495544900ce3c0d5))
* **exasol:** implement `Table.nunique` ([a24200c](https://github.com/ibis-project/ibis/commit/a24200c897650c0bdc5f3fee66d2d1c84364ce2c))
* **exasol:** implement `Table.nunique` ([7ead7c7](https://github.com/ibis-project/ibis/commit/7ead7c7c7e8637a14c5d9ee4588baed08d3eac7a))
* **flink:** array sort ([ca85ae2](https://github.com/ibis-project/ibis/commit/ca85ae232c0d0bbcb4d3af1ae3134067b8171a64))
* **flink:** support `ArrayValue.collect` ([eb857e6](https://github.com/ibis-project/ibis/commit/eb857e69e2fa156c521839c2be12dfd4f5141334))
* **impala:** add `tbl_properties` to `create_table` ([#9839](https://github.com/ibis-project/ibis/issues/9839)) ([e3d02bd](https://github.com/ibis-project/ibis/commit/e3d02bdbb74366f1c46a3f44da2e31a0bd134cde))
* **mssql:** support connecting with a url ([#9894](https://github.com/ibis-project/ibis/issues/9894)) ([8bb12e1](https://github.com/ibis-project/ibis/commit/8bb12e1fb7a0107a1081a6b670dedfa360a935cc)), closes [#9856](https://github.com/ibis-project/ibis/issues/9856)
* **oracle:** implement `mode` aggregation ([#9914](https://github.com/ibis-project/ibis/issues/9914)) ([9ee910d](https://github.com/ibis-project/ibis/commit/9ee910d7dc485bc718763aee4a8c304de97f775e))
* **output-formats:** add support for to_parquet_dir ([#9781](https://github.com/ibis-project/ibis/issues/9781)) ([80dfbe2](https://github.com/ibis-project/ibis/commit/80dfbe27ff46971f839c50309c9b203c6f009f86))
* **polars:** array sort ([9a2563b](https://github.com/ibis-project/ibis/commit/9a2563bf5a0ff498ec3054b8ca1a6f3c6fda1d48))
* **polars:** implement approx_nunique ([3f3738d](https://github.com/ibis-project/ibis/commit/3f3738dccda4935799b1c5e4db0680ce16f8464d))
* **pyspark:** support `quantile` ([26d8516](https://github.com/ibis-project/ibis/commit/26d851624bcae7160f84ee0bba88a3aa7853e110))
* **selectors:** support naming deferreds in across ([de1595c](https://github.com/ibis-project/ibis/commit/de1595ca9a09421ac2944efeda12beeafdd281ac))
* **snowflake:** implement interval arithmetic ([#9794](https://github.com/ibis-project/ibis/issues/9794)) ([41e10ca](https://github.com/ibis-project/ibis/commit/41e10cacae07e43f36690508bb67004deaf0120a)), closes [#9783](https://github.com/ibis-project/ibis/issues/9783)
* **sql:** enable cross-database joins ([#9849](https://github.com/ibis-project/ibis/issues/9849)) ([c3ff6ae](https://github.com/ibis-project/ibis/commit/c3ff6ae037c3e95ff071fdc356ac02fe8c7a1388))
* **sql:** fuse `distinct` with other select nodes when possible ([c31412b](https://github.com/ibis-project/ibis/commit/c31412b16113eef868af4fe47825fbefdde5c1de))
* **sqlite:** support most date/timestamp interval arithmetic ([75f594d](https://github.com/ibis-project/ibis/commit/75f594d484fdfea9674a87632f1610a185b15b75))
* **sql:** load parsed but unsupported types as unknown ([#9868](https://github.com/ibis-project/ibis/issues/9868)) ([a76acfc](https://github.com/ibis-project/ibis/commit/a76acfc053f0b798cd6c1b7225fb86191369199c))
* **sql:** support inserts with default constraints ([#9844](https://github.com/ibis-project/ibis/issues/9844)) ([86a3c06](https://github.com/ibis-project/ibis/commit/86a3c061da3c8817d82197257f673333f9f081ff))
* **timestamps:** add support for timestamp/date +/- intervals for additional backends ([#9799](https://github.com/ibis-project/ibis/issues/9799)) ([79cef68](https://github.com/ibis-project/ibis/commit/79cef68df8cd969a157579e09d03c0fa77e2ae07))
* **trino:** support years and months in datetime arithmetic ([1133973](https://github.com/ibis-project/ibis/commit/1133973eef4192e18e52371e806fb1c6079347c9))
* **trino:** wrap `auth` strings with `BasicAuthentication` ([#9960](https://github.com/ibis-project/ibis/issues/9960)) ([e0f54c9](https://github.com/ibis-project/ibis/commit/e0f54c93d7d851239a1f7964d16fcd18285a2ee0))
### Bug Fixes
* **bigquery:** disallow column names longer than 300 characters ([#9916](https://github.com/ibis-project/ibis/issues/9916)) ([ea97794](https://github.com/ibis-project/ibis/commit/ea977948d711b0d8446fe4d9ca90531df79123c4)), closes [#8931](https://github.com/ibis-project/ibis/issues/8931)
* **clickhouse:** workaround `EXCEPT` and `INTERSECT` generation in sqlglot; add tpcds query 87 ([#9959](https://github.com/ibis-project/ibis/issues/9959)) ([910b8f5](https://github.com/ibis-project/ibis/commit/910b8f540a659ffb24703869d7a3a65fe4985cdf))
* **datafusion:** fix creation of SessionContext in datafusion 40.1.0 ([eec5328](https://github.com/ibis-project/ibis/commit/eec53286f2f11ea35a9bcf7bf7abc595e02efe97))
* **datafusion:** handle `NULL`s in array `flatten` ([ecc199f](https://github.com/ibis-project/ibis/commit/ecc199faac1b5717108d82b0b47074e5c7771c4c))
* **deps:** update dependency datafusion to v40 ([4aa402a](https://github.com/ibis-project/ibis/commit/4aa402a6d84eca553f1e693244e6e9c5c77e9ced))
* **deps:** update dependency sqlglot to >=23.4,<25.11 ([#9805](https://github.com/ibis-project/ibis/issues/9805)) ([84bfeb5](https://github.com/ibis-project/ibis/commit/84bfeb5b8b3019f8d7968710a26bb9d17a7ffca4))
* **deps:** update dependency sqlglot to >=23.4,<25.12 ([#9834](https://github.com/ibis-project/ibis/issues/9834)) ([69a10d9](https://github.com/ibis-project/ibis/commit/69a10d9184875c82941f0b5960d6feb39a8ee008))
* **deps:** update dependency sqlglot to >=23.4,<25.13 ([#9851](https://github.com/ibis-project/ibis/issues/9851)) ([6780a6b](https://github.com/ibis-project/ibis/commit/6780a6b8c430eca07adee8918187e2260f3954f5))
* **deps:** update dependency sqlglot to >=23.4,<25.15 ([#9864](https://github.com/ibis-project/ibis/issues/9864)) ([d182e9e](https://github.com/ibis-project/ibis/commit/d182e9e0e395ff5c1c11de87ff132800c64db1e8))
* **deps:** update dependency sqlglot to >=23.4,<25.16 ([#9875](https://github.com/ibis-project/ibis/issues/9875)) ([0a6765b](https://github.com/ibis-project/ibis/commit/0a6765b664636fa7deccaead38a4ee2bd8548232))
* **deps:** update dependency sqlglot to >=23.4,<25.17 ([#9907](https://github.com/ibis-project/ibis/issues/9907)) ([9e52edb](https://github.com/ibis-project/ibis/commit/9e52edbe0a6b57e6c22e86f6ebfedaaea6c7330c))
* **deps:** update dependency sqlglot to >=23.4,<25.18 ([#9935](https://github.com/ibis-project/ibis/issues/9935)) ([ee5116d](https://github.com/ibis-project/ibis/commit/ee5116d7d8eab25484d8562a84a2ba016660558f))
* **deps:** update dependency sqlglot to >=23.4,<25.19 ([#9962](https://github.com/ibis-project/ibis/issues/9962)) ([4c136d8](https://github.com/ibis-project/ibis/commit/4c136d887c898418caea53752ed7bc75731b47d4))
* **dot-sql:** ensure that CTEs can be used in `.sql` ([b63e0fd](https://github.com/ibis-project/ibis/commit/b63e0fd3ed08e558e8b3012d6a41d03ecc58e231))
* **duckdb:** fix create_table() in databases with spaces in the name ([#9817](https://github.com/ibis-project/ibis/issues/9817)) ([9da3c9f](https://github.com/ibis-project/ibis/commit/9da3c9fa922e05efe601efc86fd0466201d6a755))
* **exasol:** properly handle returning BIGINT values ([e20bdad](https://github.com/ibis-project/ibis/commit/e20bdad2b1fe93f45def30b4f1323e66c2faf101))
* **ir:** convert analytic functions to window functions in filters ([31295dd](https://github.com/ibis-project/ibis/commit/31295ddd3dac9d01e362c8b7aa8938ed668455d3))
* **mssql:** remove sort key to keep order ([#9848](https://github.com/ibis-project/ibis/issues/9848)) ([3780a13](https://github.com/ibis-project/ibis/commit/3780a13a1eca456c873ae3a0a45588dfecb28e08))
* **mssql:** support `.cache()` for caching tables ([1de2f45](https://github.com/ibis-project/ibis/commit/1de2f4581f070b3179a26cdd3e989a759ef47019))
* **oracle:** avoid double cursor closing by removing unnecessary `close` in `_fetch_from_cursor` ([#9913](https://github.com/ibis-project/ibis/issues/9913)) ([a402095](https://github.com/ibis-project/ibis/commit/a402095b24ce3bfee42d8ecf794c1386a8b178eb))
* **oracle:** implement current_catalog and current_database correctly ([#9918](https://github.com/ibis-project/ibis/issues/9918)) ([4fdb707](https://github.com/ibis-project/ibis/commit/4fdb7079a9fcdc1848829e0235bebe7b333cb6f1))
* **pickle:** make `Parameter` instances pickleable ([#9798](https://github.com/ibis-project/ibis/issues/9798)) ([d772c80](https://github.com/ibis-project/ibis/commit/d772c80966a28eff31c5a036fb52038fde5bf096)), closes [#9793](https://github.com/ibis-project/ibis/issues/9793)
* **pivot-wider:** handle the case of empty `id_cols` ([#9912](https://github.com/ibis-project/ibis/issues/9912)) ([4a4bc64](https://github.com/ibis-project/ibis/commit/4a4bc6479100495d9f1e855e75f1584a81aa0ca1))
* **polars:** use `drop_table` when cleaning the cache and remove duplicated `_remove_table` method ([#9922](https://github.com/ibis-project/ibis/issues/9922)) ([ce51941](https://github.com/ibis-project/ibis/commit/ce519416eae19c1d3d846ea266ab540b25a197de))
* **polars:** use `flatten` API for `ArrayFlatten` implementation to avoid large string upcast ([#9997](https://github.com/ibis-project/ibis/issues/9997)) ([7a6af8d](https://github.com/ibis-project/ibis/commit/7a6af8db91e6909dd8073a6aaa332141c02be163)), closes [#9995](https://github.com/ibis-project/ibis/issues/9995)
* **pyspark:** suppress errors for unsupported Databricks serverless compute properties ([#9830](https://github.com/ibis-project/ibis/issues/9830)) ([57f5ff6](https://github.com/ibis-project/ibis/commit/57f5ff6c11269b55d4f39c9c05a09580af3ccaa2))
* **repr:** format scalar values with same logic as columnar values ([5cd58fa](https://github.com/ibis-project/ibis/commit/5cd58fa207bec8d295ba5920197e09987143de41))
* **rewrite:** avoid accumulating context state during rewriting ([#9814](https://github.com/ibis-project/ibis/issues/9814)) ([9165255](https://github.com/ibis-project/ibis/commit/916525589197359202f81cb033a29b7dd47a9064))
* **strings:** correct a typo in `startswith` docstring ([#9994](https://github.com/ibis-project/ibis/issues/9994)) ([f98aec5](https://github.com/ibis-project/ibis/commit/f98aec5d5d63ffd170ab4c131865a708ee85b75b)), closes [#1000](https://github.com/ibis-project/ibis/issues/1000) [#2000](https://github.com/ibis-project/ibis/issues/2000) [#3000](https://github.com/ibis-project/ibis/issues/3000)
* **trino:** remove hack that silently breaks join transpilation ([#9941](https://github.com/ibis-project/ibis/issues/9941)) ([c842453](https://github.com/ibis-project/ibis/commit/c842453dc147ae1a9136b034f36147d7a81b5dbb))
* **ux:** get rid of duplicated tracebacks ([#10002](https://github.com/ibis-project/ibis/issues/10002)) ([7df4bdd](https://github.com/ibis-project/ibis/commit/7df4bdd9ffc551fe39d249b17dfd60dca1ac43e9))
### Documentation
* add aggregate-udfs api page to index ([#9789](https://github.com/ibis-project/ibis/issues/9789)) ([01dc81e](https://github.com/ibis-project/ibis/commit/01dc81e8617b02b486a81225ca96c9e59044013f))
* **blog:** ibis + clickhouse + shiny for better pypi stats ([#9880](https://github.com/ibis-project/ibis/issues/9880)) ([4d8d352](https://github.com/ibis-project/ibis/commit/4d8d352023d0608abd609b227620029d7a3dd170))
* **blog:** kaggle competition using IbisML ([#9505](https://github.com/ibis-project/ibis/issues/9505)) ([7320c18](https://github.com/ibis-project/ibis/commit/7320c18c7fbbc382274f2fccb39f3a2e126d2f6c))
* **blog:** mention dask in the pandeprecation post ([#9899](https://github.com/ibis-project/ibis/issues/9899)) ([2f2c3ed](https://github.com/ibis-project/ibis/commit/2f2c3ed5d700c176e380333c9b2501d6a8e5289d))
* **blog:** minor edits to pandas blog ([#9920](https://github.com/ibis-project/ibis/issues/9920)) ([69a44c4](https://github.com/ibis-project/ibis/commit/69a44c461f063fdf74a6f1f15e93b3866f448dcd))
* **blog:** post on why we are dropping the pandas backend ([#9896](https://github.com/ibis-project/ibis/issues/9896)) ([95104e5](https://github.com/ibis-project/ibis/commit/95104e5a0866592f8e53cd8d7199aa6be97e62ea))
* **datatypes:** install rich traceback handler for prettier exception tracebacks ([#10004](https://github.com/ibis-project/ibis/issues/10004)) ([4b77e4f](https://github.com/ibis-project/ibis/commit/4b77e4f5cdc89ae786b0a621dafae97365dbd583))
* fix doctests for postgres backend ([#9964](https://github.com/ibis-project/ibis/issues/9964)) ([497df15](https://github.com/ibis-project/ibis/commit/497df15e4edde6383125f9f2d9b68214d6502b4b))
* **presentations:** positconf 2024 talk ([#9822](https://github.com/ibis-project/ibis/issues/9822)) ([e8b89e7](https://github.com/ibis-project/ibis/commit/e8b89e741f838285a5e31d4fef296c4f17d60e29))
* **snowflake:** document using private key to connect to snowflake ([c70f55a](https://github.com/ibis-project/ibis/commit/c70f55ab159aade340f109032e23166f7ad6085f))
* **snowflake:** fix the syntax for passing schema ([#9831](https://github.com/ibis-project/ibis/issues/9831)) ([c99cb4b](https://github.com/ibis-project/ibis/commit/c99cb4bfb926355f0689b3d0713d18802e15acfc))
* **snowflake:** remove duplicate schema docstring ([#9829](https://github.com/ibis-project/ibis/issues/9829)) ([3183bef](https://github.com/ibis-project/ibis/commit/3183bef9aa10cf694993c15db316e2c54af12ee7))
### Refactors
* **aliasing:** remove the need for renaming after execution ([#9996](https://github.com/ibis-project/ibis/issues/9996)) ([a0d7237](https://github.com/ibis-project/ibis/commit/a0d7237a9d5ffd4dedb5c935fa2fbb851f513421))
* **api:** make unit required in IntegerValue.as_timestamp ([7fa7395](https://github.com/ibis-project/ibis/commit/7fa739521e18ed8dcbf625d4cc14e3b1561e0fb5))
* **internals:** don't cache table accessor to avoid a circular reference ([fb604a5](https://github.com/ibis-project/ibis/commit/fb604a55afb154ca331371df8a83859f37a74851))
* **intervals:** conslidate interval conversion under `_make_interval` base compiler implementation ([fe29210](https://github.com/ibis-project/ibis/commit/fe292101903c4dd8f43bba88de37c8883445409e))
* make approximate ops subclasses of their non-approximate variants ([9d218d1](https://github.com/ibis-project/ibis/commit/9d218d1bb5e6075b1f69c06134aac0a7a5f7ead4))
* remove base implementation for `quantile` ([3c49c6a](https://github.com/ibis-project/ibis/commit/3c49c6a76ce74f706675643e50fd4fc8e7f9ee8d))
* **selectors:** remove janky `Predicate` class and unify `Selector`s under a single interface ([#9917](https://github.com/ibis-project/ibis/issues/9917)) ([c15a229](https://github.com/ibis-project/ibis/commit/c15a229e976a80dcd6e81718120e06b3d5d1f148))
* simplify caching implementation ([afba988](https://github.com/ibis-project/ibis/commit/afba988061ddea17826ac494d61069585e2d8c32))
### Deprecations
* **api:** deprecate `StructValue.destructure` API ([#9824](https://github.com/ibis-project/ibis/issues/9824)) ([98c5c76](https://github.com/ibis-project/ibis/commit/98c5c7623c7bcfb8efefc7913fcae2af85e5db44))
* **api:** deprecate type coercion `to_*` methods in favor of `as_*` methods ([fb22e20](https://github.com/ibis-project/ibis/commit/fb22e206e84a2979f56372a65083e3e50d6dcfba)), closes [#9788](https://github.com/ibis-project/ibis/issues/9788) [/github.com/ibis-project/ibis/pull/9843#discussion_r1717545190](https://github.com/ibis-project//github.com/ibis-project/ibis/pull/9843/issues/discussion_r1717545190)
* **dask,pandas:** deprecate the dask and pandas backends ([910fa5c](https://github.com/ibis-project/ibis/commit/910fa5cfbddaa26f879b7c90b77c69546c648b59))
* **expr-api:** deprecate useless `has_name` method ([#9901](https://github.com/ibis-project/ibis/issues/9901)) ([e0436aa](https://github.com/ibis-project/ibis/commit/e0436aa9519e16d2e0335534eab21bd73eafdcc4))
## [9.3.0](https://github.com/ibis-project/ibis/compare/9.2.0...9.3.0) (2024-08-07)
### Features
* **api:** support `ignore_null` in `collect` ([71271dd](https://github.com/ibis-project/ibis/commit/71271dd262f28dd34e58475d9b2e1e2c70cb4cb8))
* **api:** support `ignore_null` in `first`/`last` ([8d4f97f](https://github.com/ibis-project/ibis/commit/8d4f97f996cf3dacda0323de1704f84a7f4d57ad))
* **api:** support `order_by` in order-sensitive aggregates (`collect`/`group_concat`/`first`/`last`) ([#9729](https://github.com/ibis-project/ibis/issues/9729)) ([a18cb5d](https://github.com/ibis-project/ibis/commit/a18cb5d30b25f73cb990b15cd184eecfdd2c0cc6))
* **api:** support quarterly truncation ([#9715](https://github.com/ibis-project/ibis/issues/9715)) ([75b31c2](https://github.com/ibis-project/ibis/commit/75b31c2ebc0a136a11513b483a35088c38bdb0a9)), closes [#9714](https://github.com/ibis-project/ibis/issues/9714)
* **array:** implement min, max, any, all, sum, mean ([#9704](https://github.com/ibis-project/ibis/issues/9704)) ([793efbc](https://github.com/ibis-project/ibis/commit/793efbca7992423753d85c1fdab8850994c30f1d))
* **bigquery:** support timestamp bucket ([fd61f2c](https://github.com/ibis-project/ibis/commit/fd61f2c34eafcc50d7a8de652222554b45bd2ef6))
* **datafusion:** `pivot_longer` ([2330b0c](https://github.com/ibis-project/ibis/commit/2330b0c86f9b0c18da7d26d4f6e9384f58d6c022))
* **datafusion:** enable array flatten, group concat, and timestamp now ([4d110a0](https://github.com/ibis-project/ibis/commit/4d110a0ac07fafdf55b071953fa24b3186b558f1))
* **datafusion:** struct literals ([a63cee9](https://github.com/ibis-project/ibis/commit/a63cee9ddb2ab20df0e3519df017fc3e02101dfd))
* **datafusion:** unnest ([a706f54](https://github.com/ibis-project/ibis/commit/a706f542477fb5c099f16a097eb39dffb1271eca))
* **duckdb:** add support for passing a subset of column types to `read_csv` ([#9776](https://github.com/ibis-project/ibis/issues/9776)) ([c1dcf67](https://github.com/ibis-project/ibis/commit/c1dcf676a6e9e5b7f581bb51c20b617dbe46ea7e))
* **duckdb:** support arbitrary url prefixes ([#9691](https://github.com/ibis-project/ibis/issues/9691)) ([11af489](https://github.com/ibis-project/ibis/commit/11af489aac9e9fbbdb68fb93c70adedf754a5c00))
* **mssql:** support case-sensitive collations ([#9700](https://github.com/ibis-project/ibis/issues/9700)) ([9382a0e](https://github.com/ibis-project/ibis/commit/9382a0e71dbafae1219979a2833a34f12e8501fc))
* **oracle:** support group_concat operator ([47d97ea](https://github.com/ibis-project/ibis/commit/47d97eafb3517431d1deb59e6240b0775987c6dc))
* **pyspark:** add support for pyarrow and python UDFs ([#9753](https://github.com/ibis-project/ibis/issues/9753)) ([02a1d48](https://github.com/ibis-project/ibis/commit/02a1d48bb3284303c56fde6e5c5b5a16fef2dc9c))
* **snowflake:** add `userinfo` URL parsing ([524a2fa](https://github.com/ibis-project/ibis/commit/524a2fa9e283b8678fc3e04aa72a7d5429162389))
* **ux:** allow window functions in predicates and compile to `QUALIFY` where possible ([#9787](https://github.com/ibis-project/ibis/issues/9787)) ([0370bcb](https://github.com/ibis-project/ibis/commit/0370bcb762ad24c27dee88aa39e7223a42b5b27e))
### Bug Fixes
* **algolia:** add parent class docstring to algolia index ([#9739](https://github.com/ibis-project/ibis/issues/9739)) ([3bc9799](https://github.com/ibis-project/ibis/commit/3bc97991b375b89d72bd83a1b359b8322d5a98ee))
* **bigquery:** repr geospatial values in interactive mode ([#9712](https://github.com/ibis-project/ibis/issues/9712)) ([bd8c93f](https://github.com/ibis-project/ibis/commit/bd8c93f8a6db2976c9f5dbed72c9d68f61435096))
* **case:** fix dshape, error on noncomparable and empty cases ([#9559](https://github.com/ibis-project/ibis/issues/9559)) ([ff2d019](https://github.com/ibis-project/ibis/commit/ff2d0190b29578a02fd7aee96e699621c57383ad))
* **compiler-internals:** define unsupported operations after simple operations ([#9755](https://github.com/ibis-project/ibis/issues/9755)) ([d9b6264](https://github.com/ibis-project/ibis/commit/d9b62640c3b54c3500b59cbdbe09ebd7cdd4a541))
* **deps:** update dependency atpublic to v5 ([#9697](https://github.com/ibis-project/ibis/issues/9697)) ([a4f3940](https://github.com/ibis-project/ibis/commit/a4f39405a113fdcc8b94474a764c58c4637f25f5))
* **deps:** update dependency sqlglot to >=23.4,<25.10 ([#9774](https://github.com/ibis-project/ibis/issues/9774)) ([7144257](https://github.com/ibis-project/ibis/commit/71442570331c1fe52af6cd2140dd2239c08979d6))
* **deps:** update dependency sqlglot to >=23.4,<25.8 ([#9696](https://github.com/ibis-project/ibis/issues/9696)) ([d4a2ea2](https://github.com/ibis-project/ibis/commit/d4a2ea2e9237b8bc0eb1b7faafe6e26c65cd7184))
* **deps:** update dependency sqlglot to >=23.4,<25.9 ([#9719](https://github.com/ibis-project/ibis/issues/9719)) ([b1d8b2e](https://github.com/ibis-project/ibis/commit/b1d8b2ed8e4eedf23967118924fa23df6548f7a2))
* **drop:** ignore order for `DropColumns` equality ([#9677](https://github.com/ibis-project/ibis/issues/9677)) ([ae1e112](https://github.com/ibis-project/ibis/commit/ae1e1128f2838d90dcc74be7b8229f2253434195))
* **druid:** get basic timestamp functionality working ([#9692](https://github.com/ibis-project/ibis/issues/9692)) ([6cd3eee](https://github.com/ibis-project/ibis/commit/6cd3eeeaa88323fd14a4388be9d42a64a22d2ea1))
* **duckdb:** avoid literals casts that might defeat optimization ([e4ff1bd](https://github.com/ibis-project/ibis/commit/e4ff1bd71088b0f49d5d2d40d7bc040710d705ef))
* **duckdb:** ensure that array remove doesn't remove `NULL`s ([f0c3be4](https://github.com/ibis-project/ibis/commit/f0c3be42b049c045a5c8764f8a2aa9021d138ade))
* **duckdb:** use `register` directly instead of calling `read_in_memory` ([597817f](https://github.com/ibis-project/ibis/commit/597817fbd59725d804acdf7d906e25519fee967b))
* **internals:** ensure that CTEs are emitted in topological order ([#9726](https://github.com/ibis-project/ibis/issues/9726)) ([acd7d82](https://github.com/ibis-project/ibis/commit/acd7d82ec3778b593c4aadfba6f62dd0119c7d28))
* **polars:** fix polars `std`/`var` to properly handle `sample`/`population` ([f83d84f](https://github.com/ibis-project/ibis/commit/f83d84f6a978936d27c538bced23164c79eb4de2))
* **polars:** remove bogus minus-one-week truncation ([ac519b2](https://github.com/ibis-project/ibis/commit/ac519b273cd6c7f151c9abee350698e49c7be3b0))
* **postgres:** handle enums by delegating to the parent class ([#9769](https://github.com/ibis-project/ibis/issues/9769)) ([3f01075](https://github.com/ibis-project/ibis/commit/3f010753db2ee8994a1f28528e5b8123b24f5969)), closes [#9295](https://github.com/ibis-project/ibis/issues/9295)
* **snowflake:** bring back `where` filter support in `group_concat`; fix `array_agg` ordering ([#9758](https://github.com/ibis-project/ibis/issues/9758)) ([6e7e4de](https://github.com/ibis-project/ibis/commit/6e7e4de53348085ebe4ecd38b96e7de62f613c83))
* **sql:** only return tables in `current_database` ([#9748](https://github.com/ibis-project/ibis/issues/9748)) ([c7f5717](https://github.com/ibis-project/ibis/commit/c7f57172afd599e6ce2927d4521806b9b74720e8))
* **types:** fix histogram bin allocation ([#9711](https://github.com/ibis-project/ibis/issues/9711)) ([6634864](https://github.com/ibis-project/ibis/commit/6634864365055abd2a6a01f21736718f20def2b8)), closes [#9687](https://github.com/ibis-project/ibis/issues/9687)
### Documentation
* **algolia:** add custom attributes to backend and core methods ([#9730](https://github.com/ibis-project/ibis/issues/9730)) ([d9473cf](https://github.com/ibis-project/ibis/commit/d9473cfb5da7de5b10bc86e431d2d18d696c9125))
* **browser-repl:** fix jupyterlite build ([#9762](https://github.com/ibis-project/ibis/issues/9762)) ([f403aa1](https://github.com/ibis-project/ibis/commit/f403aa1afcb30ff640e9c6ee56f5ddd14a1363e8))
* fix spelling in pivot_longer explanation ([#9780](https://github.com/ibis-project/ibis/issues/9780)) ([3201d8b](https://github.com/ibis-project/ibis/commit/3201d8b57d1fc65c785c51732fb2dc85f8b2bd03))
* fix typo in `drop` method docstring ([#9727](https://github.com/ibis-project/ibis/issues/9727)) ([4cf0014](https://github.com/ibis-project/ibis/commit/4cf0014aafa11ad008389961ab8232c7de87b687))
* **presentations:** update overview slides ([#9685](https://github.com/ibis-project/ibis/issues/9685)) ([d3a2c0c](https://github.com/ibis-project/ibis/commit/d3a2c0c5fb174b0dfa65d9a425bec498a6ad2429))
* replace all double graves with single graves ([#9679](https://github.com/ibis-project/ibis/issues/9679)) ([dd26d60](https://github.com/ibis-project/ibis/commit/dd26d6016e0d1ec08779fac8627d35555ad3d0fa))
### Refactors
* **dependencies:** pandas and numpy are now optional for non-backend installs ([#9564](https://github.com/ibis-project/ibis/issues/9564)) ([cff210a](https://github.com/ibis-project/ibis/commit/cff210af96323e200a31888b070d126be20a5eb0))
* **duckdb:** use replace to generate less sql ([#9713](https://github.com/ibis-project/ibis/issues/9713)) ([f89aa32](https://github.com/ibis-project/ibis/commit/f89aa32e8de1f4a7d2bcc7379c690003fe4e2b51))
* **internals:** remove unnecessary dynamism in `drop` method ([#9682](https://github.com/ibis-project/ibis/issues/9682)) ([5ac84c5](https://github.com/ibis-project/ibis/commit/5ac84c51c985e654bdc6f84540319649481a07c6))
* **pandas:** remove unreachable code in pandas backend ([#9786](https://github.com/ibis-project/ibis/issues/9786)) ([dc6bfe2](https://github.com/ibis-project/ibis/commit/dc6bfe2adae9235b0529aa20d4ef5a65ec2fd4b2))
* **polars:** delete some dead versioning code ([b23c5a3](https://github.com/ibis-project/ibis/commit/b23c5a3a66940086e317e3f1e1aa50f61c587f4c))
* **polars:** remove casting where possible; handle conversion on output ([#9673](https://github.com/ibis-project/ibis/issues/9673)) ([8717629](https://github.com/ibis-project/ibis/commit/871762929489d53cba288ab4b7028b432184734b))
* **polars:** remove extra backwards compatibility code no longer in use after 1.0 upgrade ([feb12f4](https://github.com/ibis-project/ibis/commit/feb12f48fcfd139622db68e3f5982831f8ff9666))
* **sql:** make compilers usable with a base install ([#9766](https://github.com/ibis-project/ibis/issues/9766)) ([84a786d](https://github.com/ibis-project/ibis/commit/84a786d236912839a4be4fb05b6e2e8097bb01a3))
* **table_loc:** return consistent object from catalog.db parsing ([#9743](https://github.com/ibis-project/ibis/issues/9743)) ([1ae2a37](https://github.com/ibis-project/ibis/commit/1ae2a37156f3c347dd2411c601381a2eb13026c5))
### Performance
* **schema:** speed up failure case of duplicate keys when constructing schemas ([#9698](https://github.com/ibis-project/ibis/issues/9698)) ([870ac73](https://github.com/ibis-project/ibis/commit/870ac73ba47ab3ed04ec89da9b786abfeb991112))
* **selectors:** speed up the `c` selector by caching the column existence check ([fdaeb5c](https://github.com/ibis-project/ibis/commit/fdaeb5c010b2dd5ad7abc59899d1933a59b05607))
### Deprecations
* **duckdb:** deprecate `read_in_memory` ([#9666](https://github.com/ibis-project/ibis/issues/9666)) ([e13af72](https://github.com/ibis-project/ibis/commit/e13af724eb996cf3c1c23fd602f049d488dbaa35))
* **snowflake:** deprecate `from_snowpark` method ([#9680](https://github.com/ibis-project/ibis/issues/9680)) ([7254f65](https://github.com/ibis-project/ibis/commit/7254f65fdab82d3e155a9e7487e6e1fa46b005e5))
## [9.2.0](https://github.com/ibis-project/ibis/compare/9.1.0...9.2.0) (2024-07-22)
### Features
* **api:** accept more input types in `ibis.range` ([#9659](https://github.com/ibis-project/ibis/issues/9659)) ([310ad30](https://github.com/ibis-project/ibis/commit/310ad30428e82d99e6365c128fb3b9130af8a7e2))
* **api:** add `nulls_first=False` argument to `order_by` ([#9385](https://github.com/ibis-project/ibis/issues/9385)) ([ce9011e](https://github.com/ibis-project/ibis/commit/ce9011e3172dada736b5a2f3c12200c110c9a42c))
* **api:** add `TableUnnest` operation to support cross-join unnest semantics as well as `offset` ([#9423](https://github.com/ibis-project/ibis/issues/9423)) ([3352a84](https://github.com/ibis-project/ibis/commit/3352a84ce4e28a5186ef0d1a1ec8c21f49da7209))
* **api:** add positional joins ([#9533](https://github.com/ibis-project/ibis/issues/9533)) ([85ea9da](https://github.com/ibis-project/ibis/commit/85ea9dae0677c8904cd9bf1f1630bc8d0ab94701))
* **api:** allow grouping by scalar values ([#9451](https://github.com/ibis-project/ibis/issues/9451)) ([14f1821](https://github.com/ibis-project/ibis/commit/14f1821ee7bfcb50d86fc418027d58195979bfe6))
* **api:** support deferred or string column names in `cov`/`corr` methods ([#9657](https://github.com/ibis-project/ibis/issues/9657)) ([4d135b3](https://github.com/ibis-project/ibis/commit/4d135b30621b99df4c5d275778735505237c6724))
* **api:** support selectors in window function `order_by` and `group_by` ([#9649](https://github.com/ibis-project/ibis/issues/9649)) ([0ad47de](https://github.com/ibis-project/ibis/commit/0ad47de877021e4aa631a8f519b0b2a118f8f5a8))
* **backends:** support creation from a DB-API con ([#9603](https://github.com/ibis-project/ibis/issues/9603)) ([fc4d1e3](https://github.com/ibis-project/ibis/commit/fc4d1e3719d4a3404c98f6de98ce0c8330184620))
* **bigquery:** implement CountDistinctStar ([#9470](https://github.com/ibis-project/ibis/issues/9470)) ([273e4bc](https://github.com/ibis-project/ibis/commit/273e4bcf90d5710633ae565f555e4e492ea72df0))
* **caching:** tie lifetime of cached tables to python refs ([#9477](https://github.com/ibis-project/ibis/issues/9477)) ([f51546e](https://github.com/ibis-project/ibis/commit/f51546ec2473ca8ad1ef6e962b0652648b037ff4))
* **datafusion:** datafusion enhancements ([#9544](https://github.com/ibis-project/ibis/issues/9544)) ([f11ca43](https://github.com/ibis-project/ibis/commit/f11ca43e4a816706672b76baecc62eeee65dc45c))
* **dtypes:** fall back to `dt.unknown` for unknown types ([#9567](https://github.com/ibis-project/ibis/issues/9567)) ([6e0b5f5](https://github.com/ibis-project/ibis/commit/6e0b5f50933a6343fbd1ec58a8ab9f3fb79ef1c6))
* **dtypes:** fall back to `dt.unknown` for unknown types ([#9576](https://github.com/ibis-project/ibis/issues/9576)) ([56a10d2](https://github.com/ibis-project/ibis/commit/56a10d2a747f1a89c5c951e419c19193c20cef65))
* **duckdb:** use `delta_scan` instead of reading pyarrow datasets ([#9566](https://github.com/ibis-project/ibis/issues/9566)) ([0ff595e](https://github.com/ibis-project/ibis/commit/0ff595ea70748e13ac5f3f3fed0fe8eece208cb7))
* **flink:** create views from more mem data types ([#9622](https://github.com/ibis-project/ibis/issues/9622)) ([b83fc2b](https://github.com/ibis-project/ibis/commit/b83fc2bee84203964e76e5729713cc51536c4b66))
* **geospatial:** use geoarrow extension types when returning geometry columns as pyarrow ([#9549](https://github.com/ibis-project/ibis/issues/9549)) ([cba7367](https://github.com/ibis-project/ibis/commit/cba73670941d9ec9f011ab7ac50d14f61b846e1d))
* **polars:** add more accurate type mapping for timestamps ([#8954](https://github.com/ibis-project/ibis/issues/8954)) ([3eafac4](https://github.com/ibis-project/ibis/commit/3eafac4bc1e08295b51524c46fd90df3f7361b5a))
* **polars:** support version 1.0 and later ([#9516](https://github.com/ibis-project/ibis/issues/9516)) ([62a1864](https://github.com/ibis-project/ibis/commit/62a1864245a0fdbb0b8db36316e1ac6d3645697a))
* **postgres:** support basic jsonb type and existing operations ([#9630](https://github.com/ibis-project/ibis/issues/9630)) ([7179cc6](https://github.com/ibis-project/ibis/commit/7179cc647b020233781a2aa5c24acd2a24266674))
* **pyarrow:** support `__arrow_c_schema__` on `ibis.Schema` objects ([#9665](https://github.com/ibis-project/ibis/issues/9665)) ([00a776e](https://github.com/ibis-project/ibis/commit/00a776e3564d14bcb3db8c6be37d4d8583f39836))
* **pyspark:** implement new experimental read/write directory methods ([#9272](https://github.com/ibis-project/ibis/issues/9272)) ([adade5e](https://github.com/ibis-project/ibis/commit/adade5e745440393ef66fd6961ae181ddb9c9e05))
### Bug Fixes
* **api:** add support for using deferreds in the `argmin`/`argmax` `key` argument ([#9652](https://github.com/ibis-project/ibis/issues/9652)) ([3f05cbc](https://github.com/ibis-project/ibis/commit/3f05cbc65829d21066e91e698326ff9aa8ef4271))
* **bigquery:** escape table names with spaces for bigquery backend ([#9589](https://github.com/ibis-project/ibis/issues/9589)) ([ca21dbb](https://github.com/ibis-project/ibis/commit/ca21dbb7895e3efb99805d05dfd1b2d3e2d5b9f3))
* **bigquery:** support microseconds in time literals ([#9610](https://github.com/ibis-project/ibis/issues/9610)) ([c876abc](https://github.com/ibis-project/ibis/commit/c876abc863657d596064f6bcb70ab367f1659915)), closes [#9609](https://github.com/ibis-project/ibis/issues/9609)
* **clickhouse:** generate redundant aliases to workaround clickhouse naming behavior ([#9525](https://github.com/ibis-project/ibis/issues/9525)) ([b44dac2](https://github.com/ibis-project/ibis/commit/b44dac2a5d0346ed0f3dbdc05597104f64e40779)), closes [#9508](https://github.com/ibis-project/ibis/issues/9508)
* **clickhouse:** support `Date32` database type ([#9509](https://github.com/ibis-project/ibis/issues/9509)) ([efa6fb7](https://github.com/ibis-project/ibis/commit/efa6fb72bf4c790450d00a926d7bd809dade5902))
* **datatypes:** proper handling of srid in geospatial datatypes ([#9519](https://github.com/ibis-project/ibis/issues/9519)) ([a3ceb59](https://github.com/ibis-project/ibis/commit/a3ceb590cef7397ca991991b07c5528a60bc53f4))
* **deps:** update dependency datafusion to v39 ([#9506](https://github.com/ibis-project/ibis/issues/9506)) ([21ef0a6](https://github.com/ibis-project/ibis/commit/21ef0a6c7497e23545fba1649ea0b88d853731f9))
* **deps:** update dependency fsspec to <2024.6.2 ([#9463](https://github.com/ibis-project/ibis/issues/9463)) ([8e225ec](https://github.com/ibis-project/ibis/commit/8e225ec0b53e8929e9e86b1510468940640a4f88))
* **deps:** update dependency geopandas to v1 ([#9437](https://github.com/ibis-project/ibis/issues/9437)) ([fa1037b](https://github.com/ibis-project/ibis/commit/fa1037b2ff978e1d4e98f9d57db3a4123f827766))
* **deps:** update dependency numpy to v2 ([#9395](https://github.com/ibis-project/ibis/issues/9395)) ([3cb39a5](https://github.com/ibis-project/ibis/commit/3cb39a576ca836e94827bc24e7aae50f3b57b72c))
* **deps:** update dependency pyarrow to v17 ([#9614](https://github.com/ibis-project/ibis/issues/9614)) ([16998df](https://github.com/ibis-project/ibis/commit/16998df0eda6209487852ca312db2548c35bf854))
* **deps:** update dependency sqlglot to >=23.4,<25.3 ([#9401](https://github.com/ibis-project/ibis/issues/9401)) ([bdc1b3f](https://github.com/ibis-project/ibis/commit/bdc1b3fbb8d44f9246c957b58372d3df84247468))
* **deps:** update dependency sqlglot to >=23.4,<25.4 ([#9427](https://github.com/ibis-project/ibis/issues/9427)) ([8e015b6](https://github.com/ibis-project/ibis/commit/8e015b69ecef442a71139c2fc1774916239e1ea9))
* **deps:** update dependency sqlglot to >=23.4,<25.5 ([#9472](https://github.com/ibis-project/ibis/issues/9472)) ([f6f80da](https://github.com/ibis-project/ibis/commit/f6f80dad3424afd8753fe6b703911e337bec7f88))
* **deps:** update dependency sqlglot to >=23.4,<25.6 ([#9523](https://github.com/ibis-project/ibis/issues/9523)) ([6a748c4](https://github.com/ibis-project/ibis/commit/6a748c474a11abe7cc13d505d110d01041abffe2))
* **deps:** update dependency sqlglot to >=23.4,<25.7 ([#9628](https://github.com/ibis-project/ibis/issues/9628)) ([f5207ff](https://github.com/ibis-project/ibis/commit/f5207ffef677b0fb469697b67adfa1009c1f0706))
* **druid:** handle typed nulls where possible ([#9452](https://github.com/ibis-project/ibis/issues/9452)) ([33ec754](https://github.com/ibis-project/ibis/commit/33ec7547209cc7775f85bd46a30f971333ea35bb))
* fix and improve shape inference in many ops ([7a0b21e](https://github.com/ibis-project/ibis/commit/7a0b21e3416d21af60deb2d5951d810cae5c369f))
* **ir:** avoid deduplicating filters based solely on their name ([#9476](https://github.com/ibis-project/ibis/issues/9476)) ([b35582e](https://github.com/ibis-project/ibis/commit/b35582e4f92d277bb7f8edaba5bea20788d9752a)), closes [#9474](https://github.com/ibis-project/ibis/issues/9474)
* **ir:** repr iterables when constructing name of operations ([#9480](https://github.com/ibis-project/ibis/issues/9480)) ([f5a541c](https://github.com/ibis-project/ibis/commit/f5a541cc3dbafa977b2790a3112b0027732c8532))
* **join:** skip substitution of non-field references in join chains ([#9595](https://github.com/ibis-project/ibis/issues/9595)) ([61ef0ed](https://github.com/ibis-project/ibis/commit/61ef0edbf35b9a2d382fc875354acdd732632736))
* **mssql:** always pass port to `pyodbc` in host string ([#9656](https://github.com/ibis-project/ibis/issues/9656)) ([2e3fd9a](https://github.com/ibis-project/ibis/commit/2e3fd9a46e4dc2ebabd0b188ea9ece3fdc73e00c))
* **mssql:** avoid calling `.commit()` unless a DDL operation is being performed ([#9658](https://github.com/ibis-project/ibis/issues/9658)) ([69c5bf0](https://github.com/ibis-project/ibis/commit/69c5bf0de2061e329597309638efec49dd2b2a97)), closes [#9654](https://github.com/ibis-project/ibis/issues/9654)
* **mssql:** fix temporary table creation and implement `cache` ([#9434](https://github.com/ibis-project/ibis/issues/9434)) ([196d8a1](https://github.com/ibis-project/ibis/commit/196d8a1898ce6992f4b2c37a28fcba79df2e104a))
* **mysql:** ensure that `port` is captured in MySQL `_from_url` implementation ([#9421](https://github.com/ibis-project/ibis/issues/9421)) ([5bb4971](https://github.com/ibis-project/ibis/commit/5bb4971863b2060f1545de425eacb40168b541e5)), closes [#9417](https://github.com/ibis-project/ibis/issues/9417)
* **oracle, clickhouse:** ensure `port` is captured in `_from_url` implementation ([#9507](https://github.com/ibis-project/ibis/issues/9507)) ([bd3009a](https://github.com/ibis-project/ibis/commit/bd3009a5c4b0c1032a15d57884b42cbd0847d023))
* **oracle:** support connection using oracle connection string ([#9435](https://github.com/ibis-project/ibis/issues/9435)) ([f3cd8b2](https://github.com/ibis-project/ibis/commit/f3cd8b2360f00d1f842116ef490c88b9a1f550a4))
* **pandas, dask:** fix `drop_table` handling of `force` keyword ([#9503](https://github.com/ibis-project/ibis/issues/9503)) ([95048a4](https://github.com/ibis-project/ibis/commit/95048a45220c5fbb695bc94aa97dc5a55fb7ae27))
* **polars:** add workaround to compile Array<Array> correctly ([#9484](https://github.com/ibis-project/ibis/issues/9484)) ([5a9d026](https://github.com/ibis-project/ibis/commit/5a9d0263addcd53897cc15b2c1ad952353640a2c))
* **postgres:** add dtype mapping for `citext` ([f46979b](https://github.com/ibis-project/ibis/commit/f46979b0093bf38d48d274ae536f582411ac618a))
* **pyspark:** run pre-execute hooks for `to_delta` ([#8848](https://github.com/ibis-project/ibis/issues/8848)) ([fe0466a](https://github.com/ibis-project/ibis/commit/fe0466a90527345e8000728d4a08e04686783973))
* **pyspark:** set catalog and database with `USE` instead of pyspark api ([#9620](https://github.com/ibis-project/ibis/issues/9620)) ([6991f04](https://github.com/ibis-project/ibis/commit/6991f044438303fc509630bb4f21065e3e458f9d))
* **pyspark:** set lower bound of pyspark to 3.3.3 to avoid maintenance burden of pytest collection hook ([#9606](https://github.com/ibis-project/ibis/issues/9606)) ([97af53c](https://github.com/ibis-project/ibis/commit/97af53c4d0a45a3dce6155092019d1eaf01a2073)), closes [#9564](https://github.com/ibis-project/ibis/issues/9564)
* **sec:** remove most instances of possible sql injection ([#9404](https://github.com/ibis-project/ibis/issues/9404)) ([a555774](https://github.com/ibis-project/ibis/commit/a5557749e8f6d5d4cd8a4be1094a73fc6d5fb94d))
* **trino:** allow passing the `auth` keyword ([#9410](https://github.com/ibis-project/ibis/issues/9410)) ([560ddf6](https://github.com/ibis-project/ibis/commit/560ddf6ca24e0d29fdd565aa59a22f3e7a32e959))
* **uri-parsing:** handle password with bracket in connection url ([#9466](https://github.com/ibis-project/ibis/issues/9466)) ([c73bcf0](https://github.com/ibis-project/ibis/commit/c73bcf0553e1adfb30915e008abe9315b998a381))
* **urls:** standardize pass-through of parsed query parameters ([#9482](https://github.com/ibis-project/ibis/issues/9482)) ([87cba01](https://github.com/ibis-project/ibis/commit/87cba01f19406980462ee7c6112abf424a162ea1)), closes [#9456](https://github.com/ibis-project/ibis/issues/9456)
### Documentation
* add `deferred`, `range`, `e`, and `pi` to API reference ([#9592](https://github.com/ibis-project/ibis/issues/9592)) ([43b116b](https://github.com/ibis-project/ibis/commit/43b116bb048c12c40b85da9f1404b5fd452d45ff))
* add ibis-bench blog ([#9391](https://github.com/ibis-project/ibis/issues/9391)) ([2c9198d](https://github.com/ibis-project/ibis/commit/2c9198d52ab88e50c8aa406ff70d72a7cd452877))
* add Shiny (for Python) to "works well with" section ([#9558](https://github.com/ibis-project/ibis/issues/9558)) ([8862979](https://github.com/ibis-project/ibis/commit/8862979e421670c1a3316e07464d553c2df63a06)), closes [#1000](https://github.com/ibis-project/ibis/issues/1000) [#2000](https://github.com/ibis-project/ibis/issues/2000) [#3000](https://github.com/ibis-project/ibis/issues/3000)
* **algolia:** add methods from backend pages to algolia index ([#9608](https://github.com/ibis-project/ibis/issues/9608)) ([c098c70](https://github.com/ibis-project/ibis/commit/c098c7047684b5b68554e7ec63139d2cf8758282)), closes [#9600](https://github.com/ibis-project/ibis/issues/9600)
* **arbitrary:** add example for `arbitrary` method docstring ([#9596](https://github.com/ibis-project/ibis/issues/9596)) ([09cfd85](https://github.com/ibis-project/ibis/commit/09cfd8568c001335acc542bd42848b37c1796533))
* **blog-axis-labels:** set correct y axis in plot in Ibis benchmark blog post ([#9445](https://github.com/ibis-project/ibis/issues/9445)) ([fce5bd3](https://github.com/ibis-project/ibis/commit/fce5bd32e24a92390818ec8a51429405294698f4))
* **blog:** add 1tb challenge on a laptop post ([#9487](https://github.com/ibis-project/ibis/issues/9487)) ([e33a4cc](https://github.com/ibis-project/ibis/commit/e33a4ccc113591745d5e2be60ce71fee5ff603ee))
* **blog:** run Ibis on Snowflake ([#9406](https://github.com/ibis-project/ibis/issues/9406)) ([1839c13](https://github.com/ibis-project/ibis/commit/1839c137949abb20b5d5e4ae30ef3591047d8188))
* **clickhouse:** put the clickhouse tutorial into sidebar ([#9624](https://github.com/ibis-project/ibis/issues/9624)) ([0fbec3f](https://github.com/ibis-project/ibis/commit/0fbec3f5d2d573bf5264562e20c805da30cd9257))
* fix spelling issues ([#9563](https://github.com/ibis-project/ibis/issues/9563)) ([92eda02](https://github.com/ibis-project/ibis/commit/92eda026e22be72d0713849c11a7bc344d2968ca))
* **how-to:** add a guide on streaming operations ([#9642](https://github.com/ibis-project/ibis/issues/9642)) ([f3ed10c](https://github.com/ibis-project/ibis/commit/f3ed10c8a96c0b9a4b161edcb280f1141053348f))
* update link to the flink example repo ([#9553](https://github.com/ibis-project/ibis/issues/9553)) ([87af588](https://github.com/ibis-project/ibis/commit/87af5883c9ed8872942120ba8c3782922d9c1ae3))
### Refactors
* **api:** refactor the implementation of windowing ([#9200](https://github.com/ibis-project/ibis/issues/9200)) ([eaa1301](https://github.com/ibis-project/ibis/commit/eaa1301483ac75cc3a01ddf30906edccdc157484))
* **api:** remove `tuple` support in `SortKey` ([#9416](https://github.com/ibis-project/ibis/issues/9416)) ([4dff6e2](https://github.com/ibis-project/ibis/commit/4dff6e2daeb32d3493df3b694d7a6168555165d9))
* **api:** remove unnecessary `select` from set operations ([#9438](https://github.com/ibis-project/ibis/issues/9438)) ([88a2785](https://github.com/ibis-project/ibis/commit/88a278577224659412b1d27d897de639c9debc4f))
* **backends:** remove redundant implementations of `_register_in_memory_tables` ([5235a4b](https://github.com/ibis-project/ibis/commit/5235a4ba20af2f7458e65dc46daae9ff14dbe2a3))
* **caching:** remove parameters that are always the same ([#9532](https://github.com/ibis-project/ibis/issues/9532)) ([afa2848](https://github.com/ibis-project/ibis/commit/afa2848adcd37df92294c79921728646168f632f))
* **compilers:** move compilers out of the backend dependency path ([#9590](https://github.com/ibis-project/ibis/issues/9590)) ([122330a](https://github.com/ibis-project/ibis/commit/122330a7e07bfcd517dd2d30e8957e8e930595a2))
* **deps:** make pyarrow optional for non-backend installs ([#9552](https://github.com/ibis-project/ibis/issues/9552)) ([9047b26](https://github.com/ibis-project/ibis/commit/9047b26e5938325cc099ee0ec5e8421f82d1b708))
* **polars:** delete some dead code in the polars backend ([#9389](https://github.com/ibis-project/ibis/issues/9389)) ([77fa811](https://github.com/ibis-project/ibis/commit/77fa8118b1e31315add0ba27b9bdb00f474068c7))
* **polars:** remove numpy usage entirely ([#9607](https://github.com/ibis-project/ibis/issues/9607)) ([946f761](https://github.com/ibis-project/ibis/commit/946f761d2e0351352b344afb0780c4c6ba7ac322))
* **pyarrow:** remove comparison of column names for renaming ([#9616](https://github.com/ibis-project/ibis/issues/9616)) ([3b2a7ec](https://github.com/ibis-project/ibis/commit/3b2a7ecfd3d7625bc316ee20ee1157348db410b4))
* **streamlit:** update to use BaseConnection interface ([#9550](https://github.com/ibis-project/ibis/issues/9550)) ([f5dd8fb](https://github.com/ibis-project/ibis/commit/f5dd8fb56b6f6647e4b98a6e983772cc6df83c9a))
* **tests:** add tpc ds setup and rearrange tpc setup ([#9453](https://github.com/ibis-project/ibis/issues/9453)) ([b150635](https://github.com/ibis-project/ibis/commit/b150635cd492d29cafe5c8c9c9544f746e20c8ee))
* **tpc:** add tpc-ds tests ([#9467](https://github.com/ibis-project/ibis/issues/9467)) ([d2dff68](https://github.com/ibis-project/ibis/commit/d2dff68b845257f57b3a7781c32c4541d0821d1e))
* **viz:** avoid repeatedly rendering redundant schemas in graphviz output ([#9518](https://github.com/ibis-project/ibis/issues/9518)) ([d53602b](https://github.com/ibis-project/ibis/commit/d53602b8c7547355e8f012ea153242c5ec575d34))
### Performance
* **bigquery:** avoid running `list_tables` when registering memtables ([#9425](https://github.com/ibis-project/ibis/issues/9425)) ([fbc79d2](https://github.com/ibis-project/ibis/commit/fbc79d2322c24778f15b93ae1bc708adf3f647c6))
* **bigquery:** use `query_and_wait` for better performance on queries of small data with smaller result sets ([#9418](https://github.com/ibis-project/ibis/issues/9418)) ([ad1e915](https://github.com/ibis-project/ibis/commit/ad1e915017a8b06f8824af174e8c24ad25004ac3))
* **drop:** speed up performance of drop ([#9440](https://github.com/ibis-project/ibis/issues/9440)) ([1c6eb5c](https://github.com/ibis-project/ibis/commit/1c6eb5ca516c1c9a777780cd21048ea54e4ef6c7)), closes [#9111](https://github.com/ibis-project/ibis/issues/9111)
* **drop:** use `_fast_bind` to speed up `drop` even more ([#9646](https://github.com/ibis-project/ibis/issues/9646)) ([4f39d69](https://github.com/ibis-project/ibis/commit/4f39d69e9007bfc62376b2adbe8f5b3d3182d790))
* **duckdb:** speed up memtable registration ([#9419](https://github.com/ibis-project/ibis/issues/9419)) ([7878d8c](https://github.com/ibis-project/ibis/commit/7878d8c0a2b60847c6f2708429c4f3b7ebe5d67a))
* **duckdb:** speedup timestamp conversion by avoiding conversion to object ([#9556](https://github.com/ibis-project/ibis/issues/9556)) ([5923e1e](https://github.com/ibis-project/ibis/commit/5923e1e8157ed44460540c52bf962214168e215f))
* **relocate:** avoid redundant selector position computation ([#9644](https://github.com/ibis-project/ibis/issues/9644)) ([cd58214](https://github.com/ibis-project/ibis/commit/cd5821499f0fe16f7bdce00f6c52d2baad00a50a))
* **rename:** avoid unnecessary rewrites and dereferencing in `rename` ([#9641](https://github.com/ibis-project/ibis/issues/9641)) ([e56489e](https://github.com/ibis-project/ibis/commit/e56489e7dbccea498e65eac5050ac10640c97c7c))