-
-
Notifications
You must be signed in to change notification settings - Fork 222
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
System table with keywords [CORE6482] #6713
Comments
Commented by: @livius2 I see one problem with this, a tabe structure and what it contain. |
Commented by: @dyemanov I'd say this table should be virtual and enlist only keywords for the current engine version. |
Modified by: @asfernandesassignee: Adriano dos Santos Fernandes [ asfernandes ] |
Commented by: @hvlad > I'd say this table should be virtual Does you consider to use RDB$TYPES ? > and enlist only keywords for the current engine version. and [non-]reserved status, please |
Commented by: @AlexPeshkoff Maxim, FYI - since interbase times we have API call: |
Commented by: @asfernandes Vlad, v3 sub releases had a new keyword (LOCALTIME). Use of RDB$TYPES may be problematic under this circumstance. I prefer virtual table. |
Commented by: @asfernandes Alex, being a client API, it's certainly not good enough. |
Commented by: @hvlad Adriano, I'm not insist on RDB$TYPES, just want to make sure we take this into account and make a smart decision. |
Commented by: @hvlad Alex, API function doesn't get list of keywords from the actual engine, i.e. it depends on fbclient version and could be far from reality. |
Commented by: @dyemanov I consider RDB$TYPES (or any other persistent table) problematic. Imagine an ODS13.1 engine accessing an ODS13.0 database. RDB$ table will show keywords from the prior engine version, while the newer engine may support new keywords. This is why I have suggested a virtual table instead. |
Commented by: @asfernandes Pull request created: https://github.com/FirebirdSQL/firebird/pull/310/files |
Submitted by: Maxim Kuzmin (cybermax)
Votes: 3
List of keywords (reserved and non-reserved) changed in major/minor version, including release version.
To determine whether a word is a keyword and it reserved, need to have a dictionary of such words, and update it for each version of the server.
You should also remember that some words will become reserved in the future (LOCALTIME, SQLSTATE, INSERTING/DELETING/UPDATING).
Therefore we need a table of words with the flag "Reserved" and "Reserved in the future".
Commits: dd2fcfe
The text was updated successfully, but these errors were encountered: