Skip to content

Conversation

@gulshan-123
Copy link
Contributor

Fixes #6072

Added an option separator to db.columns which will be field separator in case of CSV and LIST format, but will be error in JSON and PLAIN format.

Also, I have rearranged declaration of some variables, so that to avoid re-declaring in each switch case block.

grass > db.columns zipcodes format=list -e separator=';'
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

default separator=newline

grass > db.columns zipcodes format=list
cat
OBJECTID
WAKE_ZIPCO
PERIMETER
ZIPCODE_
ZIPCODE_ID
ZIPNAME
ZIPNUM
ZIPCODE
NAME
SHAPE_Leng
SHAPE_Area
grass > db.columns zipcodes format=list separator=';'
cat;OBJECTID;WAKE_ZIPCO;PERIMETER;ZIPCODE_;ZIPCODE_ID;ZIPNAME;ZIPNUM;ZIPCODE;NAME;SHAPE_Leng;SHAPE_Area

default separator=newline

grass > db.columns zipcodes format=list -e
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

default separator=comma

grass > db.columns zipcodes format=csv -e
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
grass > db.columns zipcodes format=csv -e separator='\t'
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

separator is of no effect

grass > db.columns zipcodes format=csv separator='\t'
name
cat
OBJECTID
WAKE_ZIPCO
PERIMETER
ZIPCODE_
ZIPCODE_ID
ZIPNAME
ZIPNUM
ZIPCODE
NAME
SHAPE_Leng
SHAPE_Area

In case of format=csv and without -e: the separator has no role, should we give warning to user?

TODO:
examples, tests

@github-actions github-actions bot added C Related code is in C database Related to database management module labels Jan 26, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

C Related code is in C database Related to database management module

Projects

None yet

Development

Successfully merging this pull request may close these issues.

db.columns: Output column metadata, not just names

1 participant