Skip to content
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

Add support for case insensitive dynamic pocos #709

Closed
wants to merge 10 commits into from
Closed

Add support for case insensitive dynamic pocos #709

wants to merge 10 commits into from

Commits on Oct 22, 2023

  1. Fixes #255 also in PagingHelper.

    Add unit test to confirm.
    Curlack committed Oct 22, 2023
    Configuration menu
    Copy the full SHA
    c4e8eca View commit details
    Browse the repository at this point in the history
  2. Modify Oracle setup scripts

    1. Try to drop the user first so we can use the "user still connected" failure to bypass setup i.e. assume already setup correctly. This is to allow the developer to stay connected to the database (via SQLPlus or SQL Developer).
    
    Modify OracleTestProvider
    1. If Oracle setup fails, propagate failure to all tests without retrying for every test in the batch. This makes all tests fail with the same exception. In the case the user is still connected, setup is bypassed.
    
    Fix Oracle build scripts
    1. Stored procedures don't use any characters to denote a parameter, so they have to be fully qualified e.g. ProcName.paramName to differentiate them from column names (if the same name is used e.g. age).
    
    Fix breaking tests:
    1. QueryTests.cs had couple of malformed sql statements after string concatenation (missing space).
    2. Override all (Oracle)StoredProcTests.cs methods that require an additional RefCursor output parameter.
    3. Override all (Oracle)QueryTests.cs paging methods that require '*' to be aliased.
    4. OracleQueryTests.cs had a couple of statements ending in a semi-colon, which it didn't appreciate.
    5. Fix top 1 query in "QueryMultiple ForSingleResultsSetWithMultiPoco ShouldReturnValidPocoCollection". Also provide version 12c and above syntax.
    6. Skip MultiResultSetWithMultiPoco tests since Oracle also does not support it (as with MSAccess and Firebird).
    Curlack committed Oct 22, 2023
    Configuration menu
    Copy the full SHA
    324f7f0 View commit details
    Browse the repository at this point in the history
  3. Revert command paramater name changes for StoredProcedure type comman…

    …ds. Oracle doesn't utilize the parameter prefix in this case.
    
    Fixes #691
    Give OracleDatabaseProvider its own implementation of BuildPageQuery and use "Select null from dual" instead of "Select null" when ORDER BY clause is absent. Alo include version 12c and above syntax in a comment for future reference.
    Curlack committed Oct 22, 2023
    Configuration menu
    Copy the full SHA
    3e64fec View commit details
    Browse the repository at this point in the history

Commits on Oct 23, 2023

  1. Update PetaPoco.Tests.Unit/Utilities/PagingHelperTests.cs

    Co-authored-by: Stelio Kontos <37424493+Ste1io@users.noreply.github.com>
    Curlack and Ste1io authored Oct 23, 2023
    Configuration menu
    Copy the full SHA
    f39e5f7 View commit details
    Browse the repository at this point in the history
  2. Cater for optional parameter prefix in Database.AddParameter instead …

    …of "undoing" the pramPrefix modification in OracleDatabaseProvider.
    Curlack committed Oct 23, 2023
    Configuration menu
    Copy the full SHA
    31bcfa1 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    d97066b View commit details
    Browse the repository at this point in the history
  4. Update PetaPoco/Database.cs

    Co-authored-by: Stelio Kontos <37424493+Ste1io@users.noreply.github.com>
    Curlack and Ste1io authored Oct 23, 2023
    Configuration menu
    Copy the full SHA
    e57bf10 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    82f67b8 View commit details
    Browse the repository at this point in the history

Commits on Oct 30, 2023

  1. Split Oracle scripts and tests to test usage of "ordinary" and "delim…

    …ited" identifiers.
    
    Add support for case insensitive dynamic objects. ExpandoPoco vs ExpandoObject. To be used by OracleOrdinaryDatabaseProvider.
    Add "UseOrdinaryIdentifiers" flag to IProvider to provide a global means of controlling the activation of case insensitive dynamic objects.
    Add "ignoreCase" optional parameter to all Database constructors (except the ones taking in a provider) and Poco factory methods.
    Add "UsingCaseInsensitiveProvider" configuration extension.
    Switch between OracleDatabaseProvider and OracleOrdinaryDatabaseProvider based on "UseOrdinaryIdentifiers" flag when Resolving Provider.
    Curlack committed Oct 30, 2023
    Configuration menu
    Copy the full SHA
    8b290d7 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    e6731db View commit details
    Browse the repository at this point in the history