Server IP : 103.119.228.120 / Your IP : 3.146.152.119 Web Server : Apache System : Linux v8.techscape8.com 3.10.0-1160.119.1.el7.tuxcare.els2.x86_64 #1 SMP Mon Jul 15 12:09:18 UTC 2024 x86_64 User : nobody ( 99) PHP Version : 5.6.40 Disable Function : shell_exec,symlink,system,exec,proc_get_status,proc_nice,proc_terminate,define_syslog_variables,syslog,openlog,closelog,escapeshellcmd,passthru,ocinum cols,ini_alter,leak,listen,chgrp,apache_note,apache_setenv,debugger_on,debugger_off,ftp_exec,dl,dll,myshellexec,proc_open,socket_bind,proc_close,escapeshellarg,parse_ini_filepopen,fpassthru,exec,passthru,escapeshellarg,escapeshellcmd,proc_close,proc_open,ini_alter,popen,show_source,proc_nice,proc_terminate,proc_get_status,proc_close,pfsockopen,leak,apache_child_terminate,posix_kill,posix_mkfifo,posix_setpgid,posix_setsid,posix_setuid,dl,symlink,shell_exec,system,dl,passthru,escapeshellarg,escapeshellcmd,myshellexec,c99_buff_prepare,c99_sess_put,fpassthru,getdisfunc,fx29exec,fx29exec2,is_windows,disp_freespace,fx29sh_getupdate,fx29_buff_prepare,fx29_sess_put,fx29shexit,fx29fsearch,fx29ftpbrutecheck,fx29sh_tools,fx29sh_about,milw0rm,imagez,sh_name,myshellexec,checkproxyhost,dosyayicek,c99_buff_prepare,c99_sess_put,c99getsource,c99sh_getupdate,c99fsearch,c99shexit,view_perms,posix_getpwuid,posix_getgrgid,posix_kill,parse_perms,parsesort,view_perms_color,set_encoder_input,ls_setcheckboxall,ls_reverse_all,rsg_read,rsg_glob,selfURL,dispsecinfo,unix2DosTime,addFile,system,get_users,view_size,DirFiles,DirFilesWide,DirPrintHTMLHeaders,GetFilesTotal,GetTitles,GetTimeTotal,GetMatchesCount,GetFileMatchesCount,GetResultFiles,fs_copy_dir,fs_copy_obj,fs_move_dir,fs_move_obj,fs_rmdir,SearchText,getmicrotime MySQL : ON | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /usr/local/share/man/man3/ |
Upload File : |
.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "DBIx::MyParsePP 3" .TH DBIx::MyParsePP 3 "2007-08-18" "perl v5.16.3" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" DBIx::MyParsePP \- Pure\-perl SQL parser based on MySQL grammar and lexer .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 2 \& use DBIx::MyParsePP; \& use Data::Dumper; \& \& my $parser = DBIx::MyParsePP\->new(); \& \& my $query = $parser\->parse("SELECT 1"); \& \& print Dumper $query; \& print $query\->toString(); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\f(CW\*(C`DBIx::MyParsePP\*(C'\fR is a pure-perl \s-1SQL\s0 parser that implements the MySQL grammar and lexer. The grammar was automatically converted from the original \f(CW\*(C`sql_yacc.yy\*(C'\fR file by removing all the C code. The lexer comes from \f(CW\*(C`sql_lex.cc\*(C'\fR, completely translated in Perl almost verbatim. .PP The grammar is converted into Perl form using Parse::Yapp. .SH "CONSTRUCTOR" .IX Header "CONSTRUCTOR" \&\f(CW\*(C`charset\*(C'\fR, \f(CW\*(C`version\*(C'\fR, \f(CW\*(C`sql_mode\*(C'\fR, \f(CW\*(C`client_capabilities\*(C'\fR and \f(CW\*(C`stmt_prepare_mode\*(C'\fR can be passed as arguments to the constructor. Please \f(CW\*(C`use DBIx::MyParsePP::Lexer\*(C'\fR to bring in the required constants and see DBIx::MyParsePP::Lexer for information. .SH "METHODS" .IX Header "METHODS" \&\f(CW\*(C`DBIx::MyParsePP\*(C'\fR provides \f(CW\*(C`parse()\*(C'\fR which takes the string to be parsed. The result is a DBIx::MyParsePP::Query object which contains the result from the parsing. .PP Queries can be reconstructed back into \s-1SQL\s0 by calling the \f(CW\*(C`toString()\*(C'\fR method. .SH "SPECIAL CONSIDERATIONS" .IX Header "SPECIAL CONSIDERATIONS" The file containing the grammar \f(CW\*(C`lib/DBIx/MyParsePP/Parser.pm\*(C'\fR is about 5 megabytes in size and takes a while to load. Compex statements take a while to parse, e.g. the first Twins query from the MySQL manual can only be parsed at a speed of few queries per second per 1GHz of \s-1CPU.\s0 If you require a full-speed parsing solution, please take a look at DBIx::MyParse, which requires a \s-1GCC\s0 compiler and produces more concise parse trees. .PP The parse trees produced by \f(CW\*(C`DBIx::MyParsePP\*(C'\fR contain one leaf for every grammar rule that has been matched, even rules that serve no useful purpose. Therefore, parsing event simple statements such as \f(CW\*(C`SELECT 1\*(C'\fR produce trees dozens of levels deep. Please exercise caution when walking those trees recursively. The DBIx::MyParsePP::Rule module contains the \f(CW\*(C`extract()\*(C'\fR and \f(CW\*(C`shrink()\*(C'\fR methods which are useful for dealing with the inherent complexity of the MySQL grammar. .SH "USING GRAMMARS FROM OTHER MYSQL VERSIONS" .IX Header "USING GRAMMARS FROM OTHER MYSQL VERSIONS" The package by default parses strings using the grammar from MySQL version 5.0.45. If you wish to use the grammar from a different version, you can use the \f(CW\*(C`bin/myconvpp.pl\*(C'\fR script to prepare the grammar: .PP .Vb 1 \& $ perl bin/myconvpp.pl \-\- .Ve .SH "SEE ALSO" .IX Header "SEE ALSO" For Yacc grammars, please see the Bison manual at: .PP .Vb 1 \& http://www.gnu.org/software/bison .Ve .PP For generating Yacc parsers in Perl, please see: .PP .Vb 1 \& http://search.cpan.org/~fdesar .Ve .PP For a full-speed \*(C+\-based parser that generates nicer parse trees, please see DBIx::MyParse .SH "AUTHOR" .IX Header "AUTHOR" Philip Stoev, <philip@stoev.org> .SH "COPYRIGHT AND LICENSE" .IX Header "COPYRIGHT AND LICENSE" Copyright (C) 2007 by Philip Stoev .PP This library is free software; you can redistribute it and/or modify it under the terms of the \s-1GNU\s0 General Public Licence as specified in the \s-1README\s0 and \s-1LICENCE\s0 files. .PP Please note that this module contains code copyright by MySQL \s-1AB\s0 released under the \s-1GNU\s0 General Public Licence, and not the \s-1GNU\s0 Lesser General Public Licence. Using this code for commercial purposes may require purchasing a licence from MySQL \s-1AB.\s0 .PP The Parse::Yapp module and its related modules and shell scripts are copyright (c) 1998\-2001 Francois Desarmenien, France. All rights reserved.