修訂 | 67 (tree) |
---|---|
時間 | 2008-04-01 21:37:09 |
作者 | junkikuchi |
added float column type.
@@ -53,6 +53,16 @@ | ||
53 | 53 | end |
54 | 54 | end |
55 | 55 | |
56 | + class Float < Column | |
57 | + def execute(command) | |
58 | + if @param[:unsigned] | |
59 | + command.float_unsigned(self) | |
60 | + else | |
61 | + command.float(self) | |
62 | + end | |
63 | + end | |
64 | + end | |
65 | + | |
56 | 66 | class String < Column |
57 | 67 | def initialize(name, param={}) |
58 | 68 | super |
@@ -164,6 +164,8 @@ | ||
164 | 164 | def boolean(col) handler(col); end |
165 | 165 | def integer(col) handler(col); end |
166 | 166 | def integer_unsigned(col) handler(col); end |
167 | + def float(col) handler(col); end | |
168 | + def float_unsigned(col) handler(col); end | |
167 | 169 | def varchar(col) handler(col); end |
168 | 170 | def char(col) handler(col); end |
169 | 171 | def text(col) handler(col); end |
@@ -207,6 +209,28 @@ | ||
207 | 209 | @col << self.class::SQL_INT_UNSIG % col.name |
208 | 210 | end |
209 | 211 | |
212 | + def float(col) | |
213 | + @col << self.class::SQL_FLOAT % [ | |
214 | + col.name, | |
215 | + if col.param[:precision] | |
216 | + "(%d, %d)" % [col.param[:precision], col.param[:scale] || 0] | |
217 | + else | |
218 | + nil | |
219 | + end | |
220 | + ] | |
221 | + end | |
222 | + | |
223 | + def float_unsigned(col) | |
224 | + @col << self.class::SQL_FLOAT_UNSIG % [ | |
225 | + col.name, | |
226 | + if col.param[:precision] | |
227 | + "(%d, %d)" % [col.param[:precision], col.param[:scale] || 0] | |
228 | + else | |
229 | + nil | |
230 | + end | |
231 | + ] | |
232 | + end | |
233 | + | |
210 | 234 | def varchar(col) |
211 | 235 | @col << self.class::SQL_VARCHAR % [col.name, col.param[:length]] |
212 | 236 | end |
@@ -13,6 +13,8 @@ | ||
13 | 13 | SQL_BOOLEAN = ' %s BOOLEAN' |
14 | 14 | SQL_INT = ' %s INT' |
15 | 15 | SQL_INT_UNSIG = ' %s INT UNSIGNED' |
16 | + SQL_FLOAT = ' %s FLOAT%s' | |
17 | + SQL_FLOAT_UNSIG = ' %s FLOAT%s UNSIGNED' | |
16 | 18 | SQL_VARCHAR = ' %s VARCHAR(%s)' |
17 | 19 | SQL_CHAR = ' %s CHAR(%s)' |
18 | 20 | SQL_TEXT = ' %s LONGBLOB' |