Wow! Awesome! I will include this in the next maintenance release for the 0.12 series. Thanks a lot!
On Wednesday, July 4, 2012 5:47:22 PM UTC-4, vfigueiro wrote: > > Roberto Rosario Gonzalez <roberto.rosario.gonzalez@...> writes: > > > > > > > Yes, Postgresql complains about some parts of the search code whereas > MySQL > and SQLite work Ok. This one of the reasons I'm switching Mayan to a > dedicated > engine like Haystack, it is planned to be done during this development > cycle > right when I finish the inital workflow app. > > > > On Mar 16, 2012 2:40 AM, "Сергей Глита" > <[email protected]> wrote: > > Hi, Roberto! > > Search does not work for the field "comment" > > Maybe it's because pgsql > > Django sends the following query > > 'SELECT "documents_document"."id" FROM "documents_document" LEFT OUTER > > JOIN "documents_documenttype" ON > > ("documents_document"."document_type_id" = > > "documents_documenttype"."id") LEFT OUTER JOIN > > "documents_documentversion" ON ("documents_document"."id" = > > "documents_documentversion"."document_id") LEFT OUTER JOIN > > "metadata_documentmetadata" ON ("documents_document"."id" = > > "metadata_documentmetadata"."document_id") LEFT OUTER JOIN > > "documents_documentpage" ON ("documents_documentversion"."id" = > > "documents_documentpage"."document_version_id") LEFT OUTER JOIN > > "taggit_taggeditem" ON ("documents_document"."id" = > > "taggit_taggeditem"."object_id") LEFT OUTER JOIN "taggit_tag" ON > > ("taggit_taggeditem"."tag_id" = "taggit_tag"."id") LEFT OUTER JOIN > > "django_comments" ON ("documents_document"."id" = > > "django_comments"."object_pk") WHERE > > (UPPER("documents_documenttype"."name"::text) LIKE UPPER(%s) OR > > UPPER("documents_documentversion"."mimetype"::text) LIKE UPPER(%s) OR > > UPPER("documents_documentversion"."filename"::text) LIKE UPPER(%s) OR > > UPPER("metadata_documentmetadata"."value"::text) LIKE UPPER(%s) OR > > UPPER("documents_documentpage"."content"::text) LIKE UPPER(%s) OR > > UPPER("documents_document"."description"::text) LIKE UPPER(%s) OR > > (UPPER("taggit_tag"."name"::text) LIKE UPPER(%s) AND > > "taggit_taggeditem"."content_type_id" = %s ) OR > > (UPPER("django_comments"."comment"::text) LIKE UPPER(%s) AND > > "django_comments"."content_type_id" = %s )) ORDER BY > > "documents_document"."date_added" DESC' > > and scolds me for > > ERROR: operator does not exist: integer = text > > LEFT OUTER JOIN "django_comments" ON ("documents_document"."id" = > > "django_comments"."object_pk") > > No operator matches the given name and argument type(s). You might > > need to add explicit type casts. > > > > > > Hi! > > just had the same problem... it seems the only issue regarding search with > postgresql is that the comments contrib app uses object_pk instead of > object_id > for the GenericForeignKey. > > If someone really wants to use postgresql before a permanent fix or new > search > engine is available, it works if you paste the following hack at the end > of > apps/dynamic_search/models.py: > > from django.db import connection > if connection.vendor == 'postgresql': > from django.db.models.sql.compiler import SQLCompiler > orig_get_from_clause = SQLCompiler.get_from_clause > def get_from_clause(self): > result, extra = orig_get_from_clause(self) > result = map(lambda s: s.replace('"django_comments"."object_pk"', > '"django_comments"."object_pk"::integer'), result) > return result, extra > SQLCompiler.get_from_clause = get_from_clause > > >
