Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit59e5d51

Browse files
author
Hiroshi Inoue
committed
1) Fix a memory leak in use declare/fetch mode.
2) Change default build mode to multibyte(Windows).
1 parent839a346 commit59e5d51

File tree

4 files changed

+30
-14
lines changed

4 files changed

+30
-14
lines changed

‎src/interfaces/odbc/qresult.c

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -356,7 +356,7 @@ QR_fetch_tuples(QResultClass *self, ConnectionClass *conn, char *cursor)
356356
self->inTuples= TRUE;
357357

358358
/* Force a read to occur in next_tuple */
359-
self->num_total_rows=tuple_size+1;
359+
self->num_total_rows=0;
360360
self->num_backend_rows=tuple_size+1;
361361
self->fetch_count=tuple_size+1;
362362
self->base=0;
@@ -499,6 +499,9 @@ QR_next_tuple(QResultClass *self)
499499

500500
if (self->base==num_backend_rows)
501501
{
502+
introw,lf;
503+
TupleField*tuple=self->backend_tuples;
504+
502505
/* not a correction */
503506
/* Determine the optimum cache size. */
504507
if (ci->drivers.fetch_max %self->rowset_size==0)
@@ -509,6 +512,20 @@ QR_next_tuple(QResultClass *self)
509512
fetch_size=self->rowset_size;
510513

511514
self->cache_size=fetch_size;
515+
/* clear obsolete tuples */
516+
inolog("clear obsolete %d tuples\n",num_backend_rows);
517+
for (row=0;row<num_backend_rows;row++)
518+
{
519+
for (lf=0;lf<self->num_fields;lf++)
520+
{
521+
if (tuple[lf].value!=NULL)
522+
{
523+
free(tuple[lf].value);
524+
tuple[lf].value=NULL;
525+
}
526+
}
527+
tuple+=self->num_fields;
528+
}
512529
self->fetch_count=1;
513530
}
514531
else
@@ -579,7 +596,6 @@ QR_next_tuple(QResultClass *self)
579596
if (!corrected)
580597
{
581598
self->base=0;
582-
self->num_total_rows=0;/* right ? */
583599
self->num_backend_rows=0;
584600
}
585601

‎src/interfaces/odbc/win32.mak

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
!MESSAGE Building the PostgreSQL ODBC Driver for Win32...
1515
!MESSAGE
1616
!IF "$(CFG)" == ""
17-
CFG=Release
17+
CFG=MultibyteRelease
1818
!MESSAGE No configuration specified. Defaulting to Release.
1919
!MESSAGE
2020
!ENDIF
@@ -98,9 +98,9 @@ CLEAN :
9898

9999
CPP=cl.exe
100100
!IF "$(CFG)" == "MultibyteRelease"
101-
CPP_PROJ=/nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "PSQLODBC_EXPORTS" /D "MULTIBYTE" /D "DRIVER_CURSOR_IMPLEMENT" /Fp"$(INTDIR)\psqlodbc.pch" /YX /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /c
101+
CPP_PROJ=/nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "PSQLODBC_EXPORTS" /D "MULTIBYTE" /D "DRIVER_CURSOR_IMPLEMENT"$(ADD_DEFINES)/Fp"$(INTDIR)\psqlodbc.pch" /YX /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /c
102102
!ELSE
103-
CPP_PROJ=/nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "PSQLODBC_EXPORTS" /D "DRIVER_CURSOR_IMPLEMENT" /Fp"$(INTDIR)\psqlodbc.pch" /YX /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /c
103+
CPP_PROJ=/nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "PSQLODBC_EXPORTS" /D "DRIVER_CURSOR_IMPLEMENT"$(ADD_DEFINES)/Fp"$(INTDIR)\psqlodbc.pch" /YX /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /c
104104
!ENDIF
105105

106106
.c{$(INTDIR)}.obj::
@@ -237,9 +237,9 @@ CLEAN :
237237

238238
CPP=cl.exe
239239
!IF "$(CFG)" == "MultibyteDebug"
240-
CPP_PROJ=/nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "PSQLODBC_EXPORTS" /D "MULTIBYTE" /Fp"$(INTDIR)\psqlodbc.pch" /YX /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /GZ /c
240+
CPP_PROJ=/nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "PSQLODBC_EXPORTS" /D "MULTIBYTE" /D "DRIVER_CURSOR_IMPLEMENT"$(ADD_DEFINES) /Fp"$(INTDIR)\psqlodbc.pch" /YX /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /GZ /c
241241
!ELSE
242-
CPP_PROJ=/nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "PSQLODBC_EXPORTS" /Fp"$(INTDIR)\psqlodbc.pch" /YX /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /GZ /c
242+
CPP_PROJ=/nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "PSQLODBC_EXPORTS" /D "DRIVER_CURSOR_IMPLEMENT"$(ADD_DEFINES) /Fp"$(INTDIR)\psqlodbc.pch" /YX /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /GZ /c
243243
!ENDIF
244244

245245
.c{$(INTDIR)}.obj::

‎src/interfaces/odbc/win32_30.mak

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
!MESSAGE Building the PostgreSQL ODBC 3.0 Driver for Win32...
1414
!MESSAGE
1515
!IF "$(CFG)" == ""
16-
CFG=ODBC30
16+
CFG=MultibyteODBC30
1717
!MESSAGE No configuration specified. Defaulting to ODBC30.
1818
!MESSAGE
1919
!ENDIF
@@ -100,9 +100,9 @@ CLEAN :
100100

101101
CPP=cl.exe
102102
!IF "$(CFG)" == "MultibyteODBC30"
103-
CPP_PROJ=/nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "PSQLODBC_EXPORTS" /D "ODBCVER=0x0300" /D "MULTIBYTE" /D "DRIVER_CURSOR_IMPLEMENT" /Fp"$(INTDIR)\psqlodbc.pch" /YX /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /c
103+
CPP_PROJ=/nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "PSQLODBC_EXPORTS" /D "ODBCVER=0x0300" /D "MULTIBYTE" /D "DRIVER_CURSOR_IMPLEMENT"$(ADD_DEFINES)/Fp"$(INTDIR)\psqlodbc.pch" /YX /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /c
104104
!ELSE
105-
CPP_PROJ=/nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "PSQLODBC_EXPORTS" /D "ODBCVER=0x0300" /D "DRIVER_CURSOR_IMPLEMENT" /Fp"$(INTDIR)\psqlodbc.pch" /YX /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /c
105+
CPP_PROJ=/nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "PSQLODBC_EXPORTS" /D "ODBCVER=0x0300" /D "DRIVER_CURSOR_IMPLEMENT"$(ADD_DEFINES)/Fp"$(INTDIR)\psqlodbc.pch" /YX /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /c
106106
!ENDIF
107107

108108
.c{$(INTDIR)}.obj::
@@ -245,9 +245,9 @@ CLEAN :
245245

246246
CPP=cl.exe
247247
!IF "$(CFG)" == "MultibyteDebug30"
248-
CPP_PROJ=/nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "PSQLODBC_EXPORTS" /D "ODBCVER=0x0300" /D "MULTIBYTE" /D "DRIVER_CURSOR_IMPLEMENT" /Fp"$(INTDIR)\psqlodbc.pch" /YX /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /GZ /c
248+
CPP_PROJ=/nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "PSQLODBC_EXPORTS" /D "ODBCVER=0x0300" /D "MULTIBYTE" /D "DRIVER_CURSOR_IMPLEMENT"$(ADD_DEFINES)/Fp"$(INTDIR)\psqlodbc.pch" /YX /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /GZ /c
249249
!ELSE
250-
CPP_PROJ=/nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "PSQLODBC_EXPORTS" /D "ODBCVER=0x0300" /D "DRIVER_CURSOR_IMPLEMENT" /Fp"$(INTDIR)\psqlodbc.pch" /YX /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /GZ /c
250+
CPP_PROJ=/nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "PSQLODBC_EXPORTS" /D "ODBCVER=0x0300" /D "DRIVER_CURSOR_IMPLEMENT"$(ADD_DEFINES)/Fp"$(INTDIR)\psqlodbc.pch" /YX /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /GZ /c
251251
!ENDIF
252252

253253
.c{$(INTDIR)}.obj::

‎src/interfaces/odbc/win32_30w.mak

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ CLEAN :
9292
if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
9393

9494
CPP=cl.exe
95-
CPP_PROJ=/nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "PSQLODBC_EXPORTS" /D "ODBCVER=0x0300" /D "MULTIBYTE" /D "UNICODE_SUPPORT" /D "DRIVER_CURSOR_IMPLEMENT" /Fp"$(INTDIR)\psqlodbc.pch" /YX /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /c
95+
CPP_PROJ=/nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "PSQLODBC_EXPORTS" /D "ODBCVER=0x0300" /D "MULTIBYTE" /D "UNICODE_SUPPORT" /D "DRIVER_CURSOR_IMPLEMENT"$(ADD_DEFINES)/Fp"$(INTDIR)\psqlodbc.pch" /YX /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /c
9696

9797
.c{$(INTDIR)}.obj::
9898
$(CPP) @<<
@@ -227,7 +227,7 @@ CLEAN :
227227
if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
228228

229229
CPP=cl.exe
230-
CPP_PROJ=/nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "PSQLODBC_EXPORTS" /D "ODBCVER=0x0300" /D "MULTIBYTE" /D "UNICODE_SUPPORT" /D "DRIVER_CURSOR_IMPLEMENT" /Fp"$(INTDIR)\psqlodbc.pch" /YX /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /GZ /c
230+
CPP_PROJ=/nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "PSQLODBC_EXPORTS" /D "ODBCVER=0x0300" /D "MULTIBYTE" /D "UNICODE_SUPPORT" /D "DRIVER_CURSOR_IMPLEMENT"$(ADD_DEFINES)/Fp"$(INTDIR)\psqlodbc.pch" /YX /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /GZ /c
231231

232232
.c{$(INTDIR)}.obj::
233233
$(CPP) @<<

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp