db.columns
List all columns for a given table.
db.columns [-e] table=name [driver=name] [database=name] [separator=character] format=name [--verbose] [--quiet] [--qq] [--ui]
Example:
db.columns table=name format=plain
grass.script.parse_command("db.columns", table, driver="sqlite", database="\(GISDBASE/\)LOCATION_NAME/$MAPSET/sqlite/sqlite.db", separator=None, format="plain", flags=None, verbose=None, quiet=None, superquiet=None)
Example:
gs.parse_command("db.columns", table="name", format="json")
grass.tools.Tools.db_columns(table, driver="sqlite", database="\(GISDBASE/\)LOCATION_NAME/$MAPSET/sqlite/sqlite.db", separator=None, format="plain", flags=None, verbose=None, quiet=None, superquiet=None)
Example:
tools = Tools()
tools.db_columns(table="name", format="json")
This grass.tools API is experimental in version 8.5 and expected to be stable in version 8.6.
Parameters
table=name [required]
Name of attribute table
driver=name
Name of database driver
Allowed values: dbf, odbc, ogr, pg, sqlite
Default: sqlite
database=name
Name of database
Default: \(GISDBASE/\)LOCATION_NAME/$MAPSET/sqlite/sqlite.db
separator=character
Field separator
Special characters: pipe, comma, space, tab, newline
format=name [required]
Output format
Allowed values: plain, csv, json, list
Default: plain
plain: Configurable plain text output
csv: CSV (Comma Separated Values)
json: JSON (JavaScript Object Notation)
list: Output in list format
-e
Print type information about the columns
Print the name and the type of all the columns for a given table.
--help
Print usage summary
--verbose
Verbose module output
--quiet
Quiet module output
--qq
Very quiet module output
--ui
Force launching GUI dialog
table : str, required
Name of attribute table
Used as: input, dbtable, name
driver : str, optional
Name of database driver
Used as: input, dbdriver, name
Allowed values: dbf, odbc, ogr, pg, sqlite
Default: sqlite
database : str, optional
Name of database
Used as: input, dbname, name
Default: \(GISDBASE/\)LOCATION_NAME/$MAPSET/sqlite/sqlite.db
separator : str, optional
Field separator
Special characters: pipe, comma, space, tab, newline
Used as: input, separator, character
format : str, required
Output format
Used as: name
Allowed values: plain, csv, json, list
plain: Configurable plain text output
csv: CSV (Comma Separated Values)
json: JSON (JavaScript Object Notation)
list: Output in list format
Default: plain
flags : str, optional
Allowed values: e
e
Print type information about the columns
Print the name and the type of all the columns for a given table.
verbose : bool, optional
Verbose module output
Default: None
quiet : bool, optional
Quiet module output
Default: None
superquiet : bool, optional
Very quiet module output
Default: None
table : str, required
Name of attribute table
Used as: input, dbtable, name
driver : str, optional
Name of database driver
Used as: input, dbdriver, name
Allowed values: dbf, odbc, ogr, pg, sqlite
Default: sqlite
database : str, optional
Name of database
Used as: input, dbname, name
Default: \(GISDBASE/\)LOCATION_NAME/$MAPSET/sqlite/sqlite.db
separator : str, optional
Field separator
Special characters: pipe, comma, space, tab, newline
Used as: input, separator, character
format : str, required
Output format
Used as: name
Allowed values: plain, csv, json, list
plain: Configurable plain text output
csv: CSV (Comma Separated Values)
json: JSON (JavaScript Object Notation)
list: Output in list format
Default: plain
flags : str, optional
Allowed values: e
e
Print type information about the columns
Print the name and the type of all the columns for a given table.
verbose : bool, optional
Verbose module output
Default: None
quiet : bool, optional
Quiet module output
Default: None
superquiet : bool, optional
Very quiet module output
Default: None
Returns:
result : grass.tools.support.ToolResult | None
If the tool produces text as standard output, a ToolResult object will be returned. Otherwise, None will be returned.
Raises:
grass.tools.ToolError: When the tool ended with an error.
DESCRIPTION
db.columns lists all columns for a given table. Connection to databases are supported through dbf, shp, odbc and pg drivers.
NOTE
If parameters for database connection are already set with db.connect, they are taken as default values and do not need to be specified each time.
EXAMPLES
List columns
List of columns in shell:
db.columns table=zipcodes_wake format=list
cat
OBJECTID
WAKE_ZIPCO
PERIMETER
ZIPCODE_
ZIPCODE_ID
ZIPNAME
ZIPNUM
ZIPCODE
NAME
SHAPE_Leng
SHAPE_Area
List of columns in Python:
from grass.tools import Tools
columns = Tools().db_columns(table="zipcodes_wake", format="json")
print(list(columns))
['cat', 'OBJECTID', 'WAKE_ZIPCO', 'PERIMETER', 'ZIPCODE_', 'ZIPCODE_ID', 'ZIPNAME', 'ZIPNUM', 'ZIPCODE', 'NAME', 'SHAPE_Leng', 'SHAPE_Area']
List detailed column information
List column types in plain format:
db.columns -e table=zipcodes_wake
cat: INTEGER
OBJECTID: INTEGER
WAKE_ZIPCO: DOUBLE PRECISION
PERIMETER: DOUBLE PRECISION
ZIPCODE_: DOUBLE PRECISION
ZIPCODE_ID: DOUBLE PRECISION
ZIPNAME: CHARACTER
ZIPNUM: DOUBLE PRECISION
ZIPCODE: CHARACTER
NAME: CHARACTER
SHAPE_Leng: DOUBLE PRECISION
SHAPE_Area: DOUBLE PRECISION
List column types in JSON format:
db.columns -e table=zipcodes_wake format=json
[
{
"name": "cat",
"sql_type": "INTEGER",
"is_number": true
},
{
"name": "OBJECTID",
"sql_type": "INTEGER",
"is_number": true
},
{
"name": "WAKE_ZIPCO",
"sql_type": "DOUBLE PRECISION",
"is_number": true
},
...
]
Create an SQL-like column list:
db.columns -e table=zipcodes_wake format=list separator=comma
cat INTEGER,OBJECTID INTEGER,WAKE_ZIPCO DOUBLE PRECISION,PERIMETER DOUBLE PRECISION,ZIPCODE_ DOUBLE PRECISION,ZIPCODE_ID DOUBLE PRECISION,ZIPNAME CHARACTER,ZIPNUM DOUBLE PRECISION,ZIPCODE CHARACTER,NAME CHARACTER,SHAPE_Leng DOUBLE PRECISION,SHAPE_Area DOUBLE PRECISION
List column types in CSV format:
db.columns -e table=zipcodes_wake format=csv
name,sql_type,is_number
cat,INTEGER,true
OBJECTID,INTEGER,true
WAKE_ZIPCO,DOUBLE PRECISION,true
PERIMETER,DOUBLE PRECISION,true
ZIPCODE_,DOUBLE PRECISION,true
ZIPCODE_ID,DOUBLE PRECISION,true
ZIPNAME,CHARACTER,false
ZIPNUM,DOUBLE PRECISION,true
ZIPCODE,CHARACTER,false
NAME,CHARACTER,false
SHAPE_Leng,DOUBLE PRECISION,true
SHAPE_Area,DOUBLE PRECISION,true
List columns of a PostgreSQL attribute table
db.columns table=zipcodes_wake driver=pg database=grassdb
If the database parameters are already set, the columns can be listed directly:
db.columns table=zipcodes_wake
SEE ALSO
db.connect, db.describe, db.drivers, db.droptable, db.execute, db.login, db.tables, GRASS SQL interface
AUTHOR
Radim Blazek, ITC-Irst, Trento, Italy
SOURCE CODE
Available at: db.columns source code
(history)
Latest change: Saturday Jan 31 03:52:33 2026 in commit 5dd1f90