āĻ¸āĻ¨ā§āĻĻā§‡āĻšāĻœāĻ¨āĻ• āĻĒā§āĻ°āĻ•āĻžāĻ°

āĻ¤āĻžāĻĻā§‡āĻ° āĻšā§‡āĻšāĻžāĻ°āĻž āĻ¨āĻŋāĻ¯āĻŧā§‡ āĻ¸āĻ¨ā§āĻĻā§‡āĻšāĻœāĻ¨āĻ• āĻ•āĻŋāĻ›ā§ āĻ¨ā§‡āĻ‡āĨ¤ āĻ¤āĻĻā§āĻĒāĻ°āĻŋ, āĻ¤āĻžāĻ°āĻž āĻāĻŽāĻ¨āĻ•āĻŋ āĻ†āĻĒāĻ¨āĻžāĻ° āĻ•āĻžāĻ›ā§‡ āĻ­āĻžāĻ˛ āĻāĻŦāĻ‚ āĻĻā§€āĻ°ā§āĻ˜ āĻ¸āĻŽāĻ¯āĻŧā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻĒāĻ°āĻŋāĻšāĻŋāĻ¤ āĻŦāĻ˛ā§‡ āĻŽāĻ¨ā§‡ āĻšāĻšā§āĻ›ā§‡āĨ¤ āĻ•āĻŋāĻ¨ā§āĻ¤ā§ āĻ†āĻĒāĻ¨āĻŋ āĻ¤āĻžāĻĻā§‡āĻ° āĻšā§‡āĻ• āĻ•āĻ°āĻž āĻĒāĻ°ā§āĻ¯āĻ¨ā§āĻ¤ āĻ¯ā§‡ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ°. āĻāĻ–āĻžāĻ¨ā§‡āĻ‡ āĻ¤āĻžāĻ°āĻž āĻ¤āĻžāĻĻā§‡āĻ° āĻ›āĻ˛āĻ¨āĻžāĻŽāĻ¯āĻŧ āĻĒā§āĻ°āĻ•ā§ƒāĻ¤āĻŋ āĻĻā§‡āĻ–āĻžāĻ¯āĻŧ, āĻ†āĻĒāĻ¨āĻžāĻ° āĻĒā§āĻ°āĻ¤ā§āĻ¯āĻžāĻļāĻžāĻ° āĻšā§‡āĻ¯āĻŧā§‡ āĻ¸āĻŽā§āĻĒā§‚āĻ°ā§āĻŖ āĻ­āĻŋāĻ¨ā§āĻ¨āĻ­āĻžāĻŦā§‡ āĻ•āĻžāĻœ āĻ•āĻ°ā§‡āĨ¤ āĻāĻŦāĻ‚ āĻ•āĻ–āĻ¨āĻ“ āĻ•āĻ–āĻ¨āĻ“ āĻ¤āĻžāĻ°āĻž āĻāĻŽāĻ¨ āĻ•āĻŋāĻ›ā§ āĻ•āĻ°ā§‡ āĻ¯āĻž āĻ†āĻĒāĻ¨āĻžāĻ° āĻšā§āĻ˛āĻ•ā§‡ āĻļā§‡āĻˇ āĻ•āĻ°ā§‡ āĻĻā§‡āĻ¯āĻŧ - āĻ‰āĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§‚āĻĒ, āĻ¤āĻžāĻ°āĻž āĻ¤āĻžāĻĻā§‡āĻ° āĻ‰āĻĒāĻ° āĻ…āĻ°ā§āĻĒāĻŋāĻ¤ āĻ—ā§‹āĻĒāĻ¨ āĻĄā§‡āĻŸāĻž āĻšāĻžāĻ°āĻžāĻ¯āĻŧāĨ¤ āĻ†āĻĒāĻ¨āĻŋ āĻ¯āĻ–āĻ¨ āĻ¤āĻžāĻĻā§‡āĻ° āĻŽā§āĻ–ā§‹āĻŽā§āĻ–āĻŋ āĻšāĻ¨, āĻ¤āĻžāĻ°āĻž āĻĻāĻžāĻŦāĻŋ āĻ•āĻ°ā§‡ āĻ¯ā§‡ āĻ¤āĻžāĻ°āĻž āĻāĻ•ā§‡ āĻ…āĻĒāĻ°āĻ•ā§‡ āĻšā§‡āĻ¨ā§‡ āĻ¨āĻž, āĻ¯āĻĻāĻŋāĻ“ āĻ›āĻžāĻ¯āĻŧāĻžāĻ¯āĻŧ āĻ¤āĻžāĻ°āĻž āĻāĻ•āĻ‡ āĻšā§āĻĄā§‡āĻ° āĻ¨ā§€āĻšā§‡ āĻ•āĻ ā§‹āĻ° āĻĒāĻ°āĻŋāĻļā§āĻ°āĻŽ āĻ•āĻ°ā§‡āĨ¤ āĻ…āĻŦāĻļā§‡āĻˇā§‡ āĻ¤āĻžāĻĻā§‡āĻ° āĻĒāĻ°āĻŋāĻˇā§āĻ•āĻžāĻ° āĻœāĻ˛ā§‡ āĻ†āĻ¨āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻāĻ¸ā§‡āĻ›ā§‡āĨ¤ āĻ†āĻ¸ā§āĻ¨ āĻ†āĻŽāĻ°āĻž āĻāĻ‡ āĻ¸āĻ¨ā§āĻĻā§‡āĻšāĻœāĻ¨āĻ• āĻĒā§āĻ°āĻ•āĻžāĻ°āĻ—ā§āĻ˛āĻŋāĻ•ā§‡ āĻŽā§‹āĻ•āĻžāĻŦā§‡āĻ˛āĻž āĻ•āĻ°āĻŋāĨ¤

PostgreSQL-āĻ āĻĄā§‡āĻŸāĻž āĻŸāĻžāĻ‡āĻĒāĻŋāĻ‚, āĻāĻ° āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ¯ā§āĻ•ā§āĻ¤āĻŋāĻ° āĻœāĻ¨ā§āĻ¯, āĻ•āĻ–āĻ¨āĻ“ āĻ•āĻ–āĻ¨āĻ“ āĻ–ā§āĻŦ āĻ…āĻĻā§āĻ­ā§āĻ¤ āĻŦāĻŋāĻ¸ā§āĻŽāĻ¯āĻŧ āĻ‰āĻĒāĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻ•āĻ°ā§‡āĨ¤ āĻāĻ‡ āĻĒā§āĻ°āĻŦāĻ¨ā§āĻ§ā§‡ āĻ†āĻŽāĻ°āĻž āĻ¤āĻžāĻĻā§‡āĻ° āĻ•āĻŋāĻ›ā§ āĻ•ā§ŒāĻļāĻ˛ āĻ¸ā§āĻĒāĻˇā§āĻŸ āĻ•āĻ°āĻžāĻ° āĻšā§‡āĻˇā§āĻŸāĻž āĻ•āĻ°āĻŦ, āĻ¤āĻžāĻĻā§‡āĻ° āĻ…āĻĻā§āĻ­ā§āĻ¤ āĻ†āĻšāĻ°āĻŖā§‡āĻ° āĻ•āĻžāĻ°āĻŖ āĻŦā§āĻāĻ¤ā§‡ āĻĒāĻžāĻ°āĻŦ āĻāĻŦāĻ‚ āĻĻā§ˆāĻ¨āĻ¨ā§āĻĻāĻŋāĻ¨ āĻ…āĻ¨ā§āĻļā§€āĻ˛āĻ¨ā§‡ āĻ•ā§€āĻ­āĻžāĻŦā§‡ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻ¯āĻŧ āĻĒāĻĄāĻŧāĻ¤ā§‡ āĻšāĻŦā§‡ āĻ¨āĻž āĻ¤āĻž āĻŦā§āĻāĻ¤ā§‡ āĻĒāĻžāĻ°āĻŦāĨ¤ āĻ¸āĻ¤ā§āĻ¯ āĻŦāĻ˛āĻ¤ā§‡, āĻ†āĻŽāĻŋ āĻāĻ‡ āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§āĻŸāĻŋ āĻ¨āĻŋāĻœā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ•āĻŸāĻŋ āĻ°ā§‡āĻĢāĻžāĻ°ā§‡āĻ¨ā§āĻ¸ āĻŦāĻ‡ āĻšāĻŋāĻ¸āĻžāĻŦā§‡āĻ“ āĻ¸āĻ‚āĻ•āĻ˛āĻ¨ āĻ•āĻ°ā§‡āĻ›āĻŋ, āĻāĻ•āĻŸāĻŋ āĻ°ā§‡āĻĢāĻžāĻ°ā§‡āĻ¨ā§āĻ¸ āĻŦāĻ‡ āĻ¯āĻž āĻŦāĻŋāĻ¤āĻ°ā§āĻ•āĻŋāĻ¤ āĻ•ā§āĻˇā§‡āĻ¤ā§āĻ°ā§‡ āĻ¸āĻšāĻœā§‡āĻ‡ āĻ‰āĻ˛ā§āĻ˛ā§‡āĻ– āĻ•āĻ°āĻž āĻ¯ā§‡āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĨ¤ āĻ…āĻ¤āĻāĻŦ, āĻ¸āĻ¨ā§āĻĻā§‡āĻšāĻœāĻ¨āĻ• āĻ§āĻ°āĻ¨ā§‡āĻ° āĻĨā§‡āĻ•ā§‡ āĻ¨āĻ¤ā§āĻ¨ āĻšāĻŽāĻ• āĻ†āĻŦāĻŋāĻˇā§āĻ•ā§ƒāĻ¤ āĻšāĻ“āĻ¯āĻŧāĻžāĻ° āĻ¸āĻžāĻĨā§‡ āĻ¸āĻžāĻĨā§‡ āĻāĻŸāĻŋ āĻĒā§āĻ¨āĻ°āĻžāĻ¯āĻŧ āĻĒā§‚āĻ°āĻŖ āĻ•āĻ°āĻž āĻšāĻŦā§‡āĨ¤ āĻ¸ā§āĻ¤āĻ°āĻžāĻ‚, āĻšāĻ˛ā§āĻ¨, āĻ…āĻ•ā§āĻ˛āĻžāĻ¨ā§āĻ¤ āĻĄāĻžāĻŸāĻžāĻŦā§‡āĻ¸ āĻŸā§āĻ°ā§āĻ¯āĻžāĻ•āĻžāĻ°!

āĻĄāĻ¸āĻŋāĻ¯āĻŧāĻžāĻ° āĻ¨āĻŽā§āĻŦāĻ° āĻāĻ•āĨ¤ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦ/āĻĻā§āĻŦā§ˆāĻ¤ āĻ¨āĻŋāĻ°ā§āĻ­ā§āĻ˛āĻ¤āĻž/āĻ¸āĻ‚āĻ–ā§āĻ¯āĻžāĻ¸ā§‚āĻšāĻ•/āĻ…āĻ°ā§āĻĨ

āĻĻā§‡āĻ–ā§‡ āĻŽāĻ¨ā§‡ āĻšāĻŦā§‡ āĻ¯ā§‡ āĻ†āĻšāĻ°āĻŖā§‡ āĻ†āĻļā§āĻšāĻ°ā§āĻ¯ā§‡āĻ° āĻ•ā§āĻˇā§‡āĻ¤ā§āĻ°ā§‡ āĻ¸āĻ‚āĻ–ā§āĻ¯āĻžāĻ¸ā§‚āĻšāĻ• āĻĒā§āĻ°āĻ•āĻžāĻ°āĻ—ā§āĻ˛āĻŋ āĻ¸āĻŦāĻšā§‡āĻ¯āĻŧā§‡ āĻ•āĻŽ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻ¯ā§āĻ•ā§āĻ¤āĨ¤ āĻ¤āĻŦā§‡ āĻ¸ā§‡āĻŸāĻž āĻ¯ā§‡āĻ­āĻžāĻŦā§‡āĻ‡ āĻšā§‹āĻ• āĻ¨āĻž āĻ•ā§‡āĻ¨āĨ¤ āĻ¤āĻžāĻ‡ āĻ¤āĻžāĻĻā§‡āĻ° āĻĻāĻŋāĻ¯āĻŧā§‡ āĻļā§āĻ°ā§ āĻ•āĻ°āĻž āĻ¯āĻžāĻ•. āĻ¤āĻžāĻ‡â€Ļ

āĻ•āĻŋāĻ­āĻžāĻŦā§‡ āĻ—āĻŖāĻ¨āĻž āĻ•āĻ°āĻ¤ā§‡ āĻ­ā§āĻ˛ā§‡ āĻ—ā§‡āĻ›āĻŋ

SELECT 0.1::real = 0.1

?column?
boolean
---------
f

āĻ•āĻŋ āĻŦā§āĻ¯āĻžāĻĒāĻžāĻ°? āĻ¸āĻŽāĻ¸ā§āĻ¯āĻž āĻšāĻ˛ āĻĒā§‹āĻ¸ā§āĻŸāĻ—ā§āĻ°ā§‡āĻāĻ¸āĻ•āĻŋāĻ‰āĻāĻ˛ āĻŸāĻžāĻ‡āĻĒ āĻ¨āĻž āĻ•āĻ°āĻž āĻ§ā§āĻ°ā§āĻŦāĻ• 0.1 āĻ•ā§‡ āĻĻā§āĻŦāĻŋāĻ—ā§āĻŖ āĻ¨āĻŋāĻ°ā§āĻ­ā§āĻ˛āĻ¤āĻžāĻ¯āĻŧ āĻ°ā§‚āĻĒāĻžāĻ¨ā§āĻ¤āĻ° āĻ•āĻ°ā§‡ āĻāĻŦāĻ‚ āĻāĻŸāĻŋāĻ•ā§‡ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦ āĻĒā§āĻ°āĻ•āĻžāĻ°ā§‡āĻ° 0.1 āĻāĻ° āĻ¸āĻžāĻĨā§‡ āĻ¤ā§āĻ˛āĻ¨āĻž āĻ•āĻ°āĻžāĻ° āĻšā§‡āĻˇā§āĻŸāĻž āĻ•āĻ°ā§‡āĨ¤ āĻ†āĻ° āĻāĻ—ā§āĻ˛ā§‹ āĻ¸āĻŽā§āĻĒā§‚āĻ°ā§āĻŖ āĻ­āĻŋāĻ¨ā§āĻ¨ āĻ…āĻ°ā§āĻĨ! āĻ§āĻžāĻ°āĻŖāĻž āĻŽā§‡āĻļāĻŋāĻ¨ āĻŽā§‡āĻŽāĻ°āĻŋ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦ āĻ¸āĻ‚āĻ–ā§āĻ¯āĻž āĻĒā§āĻ°āĻ¤āĻŋāĻ¨āĻŋāĻ§āĻŋāĻ¤ā§āĻŦ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ. āĻ¯ā§‡āĻšā§‡āĻ¤ā§ 0.1āĻ•ā§‡ āĻāĻ•āĻŸāĻŋ āĻ¸āĻ¸ā§€āĻŽ āĻŦāĻžāĻ‡āĻ¨āĻžāĻ°āĻŋ āĻ­āĻ—ā§āĻ¨āĻžāĻ‚āĻļ āĻšāĻŋāĻ¸āĻžāĻŦā§‡ āĻ‰āĻĒāĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻ•āĻ°āĻž āĻ¯āĻžāĻ¯āĻŧ āĻ¨āĻž (āĻāĻŸāĻŋ āĻŦāĻžāĻ‡āĻ¨āĻžāĻ°āĻŋāĻ¤ā§‡ 0.0(0011) āĻšāĻŦā§‡), āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āĻ¨ āĻ…āĻ™ā§āĻ•ā§‡āĻ° āĻ¸āĻ‚āĻ–ā§āĻ¯āĻžāĻ—ā§āĻ˛āĻŋ āĻ†āĻ˛āĻžāĻĻāĻž āĻšāĻŦā§‡, āĻ¤āĻžāĻ‡ āĻĢāĻ˛āĻžāĻĢāĻ˛āĻŸāĻŋ āĻ¯ā§‡ āĻ¤āĻžāĻ°āĻž āĻ¸āĻŽāĻžāĻ¨ āĻ¨āĻ¯āĻŧāĨ¤ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ­āĻžāĻŦā§‡ āĻŦāĻ˛āĻ¤ā§‡ āĻ—ā§‡āĻ˛ā§‡, āĻāĻŸāĻŋ āĻāĻ•āĻŸāĻŋ āĻĒā§ƒāĻĨāĻ• āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ•āĻŸāĻŋ āĻŦāĻŋāĻˇāĻ¯āĻŧ; āĻ†āĻŽāĻŋ āĻāĻ–āĻžāĻ¨ā§‡ āĻ†āĻ°āĻ“ āĻŦāĻŋāĻ¸ā§āĻ¤āĻžāĻ°āĻŋāĻ¤ āĻ˛āĻŋāĻ–āĻŦ āĻ¨āĻžāĨ¤

āĻ¤ā§āĻ°ā§āĻŸāĻŋ āĻ•ā§‹āĻĨāĻž āĻĨā§‡āĻ•ā§‡ āĻ†āĻ¸ā§‡?

SELECT double precision(1)

ERROR:  syntax error at or near "("
LINE 1: SELECT double precision(1)
                               ^
********** ОŅˆĐ¸ĐąĐēĐ° **********
ERROR: syntax error at or near "("
SQL-ŅĐžŅŅ‚ĐžŅĐŊиĐĩ: 42601
ХиĐŧвОĐģ: 24

āĻ…āĻ¨ā§‡āĻ•ā§‡āĻ‡ āĻœāĻžāĻ¨ā§‡āĻ¨ āĻ¯ā§‡ PostgreSQL āĻŸāĻžāĻ‡āĻĒ āĻ•āĻžāĻ¸ā§āĻŸāĻŋāĻ‚āĻ¯āĻŧā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ•āĻžāĻ°ā§āĻ¯āĻ•āĻ°ā§€ āĻ¸ā§āĻŦāĻ°āĻ˛āĻŋāĻĒāĻŋ āĻ…āĻ¨ā§āĻŽā§‹āĻĻāĻ¨ āĻ•āĻ°ā§‡āĨ¤ āĻ…āĻ°ā§āĻĨāĻžā§Ž, āĻ†āĻĒāĻ¨āĻŋ āĻļā§āĻ§ā§ 1::int āĻ¨āĻ¯āĻŧ, int(1)āĻ“ āĻ˛āĻŋāĻ–āĻ¤ā§‡ āĻĒāĻžāĻ°āĻŦā§‡āĻ¨, āĻ¯āĻž āĻ¸āĻŽāĻ¤ā§āĻ˛ā§āĻ¯ āĻšāĻŦā§‡āĨ¤ āĻ•āĻŋāĻ¨ā§āĻ¤ā§ āĻāĻŽāĻ¨ āĻ§āĻ°āĻ¨ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ¨āĻ¯āĻŧ āĻ¯āĻžāĻĻā§‡āĻ° āĻ¨āĻžāĻŽ āĻŦā§‡āĻļ āĻ•āĻ¯āĻŧā§‡āĻ•āĻŸāĻŋ āĻļāĻŦā§āĻĻ āĻ¨āĻŋāĻ¯āĻŧā§‡ āĻ—āĻ āĻŋāĻ¤! āĻ…āĻ¤āĻāĻŦ, āĻ†āĻĒāĻ¨āĻŋ āĻ¯āĻĻāĻŋ āĻ•āĻžāĻ°ā§āĻ¯āĻ•āĻ°ā§€ āĻ†āĻ•āĻžāĻ°ā§‡ āĻĻā§āĻŦāĻŋāĻ—ā§āĻŖ āĻ¨āĻŋāĻ°ā§āĻ­ā§āĻ˛āĻ¤āĻž āĻŸāĻžāĻ‡āĻĒ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ•āĻŸāĻŋ āĻ¸āĻ‚āĻ–ā§āĻ¯āĻžāĻ¸ā§‚āĻšāĻ• āĻŽāĻžāĻ¨ āĻ•āĻžāĻ¸ā§āĻŸ āĻ•āĻ°āĻ¤ā§‡ āĻšāĻžāĻ¨, āĻ¤āĻžāĻšāĻ˛ā§‡ āĻāĻ‡ āĻ§āĻ°āĻ¨ā§‡āĻ° float8 āĻāĻ° āĻ‰āĻĒāĻ¨āĻžāĻŽ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§āĻ¨, āĻ…āĻ°ā§āĻĨāĻžā§Ž, SELECT float8(1)āĨ¤

āĻ…āĻ¨āĻ¨ā§āĻ¤ā§‡āĻ° āĻšā§‡āĻ¯āĻŧā§‡ āĻŦāĻĄāĻŧ āĻ•āĻŋ?

SELECT 'Infinity'::double precision < 'NaN'::double precision

?column?
boolean
---------
t

āĻĻā§‡āĻ–ā§āĻ¨ āĻāĻŸāĻž āĻ•ā§‡āĻŽāĻ¨! āĻĻā§‡āĻ–āĻž āĻ¯āĻžāĻšā§āĻ›ā§‡ āĻ…āĻ¸ā§€āĻŽā§‡āĻ° āĻšā§‡āĻ¯āĻŧā§‡āĻ“ āĻŦāĻĄāĻŧ āĻ•āĻŋāĻ›ā§ āĻ†āĻ›ā§‡, āĻāĻŦāĻ‚ āĻāĻŸāĻŋ NaN! āĻāĻ•āĻ‡ āĻ¸āĻŽāĻ¯āĻŧā§‡, PostgreSQL āĻĄāĻ•ā§āĻŽā§‡āĻ¨ā§āĻŸā§‡āĻļāĻ¨ āĻ†āĻŽāĻžāĻĻā§‡āĻ°āĻ•ā§‡ āĻ¸ā§Ž āĻšā§‹āĻ–ā§‡ āĻĻā§‡āĻ–ā§‡ āĻāĻŦāĻ‚ āĻĻāĻžāĻŦāĻŋ āĻ•āĻ°ā§‡ āĻ¯ā§‡ NaN āĻ¸ā§āĻĒāĻˇā§āĻŸāĻ¤āĻ‡ āĻ…āĻ¨ā§āĻ¯ āĻ¯ā§‡āĻ•ā§‹āĻ¨ā§‹ āĻ¸āĻ‚āĻ–ā§āĻ¯āĻžāĻ° āĻšā§‡āĻ¯āĻŧā§‡ āĻŦāĻĄāĻŧ, āĻāĻŦāĻ‚ āĻ¤āĻžāĻ‡, āĻ…āĻ¸ā§€āĻŽāĨ¤ āĻŦāĻŋāĻĒāĻ°ā§€āĻ¤āĻŸāĻŋ -NaN āĻāĻ° āĻœāĻ¨ā§āĻ¯āĻ“ āĻ¸āĻ¤ā§āĻ¯āĨ¤ āĻšā§āĻ¯āĻžāĻ˛ā§‹, āĻ—āĻŖāĻŋāĻ¤ āĻĒā§āĻ°ā§‡āĻŽā§€āĻĻā§‡āĻ°! āĻ•āĻŋāĻ¨ā§āĻ¤ā§ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻŽāĻ¨ā§‡ āĻ°āĻžāĻ–āĻ¤ā§‡ āĻšāĻŦā§‡ āĻ¯ā§‡ āĻāĻ‡ āĻ¸āĻŦāĻ‡ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦ āĻ¸āĻ‚āĻ–ā§āĻ¯āĻžāĻ° āĻĒāĻ°āĻŋāĻĒā§āĻ°ā§‡āĻ•ā§āĻˇāĻŋāĻ¤ā§‡ āĻ•āĻžāĻœ āĻ•āĻ°ā§‡āĨ¤

āĻšā§‹āĻ– āĻ—ā§‹āĻ˛

SELECT round('2.5'::double precision)
     , round('2.5'::numeric)

      round      |  round
double precision | numeric
-----------------+---------
2                | 3

āĻŦā§‡āĻ¸ āĻĨā§‡āĻ•ā§‡ āĻ†āĻ°ā§‡āĻ•āĻŸāĻŋ āĻ…āĻĒā§āĻ°āĻ¤ā§āĻ¯āĻžāĻļāĻŋāĻ¤ āĻļā§āĻ­ā§‡āĻšā§āĻ›āĻž. āĻ†āĻŦāĻžāĻ°, āĻŽāĻ¨ā§‡ āĻ°āĻžāĻ–āĻŦā§‡āĻ¨ āĻ¯ā§‡ āĻĻā§āĻŦāĻŋāĻ—ā§āĻŖ āĻ¨āĻŋāĻ°ā§āĻ­ā§āĻ˛āĻ¤āĻž āĻāĻŦāĻ‚ āĻ¸āĻ‚āĻ–ā§āĻ¯āĻžāĻ¸ā§‚āĻšāĻ• āĻĒā§āĻ°āĻ•āĻžāĻ°ā§‡āĻ° āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āĻ¨ āĻ°āĻžāĻ‰āĻ¨ā§āĻĄāĻŋāĻ‚ āĻĒā§āĻ°āĻ­āĻžāĻŦ āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤ āĻ¸āĻžāĻ‚āĻ–ā§āĻ¯āĻŋāĻ•ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ - āĻ¸ā§āĻŦāĻžāĻ­āĻžāĻŦāĻŋāĻ• āĻ‰āĻĒāĻžāĻ¯āĻŧā§‡, āĻ¯āĻ–āĻ¨ 0,5 āĻ•ā§‡ āĻĒā§‚āĻ°ā§āĻŖāĻ¸āĻ‚āĻ–ā§āĻ¯āĻž āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ, āĻāĻŦāĻ‚ āĻĻā§āĻŦāĻŋāĻ—ā§āĻŖ āĻ¨āĻŋāĻ°ā§āĻ­ā§āĻ˛āĻ¤āĻžāĻ° āĻœāĻ¨ā§āĻ¯ - 0,5 āĻ¨āĻŋāĻ•āĻŸāĻ¤āĻŽ āĻœā§‹āĻĄāĻŧ āĻĒā§‚āĻ°ā§āĻŖāĻ¸āĻ‚āĻ–ā§āĻ¯āĻžāĻ° āĻĻāĻŋāĻ•ā§‡ āĻŦā§ƒāĻ¤ā§āĻ¤āĻžāĻ•āĻžāĻ° āĻšāĻ¯āĻŧāĨ¤

āĻŸāĻžāĻ•āĻž āĻŦāĻŋāĻļā§‡āĻˇ āĻ•āĻŋāĻ›ā§

SELECT '10'::money::float8

ERROR:  cannot cast type money to double precision
LINE 1: SELECT '10'::money::float8
                          ^
********** ОŅˆĐ¸ĐąĐēĐ° **********
ERROR: cannot cast type money to double precision
SQL-ŅĐžŅŅ‚ĐžŅĐŊиĐĩ: 42846
ХиĐŧвОĐģ: 19

PostgreSQL āĻ…āĻ¨ā§āĻ¯āĻžāĻ¯āĻŧā§€, āĻŸāĻžāĻ•āĻž āĻāĻ•āĻŸāĻŋ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦ āĻ¸āĻ‚āĻ–ā§āĻ¯āĻž āĻ¨āĻ¯āĻŧāĨ¤ āĻ•āĻŋāĻ›ā§ āĻŦā§āĻ¯āĻ•ā§āĻ¤āĻŋāĻ° āĻŽāĻ¤ā§‡, āĻ–ā§āĻŦ. āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻŽāĻ¨ā§‡ āĻ°āĻžāĻ–āĻ¤ā§‡ āĻšāĻŦā§‡ āĻ¯ā§‡ āĻ…āĻ°ā§āĻĨā§‡āĻ° āĻ§āĻ°āĻ¨ āĻ•āĻžāĻ¸ā§āĻŸ āĻ•āĻ°āĻž āĻ•ā§‡āĻŦāĻ˛āĻŽāĻžāĻ¤ā§āĻ° āĻ¸āĻ‚āĻ–ā§āĻ¯āĻžāĻ¸ā§‚āĻšāĻ• āĻĒā§āĻ°āĻ•āĻžāĻ°ā§‡ āĻ¸āĻŽā§āĻ­āĻŦ, āĻ āĻŋāĻ• āĻ¯ā§‡āĻŽāĻ¨ āĻ•ā§‡āĻŦāĻ˛āĻŽāĻžāĻ¤ā§āĻ° āĻ¸āĻ‚āĻ–ā§āĻ¯āĻžāĻ¸ā§‚āĻšāĻ• āĻĒā§āĻ°āĻ•āĻžāĻ°āĻ•ā§‡ āĻ…āĻ°ā§āĻĨā§‡āĻ° āĻĒā§āĻ°āĻ•āĻžāĻ°ā§‡ āĻ•āĻžāĻ¸ā§āĻŸ āĻ•āĻ°āĻž āĻ¯ā§‡āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĨ¤ āĻ•āĻŋāĻ¨ā§āĻ¤ā§ āĻāĻ–āĻ¨ āĻ†āĻĒāĻ¨āĻŋ āĻ†āĻĒāĻ¨āĻžāĻ° āĻŽāĻ¨ā§‡āĻ° āĻ‡āĻšā§āĻ›āĻž āĻŽāĻ¤ āĻāĻŸāĻŋāĻ° āĻ¸āĻžāĻĨā§‡ āĻ–ā§‡āĻ˛āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨āĨ¤ āĻ•āĻŋāĻ¨ā§āĻ¤ā§ āĻāĻŸāĻž āĻāĻ•āĻ‡ āĻŸāĻžāĻ•āĻž āĻšāĻŦā§‡ āĻ¨āĻž.

āĻ›ā§‹āĻŸ āĻāĻŦāĻ‚ āĻ•ā§āĻ°āĻŽ āĻĒā§āĻ°āĻœāĻ¨ā§āĻŽ

SELECT *
  FROM generate_series(1::smallint, 5::smallint, 1::smallint)

ERROR:  function generate_series(smallint, smallint, smallint) is not unique
LINE 2:   FROM generate_series(1::smallint, 5::smallint, 1::smallint...
               ^
HINT:  Could not choose a best candidate function. You might need to add explicit type casts.
********** ОŅˆĐ¸ĐąĐēĐ° **********
ERROR: function generate_series(smallint, smallint, smallint) is not unique
SQL-ŅĐžŅŅ‚ĐžŅĐŊиĐĩ: 42725
ПодŅĐēаСĐēĐ°: Could not choose a best candidate function. You might need to add explicit type casts.
ХиĐŧвОĐģ: 18

PostgreSQL āĻ¤ā§āĻšā§āĻ› āĻŦāĻŋāĻˇāĻ¯āĻŧā§‡ āĻ¸āĻŽāĻ¯āĻŧ āĻ¨āĻˇā§āĻŸ āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻ›āĻ¨ā§āĻĻ āĻ•āĻ°ā§‡ āĻ¨āĻžāĨ¤ āĻāĻ‡ āĻ•ā§āĻ°āĻŽ Smallint āĻ‰āĻĒāĻ° āĻ­āĻŋāĻ¤ā§āĻ¤āĻŋ āĻ•āĻ°ā§‡ āĻ•āĻŋ? int, āĻ•ā§‹āĻ¨ āĻ•āĻŽ! āĻ…āĻ¤āĻāĻŦ, āĻ‰āĻĒāĻ°ā§‡āĻ° āĻ•ā§āĻ¯ā§‹āĻ¯āĻŧāĻžāĻ°ā§€āĻŸāĻŋ āĻšāĻžāĻ˛āĻžāĻ¨ā§‹āĻ° āĻšā§‡āĻˇā§āĻŸāĻž āĻ•āĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ, āĻĄāĻžāĻŸāĻžāĻŦā§‡āĻ¸āĻŸāĻŋ āĻ…āĻ¨ā§āĻ¯ āĻ•ā§‹āĻ¨ āĻĒā§‚āĻ°ā§āĻŖāĻ¸āĻ‚āĻ–ā§āĻ¯āĻžāĻ° āĻ§āĻ°āĻ¨ā§‡ āĻ›ā§‹āĻŸ āĻ›ā§‹āĻŸ āĻ•āĻžāĻ¸ā§āĻŸ āĻ•āĻ°āĻžāĻ° āĻšā§‡āĻˇā§āĻŸāĻž āĻ•āĻ°ā§‡ āĻāĻŦāĻ‚ āĻĻā§‡āĻ–ā§‡ āĻ¯ā§‡ āĻāĻ‡ āĻ§āĻ°āĻ¨ā§‡āĻ° āĻŦā§‡āĻļ āĻ•āĻ¯āĻŧā§‡āĻ•āĻŸāĻŋ āĻ•āĻžāĻ¸ā§āĻŸ āĻĨāĻžāĻ•āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĨ¤ āĻ•ā§‹āĻ¨ āĻ•āĻžāĻ¸ā§āĻŸ āĻ¨āĻŋāĻ°ā§āĻŦāĻžāĻšāĻ¨ āĻ•āĻ°āĻ¤ā§‡? āĻ¤āĻŋāĻ¨āĻŋ āĻāĻ‡ āĻ¸āĻŋāĻĻā§āĻ§āĻžāĻ¨ā§āĻ¤ āĻ¨āĻŋāĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨ āĻ¨āĻž, āĻāĻŦāĻ‚ āĻ¤āĻžāĻ‡ āĻāĻ•āĻŸāĻŋ āĻ¤ā§āĻ°ā§āĻŸāĻŋ āĻ¸āĻ™ā§āĻ—ā§‡ āĻ•ā§āĻ°ā§āĻ¯āĻžāĻļ.

āĻĢāĻžāĻ‡āĻ˛ āĻ¨āĻŽā§āĻŦāĻ° āĻĻā§āĻ‡āĨ¤ "char"/char/varchar/āĻŸā§‡āĻ•ā§āĻ¸āĻŸ

āĻšāĻ°āĻŋāĻ¤ā§āĻ°ā§‡āĻ° āĻ§āĻ°āĻ¨ā§‡āĻ“ āĻŦā§‡āĻļ āĻ•āĻŋāĻ›ā§ āĻ…āĻĻā§āĻ­ā§āĻ¤āĻ¤āĻž āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤ āĻ†āĻ¸ā§āĻ¨ āĻ¤āĻžāĻĻā§‡āĻ°āĻ“ āĻœā§‡āĻ¨ā§‡ āĻ¨ā§‡āĻ“āĻ¯āĻŧāĻž āĻ¯āĻžāĻ•āĨ¤

āĻāĻ‡ āĻ•ā§ŒāĻļāĻ˛ āĻ•āĻŋ āĻ§āĻ°āĻ¨ā§‡āĻ°?

SELECT 'ПЕĐĸĐ¯'::"char"
     , 'ПЕĐĸĐ¯'::"char"::bytea
     , 'ПЕĐĸĐ¯'::char
     , 'ПЕĐĸĐ¯'::char::bytea

 char  | bytea |    bpchar    | bytea
"char" | bytea | character(1) | bytea
-------+-------+--------------+--------
 ╨     | xd0  | П            | xd09f

āĻāĻŸāĻž āĻ•ā§‹āĻ¨ āĻ§āĻ°āĻ¨ā§‡āĻ° "āĻšāĻ°", āĻāĻŸāĻž āĻ•ā§‹āĻ¨ āĻ§āĻ°āĻ¨ā§‡āĻ° āĻ­āĻžāĻāĻĄāĻŧ? āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻāĻ—ā§āĻ˛ā§‹āĻ° āĻĻāĻ°āĻ•āĻžāĻ° āĻ¨ā§‡āĻ‡... āĻ•āĻžāĻ°āĻŖ āĻāĻŸāĻŋ āĻāĻ•āĻŸāĻŋ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻšāĻ° āĻšāĻ“āĻ¯āĻŧāĻžāĻ° āĻ­āĻžāĻ¨ āĻ•āĻ°ā§‡, āĻ¯āĻĻāĻŋāĻ“ āĻāĻŸāĻŋ āĻ‰āĻĻā§āĻ§ā§ƒāĻ¤āĻŋāĻ¤ā§‡ āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤ āĻāĻŦāĻ‚ āĻāĻŸāĻŋ āĻāĻ•āĻŸāĻŋ āĻ¨āĻŋāĻ¯āĻŧāĻŽāĻŋāĻ¤ āĻ—ā§ƒāĻšāĻ¸ā§āĻĨāĻžāĻ˛āĻŋāĻ° āĻĨā§‡āĻ•ā§‡ āĻĒā§ƒāĻĨāĻ•, āĻ¯āĻž āĻ‰āĻĻā§āĻ§ā§ƒāĻ¤āĻŋ āĻ›āĻžāĻĄāĻŧāĻžāĻ‡, āĻāĻŸāĻŋ āĻ¸ā§āĻŸā§āĻ°āĻŋāĻ‚ āĻĒā§āĻ°āĻ¤āĻŋāĻ¨āĻŋāĻ§āĻŋāĻ¤ā§āĻŦā§‡āĻ° āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻĒā§āĻ°āĻĨāĻŽ āĻŦāĻžāĻ‡āĻŸ āĻ†āĻ‰āĻŸāĻĒā§āĻŸ āĻ•āĻ°ā§‡, āĻ¯āĻ–āĻ¨ āĻāĻ•āĻŸāĻŋ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻšāĻ° āĻĒā§āĻ°āĻĨāĻŽ āĻ…āĻ•ā§āĻˇāĻ°āĻŸāĻŋ āĻ†āĻ‰āĻŸāĻĒā§āĻŸ āĻ•āĻ°ā§‡āĨ¤ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ•ā§āĻˇā§‡āĻ¤ā§āĻ°ā§‡, āĻĒā§āĻ°āĻĨāĻŽ āĻ…āĻ•ā§āĻˇāĻ°āĻŸāĻŋ āĻšāĻ˛ P āĻ…āĻ•ā§āĻˇāĻ°, āĻ¯āĻž āĻ‡āĻ‰āĻ¨āĻŋāĻ•ā§‹āĻĄ āĻ‰āĻĒāĻ¸ā§āĻĨāĻžāĻĒāĻ¨āĻžāĻ¯āĻŧ 2 āĻŦāĻžāĻ‡āĻŸ āĻ¨ā§‡āĻ¯āĻŧ, āĻĢāĻ˛āĻžāĻĢāĻ˛āĻŸāĻŋāĻ•ā§‡ āĻŦāĻžāĻ‡āĻŸ āĻŸāĻžāĻ‡āĻĒā§‡ āĻ°ā§‚āĻĒāĻžāĻ¨ā§āĻ¤āĻ° āĻ•āĻ°ā§‡ āĻĒā§āĻ°āĻŽāĻžāĻŖ āĻ•āĻ°ā§‡āĨ¤ āĻāĻŦāĻ‚ "char" āĻŸāĻžāĻ‡āĻĒāĻŸāĻŋ āĻāĻ‡ āĻ‡āĻ‰āĻ¨āĻŋāĻ•ā§‹āĻĄ āĻ‰āĻĒāĻ¸ā§āĻĨāĻžāĻĒāĻ¨āĻžāĻ° āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻĒā§āĻ°āĻĨāĻŽ āĻŦāĻžāĻ‡āĻŸ āĻ¨ā§‡āĻ¯āĻŧāĨ¤ āĻ¤āĻžāĻšāĻ˛ā§‡ āĻāĻ‡ āĻ§āĻ°āĻ¨ā§‡āĻ° āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ āĻ•ā§‡āĻ¨? PostgreSQL āĻĄāĻ•ā§āĻŽā§‡āĻ¨ā§āĻŸā§‡āĻļāĻ¨ āĻŦāĻ˛ā§‡ āĻ¯ā§‡ āĻāĻŸāĻŋ āĻŦāĻŋāĻļā§‡āĻˇ āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻŦā§āĻ¯āĻŦāĻšā§ƒāĻ¤ āĻāĻ•āĻŸāĻŋ āĻŦāĻŋāĻļā§‡āĻˇ āĻĒā§āĻ°āĻ•āĻžāĻ°āĨ¤ āĻ¤āĻžāĻ‡ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻāĻŸāĻŋāĻ° āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ āĻšāĻ“āĻ¯āĻŧāĻžāĻ° āĻ¸āĻŽā§āĻ­āĻžāĻŦāĻ¨āĻž āĻ¨ā§‡āĻ‡āĨ¤ āĻ•āĻŋāĻ¨ā§āĻ¤ā§ āĻ¤āĻžāĻ° āĻšā§‹āĻ–ā§‡āĻ° āĻĻāĻŋāĻ•ā§‡ āĻ¤āĻžāĻ•āĻžāĻ¨ āĻāĻŦāĻ‚ āĻ†āĻĒāĻ¨āĻŋ āĻ¤āĻžāĻ° āĻŦāĻŋāĻļā§‡āĻˇ āĻ†āĻšāĻ°āĻŖā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻ¤āĻžāĻ° āĻ¸āĻžāĻĨā§‡ āĻĻā§‡āĻ–āĻž āĻ•āĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻ­ā§āĻ˛ āĻ•āĻ°āĻŦā§‡āĻ¨ āĻ¨āĻžāĨ¤

āĻ…āĻ¤āĻŋāĻ°āĻŋāĻ•ā§āĻ¤ āĻ¸ā§āĻĒā§‡āĻ¸āĨ¤ āĻšā§‹āĻ–ā§‡āĻ° āĻ†āĻĄāĻŧāĻžāĻ˛ āĻšāĻ˛ā§‡āĻ‡ āĻŽāĻ¨ā§‡āĻ° āĻ†āĻĄāĻŧāĻžāĻ˛

SELECT 'abc   '::char(6)::bytea
     , 'abc   '::char(6)::varchar(6)::bytea
     , 'abc   '::varchar(6)::bytea

     bytea     |   bytea  |     bytea
     bytea     |   bytea  |     bytea
---------------+----------+----------------
x616263202020 | x616263 | x616263202020

āĻĒā§āĻ°āĻĻāĻ¤ā§āĻ¤ āĻ‰āĻĻāĻžāĻšāĻ°āĻŖāĻŸāĻŋ āĻāĻ•āĻŦāĻžāĻ° āĻĻā§‡āĻ–ā§āĻ¨āĨ¤ āĻ†āĻŽāĻŋ āĻŦāĻŋāĻļā§‡āĻˇāĻ­āĻžāĻŦā§‡ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻĢāĻ˛āĻžāĻĢāĻ˛āĻ•ā§‡ āĻŦāĻžāĻ‡āĻŸ āĻŸāĻžāĻ‡āĻĒā§‡ āĻ°ā§‚āĻĒāĻžāĻ¨ā§āĻ¤āĻ° āĻ•āĻ°ā§‡āĻ›āĻŋ āĻ¯āĻžāĻ¤ā§‡ āĻ¸ā§‡āĻ–āĻžāĻ¨ā§‡ āĻ•ā§€ āĻ›āĻŋāĻ˛ āĻ¤āĻž āĻ¸ā§āĻĒāĻˇā§āĻŸāĻ­āĻžāĻŦā§‡ āĻĻā§ƒāĻļā§āĻ¯āĻŽāĻžāĻ¨ āĻšāĻ¯āĻŧāĨ¤ varchar(6)-āĻ āĻĸāĻžāĻ˛āĻžāĻ‡ āĻ•āĻ°āĻžāĻ° āĻĒāĻ° āĻ…āĻ¨ā§āĻ—āĻžāĻŽā§€ āĻ¸ā§āĻĨāĻžāĻ¨āĻ—ā§āĻ˛āĻŋ āĻ•ā§‹āĻĨāĻžāĻ¯āĻŧ? āĻĄāĻ•ā§āĻŽā§‡āĻ¨ā§āĻŸā§‡āĻļāĻ¨āĻŸāĻŋ āĻ¸āĻ‚āĻ•ā§āĻˇāĻŋāĻĒā§āĻ¤āĻ­āĻžāĻŦā§‡ āĻŦāĻ˛ā§‡: "āĻ…āĻ•ā§āĻˇāĻ°ā§‡āĻ° āĻŽāĻžāĻ¨ āĻ…āĻ¨ā§āĻ¯ āĻ…āĻ•ā§āĻˇāĻ° āĻĒā§āĻ°āĻ•āĻžāĻ°ā§‡ āĻ•āĻžāĻ¸ā§āĻŸ āĻ•āĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ, āĻĒāĻŋāĻ›āĻ¨ā§‡āĻ° āĻšā§‹āĻ¯āĻŧāĻžāĻ‡āĻŸāĻ¸ā§āĻĒā§‡āĻ¸ āĻŦāĻžāĻ¤āĻŋāĻ˛ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧāĨ¤" āĻāĻ‡ āĻ…āĻĒāĻ›āĻ¨ā§āĻĻ āĻ…āĻŦāĻļā§āĻ¯āĻ‡ āĻŽāĻ¨ā§‡ āĻ°āĻžāĻ–āĻ¤ā§‡ āĻšāĻŦā§‡āĨ¤ āĻāĻŦāĻ‚ āĻŽāĻ¨ā§‡ āĻ°āĻžāĻ–āĻŦā§‡āĻ¨ āĻ¯ā§‡ āĻ¯āĻĻāĻŋ āĻāĻ•āĻŸāĻŋ āĻ‰āĻĻā§āĻ§ā§ƒāĻ¤ āĻ¸ā§āĻŸā§āĻ°āĻŋāĻ‚ āĻ§ā§āĻ°ā§āĻŦāĻ• āĻ¸āĻ°āĻžāĻ¸āĻ°āĻŋ varchar(6) āĻŸāĻžāĻ‡āĻĒ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻ•āĻžāĻ¸ā§āĻŸ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ, āĻ¤āĻžāĻšāĻ˛ā§‡ āĻŸā§āĻ°ā§‡āĻ˛āĻŋāĻ‚ āĻ¸ā§āĻĒā§‡āĻ¸āĻ—ā§āĻ˛āĻŋ āĻ¸āĻ‚āĻ°āĻ•ā§āĻˇāĻŋāĻ¤ āĻšāĻ¯āĻŧāĨ¤ āĻāĻŽāĻ¨āĻ‡ āĻ…āĻ˛ā§ŒāĻ•āĻŋāĻ• āĻ˜āĻŸāĻ¨āĻžāĨ¤

āĻ¤āĻŋāĻ¨ āĻ¨āĻŽā§āĻŦāĻ° āĻĢāĻžāĻ‡āĻ˛āĨ¤ json/jsonb

JSON āĻāĻ•āĻŸāĻŋ āĻĒā§ƒāĻĨāĻ• āĻ•āĻžāĻ āĻžāĻŽā§‹ āĻ¯āĻž āĻ¤āĻžāĻ° āĻ¨āĻŋāĻœāĻ¸ā§āĻŦ āĻœā§€āĻŦāĻ¨āĻ¯āĻžāĻĒāĻ¨ āĻ•āĻ°ā§‡āĨ¤ āĻ…āĻ¤āĻāĻŦ, āĻāĻ° āĻ¸āĻ¤ā§āĻ¤āĻž āĻāĻŦāĻ‚ PostgreSQL āĻāĻ° āĻ¸āĻ¤ā§āĻ¤āĻžāĻ—ā§āĻ˛āĻŋ āĻ•āĻŋāĻ›ā§āĻŸāĻž āĻ†āĻ˛āĻžāĻĻāĻžāĨ¤ āĻāĻ–āĻžāĻ¨ā§‡ āĻ‰āĻĻāĻžāĻšāĻ°āĻŖ āĻ†āĻ›ā§‡.

āĻœāĻ¨āĻ¸āĻ¨ āĻāĻŦāĻ‚ āĻœāĻ¨āĻ¸āĻ¨āĨ¤ āĻĒāĻžāĻ°ā§āĻĨāĻ•ā§āĻ¯ āĻ…āĻ¨ā§āĻ­āĻŦ

SELECT 'null'::jsonb IS NULL

?column?
boolean
---------
f

āĻŦāĻŋāĻˇāĻ¯āĻŧ āĻšāĻ˛ JSON āĻāĻ° āĻ¨āĻŋāĻœāĻ¸ā§āĻŦ āĻ¨āĻžāĻ˛ āĻ¸āĻ¤ā§āĻ¤āĻž āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡, āĻ¯āĻž PostgreSQL-āĻ NULL-āĻāĻ° āĻ…ā§āĻ¯āĻžāĻ¨āĻžāĻ˛āĻ— āĻ¨āĻ¯āĻŧāĨ¤ āĻāĻ•āĻ‡ āĻ¸āĻŽāĻ¯āĻŧā§‡, JSON āĻ…āĻŦāĻœā§‡āĻ•ā§āĻŸā§‡āĻ° āĻ¨āĻŋāĻœā§‡āĻ‡ NULL āĻŽāĻžāĻ¨ āĻĨāĻžāĻ•āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡, āĻ¤āĻžāĻ‡ āĻ…āĻ­āĻŋāĻŦā§āĻ¯āĻ•ā§āĻ¤āĻŋāĻŸāĻŋ SELECT null::jsonb IS NULL (āĻāĻ•āĻ• āĻ‰āĻĻā§āĻ§ā§ƒāĻ¤āĻŋāĻ° āĻ…āĻ¨ā§āĻĒāĻ¸ā§āĻĨāĻŋāĻ¤āĻŋ āĻ˛āĻ•ā§āĻˇā§āĻ¯ āĻ•āĻ°ā§āĻ¨) āĻāĻŦāĻžāĻ° āĻ¸āĻ¤ā§āĻ¯ā§‡ āĻĢāĻŋāĻ°ā§‡ āĻ†āĻ¸āĻŦā§‡āĨ¤

āĻāĻ•āĻŸāĻŋ āĻ…āĻ•ā§āĻˇāĻ° āĻ¸āĻŦāĻ•āĻŋāĻ›ā§ āĻŦāĻĻāĻ˛ā§‡ āĻĻā§‡āĻ¯āĻŧ

SELECT '{"1": [1, 2, 3], "2": [4, 5, 6], "1": [7, 8, 9]}'::json

                     json
                     json
------------------------------------------------
{"1": [1, 2, 3], "2": [4, 5, 6], "1": [7, 8, 9]}

---

SELECT '{"1": [1, 2, 3], "2": [4, 5, 6], "1": [7, 8, 9]}'::jsonb

             jsonb
             jsonb
--------------------------------
{"1": [7, 8, 9], "2": [4, 5, 6]}

āĻœāĻŋāĻ¨āĻŋāĻ¸āĻŸāĻŋ āĻšāĻ˛ āĻ¯ā§‡ json āĻāĻŦāĻ‚ jsonb āĻ¸āĻŽā§āĻĒā§‚āĻ°ā§āĻŖ āĻ­āĻŋāĻ¨ā§āĻ¨ āĻ•āĻžāĻ āĻžāĻŽā§‹āĨ¤ json-āĻ, āĻ…āĻŦāĻœā§‡āĻ•ā§āĻŸāĻŸāĻŋ āĻ¯ā§‡āĻŽāĻ¨ āĻ†āĻ›ā§‡ āĻ¸ā§‡āĻ­āĻžāĻŦā§‡ āĻ¸āĻ‚āĻ°āĻ•ā§āĻˇāĻŖ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ āĻāĻŦāĻ‚ jsonb-āĻ āĻāĻŸāĻŋ āĻ‡āĻ¤āĻŋāĻŽāĻ§ā§āĻ¯ā§‡āĻ‡ āĻĒāĻžāĻ°ā§āĻ¸ āĻ•āĻ°āĻž, āĻ¸ā§‚āĻšā§€āĻ•ā§ƒāĻ¤ āĻ•āĻžāĻ āĻžāĻŽā§‹āĻ° āĻ†āĻ•āĻžāĻ°ā§‡ āĻ¸āĻ‚āĻ°āĻ•ā§āĻˇāĻŖ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧāĨ¤ āĻāĻ‡ āĻ•āĻžāĻ°āĻŖā§‡āĻ‡ āĻĻā§āĻŦāĻŋāĻ¤ā§€āĻ¯āĻŧ āĻ•ā§āĻˇā§‡āĻ¤ā§āĻ°ā§‡, āĻ•ā§€ 1 āĻĻā§āĻŦāĻžāĻ°āĻž āĻŦāĻ¸ā§āĻ¤ā§āĻ° āĻŽāĻžāĻ¨ [1, 2, 3] āĻĨā§‡āĻ•ā§‡ [7, 8, 9] āĻ¤ā§‡ āĻĒā§āĻ°āĻ¤āĻŋāĻ¸ā§āĻĨāĻžāĻĒāĻŋāĻ¤ āĻšāĻ¯āĻŧā§‡āĻ›āĻŋāĻ˛, āĻ¯āĻž āĻāĻ•āĻ‡ āĻ•ā§€ āĻĻāĻŋāĻ¯āĻŧā§‡ āĻ•āĻžāĻ āĻžāĻŽā§‹āĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻāĻ¸ā§‡āĻ›āĻŋāĻ˛āĨ¤

āĻ†āĻĒāĻ¨āĻžāĻ° āĻŽā§āĻ– āĻĨā§‡āĻ•ā§‡ āĻœāĻ˛ āĻĒāĻžāĻ¨ āĻ•āĻ°āĻŦā§‡āĻ¨ āĻ¨āĻž

SELECT '{"reading": 1.230e-5}'::jsonb
     , '{"reading": 1.230e-5}'::json

          jsonb         |         json
          jsonb         |         json
------------------------+----------------------
{"reading": 0.00001230} | {"reading": 1.230e-5}

PostgreSQL āĻāĻ° JSONB āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ā§‡ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦ āĻ¸āĻ‚āĻ–ā§āĻ¯āĻžāĻ° āĻŦāĻŋāĻ¨ā§āĻ¯āĻžāĻ¸ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻ•āĻ°ā§‡, āĻ¤āĻžāĻĻā§‡āĻ° āĻ•ā§āĻ˛āĻžāĻ¸āĻŋāĻ•ā§āĻ¯āĻžāĻ˛ āĻĢāĻ°ā§āĻŽā§‡ āĻ¨āĻŋāĻ¯āĻŧā§‡ āĻ†āĻ¸ā§‡āĨ¤ āĻāĻŸāĻŋ JSON āĻĒā§āĻ°āĻ•āĻžāĻ°ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ˜āĻŸāĻŦā§‡ āĻ¨āĻžāĨ¤ āĻāĻ•āĻŸā§ āĻ…āĻĻā§āĻ­ā§āĻ¤, āĻ•āĻŋāĻ¨ā§āĻ¤ā§ āĻ¤āĻŋāĻ¨āĻŋ āĻ āĻŋāĻ•āĨ¤

āĻĢāĻžāĻ‡āĻ˛ āĻ¨āĻŽā§āĻŦāĻ° āĻšāĻžāĻ°āĨ¤ āĻ¤āĻžāĻ°āĻŋāĻ–/āĻ¸āĻŽāĻ¯āĻŧ/āĻŸāĻžāĻ‡āĻŽāĻ¸ā§āĻŸā§āĻ¯āĻžāĻŽā§āĻĒ

āĻ¤āĻžāĻ°āĻŋāĻ–/āĻ¸āĻŽāĻ¯āĻŧ āĻĒā§āĻ°āĻ•āĻžāĻ°ā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻ•āĻŋāĻ›ā§ āĻ…āĻĻā§āĻ­ā§āĻ¤āĻ¤āĻžāĻ“ āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤ āĻšāĻ˛ā§āĻ¨ āĻ¤āĻžāĻĻā§‡āĻ° āĻ¤āĻžāĻ•āĻžāĻ¨. āĻ†āĻŽāĻžāĻ•ā§‡ āĻāĻ–āĻ¨āĻ‡ āĻāĻ•āĻŸāĻŋ āĻ°āĻŋāĻœāĻžāĻ°ā§āĻ­ā§‡āĻļāĻ¨ āĻ•āĻ°āĻ¤ā§‡ āĻĻāĻŋāĻ¨ āĻ¯ā§‡ āĻ•āĻŋāĻ›ā§ āĻ†āĻšāĻ°āĻŖāĻ—āĻ¤ āĻŦā§ˆāĻļāĻŋāĻˇā§āĻŸā§āĻ¯ āĻĒāĻ°āĻŋāĻˇā§āĻ•āĻžāĻ° āĻšāĻ¯āĻŧā§‡ āĻ¯āĻžāĻ¯āĻŧ āĻ¯āĻĻāĻŋ āĻ†āĻĒāĻ¨āĻŋ āĻ¸āĻŽāĻ¯āĻŧ āĻ…āĻžā§āĻšāĻ˛āĻ—ā§āĻ˛āĻŋāĻ° āĻ¸āĻžāĻĨā§‡ āĻ•āĻžāĻœ āĻ•āĻ°āĻžāĻ° āĻ¸āĻžāĻ°āĻŽāĻ°ā§āĻŽāĻŸāĻŋ āĻ­āĻžāĻ˛āĻ­āĻžāĻŦā§‡ āĻŦā§āĻāĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨āĨ¤ āĻ•āĻŋāĻ¨ā§āĻ¤ā§ āĻāĻŸāĻŋ āĻāĻ•āĻŸāĻŋ āĻĒā§ƒāĻĨāĻ• āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ•āĻŸāĻŋ āĻŦāĻŋāĻˇāĻ¯āĻŧ.

āĻ†āĻŽāĻŋ āĻ¤ā§‹āĻŽāĻžāĻ° āĻ•āĻĨāĻž āĻŦā§āĻāĻ¤ā§‡ āĻĒāĻžāĻ°āĻ›āĻŋ āĻ¨āĻž

SELECT '08-Jan-99'::date

ERROR:  date/time field value out of range: "08-Jan-99"
LINE 1: SELECT '08-Jan-99'::date
               ^
HINT:  Perhaps you need a different "datestyle" setting.
********** ОŅˆĐ¸ĐąĐēĐ° **********
ERROR: date/time field value out of range: "08-Jan-99"
SQL-ŅĐžŅŅ‚ĐžŅĐŊиĐĩ: 22008
ПодŅĐēаСĐēĐ°: Perhaps you need a different "datestyle" setting.
ХиĐŧвОĐģ: 8

āĻŽāĻ¨ā§‡ āĻšāĻŦā§‡ āĻāĻ–āĻžāĻ¨ā§‡ āĻŦā§‹āĻ§āĻ—āĻŽā§āĻ¯ āĻ•āĻŋ? āĻ•āĻŋāĻ¨ā§āĻ¤ā§ āĻĄāĻžāĻŸāĻžāĻŦā§‡āĻ¸ āĻāĻ–āĻ¨āĻ“ āĻŦā§āĻāĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡ āĻ¨āĻž āĻ¯ā§‡ āĻ†āĻŽāĻ°āĻž āĻāĻ–āĻžāĻ¨ā§‡ āĻĒā§āĻ°āĻĨāĻŽ āĻ¸ā§āĻĨāĻžāĻ¨ā§‡ āĻ•ā§€ āĻ°āĻžāĻ–āĻŋ - āĻŦāĻ›āĻ° āĻŦāĻž āĻĻāĻŋāĻ¨? āĻāĻŦāĻ‚ āĻ¤āĻŋāĻ¨āĻŋ āĻ¸āĻŋāĻĻā§āĻ§āĻžāĻ¨ā§āĻ¤ āĻ¨ā§‡āĻ¨ āĻ¯ā§‡ āĻāĻŸāĻŋ 99 āĻœāĻžāĻ¨ā§āĻ¯āĻŧāĻžāĻ°āĻŋ, 2008, āĻ¯āĻž āĻ¤āĻžāĻ° āĻŽāĻ¨āĻ•ā§‡ āĻ‰āĻĄāĻŧāĻŋāĻ¯āĻŧā§‡ āĻĻā§‡āĻ¯āĻŧāĨ¤ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ­āĻžāĻŦā§‡ āĻŦāĻ˛āĻ¤ā§‡ āĻ—ā§‡āĻ˛ā§‡, āĻŸā§‡āĻ•ā§āĻ¸āĻŸ āĻĢāĻ°āĻŽā§āĻ¯āĻžāĻŸā§‡ āĻ¤āĻžāĻ°āĻŋāĻ–āĻ—ā§āĻ˛āĻŋ āĻĒā§āĻ°ā§‡āĻ°āĻŖ āĻ•āĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ, āĻ†āĻĒāĻ¨āĻžāĻ•ā§‡ āĻ–ā§āĻŦ āĻ¸āĻžāĻŦāĻ§āĻžāĻ¨ā§‡ āĻĒāĻ°ā§€āĻ•ā§āĻˇāĻž āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡ āĻ¯ā§‡ āĻĄāĻžāĻŸāĻžāĻŦā§‡āĻ¸āĻŸāĻŋ āĻ•āĻ¤āĻŸāĻž āĻ¸āĻ āĻŋāĻ•āĻ­āĻžāĻŦā§‡ āĻ¸ā§‡āĻ—ā§āĻ˛āĻŋāĻ•ā§‡ āĻ¸ā§āĻŦā§€āĻ•ā§ƒāĻ¤āĻŋ āĻĻāĻŋāĻ¯āĻŧā§‡āĻ›ā§‡ (āĻŦāĻŋāĻļā§‡āĻˇāĻ¤, āĻĄā§‡āĻŸāĻ¸ā§āĻŸāĻžāĻ‡āĻ˛ āĻĒā§āĻ¯āĻžāĻ°āĻžāĻŽāĻŋāĻŸāĻžāĻ°āĻŸāĻŋ SHOW datestyle āĻ•āĻŽāĻžāĻ¨ā§āĻĄā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻŦāĻŋāĻļā§āĻ˛ā§‡āĻˇāĻŖ āĻ•āĻ°ā§āĻ¨), āĻ¯ā§‡āĻšā§‡āĻ¤ā§ āĻāĻ‡ āĻŦāĻŋāĻˇāĻ¯āĻŧā§‡ āĻ…āĻ¸ā§āĻĒāĻˇā§āĻŸāĻ¤āĻž āĻ–ā§āĻŦ āĻŦā§āĻ¯āĻ¯āĻŧāĻŦāĻšā§āĻ˛ āĻšāĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĨ¤

āĻ†āĻĒāĻ¨āĻŋ āĻāĻ‡ āĻ•ā§‹āĻĨāĻž āĻĨā§‡āĻ•ā§‡ āĻĒā§‡āĻ¯āĻŧā§‡āĻ›ā§‡āĻ¨?

SELECT '04:05 Europe/Moscow'::time

ERROR:  invalid input syntax for type time: "04:05 Europe/Moscow"
LINE 1: SELECT '04:05 Europe/Moscow'::time
               ^
********** ОŅˆĐ¸ĐąĐēĐ° **********
ERROR: invalid input syntax for type time: "04:05 Europe/Moscow"
SQL-ŅĐžŅŅ‚ĐžŅĐŊиĐĩ: 22007
ХиĐŧвОĐģ: 8

āĻ•ā§‡āĻ¨ āĻĄāĻžāĻŸāĻžāĻŦā§‡āĻ¸ āĻ¸ā§āĻĒāĻˇā§āĻŸāĻ­āĻžāĻŦā§‡ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻŸ āĻ¸āĻŽāĻ¯āĻŧ āĻŦā§āĻāĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡ āĻ¨āĻž? āĻ•āĻžāĻ°āĻŖ āĻŸāĻžāĻ‡āĻŽ āĻœā§‹āĻ¨ā§‡āĻ° āĻ•ā§‹āĻ¨ā§‹ āĻ¸āĻ‚āĻ•ā§āĻˇāĻŋāĻĒā§āĻ¤ āĻ¨āĻžāĻŽ āĻ¨ā§‡āĻ‡, āĻ•āĻŋāĻ¨ā§āĻ¤ā§ āĻāĻ•āĻŸāĻŋ āĻ¸āĻŽā§āĻĒā§‚āĻ°ā§āĻŖ āĻ¨āĻžāĻŽ, āĻ¯āĻž āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻāĻ•āĻŸāĻŋ āĻ¤āĻžāĻ°āĻŋāĻ–ā§‡āĻ° āĻĒā§āĻ°ā§‡āĻ•ā§āĻˇāĻžāĻĒāĻŸā§‡ āĻ…āĻ°ā§āĻĨāĻĒā§‚āĻ°ā§āĻŖ, āĻ¯ā§‡āĻšā§‡āĻ¤ā§ āĻāĻŸāĻŋ āĻ¸āĻŽāĻ¯āĻŧ āĻ…āĻžā§āĻšāĻ˛ā§‡āĻ° āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ā§‡āĻ° āĻ‡āĻ¤āĻŋāĻšāĻžāĻ¸āĻ•ā§‡ āĻŦāĻŋāĻŦā§‡āĻšāĻ¨āĻž āĻ•āĻ°ā§‡ āĻāĻŦāĻ‚ āĻāĻŸāĻŋ āĻāĻ•āĻŸāĻŋ āĻ¤āĻžāĻ°āĻŋāĻ– āĻ›āĻžāĻĄāĻŧāĻž āĻ•āĻžāĻœ āĻ•āĻ°ā§‡ āĻ¨āĻžāĨ¤ āĻāĻŦāĻ‚ āĻŸāĻžāĻ‡āĻŽ āĻ˛āĻžāĻ‡āĻ¨ā§‡āĻ° āĻ–ā§āĻŦ āĻļāĻŦā§āĻĻāĻ‡ āĻĒā§āĻ°āĻļā§āĻ¨ āĻ‰āĻ¤ā§āĻĨāĻžāĻĒāĻ¨ āĻ•āĻ°ā§‡ - āĻĒā§āĻ°ā§‹āĻ—ā§āĻ°āĻžāĻŽāĻžāĻ° āĻ†āĻ¸āĻ˛ā§‡ āĻ•ā§€ āĻŦā§‹āĻāĻžāĻ¤ā§‡ āĻšā§‡āĻ¯āĻŧā§‡āĻ›āĻŋāĻ˛ā§‡āĻ¨? āĻ…āĻ¤āĻāĻŦ, āĻ¸āĻŦāĻ•āĻŋāĻ›ā§ āĻāĻ–āĻžāĻ¨ā§‡ āĻ¯ā§ŒāĻ•ā§āĻ¤āĻŋāĻ•, āĻ¯āĻĻāĻŋ āĻ†āĻĒāĻ¨āĻŋ āĻāĻŸāĻŋ āĻ¤āĻžāĻ•āĻžāĻ¨.

āĻ¤āĻžāĻ° āĻ¸āĻŽāĻ¸ā§āĻ¯āĻž āĻ•āĻŋ?

āĻĒāĻ°āĻŋāĻ¸ā§āĻĨāĻŋāĻ¤āĻŋ āĻ•āĻ˛ā§āĻĒāĻ¨āĻž āĻ•āĻ°ā§āĻ¨āĨ¤ āĻ†āĻĒāĻ¨āĻŋ āĻŸāĻžāĻ‡āĻĒ timestamptz āĻ¸āĻš āĻ†āĻĒāĻ¨āĻžāĻ° āĻŸā§‡āĻŦāĻŋāĻ˛ā§‡ āĻāĻ•āĻŸāĻŋ āĻ•ā§āĻˇā§‡āĻ¤ā§āĻ° āĻ†āĻ›ā§‡. āĻ†āĻĒāĻ¨āĻŋ āĻāĻŸāĻŋ āĻ¸ā§‚āĻšāĻ• āĻ•āĻ°āĻ¤ā§‡ āĻšāĻžāĻ¨. āĻ•āĻŋāĻ¨ā§āĻ¤ā§ āĻ†āĻĒāĻ¨āĻŋ āĻŦā§āĻāĻ¤ā§‡ āĻĒā§‡āĻ°ā§‡āĻ›ā§‡āĻ¨ āĻ¯ā§‡ āĻāĻ‡ āĻ•ā§āĻˇā§‡āĻ¤ā§āĻ°ā§‡ āĻāĻ•āĻŸāĻŋ āĻ¸ā§‚āĻšāĻ• āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻž āĻ¸āĻ°ā§āĻŦāĻĻāĻž āĻ¤āĻžāĻ° āĻ‰āĻšā§āĻš āĻ¨āĻŋāĻ°ā§āĻŦāĻžāĻšāĻ¨ā§€āĻ¤āĻžāĻ° āĻ•āĻžāĻ°āĻŖā§‡ āĻ¨ā§āĻ¯āĻžāĻ¯āĻŧāĻ¸āĻ™ā§āĻ—āĻ¤ āĻ¨āĻ¯āĻŧ (āĻāĻ‡ āĻ§āĻ°āĻŖā§‡āĻ° āĻĒā§āĻ°āĻžāĻ¯āĻŧ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻŽāĻžāĻ¨ āĻ…āĻ¨āĻ¨ā§āĻ¯ āĻšāĻŦā§‡)āĨ¤ āĻ¤āĻžāĻ‡ āĻ†āĻĒāĻ¨āĻŋ āĻāĻ•āĻŸāĻŋ āĻ¤āĻžāĻ°āĻŋāĻ–ā§‡ āĻ§āĻ°āĻ¨ āĻ•āĻžāĻ¸ā§āĻŸ āĻ•āĻ°ā§‡ āĻ¸ā§‚āĻšāĻ•ā§‡āĻ° āĻ¨āĻŋāĻ°ā§āĻŦāĻžāĻšāĻ¨ā§€āĻ¤āĻž āĻ•āĻŽāĻžāĻ¨ā§‹āĻ° āĻ¸āĻŋāĻĻā§āĻ§āĻžāĻ¨ā§āĻ¤ āĻ¨ā§‡āĻ¨āĨ¤ āĻāĻŦāĻ‚ āĻ†āĻĒāĻ¨āĻŋ āĻāĻ•āĻŸāĻŋ āĻ¸āĻžāĻ°āĻĒā§āĻ°āĻžāĻ‡āĻœ āĻĒāĻžāĻŦā§‡āĻ¨:

CREATE INDEX "iIdent-DateLastUpdate"
  ON public."Ident" USING btree
  (("DTLastUpdate"::date));

ERROR:  functions in index expression must be marked IMMUTABLE
********** ОŅˆĐ¸ĐąĐēĐ° **********
ERROR: functions in index expression must be marked IMMUTABLE
SQL-ŅĐžŅŅ‚ĐžŅĐŊиĐĩ: 42P17

āĻ•āĻŋ āĻŦā§āĻ¯āĻžāĻĒāĻžāĻ°? āĻ†āĻ¸āĻ˛ āĻŦāĻŋāĻˇāĻ¯āĻŧāĻŸāĻŋ āĻšāĻ˛ āĻ¯ā§‡ āĻāĻ•āĻŸāĻŋ āĻŸāĻžāĻ‡āĻŽāĻ¸ā§āĻŸā§āĻ¯āĻžāĻŽā§āĻĒāĻŸāĻœ āĻŸāĻžāĻ‡āĻĒ āĻāĻ•āĻŸāĻŋ āĻ¤āĻžāĻ°āĻŋāĻ–ā§‡āĻ° āĻĒā§āĻ°āĻ•āĻžāĻ°ā§‡ āĻ•āĻžāĻ¸ā§āĻŸ āĻ•āĻ°āĻ¤ā§‡, āĻŸāĻžāĻ‡āĻŽāĻœā§‹āĻ¨ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽ āĻĒā§āĻ¯āĻžāĻ°āĻžāĻŽāĻŋāĻŸāĻžāĻ°ā§‡āĻ° āĻŽāĻžāĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ, āĻ¯āĻž āĻŸāĻžāĻ‡āĻĒ āĻ°ā§‚āĻĒāĻžāĻ¨ā§āĻ¤āĻ° āĻĢāĻžāĻ‚āĻļāĻ¨āĻŸāĻŋāĻ•ā§‡ āĻāĻ•āĻŸāĻŋ āĻ•āĻžāĻ¸ā§āĻŸāĻŽ āĻĒā§āĻ¯āĻžāĻ°āĻžāĻŽāĻŋāĻŸāĻžāĻ°ā§‡āĻ° āĻ‰āĻĒāĻ° āĻ¨āĻŋāĻ°ā§āĻ­āĻ° āĻ•āĻ°ā§‡, āĻ¯ā§‡āĻŽāĻ¨ āĻ…āĻ¸ā§āĻĨāĻŋāĻ° āĻāĻ‡ āĻ§āĻ°āĻ¨ā§‡āĻ° āĻĢāĻžāĻ‚āĻļāĻ¨ āĻ¸ā§‚āĻšāĻ• āĻ…āĻ¨ā§āĻŽā§‹āĻĻāĻŋāĻ¤ āĻ¨āĻ¯āĻŧ. āĻāĻ‡ āĻ•ā§āĻˇā§‡āĻ¤ā§āĻ°ā§‡, āĻ†āĻĒāĻ¨āĻžāĻ•ā§‡ āĻ…āĻŦāĻļā§āĻ¯āĻ‡ āĻ¸ā§āĻĒāĻˇā§āĻŸāĻ­āĻžāĻŦā§‡ āĻ¨āĻŋāĻ°ā§āĻĻā§‡āĻļ āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡ āĻ¯ā§‡ āĻ•ā§‹āĻ¨ āĻ¸āĻŽāĻ¯āĻŧ āĻ…āĻžā§āĻšāĻ˛ā§‡ āĻŸāĻžāĻ‡āĻĒ āĻ•āĻžāĻ¸ā§āĻŸ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤

āĻ¯āĻ–āĻ¨ āĻāĻ–āĻ¨ āĻ†āĻ° āĻāĻ–āĻ¨ āĻāĻ•ā§‡āĻŦāĻžāĻ°ā§‡āĻ‡ āĻ¨ā§‡āĻ‡

āĻ†āĻŽāĻ°āĻž āĻāĻ–āĻ¨ () āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ āĻ¤āĻžāĻ°āĻŋāĻ–/āĻ¸āĻŽāĻ¯āĻŧ āĻĢā§‡āĻ°āĻ¤ āĻĻāĻŋāĻ¤ā§‡ āĻ…āĻ­ā§āĻ¯āĻ¸ā§āĻ¤, āĻ¸āĻŽāĻ¯āĻŧ āĻ…āĻžā§āĻšāĻ˛ āĻŦāĻŋāĻŦā§‡āĻšāĻ¨āĻž āĻ•āĻ°ā§‡āĨ¤ āĻ•āĻŋāĻ¨ā§āĻ¤ā§ āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻ–āĻŋāĻ¤ āĻĒā§āĻ°āĻļā§āĻ¨āĻ—ā§āĻ˛āĻŋ āĻĻā§‡āĻ–ā§āĻ¨:

START TRANSACTION;
SELECT now();

            now
  timestamp with time zone
-----------------------------
2019-11-26 13:13:04.271419+03

...

SELECT now();

            now
  timestamp with time zone
-----------------------------
2019-11-26 13:13:04.271419+03

...

SELECT now();

            now
  timestamp with time zone
-----------------------------
2019-11-26 13:13:04.271419+03

COMMIT;

āĻ¤āĻžāĻ°āĻŋāĻ–/āĻ¸āĻŽāĻ¯āĻŧ āĻ†āĻ—ā§‡āĻ° āĻ…āĻ¨ā§āĻ°ā§‹āĻ§ā§‡āĻ° āĻĒāĻ° āĻĨā§‡āĻ•ā§‡ āĻ•āĻ¤ āĻ¸āĻŽāĻ¯āĻŧ āĻ…āĻ¤āĻŋāĻŦāĻžāĻšāĻŋāĻ¤ āĻšā§‹āĻ• āĻ¨āĻž āĻ•ā§‡āĻ¨ āĻāĻ•āĻ‡ āĻĢā§‡āĻ°āĻ¤ āĻĻā§‡āĻ“āĻ¯āĻŧāĻž āĻšāĻ¯āĻŧ! āĻ•āĻŋ āĻŦā§āĻ¯āĻžāĻĒāĻžāĻ°? āĻ†āĻ¸āĻ˛ āĻŦāĻŋāĻˇāĻ¯āĻŧāĻŸāĻŋ āĻšāĻ˛ now() āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ āĻ¸āĻŽāĻ¯āĻŧ āĻ¨āĻ¯āĻŧ, āĻ•āĻŋāĻ¨ā§āĻ¤ā§ āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ āĻ˛ā§‡āĻ¨āĻĻā§‡āĻ¨ā§‡āĻ° āĻļā§āĻ°ā§āĻ° āĻ¸āĻŽāĻ¯āĻŧāĨ¤ āĻ…āĻ¤āĻāĻŦ, āĻāĻŸāĻŋ āĻ˛ā§‡āĻ¨āĻĻā§‡āĻ¨ā§‡āĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻšāĻ¯āĻŧ āĻ¨āĻžāĨ¤ āĻāĻ•āĻŸāĻŋ āĻ˛ā§‡āĻ¨āĻĻā§‡āĻ¨ā§‡āĻ° āĻ¸ā§āĻ¯ā§‹āĻ—ā§‡āĻ° āĻŦāĻžāĻ‡āĻ°ā§‡ āĻšāĻžāĻ˛ā§ āĻ•āĻ°āĻž āĻ¯ā§‡āĻ•ā§‹āĻ¨ āĻĒā§āĻ°āĻļā§āĻ¨ āĻāĻ•āĻŸāĻŋ āĻ˛ā§‡āĻ¨āĻĻā§‡āĻ¨ā§‡ āĻ…āĻ¨ā§āĻ¤āĻ°ā§āĻ¨āĻŋāĻšāĻŋāĻ¤āĻ­āĻžāĻŦā§‡ āĻŽā§‹āĻĄāĻŧāĻžāĻ¨ā§‹ āĻšāĻ¯āĻŧ, āĻ¯āĻžāĻ° āĻ•āĻžāĻ°āĻŖā§‡ āĻ†āĻŽāĻ°āĻž āĻ˛āĻ•ā§āĻˇā§āĻ¯ āĻ•āĻ°āĻŋ āĻ¨āĻž āĻ¯ā§‡ āĻāĻ•āĻŸāĻŋ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ SELECT now(); āĻĒā§āĻ°āĻ•ā§ƒāĻ¤āĻĒāĻ•ā§āĻˇā§‡, āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨āĻŸāĻŋ āĻ¨āĻ¯āĻŧ... āĻ†āĻĒāĻ¨āĻŋ āĻ¯āĻĻāĻŋ āĻāĻ•āĻŸāĻŋ āĻ¸ā§Ž āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ āĻ¸āĻŽāĻ¯āĻŧ āĻĒā§‡āĻ¤ā§‡ āĻšāĻžāĻ¨ āĻ¤āĻŦā§‡ āĻ†āĻĒāĻ¨āĻžāĻ•ā§‡ clock_timestamp() āĻĢāĻžāĻ‚āĻļāĻ¨āĻŸāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡āĨ¤

āĻĒāĻžāĻāĻš āĻ¨āĻŽā§āĻŦāĻ° āĻĢāĻžāĻ‡āĻ˛āĨ¤ āĻŦāĻŋāĻŸ

āĻāĻ•āĻŸā§ āĻ…āĻĻā§āĻ­ā§āĻ¤

SELECT '111'::bit(4)

 bit
bit(4)
------
1110

āĻŸāĻžāĻ‡āĻĒ āĻāĻ•ā§āĻ¸āĻŸā§‡āĻ¨āĻļāĻ¨ā§‡āĻ° āĻ•ā§āĻˇā§‡āĻ¤ā§āĻ°ā§‡ āĻŦāĻŋāĻŸāĻ—ā§āĻ˛āĻŋ āĻ•ā§‹āĻ¨ āĻĻāĻŋāĻ•ā§‡ āĻ¯ā§āĻ•ā§āĻ¤ āĻ•āĻ°āĻž āĻ‰āĻšāĻŋāĻ¤? āĻŽāĻ¨ā§‡ āĻšāĻ¯āĻŧ āĻŦāĻžāĻŽ āĻĻāĻŋāĻ•ā§‡ āĻ†āĻ›ā§‡āĨ¤ āĻ•āĻŋāĻ¨ā§āĻ¤ā§ āĻāĻ‡ āĻŦāĻŋāĻˇāĻ¯āĻŧā§‡ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻ­āĻŋāĻ¤ā§āĻ¤āĻŋ āĻāĻ•āĻŸāĻŋ āĻ­āĻŋāĻ¨ā§āĻ¨ āĻŽāĻ¤āĻžāĻŽāĻ¤ āĻ†āĻ›ā§‡. āĻ¸āĻ¤āĻ°ā§āĻ•āĻ¤āĻž āĻ…āĻŦāĻ˛āĻŽā§āĻŦāĻ¨ āĻ•āĻ°ā§āĻ¨: āĻāĻ•āĻŸāĻŋ āĻŸāĻžāĻ‡āĻĒ āĻ•āĻžāĻ¸ā§āĻŸ āĻ•āĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻ¸āĻ‚āĻ–ā§āĻ¯āĻžāĻ° āĻ¸āĻ‚āĻ–ā§āĻ¯āĻž āĻ¨āĻž āĻŽāĻŋāĻ˛āĻ˛ā§‡, āĻ†āĻĒāĻ¨āĻŋ āĻ¯āĻž āĻšā§‡āĻ¯āĻŧā§‡āĻ›āĻŋāĻ˛ā§‡āĻ¨ āĻ¤āĻž āĻĒāĻžāĻŦā§‡āĻ¨ āĻ¨āĻžāĨ¤ āĻāĻŸāĻŋ āĻĄāĻžāĻ¨āĻĻāĻŋāĻ•ā§‡ āĻŦāĻŋāĻŸ āĻ¯ā§‹āĻ— āĻ•āĻ°āĻž āĻāĻŦāĻ‚ āĻŦāĻŋāĻŸ āĻ›āĻžāĻāĻŸāĻžāĻ‡ āĻ‰āĻ­āĻ¯āĻŧ āĻ•ā§āĻˇā§‡āĻ¤ā§āĻ°ā§‡āĻ‡ āĻĒā§āĻ°āĻ¯ā§‹āĻœā§āĻ¯āĨ¤ āĻāĻ›āĻžāĻĄāĻŧāĻžāĻ“ āĻĄāĻžāĻ¨āĻĻāĻŋāĻ•ā§‡...

āĻ›āĻ¯āĻŧ āĻ¨āĻŽā§āĻŦāĻ° āĻĢāĻžāĻ‡āĻ˛āĨ¤ āĻ…ā§āĻ¯āĻžāĻ°ā§‡

āĻāĻŽāĻ¨āĻ•āĻŋ NULL āĻĢāĻžāĻ¯āĻŧāĻžāĻ° āĻ•āĻ°ā§‡āĻ¨āĻŋ

SELECT ARRAY[1, 2] || NULL

?column?
integer[]
---------
{1,2}

āĻāĻ¸āĻ•āĻŋāĻ‰āĻāĻ˛-āĻ āĻ‰āĻ¤ā§āĻĨāĻžāĻĒāĻŋāĻ¤ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻŽāĻžāĻ¨ā§āĻˇ āĻšāĻŋāĻ¸āĻžāĻŦā§‡, āĻ†āĻŽāĻ°āĻž āĻ†āĻļāĻž āĻ•āĻ°āĻŋ āĻāĻ‡ āĻ…āĻ­āĻŋāĻŦā§āĻ¯āĻ•ā§āĻ¤āĻŋāĻŸāĻŋāĻ° āĻĢāĻ˛āĻžāĻĢāĻ˛ NULL āĻšāĻŦā§‡āĨ¤ āĻ•āĻŋāĻ¨ā§āĻ¤ā§ āĻ¸ā§‡āĻ–āĻžāĻ¨ā§‡ āĻ›āĻŋāĻ˛ āĻ¨āĻžāĨ¤ āĻāĻ•āĻŸāĻŋ āĻ…ā§āĻ¯āĻžāĻ°ā§‡ āĻĢā§‡āĻ°āĻ¤ āĻĻā§‡āĻ“āĻ¯āĻŧāĻž āĻšāĻ¯āĻŧ. āĻ•ā§‡āĻ¨? āĻ•āĻžāĻ°āĻŖ āĻāĻ‡ āĻ•ā§āĻˇā§‡āĻ¤ā§āĻ°ā§‡ āĻŦā§‡āĻ¸ NULL āĻ•ā§‡ āĻāĻ•āĻŸāĻŋ āĻĒā§‚āĻ°ā§āĻŖāĻ¸āĻ‚āĻ–ā§āĻ¯āĻž āĻ…ā§āĻ¯āĻžāĻ°ā§‡āĻ¤ā§‡ āĻ•āĻžāĻ¸ā§āĻŸ āĻ•āĻ°ā§‡ āĻāĻŦāĻ‚ āĻ¸ā§āĻĒāĻˇā§āĻŸāĻ­āĻžāĻŦā§‡ array_cat āĻĢāĻžāĻ‚āĻļāĻ¨āĻ•ā§‡ āĻ•āĻ˛ āĻ•āĻ°ā§‡āĨ¤ āĻ•āĻŋāĻ¨ā§āĻ¤ā§ āĻāĻŸāĻŋ āĻāĻ–āĻ¨āĻ“ āĻ…āĻ¸ā§āĻĒāĻˇā§āĻŸ āĻ°āĻ¯āĻŧā§‡ āĻ—ā§‡āĻ›ā§‡ āĻ•ā§‡āĻ¨ āĻāĻ‡ "āĻ…ā§āĻ¯āĻžāĻ°ā§‡ āĻŦāĻŋāĻĄāĻŧāĻžāĻ˛" āĻ…ā§āĻ¯āĻžāĻ°ā§‡ āĻ°āĻŋāĻ¸ā§‡āĻŸ āĻ•āĻ°ā§‡ āĻ¨āĻžāĨ¤ āĻāĻ‡ āĻ†āĻšāĻ°āĻŖ āĻāĻ›āĻžāĻĄāĻŧāĻžāĻ“ āĻļā§āĻ§ā§ āĻŽāĻ¨ā§‡ āĻ°āĻžāĻ–āĻž āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨.

āĻ¸āĻžāĻ°āĻ¸āĻ‚āĻ•ā§āĻˇā§‡āĻĒāĨ¤ āĻ…āĻĻā§āĻ­ā§āĻ¤ āĻœāĻŋāĻ¨āĻŋāĻ¸ āĻĒā§āĻ°āĻšā§āĻ° āĻ†āĻ›ā§‡. āĻ¤āĻžāĻĻā§‡āĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻŦā§‡āĻļāĻŋāĻ°āĻ­āĻžāĻ—āĻ‡, āĻ¸ā§āĻĒāĻˇā§āĻŸāĻ¤āĻ‡ āĻ…āĻ¨ā§āĻĒāĻ¯ā§āĻ•ā§āĻ¤ āĻ†āĻšāĻ°āĻŖ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻ•ā§‡ āĻ•āĻĨāĻž āĻŦāĻ˛āĻžāĻ° āĻŽāĻ¤ā§‹ āĻ¸āĻŽāĻžāĻ˛ā§‹āĻšāĻ¨āĻžāĻŽā§‚āĻ˛āĻ• āĻ¨āĻ¯āĻŧāĨ¤ āĻāĻŦāĻ‚ āĻ…āĻ¨ā§āĻ¯āĻĻā§‡āĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°ā§‡āĻ° āĻ¸āĻšāĻœāĻ¤āĻž āĻŦāĻž āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻŸ āĻĒāĻ°āĻŋāĻ¸ā§āĻĨāĻŋāĻ¤āĻŋāĻ¤ā§‡ āĻ¤āĻžāĻĻā§‡āĻ° āĻĒā§āĻ°āĻ¯ā§‹āĻœā§āĻ¯āĻ¤āĻžāĻ° āĻĢā§āĻ°āĻŋāĻ•ā§‹āĻ¯āĻŧā§‡āĻ¨ā§āĻ¸āĻŋ āĻĻā§āĻŦāĻžāĻ°āĻž āĻŦā§āĻ¯āĻžāĻ–ā§āĻ¯āĻž āĻ•āĻ°āĻž āĻšāĻ¯āĻŧāĨ¤ āĻ¤āĻŦā§‡ āĻāĻ•āĻ‡ āĻ¸āĻ™ā§āĻ—ā§‡ āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡ āĻ¨āĻžāĻ¨āĻž āĻšāĻŽāĻ•āĨ¤ āĻ…āĻ¤āĻāĻŦ, āĻ†āĻĒāĻ¨āĻŋ āĻ¤āĻžāĻĻā§‡āĻ° āĻ¸āĻŽā§āĻĒāĻ°ā§āĻ•ā§‡ āĻœāĻžāĻ¨āĻ¤ā§‡ āĻšāĻŦā§‡. āĻ†āĻĒāĻ¨āĻŋ āĻ¯āĻĻāĻŋ āĻ•ā§‹āĻ¨āĻ“ āĻ§āĻ°āĻŖā§‡āĻ° āĻ†āĻšāĻ°āĻŖā§‡ āĻ…āĻ¨ā§āĻ¯ āĻ•āĻŋāĻ›ā§ āĻ…āĻĻā§āĻ­ā§āĻ¤ āĻŦāĻž āĻ…āĻ¸ā§āĻŦāĻžāĻ­āĻžāĻŦāĻŋāĻ• āĻ–ā§āĻāĻœā§‡ āĻĒāĻžāĻ¨ āĻ¤āĻŦā§‡ āĻŽāĻ¨ā§āĻ¤āĻŦā§āĻ¯ā§‡ āĻ˛āĻŋāĻ–ā§āĻ¨, āĻ†āĻŽāĻŋ āĻ¤āĻžāĻĻā§‡āĻ° āĻ‰āĻĒāĻ° āĻ‰āĻĒāĻ˛āĻŦā§āĻ§ āĻĄāĻ¸āĻŋāĻ¯āĻŧāĻžāĻ° āĻ¯ā§‹āĻ— āĻ•āĻ°āĻ¤ā§‡ āĻĒā§‡āĻ°ā§‡ āĻ–ā§āĻļāĻŋ āĻšāĻŦāĨ¤

āĻ‰āĻ¤ā§āĻ¸: www.habr.com

āĻāĻ•āĻŸāĻŋ āĻŽāĻ¨ā§āĻ¤āĻŦā§āĻ¯ āĻœā§āĻĄāĻŧā§āĻ¨