logo       
Google Custom Search
    AddThis Social Bookmark Button
-->

Re: ansi sql: msg#00017

Subject: Re: ansi sql
Hi,

Either your enthusiasm will bring new life to what looks to me to be a dying project or it will fall on deaf ears. This list mainly receives spam right now and actual questions about phpwiki tend to go unanswered. My installation has been broken for months, searching on Google shows many people have the same problem, but I cannot get any info on a fix. See http://sourceforge.net/mailarchive/forum.php?thread_id=8990578&forum_id=4517

I believe my solution is going to be to move to mediawiki, despite the extra work this will create for me, because it is possible to get support for it. Since Wikipedia uses it there is regular development, and its markup format is becoming something of a standard.

If this project does want to remain viable that's one thing it should seriously look into: a script to convert phpwiki markup to mediawiki markup and then an adoption of mediawiki markup style in a new version.

Good luck to you,

Brian

David Rhodes wrote:
Hi,

First, before I start, I am dying to get into this wiki in a large way. It makes documentation so accessible. There are several impediments though that could be changed to improve it's portability, mainly with the focus of the sql away from mysql functions, and more to the ansi standard.

For example, can I suggest we replace SELECT IF(...) in SELECTS with more non-mysql (and more ansi based) functionality.

As a case in point (pardon the pun), for the page locking function rather then

(SELECT IF(linkee.pagename,1,0) as result FROM phpwiki_link, phpwiki_page linker, phpwiki_page linkee, phpwiki_nonempty WHERE linkfrom=linker.id AND linkto=linkee.id AND linker.pagename='XXX-YYYY' AND linkee.pagename='ModeratedPage' LIMIT 1

it would be :

SELECT
case
when linkee.pagename <> 0
and linkee.pagename <> NULL
then 1 else 0
end
as result
FROM phpwiki_link, phpwiki_page linker, phpwiki_page linkee, phpwiki_nonempty
WHERE linkfrom=linker.id
AND linkto=linkee.id
AND linker.pagename='XXXX-YYYY'
AND linkee.pagename='ModeratedPage'
and rownum < 2

As for the LIMIT,... unfortuately I can see this is not so easy as mysql doesn't support the ansi row_number syntax. Instead I guess you could support it with a DBI type check (if DBI is oracle then use row_number, if DBI is mysql then use limit, etc), which then selects the correct rows return syntax.

These are not major changes, but will make it much more portable, and increase it's user base if that is important to you...

Thoughts?

(yep, I am also sure the case can be further refined. :)

Regards

David



-------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc. Do you grep through log files
for problems?  Stop!  Download the new AJAX search engine that makes
searching your log files as easy as surfing the  web.  DOWNLOAD SPLUNK!
http://ads.osdn.com/?ad_id=7637&alloc_id=16865&op=click


<Prev in Thread] Current Thread [Next in Thread>