Changelog:
changed
Calendar: Task and Event tree colours adjusted for the dark theme
fixed
Retrieval of S/MIME certificates from LDAP failed
Address-parsing crash on some IMAP servers when preference mail.imap.use_envelope_cmd was set
Incorrect forwarding of HTML messages caused SMTP servers to respond with a timeout
Calendar: Various parts of the calendar UI stopped working when a second Thunderbird window opened
Update pear-Mail_Mime to 1.10.6.
1.10.6 (2020-01-30)
Changelog:
* Fix different boundary in headers and body when using headers() after
get() [alec]
* Removed phail.php script [alec]
Changelog:
Updated BSD port of JDK 11
Additional features include:
Update to 11.0.6 GA
Fix remote HotSpot debugging on BSD
Add support for setting thread names on BSD (useful for top -H)
Changelog:
adjust call sequence to ensure authenticate operation is executed
this patch is not needed for media-driver, but needed for
i965 driver which check authentication.
* Do not use PDFium's internal freetype2.
Not tested with X11_TYPE=native yet.
* GTK2 VCL is removed.
Changelog:
# Writer
Added option to mark comments as resolved.
Fix missing change tracking layout of numbers and bullets of lists.
The btLr text direction is now available.
It is now possible to comment on Writer images and charts.
It is now possible to automatically avoid overlapping shapes with a new wrap option.
Improved performance when importing files with many bookmarks.
Selection of drawing objects anchored at-paragraph works more consistently and user-friendly now.
## Tables
Important improvements in table handling.
Improved drag & drop mouse operations to move table data.
# Calc
Improved selecting cells which contain hyperlinks.
n MM:SS or [MM]:SS or MM:SS.00 or [MM]:SS.00 pre-formatted cells a two digit groups input like 12:34 is now accepted as minutes:seconds value instead of the usual hours:minutes:00 value; to force the usual hours:minutes:seconds input on such cells enter three digit groups like 12:34:00.
Improved scalability of formula-groups computation on CPUs with large number of cores by potentially threading multiple independent formula-groups together.
Implemented a parallelized version of super scalar sample sort algorithm to speed up sorting. This is now used in pivot-table creation where some sorting is required.
Shading of columns/rows headers is removed; the headers are drawn flat now.
Deleted a 15 symbols limit to password length for XLSX files.
Performance improvements.
Full-Sheet Previews.
# Impress & Draw
Added 'Remove Hyperlink' to context menu in Impress.
Added 'Consolidate Text' which combines multiple selected textboxes into one (primarily to simplify editing fragmented content from imported PDFs).
Interaction now only executed in presentation mode (when clicking on an object). For edit mode, a context menu "Execute interaction" was added.
Image Maps now respect the setting to require Ctrl+Click to follow the hyperlink.
Hyperlink in Image Maps now work in Slideshow too.
Performance improvements.
# Base
Access2Base callable from Python.
# BASIC
Fix hex number conversion.
Improvements in VBA handling.
Fix handling for function that does not has closing parenthesis.
# Core / General
Internal Paths are now displayed in the UI.
Add checkbox to enable/disable sending crash reports to TDF.
Hyperlink context menus were unified. Every hyperlink now has the following context menu entries.
Generate QR Code feature is added in LO.
0.82.26
- Debugger console window fixed to choose a smaller
default size in Windows builds.
- Debugger console window now resizes properly
in Windows builds.
- Using F10 (step over) in the debugger to step
over INT 21h when a breakpoint for INT 21h is
set now works correctly, instead of letting the
instruction pointer "stick" there without moving.
- Debugger interface now shows (running/watching)
while RUNWATCH is active.
- Debugger interface now correctly shows (running)
status when F5 is used to resume emulation.
- Debugger toggle reverts back to debugger interface
instead of running state if triggered during a
RUNWATCH command.
- Fixed RUWNATCH command, which was broken by another
fix sometime back designed to stop PIC event
processing while in the debugger.
- Debugger interface fixed to keep the SDL event
handling going during the "pager" routine to
prevent Windows from graying out the main window
as "not responding" in Windows 7/8/10.
- Direct3D support has been fixed to properly render
pixel shaders again that were already written for
other forks.
- Added "Rescan all drives" menu command and mapper
shortcut (Issue #1379 requested by saintfrater)
Changelog:
orcus 0.15.3
* xml-map
* fixed another bug related to filling of cells down the column in a linked
range with nested repeat elements. The bug would occur when the field in
a linked range is more than one level deeper than the nearest row group
element.
* xls-xml
* fixed a bug where TopCell and LeftCell attributes of the Table element
were not properly honored.
orcus 0.15.2
* xml-map
* fixed a bug that prevented filling of cells down the column in a linked
range with nested repeat elements. The bug would occur when the field in
a linked range is associated with an element content rather than an
attribute.
* xls-xml
* added code to properly pick up and pass the number format codes, including
named number format values such as 'General Date', 'Long Time, 'Currency'
etc.
* fixed a build issue on older macOS environment, related to passing an rvalue
to a tuple expecting a const reference. The root cause was a bug in libc++
of LLVM < 7.
* fixed a build issue with gcc5.
orcus 0.15.1
* switched xml_map_tree to using boost::object_pool to manage the life
cycles of the objects within xml_map_tree, to avoid memory
fragmentation.
* fixed incorrect handling of newly created elements in xml_map_tree.
* fixed segfault caused by double deletion of allocated memory for
xml_map_tree::element, which seemed to happen only on 32-bit gcc builds.
* fixed weird test failures related to equality check of two double-precision
values, caused probably by aggressive compiler optimization which only seems
to get triggered in 32-bit gcc builds.
orcus 0.15.0
* spreadsheet interface
* import_sheet::fill_down_cells() has been added as a required method, to
allow the import filter code to duplicate cell value downward in one step.
* json parser
* added test cases from JSONTestSuite.
* fixed a bug on parsing an empty array containing one or more blank
characters between the brackets.
* sax parser
* fixed a bug on parsing an attribute value with encoded character
immediately followed by a ';', such as '&;'.
* fixed a bug on parsing an assignment character '=' that either preceded or
followed by whitespaces in attribute definition.
* optionally use SSE4.2 intrinsics to speed up element name parsing.
* orcus-xml
* revised its cli interface to make use of boost's program_options.
* orcus-xml-dump's functionality has been combined into orcus-xml.
* map mode now supports nested repeat elements to be mapped as range fields.
* orcus-json
* map mode has been added to allow mapping of JSON documents to spreadsheet
document model. This mode either takes explicit mapping rule via map
file, or performs automatic mapping by auto-identifying mappable ranges by
analyzing the structure of the JSON document.
* structure mode has been added to display the logical structures of JSON
documents.
* significantly improved performance of json document tree by utilizing
object pool to manage the life cycles of json value instances.
* xls-xml
* added support for importing named color values in the ss:Color attributes.
* added support for handling UTF-16 streams that contains byte order marks.
* spreadsheet document
* significantly improved performance of flat format output generation.
* internal
* string_pool now uses boost's object_pool to manage the instances of stored
strings.
* file_content class has been added to memory-map file contents instead of
loading them in-memory.
* memory_content class has been added to map in-memory buffer with the
optional ability to perform unicode conversion.
* dom_tree has been renamed to dom::document_tree, and its interface has
been cleaned up to hide its implementation details.
Changelog:
ixion 0.15.0
* fill_down_cells() method has been added to model_context, to fill duplicate
values downward from an arbitrary cell position. For now, it always
duplicate the value of the source cell; cell value enumerations are not
supported. Also, filling down of formula cells is not yet supported.
* cell iterator has been aded to model_context, for efficient horizontal and
vertical iterations of cell values in an arbitrary range within a sheet.
* improved the cmake-based build, with all test cases integrated.
* switched to spdlog for compile-time debug log outputs.
* improved performance by removing repeated fetching of each formula
cell prior to interpretation.
* reworked topological sorting of formula cells to avoid having to
unnecessarily build dependency relations twice; once during the
dirty cell determination and twice prior to interpretation of
formula cells. The new code performs topological sorting during the
dirty cell determination phase.
* reworked the cell reference tracker to use R-tree. This allows more
accurate tracking of references involving grouped formulas.
* fixed a resource leak with dynamic loading of compute engine modules.
Changelog:
mdds 1.5.0
* documentation
* moved the documentation hosting to readthedocs.io, and adjusted the build
steps.
* moved the API incompatibility notes from README to the rst doc.
* added the overview section for flat_segment_tree.
* multi_type_vector
* fixed the static get(const const_position_type& pos) method for the
boolean_element_block, by adding specialization for it to work around the
issue with std::vector<bool> not having the at() method.
* fixed an issue with the const position() method not returning a valid end
position the same way the non-const variant does.
* added steps to traverse blocks backward from the postiion specified in the
position hint. This may result in improved performance in some
situations.
* the standard integer blocks now use fixed size integer types i.e.
* (u)int8_t
* (u)int16_t
* (u)int32_t
* (u)int64_t
* The numeric_element_block has been renamed to double_element_block.
* added new block type to store float element values.
* general
* added gdb pretty printers that prints the contents of the data structures.
ChangeLog:
xa-2.3.6
* 'make test' for regression testing framework (requires Perl).
* Changed getline() to xa_getline() to avoid collision with glibc 2.10+
* Fixed compile problems with misc/.
* Fixed message offsets.
xa-2.3.7
* Fixed buffer overflow and test failure with gcc 4.9 (thanks Adam Sampson).
* mvn and mvp now use the standard syntax (thanks Alessandro Gatti).
* Copyright message is no longer put in the error log to simplify testing.
* Makefile properly triggers a relink for testing or source changes.
* Spurious messages quelled.
* Documentation updated.
* Testsuite expanded.
xa-2.3.8
* Fixed issue with colons in string literals being treated as separators
(thanks Simon Rowe).
* Testsuite expanded.
xa-2.3.9
* Fixed issue on Windows and DOS systems with the .bin pseudo-op (thanks
Bago Zonde).
* Documentation updated.
* Testsuite expanded.
* For the thirty year anniversary of xa, we're changing the name to xxxa.
(Just kidding.)
xa-2.3.10
* Three fixes, all from Andre:
- Don't crash if a useless segment is referenced outside of relocating
mode (thanks Laszlo Barath for the report).
- Don't substitute within strings, for better cpp compatibility (thanks
Glenn Holmer for the report). I added the -S option for backwards
compatibility for the old behaviour; it will be removed in 2.4 and later.
- Fix underflow issue if a variable is late-bound (with -L) when that
variable is used in computations with negative offsets.
* Deprecated options will be removed in 2.4 and everything is warned.
* Documentation updated.
* Testsuite expanded.
pkgsrc changes:
MAKE_JOBS_SAFE=no has been removed since binutils built fine with
MAKE_JOBS=3 on NetBSD-8.0-x86_64.
In some of the patches, all context lines have been removed since the raw
change is expressive enough without any context.
The patch for popcount is no longer necessary since the function has been
renamed in bfd.
upstream changes since 2.26:
Changes in 2.34:
* Binutils now supports debuginfod, an HTTP server for distributing
ELF/DWARF debugging information as well as source code. When built with
debuginfod, readelf and objdump can automatically query debuginfod
servers for separate debug files when they otherwise cannot be found.
To build binutils with debuginfod, pass --with-debuginfod to configure.
This requires libdebuginfod, the debuginfod client library. debuginfod
is distributed with elfutils, starting with version 0.178. For more
information see https://sourceware.org/elfutils.
* Add --output option to the "ar" program. This option can be used to specify
the output directory when extracting members from an archive.
* Add --keep-section option to objcopy and strip. This option keeps the
specified section from being removed.
* Add visualization of jumps inside a function by drawing an ascii character
graph between the address and the disassembler column. Enabled via the
--visualize-jumps command line option for objdump. Currently supported by
the x86, x86_64, and ARM targets. The output looks something like this:
c6: | | \----------> be 00 00 00 00 mov $0x0,%esi
cb: | | /----> 48 8b 3d 00 00 00 00 mov 0x0(%rip),%rdi # d2 <main+0xd2>
d2: | | | 31 c0 xor %eax,%eax
d4: | | | /-- e8 00 00 00 00 callq d9 <main+0xd9>
d9: | | | \-> bf 02 00 00 00 mov $0x2,%edi
de: | +-----------|----- e8 00 00 00 00 callq e3 <main+0xe3>
e3: | \-----------|----> 48 89 da mov %rbx,%rdx
e6: | | be 00 00 00 00 mov $0x0,%esi
eb: | \----- eb de jmp cb <main+0xcb>
ed: \-------------------> 48 8b 16 mov (%rsi),%rdx
Additional arguments to the --visualize-jumps option add colors to the
output.
Changes in 2.33:
* Add --source-comment[=<txt>] option to objdump which if present,
provides a prefix to source code lines displayed in a disassembly.
* Add --set-section-alignment <section-name>=<align> option to objcopy to allow
the changing of section alignments.
* Add --verilog-data-width option to objcopy for verilog targets to control
width of data elements in verilog hex format.
* Add support for the Armv8.1-M Mainline and M-profile Vector Extension (MVE)
instructions.
* The separate debug info file options of readelf (--debug-dump=links
and --debug-dump=follow) and objdump (--dwarf=links and
--dwarf=follow-links) will now display and/or follow multiple links if
more than one are present in a file. (This usually happens when gcc's
-gsplit-dwarf option is used).
In addition objdump's --dwarf=follow-links now also affects its other
display options, so that for example, when combined with --syms it will
cause the symbol tables in any linked debug info files to also be
displayed. In addition when combined with --disassemble the --dwarf=
follow-links option will ensure that any symbol tables in the linked
files are read and used when disassembling code in the main file.
* Add support for dumping types encoded in the Compact Type Format
to objdump and readelf.
Changes in 2.32:
* The addr2line, c++filt, nm and objdump tools now have a limit on the
maximum amount of recursion that is allowed whilst demangling strings.
The value for this limit is defined by the DEMANGLE_RECRUSE_LIMIT
constant declared in the include/demangle.h header file. At the time
of writing this constant has the value of 2048.
The --no-recurse-limit option can be used to remove the limit, restoring
the behaviour of earlier versions of these tools. This may be needed in
order to dmangle truly complicated names, but it also leaves the tools
vulnerable to stack exhaustion from maliciously constructed mangled names.
* Objdump's --disassemble option can now take a parameter, specifying the
starting symbol for disassembly. Disassembly will continue from this
symbol up to the next symbol or the end of the function.
* The MIPS port now supports the Loongson 2K1000 processor which implements
the MIPS64r2 ISA, the Loongson-mmi ASE, Loongson-cam ASE, Loongson-ext ASE,
Loongson-ext2 ASE and MSA ASE instructions. Add -march=gs264e option for
Loongson 2K1000 processor.
* The MIPS port now supports the Loongson 3A2000/3A3000 processor which
implements the MIPS64r2 ISA, the Loongson-mmi ASE, Loongson-cam ASE,
Loongson-ext ASE and Loongson-ext2 ASE instructions. Add -march=gs464e
option for Loongson 3A2000/3A3000 processor.
* The MIPS port now supports the Loongson 3A1000 processor, aka Loongson3a,
which implements the MIPS64r2 ISA, the Loongson-mmi ASE, Loongson-cam ASE
and Loongson-ext ASE instructions. Add -march=gs464 option for Loongson
3A1000 processor, The -march=loongson3a is an alias of -march=gs464 for
compatibility.
* The size tool now has a new output format '--format=GNU' or '-G'. The
results are displayed in a similar manor to the default berkeley layout,
except read-only data is counted in the data column, not the text column.
Additionally the total is only included once.
Changes in 2.31:
* Add support for disassembling netronome Flow Processor (NFP) firmware files.
* The AArch64 port now supports showing disassembly notes which are emitted
when inconsistencies are found with the instruction that may result in the
instruction being invalid. These can be turned on with the option -M notes
to objdump.
* The AArch64 port now emits warnings when a combination of an instruction and
a named register could be invalid.
* Added O modifier to ar to display member offsets inside an archive
Changes in 2.30:
* Add --debug-dump=links option to readelf and --dwarf=links option to objdump
which displays the contents of any .gnu_debuglink or .gnu_debugaltlink
sections.
Add a --debug-dump=follow-links option to readelf and a --dwarf=follow-links
option to objdump which causes indirect links into separate debug info files
to be followed when dumping other DWARF sections.
Changes in 2.29:
* The MIPS port now supports microMIPS eXtended Physical Addressing (XPA)
instructions for assembly and disassembly.
* The MIPS port now supports the microMIPS Release 5 ISA for assembly and
disassembly.
* The MIPS port now supports the Imagination interAptiv MR2 processor,
which implements the MIPS32r3 ISA, the MIPS16e2 ASE as well as a couple
of implementation-specific regular MIPS and MIPS16e2 ASE instructions.
* The SPARC port now supports the SPARC M8 processor, which implements the
Oracle SPARC Architecture 2017.
* The MIPS port now supports the MIPS16e2 ASE for assembly and disassembly.
* Add support for ELF SHF_GNU_MBIND and PT_GNU_MBIND_XXX.
* Add support for the wasm32 ELF conversion of the WebAssembly file format.
* Add --inlines option to objdump, which extends the --line-numbers option
so that inlined functions will display their nesting information.
* Add --merge-notes options to objcopy to reduce the size of notes in
a binary file by merging and deleting redundant notes.
* Add support for locating separate debug info files using the build-id
method, where the separate file has a name based upon the build-id of
the original file.
Changes in 2.28:
* This version of binutils fixes a problem with PowerPC VLE 16A and 16D
relocations which were functionally swapped, for example,
R_PPC_VLE_HA16A performed like R_PPC_VLE_HA16D while R_PPC_VLE_HA16D
performed like R_PPC_VLE_HA16A. This could have been fixed by
renumbering relocations, which would keep object files created by an
older version of gas compatible with a newer ld. However, that would
require an ABI update, affecting other assemblers and linkers that
create and process the relocations correctly. It is recommended that
all VLE object files be recompiled, but ld can modify the relocations
if --vle-reloc-fixup is passed to ld. If the new ld command-line
option is not used, ld will ld warn on finding relocations inconsistent
with the instructions being relocated.
* The nm program has a new command-line option (--with-version-strings)
which will display a symbol's version information, if any, after the
symbol's name.
* The ARC port of objdump now accepts a -M option to specify the extra
instruction class(es) that should be disassembled.
* The --remove-section option for objcopy and strip now accepts section
patterns starting with an exclamation point to indicate a non-matching
section. A non-matching section is removed from the set of sections
matched by an earlier --remove-section pattern.
* The --only-section option for objcopy now accepts section patterns
starting with an exclamation point to indicate a non-matching section.
A non-matching section is removed from the set of sections matched by
an earlier --only-section pattern.
* New --remove-relocations=SECTIONPATTERN option for objcopy and strip.
This option can be used to remove sections containing relocations.
The SECTIONPATTERN is the section to which the relocations apply, not
the relocation section itself.
Changes in 2.27:
* Add a configure option, --enable-64-bit-archive, to force use of a
64-bit format when creating an archive symbol index.
* Add --elf-stt-common= option to objcopy for ELF targets to control
whether to convert common symbols to the STT_COMMON type.
Changes since 19.4.6:
HOMEPAGE definitions that use http no longer get a warning that they
should migrate to https. Those that could be migrated have been migrated,
and the remaining homepages are not yet ready, so there's no benefit in
having this warning by default. Only in --network mode and when the https
site is indeed reachable, the warning is shown.
In long continued lines, the continuation backslash should be preceded by
a single space. Pkglint had wrongly removed that space in a few cases
before.
Changelog:
No new functionality is introduced in this release. This release fixes several
issues:
- Bug 1606992 - Cache the most recent PBKDF1 password hash, to speed up
repeated SDR
operations when using profiles using that hash. This is covering additional
cases
not covered by NSS 3.49.1, important with the increased KDF iteration
counts.
- Bug 1608327 - Fix compilation problems with NEON-specific code in freebl
- Bug 1608895 - Fix a taskcluster issue with Python 2 / Python 3
NSS 3.49.2 requires NSPR 4.24 or newer.
* Fix runtime error by pthread_equal() misuse.
Changelog:
NSPR 4.25 contains the following changes:
- fixed reading files larger than 4 GB on Win32
- changes to NSPR test tools to allow them to run on our CI
- added support for Xtensa architecture
Django 2.2.10 fixes a security issue:
CVE-2020-7471: Potential SQL injection via StringAgg(delimiter)
StringAgg aggregation function was subject to SQL injection, using a suitably crafted delimiter.
Django 1.11.28 fixes a security issue:
CVE-2020-7471: Potential SQL injection via StringAgg(delimiter)
StringAgg aggregation function was subject to SQL injection, using a suitably crafted delimiter.
Main changes in version 3.5.1
The main changes in version 3.5.1 are:
The default used when the PATH environment variable is unset is now "/bin:/usr/bin" instead of ":/bin:/usr/bin". This is relevant when the dialog argument of the Dialog constructor contains no slash (/), which is the case by default. The benefit of this change is that in such a situation (PATH unset and dialog argument containing no slash), the dialog-like program will not be searched in the current directory anymore (unless of course the current directory is /bin or /usr/bin). This is a much safer behavior; fortunately, the risky behavior only ever existed on bogus setups where the PATH environment variable is unset.
Note that in this respect, we have been following what the GNU C Library (glibc) does for its execvp() function—the corresponding change in glibc happened in version 2.24, released in 2016.
When a Dialog instance is created, it now immediately stores the result of calling os.path.realpath() on the specified executable (which is searched using the PATH if the dialog argument passed to the constructor contains no slash—cf. documentation of the Dialog constructor). This way, a pythondialog-based program can change its current directory after creating a Dialog instance without fearing that this might cause subsequent Dialog method calls to fail or to invoke an executable from a different directory (additionally, os.path.realpath() resolves symbolic links).
The Python 2 backport of pythondialog has been released for this version and should be on par with pythondialog 3.5.1 (this is why version 3.5.0 of the backport has been skipped). The packaging of the backport has been switched from distutils to setuptools too, just as was done in pythondialog 3.5.0 (see below). As a consequence, it is now available in wheel format. However, as said above, Python 2 is deprecated and the Python 2 backport of pythondialog is not supported anymore. Don't expect any further updates to it.
Main changes in version 3.5.0
The main change in version 3.5.0 is:
pythondialog's packaging has been switched from distutils to setuptools (this is the modern way, see the Python Packaging User Guide). Thanks to this change, pythondialog is now available in wheel format. The normal installation method using pip didn't change (see the INSTALL file for details).
The Python 2 backport of pythondialog has not been released for this version (version 3.5.1 will be the last one).
0.36.1:
- Added support for CASCADE option when dropping views
- Added `aliases` parameter to create_materialized_view function.
0.36.0:
- Removed explain and explain_analyze due to the internal changes in SQLAlchemy version 1.3.
0.35.0:
- Removed some deprecation warnings
- Added Int8RangeType
1.3.13
[orm] [bug] [engine]
Added test support and repaired a wide variety of unnecessary reference cycles created for short-lived objects, mostly in the area of ORM queries. Thanks much to Carson Ip for the help on this.
[orm] [bug]
Fixed regression in loader options introduced in 1.3.0b3 via 4468 where the ability to create a loader option using PropComparator.of_type() targeting an aliased entity that is an inheriting subclass of the entity which the preceding relationship refers to would fail to produce a matching path. See also 5082 fixed in this same release which involves a similar kind of issue.
[orm] [bug]
Fixed regression in joined eager loading introduced in 1.3.0b3 via 4468 where the ability to create a joined option across a with_polymorphic() into a polymorphic subclass using RelationshipProperty.of_type() and then further along regular mapped relationships would fail as the polymorphic subclass would not add itself to the load path in a way that could be located by the loader strategy. A tweak has been made to resolve this scenario.
[orm] [bug]
Repaired a warning in the ORM flush process that was not covered by test coverage when deleting objects that use the “version_id” feature. This warning is generally unreachable unless using a dialect that sets the “supports_sane_rowcount” flag to False, which is not typically the case however is possible for some MySQL configurations as well as older Firebird drivers, and likely some third party dialects.
[orm] [bug]
Fixed bug where usage of joined eager loading would not properly wrap the query inside of a subquery when Query.group_by() were used against the query. When any kind of result-limiting approach is used, such as DISTINCT, LIMIT, OFFSET, joined eager loading embeds the row-limited query inside of a subquery so that the collection results are not impacted. For some reason, the presence of GROUP BY was never included in this criterion, even though it has a similar effect as using DISTINCT. Additionally, the bug would prevent using GROUP BY at all for a joined eager load query for most database platforms which forbid non-aggregated, non-grouped columns from being in the query, as the additional columns for the joined eager load would not be accepted by the database.
[orm] [performance]
Identified a performance issue in the system by which a join is constructed based on a mapped relationship. The clause adaption system would be used for the majority of join expressions including in the common case where no adaptation is needed. The conditions under which this adaptation occur have been refined so that average non-aliased joins along a simple relationship without a “secondary” table use about 70% less function calls.
[engine] [bug]
Fixed issue where the collection of value processors on a Compiled object would be mutated when “expanding IN” parameters were used with a datatype that has bind value processors; in particular, this would mean that when using statement caching and/or baked queries, the same compiled._bind_processors collection would be mutated concurrently. Since these processors are the same function for a given bind parameter namespace every time, there was no actual negative effect of this issue, however, the execution of a Compiled object should never be causing any changes in its state, especially given that they are intended to be thread-safe and reusable once fully constructed.
[sql] [usecase]
A function created using GenericFunction can now specify that the name of the function should be rendered with or without quotes by assigning the quoted_name construct to the .name element of the object. Prior to 1.3.4, quoting was never applied to function names, and some quoting was introduced in 4467 but no means to force quoting for a mixed case name was available. Additionally, the quoted_name construct when used as the name will properly register its lowercase name in the function registry so that the name continues to be available via the func. registry.
[postgresql] [usecase]
Added support for prefixes to the CTE construct, to allow support for Postgresql 12 “MATERIALIZED” and “NOT MATERIALIZED” phrases. Pull request courtesy Marat Sharafutdinov.
[postgresql] [bug]
Fixed issue where the PostgreSQL dialect would fail to parse a reflected CHECK constraint that was a boolean-valued function (as opposed to a boolean-valued expression).
[postgresql] [tests]
Improved detection of two phase transactions requirement for the PostgreSQL database by testing that max_prepared_transactions is set to a value greater than 0. Pull request courtesy Federico Caselli.
[mssql] [bug]
Fixed issue where a timezone-aware datetime value being converted to string for use as a parameter value of a mssql.DATETIMEOFFSET column was omitting the fractional seconds.
[bug] [ext]
Fixed bug in sqlalchemy.ext.serializer where a unique BindParameter object could conflict with itself if it were present in the mapping itself, as well as the filter condition of the query, as one side would be used against the non-deserialized version and the other side would use the deserialized version. Logic is added to BindParameter similar to its “clone” method which will uniquify the parameter name upon deserialize so that it doesn’t conflict with its original.
[bug] [tests]
Fixed a few test failures which would occur on Windows due to SQLite file locking issues, as well as some timing issues in connection pool related tests; pull request courtesy Federico Caselli.
1.3.12
[orm] [bug]
Fixed issue involving lazy="raise" strategy where an ORM delete of an object would raise for a simple “use-get” style many-to-one relationship that had lazy=”raise” configured. This is inconsistent vs. the change introduced in 1.3 as part of 4353, where it was established that a history operation that does not expect emit SQL should bypass the lazy="raise" check, and instead effectively treat it as lazy="raise_on_sql" for this case. The fix adjusts the lazy loader strategy to not raise for the case where the lazy load was instructed that it should not emit SQL if the object were not present.
[orm] [bug]
Fixed regression introduced in 1.3.0 related to the association proxy refactor in 4351 that prevented composite() attributes from working in terms of an association proxy that references them.
[orm] [bug]
Setting persistence-related flags on relationship() while also setting viewonly=True will now emit a regular warning, as these flags do not make sense for a viewonly=True relationship. In particular, the “cascade” settings have their own warning that is generated based on the individual values, such as “delete, delete-orphan”, that should not apply to a viewonly relationship. Note however that in the case of “cascade”, these settings are still erroneously taking effect even though the relationship is set up as “viewonly”. In 1.4, all persistence-related cascade settings will be disallowed on a viewonly=True relationship in order to resolve this issue.
[orm] [bug] [py3k]
Fixed issue where when assigning a collection to itself as a slice, the mutation operation would fail as it would first erase the assigned collection inadvertently. As an assignment that does not change the contents should not generate events, the operation is now a no-op. Note that the fix only applies to Python 3; in Python 2, the __setitem__ hook isn’t called in this case; __setslice__ is used instead which recreates the list item-by-item in all cases.
[orm] [bug]
Fixed issue where by if the “begin” of a transaction failed at the Core engine/connection level, such as due to network error or database is locked for some transactional recipes, within the context of the Session procuring that connection from the conneciton pool and then immediately returning it, the ORM Session would not close the connection despite this connection not being stored within the state of that Session. This would lead to the connection being cleaned out by the connection pool weakref handler within garbage collection which is an unpreferred codepath that in some special configurations can emit errors in standard error.
[sql] [bug]
Fixed bug where “distinct” keyword passed to select() would not treat a string value as a “label reference” in the same way that the select.distinct() does; it would instead raise unconditionally. This keyword argument and the others passed to select() will ultimately be deprecated for SQLAlchemy 2.0.
[sql] [bug]
Changed the text of the exception for “Can’t resolve label reference” to include other kinds of label coercions, namely that “DISTINCT” is also in this category under the PostgreSQL dialect.
[sqlite] [bug]
Fixed issue to workaround SQLite’s behavior of assigning “numeric” affinity to JSON datatypes, first described at Support for SQLite JSON Added, which returns scalar numeric JSON values as a number and not as a string that can be JSON deserialized. The SQLite-specific JSON deserializer now gracefully degrades for this case as an exception and bypasses deserialization for single numeric values, as from a JSON perspective they are already deserialized.
[mssql] [bug]
Repaired support for the mssql.DATETIMEOFFSET datatype on PyODBC, by adding PyODBC-level result handlers as it does not include native support for this datatype. This includes usage of the Python 3 “timezone” tzinfo subclass in order to set up a timezone, which on Python 2 makes use of a minimal backport of “timezone” in sqlalchemy.util.
3.4.1
* Move the username argument in the Redis and Connection classes to the
end of the argument list. This helps those poor souls that specify all
their connection options as non-keyword arguments.
* Prior to ACL support, redis-py ignored the username component of
Connection URLs. With ACL support, usernames are no longer ignored and
are used to authenticate against an ACL rule. Some cloud vendors with
managed Redis instances (like Heroku) provide connection URLs with a
username component pre-ACL that is not intended to be used. Sending that
username to Redis servers < 6.0.0 results in an error. Attempt to detect
this condition and retry the AUTH command with only the password such
that authentication continues to work for these users.
* Removed the __eq__ hooks to Redis and ConnectionPool that were added
in 3.4.0. This ended up being a bad idea as two separate connection
pools be considered equal yet manage a completely separate set of
connections.