Sybase port of RT3

I apologize if this gets posted to the list twice. The first time I tried to send it, my return address didn’t match my subscription address, so I think it will be dropped.

We are in the process of implementing RT3 on Sybase. We are pretty much done, RT3 runs and is mostly functional. There are still a few limitations due to Sybase’s lack of LIMIT support.

I have a few questions. Our biggest bother during the port has been the Instance field in the Groups table. Why is this a varchar? It seems that it is only used to hold id values for other tables. I’ve come across messages from last month mentioning this as a performance issue, but for Sybase it is a show stopper. Joins of varchar against int won’t work without explicit data conversions in the query.

We also found many instances of table id field values being quoted in queries. Is this necessary for MySQL or PostgreSQL to work? In Sybase, quoting the value makes it a char type and it won’t compare against the int id field without an explicit conversion. We ripped out the apparently unnecessary quotes and everything runs fine.

Cheers
Chris

I apologize if this gets posted to the list twice. The first time
I tried to send it, my return address didn’t match my subscription
address, so I think it will be dropped. We are in the process of
implementing RT3 on Sybase. We are pretty much done, RT3 runs and is
mostly functional. There are still a few limitations due to Sybase’s
lack of LIMIT support.

Interesting. Is there another way to get the same result? Worst case, it
could be done in DBIx::SearchBuilder::Handle::Sybase

I have a few questions. Our biggest bother during the port has been
the Instance field in the Groups table. Why is this a varchar? It seems
that it is only used to hold id values for other tables. I’ve come
across messages from last month mentioning this as a performance issue,
but for Sybase it is a show stopper. Joins of varchar against int
won’t work without explicit data conversions in the query.

It’s a historical thing. Initially, instance was expected to hold a
string, not an integer. I believe it to be safe to change it. (The
postgres port will have this changed in 3.0.3)

We also
found many instances of table id field values being quoted in queries.
Is this necessary for MySQL or PostgreSQL to work? In Sybase, quoting
the value makes it a char type and it won’t compare against the int
id field without an explicit conversion. We ripped out the apparently
unnecessary quotes and everything runs fine.

It is not necessary to make mysql or Pg work. Really, where possible,
the right thing is to move from explicitly quoted values to using
placeholders, so there aren’t any quoting issues.

Just to check, you know about “make regression”, right? It’ll put RT
through the test suite to make sure everything works all right.

Cheers
Chris


rt-devel mailing list
rt-devel@lists.fsck.com
http://lists.fsck.com/mailman/listinfo/rt-devel

http://www.bestpractical.com/rt – Trouble Ticketing. Free.