Horde_Db_Adapter_Postgresql_Column::_extractValueFromDefault PHP Method

_extractValueFromDefault() protected method

Extracts the value from a PostgreSQL column default definition.
protected _extractValueFromDefault ( $default )
    protected function _extractValueFromDefault($default)
    {
        switch (true) {
            case preg_match('/\\A-?\\d+(\\.\\d*)?\\z/', $default):
                // Numeric types
                return $default;
            case preg_match('/\\A\'(.*)\'::(?:character varying|bpchar|text)\\z/m', $default, $matches):
                // Character types
                return $matches[1];
            case preg_match('/\\AE\'(.*)\'::(?:character varying|bpchar|text)\\z/m', $default, $matches):
                // Character types (8.1 formatting)
                /*@TODO fix preg callback*/
                return preg_replace('/\\(\\d\\d\\d)/', '$1.oct.chr', $matches[1]);
            case preg_match('/\\A\'(.*)\'::bytea\\z/m', $default, $matches):
                // Binary data types
                return $matches[1];
            case preg_match('/\\A\'(.+)\'::(?:time(?:stamp)? with(?:out)? time zone|date)\\z/', $default, $matches):
                // Date/time types
                return $matches[1];
            case preg_match('/\\A\'(.*)\'::interval\\z/', $default, $matches):
                return $matches[1];
            case $default == 'true':
                // Boolean type
                return true;
            case $default == 'false':
                return false;
            case preg_match('/\\A\'(.*)\'::(?:point|line|lseg|box|"?path"?|polygon|circle)\\z/', $default, $matches):
                // Geometric types
                return $matches[1];
            case preg_match('/\\A\'(.*)\'::(?:cidr|inet|macaddr)\\z/', $default, $matches):
                // Network address types
                return $matches[1];
            case preg_match('/\\AB\'(.*)\'::"?bit(?: varying)?"?\\z/', $default, $matches):
                // Bit string types
                return $matches[1];
            case preg_match('/\\A\'(.*)\'::xml\\z/m', $default, $matches):
                // XML type
                return $matches[1];
            case preg_match('/\\A\'(.*)\'::"?\\D+"?\\[\\]\\z/', $default, $matches):
                // Arrays
                return $matches[1];
            case preg_match('/\\A-?\\d+\\z/', $default, $matches):
                // Object identifier types
                return $matches[1];
            default:
                // Anything else is blank, some user type, or some function
                // and we can't know the value of that, so return nil.
                return null;
        }
    }