ארכיון יומי: 19 דצמבר, 2010

שדות בוליאניים ב firebird

גרסה 3 של Firebird הולכת בין היתר להכיל שדות מסוג Boolean בתוכם. זה הפיטצ'ר שהיה במקום השלישי מבחינת הקולות בבקשות לפיתוח Firebird – כאמור בגרסה 3 הוא מתקיים.

המפתח של התמיכה, השקיע המון מחשבה בנושא ולא יישם את התמיכה "על רגל אחת". ובכך הוא הכיר לנו טיפוס מסוג BOOLEAN, אשר יכול להכיל ערכים של TRUE, FALSE ו UNKNOWN/NULL (שניהם זהים בהתנהגות שלהם).

בנוסף, שדה מסוג BOOLEAN יכול להיות מפתח וכך אפשר לחפש לפיו, לחתוך לפיו, לסדר לפיו וכיוב'…

על מנת לחפש עם מפתח מסוג בוליאני, הוא יצר פעולה חדשה בשם IS כלומר:

field IS FALSE
field IS TRUE
field IS UNKNOWN

ובייחד עם זה אפשר להמיר שדה בוליאני למחרוזת, כלומר הביטוי הבא:

"field1 OR field2" and "NOT field1"

הוא חוקי לגמרי.

אבל עם הכניסה הזו יש גם בעיות. היות ועד עכשיו לא היו מגבלות על המילים השמורות האלו, ועכשיו יש. כך שעל מנת לנסות לתת תמיכה אחורה נוצרו כל מיני מצבים לא קריאים אבל חוקיים לגמרי, בהם מזהים מתי מדובר במילה שמורה ומתי מדובר בביטוי או שם שדה. אישית אני מקווה שבגרסאות עתידיות יאפשרו להגדיר גם שהוא לא ירשה את זה.

זה מאוד בגדול הסבר על שדה בוליאני במסד הנתונים קוד פתוח Firebird. וקישרתי למעלה את ההסבר של המפתח שכמעט זהה לחלוטין למה שכתבתי כאן.