Skip to content

R40

Compare
Choose a tag to compare
@maddinat0r maddinat0r released this 05 Sep 06:02
· 67 commits to master since this release
  • code-breaking changes:
    • removed connection handle parameter from all cache functions
    • added MySQL tag to all connection handle parameters
    • removed redundant prefixes from enumerations (e.g. LOG_ERROR -> ERROR)
    • moved MySQL:handle parameter in functions mysql_escape_string, mysql_stat and mysql_get_charset (it's the last parameter now)
    • swapped places of parameters password[] and database[] in function mysql_connect
    • moved all connection options from mysql_connect to its own system (mysql_init_options and mysql_set_option for more information)
    • renamed mysql_option to mysql_global_options
    • removed cache_get_data (use cache_get_*_count)
    • removed parameter clearvars in orm_delete (see orm_clear_vars for more information)
    • renamed cache_get_row to cache_get_value_index (_int and _float likewise)
    • renamed cache_get_field_content to cache_get_value_name (_int and _float likewise)
    • all cache_get_* (e.g. cache_get_value_index_bool or cache_get_row_count) functions now return their value through a reference parameter instead of returning it directly
    • the logtype parameter in mysql_log has been removed; there is no HTML-logging anymore
    • all y_inline support code has been outsourced, see samp-mysql-yinline-include
    • cache_set_active(Cache:0) doesn't unset the active cache, see cache_unset_active()
    • removed mysql_reconnect
    • removed mysql_current_handle
  • major system changes:
    • stored cache results are now handled globally, not per-connection (as before); that means you can now share stored results between filterscripts and gamemodes
    • the plugin doesn't force-auto-reconnect now (background: the plugin stored the login credentials internally to basically perform a disconnect and immediate connect on specific error cases; now the plugin doesn't store any credentials anymore)
    • all natives now indicate their execution status through their return value (e.g. return 1 on success, 0 on failure)
  • new features:
    • support for multiple result sets
    • support for passing arrays and references to result callbacks (format specifier a and r) (a expects i/d after itself to provide the array size; the size format specifier is also passed as a callback argument)
    • brand new logging system:
      • automatic detection of debug info (compiled with -d2/-d3): if the log system detects any debug information within the script, plugin native logs will have the script file name and line number displayed within the according log line
      • threaded logging: the new log system is now completely threaded and crash-safe, resulting in a faster logging experience (especially when logging with all log levels enabled)
      • third-party compatible: other plugin authors can incorporate this new logging system into their plugins and take advantage of fast, safe and managed text logging
    • ability to create SSL-encrypted connections
    • orm_update and orm_delete now accept callbacks
    • mysql_query_file: send unthreaded queries from a .sql file
    • mysql_connect_file: create a connection handle using a file (which has all the credentials and options stored in an INI-like format)
    • orm_clear_vars: sets all registered variables to 0
    • cache_is_value_null: returns true if the value is NULL
    • cache_get_value_bool: returns false if the value is 0, otherwise true
    • cache_get_value overloads: instead of calling e.g. cache_get_value_index_int(0, 0) one can now just omit the index/name part: cache_get_value_int(0, 0) (this will correctly translate to the former call)
      same goes for all other cache_get_value natives (and cache_is_value_null)
    • cache_get_field_type: returns the type of a field
    • cache_unset_active: unsets the active cache