---
name: "SQL::Statement::Util"
section: "3pm"
platform: "linux"
package: "libsql-statement-perl"
version: "1.11-1"
release: "Debian 3.1 (Sarge)"
platforms: ["linux"]
url: "https://new.carta.tech/SQL::Statement::Util"
---

# SQL::Statement::Util(3pm)

SQL::Statement::Util - Objects & Methods for accessing parsed SQL Statements\
 **Column Object**

```
 Column->name()           # column name in upper-case
 Column->display_name()   # column alias or name in user-supplied case
 Column->table()          # name of table column belongs to, if known
 Column->function()       # a Function object, if it's a computed column
```

*Column-\>name()* *Column-\>display\_name()* *Column-\>table()* *Column-\>function()*\
 **Function Object**\
 **SQL::Statement::Func Objects** A new S::S::Func object is created for each function once per prepare, after which, the following methods are available:

```
 name()     # function's name, e.g. UPPER
 alias()    # function's alias, e.g. c1
 args()     # an arrayref of value objects
 class()    # name of package holding func's subroutine, e.g. Bar::MyFuncs
 subname()  # name of func's subroutine, e.g. SQL_FUNCTION_UPPER
```

At this point, only the name of the class and sub are known, it isn't known whether there actually is a corresponding subroutine in the class.  Value objects in the args arrayref may also be unknown at this point: placeholders and column names have not yet been replaced with values. Each Func object is validated once per execute, during *open\_tables()*.  Validation requires the function's package and checks for the existence of a routine named with the function's subname.  An error will be generated if the subroutine can't be found.

```
 validate() # checks if the function corresponds to an available subroutine
```
