summary refs log tree commit diff stats
path: root/lib/wrappers
diff options
context:
space:
mode:
Diffstat (limited to 'lib/wrappers')
-rw-r--r--lib/wrappers/libsvm.nim108
-rw-r--r--lib/wrappers/mysql.nim528
-rw-r--r--lib/wrappers/sqlite3.nim334
-rw-r--r--lib/wrappers/tinyc.nim24
4 files changed, 497 insertions, 497 deletions
diff --git a/lib/wrappers/libsvm.nim b/lib/wrappers/libsvm.nim
index 8cc314412..ac5889410 100644
--- a/lib/wrappers/libsvm.nim
+++ b/lib/wrappers/libsvm.nim
@@ -10,9 +10,9 @@
 ## This module is a low level wrapper for `libsvm`:idx:.
 
 {.deadCodeElim: on.}
-const 
+const
   LIBSVM_VERSION* = 312
-  
+
 when defined(windows):
   const svmdll* = "libsvm.dll"
 elif defined(macosx):
@@ -20,97 +20,97 @@ elif defined(macosx):
 else:
   const svmdll* = "libsvm.so"
 
-type 
-  Node*{.pure, final.} = object 
+type
+  Node*{.pure, final.} = object
     index*: cint
     value*: cdouble
 
-  Problem*{.pure, final.} = object 
+  Problem*{.pure, final.} = object
     L*: cint
     y*: ptr cdouble
     x*: ptr ptr Node
 
-  Type*{.size: sizeof(cint).} = enum 
+  Type*{.size: sizeof(cint).} = enum
     C_SVC, NU_SVC, ONE_CLASS, EPSILON_SVR, NU_SVR
-  
-  KernelType*{.size: sizeof(cint).} = enum 
+
+  KernelType*{.size: sizeof(cint).} = enum
     LINEAR, POLY, RBF, SIGMOID, PRECOMPUTED
-  
-  Parameter*{.pure, final.} = object 
+
+  Parameter*{.pure, final.} = object
     typ*: Type
     kernelType*: KernelType
-    degree*: cint             # for poly 
-    gamma*: cdouble           # for poly/rbf/sigmoid 
-    coef0*: cdouble           # for poly/sigmoid 
-                              # these are for training only 
-    cache_size*: cdouble      # in MB 
-    eps*: cdouble             # stopping criteria 
-    C*: cdouble               # for C_SVC, EPSILON_SVR and NU_SVR 
-    nr_weight*: cint          # for C_SVC 
-    weight_label*: ptr cint   # for C_SVC 
-    weight*: ptr cdouble      # for C_SVC 
-    nu*: cdouble              # for NU_SVC, ONE_CLASS, and NU_SVR 
-    p*: cdouble               # for EPSILON_SVR 
-    shrinking*: cint          # use the shrinking heuristics 
-    probability*: cint        # do probability estimates 
+    degree*: cint             # for poly
+    gamma*: cdouble           # for poly/rbf/sigmoid
+    coef0*: cdouble           # for poly/sigmoid
+                              # these are for training only
+    cache_size*: cdouble      # in MB
+    eps*: cdouble             # stopping criteria
+    C*: cdouble               # for C_SVC, EPSILON_SVR and NU_SVR
+    nr_weight*: cint          # for C_SVC
+    weight_label*: ptr cint   # for C_SVC
+    weight*: ptr cdouble      # for C_SVC
+    nu*: cdouble              # for NU_SVC, ONE_CLASS, and NU_SVR
+    p*: cdouble               # for EPSILON_SVR
+    shrinking*: cint          # use the shrinking heuristics
+    probability*: cint        # do probability estimates
 {.deprecated: [Tnode: Node, Tproblem: Problem, Ttype: Type,
               TKernelType: KernelType, Tparameter: Parameter].}
 
 #
 # svm_model
-# 
+#
 
-type 
-  Model*{.pure, final.} = object 
-    param*: Parameter         # parameter 
-    nr_class*: cint           # number of classes, = 2 in regression/one class svm 
-    L*: cint                  # total #SV 
+type
+  Model*{.pure, final.} = object
+    param*: Parameter         # parameter
+    nr_class*: cint           # number of classes, = 2 in regression/one class svm
+    L*: cint                  # total #SV
     SV*: ptr ptr Node         # SVs (SV[l])
-    sv_coef*: ptr ptr cdouble # coefficients for SVs in decision functions (sv_coef[k-1][l]) 
-    rho*: ptr cdouble         # constants in decision functions (rho[k*(k-1)/2]) 
-    probA*: ptr cdouble       # pariwise probability information 
-    probB*: ptr cdouble       # for classification only 
-    label*: ptr cint          # label of each class (label[k]) 
-    nSV*: ptr cint            # number of SVs for each class (nSV[k]) 
-                              # nSV[0] + nSV[1] + ... + nSV[k-1] = l 
-                              # XXX 
+    sv_coef*: ptr ptr cdouble # coefficients for SVs in decision functions (sv_coef[k-1][l])
+    rho*: ptr cdouble         # constants in decision functions (rho[k*(k-1)/2])
+    probA*: ptr cdouble       # pariwise probability information
+    probB*: ptr cdouble       # for classification only
+    label*: ptr cint          # label of each class (label[k])
+    nSV*: ptr cint            # number of SVs for each class (nSV[k])
+                              # nSV[0] + nSV[1] + ... + nSV[k-1] = l
+                              # XXX
     free_sv*: cint            # 1 if svm_model is created by svm_load_model
                               # 0 if svm_model is created by svm_train
 {.deprecated: [TModel: Model].}
 
-proc train*(prob: ptr Problem, param: ptr Parameter): ptr Model{.cdecl, 
+proc train*(prob: ptr Problem, param: ptr Parameter): ptr Model{.cdecl,
     importc: "svm_train", dynlib: svmdll.}
-proc cross_validation*(prob: ptr Problem, param: ptr Parameter, nr_fold: cint, 
-                       target: ptr cdouble){.cdecl, 
+proc cross_validation*(prob: ptr Problem, param: ptr Parameter, nr_fold: cint,
+                       target: ptr cdouble){.cdecl,
     importc: "svm_cross_validation", dynlib: svmdll.}
-proc save_model*(model_file_name: cstring, model: ptr Model): cint{.cdecl, 
+proc save_model*(model_file_name: cstring, model: ptr Model): cint{.cdecl,
     importc: "svm_save_model", dynlib: svmdll.}
-proc load_model*(model_file_name: cstring): ptr Model{.cdecl, 
+proc load_model*(model_file_name: cstring): ptr Model{.cdecl,
     importc: "svm_load_model", dynlib: svmdll.}
-proc get_svm_type*(model: ptr Model): cint{.cdecl, importc: "svm_get_svm_type", 
+proc get_svm_type*(model: ptr Model): cint{.cdecl, importc: "svm_get_svm_type",
     dynlib: svmdll.}
-proc get_nr_class*(model: ptr Model): cint{.cdecl, importc: "svm_get_nr_class", 
+proc get_nr_class*(model: ptr Model): cint{.cdecl, importc: "svm_get_nr_class",
     dynlib: svmdll.}
-proc get_labels*(model: ptr Model, label: ptr cint){.cdecl, 
+proc get_labels*(model: ptr Model, label: ptr cint){.cdecl,
     importc: "svm_get_labels", dynlib: svmdll.}
-proc get_svr_probability*(model: ptr Model): cdouble{.cdecl, 
+proc get_svr_probability*(model: ptr Model): cdouble{.cdecl,
     importc: "svm_get_svr_probability", dynlib: svmdll.}
 proc predict_values*(model: ptr Model, x: ptr Node, dec_values: ptr cdouble): cdouble{.
     cdecl, importc: "svm_predict_values", dynlib: svmdll.}
-proc predict*(model: ptr Model, x: ptr Node): cdouble{.cdecl, 
+proc predict*(model: ptr Model, x: ptr Node): cdouble{.cdecl,
     importc: "svm_predict", dynlib: svmdll.}
-proc predict_probability*(model: ptr Model, x: ptr Node, 
-                          prob_estimates: ptr cdouble): cdouble{.cdecl, 
+proc predict_probability*(model: ptr Model, x: ptr Node,
+                          prob_estimates: ptr cdouble): cdouble{.cdecl,
     importc: "svm_predict_probability", dynlib: svmdll.}
-proc free_model_content*(model_ptr: ptr Model){.cdecl, 
+proc free_model_content*(model_ptr: ptr Model){.cdecl,
     importc: "svm_free_model_content", dynlib: svmdll.}
-proc free_and_destroy_model*(model_ptr_ptr: ptr ptr Model){.cdecl, 
+proc free_and_destroy_model*(model_ptr_ptr: ptr ptr Model){.cdecl,
     importc: "svm_free_and_destroy_model", dynlib: svmdll.}
-proc destroy_param*(param: ptr Parameter){.cdecl, importc: "svm_destroy_param", 
+proc destroy_param*(param: ptr Parameter){.cdecl, importc: "svm_destroy_param",
     dynlib: svmdll.}
 proc check_parameter*(prob: ptr Problem, param: ptr Parameter): cstring{.
     cdecl, importc: "svm_check_parameter", dynlib: svmdll.}
-proc check_probability_model*(model: ptr Model): cint{.cdecl, 
+proc check_probability_model*(model: ptr Model): cint{.cdecl,
     importc: "svm_check_probability_model", dynlib: svmdll.}
 
 proc set_print_string_function*(print_func: proc (arg: cstring) {.cdecl.}){.
diff --git a/lib/wrappers/mysql.nim b/lib/wrappers/mysql.nim
index 73b82b5c6..8253e53a5 100644
--- a/lib/wrappers/mysql.nim
+++ b/lib/wrappers/mysql.nim
@@ -20,7 +20,7 @@ when defined(Unix):
 when defined(Windows):
   const
     lib = "libmysql.dll"
-type 
+type
   my_bool* = bool
   Pmy_bool* = ptr my_bool
   PVIO* = pointer
@@ -31,13 +31,13 @@ type
   PPByte* = pointer
   cuint* = cint
 
-#  ------------ Start of declaration in "mysql_com.h"   ---------------------  
+#  ------------ Start of declaration in "mysql_com.h"   ---------------------
 #
 #  ** Common definition between mysql server & client
-#   
+#
 # Field/table name length
 
-const 
+const
   NAME_LEN* = 64
   HOSTNAME_LENGTH* = 60
   USERNAME_LENGTH* = 16
@@ -46,27 +46,27 @@ const
   LOCAL_HOST* = "localhost"
   LOCAL_HOST_NAMEDPIPE* = '.'
 
-const 
+const
   NAMEDPIPE* = "MySQL"
   SERVICENAME* = "MySQL"
 
-type 
-  Enum_server_command* = enum 
-    COM_SLEEP, COM_QUIT, COM_INIT_DB, COM_QUERY, COM_FIELD_LIST, COM_CREATE_DB, 
-    COM_DROP_DB, COM_REFRESH, COM_SHUTDOWN, COM_STATISTICS, COM_PROCESS_INFO, 
-    COM_CONNECT, COM_PROCESS_KILL, COM_DEBUG, COM_PING, COM_TIME, 
-    COM_DELAYED_INSERT, COM_CHANGE_USER, COM_BINLOG_DUMP, COM_TABLE_DUMP, 
-    COM_CONNECT_OUT, COM_REGISTER_SLAVE, COM_STMT_PREPARE, COM_STMT_EXECUTE, 
-    COM_STMT_SEND_LONG_DATA, COM_STMT_CLOSE, COM_STMT_RESET, COM_SET_OPTION, 
+type
+  Enum_server_command* = enum
+    COM_SLEEP, COM_QUIT, COM_INIT_DB, COM_QUERY, COM_FIELD_LIST, COM_CREATE_DB,
+    COM_DROP_DB, COM_REFRESH, COM_SHUTDOWN, COM_STATISTICS, COM_PROCESS_INFO,
+    COM_CONNECT, COM_PROCESS_KILL, COM_DEBUG, COM_PING, COM_TIME,
+    COM_DELAYED_INSERT, COM_CHANGE_USER, COM_BINLOG_DUMP, COM_TABLE_DUMP,
+    COM_CONNECT_OUT, COM_REGISTER_SLAVE, COM_STMT_PREPARE, COM_STMT_EXECUTE,
+    COM_STMT_SEND_LONG_DATA, COM_STMT_CLOSE, COM_STMT_RESET, COM_SET_OPTION,
     COM_STMT_FETCH, COM_END
 {.deprecated: [Tenum_server_command: Enum_server_command].}
 
-const 
-  SCRAMBLE_LENGTH* = 20 # Length of random string sent by server on handshake; 
-                        # this is also length of obfuscated password, 
+const
+  SCRAMBLE_LENGTH* = 20 # Length of random string sent by server on handshake;
+                        # this is also length of obfuscated password,
                         # received from client
-  SCRAMBLE_LENGTH_323* = 8    # length of password stored in the db: 
-                              # new passwords are preceded with '*'  
+  SCRAMBLE_LENGTH_323* = 8    # length of password stored in the db:
+                              # new passwords are preceded with '*'
   SCRAMBLED_PASSWORD_CHAR_LENGTH* = SCRAMBLE_LENGTH * 2 + 1
   SCRAMBLED_PASSWORD_CHAR_LENGTH_323* = SCRAMBLE_LENGTH_323 * 2
   NOT_NULL_FLAG* = 1          #  Field can't be NULL
@@ -77,7 +77,7 @@ const
   UNSIGNED_FLAG* = 32         #  Field is unsigned
   ZEROFILL_FLAG* = 64         #  Field is zerofill
   BINARY_FLAG* = 128          #  Field is binary
-                              # The following are only sent to new clients  
+                              # The following are only sent to new clients
   ENUM_FLAG* = 256            # field is an enum
   AUTO_INCREMENT_FLAG* = 512  # field is a autoincrement field
   TIMESTAMP_FLAG* = 1024      # Field is a timestamp
@@ -96,7 +96,7 @@ const
   REFRESH_THREADS* = 32       # Flush thread cache
   REFRESH_SLAVE* = 64         # Reset master info and restart slave thread
   REFRESH_MASTER* = 128 # Remove all bin logs in the index and truncate the index
-                        # The following can't be set with mysql_refresh()  
+                        # The following can't be set with mysql_refresh()
   REFRESH_READ_LOCK* = 16384  # Lock tables for read
   REFRESH_FAST* = 32768       # Intern flag
   REFRESH_QUERY_CACHE* = 65536 # RESET (remove all queries) from query cache
@@ -129,9 +129,9 @@ const
   SERVER_QUERY_NO_GOOD_INDEX_USED* = 16
   SERVER_QUERY_NO_INDEX_USED* = 32 # The server was able to fulfill the clients request and opened a
                                    #      read-only non-scrollable cursor for a query. This flag comes
-                                   #      in reply to COM_STMT_EXECUTE and COM_STMT_FETCH commands. 
+                                   #      in reply to COM_STMT_EXECUTE and COM_STMT_FETCH commands.
   SERVER_STATUS_CURSOR_EXISTS* = 64 # This flag is sent when a read-only cursor is exhausted, in reply to
-                                    #      COM_STMT_FETCH command. 
+                                    #      COM_STMT_FETCH command.
   SERVER_STATUS_LAST_ROW_SENT* = 128
   SERVER_STATUS_DB_DROPPED* = 256 # A database was dropped
   SERVER_STATUS_NO_BACKSLASH_ESCAPES* = 512
@@ -141,7 +141,7 @@ const
   NET_WAIT_TIMEOUT* = 8 * 60 * 60 # Wait for new query
   ONLY_KILL_QUERY* = 1
 
-const 
+const
   MAX_TINYINT_WIDTH* = 3      # Max width for a TINY w.o. sign
   MAX_SMALLINT_WIDTH* = 5     # Max width for a SHORT w.o. sign
   MAX_MEDIUMINT_WIDTH* = 8    # Max width for a INT24 w.o. sign
@@ -150,9 +150,9 @@ const
   MAX_CHAR_WIDTH* = 255       # Max length for a CHAR column
   MAX_BLOB_WIDTH* = 8192      # Default width for blob
 
-type 
+type
   Pst_net* = ptr St_net
-  St_net*{.final.} = object 
+  St_net*{.final.} = object
     vio*: PVio
     buff*: cstring
     buff_end*: cstring
@@ -169,7 +169,7 @@ type
     fcntl*: cint
     compress*: my_bool #   The following variable is set if we are doing several queries in one
                        #        command ( as in LOAD TABLE ... FROM MASTER ),
-                       #        and do not want to confuse the client with OK at the wrong time 
+                       #        and do not want to confuse the client with OK at the wrong time
     remain_in_buf*: int
     len*: int
     buf_length*: int
@@ -182,7 +182,7 @@ type
     no_send_error*: my_bool # Set if OK packet is already sent, and
                             # we do not need to send error messages
                             #   Pointer to query object in query cache, do not equal NULL (0) for
-                            #        queries in cache that have not stored its results yet 
+                            #        queries in cache that have not stored its results yet
                             # $endif
     last_error*: array[0..(ERRMSG_SIZE) - 1, char]
     sqlstate*: array[0..(SQLSTATE_LENGTH + 1) - 1, char]
@@ -196,21 +196,21 @@ type
   PNET* = ptr NET
 {.deprecated: [Tst_net: St_net, TNET: NET].}
 
-const 
+const
   packet_error* = - 1
 
-type 
-  Enum_field_types* = enum    # For backward compatibility  
-    TYPE_DECIMAL, TYPE_TINY, TYPE_SHORT, TYPE_LONG, TYPE_FLOAT, TYPE_DOUBLE, 
-    TYPE_NULL, TYPE_TIMESTAMP, TYPE_LONGLONG, TYPE_INT24, TYPE_DATE, TYPE_TIME, 
-    TYPE_DATETIME, TYPE_YEAR, TYPE_NEWDATE, TYPE_VARCHAR, TYPE_BIT, 
-    TYPE_NEWDECIMAL = 246, TYPE_ENUM = 247, TYPE_SET = 248, 
-    TYPE_TINY_BLOB = 249, TYPE_MEDIUM_BLOB = 250, TYPE_LONG_BLOB = 251, 
-    TYPE_BLOB = 252, TYPE_VAR_STRING = 253, TYPE_STRING = 254, 
+type
+  Enum_field_types* = enum    # For backward compatibility
+    TYPE_DECIMAL, TYPE_TINY, TYPE_SHORT, TYPE_LONG, TYPE_FLOAT, TYPE_DOUBLE,
+    TYPE_NULL, TYPE_TIMESTAMP, TYPE_LONGLONG, TYPE_INT24, TYPE_DATE, TYPE_TIME,
+    TYPE_DATETIME, TYPE_YEAR, TYPE_NEWDATE, TYPE_VARCHAR, TYPE_BIT,
+    TYPE_NEWDECIMAL = 246, TYPE_ENUM = 247, TYPE_SET = 248,
+    TYPE_TINY_BLOB = 249, TYPE_MEDIUM_BLOB = 250, TYPE_LONG_BLOB = 251,
+    TYPE_BLOB = 252, TYPE_VAR_STRING = 253, TYPE_STRING = 254,
     TYPE_GEOMETRY = 255
 {.deprecated: [Tenum_field_types: Enum_field_types].}
 
-const 
+const
   CLIENT_MULTI_QUERIES* = CLIENT_MULTI_STATEMENTS
   FIELD_TYPE_DECIMAL* = TYPE_DECIMAL
   FIELD_TYPE_NEWDECIMAL* = TYPE_NEWDECIMAL
@@ -239,67 +239,67 @@ const
   FIELD_TYPE_CHAR* = TYPE_TINY
   FIELD_TYPE_INTERVAL* = TYPE_ENUM
   FIELD_TYPE_GEOMETRY* = TYPE_GEOMETRY
-  FIELD_TYPE_BIT* = TYPE_BIT  # Shutdown/kill enums and constants  
-                              # Bits for THD::killable.  
+  FIELD_TYPE_BIT* = TYPE_BIT  # Shutdown/kill enums and constants
+                              # Bits for THD::killable.
   SHUTDOWN_KILLABLE_CONNECT* = chr(1 shl 0)
   SHUTDOWN_KILLABLE_TRANS* = chr(1 shl 1)
   SHUTDOWN_KILLABLE_LOCK_TABLE* = chr(1 shl 2)
   SHUTDOWN_KILLABLE_UPDATE* = chr(1 shl 3)
 
-type 
-  Enum_shutdown_level* = enum 
-    SHUTDOWN_DEFAULT = 0, SHUTDOWN_WAIT_CONNECTIONS = 1, 
-    SHUTDOWN_WAIT_TRANSACTIONS = 2, SHUTDOWN_WAIT_UPDATES = 8, 
-    SHUTDOWN_WAIT_ALL_BUFFERS = 16, SHUTDOWN_WAIT_CRITICAL_BUFFERS = 17, 
+type
+  Enum_shutdown_level* = enum
+    SHUTDOWN_DEFAULT = 0, SHUTDOWN_WAIT_CONNECTIONS = 1,
+    SHUTDOWN_WAIT_TRANSACTIONS = 2, SHUTDOWN_WAIT_UPDATES = 8,
+    SHUTDOWN_WAIT_ALL_BUFFERS = 16, SHUTDOWN_WAIT_CRITICAL_BUFFERS = 17,
     KILL_QUERY = 254, KILL_CONNECTION = 255
-  Enum_cursor_type* = enum    # options for mysql_set_option  
-    CURSOR_TYPE_NO_CURSOR = 0, CURSOR_TYPE_READ_ONLY = 1, 
+  Enum_cursor_type* = enum    # options for mysql_set_option
+    CURSOR_TYPE_NO_CURSOR = 0, CURSOR_TYPE_READ_ONLY = 1,
     CURSOR_TYPE_FOR_UPDATE = 2, CURSOR_TYPE_SCROLLABLE = 4
-  Enum_mysql_set_option* = enum 
+  Enum_mysql_set_option* = enum
     OPTION_MULTI_STATEMENTS_ON, OPTION_MULTI_STATEMENTS_OFF
 {.deprecated: [Tenum_shutdown_level: Enum_shutdown_level,
               Tenum_cursor_type: Enum_cursor_type,
               Tenum_mysql_set_option: Enum_mysql_set_option].}
 
-proc my_net_init*(net: PNET, vio: PVio): my_bool{.cdecl, dynlib: lib, 
+proc my_net_init*(net: PNET, vio: PVio): my_bool{.cdecl, dynlib: lib,
     importc: "my_net_init".}
-proc my_net_local_init*(net: PNET){.cdecl, dynlib: lib, 
+proc my_net_local_init*(net: PNET){.cdecl, dynlib: lib,
                                     importc: "my_net_local_init".}
 proc net_end*(net: PNET){.cdecl, dynlib: lib, importc: "net_end".}
 proc net_clear*(net: PNET){.cdecl, dynlib: lib, importc: "net_clear".}
-proc net_realloc*(net: PNET, len: int): my_bool{.cdecl, dynlib: lib, 
+proc net_realloc*(net: PNET, len: int): my_bool{.cdecl, dynlib: lib,
     importc: "net_realloc".}
 proc net_flush*(net: PNET): my_bool{.cdecl, dynlib: lib, importc: "net_flush".}
-proc my_net_write*(net: PNET, packet: cstring, length: int): my_bool{.cdecl, 
+proc my_net_write*(net: PNET, packet: cstring, length: int): my_bool{.cdecl,
     dynlib: lib, importc: "my_net_write".}
-proc net_write_command*(net: PNET, command: char, header: cstring, 
+proc net_write_command*(net: PNET, command: char, header: cstring,
                         head_len: int, packet: cstring, length: int): my_bool{.
     cdecl, dynlib: lib, importc: "net_write_command".}
-proc net_real_write*(net: PNET, packet: cstring, length: int): cint{.cdecl, 
+proc net_real_write*(net: PNET, packet: cstring, length: int): cint{.cdecl,
     dynlib: lib, importc: "net_real_write".}
 proc my_net_read*(net: PNET): int{.cdecl, dynlib: lib, importc: "my_net_read".}
   # The following function is not meant for normal usage
-  #      Currently it's used internally by manager.c  
-type 
+  #      Currently it's used internally by manager.c
+type
   Psockaddr* = ptr Sockaddr
   Sockaddr*{.final.} = object  # undefined structure
 {.deprecated: [Tsockaddr: Sockaddr].}
 
 proc my_connect*(s: my_socket, name: Psockaddr, namelen: cuint, timeout: cuint): cint{.
     cdecl, dynlib: lib, importc: "my_connect".}
-type 
+type
   Prand_struct* = ptr Rand_struct
-  Rand_struct*{.final.} = object # The following is for user defined functions  
+  Rand_struct*{.final.} = object # The following is for user defined functions
     seed1*: int
     seed2*: int
     max_value*: int
     max_value_dbl*: cdouble
 
-  Item_result* = enum 
+  Item_result* = enum
     STRING_RESULT, REAL_RESULT, INT_RESULT, ROW_RESULT, DECIMAL_RESULT
   PItem_result* = ptr Item_result
   Pst_udf_args* = ptr St_udf_args
-  St_udf_args*{.final.} = object 
+  St_udf_args*{.final.} = object
     arg_count*: cuint         # Number of arguments
     arg_type*: PItem_result   # Pointer to item_results
     args*: cstringArray       # Pointer to item_results
@@ -307,82 +307,82 @@ type
     maybe_null*: cstring      # Length of string arguments
     attributes*: cstringArray # Pointer to attribute name
     attribute_lengths*: ptr int # Length of attribute arguments
-  
+
   UDF_ARGS* = St_udf_args
-  PUDF_ARGS* = ptr UDF_ARGS   # This holds information about the result  
+  PUDF_ARGS* = ptr UDF_ARGS   # This holds information about the result
   Pst_udf_init* = ptr St_udf_init
-  St_udf_init*{.final.} = object 
+  St_udf_init*{.final.} = object
     maybe_null*: my_bool      # 1 if function can return NULL
     decimals*: cuint          # for real functions
     max_length*: int          # For string functions
     theptr*: cstring          # free pointer for function data
     const_item*: my_bool      # free pointer for function data
-  
+
   UDF_INIT* = St_udf_init
-  PUDF_INIT* = ptr UDF_INIT   # Constants when using compression  
+  PUDF_INIT* = ptr UDF_INIT   # Constants when using compression
 {.deprecated: [Trand_stuct: Rand_struct, TItem_result: Item_result,
               Tst_udf_args: St_udf_args, TUDF_ARGS: UDF_ARGS,
               Tst_udf_init: St_udf_init, TUDF_INIT: UDF_INIT].}
 
-const 
+const
   NET_HEADER_SIZE* = 4        # standard header size
   COMP_HEADER_SIZE* = 3 # compression header extra size
-                        # Prototypes to password functions  
+                        # Prototypes to password functions
                         # These functions are used for authentication by client and server and
-                        #      implemented in sql/password.c     
+                        #      implemented in sql/password.c
 
-proc randominit*(para1: Prand_struct, seed1: int, seed2: int){.cdecl, 
+proc randominit*(para1: Prand_struct, seed1: int, seed2: int){.cdecl,
     dynlib: lib, importc: "randominit".}
-proc my_rnd*(para1: Prand_struct): cdouble{.cdecl, dynlib: lib, 
+proc my_rnd*(para1: Prand_struct): cdouble{.cdecl, dynlib: lib,
     importc: "my_rnd".}
 proc create_random_string*(fto: cstring, len: cuint, rand_st: Prand_struct){.
     cdecl, dynlib: lib, importc: "create_random_string".}
-proc hash_password*(fto: int, password: cstring, password_len: cuint){.cdecl, 
+proc hash_password*(fto: int, password: cstring, password_len: cuint){.cdecl,
     dynlib: lib, importc: "hash_password".}
-proc make_scrambled_password_323*(fto: cstring, password: cstring){.cdecl, 
+proc make_scrambled_password_323*(fto: cstring, password: cstring){.cdecl,
     dynlib: lib, importc: "make_scrambled_password_323".}
-proc scramble_323*(fto: cstring, message: cstring, password: cstring){.cdecl, 
+proc scramble_323*(fto: cstring, message: cstring, password: cstring){.cdecl,
     dynlib: lib, importc: "scramble_323".}
 proc check_scramble_323*(para1: cstring, message: cstring, salt: int): my_bool{.
     cdecl, dynlib: lib, importc: "check_scramble_323".}
-proc get_salt_from_password_323*(res: ptr int, password: cstring){.cdecl, 
+proc get_salt_from_password_323*(res: ptr int, password: cstring){.cdecl,
     dynlib: lib, importc: "get_salt_from_password_323".}
-proc make_password_from_salt_323*(fto: cstring, salt: ptr int){.cdecl, 
+proc make_password_from_salt_323*(fto: cstring, salt: ptr int){.cdecl,
     dynlib: lib, importc: "make_password_from_salt_323".}
-proc octet2hex*(fto: cstring, str: cstring, length: cuint): cstring{.cdecl, 
+proc octet2hex*(fto: cstring, str: cstring, length: cuint): cstring{.cdecl,
     dynlib: lib, importc: "octet2hex".}
-proc make_scrambled_password*(fto: cstring, password: cstring){.cdecl, 
+proc make_scrambled_password*(fto: cstring, password: cstring){.cdecl,
     dynlib: lib, importc: "make_scrambled_password".}
-proc scramble*(fto: cstring, message: cstring, password: cstring){.cdecl, 
+proc scramble*(fto: cstring, message: cstring, password: cstring){.cdecl,
     dynlib: lib, importc: "scramble".}
 proc check_scramble*(reply: cstring, message: cstring, hash_stage2: pointer): my_bool{.
     cdecl, dynlib: lib, importc: "check_scramble".}
-proc get_salt_from_password*(res: pointer, password: cstring){.cdecl, 
+proc get_salt_from_password*(res: pointer, password: cstring){.cdecl,
     dynlib: lib, importc: "get_salt_from_password".}
-proc make_password_from_salt*(fto: cstring, hash_stage2: pointer){.cdecl, 
+proc make_password_from_salt*(fto: cstring, hash_stage2: pointer){.cdecl,
     dynlib: lib, importc: "make_password_from_salt".}
-  # end of password.c  
-proc get_tty_password*(opt_message: cstring): cstring{.cdecl, dynlib: lib, 
+  # end of password.c
+proc get_tty_password*(opt_message: cstring): cstring{.cdecl, dynlib: lib,
     importc: "get_tty_password".}
-proc errno_to_sqlstate*(errno: cuint): cstring{.cdecl, dynlib: lib, 
+proc errno_to_sqlstate*(errno: cuint): cstring{.cdecl, dynlib: lib,
     importc: "mysql_errno_to_sqlstate".}
-  # Some other useful functions  
-proc modify_defaults_file*(file_location: cstring, option: cstring, 
-                           option_value: cstring, section_name: cstring, 
-                           remove_option: cint): cint{.cdecl, dynlib: lib, 
+  # Some other useful functions
+proc modify_defaults_file*(file_location: cstring, option: cstring,
+                           option_value: cstring, section_name: cstring,
+                           remove_option: cint): cint{.cdecl, dynlib: lib,
     importc: "load_defaults".}
-proc load_defaults*(conf_file: cstring, groups: cstringArray, argc: ptr cint, 
-                    argv: ptr cstringArray): cint{.cdecl, dynlib: lib, 
+proc load_defaults*(conf_file: cstring, groups: cstringArray, argc: ptr cint,
+                    argv: ptr cstringArray): cint{.cdecl, dynlib: lib,
     importc: "load_defaults".}
 proc my_init*(): my_bool{.cdecl, dynlib: lib, importc: "my_init".}
 proc my_thread_init*(): my_bool{.cdecl, dynlib: lib, importc: "my_thread_init".}
 proc my_thread_end*(){.cdecl, dynlib: lib, importc: "my_thread_end".}
-const 
+const
   NULL_LENGTH*: int = int(not (0)) # For net_store_length
 
-const 
+const
   STMT_HEADER* = 4
-  LONG_DATA_HEADER* = 6 #  ------------ Stop of declaration in "mysql_com.h"   -----------------------  
+  LONG_DATA_HEADER* = 6 #  ------------ Stop of declaration in "mysql_com.h"   -----------------------
                         # $include "mysql_time.h"
                         # $include "mysql_version.h"
                         # $include "typelib.h"
@@ -391,13 +391,13 @@ const
                         #         mysql_port : cuint;cvar;external;
                         #         mysql_unix_port : Pchar;cvar;external;
 
-const 
+const
   CLIENT_NET_READ_TIMEOUT* = 365 * 24 * 3600 # Timeout on read
   CLIENT_NET_WRITE_TIMEOUT* = 365 * 24 * 3600 # Timeout on write
 
-type 
+type
   Pst_mysql_field* = ptr St_mysql_field
-  St_mysql_field*{.final.} = object 
+  St_mysql_field*{.final.} = object
     name*: cstring            # Name of column
     org_name*: cstring        # Original column name, if an alias
     table*: cstring           # Table of column if column was a field
@@ -418,7 +418,7 @@ type
     decimals*: cuint          # Number of decimals in field
     charsetnr*: cuint         # Character set
     ftype*: Enum_field_types  # Type of field. See mysql_com.h for types
-  
+
   FIELD* = St_mysql_field
   PFIELD* = ptr FIELD
   PROW* = ptr ROW             # return data as array of strings
@@ -434,16 +434,16 @@ proc IS_BLOB*(n: int32): bool
 proc IS_NUM*(t: Enum_field_types): bool
 proc INTERNAL_NUM_FIELD*(f: Pst_mysql_field): bool
 proc IS_NUM_FIELD*(f: Pst_mysql_field): bool
-type 
+type
   my_ulonglong* = int64
   Pmy_ulonglong* = ptr my_ulonglong
 
-const 
+const
   COUNT_ERROR* = not (my_ulonglong(0))
 
-type 
+type
   Pst_mysql_rows* = ptr St_mysql_rows
-  St_mysql_rows*{.final.} = object 
+  St_mysql_rows*{.final.} = object
     next*: Pst_mysql_rows     # list of rows
     data*: ROW
     len*: int
@@ -451,25 +451,25 @@ type
   ROWS* = St_mysql_rows
   PROWS* = ptr ROWS
   PROW_OFFSET* = ptr ROW_OFFSET # offset to current row
-  ROW_OFFSET* = ROWS 
+  ROW_OFFSET* = ROWS
 {.deprecated: [Tst_mysql_rows: St_mysql_rows, TROWS: ROWS,
               TROW_OFFSET: ROW_OFFSET].}
-  
-const 
+
+const
   ALLOC_MAX_BLOCK_TO_DROP* = 4096
-  ALLOC_MAX_BLOCK_USAGE_BEFORE_DROP* = 10 # struct for once_alloc (block)  
+  ALLOC_MAX_BLOCK_USAGE_BEFORE_DROP* = 10 # struct for once_alloc (block)
 
-type 
+type
   Pst_used_mem* = ptr St_used_mem
-  St_used_mem*{.final.} = object 
+  St_used_mem*{.final.} = object
     next*: Pst_used_mem       # Next block in use
     left*: cuint              # memory left in block
     size*: cuint              # size of block
-  
+
   USED_MEM* = St_used_mem
   PUSED_MEM* = ptr USED_MEM
   Pst_mem_root* = ptr St_mem_root
-  St_mem_root*{.final.} = object 
+  St_mem_root*{.final.} = object
     free*: PUSED_MEM          # blocks with free memory in it
     used*: PUSED_MEM          # blocks almost without free memory
     pre_alloc*: PUSED_MEM     # preallocated block
@@ -477,18 +477,18 @@ type
     block_size*: cuint        # initial block size
     block_num*: cuint # allocated blocks counter
                       #    first free block in queue test counter (if it exceed
-                      #       MAX_BLOCK_USAGE_BEFORE_DROP block will be dropped in 'used' list)     
+                      #       MAX_BLOCK_USAGE_BEFORE_DROP block will be dropped in 'used' list)
     first_block_usage*: cuint
     error_handler*: proc (){.cdecl.}
 
   MEM_ROOT* = St_mem_root
-  PMEM_ROOT* = ptr MEM_ROOT   #  ------------ Stop of declaration in "my_alloc.h"    ----------------------  
+  PMEM_ROOT* = ptr MEM_ROOT   #  ------------ Stop of declaration in "my_alloc.h"    ----------------------
 {.deprecated: [Tst_used_mem: St_used_mem, TUSED_MEM: USED_MEM,
               Tst_mem_root: St_mem_root, TMEM_ROOT: MEM_ROOT].}
 
-type 
+type
   Pst_mysql_data* = ptr St_mysql_data
-  St_mysql_data*{.final.} = object 
+  St_mysql_data*{.final.} = object
     rows*: my_ulonglong
     fields*: cuint
     data*: PROWS
@@ -497,16 +497,16 @@ type
 
   DATA* = St_mysql_data
   PDATA* = ptr DATA
-  Option* = enum 
-    OPT_CONNECT_TIMEOUT, OPT_COMPRESS, OPT_NAMED_PIPE, INIT_COMMAND, 
-    READ_DEFAULT_FILE, READ_DEFAULT_GROUP, SET_CHARSET_DIR, SET_CHARSET_NAME, 
-    OPT_LOCAL_INFILE, OPT_PROTOCOL, SHARED_MEMORY_BASE_NAME, OPT_READ_TIMEOUT, 
-    OPT_WRITE_TIMEOUT, OPT_USE_RESULT, OPT_USE_REMOTE_CONNECTION, 
-    OPT_USE_EMBEDDED_CONNECTION, OPT_GUESS_CONNECTION, SET_CLIENT_IP, 
+  Option* = enum
+    OPT_CONNECT_TIMEOUT, OPT_COMPRESS, OPT_NAMED_PIPE, INIT_COMMAND,
+    READ_DEFAULT_FILE, READ_DEFAULT_GROUP, SET_CHARSET_DIR, SET_CHARSET_NAME,
+    OPT_LOCAL_INFILE, OPT_PROTOCOL, SHARED_MEMORY_BASE_NAME, OPT_READ_TIMEOUT,
+    OPT_WRITE_TIMEOUT, OPT_USE_RESULT, OPT_USE_REMOTE_CONNECTION,
+    OPT_USE_EMBEDDED_CONNECTION, OPT_GUESS_CONNECTION, SET_CLIENT_IP,
     SECURE_AUTH, REPORT_DATA_TRUNCATION, OPT_RECONNECT
 {.deprecated: [Tst_mysql_data: St_mysql_data, TDATA: DATA, Toption: Option].}
 
-const 
+const
   MAX_MYSQL_MANAGER_ERR* = 256
   MAX_MYSQL_MANAGER_MSG* = 256
   MANAGER_OK* = 200
@@ -515,8 +515,8 @@ const
   MANAGER_CLIENT_ERR* = 450
   MANAGER_INTERNAL_ERR* = 500
 
-type 
-  St_dynamic_array*{.final.} = object 
+type
+  St_dynamic_array*{.final.} = object
     buffer*: cstring
     elements*: cuint
     max_element*: cuint
@@ -526,7 +526,7 @@ type
   DYNAMIC_ARRAY* = St_dynamic_array
   Pst_dynamic_array* = ptr St_dynamic_array
   Pst_mysql_options* = ptr St_mysql_options
-  St_mysql_options*{.final.} = object 
+  St_mysql_options*{.final.} = object
     connect_timeout*: cuint
     read_timeout*: cuint
     write_timeout*: cuint
@@ -553,18 +553,18 @@ type
     use_ssl*: my_bool         # if to use SSL or not
     compress*: my_bool
     named_pipe*: my_bool #  On connect, find out the replication role of the server, and
-                         #       establish connections to all the peers  
+                         #       establish connections to all the peers
     rpl_probe*: my_bool #  Each call to mysql_real_query() will parse it to tell if it is a read
-                        #       or a write, and direct it to the slave or the master      
+                        #       or a write, and direct it to the slave or the master
     rpl_parse*: my_bool #  If set, never read from a master, only from slave, when doing
-                        #       a read that is replication-aware    
+                        #       a read that is replication-aware
     no_master_reads*: my_bool
     separate_thread*: my_bool
     methods_to_use*: Option
     client_ip*: cstring
     secure_auth*: my_bool     # Refuse client connecting to server if it uses old (pre-4.1.1) protocol
     report_data_truncation*: my_bool # 0 - never report, 1 - always report (default)
-                                     # function pointers for local infile support  
+                                     # function pointers for local infile support
     local_infile_init*: proc (para1: var pointer, para2: cstring, para3: pointer): cint{.
         cdecl.}
     local_infile_read*: proc (para1: pointer, para2: cstring, para3: cuint): cint
@@ -572,16 +572,16 @@ type
     local_infile_error*: proc (para1: pointer, para2: cstring, para3: cuint): cint
     local_infile_userdata*: pointer
 
-  Status* = enum 
+  Status* = enum
     STATUS_READY, STATUS_GET_RESULT, STATUS_USE_RESULT
   Protocol_type* = enum  # There are three types of queries - the ones that have to go to
                           # the master, the ones that go to a slave, and the administrative
-                          # type which must happen on the pivot connectioin 
-    PROTOCOL_DEFAULT, PROTOCOL_TCP, PROTOCOL_SOCKET, PROTOCOL_PIPE, 
+                          # type which must happen on the pivot connectioin
+    PROTOCOL_DEFAULT, PROTOCOL_TCP, PROTOCOL_SOCKET, PROTOCOL_PIPE,
     PROTOCOL_MEMORY
-  Rpl_type* = enum 
+  Rpl_type* = enum
     RPL_MASTER, RPL_SLAVE, RPL_ADMIN
-  Charset_info_st*{.final.} = object 
+  Charset_info_st*{.final.} = object
     number*: cuint
     primary_number*: cuint
     binary_number*: cuint
@@ -608,11 +608,11 @@ type
     escape_with_backslash_is_dangerous*: my_bool
     cset*: pointer            # was ^MY_CHARSET_HANDLER
     coll*: pointer            # was ^MY_COLLATION_HANDLER;
-  
+
   CHARSET_INFO* = Charset_info_st
   Pcharset_info_st* = ptr Charset_info_st
   Pcharacter_set* = ptr Character_set
-  Character_set*{.final.} = object 
+  Character_set*{.final.} = object
     number*: cuint
     state*: cuint
     csname*: cstring
@@ -626,7 +626,7 @@ type
   PMY_CHARSET_INFO* = ptr MY_CHARSET_INFO
   Pst_mysql_methods* = ptr St_mysql_methods
   Pst_mysql* = ptr St_mysql
-  St_mysql*{.final.} = object 
+  St_mysql*{.final.} = object
     net*: NET                 # Communication parameters
     connector_fd*: gptr       # ConnectorFd for SSL
     host*: cstring
@@ -659,9 +659,9 @@ type
     reconnect*: my_bool       # set to 1 if automatic reconnect
     scramble*: array[0..(SCRAMBLE_LENGTH + 1) - 1, char] # session-wide random string
                                                          #  Set if this is the original connection, not a master or a slave we have
-                                                         #       added though mysql_rpl_probe() or mysql_set_master()/ mysql_add_slave()      
+                                                         #       added though mysql_rpl_probe() or mysql_set_master()/ mysql_add_slave()
     rpl_pivot*: my_bool #   Pointers to the master, and the next slave connections, points to
-                        #        itself if lone connection.       
+                        #        itself if lone connection.
     master*: Pst_mysql
     next_slave*: Pst_mysql
     last_used_slave*: Pst_mysql # needed for round-robin slave pick
@@ -669,13 +669,13 @@ type
     stmts*: pointer           # was PList, list of all statements
     methods*: Pst_mysql_methods
     thd*: pointer #   Points to boolean flag in MYSQL_RES  or MYSQL_STMT. We set this flag
-                  #        from mysql_stmt_close if close had to cancel result set of this object.       
+                  #        from mysql_stmt_close if close had to cancel result set of this object.
     unbuffered_fetch_owner*: Pmy_bool
 
   MySQL* = St_mysql
   PMySQL* = ptr MySQL
   Pst_mysql_res* = ptr St_mysql_res
-  St_mysql_res*{.final.} = object 
+  St_mysql_res*{.final.} = object
     row_count*: my_ulonglong
     fields*: PFIELD
     data*: PDATA
@@ -695,10 +695,10 @@ type
   PRES* = ptr RES
   Pst_mysql_stmt* = ptr St_mysql_stmt
   PSTMT* = ptr STMT
-  St_mysql_methods*{.final.} = object 
+  St_mysql_methods*{.final.} = object
     read_query_result*: proc (MySQL:  PMySQL): my_bool{.cdecl.}
-    advanced_command*: proc (MySQL: PMySQL, command: Enum_server_command, header: cstring, 
-                             header_length: int, arg: cstring, arg_length: int, 
+    advanced_command*: proc (MySQL: PMySQL, command: Enum_server_command, header: cstring,
+                             header_length: int, arg: cstring, arg_length: int,
                              skip_check: my_bool): my_bool
     read_rows*: proc (MySQL: PMySQL, fields: PFIELD, fields_count: cuint): PDATA
     use_result*: proc (MySQL: PMySQL): PRES
@@ -718,7 +718,7 @@ type
   METHODS* = St_mysql_methods
   PMETHODS* = ptr METHODS
   Pst_mysql_manager* = ptr St_mysql_manager
-  St_mysql_manager*{.final.} = object 
+  St_mysql_manager*{.final.} = object
     net*: NET
     host*: cstring
     user*: cstring
@@ -737,23 +737,23 @@ type
   MANAGER* = St_mysql_manager
   PMANAGER* = ptr MANAGER
   Pst_mysql_parameters* = ptr St_mysql_parameters
-  St_mysql_parameters*{.final.} = object 
+  St_mysql_parameters*{.final.} = object
     p_max_allowed_packet*: ptr int
     p_net_buffer_length*: ptr int
 
   PARAMETERS* = St_mysql_parameters
   PPARAMETERS* = ptr PARAMETERS
-  Enum_mysql_stmt_state* = enum 
+  Enum_mysql_stmt_state* = enum
     STMT_INIT_DONE = 1, STMT_PREPARE_DONE, STMT_EXECUTE_DONE, STMT_FETCH_DONE
   Pst_mysql_bind* = ptr St_mysql_bind
-  St_mysql_bind*{.final.} = object 
+  St_mysql_bind*{.final.} = object
     len*: int                 # output length pointer
     is_null*: Pmy_bool        # Pointer to null indicator
     buffer*: pointer          # buffer to get/put data
     error*: PMy_bool          # set this if you want to track data truncations happened during fetch
     buffer_type*: Enum_field_types # buffer type
     buffer_length*: int       # buffer length, must be set for str/binary
-                              # Following are for internal use. Set by mysql_stmt_bind_param  
+                              # Following are for internal use. Set by mysql_stmt_bind_param
     row_ptr*: ptr byte        # for the current data position
     offset*: int              # offset position for char/binary fetch
     length_value*: int        #  Used if length is 0
@@ -768,8 +768,8 @@ type
     skip_result*: proc (para1: Pst_mysql_bind, para2: PFIELD, row: PPbyte)
 
   BIND* = St_mysql_bind
-  PBIND* = ptr BIND           # statement handler  
-  St_mysql_stmt*{.final.} = object 
+  PBIND* = ptr BIND           # statement handler
+  St_mysql_stmt*{.final.} = object
     mem_root*: MEM_ROOT       # root allocations
     mysql*: PMySQL                      # connection handle
     params*: PBIND            # input parameters
@@ -797,9 +797,9 @@ type
     unbuffered_fetch_cancelled*: my_bool
     update_max_length*: my_bool
 
-  STMT* = St_mysql_stmt 
-         
-  Enum_stmt_attr_type* = enum 
+  STMT* = St_mysql_stmt
+
+  Enum_stmt_attr_type* = enum
     STMT_ATTR_UPDATE_MAX_LENGTH, STMT_ATTR_CURSOR_TYPE, STMT_ATTR_PREFETCH_ROWS
 {.deprecated: [Tst_dynamic_array: St_dynamic_array, Tst_mysql_options: St_mysql_options,
               TDYNAMIC_ARRAY: DYNAMIC_ARRAY, Tprotocol_type: Protocol_type,
@@ -824,283 +824,283 @@ proc server_end*(){.cdecl, dynlib: lib, importc: "mysql_server_end".}
   #      mysql_server_end() to free memory). The names are a bit misleading
   #      (mysql_SERVER* to be used when using libmysqlCLIENT). So we add more general
   #      names which suit well whether you're using libmysqld or libmysqlclient. We
-  #      intend to promote these aliases over the mysql_server* ones.     
+  #      intend to promote these aliases over the mysql_server* ones.
 proc library_init*(argc: cint, argv: cstringArray, groups: cstringArray): cint{.
     cdecl, dynlib: lib, importc: "mysql_server_init".}
 proc library_end*(){.cdecl, dynlib: lib, importc: "mysql_server_end".}
-proc get_parameters*(): PPARAMETERS{.stdcall, dynlib: lib, 
+proc get_parameters*(): PPARAMETERS{.stdcall, dynlib: lib,
                                      importc: "mysql_get_parameters".}
   # Set up and bring down a thread; these function should be called
   #      for each thread in an application which opens at least one MySQL
   #      connection.  All uses of the connection(s) should be between these
-  #      function calls.     
+  #      function calls.
 proc thread_init*(): my_bool{.stdcall, dynlib: lib, importc: "mysql_thread_init".}
 proc thread_end*(){.stdcall, dynlib: lib, importc: "mysql_thread_end".}
   # Functions to get information from the MYSQL and MYSQL_RES structures
-  #      Should definitely be used if one uses shared libraries.     
-proc num_rows*(res: PRES): my_ulonglong{.stdcall, dynlib: lib, 
+  #      Should definitely be used if one uses shared libraries.
+proc num_rows*(res: PRES): my_ulonglong{.stdcall, dynlib: lib,
     importc: "mysql_num_rows".}
-proc num_fields*(res: PRES): cuint{.stdcall, dynlib: lib, 
+proc num_fields*(res: PRES): cuint{.stdcall, dynlib: lib,
                                     importc: "mysql_num_fields".}
 proc eof*(res: PRES): my_bool{.stdcall, dynlib: lib, importc: "mysql_eof".}
-proc fetch_field_direct*(res: PRES, fieldnr: cuint): PFIELD{.stdcall, 
+proc fetch_field_direct*(res: PRES, fieldnr: cuint): PFIELD{.stdcall,
     dynlib: lib, importc: "mysql_fetch_field_direct".}
-proc fetch_fields*(res: PRES): PFIELD{.stdcall, dynlib: lib, 
+proc fetch_fields*(res: PRES): PFIELD{.stdcall, dynlib: lib,
                                        importc: "mysql_fetch_fields".}
-proc row_tell*(res: PRES): ROW_OFFSET{.stdcall, dynlib: lib, 
+proc row_tell*(res: PRES): ROW_OFFSET{.stdcall, dynlib: lib,
                                        importc: "mysql_row_tell".}
-proc field_tell*(res: PRES): FIELD_OFFSET{.stdcall, dynlib: lib, 
+proc field_tell*(res: PRES): FIELD_OFFSET{.stdcall, dynlib: lib,
     importc: "mysql_field_tell".}
-proc field_count*(MySQL: PMySQL): cuint{.stdcall, dynlib: lib, 
+proc field_count*(MySQL: PMySQL): cuint{.stdcall, dynlib: lib,
                                importc: "mysql_field_count".}
-proc affected_rows*(MySQL: PMySQL): my_ulonglong{.stdcall, dynlib: lib, 
+proc affected_rows*(MySQL: PMySQL): my_ulonglong{.stdcall, dynlib: lib,
                                         importc: "mysql_affected_rows".}
-proc insert_id*(MySQL: PMySQL): my_ulonglong{.stdcall, dynlib: lib, 
+proc insert_id*(MySQL: PMySQL): my_ulonglong{.stdcall, dynlib: lib,
                                     importc: "mysql_insert_id".}
 proc errno*(MySQL: PMySQL): cuint{.stdcall, dynlib: lib, importc: "mysql_errno".}
 proc error*(MySQL: PMySQL): cstring{.stdcall, dynlib: lib, importc: "mysql_error".}
 proc sqlstate*(MySQL: PMySQL): cstring{.stdcall, dynlib: lib, importc: "mysql_sqlstate".}
-proc warning_count*(MySQL: PMySQL): cuint{.stdcall, dynlib: lib, 
+proc warning_count*(MySQL: PMySQL): cuint{.stdcall, dynlib: lib,
                                  importc: "mysql_warning_count".}
 proc info*(MySQL: PMySQL): cstring{.stdcall, dynlib: lib, importc: "mysql_info".}
 proc thread_id*(MySQL: PMySQL): int{.stdcall, dynlib: lib, importc: "mysql_thread_id".}
-proc character_set_name*(MySQL: PMySQL): cstring{.stdcall, dynlib: lib, 
+proc character_set_name*(MySQL: PMySQL): cstring{.stdcall, dynlib: lib,
                                         importc: "mysql_character_set_name".}
-proc set_character_set*(MySQL: PMySQL, csname: cstring): int32{.stdcall, dynlib: lib, 
+proc set_character_set*(MySQL: PMySQL, csname: cstring): int32{.stdcall, dynlib: lib,
     importc: "mysql_set_character_set".}
 proc init*(MySQL: PMySQL): PMySQL{.stdcall, dynlib: lib, importc: "mysql_init".}
-proc ssl_set*(MySQL: PMySQL, key: cstring, cert: cstring, ca: cstring, capath: cstring, 
-              cipher: cstring): my_bool{.stdcall, dynlib: lib, 
+proc ssl_set*(MySQL: PMySQL, key: cstring, cert: cstring, ca: cstring, capath: cstring,
+              cipher: cstring): my_bool{.stdcall, dynlib: lib,
     importc: "mysql_ssl_set".}
 proc change_user*(MySQL: PMySQL, user: cstring, passwd: cstring, db: cstring): my_bool{.
     stdcall, dynlib: lib, importc: "mysql_change_user".}
-proc real_connect*(MySQL: PMySQL, host: cstring, user: cstring, passwd: cstring, 
-                   db: cstring, port: cuint, unix_socket: cstring, 
-                   clientflag: int): PMySQL{.stdcall, dynlib: lib, 
+proc real_connect*(MySQL: PMySQL, host: cstring, user: cstring, passwd: cstring,
+                   db: cstring, port: cuint, unix_socket: cstring,
+                   clientflag: int): PMySQL{.stdcall, dynlib: lib,
                                         importc: "mysql_real_connect".}
-proc select_db*(MySQL: PMySQL, db: cstring): cint{.stdcall, dynlib: lib, 
+proc select_db*(MySQL: PMySQL, db: cstring): cint{.stdcall, dynlib: lib,
     importc: "mysql_select_db".}
 proc query*(MySQL: PMySQL, q: cstring): cint{.stdcall, dynlib: lib, importc: "mysql_query".}
-proc send_query*(MySQL: PMySQL, q: cstring, len: int): cint{.stdcall, dynlib: lib, 
+proc send_query*(MySQL: PMySQL, q: cstring, len: int): cint{.stdcall, dynlib: lib,
     importc: "mysql_send_query".}
-proc real_query*(MySQL: PMySQL, q: cstring, len: int): cint{.stdcall, dynlib: lib, 
+proc real_query*(MySQL: PMySQL, q: cstring, len: int): cint{.stdcall, dynlib: lib,
     importc: "mysql_real_query".}
-proc store_result*(MySQL: PMySQL): PRES{.stdcall, dynlib: lib, 
+proc store_result*(MySQL: PMySQL): PRES{.stdcall, dynlib: lib,
                                importc: "mysql_store_result".}
 proc use_result*(MySQL: PMySQL): PRES{.stdcall, dynlib: lib, importc: "mysql_use_result".}
-  # perform query on master  
-proc master_query*(MySQL: PMySQL, q: cstring, len: int): my_bool{.stdcall, dynlib: lib, 
+  # perform query on master
+proc master_query*(MySQL: PMySQL, q: cstring, len: int): my_bool{.stdcall, dynlib: lib,
     importc: "mysql_master_query".}
-proc master_send_query*(MySQL: PMySQL, q: cstring, len: int): my_bool{.stdcall, 
+proc master_send_query*(MySQL: PMySQL, q: cstring, len: int): my_bool{.stdcall,
     dynlib: lib, importc: "mysql_master_send_query".}
-  # perform query on slave  
-proc slave_query*(MySQL: PMySQL, q: cstring, len: int): my_bool{.stdcall, dynlib: lib, 
+  # perform query on slave
+proc slave_query*(MySQL: PMySQL, q: cstring, len: int): my_bool{.stdcall, dynlib: lib,
     importc: "mysql_slave_query".}
-proc slave_send_query*(MySQL: PMySQL, q: cstring, len: int): my_bool{.stdcall, 
+proc slave_send_query*(MySQL: PMySQL, q: cstring, len: int): my_bool{.stdcall,
     dynlib: lib, importc: "mysql_slave_send_query".}
-proc get_character_set_info*(MySQL: PMySQL, charset: PMY_CHARSET_INFO){.stdcall, 
+proc get_character_set_info*(MySQL: PMySQL, charset: PMY_CHARSET_INFO){.stdcall,
     dynlib: lib, importc: "mysql_get_character_set_info".}
-  # local infile support  
-const 
+  # local infile support
+const
   LOCAL_INFILE_ERROR_LEN* = 512
 
 # procedure mysql_set_local_infile_handler(mysql:PMYSQL; local_infile_init:function (para1:Ppointer; para2:Pchar; para3:pointer):longint; local_infile_read:function (para1:pointer; para2:Pchar; para3:dword):longint; local_infile_end:procedure (_pa
 # para6:pointer);cdecl;external mysqllib name 'mysql_set_local_infile_handler';
 
-proc set_local_infile_default*(MySQL: PMySQL){.cdecl, dynlib: lib, 
+proc set_local_infile_default*(MySQL: PMySQL){.cdecl, dynlib: lib,
                                      importc: "mysql_set_local_infile_default".}
   # enable/disable parsing of all queries to decide if they go on master or
-  #      slave     
-proc enable_rpl_parse*(MySQL: PMySQL){.stdcall, dynlib: lib, 
+  #      slave
+proc enable_rpl_parse*(MySQL: PMySQL){.stdcall, dynlib: lib,
                              importc: "mysql_enable_rpl_parse".}
-proc disable_rpl_parse*(MySQL: PMySQL){.stdcall, dynlib: lib, 
+proc disable_rpl_parse*(MySQL: PMySQL){.stdcall, dynlib: lib,
                               importc: "mysql_disable_rpl_parse".}
-  # get the value of the parse flag  
-proc rpl_parse_enabled*(MySQL: PMySQL): cint{.stdcall, dynlib: lib, 
+  # get the value of the parse flag
+proc rpl_parse_enabled*(MySQL: PMySQL): cint{.stdcall, dynlib: lib,
                                     importc: "mysql_rpl_parse_enabled".}
-  #  enable/disable reads from master  
-proc enable_reads_from_master*(MySQL: PMySQL){.stdcall, dynlib: lib, 
+  #  enable/disable reads from master
+proc enable_reads_from_master*(MySQL: PMySQL){.stdcall, dynlib: lib,
                                      importc: "mysql_enable_reads_from_master".}
 proc disable_reads_from_master*(MySQL: PMySQL){.stdcall, dynlib: lib, importc: "mysql_disable_reads_from_master".}
-  # get the value of the master read flag  
-proc reads_from_master_enabled*(MySQL: PMySQL): my_bool{.stdcall, dynlib: lib, 
+  # get the value of the master read flag
+proc reads_from_master_enabled*(MySQL: PMySQL): my_bool{.stdcall, dynlib: lib,
     importc: "mysql_reads_from_master_enabled".}
-proc rpl_query_type*(q: cstring, length: cint): Rpl_type{.stdcall, dynlib: lib, 
+proc rpl_query_type*(q: cstring, length: cint): Rpl_type{.stdcall, dynlib: lib,
     importc: "mysql_rpl_query_type".}
-  # discover the master and its slaves  
+  # discover the master and its slaves
 proc rpl_probe*(MySQL: PMySQL): my_bool{.stdcall, dynlib: lib, importc: "mysql_rpl_probe".}
-  # set the master, close/free the old one, if it is not a pivot  
+  # set the master, close/free the old one, if it is not a pivot
 proc set_master*(MySQL: PMySQL, host: cstring, port: cuint, user: cstring, passwd: cstring): cint{.
     stdcall, dynlib: lib, importc: "mysql_set_master".}
 proc add_slave*(MySQL: PMySQL, host: cstring, port: cuint, user: cstring, passwd: cstring): cint{.
     stdcall, dynlib: lib, importc: "mysql_add_slave".}
-proc shutdown*(MySQL: PMySQL, shutdown_level: Enum_shutdown_level): cint{.stdcall, 
+proc shutdown*(MySQL: PMySQL, shutdown_level: Enum_shutdown_level): cint{.stdcall,
     dynlib: lib, importc: "mysql_shutdown".}
-proc dump_debug_info*(MySQL: PMySQL): cint{.stdcall, dynlib: lib, 
+proc dump_debug_info*(MySQL: PMySQL): cint{.stdcall, dynlib: lib,
                                   importc: "mysql_dump_debug_info".}
-proc refresh*(sql: PMySQL, refresh_options: cuint): cint{.stdcall, dynlib: lib, 
+proc refresh*(sql: PMySQL, refresh_options: cuint): cint{.stdcall, dynlib: lib,
     importc: "mysql_refresh".}
 proc kill*(MySQL: PMySQL, pid: int): cint{.stdcall, dynlib: lib, importc: "mysql_kill".}
-proc set_server_option*(MySQL: PMySQL, option: Enum_mysql_set_option): cint{.stdcall, 
+proc set_server_option*(MySQL: PMySQL, option: Enum_mysql_set_option): cint{.stdcall,
     dynlib: lib, importc: "mysql_set_server_option".}
 proc ping*(MySQL: PMySQL): cint{.stdcall, dynlib: lib, importc: "mysql_ping".}
 proc stat*(MySQL: PMySQL): cstring{.stdcall, dynlib: lib, importc: "mysql_stat".}
-proc get_server_info*(MySQL: PMySQL): cstring{.stdcall, dynlib: lib, 
+proc get_server_info*(MySQL: PMySQL): cstring{.stdcall, dynlib: lib,
                                      importc: "mysql_get_server_info".}
-proc get_client_info*(): cstring{.stdcall, dynlib: lib, 
+proc get_client_info*(): cstring{.stdcall, dynlib: lib,
                                   importc: "mysql_get_client_info".}
-proc get_client_version*(): int{.stdcall, dynlib: lib, 
+proc get_client_version*(): int{.stdcall, dynlib: lib,
                                  importc: "mysql_get_client_version".}
-proc get_host_info*(MySQL: PMySQL): cstring{.stdcall, dynlib: lib, 
+proc get_host_info*(MySQL: PMySQL): cstring{.stdcall, dynlib: lib,
                                    importc: "mysql_get_host_info".}
-proc get_server_version*(MySQL: PMySQL): int{.stdcall, dynlib: lib, 
+proc get_server_version*(MySQL: PMySQL): int{.stdcall, dynlib: lib,
                                     importc: "mysql_get_server_version".}
-proc get_proto_info*(MySQL: PMySQL): cuint{.stdcall, dynlib: lib, 
+proc get_proto_info*(MySQL: PMySQL): cuint{.stdcall, dynlib: lib,
                                   importc: "mysql_get_proto_info".}
-proc list_dbs*(MySQL: PMySQL, wild: cstring): PRES{.stdcall, dynlib: lib, 
+proc list_dbs*(MySQL: PMySQL, wild: cstring): PRES{.stdcall, dynlib: lib,
     importc: "mysql_list_dbs".}
-proc list_tables*(MySQL: PMySQL, wild: cstring): PRES{.stdcall, dynlib: lib, 
+proc list_tables*(MySQL: PMySQL, wild: cstring): PRES{.stdcall, dynlib: lib,
     importc: "mysql_list_tables".}
-proc list_processes*(MySQL: PMySQL): PRES{.stdcall, dynlib: lib, 
+proc list_processes*(MySQL: PMySQL): PRES{.stdcall, dynlib: lib,
                                  importc: "mysql_list_processes".}
-proc options*(MySQL: PMySQL, option: Option, arg: cstring): cint{.stdcall, dynlib: lib, 
+proc options*(MySQL: PMySQL, option: Option, arg: cstring): cint{.stdcall, dynlib: lib,
     importc: "mysql_options".}
-proc free_result*(result: PRES){.stdcall, dynlib: lib, 
+proc free_result*(result: PRES){.stdcall, dynlib: lib,
                                  importc: "mysql_free_result".}
-proc data_seek*(result: PRES, offset: my_ulonglong){.stdcall, dynlib: lib, 
+proc data_seek*(result: PRES, offset: my_ulonglong){.stdcall, dynlib: lib,
     importc: "mysql_data_seek".}
-proc row_seek*(result: PRES, offset: ROW_OFFSET): ROW_OFFSET{.stdcall, 
+proc row_seek*(result: PRES, offset: ROW_OFFSET): ROW_OFFSET{.stdcall,
     dynlib: lib, importc: "mysql_row_seek".}
-proc field_seek*(result: PRES, offset: FIELD_OFFSET): FIELD_OFFSET{.stdcall, 
+proc field_seek*(result: PRES, offset: FIELD_OFFSET): FIELD_OFFSET{.stdcall,
     dynlib: lib, importc: "mysql_field_seek".}
-proc fetch_row*(result: PRES): ROW{.stdcall, dynlib: lib, 
+proc fetch_row*(result: PRES): ROW{.stdcall, dynlib: lib,
                                     importc: "mysql_fetch_row".}
-proc fetch_lengths*(result: PRES): ptr int{.stdcall, dynlib: lib, 
+proc fetch_lengths*(result: PRES): ptr int{.stdcall, dynlib: lib,
     importc: "mysql_fetch_lengths".}
-proc fetch_field*(result: PRES): PFIELD{.stdcall, dynlib: lib, 
+proc fetch_field*(result: PRES): PFIELD{.stdcall, dynlib: lib,
     importc: "mysql_fetch_field".}
-proc list_fields*(MySQL: PMySQL, table: cstring, wild: cstring): PRES{.stdcall, 
+proc list_fields*(MySQL: PMySQL, table: cstring, wild: cstring): PRES{.stdcall,
     dynlib: lib, importc: "mysql_list_fields".}
 proc escape_string*(fto: cstring, `from`: cstring, from_length: int): int{.
     stdcall, dynlib: lib, importc: "mysql_escape_string".}
-proc hex_string*(fto: cstring, `from`: cstring, from_length: int): int{.stdcall, 
+proc hex_string*(fto: cstring, `from`: cstring, from_length: int): int{.stdcall,
     dynlib: lib, importc: "mysql_hex_string".}
 proc real_escape_string*(MySQL: PMySQL, fto: cstring, `from`: cstring, len: int): int{.
     stdcall, dynlib: lib, importc: "mysql_real_escape_string".}
 proc debug*(debug: cstring){.stdcall, dynlib: lib, importc: "mysql_debug".}
   #    function mysql_odbc_escape_string(mysql:PMYSQL; fto:Pchar; to_length:dword; from:Pchar; from_length:dword;
   #               param:pointer; extend_buffer:function (para1:pointer; to:Pchar; length:Pdword):Pchar):Pchar;stdcall;external mysqllib name 'mysql_odbc_escape_string';
-proc myodbc_remove_escape*(MySQL: PMySQL, name: cstring){.stdcall, dynlib: lib, 
+proc myodbc_remove_escape*(MySQL: PMySQL, name: cstring){.stdcall, dynlib: lib,
     importc: "myodbc_remove_escape".}
 proc thread_safe*(): cuint{.stdcall, dynlib: lib, importc: "mysql_thread_safe".}
 proc embedded*(): my_bool{.stdcall, dynlib: lib, importc: "mysql_embedded".}
-proc manager_init*(con: PMANAGER): PMANAGER{.stdcall, dynlib: lib, 
+proc manager_init*(con: PMANAGER): PMANAGER{.stdcall, dynlib: lib,
     importc: "mysql_manager_init".}
-proc manager_connect*(con: PMANAGER, host: cstring, user: cstring, 
-                      passwd: cstring, port: cuint): PMANAGER{.stdcall, 
+proc manager_connect*(con: PMANAGER, host: cstring, user: cstring,
+                      passwd: cstring, port: cuint): PMANAGER{.stdcall,
     dynlib: lib, importc: "mysql_manager_connect".}
-proc manager_close*(con: PMANAGER){.stdcall, dynlib: lib, 
+proc manager_close*(con: PMANAGER){.stdcall, dynlib: lib,
                                     importc: "mysql_manager_close".}
 proc manager_command*(con: PMANAGER, cmd: cstring, cmd_len: cint): cint{.
     stdcall, dynlib: lib, importc: "mysql_manager_command".}
 proc manager_fetch_line*(con: PMANAGER, res_buf: cstring, res_buf_size: cint): cint{.
     stdcall, dynlib: lib, importc: "mysql_manager_fetch_line".}
-proc read_query_result*(MySQL: PMySQL): my_bool{.stdcall, dynlib: lib, 
+proc read_query_result*(MySQL: PMySQL): my_bool{.stdcall, dynlib: lib,
                                        importc: "mysql_read_query_result".}
 proc stmt_init*(MySQL: PMySQL): PSTMT{.stdcall, dynlib: lib, importc: "mysql_stmt_init".}
-proc stmt_prepare*(stmt: PSTMT, query: cstring, len: int): cint{.stdcall, 
+proc stmt_prepare*(stmt: PSTMT, query: cstring, len: int): cint{.stdcall,
     dynlib: lib, importc: "mysql_stmt_prepare".}
-proc stmt_execute*(stmt: PSTMT): cint{.stdcall, dynlib: lib, 
+proc stmt_execute*(stmt: PSTMT): cint{.stdcall, dynlib: lib,
                                        importc: "mysql_stmt_execute".}
-proc stmt_fetch*(stmt: PSTMT): cint{.stdcall, dynlib: lib, 
+proc stmt_fetch*(stmt: PSTMT): cint{.stdcall, dynlib: lib,
                                      importc: "mysql_stmt_fetch".}
 proc stmt_fetch_column*(stmt: PSTMT, `bind`: PBIND, column: cuint, offset: int): cint{.
     stdcall, dynlib: lib, importc: "mysql_stmt_fetch_column".}
-proc stmt_store_result*(stmt: PSTMT): cint{.stdcall, dynlib: lib, 
+proc stmt_store_result*(stmt: PSTMT): cint{.stdcall, dynlib: lib,
     importc: "mysql_stmt_store_result".}
-proc stmt_param_count*(stmt: PSTMT): int{.stdcall, dynlib: lib, 
+proc stmt_param_count*(stmt: PSTMT): int{.stdcall, dynlib: lib,
     importc: "mysql_stmt_param_count".}
 proc stmt_attr_set*(stmt: PSTMT, attr_type: Enum_stmt_attr_type, attr: pointer): my_bool{.
     stdcall, dynlib: lib, importc: "mysql_stmt_attr_set".}
 proc stmt_attr_get*(stmt: PSTMT, attr_type: Enum_stmt_attr_type, attr: pointer): my_bool{.
     stdcall, dynlib: lib, importc: "mysql_stmt_attr_get".}
-proc stmt_bind_param*(stmt: PSTMT, bnd: PBIND): my_bool{.stdcall, dynlib: lib, 
+proc stmt_bind_param*(stmt: PSTMT, bnd: PBIND): my_bool{.stdcall, dynlib: lib,
     importc: "mysql_stmt_bind_param".}
-proc stmt_bind_result*(stmt: PSTMT, bnd: PBIND): my_bool{.stdcall, dynlib: lib, 
+proc stmt_bind_result*(stmt: PSTMT, bnd: PBIND): my_bool{.stdcall, dynlib: lib,
     importc: "mysql_stmt_bind_result".}
-proc stmt_close*(stmt: PSTMT): my_bool{.stdcall, dynlib: lib, 
+proc stmt_close*(stmt: PSTMT): my_bool{.stdcall, dynlib: lib,
                                         importc: "mysql_stmt_close".}
-proc stmt_reset*(stmt: PSTMT): my_bool{.stdcall, dynlib: lib, 
+proc stmt_reset*(stmt: PSTMT): my_bool{.stdcall, dynlib: lib,
                                         importc: "mysql_stmt_reset".}
-proc stmt_free_result*(stmt: PSTMT): my_bool{.stdcall, dynlib: lib, 
+proc stmt_free_result*(stmt: PSTMT): my_bool{.stdcall, dynlib: lib,
     importc: "mysql_stmt_free_result".}
-proc stmt_send_long_data*(stmt: PSTMT, param_number: cuint, data: cstring, 
-                          len: int): my_bool{.stdcall, dynlib: lib, 
+proc stmt_send_long_data*(stmt: PSTMT, param_number: cuint, data: cstring,
+                          len: int): my_bool{.stdcall, dynlib: lib,
     importc: "mysql_stmt_send_long_data".}
-proc stmt_result_metadata*(stmt: PSTMT): PRES{.stdcall, dynlib: lib, 
+proc stmt_result_metadata*(stmt: PSTMT): PRES{.stdcall, dynlib: lib,
     importc: "mysql_stmt_result_metadata".}
-proc stmt_param_metadata*(stmt: PSTMT): PRES{.stdcall, dynlib: lib, 
+proc stmt_param_metadata*(stmt: PSTMT): PRES{.stdcall, dynlib: lib,
     importc: "mysql_stmt_param_metadata".}
-proc stmt_errno*(stmt: PSTMT): cuint{.stdcall, dynlib: lib, 
+proc stmt_errno*(stmt: PSTMT): cuint{.stdcall, dynlib: lib,
                                       importc: "mysql_stmt_errno".}
-proc stmt_error*(stmt: PSTMT): cstring{.stdcall, dynlib: lib, 
+proc stmt_error*(stmt: PSTMT): cstring{.stdcall, dynlib: lib,
                                         importc: "mysql_stmt_error".}
-proc stmt_sqlstate*(stmt: PSTMT): cstring{.stdcall, dynlib: lib, 
+proc stmt_sqlstate*(stmt: PSTMT): cstring{.stdcall, dynlib: lib,
     importc: "mysql_stmt_sqlstate".}
-proc stmt_row_seek*(stmt: PSTMT, offset: ROW_OFFSET): ROW_OFFSET{.stdcall, 
+proc stmt_row_seek*(stmt: PSTMT, offset: ROW_OFFSET): ROW_OFFSET{.stdcall,
     dynlib: lib, importc: "mysql_stmt_row_seek".}
-proc stmt_row_tell*(stmt: PSTMT): ROW_OFFSET{.stdcall, dynlib: lib, 
+proc stmt_row_tell*(stmt: PSTMT): ROW_OFFSET{.stdcall, dynlib: lib,
     importc: "mysql_stmt_row_tell".}
-proc stmt_data_seek*(stmt: PSTMT, offset: my_ulonglong){.stdcall, dynlib: lib, 
+proc stmt_data_seek*(stmt: PSTMT, offset: my_ulonglong){.stdcall, dynlib: lib,
     importc: "mysql_stmt_data_seek".}
-proc stmt_num_rows*(stmt: PSTMT): my_ulonglong{.stdcall, dynlib: lib, 
+proc stmt_num_rows*(stmt: PSTMT): my_ulonglong{.stdcall, dynlib: lib,
     importc: "mysql_stmt_num_rows".}
-proc stmt_affected_rows*(stmt: PSTMT): my_ulonglong{.stdcall, dynlib: lib, 
+proc stmt_affected_rows*(stmt: PSTMT): my_ulonglong{.stdcall, dynlib: lib,
     importc: "mysql_stmt_affected_rows".}
-proc stmt_insert_id*(stmt: PSTMT): my_ulonglong{.stdcall, dynlib: lib, 
+proc stmt_insert_id*(stmt: PSTMT): my_ulonglong{.stdcall, dynlib: lib,
     importc: "mysql_stmt_insert_id".}
-proc stmt_field_count*(stmt: PSTMT): cuint{.stdcall, dynlib: lib, 
+proc stmt_field_count*(stmt: PSTMT): cuint{.stdcall, dynlib: lib,
     importc: "mysql_stmt_field_count".}
 proc commit*(MySQL: PMySQL): my_bool{.stdcall, dynlib: lib, importc: "mysql_commit".}
 proc rollback*(MySQL: PMySQL): my_bool{.stdcall, dynlib: lib, importc: "mysql_rollback".}
-proc autocommit*(MySQL: PMySQL, auto_mode: my_bool): my_bool{.stdcall, dynlib: lib, 
+proc autocommit*(MySQL: PMySQL, auto_mode: my_bool): my_bool{.stdcall, dynlib: lib,
     importc: "mysql_autocommit".}
-proc more_results*(MySQL: PMySQL): my_bool{.stdcall, dynlib: lib, 
+proc more_results*(MySQL: PMySQL): my_bool{.stdcall, dynlib: lib,
                                   importc: "mysql_more_results".}
 proc next_result*(MySQL: PMySQL): cint{.stdcall, dynlib: lib, importc: "mysql_next_result".}
 proc close*(sock: PMySQL){.stdcall, dynlib: lib, importc: "mysql_close".}
-  # status return codes  
-const 
+  # status return codes
+const
   NO_DATA* = 100
   DATA_TRUNCATED* = 101
 
 proc reload*(x: PMySQL): cint
-when defined(USE_OLD_FUNCTIONS): 
-  proc connect*(MySQL: PMySQL, host: cstring, user: cstring, passwd: cstring): PMySQL{.stdcall, 
+when defined(USE_OLD_FUNCTIONS):
+  proc connect*(MySQL: PMySQL, host: cstring, user: cstring, passwd: cstring): PMySQL{.stdcall,
       dynlib: lib, importc: "mysql_connect".}
-  proc create_db*(MySQL: PMySQL, DB: cstring): cint{.stdcall, dynlib: lib, 
+  proc create_db*(MySQL: PMySQL, DB: cstring): cint{.stdcall, dynlib: lib,
       importc: "mysql_create_db".}
-  proc drop_db*(MySQL: PMySQL, DB: cstring): cint{.stdcall, dynlib: lib, 
+  proc drop_db*(MySQL: PMySQL, DB: cstring): cint{.stdcall, dynlib: lib,
       importc: "mysql_drop_db".}
 proc net_safe_read*(MySQL: PMySQL): cuint{.cdecl, dynlib: lib, importc: "net_safe_read".}
 
-proc IS_PRI_KEY(n: int32): bool = 
+proc IS_PRI_KEY(n: int32): bool =
   result = (n and PRI_KEY_FLAG) != 0
 
-proc IS_NOT_NULL(n: int32): bool = 
+proc IS_NOT_NULL(n: int32): bool =
   result = (n and NOT_NULL_FLAG) != 0
 
-proc IS_BLOB(n: int32): bool = 
+proc IS_BLOB(n: int32): bool =
   result = (n and BLOB_FLAG) != 0
 
-proc IS_NUM_FIELD(f: Pst_mysql_field): bool = 
+proc IS_NUM_FIELD(f: Pst_mysql_field): bool =
   result = (f.flags and NUM_FLAG) != 0
 
-proc IS_NUM(t: Enum_field_types): bool = 
+proc IS_NUM(t: Enum_field_types): bool =
   result = (t <= FIELD_TYPE_INT24) or (t == FIELD_TYPE_YEAR) or
       (t == FIELD_TYPE_NEWDECIMAL)
 
-proc INTERNAL_NUM_FIELD(f: Pst_mysql_field): bool = 
+proc INTERNAL_NUM_FIELD(f: Pst_mysql_field): bool =
   result = (f.ftype <= FIELD_TYPE_INT24) and
       ((f.ftype != FIELD_TYPE_TIMESTAMP) or (f.len == 14) or (f.len == 8)) or
       (f.ftype == FIELD_TYPE_YEAR)
diff --git a/lib/wrappers/sqlite3.nim b/lib/wrappers/sqlite3.nim
index bd107b0bc..24c271ab7 100644
--- a/lib/wrappers/sqlite3.nim
+++ b/lib/wrappers/sqlite3.nim
@@ -8,17 +8,17 @@
 #
 
 {.deadCodeElim: on.}
-when defined(windows): 
-  const 
+when defined(windows):
+  const
     Lib = "sqlite3.dll"
-elif defined(macosx): 
-  const 
+elif defined(macosx):
+  const
     Lib = "libsqlite3(|.0).dylib"
-else: 
-  const 
+else:
+  const
     Lib = "libsqlite3.so(|.0)"
-    
-const 
+
+const
   SQLITE_INTEGER* = 1
   SQLITE_FLOAT* = 2
   SQLITE_BLOB* = 4
@@ -26,38 +26,38 @@ const
   SQLITE_TEXT* = 3
   SQLITE_UTF8* = 1
   SQLITE_UTF16LE* = 2
-  SQLITE_UTF16BE* = 3         # Use native byte order  
-  SQLITE_UTF16* = 4           # sqlite3_create_function only  
+  SQLITE_UTF16BE* = 3         # Use native byte order
+  SQLITE_UTF16* = 4           # sqlite3_create_function only
   SQLITE_ANY* = 5             #sqlite_exec return values
   SQLITE_OK* = 0
-  SQLITE_ERROR* = 1           # SQL error or missing database  
-  SQLITE_INTERNAL* = 2        # An internal logic error in SQLite  
-  SQLITE_PERM* = 3            # Access permission denied  
-  SQLITE_ABORT* = 4           # Callback routine requested an abort  
-  SQLITE_BUSY* = 5            # The database file is locked  
-  SQLITE_LOCKED* = 6          # A table in the database is locked  
-  SQLITE_NOMEM* = 7           # A malloc() failed  
-  SQLITE_READONLY* = 8        # Attempt to write a readonly database  
-  SQLITE_INTERRUPT* = 9       # Operation terminated by sqlite3_interrupt() 
-  SQLITE_IOERR* = 10          # Some kind of disk I/O error occurred  
-  SQLITE_CORRUPT* = 11        # The database disk image is malformed  
-  SQLITE_NOTFOUND* = 12       # (Internal Only) Table or record not found  
-  SQLITE_FULL* = 13           # Insertion failed because database is full  
-  SQLITE_CANTOPEN* = 14       # Unable to open the database file  
-  SQLITE_PROTOCOL* = 15       # Database lock protocol error  
-  SQLITE_EMPTY* = 16          # Database is empty  
-  SQLITE_SCHEMA* = 17         # The database schema changed  
-  SQLITE_TOOBIG* = 18         # Too much data for one row of a table  
-  SQLITE_CONSTRAINT* = 19     # Abort due to contraint violation  
-  SQLITE_MISMATCH* = 20       # Data type mismatch  
-  SQLITE_MISUSE* = 21         # Library used incorrectly  
-  SQLITE_NOLFS* = 22          # Uses OS features not supported on host  
-  SQLITE_AUTH* = 23           # Authorization denied  
-  SQLITE_FORMAT* = 24         # Auxiliary database format error  
-  SQLITE_RANGE* = 25          # 2nd parameter to sqlite3_bind out of range  
-  SQLITE_NOTADB* = 26         # File opened that is not a database file  
-  SQLITE_ROW* = 100           # sqlite3_step() has another row ready  
-  SQLITE_DONE* = 101          # sqlite3_step() has finished executing  
+  SQLITE_ERROR* = 1           # SQL error or missing database
+  SQLITE_INTERNAL* = 2        # An internal logic error in SQLite
+  SQLITE_PERM* = 3            # Access permission denied
+  SQLITE_ABORT* = 4           # Callback routine requested an abort
+  SQLITE_BUSY* = 5            # The database file is locked
+  SQLITE_LOCKED* = 6          # A table in the database is locked
+  SQLITE_NOMEM* = 7           # A malloc() failed
+  SQLITE_READONLY* = 8        # Attempt to write a readonly database
+  SQLITE_INTERRUPT* = 9       # Operation terminated by sqlite3_interrupt()
+  SQLITE_IOERR* = 10          # Some kind of disk I/O error occurred
+  SQLITE_CORRUPT* = 11        # The database disk image is malformed
+  SQLITE_NOTFOUND* = 12       # (Internal Only) Table or record not found
+  SQLITE_FULL* = 13           # Insertion failed because database is full
+  SQLITE_CANTOPEN* = 14       # Unable to open the database file
+  SQLITE_PROTOCOL* = 15       # Database lock protocol error
+  SQLITE_EMPTY* = 16          # Database is empty
+  SQLITE_SCHEMA* = 17         # The database schema changed
+  SQLITE_TOOBIG* = 18         # Too much data for one row of a table
+  SQLITE_CONSTRAINT* = 19     # Abort due to contraint violation
+  SQLITE_MISMATCH* = 20       # Data type mismatch
+  SQLITE_MISUSE* = 21         # Library used incorrectly
+  SQLITE_NOLFS* = 22          # Uses OS features not supported on host
+  SQLITE_AUTH* = 23           # Authorization denied
+  SQLITE_FORMAT* = 24         # Auxiliary database format error
+  SQLITE_RANGE* = 25          # 2nd parameter to sqlite3_bind out of range
+  SQLITE_NOTADB* = 26         # File opened that is not a database file
+  SQLITE_ROW* = 100           # sqlite3_step() has another row ready
+  SQLITE_DONE* = 101          # sqlite3_step() has finished executing
   SQLITE_COPY* = 0
   SQLITE_CREATE_INDEX* = 1
   SQLITE_CREATE_TABLE* = 2
@@ -87,39 +87,39 @@ const
   SQLITE_ALTER_TABLE* = 26
   SQLITE_REINDEX* = 27
   SQLITE_DENY* = 1
-  SQLITE_IGNORE* = 2          # Original from sqlite3.h: 
+  SQLITE_IGNORE* = 2          # Original from sqlite3.h:
                               #define SQLITE_STATIC      ((void(*)(void *))0)
                               #define SQLITE_TRANSIENT   ((void(*)(void *))-1)
   SQLITE_DETERMINISTIC* = 0x800
 
-const 
+const
   SQLITE_STATIC* = nil
   SQLITE_TRANSIENT* = cast[pointer](- 1)
 
-type 
-  Sqlite3 {.pure, final.} = object 
+type
+  Sqlite3 {.pure, final.} = object
   PSqlite3* = ptr Sqlite3
   PPSqlite3* = ptr PSqlite3
-  Context{.pure, final.} = object 
+  Context{.pure, final.} = object
   Pcontext* = ptr Context
-  Tstmt{.pure, final.} = object 
+  Tstmt{.pure, final.} = object
   Pstmt* = ptr Tstmt
-  Value{.pure, final.} = object 
+  Value{.pure, final.} = object
   Pvalue* = ptr Value
   PValueArg* = array[0..127, Pvalue]
-  
-  Callback* = proc (para1: pointer, para2: int32, para3, 
+
+  Callback* = proc (para1: pointer, para2: int32, para3,
                      para4: cstringArray): int32{.cdecl.}
   Tbind_destructor_func* = proc (para1: pointer){.cdecl.}
-  Create_function_step_func* = proc (para1: Pcontext, para2: int32, 
+  Create_function_step_func* = proc (para1: Pcontext, para2: int32,
                                       para3: PValueArg){.cdecl.}
-  Create_function_func_func* = proc (para1: Pcontext, para2: int32, 
+  Create_function_func_func* = proc (para1: Pcontext, para2: int32,
                                       para3: PValueArg){.cdecl.}
   Create_function_final_func* = proc (para1: Pcontext){.cdecl.}
   Result_func* = proc (para1: pointer){.cdecl.}
-  Create_collation_func* = proc (para1: pointer, para2: int32, para3: pointer, 
+  Create_collation_func* = proc (para1: pointer, para2: int32, para3: pointer,
                                   para4: int32, para5: pointer): int32{.cdecl.}
-  Collation_needed_func* = proc (para1: pointer, para2: PSqlite3, eTextRep: int32, 
+  Collation_needed_func* = proc (para1: pointer, para2: PSqlite3, eTextRep: int32,
                                   para4: cstring){.cdecl.}
 {.deprecated: [TSqlite3: Sqlite3, TContext: Context, Tvalue: Value,
     Tcallback: Callback, Tcreate_function_step_func: Create_function_step_func,
@@ -129,220 +129,220 @@ type
     Tcollation_needed_func: Collation_needed_func].}
 
 proc close*(para1: PSqlite3): int32{.cdecl, dynlib: Lib, importc: "sqlite3_close".}
-proc exec*(para1: PSqlite3, sql: cstring, para3: Callback, para4: pointer, 
-           errmsg: var cstring): int32{.cdecl, dynlib: Lib, 
+proc exec*(para1: PSqlite3, sql: cstring, para3: Callback, para4: pointer,
+           errmsg: var cstring): int32{.cdecl, dynlib: Lib,
                                         importc: "sqlite3_exec".}
-proc last_insert_rowid*(para1: PSqlite3): int64{.cdecl, dynlib: Lib, 
+proc last_insert_rowid*(para1: PSqlite3): int64{.cdecl, dynlib: Lib,
     importc: "sqlite3_last_insert_rowid".}
 proc changes*(para1: PSqlite3): int32{.cdecl, dynlib: Lib, importc: "sqlite3_changes".}
-proc total_changes*(para1: PSqlite3): int32{.cdecl, dynlib: Lib, 
+proc total_changes*(para1: PSqlite3): int32{.cdecl, dynlib: Lib,
                                       importc: "sqlite3_total_changes".}
 proc interrupt*(para1: PSqlite3){.cdecl, dynlib: Lib, importc: "sqlite3_interrupt".}
-proc complete*(sql: cstring): int32{.cdecl, dynlib: Lib, 
+proc complete*(sql: cstring): int32{.cdecl, dynlib: Lib,
                                      importc: "sqlite3_complete".}
-proc complete16*(sql: pointer): int32{.cdecl, dynlib: Lib, 
+proc complete16*(sql: pointer): int32{.cdecl, dynlib: Lib,
                                        importc: "sqlite3_complete16".}
-proc busy_handler*(para1: PSqlite3, 
-                   para2: proc (para1: pointer, para2: int32): int32{.cdecl.}, 
-                   para3: pointer): int32{.cdecl, dynlib: Lib, 
+proc busy_handler*(para1: PSqlite3,
+                   para2: proc (para1: pointer, para2: int32): int32{.cdecl.},
+                   para3: pointer): int32{.cdecl, dynlib: Lib,
     importc: "sqlite3_busy_handler".}
-proc busy_timeout*(para1: PSqlite3, ms: int32): int32{.cdecl, dynlib: Lib, 
+proc busy_timeout*(para1: PSqlite3, ms: int32): int32{.cdecl, dynlib: Lib,
     importc: "sqlite3_busy_timeout".}
-proc get_table*(para1: PSqlite3, sql: cstring, resultp: var cstringArray, 
-                nrow, ncolumn: var cint, errmsg: ptr cstring): int32{.cdecl, 
+proc get_table*(para1: PSqlite3, sql: cstring, resultp: var cstringArray,
+                nrow, ncolumn: var cint, errmsg: ptr cstring): int32{.cdecl,
     dynlib: Lib, importc: "sqlite3_get_table".}
-proc free_table*(result: cstringArray){.cdecl, dynlib: Lib, 
+proc free_table*(result: cstringArray){.cdecl, dynlib: Lib,
                                         importc: "sqlite3_free_table".}
   # Todo: see how translate sqlite3_mprintf, sqlite3_vmprintf, sqlite3_snprintf
   # function sqlite3_mprintf(_para1:Pchar; args:array of const):Pchar;cdecl; external Sqlite3Lib name 'sqlite3_mprintf';
-proc mprintf*(para1: cstring): cstring{.cdecl, varargs, dynlib: Lib, 
+proc mprintf*(para1: cstring): cstring{.cdecl, varargs, dynlib: Lib,
                                         importc: "sqlite3_mprintf".}
   #function sqlite3_vmprintf(_para1:Pchar; _para2:va_list):Pchar;cdecl; external Sqlite3Lib name 'sqlite3_vmprintf';
 proc free*(z: cstring){.cdecl, dynlib: Lib, importc: "sqlite3_free".}
   #function sqlite3_snprintf(_para1:longint; _para2:Pchar; _para3:Pchar; args:array of const):Pchar;cdecl; external Sqlite3Lib name 'sqlite3_snprintf';
-proc snprintf*(para1: int32, para2: cstring, para3: cstring): cstring{.cdecl, 
+proc snprintf*(para1: int32, para2: cstring, para3: cstring): cstring{.cdecl,
     dynlib: Lib, varargs, importc: "sqlite3_snprintf".}
-proc set_authorizer*(para1: PSqlite3, xAuth: proc (para1: pointer, para2: int32, 
+proc set_authorizer*(para1: PSqlite3, xAuth: proc (para1: pointer, para2: int32,
     para3: cstring, para4: cstring, para5: cstring, para6: cstring): int32{.
-    cdecl.}, pUserData: pointer): int32{.cdecl, dynlib: Lib, 
+    cdecl.}, pUserData: pointer): int32{.cdecl, dynlib: Lib,
     importc: "sqlite3_set_authorizer".}
-proc trace*(para1: PSqlite3, xTrace: proc (para1: pointer, para2: cstring){.cdecl.}, 
-            para3: pointer): pointer{.cdecl, dynlib: Lib, 
+proc trace*(para1: PSqlite3, xTrace: proc (para1: pointer, para2: cstring){.cdecl.},
+            para3: pointer): pointer{.cdecl, dynlib: Lib,
                                       importc: "sqlite3_trace".}
-proc progress_handler*(para1: PSqlite3, para2: int32, 
-                       para3: proc (para1: pointer): int32{.cdecl.}, 
-                       para4: pointer){.cdecl, dynlib: Lib, 
+proc progress_handler*(para1: PSqlite3, para2: int32,
+                       para3: proc (para1: pointer): int32{.cdecl.},
+                       para4: pointer){.cdecl, dynlib: Lib,
                                         importc: "sqlite3_progress_handler".}
-proc commit_hook*(para1: PSqlite3, para2: proc (para1: pointer): int32{.cdecl.}, 
-                  para3: pointer): pointer{.cdecl, dynlib: Lib, 
+proc commit_hook*(para1: PSqlite3, para2: proc (para1: pointer): int32{.cdecl.},
+                  para3: pointer): pointer{.cdecl, dynlib: Lib,
     importc: "sqlite3_commit_hook".}
-proc open*(filename: cstring, ppDb: var PSqlite3): int32{.cdecl, dynlib: Lib, 
+proc open*(filename: cstring, ppDb: var PSqlite3): int32{.cdecl, dynlib: Lib,
     importc: "sqlite3_open".}
-proc open16*(filename: pointer, ppDb: var PSqlite3): int32{.cdecl, dynlib: Lib, 
+proc open16*(filename: pointer, ppDb: var PSqlite3): int32{.cdecl, dynlib: Lib,
     importc: "sqlite3_open16".}
 proc errcode*(db: PSqlite3): int32{.cdecl, dynlib: Lib, importc: "sqlite3_errcode".}
 proc errmsg*(para1: PSqlite3): cstring{.cdecl, dynlib: Lib, importc: "sqlite3_errmsg".}
-proc errmsg16*(para1: PSqlite3): pointer{.cdecl, dynlib: Lib, 
+proc errmsg16*(para1: PSqlite3): pointer{.cdecl, dynlib: Lib,
                                    importc: "sqlite3_errmsg16".}
-proc prepare*(db: PSqlite3, zSql: cstring, nBytes: int32, ppStmt: var Pstmt, 
-              pzTail: ptr cstring): int32{.cdecl, dynlib: Lib, 
+proc prepare*(db: PSqlite3, zSql: cstring, nBytes: int32, ppStmt: var Pstmt,
+              pzTail: ptr cstring): int32{.cdecl, dynlib: Lib,
     importc: "sqlite3_prepare".}
-    
+
 proc prepare_v2*(db: PSqlite3, zSql: cstring, nByte: cint, ppStmt: var Pstmt,
                 pzTail: ptr cstring): cint {.
                 importc: "sqlite3_prepare_v2", cdecl, dynlib: Lib.}
-    
-proc prepare16*(db: PSqlite3, zSql: pointer, nBytes: int32, ppStmt: var Pstmt, 
-                pzTail: var pointer): int32{.cdecl, dynlib: Lib, 
+
+proc prepare16*(db: PSqlite3, zSql: pointer, nBytes: int32, ppStmt: var Pstmt,
+                pzTail: var pointer): int32{.cdecl, dynlib: Lib,
     importc: "sqlite3_prepare16".}
-proc bind_blob*(para1: Pstmt, para2: int32, para3: pointer, n: int32, 
-                para5: Tbind_destructor_func): int32{.cdecl, dynlib: Lib, 
+proc bind_blob*(para1: Pstmt, para2: int32, para3: pointer, n: int32,
+                para5: Tbind_destructor_func): int32{.cdecl, dynlib: Lib,
     importc: "sqlite3_bind_blob".}
-proc bind_double*(para1: Pstmt, para2: int32, para3: float64): int32{.cdecl, 
+proc bind_double*(para1: Pstmt, para2: int32, para3: float64): int32{.cdecl,
     dynlib: Lib, importc: "sqlite3_bind_double".}
-proc bind_int*(para1: Pstmt, para2: int32, para3: int32): int32{.cdecl, 
+proc bind_int*(para1: Pstmt, para2: int32, para3: int32): int32{.cdecl,
     dynlib: Lib, importc: "sqlite3_bind_int".}
-proc bind_int64*(para1: Pstmt, para2: int32, para3: int64): int32{.cdecl, 
+proc bind_int64*(para1: Pstmt, para2: int32, para3: int64): int32{.cdecl,
     dynlib: Lib, importc: "sqlite3_bind_int64".}
-proc bind_null*(para1: Pstmt, para2: int32): int32{.cdecl, dynlib: Lib, 
+proc bind_null*(para1: Pstmt, para2: int32): int32{.cdecl, dynlib: Lib,
     importc: "sqlite3_bind_null".}
-proc bind_text*(para1: Pstmt, para2: int32, para3: cstring, n: int32, 
-                para5: Tbind_destructor_func): int32{.cdecl, dynlib: Lib, 
+proc bind_text*(para1: Pstmt, para2: int32, para3: cstring, n: int32,
+                para5: Tbind_destructor_func): int32{.cdecl, dynlib: Lib,
     importc: "sqlite3_bind_text".}
-proc bind_text16*(para1: Pstmt, para2: int32, para3: pointer, para4: int32, 
-                  para5: Tbind_destructor_func): int32{.cdecl, dynlib: Lib, 
+proc bind_text16*(para1: Pstmt, para2: int32, para3: pointer, para4: int32,
+                  para5: Tbind_destructor_func): int32{.cdecl, dynlib: Lib,
     importc: "sqlite3_bind_text16".}
   #function sqlite3_bind_value(_para1:Psqlite3_stmt; _para2:longint; _para3:Psqlite3_value):longint;cdecl; external Sqlite3Lib name 'sqlite3_bind_value';
   #These overloaded functions were introduced to allow the use of SQLITE_STATIC and SQLITE_TRANSIENT
   #It's the c world man ;-)
-proc bind_blob*(para1: Pstmt, para2: int32, para3: pointer, n: int32, 
-                para5: int32): int32{.cdecl, dynlib: Lib, 
+proc bind_blob*(para1: Pstmt, para2: int32, para3: pointer, n: int32,
+                para5: int32): int32{.cdecl, dynlib: Lib,
                                       importc: "sqlite3_bind_blob".}
-proc bind_text*(para1: Pstmt, para2: int32, para3: cstring, n: int32, 
-                para5: int32): int32{.cdecl, dynlib: Lib, 
+proc bind_text*(para1: Pstmt, para2: int32, para3: cstring, n: int32,
+                para5: int32): int32{.cdecl, dynlib: Lib,
                                       importc: "sqlite3_bind_text".}
-proc bind_text16*(para1: Pstmt, para2: int32, para3: pointer, para4: int32, 
-                  para5: int32): int32{.cdecl, dynlib: Lib, 
+proc bind_text16*(para1: Pstmt, para2: int32, para3: pointer, para4: int32,
+                  para5: int32): int32{.cdecl, dynlib: Lib,
                                         importc: "sqlite3_bind_text16".}
-proc bind_parameter_count*(para1: Pstmt): int32{.cdecl, dynlib: Lib, 
+proc bind_parameter_count*(para1: Pstmt): int32{.cdecl, dynlib: Lib,
     importc: "sqlite3_bind_parameter_count".}
-proc bind_parameter_name*(para1: Pstmt, para2: int32): cstring{.cdecl, 
+proc bind_parameter_name*(para1: Pstmt, para2: int32): cstring{.cdecl,
     dynlib: Lib, importc: "sqlite3_bind_parameter_name".}
-proc bind_parameter_index*(para1: Pstmt, zName: cstring): int32{.cdecl, 
+proc bind_parameter_index*(para1: Pstmt, zName: cstring): int32{.cdecl,
     dynlib: Lib, importc: "sqlite3_bind_parameter_index".}
   #function sqlite3_clear_bindings(_para1:Psqlite3_stmt):longint;cdecl; external Sqlite3Lib name 'sqlite3_clear_bindings';
-proc column_count*(pStmt: Pstmt): int32{.cdecl, dynlib: Lib, 
+proc column_count*(pStmt: Pstmt): int32{.cdecl, dynlib: Lib,
     importc: "sqlite3_column_count".}
-proc column_name*(para1: Pstmt, para2: int32): cstring{.cdecl, dynlib: Lib, 
+proc column_name*(para1: Pstmt, para2: int32): cstring{.cdecl, dynlib: Lib,
     importc: "sqlite3_column_name".}
-proc column_name16*(para1: Pstmt, para2: int32): pointer{.cdecl, dynlib: Lib, 
+proc column_name16*(para1: Pstmt, para2: int32): pointer{.cdecl, dynlib: Lib,
     importc: "sqlite3_column_name16".}
-proc column_decltype*(para1: Pstmt, i: int32): cstring{.cdecl, dynlib: Lib, 
+proc column_decltype*(para1: Pstmt, i: int32): cstring{.cdecl, dynlib: Lib,
     importc: "sqlite3_column_decltype".}
-proc column_decltype16*(para1: Pstmt, para2: int32): pointer{.cdecl, 
+proc column_decltype16*(para1: Pstmt, para2: int32): pointer{.cdecl,
     dynlib: Lib, importc: "sqlite3_column_decltype16".}
 proc step*(para1: Pstmt): int32{.cdecl, dynlib: Lib, importc: "sqlite3_step".}
-proc data_count*(pStmt: Pstmt): int32{.cdecl, dynlib: Lib, 
+proc data_count*(pStmt: Pstmt): int32{.cdecl, dynlib: Lib,
                                        importc: "sqlite3_data_count".}
-proc column_blob*(para1: Pstmt, iCol: int32): pointer{.cdecl, dynlib: Lib, 
+proc column_blob*(para1: Pstmt, iCol: int32): pointer{.cdecl, dynlib: Lib,
     importc: "sqlite3_column_blob".}
-proc column_bytes*(para1: Pstmt, iCol: int32): int32{.cdecl, dynlib: Lib, 
+proc column_bytes*(para1: Pstmt, iCol: int32): int32{.cdecl, dynlib: Lib,
     importc: "sqlite3_column_bytes".}
-proc column_bytes16*(para1: Pstmt, iCol: int32): int32{.cdecl, dynlib: Lib, 
+proc column_bytes16*(para1: Pstmt, iCol: int32): int32{.cdecl, dynlib: Lib,
     importc: "sqlite3_column_bytes16".}
-proc column_double*(para1: Pstmt, iCol: int32): float64{.cdecl, dynlib: Lib, 
+proc column_double*(para1: Pstmt, iCol: int32): float64{.cdecl, dynlib: Lib,
     importc: "sqlite3_column_double".}
-proc column_int*(para1: Pstmt, iCol: int32): int32{.cdecl, dynlib: Lib, 
+proc column_int*(para1: Pstmt, iCol: int32): int32{.cdecl, dynlib: Lib,
     importc: "sqlite3_column_int".}
-proc column_int64*(para1: Pstmt, iCol: int32): int64{.cdecl, dynlib: Lib, 
+proc column_int64*(para1: Pstmt, iCol: int32): int64{.cdecl, dynlib: Lib,
     importc: "sqlite3_column_int64".}
-proc column_text*(para1: Pstmt, iCol: int32): cstring{.cdecl, dynlib: Lib, 
+proc column_text*(para1: Pstmt, iCol: int32): cstring{.cdecl, dynlib: Lib,
     importc: "sqlite3_column_text".}
-proc column_text16*(para1: Pstmt, iCol: int32): pointer{.cdecl, dynlib: Lib, 
+proc column_text16*(para1: Pstmt, iCol: int32): pointer{.cdecl, dynlib: Lib,
     importc: "sqlite3_column_text16".}
-proc column_type*(para1: Pstmt, iCol: int32): int32{.cdecl, dynlib: Lib, 
+proc column_type*(para1: Pstmt, iCol: int32): int32{.cdecl, dynlib: Lib,
     importc: "sqlite3_column_type".}
-proc finalize*(pStmt: Pstmt): int32{.cdecl, dynlib: Lib, 
+proc finalize*(pStmt: Pstmt): int32{.cdecl, dynlib: Lib,
                                      importc: "sqlite3_finalize".}
 proc reset*(pStmt: Pstmt): int32{.cdecl, dynlib: Lib, importc: "sqlite3_reset".}
-proc create_function*(para1: PSqlite3, zFunctionName: cstring, nArg: int32, 
-                      eTextRep: int32, para5: pointer, 
-                      xFunc: Create_function_func_func, 
-                      xStep: Create_function_step_func, 
-                      xFinal: Create_function_final_func): int32{.cdecl, 
+proc create_function*(para1: PSqlite3, zFunctionName: cstring, nArg: int32,
+                      eTextRep: int32, para5: pointer,
+                      xFunc: Create_function_func_func,
+                      xStep: Create_function_step_func,
+                      xFinal: Create_function_final_func): int32{.cdecl,
     dynlib: Lib, importc: "sqlite3_create_function".}
-proc create_function16*(para1: PSqlite3, zFunctionName: pointer, nArg: int32, 
-                        eTextRep: int32, para5: pointer, 
-                        xFunc: Create_function_func_func, 
-                        xStep: Create_function_step_func, 
-                        xFinal: Create_function_final_func): int32{.cdecl, 
+proc create_function16*(para1: PSqlite3, zFunctionName: pointer, nArg: int32,
+                        eTextRep: int32, para5: pointer,
+                        xFunc: Create_function_func_func,
+                        xStep: Create_function_step_func,
+                        xFinal: Create_function_final_func): int32{.cdecl,
     dynlib: Lib, importc: "sqlite3_create_function16".}
-proc aggregate_count*(para1: Pcontext): int32{.cdecl, dynlib: Lib, 
+proc aggregate_count*(para1: Pcontext): int32{.cdecl, dynlib: Lib,
     importc: "sqlite3_aggregate_count".}
-proc value_blob*(para1: Pvalue): pointer{.cdecl, dynlib: Lib, 
+proc value_blob*(para1: Pvalue): pointer{.cdecl, dynlib: Lib,
     importc: "sqlite3_value_blob".}
-proc value_bytes*(para1: Pvalue): int32{.cdecl, dynlib: Lib, 
+proc value_bytes*(para1: Pvalue): int32{.cdecl, dynlib: Lib,
     importc: "sqlite3_value_bytes".}
-proc value_bytes16*(para1: Pvalue): int32{.cdecl, dynlib: Lib, 
+proc value_bytes16*(para1: Pvalue): int32{.cdecl, dynlib: Lib,
     importc: "sqlite3_value_bytes16".}
-proc value_double*(para1: Pvalue): float64{.cdecl, dynlib: Lib, 
+proc value_double*(para1: Pvalue): float64{.cdecl, dynlib: Lib,
     importc: "sqlite3_value_double".}
-proc value_int*(para1: Pvalue): int32{.cdecl, dynlib: Lib, 
+proc value_int*(para1: Pvalue): int32{.cdecl, dynlib: Lib,
                                        importc: "sqlite3_value_int".}
-proc value_int64*(para1: Pvalue): int64{.cdecl, dynlib: Lib, 
+proc value_int64*(para1: Pvalue): int64{.cdecl, dynlib: Lib,
     importc: "sqlite3_value_int64".}
-proc value_text*(para1: Pvalue): cstring{.cdecl, dynlib: Lib, 
+proc value_text*(para1: Pvalue): cstring{.cdecl, dynlib: Lib,
     importc: "sqlite3_value_text".}
-proc value_text16*(para1: Pvalue): pointer{.cdecl, dynlib: Lib, 
+proc value_text16*(para1: Pvalue): pointer{.cdecl, dynlib: Lib,
     importc: "sqlite3_value_text16".}
-proc value_text16le*(para1: Pvalue): pointer{.cdecl, dynlib: Lib, 
+proc value_text16le*(para1: Pvalue): pointer{.cdecl, dynlib: Lib,
     importc: "sqlite3_value_text16le".}
-proc value_text16be*(para1: Pvalue): pointer{.cdecl, dynlib: Lib, 
+proc value_text16be*(para1: Pvalue): pointer{.cdecl, dynlib: Lib,
     importc: "sqlite3_value_text16be".}
-proc value_type*(para1: Pvalue): int32{.cdecl, dynlib: Lib, 
+proc value_type*(para1: Pvalue): int32{.cdecl, dynlib: Lib,
                                         importc: "sqlite3_value_type".}
-proc aggregate_context*(para1: Pcontext, nBytes: int32): pointer{.cdecl, 
+proc aggregate_context*(para1: Pcontext, nBytes: int32): pointer{.cdecl,
     dynlib: Lib, importc: "sqlite3_aggregate_context".}
-proc user_data*(para1: Pcontext): pointer{.cdecl, dynlib: Lib, 
+proc user_data*(para1: Pcontext): pointer{.cdecl, dynlib: Lib,
     importc: "sqlite3_user_data".}
-proc get_auxdata*(para1: Pcontext, para2: int32): pointer{.cdecl, dynlib: Lib, 
+proc get_auxdata*(para1: Pcontext, para2: int32): pointer{.cdecl, dynlib: Lib,
     importc: "sqlite3_get_auxdata".}
-proc set_auxdata*(para1: Pcontext, para2: int32, para3: pointer, 
-                  para4: proc (para1: pointer){.cdecl.}){.cdecl, dynlib: Lib, 
+proc set_auxdata*(para1: Pcontext, para2: int32, para3: pointer,
+                  para4: proc (para1: pointer){.cdecl.}){.cdecl, dynlib: Lib,
     importc: "sqlite3_set_auxdata".}
-proc result_blob*(para1: Pcontext, para2: pointer, para3: int32, 
-                  para4: Result_func){.cdecl, dynlib: Lib, 
+proc result_blob*(para1: Pcontext, para2: pointer, para3: int32,
+                  para4: Result_func){.cdecl, dynlib: Lib,
                                         importc: "sqlite3_result_blob".}
-proc result_double*(para1: Pcontext, para2: float64){.cdecl, dynlib: Lib, 
+proc result_double*(para1: Pcontext, para2: float64){.cdecl, dynlib: Lib,
     importc: "sqlite3_result_double".}
-proc result_error*(para1: Pcontext, para2: cstring, para3: int32){.cdecl, 
+proc result_error*(para1: Pcontext, para2: cstring, para3: int32){.cdecl,
     dynlib: Lib, importc: "sqlite3_result_error".}
-proc result_error16*(para1: Pcontext, para2: pointer, para3: int32){.cdecl, 
+proc result_error16*(para1: Pcontext, para2: pointer, para3: int32){.cdecl,
     dynlib: Lib, importc: "sqlite3_result_error16".}
-proc result_int*(para1: Pcontext, para2: int32){.cdecl, dynlib: Lib, 
+proc result_int*(para1: Pcontext, para2: int32){.cdecl, dynlib: Lib,
     importc: "sqlite3_result_int".}
-proc result_int64*(para1: Pcontext, para2: int64){.cdecl, dynlib: Lib, 
+proc result_int64*(para1: Pcontext, para2: int64){.cdecl, dynlib: Lib,
     importc: "sqlite3_result_int64".}
-proc result_null*(para1: Pcontext){.cdecl, dynlib: Lib, 
+proc result_null*(para1: Pcontext){.cdecl, dynlib: Lib,
                                     importc: "sqlite3_result_null".}
-proc result_text*(para1: Pcontext, para2: cstring, para3: int32, 
-                  para4: Result_func){.cdecl, dynlib: Lib, 
+proc result_text*(para1: Pcontext, para2: cstring, para3: int32,
+                  para4: Result_func){.cdecl, dynlib: Lib,
                                         importc: "sqlite3_result_text".}
-proc result_text16*(para1: Pcontext, para2: pointer, para3: int32, 
-                    para4: Result_func){.cdecl, dynlib: Lib, 
+proc result_text16*(para1: Pcontext, para2: pointer, para3: int32,
+                    para4: Result_func){.cdecl, dynlib: Lib,
     importc: "sqlite3_result_text16".}
-proc result_text16le*(para1: Pcontext, para2: pointer, para3: int32, 
-                      para4: Result_func){.cdecl, dynlib: Lib, 
+proc result_text16le*(para1: Pcontext, para2: pointer, para3: int32,
+                      para4: Result_func){.cdecl, dynlib: Lib,
     importc: "sqlite3_result_text16le".}
-proc result_text16be*(para1: Pcontext, para2: pointer, para3: int32, 
-                      para4: Result_func){.cdecl, dynlib: Lib, 
+proc result_text16be*(para1: Pcontext, para2: pointer, para3: int32,
+                      para4: Result_func){.cdecl, dynlib: Lib,
     importc: "sqlite3_result_text16be".}
-proc result_value*(para1: Pcontext, para2: Pvalue){.cdecl, dynlib: Lib, 
+proc result_value*(para1: Pcontext, para2: Pvalue){.cdecl, dynlib: Lib,
     importc: "sqlite3_result_value".}
-proc create_collation*(para1: PSqlite3, zName: cstring, eTextRep: int32, 
+proc create_collation*(para1: PSqlite3, zName: cstring, eTextRep: int32,
                        para4: pointer, xCompare: Create_collation_func): int32{.
     cdecl, dynlib: Lib, importc: "sqlite3_create_collation".}
-proc create_collation16*(para1: PSqlite3, zName: cstring, eTextRep: int32, 
+proc create_collation16*(para1: PSqlite3, zName: cstring, eTextRep: int32,
                          para4: pointer, xCompare: Create_collation_func): int32{.
     cdecl, dynlib: Lib, importc: "sqlite3_create_collation16".}
 proc collation_needed*(para1: PSqlite3, para2: pointer, para3: Collation_needed_func): int32{.
@@ -350,10 +350,10 @@ proc collation_needed*(para1: PSqlite3, para2: pointer, para3: Collation_needed_
 proc collation_needed16*(para1: PSqlite3, para2: pointer, para3: Collation_needed_func): int32{.
     cdecl, dynlib: Lib, importc: "sqlite3_collation_needed16".}
 proc libversion*(): cstring{.cdecl, dynlib: Lib, importc: "sqlite3_libversion".}
-  #Alias for allowing better code portability (win32 is not working with external variables) 
+  #Alias for allowing better code portability (win32 is not working with external variables)
 proc version*(): cstring{.cdecl, dynlib: Lib, importc: "sqlite3_libversion".}
   # Not published functions
-proc libversion_number*(): int32{.cdecl, dynlib: Lib, 
+proc libversion_number*(): int32{.cdecl, dynlib: Lib,
                                   importc: "sqlite3_libversion_number".}
   #function sqlite3_key(db:Psqlite3; pKey:pointer; nKey:longint):longint;cdecl; external Sqlite3Lib name 'sqlite3_key';
   #function sqlite3_rekey(db:Psqlite3; pKey:pointer; nKey:longint):longint;cdecl; external Sqlite3Lib name 'sqlite3_rekey';
diff --git a/lib/wrappers/tinyc.nim b/lib/wrappers/tinyc.nim
index 05c65b12f..47b505abc 100644
--- a/lib/wrappers/tinyc.nim
+++ b/lib/wrappers/tinyc.nim
@@ -10,7 +10,7 @@
 type
   CcState {.pure, final.} = object
   PccState* = ptr CcState
-  
+
   ErrorFunc* = proc (opaque: pointer, msg: cstring) {.cdecl.}
 {.deprecated: [TccState: CcState, TErrorFunc: ErrorFunc].}
 
@@ -31,33 +31,33 @@ proc setWarning*(s: PccState, warningName: cstring, value: int) {.cdecl,
   importc: "tcc_set_warning".}
   ## set/reset a warning
 
-# preprocessor 
+# preprocessor
 
-proc addIncludePath*(s: PccState, pathname: cstring) {.cdecl, 
+proc addIncludePath*(s: PccState, pathname: cstring) {.cdecl,
   importc: "tcc_add_include_path".}
   ## add include path
 
-proc addSysincludePath*(s: PccState, pathname: cstring) {.cdecl, 
+proc addSysincludePath*(s: PccState, pathname: cstring) {.cdecl,
   importc: "tcc_add_sysinclude_path".}
   ## add in system include path
 
 
-proc defineSymbol*(s: PccState, sym, value: cstring) {.cdecl, 
+proc defineSymbol*(s: PccState, sym, value: cstring) {.cdecl,
   importc: "tcc_define_symbol".}
   ## define preprocessor symbol 'sym'. Can put optional value
 
-proc undefineSymbol*(s: PccState, sym: cstring) {.cdecl, 
+proc undefineSymbol*(s: PccState, sym: cstring) {.cdecl,
   importc: "tcc_undefine_symbol".}
   ## undefine preprocess symbol 'sym'
 
-# compiling 
+# compiling
 
-proc addFile*(s: PccState, filename: cstring): cint {.cdecl, 
+proc addFile*(s: PccState, filename: cstring): cint {.cdecl,
   importc: "tcc_add_file".}
   ## add a file (either a C file, dll, an object, a library or an ld
   ## script). Return -1 if error.
 
-proc compileString*(s: PccState, buf: cstring): cint {.cdecl, 
+proc compileString*(s: PccState, buf: cstring): cint {.cdecl,
   importc: "tcc_compile_string".}
   ## compile a string containing a C source. Return non zero if error.
 
@@ -71,12 +71,12 @@ const
   OutputDll*: cint = 2 ## dynamic library
   OutputObj*: cint = 3 ## object file
   OutputPreprocess*: cint = 4 ## preprocessed file (used internally)
-  
+
   OutputFormatElf*: cint = 0 ## default output format: ELF
   OutputFormatBinary*: cint = 1 ## binary image output
   OutputFormatCoff*: cint = 2 ## COFF
 
-proc setOutputType*(s: PCCState, outputType: cint): cint {.cdecl, 
+proc setOutputType*(s: PCCState, outputType: cint): cint {.cdecl,
   importc: "tcc_set_output_type".}
   ## set output type. MUST BE CALLED before any compilation
 
@@ -115,5 +115,5 @@ proc getSymbol*(s: PccState, name: cstring): pointer {.cdecl,
 proc setLibPath*(s: PccState, path: cstring) {.cdecl,
   importc: "tcc_set_lib_path".}
   ## set CONFIG_TCCDIR at runtime
-  
+