mirror of
				https://github.com/psycopg/psycopg2.git
				synced 2025-11-04 09:47:30 +03:00 
			
		
		
		
	psycopg1 compatibility module.
This commit is contained in:
		
							parent
							
								
									5db7764207
								
							
						
					
					
						commit
						fdb68599c7
					
				
							
								
								
									
										14
									
								
								ChangeLog
									
									
									
									
									
								
							
							
						
						
									
										14
									
								
								ChangeLog
									
									
									
									
									
								
							| 
						 | 
					@ -1,3 +1,10 @@
 | 
				
			||||||
 | 
					2005-04-03  Federico Di Gregorio  <fog@debian.org>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						* psycopg/psycopgmodule.c (psyco_connect): factory ->
 | 
				
			||||||
 | 
						connection_factory.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						* lib/psycopg1.py: added psycopg 1.1.x compatibility module.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
2005-03-29  Federico Di Gregorio  <fog@debian.org>
 | 
					2005-03-29  Federico Di Gregorio  <fog@debian.org>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	* psycopg/pqpath.c (pq_is_busy): Staring from bug report from
 | 
						* psycopg/pqpath.c (pq_is_busy): Staring from bug report from
 | 
				
			||||||
| 
						 | 
					@ -6,6 +13,13 @@
 | 
				
			||||||
 
 | 
					 
 | 
				
			||||||
2005-03-24  Federico Di Gregorio  <fog@debian.org>
 | 
					2005-03-24  Federico Di Gregorio  <fog@debian.org>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						* psycopg/adapter_binary.c (binary_escape): propagated Andrea's
 | 
				
			||||||
 | 
						fix to binary adapter.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						* psycopg/adapter_qstring.c (qstring_quote): applied patch from
 | 
				
			||||||
 | 
						Andrea Arcangeli to fix allocation failures (>4Gb) on 64 bit
 | 
				
			||||||
 | 
						arches.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	* psycopg/typecast_array.c (typecast_array_tokenize): much better
 | 
						* psycopg/typecast_array.c (typecast_array_tokenize): much better
 | 
				
			||||||
	tokenization code.
 | 
						tokenization code.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -20,8 +20,6 @@ small and fast, and stable as a rock.
 | 
				
			||||||
# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
 | 
					# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
 | 
				
			||||||
# for more details.
 | 
					# for more details.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
__all__ = ['extensions', 'extras', 'tz', 'pool']
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# import the DBAPI-2.0 stuff into top-level module
 | 
					# import the DBAPI-2.0 stuff into top-level module
 | 
				
			||||||
from _psycopg import BINARY, NUMBER, STRING, DATETIME, ROWID
 | 
					from _psycopg import BINARY, NUMBER, STRING, DATETIME, ROWID
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										76
									
								
								lib/psycopg1.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										76
									
								
								lib/psycopg1.py
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,76 @@
 | 
				
			||||||
 | 
					"""psycopg 1.1.x compatibility module
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					This module uses the new style connection and cursor types to build a psycopg
 | 
				
			||||||
 | 
					1.1.1.x compatibility layer. It should be considered a temporary hack to run
 | 
				
			||||||
 | 
					old code hile porting to psycopg 2. Import as follows:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    from psycopg import psycopg1 as psycopg
 | 
				
			||||||
 | 
					"""
 | 
				
			||||||
 | 
					# psycopg/psycopg1.py - psycopg 1.1.x compatibility module
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# Copyright (C) 2003-2004 Federico Di Gregorio  <fog@debian.org>
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# 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; either version 2, or (at your option) any later
 | 
				
			||||||
 | 
					# version.
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# This program is distributed in the hope that it will be useful, but
 | 
				
			||||||
 | 
					# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTIBILITY
 | 
				
			||||||
 | 
					# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
 | 
				
			||||||
 | 
					# for more details.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import _psycopg as _2psycopg
 | 
				
			||||||
 | 
					from psycopg.extensions import cursor as _2cursor
 | 
				
			||||||
 | 
					from psycopg.extensions import connection as _2connection
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					from psycopg import *
 | 
				
			||||||
 | 
					del connect
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def connect(*args, **kwargs):
 | 
				
			||||||
 | 
					    """connect(dsn, ...) -> new psycopg 1.1.x compatible connection object"""
 | 
				
			||||||
 | 
					    kwargs['connection_factory'] = connection
 | 
				
			||||||
 | 
					    return _2psycopg.connect(*args, **kwargs)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					class connection(_2connection):
 | 
				
			||||||
 | 
					    """psycopg 1.1.x connection."""
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					    def cursor(self):
 | 
				
			||||||
 | 
					        """cursor() -> new psycopg 1.1.x compatible cursor object"""
 | 
				
			||||||
 | 
					        return _2connection.cursor(self, cursor_factory=cursor)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class cursor(_2cursor):
 | 
				
			||||||
 | 
					    """psycopg 1.1.x cursor.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    Note that this cursor implements the exact procedure used by psycopg 1 to
 | 
				
			||||||
 | 
					    build dictionaries out of result rows. The DictCursor in the
 | 
				
			||||||
 | 
					    psycopg.extras modules implements a much better and faster algorithm.
 | 
				
			||||||
 | 
					    """
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def __build_dict(self, row):
 | 
				
			||||||
 | 
					        res = {}
 | 
				
			||||||
 | 
					        for i in range(len(self.description)):
 | 
				
			||||||
 | 
					            res[self.description[i][0]] = row[i]
 | 
				
			||||||
 | 
					        return res
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					    def dictfetchone(self):
 | 
				
			||||||
 | 
					        row = _2cursor.fetchone(self)
 | 
				
			||||||
 | 
					        return self.__build_dict(row)
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					    def dictfetchmany(self, size):
 | 
				
			||||||
 | 
					        res = []
 | 
				
			||||||
 | 
					        rows = _2cursor.fetchmany(self, size)
 | 
				
			||||||
 | 
					        for row in rows:
 | 
				
			||||||
 | 
					            res.append(self.__build_dict(row))
 | 
				
			||||||
 | 
					        return res
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					    def dictfetchall(self):
 | 
				
			||||||
 | 
					        res = []
 | 
				
			||||||
 | 
					        rows = _2cursor.fetchall(self)
 | 
				
			||||||
 | 
					        for row in rows:
 | 
				
			||||||
 | 
					            res.append(self.__build_dict(row))
 | 
				
			||||||
 | 
					        return res
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
| 
						 | 
					@ -102,7 +102,8 @@ psyco_connect(PyObject *self, PyObject *args, PyObject *keywds)
 | 
				
			||||||
    char *host=NULL, *port=NULL, *sslmode=NULL;
 | 
					    char *host=NULL, *port=NULL, *sslmode=NULL;
 | 
				
			||||||
    
 | 
					    
 | 
				
			||||||
    static char *kwlist[] = {"dsn", "database", "host", "port",
 | 
					    static char *kwlist[] = {"dsn", "database", "host", "port",
 | 
				
			||||||
                             "user", "password", "sslmode", "factory", NULL};
 | 
					                             "user", "password", "sslmode",
 | 
				
			||||||
 | 
					                             "connection_factory", NULL};
 | 
				
			||||||
    
 | 
					    
 | 
				
			||||||
    if (!PyArg_ParseTupleAndKeywords(args, keywds, "|sssssssO", kwlist,
 | 
					    if (!PyArg_ParseTupleAndKeywords(args, keywds, "|sssssssO", kwlist,
 | 
				
			||||||
                                     &dsn, &database, &host, &port,
 | 
					                                     &dsn, &database, &host, &port,
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue
	
	Block a user