• Publicidad

Perl + SQL = Mantis DB

Todo acerca de las bases de datos que existen: SQL, MySQL, Oracle, Postgres, CSV, etc.

Perl + SQL = Mantis DB

Notapor hugon010 » 2008-04-23 22:41 @987

Les dejo la URL de un proyecto que apenas abrimos públicamente que refiere a un DBMS o administrador de Bases de Datos.

http://www.mantisdb.com/

Está en fase experimental pero ya es utilizable.

Nos encantaría que lo descargaran y lo prueben.
Está escrito 100% en Perl.

Es multiusuario, multitarea y preparado para una alta concurrencia de consultas de modificación de datos. Posee lenguaje de consultas compatible con SQL ANSI-92

Espero les guste.

Saludos cordiales.
hugon010
Perlero nuevo
Perlero nuevo
 
Mensajes: 2
Registrado: 2008-04-23 22:29 @978

Publicidad

Notapor explorer » 2008-04-24 08:02 @376

Bienvenidos al foro de Perl en Español.

Enhorabuena por este desarrollo. Impresionante.

De todas formas, ahí van unos comentarios:

En el algoritmo de Maza, se dice que se utiliza esto:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
@sorted = sort { ($a->[$orderby] <=> $b->[$orderby]) || ($a->[$orderby] cmp $b->[$orderby]) } @unsorted;
Coloreado en 0.003 segundos, usando GeSHi 1.0.8.4

Claramente, es necesario hacer esto para distinguir los casos de ordenación numérica y alfabética, pero se pude optimizar un poquito más utilizando, por ejemplo, el sistema de índices que se comenta en la documentación de sort().

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
#!/usr/bin/perl
use warnings;
use strict;

use Benchmark qw(:all);
use Data::Dumper;

my @array;
for my $i ( 0 .. 100_000 ) {
  push @array, [ map { int rand 100_000  } 1 .. 10  ]

}

my $orderby = 0;

cmpthese( 100, {
    'Completo' => sub {
        my @ordenado
            =
                sort {
                    ($a->[$orderby] <=> $b->[$orderby]) || ($a->[$orderby] cmp $b->[$orderby])
                }
                @array
            ;
#        print Dumper(\@ordenado[0..2]);
    },
    'Solo <=>' => sub {
        my @ordenado
            =
                sort {
                    $a->[$orderby] <=> $b->[$orderby]
                }
                @array
            ;
#        print Dumper(\@ordenado[0..2]);
    },
    'Indices'     => sub {
        my @indice = ( map { $array[$_][$orderby] } 0 .. $#array );
        my @ordenado
            = @array[
                sort {
                    ($indice[$a] <=> $indice[$b]) or ($indice[$a] cmp $indice[$b])
                } 0 .. $#array
              ]
            ;
#        print Dumper(\@ordenado[0..2]);
    },
    'Eval'     => sub {
        # Si el campo a ordenar es numérico, creamos el método de comp. numérico
        my $metodo = sub { $a->[$orderby] <=> $b->[$orderby] };
        my @ordenado = sort $metodo @array;
#        print Dumper(\@ordenado[0..2]);
    },
});

__END__
 
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4

Código: Seleccionar todo
explorer@joaquin:~/Documents/Desarrollo> ./kk.pl
           Rate Completo     Eval Solo <=>  Indices
Completo 1.16/s       --      -0%      -7%     -15%
Eval     1.16/s       0%       --      -7%     -15%
Solo <=> 1.25/s       8%       7%       --      -9%
Indices  1.37/s      18%      17%       9%       --
Última edición por explorer el 2008-04-25 12:12 @550, editado 1 vez en total
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14476
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Acerca de tu comentario

Notapor hugon010 » 2008-04-25 09:17 @428

Explorer, tu no sabes cuánto aprecio este tipo de comentarios al que le podemos extraer mucho aprendizaje.

Sabes, me considero estudiante de Perl, lenguaje que me ha fascinado desde que lo conocí. Y me falta mucho por aprender. Este desarrollo es práctica para poder aprender más, aunque no por eso no pueda ser utilizado en producción algún día... algún día.

Este foro tal vez sea de los más completos que he visto en español, y me agradaría mucho recibir más críticas que puedan surgir con el post.

Por mi parte me siento muy complacido de compartir por lo menos mi entusiasmo por el open source a los Perleros de todas partes.
Actualmente estoy trabajando en introducir precisamente métodos con Benchmark para mostrar tiempos de las consultas.

De nuevo gracias y felicidades por este foro.
Saludos desde México.
hugon010
Perlero nuevo
Perlero nuevo
 
Mensajes: 2
Registrado: 2008-04-23 22:29 @978


Volver a Bases de datos

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 2 invitados