Handle IEnumerable<int> parameter #225

Merged
merged 2 commits into from May 8, 2014

Projects

None yet

2 participants

@danzel
Contributor
danzel commented May 4, 2014

WriteEnumeration would use Square braces instead of Curly braces, in comparison WriteArray always uses Curly braces.
I've changed WriteEnumeration to always use Curly to match.

Not 100% sure if this is the right fix, but works for this case. I've added a test.
Fixes #222

@franciscojunior
Member

Thanks for your patch, @danzel !

@glenebob , can you please check if it is ok? It seems brackets are being used when not using prepared statements which is giving errors. Maybe those brackets were there to be used with array constructor syntax? http://www.postgresql.org/docs/9.1/static/sql-expressions.html#SQL-SYNTAX-ARRAY-CONSTRUCTORS

@franciscojunior
Member

After checking the documentation, http://www.postgresql.org/docs/8.4/static/arrays.html the bracket notation is only used when the string ARRAY is written before the array. i.e.: (from postgresql documentation)

INSERT INTO sal_emp
    VALUES ('Bill',
    ARRAY[10000, 10000, 10000, 10000],
    ARRAY[['meeting', 'lunch'], ['training', 'presentation']]);

I think this notation format was left there by mistake because we used to use this notation but we don't use it anymore.

I conclude then that the fix proposed is correct. Merging now...

While doing the tests, I noticed another bug in Npgsql with prepared statements and IEnumerable

@franciscojunior franciscojunior added this to the 2.2 milestone May 8, 2014
@franciscojunior franciscojunior merged commit fe7fba2 into npgsql:master May 8, 2014

1 check passed

default Finished TeamCity Build Npgsql :: All : Running
Details
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment