403Webshell
Server IP : 103.119.228.120  /  Your IP : 3.144.8.68
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/perl5/SQL/Statement/

Upload File :
current_dir [ Writeable] document_root [ Writeable]

 

Command :


[ Back ]     

Current File : /usr/local/share/perl5/SQL/Statement/RAM.pm
############################
package SQL::Statement::RAM;
############################

######################################################################
#
# This module is copyright (c), 2001,2005 by Jeff Zucker.
# This module is copyright (c), 2007-2016 by Jens Rehsack.
# All rights reserved.
#
# It may be freely distributed under the same terms as Perl itself.
# See below for help and copyright information (search for SYNOPSIS).
#
######################################################################

use strict;
use warnings FATAL => "all";

use vars qw($VERSION);
$VERSION = '1.410';

####################################
package SQL::Statement::RAM::Table;
####################################

use strict;
use warnings FATAL => "all";

use SQL::Eval ();

use vars qw(@ISA);
@ISA = qw(SQL::Eval::Table);

use Carp qw(croak);

sub new
{
    my ( $class, $tname, $col_names, $data_tbl ) = @_;
    my %table = (
        NAME         => $tname,
        index        => 0,
        records      => $data_tbl,
        col_names    => $col_names,
        capabilities => {
            inplace_update => 1,
            inplace_delete => 1,
        },
    );
    my $self = $class->SUPER::new( \%table );
}

##################################
# fetch_row()
##################################
sub fetch_row
{
    my ( $self, $data ) = @_;

    return $self->{row} =
        ( $self->{records} and ( $self->{index} < scalar( @{ $self->{records} } ) ) )
      ? [ @{ $self->{records}->[ $self->{index}++ ] } ]
      : undef;
}

####################################
# insert_new_row()
####################################
sub insert_new_row
{
    my ( $self, $data, $fields ) = @_;
    push @{ $self->{records} }, [ @{$fields} ];
    return 1;
}

##################################
# delete_current_row()
##################################
sub delete_current_row
{
    my ( $self, $data, $fields ) = @_;
    my $currentRow = $self->{index} - 1;
    croak "No current row" unless ( $currentRow >= 0 );
    splice @{ $self->{records} }, $currentRow, 1;
    --$self->{index};
    return 1;
}

##################################
# update_current_row()
##################################
sub update_current_row
{
    my ( $self, $data, $fields ) = @_;
    my $currentRow = $self->{index} - 1;
    croak "No current row" unless ( $currentRow >= 0 );
    $self->{records}->[$currentRow] = [ @{$fields} ];
    return 1;
}

##################################
# truncate()
##################################
sub truncate
{
    return splice @{ $_[0]->{records} }, $_[0]->{index};
}

#####################################
# push_names()
#####################################
sub push_names
{
    my ( $self, $data, $names ) = @_;
    $self->{col_names}     = $names;
    $self->{org_col_names} = [ @{$names} ];
    $self->{col_nums}      = SQL::Eval::Table::_map_colnums($names);
}

#####################################
# drop()
#####################################
sub drop
{
    my ( $self, $data ) = @_;
    my $tname = $self->{NAME};
    delete $data->{Database}->{sql_ram_tables}->{$tname};
    return 1;
}

#####################################
# seek()
#####################################
sub seek
{
    my ( $self, $data, $pos, $whence ) = @_;
    return unless defined $self->{records};
    my ($currentRow) = $self->{index};
    if ( $whence == 0 )
    {
        $currentRow = $pos;
    }
    elsif ( $whence == 1 )
    {
        $currentRow += $pos;
    }
    elsif ( $whence == 2 )
    {
        $currentRow = @{ $self->{records} } + $pos;
    }
    else
    {
        croak $self . "->seek: Illegal whence argument ($whence)";
    }
    if ( $currentRow < 0 )
    {
        croak "Illegal row number: $currentRow";
    }
    $self->{index} = $currentRow;
}

1;

=pod

=head1 NAME

SQL::Statement::RAM

=head1 SYNOPSIS

  SQL::Statement::RAM

=head1 DESCRIPTION

This package contains support for the internally used
SQL::Statement::RAM::Table.

=head1 INHERITANCE

  SQL::Statement::RAM

  SQL::Statement::RAM::Table
  ISA SQL::Eval::Table

=head1 SQL::Statement::RAM::Table

=head2 METHODS

=over 8

=item new

Instantiates a new C<SQL::Statement::RAM::Table> object, used for temporary
tables.

    CREATE TEMP TABLE foo ....

=item fetch_row

Fetches the next row

=item push_row

As fetch_row except for writing

=item delete_current_row

Deletes the last fetched/pushed row

=item update_current_row

Updates the last fetched/pushed row

=item truncate

Truncates the table at the current position

=item push_names

Set the column names of the table

=item drop

Discards the table

=item seek

Seek the row pointer

=back

=head2 CAPABILITIES

This table has following capabilities:

=over 8

=item update_current_row

Using provided method C<update_current_row> and capability C<inplace_update>.

=item rowwise_update

By providing capability C<update_current_row>.

=item inplace_update

By definition (appropriate flag set in constructor).

=item delete_current_row

Using provided method C<delete_current_row> and capability C<inplace_delete>.

=item rowwise_delete

By providing capability C<delete_current_row>.

=item inplace_delete

By definition (appropriate flag set in constructor).

=back

=head1 SUPPORT

You can find documentation for this module with the perldoc command.

    perldoc SQL::Statement

You can also look for information at:

=over 4

=item * RT: CPAN's request tracker

L<http://rt.cpan.org/NoAuth/Bugs.html?Dist=SQL-Statement>

=item * AnnoCPAN: Annotated CPAN documentation

L<http://annocpan.org/dist/SQL-Statement>

=item * CPAN Ratings

L<http://cpanratings.perl.org/s/SQL-Statement>

=item * Search CPAN

L<http://search.cpan.org/dist/SQL-Statement/>

=back

=head1 AUTHOR AND COPYRIGHT

Copyright (c) 2001,2005 by Jeff Zucker: jzuckerATcpan.org
Copyright (c) 2007-2016 by Jens Rehsack: rehsackATcpan.org

All rights reserved.

You may distribute this module under the terms of either the GNU
General Public License or the Artistic License, as specified in
the Perl README file.

=cut

Youez - 2016 - github.com/yon3zu
LinuXploit