-
Notifications
You must be signed in to change notification settings - Fork 60
Added XML support for procedures and functions #91
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
Added XML support for procedures and functions #91
Conversation
|
@javornikolov any comments/concerns? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Are we sure about the behavior in case of data type 'UNDEFINED' and type name != 'XMLTYPE'? (Before it used to end it else/else clause. Now we trap it here leaving bind values unset).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@jgebal, any opinion about that question? My concern is that we're maybe changing the semantics of non-xmltype 'UNDEFINED' (even though I'm not sure what exactly that might be).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hi Yavor.
I'll look into it this week.
Thanks for spotting that potential behavior change.
Jacek
On 25 Oct 2015 18:33, "Yavor Nikolov" notifications@github.com wrote:
In lib/plsql/procedure_call.rb
#91 (comment):@@ -236,6 +236,14 @@ def add_argument(argument, value, argument_metadata=nil)
@bind_values[argument] = value.nil? ? nil : (value ? 1 : 0)
@bind_metadata[argument] = argument_metadata.merge(:data_type => "NUMBER", :data_precision => 1)
"l_#{argument}"
when 'UNDEFINED'if argument_metadata[:type_name] == 'XMLTYPE'@declare_sql << "l_#{argument} XMLTYPE;\n"@assignment_sql << "l_#{argument} := XMLTYPE(:#{argument});\n" if not value.nil?@bind_values[argument] = value if not value.nil?@bind_metadata[argument] = argument_metadata.merge(:data_type => "CLOB")"l_#{argument}"end@jgebal https://github.com/jgebal, any opinion about that question? My
concern is that we're maybe changing the semantics of non-xmltype
'UNDEFINED' (even though I'm not sure what exactly that might be).—
Reply to this email directly or view it on GitHub
https://github.com/rsim/ruby-plsql/pull/91/files#r42948271.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I assume that all the existing functionality is covered by unit tests and all existing unit tests are passing.
I did not verify what other types fall under UNDEFINED, but for sure none of them is currently supported by framework.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There are some other other UNDEFINED types (I'm checking that on http://sqlfiddle.com/):
select
data_type, type_name, type_subname, pls_type, count(*) as cnt
from
all_arguments a
where
a.data_type = 'UNDEFINED'
group by
data_type, type_name, type_subname, pls_type
It's an edge case indeed, yet I'm wondering about the behavior (how gracefully does it fail) when facing some of these unsupported types.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Regardless of the change introduced the unsupported datatypes (like ANYDATA) will not work.
But you're right that there is a change in the evaluation for UNDEFINED datatypes.
This can be changed so the rest of UNDEFINED fall into the behaviour prior to the change.
I'm not sure what would be the difference since one way or the other the types like ANYDATA are not supported.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
OK. We may consider examining the unsupported features behaviour a separate topic.
Added XML support for procedures and functions
|
Merged. Thank you @jgebal for the contribution! |
|
Thanks Yavor.
|
No description provided.