← Back to Overview

src/bin/psql/command.c

Coverage: 1/1 lines (100.0%)
Total Lines
1
modified
Covered
1
100.0%
Uncovered
0
0.0%
키보드 네비게이션
exec_command_d() lines 1021-1302
Modified Lines Coverage: 1/1 lines (100.0%)
LineHitsSourceCommit
1021 - exec_command_d(PsqlScanState scan_state, bool active_branch, const char *cmd) -
1022 - { -
1023 - backslashResult status = PSQL_CMD_SKIP_LINE; -
1024 - bool success = true; -
1025 - -
1026 - if (active_branch) -
1027 - { -
1028 - char *pattern; -
1029 - bool show_verbose, -
1030 - show_system; -
1031 - unsigned short int save_expanded; -
1032 - -
1033 - /* We don't do SQLID reduction on the pattern yet */ -
1034 - pattern = psql_scan_slash_option(scan_state, -
1035 - OT_NORMAL, NULL, true); -
1036 - -
1037 - show_verbose = strchr(cmd, '+') ? true : false; -
1038 - show_system = strchr(cmd, 'S') ? true : false; -
1039 - -
1040 - /* -
1041 - * The 'x' option turns expanded mode on for this command only. This -
1042 - * is allowed in all \d* commands, except \d by itself, since \dx is a -
1043 - * separate command. So the 'x' option cannot appear immediately after -
1044 - * \d, but it can appear after \d followed by other options. -
1045 - */ -
1046 - save_expanded = pset.popt.topt.expanded; -
1047 - if (cmd[1] != '\0' && strchr(&cmd[2], 'x')) -
1048 - pset.popt.topt.expanded = 1; -
1049 - -
1050 - switch (cmd[1]) -
1051 - { -
1052 - case '\0': -
1053 - case '+': -
1054 - case 'S': -
1055 - if (pattern) -
1056 - success = describeTableDetails(pattern, show_verbose, show_system); -
1057 - else -
1058 - /* standard listing of interesting things */ -
1059 9 success = listTables("tvmsEG", NULL, show_verbose, show_system); 86c14eaWIP: SQL Property Graph Queries (SQL/PGQ)
1060 - break; -
1061 - case 'A': -
1062 - { -
1063 - char *pattern2 = NULL; -
1064 - -
1065 - if (pattern && cmd[2] != '\0' && cmd[2] != '+' && cmd[2] != 'x') -
1066 - pattern2 = psql_scan_slash_option(scan_state, OT_NORMAL, NULL, true); -
1067 - -
1068 - switch (cmd[2]) -
1069 - { -
1070 - case '\0': -
1071 - case '+': -
1072 - case 'x': -
1073 - success = describeAccessMethods(pattern, show_verbose); -
1074 - break; -
1075 - case 'c': -
1076 - success = listOperatorClasses(pattern, pattern2, show_verbose); -
1077 - break; -
1078 - case 'f': -
1079 - success = listOperatorFamilies(pattern, pattern2, show_verbose); -
1080 - break; -
1081 - case 'o': -
1082 - success = listOpFamilyOperators(pattern, pattern2, show_verbose); -
1083 - break; -
1084 - case 'p': -
1085 - success = listOpFamilyFunctions(pattern, pattern2, show_verbose); -
1086 - break; -
1087 - default: -
1088 - status = PSQL_CMD_UNKNOWN; -
1089 - break; -
1090 - } -
1091 - -
1092 - free(pattern2); -
1093 - } -
1094 - break; -
1095 - case 'a': -
1096 - success = describeAggregates(pattern, show_verbose, show_system); -
1097 - break; -
1098 - case 'b': -
1099 - success = describeTablespaces(pattern, show_verbose); -
1100 - break; -
1101 - case 'c': -
1102 - if (strncmp(cmd, "dconfig", 7) == 0) -
1103 - success = describeConfigurationParameters(pattern, -
1104 - show_verbose, -
1105 - show_system); -
1106 - else -
1107 - success = listConversions(pattern, -
1108 - show_verbose, -
1109 - show_system); -
1110 - break; -
1111 - case 'C': -
1112 - success = listCasts(pattern, show_verbose); -
1113 - break; -
1114 - case 'd': -
1115 - if (strncmp(cmd, "ddp", 3) == 0) -
1116 - success = listDefaultACLs(pattern); -
1117 - else -
1118 - success = objectDescription(pattern, show_system); -
1119 - break; -
1120 - case 'D': -
1121 - success = listDomains(pattern, show_verbose, show_system); -
1122 - break; -
1123 - case 'f': /* function subsystem */ -
1124 - switch (cmd[2]) -
1125 - { -
1126 - case '\0': -
1127 - case '+': -
1128 - case 'S': -
1129 - case 'a': -
1130 - case 'n': -
1131 - case 'p': -
1132 - case 't': -
1133 - case 'w': -
1134 - case 'x': -
1135 - success = exec_command_dfo(scan_state, cmd, pattern, -
1136 - show_verbose, show_system); -
1137 - break; -
1138 - default: -
1139 - status = PSQL_CMD_UNKNOWN; -
1140 - break; -
1141 - } -
1142 - break; -
1143 - case 'g': -
1144 - /* no longer distinct from \du */ -
1145 - success = describeRoles(pattern, show_verbose, show_system); -
1146 - break; -
1147 - case 'l': -
1148 - success = listLargeObjects(show_verbose); -
1149 - break; -
1150 - case 'L': -
1151 - success = listLanguages(pattern, show_verbose, show_system); -
1152 - break; -
1153 - case 'n': -
1154 - success = listSchemas(pattern, show_verbose, show_system); -
1155 - break; -
1156 - case 'o': -
1157 - success = exec_command_dfo(scan_state, cmd, pattern, -
1158 - show_verbose, show_system); -
1159 - break; -
1160 - case 'O': -
1161 - success = listCollations(pattern, show_verbose, show_system); -
1162 - break; -
1163 - case 'p': -
1164 - success = permissionsList(pattern, show_system); -
1165 - break; -
1166 - case 'P': -
1167 - { -
1168 - switch (cmd[2]) -
1169 - { -
1170 - case '\0': -
1171 - case '+': -
1172 - case 't': -
1173 - case 'i': -
1174 - case 'n': -
1175 - case 'x': -
1176 - success = listPartitionedTables(&cmd[2], pattern, show_verbose); -
1177 - break; -
1178 - default: -
1179 - status = PSQL_CMD_UNKNOWN; -
1180 - break; -
1181 - } -
1182 - } -
1183 - break; -
1184 - case 'T': -
1185 - success = describeTypes(pattern, show_verbose, show_system); -
1186 - break; -
1187 - case 't': -
1188 - case 'v': -
1189 - case 'm': -
1190 - case 'i': -
1191 - case 's': -
1192 - case 'E': -
1193 - case 'G': 86c14eaWIP: SQL Property Graph Queries (SQL/PGQ)
1194 - success = listTables(&cmd[1], pattern, show_verbose, show_system); -
1195 - break; -
1196 - case 'r': -
1197 - if (cmd[2] == 'd' && cmd[3] == 's') -
1198 - { -
1199 - char *pattern2 = NULL; -
1200 - -
1201 - if (pattern) -
1202 - pattern2 = psql_scan_slash_option(scan_state, -
1203 - OT_NORMAL, NULL, true); -
1204 - success = listDbRoleSettings(pattern, pattern2); -
1205 - -
1206 - free(pattern2); -
1207 - } -
1208 - else if (cmd[2] == 'g') -
1209 - success = describeRoleGrants(pattern, show_system); -
1210 - else -
1211 - status = PSQL_CMD_UNKNOWN; -
1212 - break; -
1213 - case 'R': -
1214 - switch (cmd[2]) -
1215 - { -
1216 - case 'p': -
1217 - if (show_verbose) -
1218 - success = describePublications(pattern); -
1219 - else -
1220 - success = listPublications(pattern); -
1221 - break; -
1222 - case 's': -
1223 - success = describeSubscriptions(pattern, show_verbose); -
1224 - break; -
1225 - default: -
1226 - status = PSQL_CMD_UNKNOWN; -
1227 - } -
1228 - break; -
1229 - case 'u': -
1230 - success = describeRoles(pattern, show_verbose, show_system); -
1231 - break; -
1232 - case 'F': /* text search subsystem */ -
1233 - switch (cmd[2]) -
1234 - { -
1235 - case '\0': -
1236 - case '+': -
1237 - case 'x': -
1238 - success = listTSConfigs(pattern, show_verbose); -
1239 - break; -
1240 - case 'p': -
1241 - success = listTSParsers(pattern, show_verbose); -
1242 - break; -
1243 - case 'd': -
1244 - success = listTSDictionaries(pattern, show_verbose); -
1245 - break; -
1246 - case 't': -
1247 - success = listTSTemplates(pattern, show_verbose); -
1248 - break; -
1249 - default: -
1250 - status = PSQL_CMD_UNKNOWN; -
1251 - break; -
1252 - } -
1253 - break; -
1254 - case 'e': /* SQL/MED subsystem */ -
1255 - switch (cmd[2]) -
1256 - { -
1257 - case 's': -
1258 - success = listForeignServers(pattern, show_verbose); -
1259 - break; -
1260 - case 'u': -
1261 - success = listUserMappings(pattern, show_verbose); -
1262 - break; -
1263 - case 'w': -
1264 - success = listForeignDataWrappers(pattern, show_verbose); -
1265 - break; -
1266 - case 't': -
1267 - success = listForeignTables(pattern, show_verbose); -
1268 - break; -
1269 - default: -
1270 - status = PSQL_CMD_UNKNOWN; -
1271 - break; -
1272 - } -
1273 - break; -
1274 - case 'x': /* Extensions */ -
1275 - if (show_verbose) -
1276 - success = listExtensionContents(pattern); -
1277 - else -
1278 - success = listExtensions(pattern); -
1279 - break; -
1280 - case 'X': /* Extended Statistics */ -
1281 - success = listExtendedStats(pattern); -
1282 - break; -
1283 - case 'y': /* Event Triggers */ -
1284 - success = listEventTriggers(pattern, show_verbose); -
1285 - break; -
1286 - default: -
1287 - status = PSQL_CMD_UNKNOWN; -
1288 - } -
1289 - -
1290 - /* Restore original expanded mode */ -
1291 - pset.popt.topt.expanded = save_expanded; -
1292 - -
1293 - free(pattern); -
1294 - } -
1295 - else -
1296 - ignore_slash_options(scan_state); -
1297 - -
1298 - if (!success) -
1299 - status = PSQL_CMD_ERROR; -
1300 - -
1301 - return status; -
1302 - } -