================================================== Changes from 2025-05-05 00:00:00 +0000 to present. ================================================== ----------------------------------------- version 0.37 at 2026-05-05 08:01:10 +0000 ----------------------------------------- Change: a5b80aff2ea9fa4a60cd1d335b22987e9fec6395 Author: Alessandro Ranellucci Date : 2026-05-05 08:01:10 +0000 v0.37 Change: da21afa3f22692873c597c9068e6469c275366cb Author: Diab Jerius Date : 2026-05-04 23:11:39 +0000 backcompat: ensure that default select expression is created prior to calls to select_also() A previous edit changed the initial state of the select expression list from a default value to undef. In general, the code assumes that unless otherwise added to by the caller, an undef list indicates that the default select expression should be inserted. However, select_also() assumes than an undef list means something else, and rather than creating a list with the default expression and then adding to it, it creates a list with just its contents. Later on, after the call to select_also() the code which would have inserted the default expression interprets the non-undef value for the list as indication that the user has explicitly called select(), and thus doesn't add the default. The end result is that calling select_also() without calling select() ends up with a final select expression without the default expression, which breaks with previous behavior. The change in the value for the default expression came about during the addition of the table_alias attribute. Prior to that the expression was initialized in the constructor to 'me.*'. With the addition of the table_alias attribute, this is now [$self->{table_alias} . '.*'], and that is how it is set in later parts of the code which treat an undef select expression as equivalent to setting the default expression. The initialization in the constructor was previsouly done prior to incorporating constructor arguments; presumably its removal was made under the assumption that later code would catch the undef list and insert the proper default expression using $self->{table_alias}. This commit changes the assumptions of select_also() when faced with an undef expression list to match that of the rest of the code. All code which access $self->{select} now performs the same operation when presented an undef expression list. This also resolves similar behavior that arises by calling select() without arguments, which sets the list to undef. A subsequent call to select_also() would cause the same issue as is fixed here. Change: 5d6a5c4f26ba8591ed3c059def8415f6458d0374 Author: Diab Jerius Date : 2026-05-04 23:10:28 +0000 bugfix: check for acceptable input in with() did not recognize refs to arrayrefs Change: ab4b316ad48d8a8402637d01ede0547b703548ba Author: Diab Jerius Date : 2026-05-04 23:10:09 +0000 add support for UPSERT on versions of PostgreSQL and SQLite which support it Change: 42ff6b40eca2b60e9e8e83ef04d1d0a50390dbf4 Author: Diab Jerius Date : 2026-05-04 23:09:38 +0000 _autopk: add support for table schema for PostgreSQL Change: 5228110bfb51dae8c0e1ac0c1f0d15b45ae990b5 Author: Diab Jerius Date : 2026-05-04 23:09:08 +0000 bugfix: table alias failed for update & delete if SQLA's quote_char was set. Prior to version 1.44 of SQL::Abstract::More, specifying a table alias as "$table_name|$table_alias" was supported only for select, not for delete or update. DBIx::Lite worked around this by calling SQLA::M's table_alias method, which returns a string of "$table_name as $table_alias" If SQLA's quote_char option is set, this entire construct is quoted, rather than just $table_name, leading to illegal SQL. This commit will use the "$name|$alias" form if SQLA::M is version 1.44 or higher. Change: 1bf2cd1459fcffb29401c27804a3907d24049d48 Author: Diab Jerius Date : 2026-05-04 23:08:27 +0000 Sybase is not fond of using "count" as an identifier, so make it unique Change: 1750abfad485b3925f4b92a15fd55cb89abb8944 Author: Diab Jerius Date : 2026-05-04 23:08:27 +0000 create a column alias for COUNT(*) so that optional SQL::Abstract::More column quoting works The existing code passes the expression COUNT(*) to SQL::Abstract::More, which intepreted it as a column name and if its quote_char option was set, quoted it, leading to errors such as DBD::Pg::st execute failed: ERROR: column "COUNT(*)" does not exist LINE 1: SELECT "COUNT(*)" FROM "temp0002" AS "me" ^ [for Statement "SELECT "COUNT(*)" FROM "temp0002" AS "me""] This commit creates a column alias for COUNT(*), providing something appropriate for SQL::Abstract::More to quote. Change: 1021974da7a20ae9acca519b8e3f1ad3695a458f Author: Alessandro Ranellucci Date : 2025-07-17 17:20:40 +0000 Fixed warning about operator precedence Change: e5bddafc1ca80843e19e3e5689ec67b091775489 Author: Alessandro Ranellucci Date : 2024-10-31 18:09:57 +0000 Add test for default functionality ================================================= Plus 27 releases after 2025-05-05 00:00:00 +0000. =================================================