Mysql-Proxy : RW-SPLITTING et REWRITING

Posted on

La méthode consiste à ré-écrire les requêtes CREATE TEMPORARY TABLE, car non supportés en tant que CREATE TABLE. Notons qu’il vous faudra gérer les suppréssions de table. Voyons comment l’intégrer dans le script rw-splitting.lua:

Dans la fonction read_query(packet), commenté ces lignes dans le bloc if is_debug:
–if cmd.type == proxy.COM_QUERY then
        —    print(”  query            = ”        .. cmd.query)

puis ajouter après le bloc if is_debug:
 if string.byte(packet) == proxy.COM_QUERY then
          local query = string.sub(packet, 2)
         print(“marequete: “..query)
        
          local replacing = false
        
          if string.match(string.upper(query), ‘^%s*CREATE TEMPORARY TABLE’)then
              query = string.gsub(query,’^%s*%w+%s*%w+%s*%w+’,’CREATE TABLE’)
             replacing = true
           end
         if (replacing) then
              print(“replaced with ” .. query )
              proxy.queries:append(1, string.char(proxy.COM_QUERY) .. query, { resultset_is_needed = true } )
              return proxy.PROXY_SEND_QUERY
         end

 
Et commentez cette ligne:
–proxy.queries:append(1, packet, { resultset_is_needed = true })

Et voilà .

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s