-if [ -n "$2" ]; then
- setting=$2
-zpm shell $pkgfile <<EOS
-update packages set $item = '$setting'
-where
-printf('%s-%s-%s', package,version,release) = '$pkgid'
-;
-EOS
-else
- setting=$(zpm shell $pkgfile <<EOS
-select $item from packages
-where
-printf('%s-%s-%s', package,version,release) = '$pkgid'
-;
-EOS
-)
- if [ -n "$setting" ]; then
- printf '%s\n' "$setting"
+ if [ -z "$pkgid" ]; then
+ warn "can't find pkgid for $item in $pkgfile"
+ break;
+ fi
+
+ vfield=$(zpm quote "$field")
+
+ hasfield=$(zpm shell $pkgfile "select name from pragma_table_info('packages') where name = '$vfield';")
+ if [ -z "$hasfield" ]; then
+ warn "$field is not a valid package field"
+ break
+ fi
+
+ field=$(zpm quote -i "$field")
+
+ if [ $show -eq 1 ]; then
+ printf "select %s from packages_pkgid where pkgid = '%s';\n" "$field" "$pkgid"
+ continue
+ fi
+
+ if [ -z "$value" ]; then
+ value=NULL
+ else
+ value=$(zpm quote -q "$value")