Age | Commit message (Collapse) | Author |
|
|
|
This change fixes the diff of insertreturning-test regression test
reported by Patrick Cheung.
|
|
Remove curr_param_result property of StatementClass and separate parsed result from the exec result.
|
|
Introduce macros QR_concat(), QR_detach() and QR_next().
|
|
|
|
affetced by the preceding results. It's necessary for batch execution
with arrays of parameters.
|
|
by sending chunks of SQL statements.
If SQL_ATTR_CURSOR_TYPE of an statement is SQL_CURSOR_FORWARD_ONLY, SQL_ATTR_CONCURRENCY is SQL_CONCUR_READ_ONLY and extended protocol isn't used, the batch execution of the statement is possible.
A new option Batch Size was introduced for such cases.
Batch Size: Split an array (of parameters) into chunks of Batch Size to execute statements. The last chunk may contain less than Batch Size elements. Setting 1 to this option forces the current one by one execution.
Also turn off use_server_side_prepare option temporarily when batch executuion is possible.
|
|
|
|
The variable lock_CC_for_rb should be held per connection.
Per report from Ayman Samamry.
|
|
Divide *level 1(detail)* log into *level 1(tuple level)* log and *level 2(detail)* log.
|
|
next set of parameters is processed. If not, then there will be a memory leak when the next SQLParamData/SQLPutData is called.
Per report from Mihai Giurgeanu <mihai.giurgeanu@gmail.com>.
|
|
Use multibyte-aware eatTableIdentifiers() instead of next_name_token().
Use identifierEscape() to escape single quotes or double quotes.
|
|
|
|
|
|
logs a little easier to read using the macro MYPRINTF() which calls myprintf().
|
|
Use macro MYLOG instead of function mylog in preparation for later changes and unify mylog() and inolog() using level parameter.
Enable the compiler to check the format string against the parameter of mylog() by adding __attribute__((format(printf,.,.))) to the declaration of mylog(GCC only).
Using this mechanism, check and fix many discordances of parameters.
|
|
The truncations occured when concatenating 'RELEASE xxxx...;' and 'SAVEPOINT xxxx....'.
|
|
|
|
IGNORE_ABORT_ON_CONN, .., ..).
[in the multiple command]
SAVEPOINT xxxxx;exec something;REALEASExxxxx
1. Discard the result and the effect of RELEASE as well as of SAVEPOINT.
2. Suppress CC_on_abort_partial() calls.
3. For an error resetting command 'ROLLBACK to xxxxx;RELEASE xxxxx', call PQsendQuery() instead of PQexec().
|
|
Also remove the flag ROLLBACK_IN_PROGRESS. It was misued and is no longer needed.
|
|
prepending (RELEASE xxxx;)SAVEPOINT; to simple queries.
Unfortunately it's impossible to recover syntax errors after this change.
|
|
SAVEPOINT calls after read-only statements(queries).
Note that DECLARE command is not thought to be read-only because the cursor disappears when rolled back to a savepoint established before the DECLARE command.
|
|
Change the current sequence of operations
SAVEPOINT -> execute -> RELEASE
to
(RELEASE;)SAVEPOINT -> execute
.
Note that there are 2 risks to RELEASE an internal savepoint. One is to RELEASE the savepoint invalitated due to manually issued ROLLBACK or RELEASE. Another is to invalitate manual SAVEPOINTs unexpectedly by RELEASing the internal savepoint.
Currently *RELEASE* related stuff is #ifdef'd.
|
|
Give up to roll back 'internal' statements because the functionality is not effectively used.
Introduced 'external' instead of 'internal'.
|
|
Use SPRINTF_FIXED() or SPRINTFCAT_FIXED() where they are available.
|
|
SPRINTF_FIXED().
|
|
Now per connection Debug/Commlog info are handled in getDSNinfo().
Global Debug/Commlog info are get/set using functions get(set)GlobalDebug(Commlog)().
|
|
|
|
Check the lost connection
1. at the beginning of ODBC APIs.
2. at the beginning of FE-BE communications using extended protocol.
|
|
|
|
second one causes the function to return.
SC_get_errormsg() definition is repeated twice in succession.
In info.c:SQLGetInfo(), "len = 0" is unnecessary because len is assigned at the end of the function.
In execute.c:PGAPI_ExecDirect(), flag doesn't need to be set as its value doesn't change.
PODBC_PER_STATEMENT_ROLLBACK is not used.
[patch by Tsunakawa, Takayuki]
|
|
returns a proper result. This fix the bug reported by Walter Willmertinger.
|
|
|
|
Patch by Christian Ullrich, some extra comments and regression test by me.
|
|
Use protocol v3 Parse instead, even in UseServerSidePrepare=0 mode.
Remove the DisallowPremature config option.
|
|
We haven't supported a segmented memory model for ages, probably never.
|
|
Instead of speaking the frontend/backend protocol directly, use libpq's
functions for executing queries. This makes it libpq a hard dependency, but
removes direct dependencies to SSL and SSPI, and a lot of related code.
|
|
Fix some misc issues pointed out by clang's static analyzer, scan-build.
Mostly dead assignments.
|
|
|
|
Older versions have been obsolete for a very long time by now. Removing the
support lets us get rid of a lot of code that no-one has in practice been
even compiling for a long time.
Michael Paquier
|
|
PostgreSQL added support for protocol version 3 in server version 7.4.
There's no need to support servers older than that. This simplifies the
code a lot, removing a lot of corner cases that haven't been properly
regression tested for a long time anyway.
Original patch by me, with some tweaks by Michael Paquier.
|
|
The function SC_setInsertedTable() prepares an info for subsequent
'select @@IDENTITY' command. Take table name like catalog.schema.table
into account in the function.
|
|
Michael Paquier
|
|
|
|
|
|
|
|
Make whitespace and indentation more consistent in SQL_API function
declarations.
|
|
This also changed the file permissions stored in git for a couple of header
files, removing the executable bit. Didn't realize they were different from
all the others, but apparently my editor decided to change them. Now
they're the same as all the other files, which seems good.
Michael Paquier and me.
|
|
|
|
It was always passed as TRUE.
|