Skip to content

Add additional case-insensitive text support #232

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

Merged
merged 3 commits into from
Nov 26, 2017

Conversation

MaxGabriel
Copy link
Contributor

Closes #231

I'm not positive I understand the conclusion from this comment thread: bcbacfe

I don't think that supporting case insensitive Strings or ByteStrings is a goal of postgresql-simple, though, just based on my impression of the library (and like you said, it would be preferable to use bytea for ByteString).

@bergmark mentioned having newtypes around text, and it would be nice to support those. I suspect you'd more often be making newtypes around CI Text though (newtype Foo = Foo (CI Text) deriving (Show, Eq, ToField, FromField)), in which case you could use GeneralizedNewtypeDeriving to get the FromField/ToField instances.

|]
citext
_citext array_citext
|] -- Note: You must enable the citext extension (CREATE EXTENSION IF NOT EXISTS citext) to generate the citext values
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I could make the script do this automatically as well

Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You can't do this, because the type oid of citext is not stable from database to database. You need to remove this from the static typeinfo, and should be using the textual name for type checking instead. See the documentation in the FromField module, and the hstore instances for an example.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ok, I’ll remove this

CHANGES.md Outdated
* Added `ToField` instances for case-insensitive strict and lazy text.
Added `citext` and `_citext` to `Database.PostgreSQL.Simple.TypeInfo.Static`.
Thanks to Max Tagher for the implementation.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Wasn't sure if you wanted contributors to make their own changes to the changelog

Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Doesn't matter much to me one way or the other. :)

@lpsmith lpsmith merged commit cfb1685 into lpsmith:master Nov 26, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants