mirror of
https://github.com/FirebirdSQL/firebird.git
synced 2025-01-22 23:23:02 +01:00
a429459b76
* 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> |
||
---|---|---|
.. | ||
license | ||
sql.extensions | ||
ambiguity.txt | ||
Firebird_conf.txt | ||
install_windows_manually.txt | ||
ods11-index-structure.html | ||
README.build.macosx.md | ||
README.build.mingw.html | ||
README.build.msvc.html | ||
README.build.posix.html | ||
README.cast.format.md | ||
README.coding.style | ||
README.connection_string_charset.txt | ||
README.connection_strings | ||
README.DiskSpaceAllocation | ||
README.external_routines.txt | ||
README.fb_cancel_operation | ||
README.fb_shutdown | ||
README.fbsvcmgr | ||
README.garbage_collector | ||
README.gbak | ||
README.incompatibilities.3to4.txt | ||
README.incompatibilities.txt | ||
README.instsvc | ||
README.intl | ||
README.IPv6 | ||
README.isql_enhancements.txt | ||
README.makefiles | ||
README.modern_cpp.md | ||
README.monitoring_tables | ||
README.NTSecurity | ||
README.online_validation | ||
README.Optimizer.txt | ||
README.parallel_features | ||
README.performance_monitoring | ||
README.plugins.html | ||
README.providers.html | ||
README.raw_devices | ||
README.read_consistency.md | ||
README.read_password_from_file | ||
README.replication.md | ||
README.SecureRemotePassword.html | ||
README.security_database.txt | ||
README.services_extension | ||
README.session_idle_timeouts | ||
README.sha1 | ||
README.statement_timeouts | ||
README.superclassic | ||
README.trace_services | ||
README.transaction_at_snapshot.md | ||
README.trusted_authentication | ||
README.user.embedded | ||
README.user.troubleshooting | ||
README.Win32LibraryInstallation.txt | ||
README.wire.compression.html | ||
README.xnet | ||
Using_OO_API.html |
XNET - new local protocol implementation (win32) ------------------------------------------------ Firebird 2.0 has replaced the former (often referred to as IPC or IPServer) implementation of the local transport protocol with a new one, named XNET. It serves exactly the same goal - provide an efficient way to connect to the local server (without a remote node name in the connection string) - but it's implemented differently, in order to address the known issues with the old protocol. Generally speaking, both implementations use shared memory for inter-process communication, but XNET eliminates usage of window messages to deliver attachment requests and it also implements another synchronization logic. Advantages of the XNET protocol over IPServer: - it works with Classic Server - it works for non-interactive services and terminal sessions - it doesn't lock up when using a few connections simultaneously From the performance point of view, they should behave similarly, although XNET is expected to be slightly faster. As for disadvantages, there's only one - implementations are not compatible with each other. It means that your fbclient.dll version should match the version of the used server binaries (fbserver.exe or fb_inet_server.exe), otherwise you won't be able to establish a local connection (a TCP localhost loopback will do the trick, of course).