blueworrybear / DataBaseProject1

1 stars 0 forks source link

Bug Report #19

Closed subsevenx2001 closed 12 years ago

subsevenx2001 commented 12 years ago

先回報幾個會出錯的Querry

SELECT b.* FROM Book AS b, Author AS a WHERE b.authorId = a.authorId AND a.name = 'Michael Crichton';

SELECT bookId, title, pages, name FROM Book, Author WHERE Book.authorId = Author.authorId;

SELECT a.name, title FROM Book, Author AS a WHERE Book.authorId = a.authorId AND Book.pages > 200;

這幾個會直接被打成 Invalid SQL,幾乎都跟JOINT Operation 有關係

SELECT a.name FROM Author AS a, Book AS b WHERE a.authorId = b.authorId AND b.title = 'Star Wars';

SELECT a.name, b.title FROM Author AS a, Book AS b WHERE a.authorId = b.authorId AND a.nationality <> 'Taiwan';

這幾條會報 java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Integer

SELECT COUNT(*) FROM Book;

SELECT COUNT(editorial) FROM Book;

這幾條本來應該要回傳tuple數量,卻回傳content,可能是Count的 判定不正確

但是也有一些COUNT的query有回傳正確的結果,我現在在研究哪裡有問題

SELECT authorId FROM Author, Book WHERE Author.authorId = Book.authorId AND Book.title = 'Star Wars';

SELECT A.name FROM Author AS A, Book AS B WHERE A.authorId = B.authorId AND editorial = 'Barron's';

SELECT Book.* FROM Book, Author WHERE Book.authorId = Author.name;

以上這三條是邏輯錯誤的SQL指令,本來應該可以進入SqlSelectExecution,但是一開始就被打成Invalid SQL

另外就是跳脫字元' \' ' SQLInsertFetcher的處理有誤,本來是 "Barron\'s"會被處理成 "Barron\" 而不是 "Barron's"

我現在正在試著找出其中一些問題,如果有進展我會再發issue給大家,各位辛苦了<( )>

subsevenx2001 commented 12 years ago

我發現Count是只要沒有Where clause就會出錯,正在檢查Select EXEC那邊的判定

subsevenx2001 commented 12 years ago

發現是SqlExecutionFactory的問題,改了之後COUNT可以正常顯示結果,目前正在檢查這個修改是否有副作用

subsevenx2001 commented 12 years ago

確定OK,接下來嘗試解決java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Integer問題

subsevenx2001 commented 12 years ago

java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Integer

問題已解決,將SqlSelectExec中的(Integer) casting改成parseInt就好了,但是

SELECT a.name, b.title FROM Author AS a, Book AS b WHERE a.authorId = b.authorId AND a.nationality <> 'Taiwan';

這條querry會回傳ArrayOutofBound,判斷是Operator沒有接受超過一個字的'<>',我看看可不可以修改

blueworrybear commented 12 years ago

至伊,關於上面幾個錯誤,除了invalid的問題外,羅毅和我新的CODE已經可以運作。 不過有幾個invalid的問題確實有錯,那邊你有解決了嗎?

subsevenx2001 commented 12 years ago

那邊還沒解決 2012-5-10 上午8:01 於 "blueworrybear" < reply@reply.github.com> 寫道:

至伊,關於上面幾個錯誤,除了invalid的問題外,羅毅和我新的CODE已經可以運作。 不過有幾個invalid的問題確實有錯,那邊你有解決了嗎?


Reply to this email directly or view it on GitHub:

https://github.com/blueworrybear/DataBaseProject1/issues/19#issuecomment-5615066

blueworrybear commented 12 years ago

OK,現在程式都CHECK過了。應該沒有其它問題。 我會再繼續測其它的測資。