WCF icon indicating copy to clipboard operation
WCF copied to clipboard

Phase out `Database::prepareStatement()`

Open dtdesign opened this issue 4 months ago • 0 comments

Version 5.4 added Database::prepare() as a convenient alternative that performs the replacement based on WCF_N and has proven to prevent a lot of runtime errors for legacy setups with WCF_N !== 1.

The next step is to deprecate prepareStatement() and make it an alias of prepare() in 7.0. For some situations, most important exporters, we need to preserve the previous behavior by introducing prepareUnmanaged() which behaves exactly as prepareStatement() but represents an explicit opt-in.

  • WoltLab Suite 6.2
    • [x] prepareUnmanaged() is introduced and is identical to the prepareStatement() in version 6.1.
    • [x] prepareStatement() is marked as deprecated and forwards all calls to prepareUnmanaged().
    • [x] prepare() is updated to use prepareUnmanaged() instead of prepareStatement().
    • [x] All uses of prepareStatement() in the exporters are migrated to prepareUnmanaged() or prepare().
    • [ ] All remaining uses of prepareStatement() in the software are rewritten to use prepare() instead. This includes rewriting the queries to no longer use WCF_N directly.
  • WoltLab Suite 7.0
    • prepareStatement() is being removed.

dtdesign avatar Sep 27 '24 13:09 dtdesign