New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
PSQL output parameter size limited [CORE1609] #2030
Comments
Commented by: @dyemanov Total length of input or output parameters is limited to 64K minus overhead. This is an API limitation. |
Commented by: Vsevolod Migdisov (vmigdisov_gmail.com) Thank you very much! |
Commented by: @dyemanov RDB$SET_CONTEXT(USER_CONNECTION, <variable>, <value>) -- on client |
Commented by: Vsevolod Migdisov (vmigdisov_gmail.com) Thank you very much again! on client: on server: excellent! |
Commented by: @dyemanov In the server memory, of course. It's not accessible via system tables or alike. |
Commented by: Vsevolod Migdisov (vmigdisov_gmail.com) Then It can't help me. I need to have a constant variable which should be generated once and stored on Client and stay the same each connection. |
Commented by: Vsevolod Migdisov (vmigdisov_gmail.com) I already comprehended that it is not possible. Be course if you use embedded server than there is no place to keep GUID and if you will keep at the application folder then it can be moved to another computer. |
Commented by: Vsevolod Migdisov (vmigdisov_gmail.com) на сервере: RDB$GET_CONTEXT('SYSTEM', 'NETWORK_MAC'); - например! вот было бы идеально! ведь MAC наверняка передаётся по TCP/IP (раз есть привязка сетевых устройств по MAC адресу) и достаточно это сделать для сервера! |
Modified by: Sean Leyne (seanleyne)issuetype: Bug [ 1 ] => Improvement [ 4 ] Component: API / Client Library [ 10040 ] summary: PSQL output parameter size exceeds => PSQL output parameter size limited |
Commented by: Vsevolod Migdisov (vmigdisov_gmail.com) No chance? |
Commented by: @dyemanov Nope, I don't think it makes any practical sense. |
Commented by: Vsevolod Migdisov (vmigdisov_gmail.com) This is my letter to Firebird-developers which describe the practical sense^ Is it possible to add Variable 'CLIENT_MAC_ADDRESS' which returns MAC address of the client network interface throw which it connects to Firebird Server? It is necessary to identify client station for: |
Commented by: @dyemanov You've been answered in firebird-devel. I'd suggest you to put your arguments there instead of the tracker. |
Commented by: Vsevolod Migdisov (vmigdisov_gmail.com) They answer nothing because of I'm not a member and probably my letter was not moderated. |
Modified by: @pcisarWorkflow: jira [ 13490 ] => Firebird [ 14898 ] |
Commented by: Cosmin Apreutesei (cosmin_ap2) Hope all that talk didn't overshadowed the "64K minus overhead stuff" :) This and all other size limits (like CORE755 which is rated minor??) are the most annoying limits of firebird, making me create a plethora of otherwise equal domains just so that firebird won't complain. Btw, the 64K doesn't really say much, because in practice you can't use anything bigger than 4K with UTF8, since sooner or later you'll want to put at least 2-3 of those fields in a table or as sp parameters. Then, if/when you do increase the limits, please allow indexes to span multiple pages so they can catch up with the changes. Thanks. |
Modified by: @dyemanovFix Version: 3.0 Alpha 1 [ 10331 ] Component: Engine [ 10000 ] Component: API / Client Library [ 10040 ] => |
Modified by: @dyemanovassignee: Dmitry Yemanov [ dimitr ] |
Modified by: @pavel-zotovQA Status: No test |
Modified by: @pavel-zotovstatus: Resolved [ 5 ] => Resolved [ 5 ] QA Status: No test => Done successfully |
Modified by: @pavel-zotovstatus: Resolved [ 5 ] => Closed [ 6 ] Fix Version: 3.0.1 [ 10730 ] Fix Version: 4.0 Alpha 1 [ 10731 ] |
Submitted by: Vsevolod Migdisov (vmigdisov_gmail.com)
Is related to QA629
Votes: 2
I've created a domain:
CREATE DOMAIN SPRO$LONG_STRING AS VARCHAR(32765) CHARACTER SET NONE COLLATE NONE;
This code works properly:
CREATE OR ALTER PROCEDURE SPRO$PARSE_TAG(
STR_IN TYPE OF SPRO$LONG_STRING,
DELIMETER VARCHAR(10))
RETURNS (
STR_OUT1 TYPE OF SPRO$LONG_STRING,
STR_OUT2 VARCHAR(32758))
This code:
CREATE OR ALTER PROCEDURE SPRO$PARSE_TAG(
STR_IN TYPE OF SPRO$LONG_STRING,
DELIMETER VARCHAR(10))
RETURNS (
STR_OUT1 TYPE OF SPRO$LONG_STRING,
STR_OUT2 TYPE OF SPRO$LONG_STRING)
the same as this:
CREATE OR ALTER PROCEDURE SPRO$PARSE_TAG(
STR_IN TYPE OF SPRO$LONG_STRING,
DELIMETER VARCHAR(10))
RETURNS (
STR_OUT1 TYPE OF SPRO$LONG_STRING,
STR_OUT2 VARCHAR(32759))
Returns an error:
Unsuccessful execution caused by an unavailable resource.
Implementation limit exceeded.
block size exceeds implementation restriction.
The text was updated successfully, but these errors were encountered: