U a\"@sxdZddlmZddlmZddlmZddlmZddlmZGdd d eZ Gd d d eZ Gd d d eZ e Z dS)a .. dialect:: mysql+oursql :name: OurSQL :dbapi: oursql :connectstring: mysql+oursql://:@[:]/ :url: https://packages.python.org/oursql/ .. note:: The OurSQL MySQL dialect is legacy and is no longer supported upstream, and is **not tested as part of SQLAlchemy's continuous integration**. The recommended MySQL dialects are mysqlclient and PyMySQL. .. deprecated:: 1.4 The OurSQL DBAPI is deprecated and will be removed in a future version. Please use one of the supported DBAPIs to connect to mysql. Unicode ------- Please see :ref:`mysql_unicode` for current recommendations on unicode handling. )BIT) MySQLDialect)MySQLExecutionContext)types)utilc@seZdZddZdS) _oursqlBITcCsdS)z'oursql already converts mysql bits, so.N)selfdialectZcoltyper r aC:\Users\vtejo\AppData\Local\Temp\pip-unpacked-wheel-nyjtotrf\sqlalchemy\dialects\mysql\oursql.pyresult_processor,sz_oursqlBIT.result_processorN)__name__ __module__ __qualname__r r r r r r+src@seZdZeddZdS)MySQLExecutionContext_oursqlcCs|jddS)N_oursql_plain_queryF)execution_optionsget)r r r r plain_query3sz(MySQLExecutionContext_oursql.plain_queryN)rrrpropertyrr r r r r2src@s eZdZdZdZejrdZdZdZ dZ dZ e Z eejejejeeiZeddZd3ddZdd Zd d Zd d ZddZd4ddZd5ddZd6ddZd7ddZd8ddZ d9ddZ!d:ddZ"dd Z#d!d"Z$d;d#d$Z%d%d&Z&d'd(Z'd)d*Z(d+d,Z)dd1d2Z,dS)?MySQLDialect_oursqloursqlTcCstjdddtdS)NzThe OurSQL DBAPI is deprecated and will be removed in a future version. Please use one of the supported DBAPIs to connect to mysql.z1.4)versionr)rZwarn_deprecated __import__)clsr r r dbapiJs zMySQLDialect_oursql.dbapiNcCs*|r|jr|j|ddn |||dS)zMProvide an implementation of *cursor.execute(statement, parameters)*.TrN)rexecute)r cursorZ statement parameterscontextr r r do_executeTs zMySQLDialect_oursql.do_executecCs|jddddS)NZBEGINTr)rrr connectionr r r do_begin]szMySQLDialect_oursql.do_begincCsTtjr|j|}n|j}|j|||}d|}|jdd||dS)Nz'%s'Tr) rpy2kr$Z_escape_stringZ_connection_charsetencodedecoderZexec_driver_sql)r r$queryxidargcharsetr r r _xa_query`s zMySQLDialect_oursql._xa_querycCs||d|dS)Nz XA BEGIN %sr.r r$r+r r r do_begin_twophasersz%MySQLDialect_oursql.do_begin_twophasecCs ||d|||d|dS)N XA END %sz XA PREPARE %sr/r0r r r do_prepare_twophaseusz'MySQLDialect_oursql.do_prepare_twophaseFcCs$|s||d|||d|dS)Nr2zXA ROLLBACK %sr/r r$r+Z is_preparedZrecoverr r r do_rollback_twophaseysz(MySQLDialect_oursql.do_rollback_twophasecCs"|s|||||d|dS)Nz XA COMMIT %s)r3r.r4r r r do_commit_twophases z&MySQLDialect_oursql.do_commit_twophasecCst||jdd||SNTr&)r has_tableconnectr)r r$ table_nameschemar r r r8s zMySQLDialect_oursql.has_tablecKs&tj||jdd|fd|i|SNTr&r;)rget_table_optionsr9rr r$r:r;kwr r r r=sz%MySQLDialect_oursql.get_table_optionscKs&tj||jdd|fd|i|Sr<)r get_columnsr9rr>r r r r@szMySQLDialect_oursql.get_columnscKs$tj||jddfd|i|Sr<)rget_view_namesr9rr r$r;r?r r r rAsz"MySQLDialect_oursql.get_view_namescKst||jdd|Sr7)rget_table_namesr9rrBr r r rCs z#MySQLDialect_oursql.get_table_namescKstj||jddf|Sr7)rget_schema_namesr9r)r r$r?r r r rDs z$MySQLDialect_oursql.get_schema_namescCst||jddSr7)r initializerr#r r r rEs zMySQLDialect_oursql.initializecCs"t||jddjdd|||S)NT)Zclose_with_resultr&)r_show_create_tabler9r)r r$tabler-Z full_namer r r rFs z&MySQLDialect_oursql._show_create_tablecCsDt||jjr6|jdko4d|jdko4|jddS|jdkSdS)Nrrclosed)iiiii) isinstancerZProgrammingErrorerrnoargsendswith)r er$rr r r is_disconnects  z!MySQLDialect_oursql.is_disconnectcCs |jdddd}||jt|dtt|dtt|dtt|dtt|d t|d d rxd|d <nt|d t| d d |d <t|d t| dd i}dD]<}||kr||||dd<t||ddt||=q|r||d<g|gS)Ndbuserpasswd)ZdatabaseusernamepasswordportcompressZautopingZraise_on_warningsZdefault_charsetFr-Z use_unicodeTZ found_rows)Zssl_caZssl_keyZssl_certZ ssl_capathZ ssl_cipherssl) Ztranslate_connect_argsupdater*rZcoerce_kw_typeintboolpopstrr setdefault)r urloptsrWkeyr r r create_connect_argss4    z'MySQLDialect_oursql.create_connect_argscCs|jSN)rJ)r exceptionr r r _extract_error_codesz'MySQLDialect_oursql._extract_error_codecCs|jjS)z:Sniff out the character set in use for connection results.)r$r-r#r r r _detect_charsetsz#MySQLDialect_oursql._detect_charsetcCs|Sz.oursql isn't super-broken like MySQLdb, yaaay.)Zfetchallr rpr-r r r _compat_fetchallsz$MySQLDialect_oursql._compat_fetchallcCs|Srf)Zfetchonergr r r _compat_fetchone sz$MySQLDialect_oursql._compat_fetchonecCs|Srb)firstrgr r r _compat_first sz!MySQLDialect_oursql._compat_first)N)TF)TF)N)N)N)N)N)NN)N)N)N)-rrrZdriverZsupports_statement_cacherr'Zsupports_unicode_bindsZsupports_unicode_statementsZsupports_native_decimalZsupports_sane_rowcountZsupports_sane_multi_rowcountrZexecution_ctx_clsZ update_copyrZcolspecssqltypesZTimerr classmethodrr"r%r.r1r3r5r6r8r=r@rArCrDrErFrNrardrerirjrlr r r r r8sV       (  rN) __doc__baserrrrrmrrrrr r r r r s     Z