123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480openCtypesmoduleTypes(F:Ctypes.TYPE)=structopenFmoduleProtocol=structletdefault=constant"MYSQL_PROTOCOL_DEFAULT"intlettcp=constant"MYSQL_PROTOCOL_TCP"intletsocket=constant"MYSQL_PROTOCOL_SOCKET"intletpipe=constant"MYSQL_PROTOCOL_PIPE"intletmemory=constant"MYSQL_PROTOCOL_MEMORY"intendmoduleOptions=structletconnect_timeout=constant"MYSQL_OPT_CONNECT_TIMEOUT"intletcompress=constant"MYSQL_OPT_COMPRESS"intletnamed_pipe=constant"MYSQL_OPT_NAMED_PIPE"intletinit_command=constant"MYSQL_INIT_COMMAND"intletread_default_file=constant"MYSQL_READ_DEFAULT_FILE"intletread_default_group=constant"MYSQL_READ_DEFAULT_GROUP"intletset_charset_dir=constant"MYSQL_SET_CHARSET_DIR"intletset_charset_name=constant"MYSQL_SET_CHARSET_NAME"intletlocal_infile=constant"MYSQL_OPT_LOCAL_INFILE"intletprotocol=constant"MYSQL_OPT_PROTOCOL"intletshared_memory_base_name=constant"MYSQL_SHARED_MEMORY_BASE_NAME"intletread_timeout=constant"MYSQL_OPT_READ_TIMEOUT"intletwrite_timeout=constant"MYSQL_OPT_WRITE_TIMEOUT"intletsecure_auth=constant"MYSQL_SECURE_AUTH"intletreport_data_truncation=constant"MYSQL_REPORT_DATA_TRUNCATION"intletreconnect=constant"MYSQL_OPT_RECONNECT"intletssl_verify_server_cert=constant"MYSQL_OPT_SSL_VERIFY_SERVER_CERT"intletplugin_dir=constant"MYSQL_PLUGIN_DIR"intletdefault_auth=constant"MYSQL_DEFAULT_AUTH"intletbind=constant"MYSQL_OPT_BIND"intletssl_key=constant"MYSQL_OPT_SSL_KEY"intletssl_cert=constant"MYSQL_OPT_SSL_CERT"intletssl_ca=constant"MYSQL_OPT_SSL_CA"intletssl_capath=constant"MYSQL_OPT_SSL_CAPATH"intletssl_cipher=constant"MYSQL_OPT_SSL_CIPHER"intletssl_crl=constant"MYSQL_OPT_SSL_CRL"intletssl_crlpath=constant"MYSQL_OPT_SSL_CRLPATH"intletconnect_attr_reset=constant"MYSQL_OPT_CONNECT_ATTR_RESET"intletconnect_attr_add=constant"MYSQL_OPT_CONNECT_ATTR_ADD"intletconnect_attr_delete=constant"MYSQL_OPT_CONNECT_ATTR_DELETE"intletserver_public_key=constant"MYSQL_SERVER_PUBLIC_KEY"intletenable_cleartext_plugin=constant"MYSQL_ENABLE_CLEARTEXT_PLUGIN"intletnonblock=constant"MYSQL_OPT_NONBLOCK"intendmoduleFlags=structletcompress=constant"CLIENT_COMPRESS"int32_tletfound_rows=constant"CLIENT_FOUND_ROWS"int32_tletignore_sigpipe=constant"CLIENT_IGNORE_SIGPIPE"int32_tletignore_space=constant"CLIENT_IGNORE_SPACE"int32_tletinteractive=constant"CLIENT_INTERACTIVE"int32_tletlocal_files=constant"CLIENT_LOCAL_FILES"int32_tletmulti_results=constant"CLIENT_MULTI_RESULTS"int32_tletmulti_statements=constant"CLIENT_MULTI_STATEMENTS"int32_tletno_schema=constant"CLIENT_NO_SCHEMA"int32_tletodbc=constant"CLIENT_ODBC"int32_tletssl=constant"CLIENT_SSL"int32_tletremember_options=constant"CLIENT_REMEMBER_OPTIONS"int32_tendmoduleServer_options=structletmulti_statements_on=constant"MYSQL_OPTION_MULTI_STATEMENTS_ON"intletmulti_statements_off=constant"MYSQL_OPTION_MULTI_STATEMENTS_OFF"intendmoduleWait_status=structletread=constant"MYSQL_WAIT_READ"intletwrite=constant"MYSQL_WAIT_WRITE"intletexcept=constant"MYSQL_WAIT_EXCEPT"intlettimeout=constant"MYSQL_WAIT_TIMEOUT"intendmoduleType=structletnull=constant"MYSQL_TYPE_NULL"intlettiny=constant"MYSQL_TYPE_TINY"intletyear=constant"MYSQL_TYPE_YEAR"intletshort=constant"MYSQL_TYPE_SHORT"intletint24=constant"MYSQL_TYPE_INT24"intletlong=constant"MYSQL_TYPE_LONG"intletfloat=constant"MYSQL_TYPE_FLOAT"intletlong_long=constant"MYSQL_TYPE_LONGLONG"intletdouble=constant"MYSQL_TYPE_DOUBLE"intletdecimal=constant"MYSQL_TYPE_DECIMAL"intletnew_decimal=constant"MYSQL_TYPE_NEWDECIMAL"intletstring=constant"MYSQL_TYPE_STRING"intletvar_string=constant"MYSQL_TYPE_VAR_STRING"intlettiny_blob=constant"MYSQL_TYPE_TINY_BLOB"intletblob=constant"MYSQL_TYPE_BLOB"intletmedium_blob=constant"MYSQL_TYPE_MEDIUM_BLOB"intletlong_blob=constant"MYSQL_TYPE_LONG_BLOB"intletbit=constant"MYSQL_TYPE_BIT"intlettime=constant"MYSQL_TYPE_TIME"intletdate=constant"MYSQL_TYPE_DATE"intletdatetime=constant"MYSQL_TYPE_DATETIME"intlettimestamp=constant"MYSQL_TYPE_TIMESTAMP"intendmoduleStmt_attr=structletupdate_max_length=constant"STMT_ATTR_UPDATE_MAX_LENGTH"intletcursor_type=constant"STMT_ATTR_CURSOR_TYPE"intletprefetch_rows=constant"STMT_ATTR_PREFETCH_ROWS"intendmoduleReturn_code=structletno_data=constant"MYSQL_NO_DATA"intletdata_truncated=constant"MYSQL_DATA_TRUNCATED"intendmoduleBind=structtypebindtypet=bindstructurelett:ttyp=structure"st_mysql_bind"letlength=fieldt"length"(ptrulong)letis_null=fieldt"is_null"(ptrchar)letbuffer=fieldt"buffer"(ptrvoid)leterror=fieldt"error"(ptrchar)letbuffer_length=fieldt"buffer_length"ulongletbuffer_type=fieldt"buffer_type"intletis_unsigned=fieldt"is_unsigned"charlet()=sealtendmoduleField=structtypefieldtypet=fieldstructurelett:ttyp=structure"st_mysql_field"letname=fieldt"name"stringletmax_length=fieldt"max_length"ulongletflags=fieldt"flags"uintlettyp=fieldt"type"intlet()=sealtmoduleFlags=structletnot_null=constant"NOT_NULL_FLAG"uintletunsigned=constant"UNSIGNED_FLAG"uintendendmoduleTime=structtypetimetypet=timestructurelett:ttyp=structure"st_mysql_time"letyear=fieldt"year"uintletmonth=fieldt"month"uintletday=fieldt"day"uintlethour=fieldt"hour"uintletminute=fieldt"minute"uintletsecond=fieldt"second"uintletsecond_part=fieldt"second_part"ulonglet()=sealtendendmoduleFunctions(F:Ctypes.FOREIGN)=structopenFtypest_mysqlletst_mysql:st_mysqlstructuretyp=structure"st_mysql"typemysql=st_mysqlstructureptrletmysql:mysqltyp=ptrst_mysqltypemysql_opt=st_mysqlstructureptroptionletmysql_opt:mysql_opttyp=ptr_optst_mysqltypest_mysql_resletst_mysql_res:st_mysql_resstructuretyp=structure"st_mysql_res"typeres=st_mysql_resstructureptrletres:restyp=ptrst_mysql_restyperes_opt=st_mysql_resstructureptroptionletres_opt:res_opttyp=ptr_optst_mysql_restyperow=charptrptrletrow:rowtyp=ptr(ptrchar)typerow_opt=charptrptroptionletrow_opt:row_opttyp=ptr_opt(ptrchar)typest_mysql_stmtletst_mysql_stmt:st_mysql_stmtstructuretyp=structure"st_mysql_stmt"typestmt=st_mysql_stmtstructureptrletstmt:stmttyp=ptrst_mysql_stmttypestmt_opt=st_mysql_stmtstructureptroptionletstmt_opt:stmt_opttyp=ptr_optst_mysql_stmttypest_mysql_fieldletst_mysql_field:st_mysql_fieldstructuretyp=structure"st_mysql_field"typefield=st_mysql_fieldstructureptrletfield:fieldtyp=ptrst_mysql_fieldtypemy_bool=charletmy_bool:chartyp=char(* Common API *)letmysql_library_init=foreign"mysql_server_init"(int@->ptr_opt(ptrchar)@->ptr_opt(ptrchar)@->returningint)letmysql_library_end=foreign"mysql_server_end"(void@->returningvoid)letmysql_init=foreign"mysql_init"(mysql_opt@->returningmysql_opt)letmysql_close=foreign"mysql_close"(mysql@->returningvoid)letmysql_options=foreign"mysql_options"(mysql@->int@->ptrvoid@->returningint)letmysql_options4=foreign"mysql_options4"(mysql@->int@->ptrvoid@->ptrvoid@->returningint)letmysql_num_fields=foreign"mysql_num_fields"(res@->returningint)letmysql_errno=foreign"mysql_errno"(mysql@->returningint)letmysql_error=foreign"mysql_error"(mysql@->returningstring)letmysql_stmt_init=foreign"mysql_stmt_init"(mysql@->returningstmt_opt)letmysql_stmt_errno=foreign"mysql_stmt_errno"(stmt@->returningint)letmysql_stmt_error=foreign"mysql_stmt_error"(stmt@->returningstring)letmysql_stmt_attr_set=foreign"mysql_stmt_attr_set"(stmt@->int@->ptrvoid@->returningmy_bool)(* XXX ptr void because we can't access Bind.t here *)letmysql_stmt_bind_param=foreign"mysql_stmt_bind_param"(stmt@->ptrvoid@->returningmy_bool)letmysql_stmt_param_count=foreign"mysql_stmt_param_count"(stmt@->returningulong)letmysql_stmt_result_metadata=foreign"mysql_stmt_result_metadata"(stmt@->returningres_opt)(* XXX ptr void because we can't access Field.t here *)letmysql_fetch_field_direct=foreign"mysql_fetch_field_direct"(res@->uint@->returning(ptrvoid))(* XXX ptr void because we can't access Bind.t here *)letmysql_stmt_bind_result=foreign"mysql_stmt_bind_result"(stmt@->ptrvoid@->returningmy_bool)letmysql_stmt_num_rows=foreign"mysql_stmt_num_rows"(stmt@->returningullong)letmysql_stmt_affected_rows=foreign"mysql_stmt_affected_rows"(stmt@->returningullong)letmysql_stmt_insert_id=foreign"mysql_stmt_insert_id"(stmt@->returningullong)(* Blocking API *)letmysql_free_result=foreign"mysql_free_result"(res@->returningvoid)letmysql_real_connect=foreign"mysql_real_connect"(mysql@->ptr_optchar@->ptr_optchar@->ptr_optchar@->ptr_optchar@->uint@->ptr_optchar@->ulong@->returningmysql_opt)letmysql_commit=foreign"mysql_commit"(mysql@->returningmy_bool)letmysql_rollback=foreign"mysql_rollback"(mysql@->returningmy_bool)letmysql_autocommit=foreign"mysql_autocommit"(mysql@->my_bool@->returningmy_bool)letmysql_set_character_set=foreign"mysql_set_character_set"(mysql@->ptrchar@->returningint)letmysql_select_db=foreign"mysql_select_db"(mysql@->ptrchar@->returningint)letmysql_change_user=foreign"mysql_change_user"(mysql@->ptrchar@->ptrchar@->ptr_optchar@->returningmy_bool)letmysql_set_server_option=foreign"mysql_set_server_option"(mysql@->int@->returningint)letmysql_ping=foreign"mysql_ping"(mysql@->returningint)letmysql_get_server_info=foreign"mysql_get_server_info"(mysql@->returningstring)letmysql_get_server_version=foreign"mysql_get_server_version"(mysql@->returningulong)letmysql_get_host_info=foreign"mysql_get_host_info"(mysql@->returningstring)letmysql_get_proto_info=foreign"mysql_get_proto_info"(mysql@->returninguint)letmysql_stmt_prepare=foreign"mysql_stmt_prepare"(stmt@->ptrchar@->ulong@->returningint)letmysql_stmt_reset=foreign"mysql_stmt_reset"(stmt@->returningmy_bool)letmysql_stmt_execute=foreign"mysql_stmt_execute"(stmt@->returningint)letmysql_stmt_fetch=foreign"mysql_stmt_fetch"(stmt@->returningint)letmysql_stmt_close=foreign"mysql_stmt_close"(stmt@->returningmy_bool)letmysql_stmt_store_result=foreign"mysql_stmt_store_result"(stmt@->returningint)letmysql_stmt_free_result=foreign"mysql_stmt_free_result"(stmt@->returningmy_bool)letmysql_real_query=foreign"mysql_real_query"(mysql@->ptrchar@->ulong@->returningint)(* Nonblocking API *)letmysql_free_result_start=foreign"mysql_free_result_start"(res@->returningint)letmysql_free_result_cont=foreign"mysql_free_result_cont"(res@->int@->returningint)letmysql_close_start=foreign"mysql_close_start"(mysql@->returningint)letmysql_close_cont=foreign"mysql_close_cont"(mysql@->int@->returningint)letmysql_real_connect_start=foreign"mysql_real_connect_start"(ptrmysql_opt@->mysql@->ptr_optchar@->ptr_optchar@->ptr_optchar@->ptr_optchar@->uint@->ptr_optchar@->ulong@->returningint)letmysql_real_connect_cont=foreign"mysql_real_connect_cont"(ptrmysql_opt@->mysql@->int@->returningint)letmysql_get_socket=foreign"mysql_get_socket"(mysql@->returningint)letmysql_get_timeout_value=foreign"mysql_get_timeout_value"(mysql@->returninguint)letmysql_get_timeout_value_ms=foreign"mysql_get_timeout_value_ms"(mysql@->returninguint)letmysql_set_character_set_start=foreign"mysql_set_character_set_start"(ptrint@->mysql@->ptrchar@->returningint)letmysql_set_character_set_cont=foreign"mysql_set_character_set_cont"(ptrint@->mysql@->int@->returningint)letmysql_select_db_start=foreign"mysql_select_db_start"(ptrint@->mysql@->ptrchar@->returningint)letmysql_select_db_cont=foreign"mysql_select_db_cont"(ptrint@->mysql@->int@->returningint)letmysql_change_user_start=foreign"mysql_change_user_start"(ptrmy_bool@->mysql@->ptrchar@->ptrchar@->ptr_optchar@->returningint)letmysql_change_user_cont=foreign"mysql_change_user_cont"(ptrmy_bool@->mysql@->int@->returningint)letmysql_set_server_option_start=foreign"mysql_set_server_option_start"(ptrint@->mysql@->int@->returningint)letmysql_set_server_option_cont=foreign"mysql_set_server_option_cont"(ptrint@->mysql@->int@->returningint)letmysql_ping_start=foreign"mysql_ping_start"(ptrint@->mysql@->returningint)letmysql_ping_cont=foreign"mysql_ping_cont"(ptrint@->mysql@->int@->returningint)letmysql_stmt_prepare_start=foreign"mysql_stmt_prepare_start"(ptrint@->stmt@->ptrchar@->ulong@->returningint)letmysql_stmt_prepare_cont=foreign"mysql_stmt_prepare_cont"(ptrint@->stmt@->int@->returningint)letmysql_stmt_reset_start=foreign"mysql_stmt_reset_start"(ptrmy_bool@->stmt@->returningint)letmysql_stmt_reset_cont=foreign"mysql_stmt_reset_cont"(ptrmy_bool@->stmt@->int@->returningint)letmysql_stmt_execute_start=foreign"mysql_stmt_execute_start"(ptrint@->stmt@->returningint)letmysql_stmt_execute_cont=foreign"mysql_stmt_execute_cont"(ptrint@->stmt@->int@->returningint)letmysql_stmt_fetch_start=foreign"mysql_stmt_fetch_start"(ptrint@->stmt@->returningint)letmysql_stmt_fetch_cont=foreign"mysql_stmt_fetch_cont"(ptrint@->stmt@->int@->returningint)letmysql_stmt_store_result_start=foreign"mysql_stmt_store_result_start"(ptrint@->stmt@->returningint)letmysql_stmt_store_result_cont=foreign"mysql_stmt_store_result_cont"(ptrint@->stmt@->int@->returningint)letmysql_stmt_close_start=foreign"mysql_stmt_close_start"(ptrmy_bool@->stmt@->returningint)letmysql_stmt_close_cont=foreign"mysql_stmt_close_cont"(ptrmy_bool@->stmt@->int@->returningint)letmysql_stmt_free_result_start=foreign"mysql_stmt_free_result_start"(ptrmy_bool@->stmt@->returningint)letmysql_stmt_free_result_cont=foreign"mysql_stmt_free_result_cont"(ptrmy_bool@->stmt@->int@->returningint)letmysql_commit_start=foreign"mysql_commit_start"(ptrmy_bool@->mysql@->returningint)letmysql_commit_cont=foreign"mysql_commit_cont"(ptrmy_bool@->mysql@->int@->returningint)letmysql_rollback_start=foreign"mysql_rollback_start"(ptrmy_bool@->mysql@->returningint)letmysql_rollback_cont=foreign"mysql_rollback_cont"(ptrmy_bool@->mysql@->int@->returningint)letmysql_autocommit_start=foreign"mysql_autocommit_start"(ptrmy_bool@->mysql@->my_bool@->returningint)letmysql_autocommit_cont=foreign"mysql_autocommit_cont"(ptrmy_bool@->mysql@->int@->returningint)letmysql_stmt_next_result_start=foreign"mysql_stmt_next_result_start"(ptrint@->stmt@->returningint)letmysql_stmt_next_result_cont=foreign"mysql_stmt_next_result_cont"(ptrint@->stmt@->int@->returningint)letmysql_real_query_start=foreign"mysql_real_query_start"(ptrint@->mysql@->ptrchar@->ulong@->returningint)letmysql_real_query_cont=foreign"mysql_real_query_cont"(ptrint@->mysql@->int@->returningint)end