• Georg Brandl's avatar
    Merged revisions… · f78e02b7
    Georg Brandl yazdı
    Merged revisions 63562,63570,63728,63734,63784,63788,63802,63817,63827,63839,63887,63975,63998 via svnmerge from
    svn+ssh://pythondev@svn.python.org/python/trunk
    
    ........
      r63562 | martin.v.loewis | 2008-05-23 17:06:50 +0200 (Fri, 23 May 2008) | 2 lines
    
      Patch #1722225: Support QNX 6.
    ........
      r63570 | trent.nelson | 2008-05-23 22:33:14 +0200 (Fri, 23 May 2008) | 1 line
    
      Introduce a user macro named $(externalsDir), which should point to the root directory of where all the external sources should live.  Developers can change this value if their external sources live elsewhere.  The default of '..\..' matches the current status quo.
    ........
      r63728 | gregory.p.smith | 2008-05-26 23:16:34 +0200 (Mon, 26 May 2008) | 4 lines
    
      Fix issue2589: there was a potential integer overflow leading to
      memory corruption on esoteric platforms and incorrect behavior on
      normal platforms.
    ........
      r63734 | gregory.p.smith | 2008-05-27 00:07:28 +0200 (Tue, 27 May 2008) | 3 lines
    
      Fix issue2588: Do not execute str[size-1] = '\0' when a 0 size is
      passed in.  (The assert won't prevent this in non-debug builds).
    ........
      r63784 | raymond.hettinger | 2008-05-29 10:38:23 +0200 (Thu, 29 May 2008) | 1 line
    
      Fix two typos.
    ........
      r63788 | facundo.batista | 2008-05-29 18:39:26 +0200 (Thu, 29 May 2008) | 6 lines
    
    
      Fixed the semantic of timeout for socket.create_connection and
      all the upper level libraries that use it, including urllib2.
      Added and fixed some tests, and changed docs correspondingly.
      Thanks to John J Lee for the patch and the pusing, :)
    ........
      r63802 | mark.dickinson | 2008-05-30 04:46:53 +0200 (Fri, 30 May 2008) | 2 lines
    
      Fix typo in testSum
    ........
      r63817 | raymond.hettinger | 2008-05-30 20:20:50 +0200 (Fri, 30 May 2008) | 8 lines
    
      * Mark intermedidate computes values (hi, lo, yr) as volatile.
      * Expand comments.
      * Swap variable names in the sum_exact code so that x and y
        are consistently chosen as the larger and smaller magnitude
        values respectively.
    ........
      r63827 | raymond.hettinger | 2008-05-31 05:24:31 +0200 (Sat, 31 May 2008) | 1 line
    
      Implement heapq in terms of less-than (to match list.sort()).
    ........
      r63839 | gerhard.haering | 2008-05-31 23:33:27 +0200 (Sat, 31 May 2008) | 2 lines
    
      Fixed rowcount for SELECT statements. They're -1 now (again), for better DB-API 2.0 compliance.
    ........
      r63887 | gregory.p.smith | 2008-06-02 06:05:52 +0200 (Mon, 02 Jun 2008) | 4 lines
    
      Fix issue 2782: be less strict about the format string type in strftime.
      Accept unicode and anything else ParseTuple "s#" can deal with.  This
      matches the time.strftime behavior.
    ........
      r63975 | neal.norwitz | 2008-06-06 06:47:01 +0200 (Fri, 06 Jun 2008) | 3 lines
    
      Aldo Cortesi confirmed this is still needed for OpenBSD 4.2 and 4.3.
      (I didn't regen configure, since I don't have a working autoconf.)
    ........
      r63998 | raymond.hettinger | 2008-06-06 23:47:51 +0200 (Fri, 06 Jun 2008) | 1 line
    
      Issue 3501: Make heapq support both __le__ and __lt__.
    ........
    f78e02b7
cursor.h 2.54 KB
/* cursor.h - definitions for the cursor type
 *
 * Copyright (C) 2004-2007 Gerhard Hring <gh@ghaering.de>
 *
 * This file is part of pysqlite.
 *
 * This software is provided 'as-is', without any express or implied
 * warranty.  In no event will the authors be held liable for any damages
 * arising from the use of this software.
 *
 * Permission is granted to anyone to use this software for any purpose,
 * including commercial applications, and to alter it and redistribute it
 * freely, subject to the following restrictions:
 *
 * 1. The origin of this software must not be misrepresented; you must not
 *    claim that you wrote the original software. If you use this software
 *    in a product, an acknowledgment in the product documentation would be
 *    appreciated but is not required.
 * 2. Altered source versions must be plainly marked as such, and must not be
 *    misrepresented as being the original software.
 * 3. This notice may not be removed or altered from any source distribution.
 */

#ifndef PYSQLITE_CURSOR_H
#define PYSQLITE_CURSOR_H
#include "Python.h"

#include "statement.h"
#include "connection.h"
#include "module.h"

typedef struct
{
    PyObject_HEAD
    pysqlite_Connection* connection;
    PyObject* description;
    PyObject* row_cast_map;
    int arraysize;
    PyObject* lastrowid;
    long rowcount;
    PyObject* row_factory;
    pysqlite_Statement* statement;

    /* the next row to be returned, NULL if no next row available */
    PyObject* next_row;
} pysqlite_Cursor;

typedef enum {
    STATEMENT_INVALID, STATEMENT_INSERT, STATEMENT_DELETE,
    STATEMENT_UPDATE, STATEMENT_REPLACE, STATEMENT_SELECT,
    STATEMENT_OTHER
} pysqlite_StatementKind;

extern PyTypeObject pysqlite_CursorType;

int pysqlite_cursor_init(pysqlite_Cursor* self, PyObject* args, PyObject* kwargs);
void pysqlite_cursor_dealloc(pysqlite_Cursor* self);
PyObject* pysqlite_cursor_execute(pysqlite_Cursor* self, PyObject* args);
PyObject* pysqlite_cursor_executemany(pysqlite_Cursor* self, PyObject* args);
PyObject* pysqlite_cursor_getiter(pysqlite_Cursor *self);
PyObject* pysqlite_cursor_iternext(pysqlite_Cursor *self);
PyObject* pysqlite_cursor_fetchone(pysqlite_Cursor* self, PyObject* args);
PyObject* pysqlite_cursor_fetchmany(pysqlite_Cursor* self, PyObject* args, PyObject* kwargs);
PyObject* pysqlite_cursor_fetchall(pysqlite_Cursor* self, PyObject* args);
PyObject* pysqlite_noop(pysqlite_Connection* self, PyObject* args);
PyObject* pysqlite_cursor_close(pysqlite_Cursor* self, PyObject* args);

int pysqlite_cursor_setup_types(void);

#define UNKNOWN (-1)
#endif