* Wipe out multi-file database support
* Fix (fingers crossed) Windows build, some more cleanup and code simplification
* Fix gstat build on Windows and also Android/MacOS builds
* Add AUTO RELEASE TEMP BLOBID transaction option
It makes the transaction release temporary ID of user BLOB just after its materialization. It's useful for massive insertions of records with user-defined BLOBs because it eliminates the memory overhead caused by creating and keeping temporary IDs until the transaction ends. This option is used during the database restore.
* Place tokens in the correct sections
* Avoid repeated attempts to start a transaction with options that are not supported by the target server
* Correct AUTO RELEASE TEMP BLOBID description
* Check bad_tpb_form error for more reliable detection of unsupported transaction options
* Do not use unsupported options for transactions of parallel workers performing RestoreRelationTask
* Do not consider non-deterministic expressions as invariants in pre-filters
* Follow Adriano's suggestion
* Allow deterministic uncorrelated subqueries to be considered as invariants
* Refactoring of CAST FORMAT
Move CAST FORMAT logic to separate file.
Separation of logic into parsing stage and execution stage.
Add more FORMAT validation based on SQL standard.
* Add more unit tests for incorrect FORMAT
* Remove incorrect const specifier
* Fixes after review
Minor code changes.
Move public CVT_FORMAT functions to CvtFormat.h.
Add new error message if same is used pattern twice in string to datetime conversion.
* Fix indents in comments
* Add new files to windows build
* Remove constexpr specifier from functions that is not real constexpr
Because std::isdigit and std::isalpha are not constexpr.
---------
Co-authored-by: Artyom Ivanov <artyom.ivanov@red-soft.ru>
* Postfix for #7989 - Improve performance of external (UDR) functions.
* Extract common functions.
* Fix profiler request time for external functions.
* Change cancellation detection for external functions.
* Move new private code to anonymous namesapce and rename functions.
* Use current TimeStamp for data in stringToDate conversion if it's not specify
Also fix RM pattern and change (A/P)M to (A/P).M.
* Add more tests
* Add TimeStamp validation
Also move duplicated code to functions.
* Add more unit tests for "YY" and "YYY" patterns
* Use Callback for getting current date
It's better because we can mock Callback for unit tests.
* Fix exception and README description
* Add ability to print blr_cast_format
* Put a comment about new BLR in the right place
* Add information about behavior of string to datetime conversion
* Rework old patterns and add new ones
Add A.M, P.M., RR and RRRR patterns.
Rework YY, YYY, HH and HH12 patterns due to new patterns.
Add restriction from SQL standard to format.
Fix incorrect error message for mismatched pattern.
Fix bug with 0 hours in HH12.
* Add more unit tests
* Update doc for cast format
* Allow specification of log_level for BOOST_TESTS in make
* Change enum class to enum in namespace
* Switch from plain enum to constexpr values
---------
Co-authored-by: Artyom Ivanov <artyom.ivanov@red-soft.ru>
* Solution for #7568: Equivalence of boolean condition in partial index
* Follow Adriano's correction
Co-authored-by: Adriano dos Santos Fernandes <529415+asfernandes@users.noreply.github.com>
* Exclude IS [NOT] and IS [NOT] DISTINCT FROM from the optimization
---------
Co-authored-by: Adriano dos Santos Fernandes <529415+asfernandes@users.noreply.github.com>