@@ -248,151 +248,60 @@ CASTING FUNCTIONS
248
248
*/
249
249
250
250
-- msar.cast_to_boolean
251
- CREATE OR REPLACE FUNCTION msar .cast_to_boolean(boolean )
252
- RETURNS boolean
253
- AS $$
254
-
255
- BEGIN
256
- RETURN $1 ::boolean ;
257
- END;
258
-
259
- $$ LANGUAGE plpgsql RETURNS NULL ON NULL INPUT;
260
-
261
-
262
- CREATE OR REPLACE FUNCTION msar .cast_to_boolean(smallint )
263
- RETURNS boolean
264
- AS $$
265
- BEGIN
266
- IF $1 <> 0 AND $1 <> 1 THEN
267
- RAISE EXCEPTION ' % is not a boolean' , $1 ; END IF;
268
- RETURN $1 <> 0 ;
269
- END;
270
- $$ LANGUAGE plpgsql RETURNS NULL ON NULL INPUT;
271
-
272
-
273
- CREATE OR REPLACE FUNCTION msar .cast_to_boolean(real )
274
- RETURNS boolean
275
- AS $$
276
- BEGIN
277
- IF $1 <> 0 AND $1 <> 1 THEN
278
- RAISE EXCEPTION ' % is not a boolean' , $1 ; END IF;
279
- RETURN $1 <> 0 ;
280
- END;
281
- $$ LANGUAGE plpgsql RETURNS NULL ON NULL INPUT;
282
-
283
-
284
- CREATE OR REPLACE FUNCTION msar .cast_to_boolean(bigint )
285
- RETURNS boolean
286
- AS $$
287
- BEGIN
288
- IF $1 <> 0 AND $1 <> 1 THEN
289
- RAISE EXCEPTION ' % is not a boolean' , $1 ; END IF;
290
- RETURN $1 <> 0 ;
291
- END;
292
- $$ LANGUAGE plpgsql RETURNS NULL ON NULL INPUT;
293
-
294
-
295
- CREATE OR REPLACE FUNCTION msar .cast_to_boolean(double precision )
296
- RETURNS boolean
297
- AS $$
298
-
299
- BEGIN
300
- IF $1 <> 0 AND $1 <> 1 THEN
301
- RAISE EXCEPTION ' % is not a boolean' , $1 ; END IF;
302
- RETURN $1 <> 0 ;
303
- END;
304
-
305
- $$ LANGUAGE plpgsql RETURNS NULL ON NULL INPUT;
306
-
251
+ CREATE OR REPLACE FUNCTION msar .cast_to_boolean(boolean ) RETURNS boolean AS $$
252
+ SELECT $1 ::boolean ;
253
+ $$ LANGUAGE SQL IMMUTABLE RETURNS NULL ON NULL INPUT;
307
254
308
- CREATE OR REPLACE FUNCTION msar .cast_to_boolean(numeric )
309
- RETURNS boolean
310
- AS $$
311
- BEGIN
312
- IF $1 <> 0 AND $1 <> 1 THEN
313
- RAISE EXCEPTION ' % is not a boolean' , $1 ; END IF;
314
- RETURN $1 <> 0 ;
315
- END;
255
+ CREATE OR REPLACE FUNCTION msar .cast_to_boolean(real ) RETURNS boolean AS $$
256
+ BEGIN
257
+ IF $1 <> 0 AND $1 <> 1 THEN
258
+ RAISE EXCEPTION ' % is not a boolean' , $1 ; END IF;
259
+ RETURN $1 <> 0 ;
260
+ END;
316
261
$$ LANGUAGE plpgsql RETURNS NULL ON NULL INPUT;
317
262
318
-
319
- CREATE OR REPLACE FUNCTION msar .cast_to_boolean(integer )
320
- RETURNS boolean
321
- AS $$
322
- BEGIN
323
- IF $1 <> 0 AND $1 <> 1 THEN
324
- RAISE EXCEPTION ' % is not a boolean' , $1 ; END IF;
325
- RETURN $1 <> 0 ;
326
- END;
263
+ CREATE OR REPLACE FUNCTION msar .cast_to_boolean(bigint ) RETURNS boolean AS $$
264
+ BEGIN
265
+ IF $1 <> 0 AND $1 <> 1 THEN
266
+ RAISE EXCEPTION ' % is not a boolean' , $1 ; END IF;
267
+ RETURN $1 <> 0 ;
268
+ END;
327
269
$$ LANGUAGE plpgsql RETURNS NULL ON NULL INPUT;
328
270
329
-
330
- CREATE OR REPLACE FUNCTION msar .cast_to_boolean(character varying)
331
- RETURNS boolean
332
- AS $$
333
- DECLARE
334
- istrue boolean ;
335
- BEGIN
336
- SELECT
337
- $1 = ' 1' OR lower ($1 ) = ' on'
338
- OR lower ($1 )= ' t' OR lower ($1 )= ' true'
339
- OR lower ($1 )= ' y' OR lower ($1 )= ' yes'
340
- INTO istrue;
341
- IF istrue
342
- OR $1 = ' 0' OR lower ($1 ) = ' off'
343
- OR lower ($1 )= ' f' OR lower ($1 )= ' false'
344
- OR lower ($1 )= ' n' OR lower ($1 )= ' no'
345
- THEN
346
- RETURN istrue;
347
- END IF;
348
- RAISE EXCEPTION ' % is not a boolean' , $1 ;
349
- END;
271
+ CREATE OR REPLACE FUNCTION msar .cast_to_boolean(double precision ) RETURNS boolean AS $$
272
+ BEGIN
273
+ IF $1 <> 0 AND $1 <> 1 THEN
274
+ RAISE EXCEPTION ' % is not a boolean' , $1 ; END IF;
275
+ RETURN $1 <> 0 ;
276
+ END;
350
277
$$ LANGUAGE plpgsql RETURNS NULL ON NULL INPUT;
351
278
352
-
353
- CREATE OR REPLACE FUNCTION msar .cast_to_boolean(text )
354
- RETURNS boolean
355
- AS $$
356
- DECLARE
357
- istrue boolean ;
358
- BEGIN
359
- SELECT
360
- $1 = ' 1' OR lower ($1 ) = ' on'
361
- OR lower ($1 )= ' t' OR lower ($1 )= ' true'
362
- OR lower ($1 )= ' y' OR lower ($1 )= ' yes'
363
- INTO istrue;
364
- IF istrue
365
- OR $1 = ' 0' OR lower ($1 ) = ' off'
366
- OR lower ($1 )= ' f' OR lower ($1 )= ' false'
367
- OR lower ($1 )= ' n' OR lower ($1 )= ' no'
368
- THEN
369
- RETURN istrue;
370
- END IF;
371
- RAISE EXCEPTION ' % is not a boolean' , $1 ;
372
- END;
279
+ CREATE OR REPLACE FUNCTION msar .cast_to_boolean(numeric ) RETURNS boolean AS $$
280
+ BEGIN
281
+ IF $1 <> 0 AND $1 <> 1 THEN
282
+ RAISE EXCEPTION ' % is not a boolean' , $1 ; END IF;
283
+ RETURN $1 <> 0 ;
284
+ END;
373
285
$$ LANGUAGE plpgsql RETURNS NULL ON NULL INPUT;
374
286
375
-
376
- CREATE OR REPLACE FUNCTION msar .cast_to_boolean(character)
377
- RETURNS boolean
378
- AS $$
379
- DECLARE
287
+ CREATE OR REPLACE FUNCTION msar .cast_to_boolean(text ) RETURNS boolean AS $$
288
+ DECLARE
380
289
istrue boolean ;
381
- BEGIN
382
- SELECT
383
- $1 = ' 1' OR lower ($1 ) = ' on'
384
- OR lower ($1 )= ' t' OR lower ($1 )= ' true'
385
- OR lower ($1 )= ' y' OR lower ($1 )= ' yes'
386
- INTO istrue;
387
- IF istrue
388
- OR $1 = ' 0' OR lower ($1 ) = ' off'
389
- OR lower ($1 )= ' f' OR lower ($1 )= ' false'
390
- OR lower ($1 )= ' n' OR lower ($1 )= ' no'
391
- THEN
392
- RETURN istrue;
393
- END IF;
394
- RAISE EXCEPTION ' % is not a boolean' , $1 ;
395
- END;
290
+ BEGIN
291
+ SELECT
292
+ $1 = ' 1' OR lower ($1 ) = ' on'
293
+ OR lower ($1 )= ' t' OR lower ($1 )= ' true'
294
+ OR lower ($1 )= ' y' OR lower ($1 )= ' yes'
295
+ INTO istrue;
296
+ IF istrue
297
+ OR $1 = ' 0' OR lower ($1 ) = ' off'
298
+ OR lower ($1 )= ' f' OR lower ($1 )= ' false'
299
+ OR lower ($1 )= ' n' OR lower ($1 )= ' no'
300
+ THEN
301
+ RETURN istrue;
302
+ END IF;
303
+ RAISE EXCEPTION ' % is not a boolean' , $1 ;
304
+ END;
396
305
$$ LANGUAGE plpgsql RETURNS NULL ON NULL INPUT;
397
306
398
307
0 commit comments