SIU-Toba / framework

Framework para desarrollo rápido de aplicaciones web
http://toba.siu.edu.ar
21 stars 24 forks source link

Se agrega el método copiar para la implementacion de postgres. #18

Closed miguelius closed 6 years ago

miguelius commented 6 years ago

Hola!

Agregué un método en la implementación de db para postgres que permite hacer un COPY para subir una cantidad masiva de filas.

Saludos, Miguel

enfoqueNativo commented 6 years ago

Hola Miguel, que ventaja tiene este metodo sobre toba_db_postgres7::insert_masivo ?. Saludos

miguelius commented 6 years ago

Hola, Ricardo!

Fuera de la ventaja de que al método copiar lo conozco y al otro no lo conocía, no veo ventajas. Habiéndolo conocido puedo decir que prefiero el insert_masivo, sin dudas! Lo único que por ahí tiene es que hace el log, pero está mejor el mapeo de parámetros que tiene insert_masivo.

Gracias y disculpá la redundancia jeje

Saludos, Miguel

On Mon, Jan 29, 2018 at 11:14 AM, enfoqueNativo notifications@github.com wrote:

Hola Miguel, que ventaja tiene este metodo sobre toba_db_postgres7::insert_masivo ?. Saludos

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/SIU-Toba/framework/pull/18#issuecomment-361257559, or mute the thread https://github.com/notifications/unsubscribe-auth/AEYeiNwOIZlFdL3kyTDqyjy4vAu964dDks5tPdJKgaJpZM4Ru4aM .

enfoqueNativo commented 6 years ago

Np, gracias por tomarte el tiempo de hacer el PR, cualquier otra cosa que quieras ir agregando metele nomas.

Saludos

miguelius commented 6 years ago

Hay una sola diferencia, que es que usa directamente la invocación mediante pdo en vez de llamar a la función. ¿Qué conviene más?

On Mon, Jan 29, 2018 at 11:43 AM, enfoqueNativo notifications@github.com wrote:

Closed #18 https://github.com/SIU-Toba/framework/pull/18.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/SIU-Toba/framework/pull/18#event-1446451109, or mute the thread https://github.com/notifications/unsubscribe-auth/AEYeiOzf1KovErAtSqh8dbBsECbpYl2sks5tPdkQgaJpZM4Ru4aM .

andres-blanco commented 6 years ago

en la doc del pg_copy_from dice:

La función pg_copy_from() inserta registros dentro de una tabla desde el parámetro rows. Esta realiza internamente un comando SQL COPY FROM para insertar registros.

Me imagino que es lo mismo que pdo pero la func específica debe ser menos injection-prone

miguelius commented 6 years ago

Bueno, el método insert_masivo abre su propia conexión, por lo cuál no es feliz llamarlo desde una transacción. Voy a tratar de combinar a los métodos para tener un híbrido que funcione en el scope de una transacción existente.

Deseenme suerte!

2018-01-29 13:22 GMT-03:00 Andrés Blanco notifications@github.com:

en la doc del pg_copy_from dice:

La función pg_copy_from() inserta registros dentro de una tabla desde el parámetro rows. Esta realiza internamente un comando SQL COPY FROM para insertar registros.

Me imagino que es lo mismo que pdo pero la func específica debe ser menos injection-prone

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/SIU-Toba/framework/pull/18#issuecomment-361299624, or mute the thread https://github.com/notifications/unsubscribe-auth/AEYeiN6JkCbTdJOae4RC49QHt_3P3eTxks5tPfAwgaJpZM4Ru4aM .

andres-blanco commented 6 years ago

@enfoqueNativo tenés idea xq se está creando la conexión cada vez que se invoca el insert_masivo?

andres-blanco commented 6 years ago

Ahí estaba mirando y el código del insert_masivo tiene ~11 años. Me parece lo mejor usar el pgsqlCopyFromArray de miguel que parece más "nuevo" y no hay que usar la conexión nativa de pg. O sea, dejar la interfaz del método insert_nativo tal cuál está pero usar la implementación de @miguelius . @enfoqueNativo fijate si te cierra

enfoqueNativo commented 6 years ago

@andres-blanco @miguelius va como piña esa opcion me parece, lo unico que no se si le pasaria es lo del log.. porque de todas maneras no es la SQL que se ejecuta, tener un log de esa SQL puede llevar a confusiones.

De ultima si algun dia hay un error, se recurre al log de postgres derecho viejo.

@miguelius Lo que si, el PR fijate si podes hacerlo contra el branch dev/v3.0 asi ya va quedando en la rama de soporte.

enfoqueNativo commented 6 years ago

Done en #19