290
287
connected= false, opt_raw_data= false, unbuffered= false,
291
288
output_tables= false, opt_rehash= true, skip_updates= false,
292
289
safe_updates= false, one_database= false,
293
opt_shutdown= false, opt_ping= false,
290
opt_compress= false, opt_shutdown= false, opt_ping= false,
294
291
vertical= false, line_numbers= true, column_names= true,
295
292
opt_nopager= true, opt_outfile= false, named_cmds= false,
296
293
opt_nobeep= false, opt_reconnect= true,
360
356
com_help(string *str,const char*), com_clear(string *str,const char*),
361
357
com_connect(string *str,const char*), com_status(string *str,const char*),
362
358
com_use(string *str,const char*), com_source(string *str, const char*),
363
com_shutdown(string *str,const char*),
364
359
com_rehash(string *str, const char*), com_tee(string *str, const char*),
365
360
com_notee(string *str, const char*),
366
361
com_prompt(string *str, const char*), com_delimiter(string *str, const char*),
492
487
N_("Set outfile [to_outfile]. Append everything into given outfile.") ),
493
488
Commands( "use", 'u', com_use, 1,
494
489
N_("Use another database. Takes database name as argument.") ),
495
Commands( "shutdown", 'u', com_shutdown, 1,
496
N_("Shutdown the instance you are connected too.") ),
497
490
Commands( "warnings", 'W', com_warnings, 0,
498
491
N_("Show warnings after every statement.") ),
499
492
Commands( "nowarning", 'w', com_nowarnings, 0,
529
522
Commands( "AUTO_INCREMENT", 0, 0, 0, ""),
530
523
Commands( "AVG", 0, 0, 0, ""),
531
524
Commands( "AVG_ROW_LENGTH", 0, 0, 0, ""),
525
Commands( "BACKUP", 0, 0, 0, ""),
526
Commands( "BDB", 0, 0, 0, ""),
532
527
Commands( "BEFORE", 0, 0, 0, ""),
533
528
Commands( "BEGIN", 0, 0, 0, ""),
529
Commands( "BERKELEYDB", 0, 0, 0, ""),
534
530
Commands( "BETWEEN", 0, 0, 0, ""),
535
531
Commands( "BIGINT", 0, 0, 0, ""),
536
532
Commands( "BINARY", 0, 0, 0, ""),
533
Commands( "BINLOG", 0, 0, 0, ""),
537
534
Commands( "BIT", 0, 0, 0, ""),
538
535
Commands( "BLOB", 0, 0, 0, ""),
539
536
Commands( "BOOL", 0, 0, 0, ""),
552
549
Commands( "CHANGED", 0, 0, 0, ""),
553
550
Commands( "CHAR", 0, 0, 0, ""),
554
551
Commands( "CHARACTER", 0, 0, 0, ""),
552
Commands( "CHARSET", 0, 0, 0, ""),
555
553
Commands( "CHECK", 0, 0, 0, ""),
556
554
Commands( "CHECKSUM", 0, 0, 0, ""),
555
Commands( "CIPHER", 0, 0, 0, ""),
557
556
Commands( "CLIENT", 0, 0, 0, ""),
558
557
Commands( "CLOSE", 0, 0, 0, ""),
558
Commands( "CODE", 0, 0, 0, ""),
559
559
Commands( "COLLATE", 0, 0, 0, ""),
560
560
Commands( "COLLATION", 0, 0, 0, ""),
561
561
Commands( "COLUMN", 0, 0, 0, ""),
597
597
Commands( "DEFAULT", 0, 0, 0, ""),
598
598
Commands( "DEFINER", 0, 0, 0, ""),
599
599
Commands( "DELAYED", 0, 0, 0, ""),
600
Commands( "DELAY_KEY_WRITE", 0, 0, 0, ""),
600
601
Commands( "DELETE", 0, 0, 0, ""),
601
602
Commands( "DESC", 0, 0, 0, ""),
602
603
Commands( "DESCRIBE", 0, 0, 0, ""),
604
Commands( "DES_KEY_FILE", 0, 0, 0, ""),
603
605
Commands( "DETERMINISTIC", 0, 0, 0, ""),
606
Commands( "DIRECTORY", 0, 0, 0, ""),
604
607
Commands( "DISABLE", 0, 0, 0, ""),
605
608
Commands( "DISCARD", 0, 0, 0, ""),
606
609
Commands( "DISTINCT", 0, 0, 0, ""),
607
610
Commands( "DISTINCTROW", 0, 0, 0, ""),
608
611
Commands( "DIV", 0, 0, 0, ""),
612
Commands( "DO", 0, 0, 0, ""),
609
613
Commands( "DOUBLE", 0, 0, 0, ""),
610
614
Commands( "DROP", 0, 0, 0, ""),
615
Commands( "DUAL", 0, 0, 0, ""),
611
616
Commands( "DUMPFILE", 0, 0, 0, ""),
612
617
Commands( "DUPLICATE", 0, 0, 0, ""),
613
618
Commands( "DYNAMIC", 0, 0, 0, ""),
623
628
Commands( "ERRORS", 0, 0, 0, ""),
624
629
Commands( "ESCAPE", 0, 0, 0, ""),
625
630
Commands( "ESCAPED", 0, 0, 0, ""),
631
Commands( "EVENTS", 0, 0, 0, ""),
632
Commands( "EXECUTE", 0, 0, 0, ""),
626
633
Commands( "EXISTS", 0, 0, 0, ""),
627
634
Commands( "EXIT", 0, 0, 0, ""),
635
Commands( "EXPANSION", 0, 0, 0, ""),
628
636
Commands( "EXPLAIN", 0, 0, 0, ""),
629
637
Commands( "EXTENDED", 0, 0, 0, ""),
630
638
Commands( "FALSE", 0, 0, 0, ""),
645
653
Commands( "FRAC_SECOND", 0, 0, 0, ""),
646
654
Commands( "FROM", 0, 0, 0, ""),
647
655
Commands( "FULL", 0, 0, 0, ""),
656
Commands( "FULLTEXT", 0, 0, 0, ""),
648
657
Commands( "FUNCTION", 0, 0, 0, ""),
649
658
Commands( "GLOBAL", 0, 0, 0, ""),
650
659
Commands( "GRANT", 0, 0, 0, ""),
712
721
Commands( "LOCKS", 0, 0, 0, ""),
713
722
Commands( "LOGS", 0, 0, 0, ""),
714
723
Commands( "LONG", 0, 0, 0, ""),
724
Commands( "LONGTEXT", 0, 0, 0, ""),
715
725
Commands( "LOOP", 0, 0, 0, ""),
726
Commands( "LOW_PRIORITY", 0, 0, 0, ""),
727
Commands( "MASTER", 0, 0, 0, ""),
728
Commands( "MASTER_CONNECT_RETRY", 0, 0, 0, ""),
729
Commands( "MASTER_HOST", 0, 0, 0, ""),
730
Commands( "MASTER_LOG_FILE", 0, 0, 0, ""),
731
Commands( "MASTER_LOG_POS", 0, 0, 0, ""),
732
Commands( "MASTER_PASSWORD", 0, 0, 0, ""),
733
Commands( "MASTER_PORT", 0, 0, 0, ""),
734
Commands( "MASTER_SERVER_ID", 0, 0, 0, ""),
735
Commands( "MASTER_SSL", 0, 0, 0, ""),
736
Commands( "MASTER_SSL_CA", 0, 0, 0, ""),
737
Commands( "MASTER_SSL_CAPATH", 0, 0, 0, ""),
738
Commands( "MASTER_SSL_CERT", 0, 0, 0, ""),
739
Commands( "MASTER_SSL_CIPHER", 0, 0, 0, ""),
740
Commands( "MASTER_SSL_KEY", 0, 0, 0, ""),
741
Commands( "MASTER_USER", 0, 0, 0, ""),
716
742
Commands( "MATCH", 0, 0, 0, ""),
717
743
Commands( "MAX_CONNECTIONS_PER_HOUR", 0, 0, 0, ""),
718
744
Commands( "MAX_QUERIES_PER_HOUR", 0, 0, 0, ""),
720
746
Commands( "MAX_UPDATES_PER_HOUR", 0, 0, 0, ""),
721
747
Commands( "MAX_USER_CONNECTIONS", 0, 0, 0, ""),
722
748
Commands( "MEDIUM", 0, 0, 0, ""),
749
Commands( "MEDIUMTEXT", 0, 0, 0, ""),
723
750
Commands( "MERGE", 0, 0, 0, ""),
724
751
Commands( "MICROSECOND", 0, 0, 0, ""),
752
Commands( "MIDDLEINT", 0, 0, 0, ""),
725
753
Commands( "MIGRATE", 0, 0, 0, ""),
726
754
Commands( "MINUTE", 0, 0, 0, ""),
727
755
Commands( "MINUTE_MICROSECOND", 0, 0, 0, ""),
740
768
Commands( "NAMES", 0, 0, 0, ""),
741
769
Commands( "NATIONAL", 0, 0, 0, ""),
742
770
Commands( "NATURAL", 0, 0, 0, ""),
771
Commands( "NDB", 0, 0, 0, ""),
772
Commands( "NDBCLUSTER", 0, 0, 0, ""),
743
773
Commands( "NCHAR", 0, 0, 0, ""),
744
774
Commands( "NEW", 0, 0, 0, ""),
745
775
Commands( "NEXT", 0, 0, 0, ""),
746
776
Commands( "NO", 0, 0, 0, ""),
747
777
Commands( "NONE", 0, 0, 0, ""),
748
778
Commands( "NOT", 0, 0, 0, ""),
779
Commands( "NO_WRITE_TO_BINLOG", 0, 0, 0, ""),
749
780
Commands( "NULL", 0, 0, 0, ""),
750
781
Commands( "NUMERIC", 0, 0, 0, ""),
751
782
Commands( "NVARCHAR", 0, 0, 0, ""),
752
783
Commands( "OFFSET", 0, 0, 0, ""),
784
Commands( "OLD_PASSWORD", 0, 0, 0, ""),
753
785
Commands( "ON", 0, 0, 0, ""),
754
786
Commands( "ONE", 0, 0, 0, ""),
755
787
Commands( "ONE_SHOT", 0, 0, 0, ""),
766
798
Commands( "PARTIAL", 0, 0, 0, ""),
767
799
Commands( "PASSWORD", 0, 0, 0, ""),
768
800
Commands( "PHASE", 0, 0, 0, ""),
801
Commands( "POINT", 0, 0, 0, ""),
802
Commands( "POLYGON", 0, 0, 0, ""),
769
803
Commands( "PRECISION", 0, 0, 0, ""),
770
804
Commands( "PREPARE", 0, 0, 0, ""),
771
805
Commands( "PREV", 0, 0, 0, ""),
785
819
Commands( "REDUNDANT", 0, 0, 0, ""),
786
820
Commands( "REFERENCES", 0, 0, 0, ""),
787
821
Commands( "REGEXP", 0, 0, 0, ""),
822
Commands( "RELAY_LOG_FILE", 0, 0, 0, ""),
823
Commands( "RELAY_LOG_POS", 0, 0, 0, ""),
824
Commands( "RELAY_THREAD", 0, 0, 0, ""),
788
825
Commands( "RELEASE", 0, 0, 0, ""),
789
826
Commands( "RELOAD", 0, 0, 0, ""),
790
827
Commands( "RENAME", 0, 0, 0, ""),
791
828
Commands( "REPAIR", 0, 0, 0, ""),
792
829
Commands( "REPEATABLE", 0, 0, 0, ""),
793
830
Commands( "REPLACE", 0, 0, 0, ""),
831
Commands( "REPLICATION", 0, 0, 0, ""),
794
832
Commands( "REPEAT", 0, 0, 0, ""),
795
833
Commands( "REQUIRE", 0, 0, 0, ""),
796
834
Commands( "RESET", 0, 0, 0, ""),
829
867
Commands( "SIMPLE", 0, 0, 0, ""),
830
868
Commands( "SLAVE", 0, 0, 0, ""),
831
869
Commands( "SNAPSHOT", 0, 0, 0, ""),
870
Commands( "SMALLINT", 0, 0, 0, ""),
832
871
Commands( "SOME", 0, 0, 0, ""),
833
872
Commands( "SONAME", 0, 0, 0, ""),
834
873
Commands( "SOUNDS", 0, 0, 0, ""),
877
916
Commands( "TIMESTAMP", 0, 0, 0, ""),
878
917
Commands( "TIMESTAMPADD", 0, 0, 0, ""),
879
918
Commands( "TIMESTAMPDIFF", 0, 0, 0, ""),
919
Commands( "TINYTEXT", 0, 0, 0, ""),
880
920
Commands( "TO", 0, 0, 0, ""),
881
921
Commands( "TRAILING", 0, 0, 0, ""),
882
922
Commands( "TRANSACTION", 0, 0, 0, ""),
923
Commands( "TRIGGER", 0, 0, 0, ""),
924
Commands( "TRIGGERS", 0, 0, 0, ""),
883
925
Commands( "TRUE", 0, 0, 0, ""),
884
926
Commands( "TRUNCATE", 0, 0, 0, ""),
885
927
Commands( "TYPE", 0, 0, 0, ""),
892
934
Commands( "UNIQUE", 0, 0, 0, ""),
893
935
Commands( "UNKNOWN", 0, 0, 0, ""),
894
936
Commands( "UNLOCK", 0, 0, 0, ""),
937
Commands( "UNSIGNED", 0, 0, 0, ""),
895
938
Commands( "UNTIL", 0, 0, 0, ""),
896
939
Commands( "UPDATE", 0, 0, 0, ""),
897
940
Commands( "UPGRADE", 0, 0, 0, ""),
899
942
Commands( "USE", 0, 0, 0, ""),
900
943
Commands( "USER", 0, 0, 0, ""),
901
944
Commands( "USER_RESOURCES", 0, 0, 0, ""),
945
Commands( "USE_FRM", 0, 0, 0, ""),
902
946
Commands( "USING", 0, 0, 0, ""),
903
947
Commands( "UTC_DATE", 0, 0, 0, ""),
904
948
Commands( "UTC_TIMESTAMP", 0, 0, 0, ""),
918
962
Commands( "WITH", 0, 0, 0, ""),
919
963
Commands( "WORK", 0, 0, 0, ""),
920
964
Commands( "WRITE", 0, 0, 0, ""),
965
Commands( "X509", 0, 0, 0, ""),
921
966
Commands( "XOR", 0, 0, 0, ""),
922
967
Commands( "XA", 0, 0, 0, ""),
923
968
Commands( "YEAR", 0, 0, 0, ""),
926
971
Commands( "ABS", 0, 0, 0, ""),
927
972
Commands( "ACOS", 0, 0, 0, ""),
928
973
Commands( "ADDDATE", 0, 0, 0, ""),
974
Commands( "AES_ENCRYPT", 0, 0, 0, ""),
975
Commands( "AES_DECRYPT", 0, 0, 0, ""),
929
976
Commands( "AREA", 0, 0, 0, ""),
930
977
Commands( "ASIN", 0, 0, 0, ""),
931
978
Commands( "ASBINARY", 0, 0, 0, ""),
932
979
Commands( "ASTEXT", 0, 0, 0, ""),
980
Commands( "ASWKB", 0, 0, 0, ""),
981
Commands( "ASWKT", 0, 0, 0, ""),
933
982
Commands( "ATAN", 0, 0, 0, ""),
934
983
Commands( "ATAN2", 0, 0, 0, ""),
935
984
Commands( "BENCHMARK", 0, 0, 0, ""),
995
1044
Commands( "GROUP_UNIQUE_USERS", 0, 0, 0, ""),
996
1045
Commands( "HEX", 0, 0, 0, ""),
997
1046
Commands( "IFNULL", 0, 0, 0, ""),
1047
Commands( "INET_ATON", 0, 0, 0, ""),
1048
Commands( "INET_NTOA", 0, 0, 0, ""),
998
1049
Commands( "INSTR", 0, 0, 0, ""),
999
1050
Commands( "INTERIORRINGN", 0, 0, 0, ""),
1000
1051
Commands( "INTERSECTS", 0, 0, 0, ""),
1010
1061
Commands( "LEAST", 0, 0, 0, ""),
1011
1062
Commands( "LENGTH", 0, 0, 0, ""),
1012
1063
Commands( "LN", 0, 0, 0, ""),
1064
Commands( "LINEFROMTEXT", 0, 0, 0, ""),
1065
Commands( "LINEFROMWKB", 0, 0, 0, ""),
1066
Commands( "LINESTRINGFROMTEXT", 0, 0, 0, ""),
1067
Commands( "LINESTRINGFROMWKB", 0, 0, 0, ""),
1013
1068
Commands( "LOAD_FILE", 0, 0, 0, ""),
1014
1069
Commands( "LOCATE", 0, 0, 0, ""),
1015
1070
Commands( "LOG", 0, 0, 0, ""),
1032
1087
Commands( "MD5", 0, 0, 0, ""),
1033
1088
Commands( "MID", 0, 0, 0, ""),
1034
1089
Commands( "MIN", 0, 0, 0, ""),
1090
Commands( "MLINEFROMTEXT", 0, 0, 0, ""),
1091
Commands( "MLINEFROMWKB", 0, 0, 0, ""),
1092
Commands( "MPOINTFROMTEXT", 0, 0, 0, ""),
1093
Commands( "MPOINTFROMWKB", 0, 0, 0, ""),
1094
Commands( "MPOLYFROMTEXT", 0, 0, 0, ""),
1095
Commands( "MPOLYFROMWKB", 0, 0, 0, ""),
1035
1096
Commands( "MONTHNAME", 0, 0, 0, ""),
1097
Commands( "MULTILINESTRINGFROMTEXT", 0, 0, 0, ""),
1098
Commands( "MULTILINESTRINGFROMWKB", 0, 0, 0, ""),
1099
Commands( "MULTIPOINTFROMTEXT", 0, 0, 0, ""),
1100
Commands( "MULTIPOINTFROMWKB", 0, 0, 0, ""),
1101
Commands( "MULTIPOLYGONFROMTEXT", 0, 0, 0, ""),
1102
Commands( "MULTIPOLYGONFROMWKB", 0, 0, 0, ""),
1036
1103
Commands( "NAME_CONST", 0, 0, 0, ""),
1037
1104
Commands( "NOW", 0, 0, 0, ""),
1038
1105
Commands( "NULLIF", 0, 0, 0, ""),
1106
Commands( "NUMINTERIORRINGS", 0, 0, 0, ""),
1039
1107
Commands( "NUMPOINTS", 0, 0, 0, ""),
1040
1108
Commands( "OCTET_LENGTH", 0, 0, 0, ""),
1041
1109
Commands( "OCT", 0, 0, 0, ""),
1044
1112
Commands( "PERIOD_ADD", 0, 0, 0, ""),
1045
1113
Commands( "PERIOD_DIFF", 0, 0, 0, ""),
1046
1114
Commands( "PI", 0, 0, 0, ""),
1115
Commands( "POINTFROMTEXT", 0, 0, 0, ""),
1116
Commands( "POINTFROMWKB", 0, 0, 0, ""),
1047
1117
Commands( "POINTN", 0, 0, 0, ""),
1118
Commands( "POLYFROMTEXT", 0, 0, 0, ""),
1119
Commands( "POLYFROMWKB", 0, 0, 0, ""),
1120
Commands( "POLYGONFROMTEXT", 0, 0, 0, ""),
1121
Commands( "POLYGONFROMWKB", 0, 0, 0, ""),
1048
1122
Commands( "POSITION", 0, 0, 0, ""),
1049
1123
Commands( "POW", 0, 0, 0, ""),
1050
1124
Commands( "POWER", 0, 0, 0, ""),
1194
1268
if (drizzle_ping(&con, &result, &ret) != NULL && ret == DRIZZLE_RETURN_OK)
1196
1270
if (opt_silent < 2)
1197
printf(_("drizzled is alive\n"));
1271
printf("drizzled is alive\n");
1201
1275
if (ret == DRIZZLE_RETURN_ERROR_CODE)
1203
fprintf(stderr, _("ping failed; error: '%s'"),
1277
fprintf(stderr, "ping failed; error: '%s'",
1204
1278
drizzle_result_error(&result));
1205
1279
drizzle_result_free(&result);
1209
fprintf(stderr, _("drizzled won't answer to ping, error: '%s'"),
1283
fprintf(stderr, "drizzled won't answer to ping, error: '%s'",
1210
1284
drizzle_con_error(&con));
1293
1366
N_("Display column type information."))
1294
1367
("comments,c", po::value<bool>(&preserve_comments)->default_value(false)->zero_tokens(),
1295
1368
N_("Preserve comments. Send comments to the server. The default is --skip-comments (discard comments), enable with --comments"))
1369
("compress,C", po::value<bool>(&opt_compress)->default_value(false)->zero_tokens(),
1370
N_("Use compression in server/client protocol."))
1296
1371
("vertical,E", po::value<bool>(&vertical)->default_value(false)->zero_tokens(),
1297
1372
N_("Print the output of a query (rows) vertically."))
1298
1373
("force,f", po::value<bool>(&ignore_errors)->default_value(false)->zero_tokens(),
1299
1374
N_("Continue even if we get an sql error."))
1300
1375
("named-commands,G", po::value<bool>(&named_cmds)->default_value(false)->zero_tokens(),
1301
N_("Enable named commands. Named commands mean this program's internal commands; see drizzle> help . When enabled, the named commands can be used from any line of the query, otherwise only from the first line, before an enter."))
1376
N_("Enable named commands. Named commands mean this program's internal commands; see drizzle> help . When enabled, the named commands can be used from any line of the query, otherwise only from the first line, before an enter. Disable with --disable-named-commands. This option is disabled by default."))
1377
("no-named-commands,g",
1378
N_("Named commands are disabled. Use \\* form only, or use named commands only in the beginning of a line ending with a semicolon (;) Since version 10.9 the client now starts with this option ENABLED by default! Disable with '-G'. Long format commands still work from the first line. WARNING: option deprecated; use --disable-named-commands instead."))
1379
("ignore-spaces,i", N_("Ignore space after function names."))
1302
1380
("no-beep,b", po::value<bool>(&opt_nobeep)->default_value(false)->zero_tokens(),
1303
1381
N_("Turn off beep on error."))
1304
("disable-line-numbers", N_("Do not write line numbers for errors."))
1305
("disable-column-names", N_("Do not write column names in results."))
1382
("line-numbers", po::value<bool>(&line_numbers)->default_value(true)->zero_tokens(),
1383
N_("Write line numbers for errors."))
1384
("skip-line-numbers,L",
1385
N_("Don't write line number for errors. WARNING: -L is deprecated, use long version of this option instead."))
1386
("column-name", po::value<bool>(&column_names)->default_value(true)->zero_tokens(),
1387
N_("Write column names in results."))
1306
1388
("skip-column-names,N",
1307
1389
N_("Don't write column names in results. WARNING: -N is deprecated, use long version of this options instead."))
1308
1390
("set-variable,O", po::value<string>(),
1309
1391
N_("Change the value of a variable. Please note that this option is deprecated; you can set variables directly with --variable-name=value."))
1310
1392
("table,t", po::value<bool>(&output_tables)->default_value(false)->zero_tokens(),
1311
1393
N_("Output in table format."))
1312
("safe-updates,U", po::value<bool>(&safe_updates)->default_value(false)->zero_tokens(),
1394
("safe-updates,U", po::value<bool>(&safe_updates)->default_value(0)->zero_tokens(),
1313
1395
N_("Only allow UPDATE and DELETE that uses keys."))
1314
("i-am-a-dummy,U", po::value<bool>(&safe_updates)->default_value(false)->zero_tokens(),
1396
("i-am-a-dummy,U", po::value<bool>(&safe_updates)->default_value(0)->zero_tokens(),
1315
1397
N_("Synonym for option --safe-updates, -U."))
1316
1398
("verbose,v", po::value<string>(&opt_verbose)->default_value(""),
1317
1399
N_("-v vvv implies that verbose= 3, Used to specify verbose"))
1328
1410
N_("Configuration file defaults are not used if no-defaults is set"))
1331
po::options_description drizzle_options(N_("Options specific to the drizzle client"));
1413
po::options_description drizzle_options("Options specific to the drizzle client");
1332
1414
drizzle_options.add_options()
1333
("disable-auto-rehash,A",
1334
N_("Disable automatic rehashing. One doesn't need to use 'rehash' to get table and field completion, but startup and reconnecting may take a longer time."))
1415
("auto-rehash", po::value<bool>(&opt_rehash)->default_value(true)->zero_tokens(),
1416
N_("Enable automatic rehashing. One doesn't need to use 'rehash' to get table and field completion, but startup and reconnecting may take a longer time. Disable with --disable-auto-rehash."))
1417
("no-auto-rehash,A",N_("No automatic rehashing. One has to use 'rehash' to get table and field completion. This gives a quicker start of drizzle_st and disables rehashing on reconnect. WARNING: options deprecated; use --disable-auto-rehash instead."))
1335
1418
("auto-vertical-output", po::value<bool>(&auto_vertical_output)->default_value(false)->zero_tokens(),
1336
1419
N_("Automatically switch to vertical output mode if the result is wider than the terminal width."))
1337
1420
("database,D", po::value<string>(¤t_db)->default_value(""),
1360
1443
N_("Don't cache result, print it row by row. This may slow down the server if the output is suspended. Doesn't use history file."))
1361
1444
("raw,r", po::value<bool>(&opt_raw_data)->default_value(false)->zero_tokens(),
1362
1445
N_("Write fields without conversion. Used with --batch."))
1363
("disable-reconnect", N_("Do not reconnect if the connection is lost."))
1364
("shutdown", po::value<bool>()->zero_tokens(),
1446
("reconnect", po::value<bool>(&opt_reconnect)->default_value(true)->zero_tokens(),
1447
N_("Reconnect if the connection is lost. Disable with --disable-reconnect. This option is enabled by default."))
1448
("shutdown", po::value<bool>(&opt_shutdown)->default_value(false)->zero_tokens(),
1365
1449
N_("Shutdown the server"))
1366
1450
("silent,s", N_("Be more silent. Print results with a tab as separator, each row on new line."))
1367
1451
("tee", po::value<string>(),
1368
1452
N_("Append everything into outfile. See interactive help (\\h) also. Does not work in batch mode. Disable with --disable-tee. This option is disabled by default."))
1369
1453
("disable-tee", po::value<bool>()->default_value(false)->zero_tokens(),
1370
1454
N_("Disable outfile. See interactive help (\\h) also."))
1371
("connect-timeout", po::value<uint32_t>(&opt_connect_timeout)->default_value(0)->notifier(&check_timeout_value),
1455
("wait,w", N_("Wait and retry if connection is down."))
1456
("connect_timeout", po::value<uint32_t>(&opt_connect_timeout)->default_value(0)->notifier(&check_timeout_value),
1372
1457
N_("Number of seconds before connection timeout."))
1373
("max-input-line", po::value<uint32_t>(&opt_max_input_line)->default_value(16*1024L*1024L)->notifier(&check_max_input_line),
1458
("max_input_line", po::value<uint32_t>(&opt_max_input_line)->default_value(16*1024L*1024L)->notifier(&check_max_input_line),
1374
1459
N_("Max length of input line"))
1375
("select-limit", po::value<uint32_t>(&select_limit)->default_value(1000L),
1460
("select_limit", po::value<uint32_t>(&select_limit)->default_value(1000L),
1376
1461
N_("Automatic limit for SELECT when using --safe-updates"))
1377
("max-join-size", po::value<uint32_t>(&max_join_size)->default_value(1000000L),
1462
("max_join_size", po::value<uint32_t>(&max_join_size)->default_value(1000000L),
1378
1463
N_("Automatic limit for rows in a join when using --safe-updates"))
1381
po::options_description client_options(N_("Options specific to the client"));
1466
po::options_description client_options("Options specific to the client");
1382
1467
client_options.add_options()
1468
("mysql,m", po::value<bool>(&opt_mysql)->default_value(true)->zero_tokens(),
1469
N_("Use MySQL Protocol."))
1383
1470
("host,h", po::value<string>(¤t_host)->default_value("localhost"),
1384
1471
N_("Connect to host"))
1385
1472
("password,P", po::value<string>(¤t_password)->default_value(PASSWORD_SENTINEL),
1386
1473
N_("Password to use when connecting to server. If password is not given it's asked from the tty."))
1387
1474
("port,p", po::value<uint32_t>()->default_value(0),
1388
1475
N_("Port number to use for connection or 0 for default to, in order of preference, drizzle.cnf, $DRIZZLE_TCP_PORT, built-in default"))
1389
#ifdef DRIZZLE_ADMIN_TOOL
1390
("user,u", po::value<string>(¤t_user)->default_value("root"),
1392
1476
("user,u", po::value<string>(¤t_user)->default_value(""),
1394
1477
N_("User for login if not current user."))
1395
("protocol",po::value<string>(&opt_protocol)->default_value("mysql"),
1396
N_("The protocol of connection (mysql or drizzle)."))
1478
("protocol",po::value<string>(),
1479
N_("The protocol of connection (tcp,socket,pipe,memory)."))
1399
po::options_description long_options(N_("Allowed Options"));
1482
po::options_description long_options("Allowed Options");
1400
1483
long_options.add(commandline_options).add(drizzle_options).add(client_options);
1402
1485
std::string system_config_dir_drizzle(SYSCONFDIR);
1406
1489
system_config_dir_client.append("/drizzle/client.cnf");
1408
1491
std::string user_config_dir((getenv("XDG_CONFIG_HOME")? getenv("XDG_CONFIG_HOME"):"~/.config"));
1410
if (user_config_dir.compare(0, 2, "~/") == 0)
1413
homedir= getenv("HOME");
1414
if (homedir != NULL)
1415
user_config_dir.replace(0, 1, homedir);
1418
1493
po::variables_map vm;
1420
1495
po::positional_options_description p;
1421
1496
p.add("database", 1);
1423
// Disable allow_guessing
1424
int style = po::command_line_style::default_style & ~po::command_line_style::allow_guessing;
1426
1498
po::store(po::command_line_parser(argc, argv).options(long_options).
1427
style(style).positional(p).extra_parser(parse_password_arg).run(),
1499
positional(p).extra_parser(parse_password_arg).run(), vm);
1430
1501
if (! vm["no-defaults"].as<bool>())
1436
1507
user_config_dir_client.append("/drizzle/client.cnf");
1438
1509
ifstream user_drizzle_ifs(user_config_dir_drizzle.c_str());
1439
po::store(dpo::parse_config_file(user_drizzle_ifs, drizzle_options), vm);
1510
po::store(parse_config_file(user_drizzle_ifs, drizzle_options), vm);
1441
1512
ifstream user_client_ifs(user_config_dir_client.c_str());
1442
po::store(dpo::parse_config_file(user_client_ifs, client_options), vm);
1513
po::store(parse_config_file(user_client_ifs, client_options), vm);
1444
1515
ifstream system_drizzle_ifs(system_config_dir_drizzle.c_str());
1445
store(dpo::parse_config_file(system_drizzle_ifs, drizzle_options), vm);
1516
store(parse_config_file(system_drizzle_ifs, drizzle_options), vm);
1447
1518
ifstream system_client_ifs(system_config_dir_client.c_str());
1448
po::store(dpo::parse_config_file(system_client_ifs, client_options), vm);
1519
po::store(parse_config_file(system_client_ifs, client_options), vm);
1451
1522
po::notify(vm);
1453
#ifdef DRIZZLE_ADMIN_TOOL
1454
default_prompt= strdup(getenv("DRIZZLE_PS1") ?
1455
getenv("DRIZZLE_PS1") :
1458
1524
default_prompt= strdup(getenv("DRIZZLE_PS1") ?
1459
1525
getenv("DRIZZLE_PS1") :
1462
1527
if (default_prompt == NULL)
1464
1529
fprintf(stderr, _("Memory allocation error while constructing initial "
1707
if (vm.count("version"))
1709
printf(_("drizzle Ver %s Distrib %s, for %s-%s (%s) using readline %s\n"),
1710
VER.c_str(), drizzle_version(),
1711
HOST_VENDOR, HOST_OS, HOST_CPU,
1712
rl_library_version);
1673
if (vm.count("help") || vm.count("version"))
1717
if (vm.count("help"))
1675
printf(_("Drizzle client %s build %s, for %s-%s (%s) using readline %s\n"),
1676
drizzle_version(), VERSION,
1719
printf(_("drizzle Ver %s Distrib %s, for %s-%s (%s) using readline %s\n"),
1720
VER.c_str(), drizzle_version(),
1677
1721
HOST_VENDOR, HOST_OS, HOST_CPU,
1678
1722
rl_library_version);
1679
if (vm.count("version"))
1681
1723
printf(_("Copyright (C) 2008 Sun Microsystems\n"
1682
1724
"This software comes with ABSOLUTELY NO WARRANTY. "
1683
1725
"This is free software,\n"
1684
1726
"and you are welcome to modify and redistribute it "
1685
1727
"under the GPL license\n"));
1686
1728
printf(_("Usage: drizzle [OPTIONS] [database]\n"));
1687
cout << long_options;
1733
1775
/* call the SIGWINCH handler to get the default term width */
1734
1776
window_resize(0);
1736
std::vector<char> output_buff;
1737
output_buff.resize(512);
1739
snprintf(&output_buff[0], output_buff.size(),
1740
_("Welcome to the Drizzle client.. Commands end with %s or \\g."),
1743
put_info(&output_buff[0], INFO_INFO, 0, 0);
1779
put_info(_("Welcome to the Drizzle client.. Commands end with ; or \\g."),
1745
1782
glob_buffer= new string();
1746
1783
glob_buffer->reserve(512);
1785
std::vector<char> output_buff;
1786
output_buff.resize(512);
1748
1787
snprintf(&output_buff[0], output_buff.size(),
1749
_("Your Drizzle connection id is %u\nConnection protocol: %s\nServer version: %s\n"),
1788
_("Your Drizzle connection id is %u\nServer version: %s\n"),
1750
1789
drizzle_con_thread_id(&con),
1751
opt_protocol.c_str(),
1752
1790
server_version_string(&con));
1753
1791
put_info(&output_buff[0], INFO_INFO, 0, 0);
1756
1793
initialize_readline((char *)current_prompt.c_str());
1757
1794
if (!status.getBatch() && !quick)
2748
2777
register int i, j;
2749
2778
char buff[32], *end;
2750
std::vector<char> output_buff;
2751
output_buff.resize(512);
2753
2780
put_info(_("List of all Drizzle commands:"), INFO_INFO,0,0);
2754
2781
if (!named_cmds)
2756
snprintf(&output_buff[0], output_buff.size(),
2757
_("Note that all text commands must be first on line and end with '%s' or \\g"),
2759
put_info(&output_buff[0], INFO_INFO, 0, 0);
2782
put_info(_("Note that all text commands must be first on line and end with ';'"),INFO_INFO,0,0);
2761
2783
for (i = 0; commands[i].getName(); i++)
2763
2785
end= strcpy(buff, commands[i].getName());
3733
sprintf(buff, _("Connection id: %u"), drizzle_con_thread_id(&con));
3755
sprintf(buff,"Connection id: %u",drizzle_con_thread_id(&con));
3734
3756
put_info(buff,INFO_INFO,0,0);
3735
sprintf(buff, _("Current database: %.128s\n"),
3736
!current_db.empty() ? current_db.c_str() : _("*** NONE ***"));
3757
sprintf(buff,"Current database: %.128s\n",
3758
!current_db.empty() ? current_db.c_str() : "*** NONE ***");
3737
3759
put_info(buff,INFO_INFO,0,0);
3913
3935
build_completion_hash(opt_rehash, 1);
3916
put_info(_("Database changed"),INFO_INFO, 0, 0);
3938
put_info("Database changed",INFO_INFO, 0, 0);
3920
static int com_shutdown(string *, const char *)
3922
drizzle_result_st result;
3923
drizzle_return_t ret;
3927
printf(_("shutting down drizzled"));
3928
if (opt_drizzle_port > 0)
3929
printf(_(" on port %d"), opt_drizzle_port);
3933
if (drizzle_shutdown(&con, &result, DRIZZLE_SHUTDOWN_DEFAULT,
3934
&ret) == NULL || ret != DRIZZLE_RETURN_OK)
3936
if (ret == DRIZZLE_RETURN_ERROR_CODE)
3938
fprintf(stderr, _("shutdown failed; error: '%s'"),
3939
drizzle_result_error(&result));
3940
drizzle_result_free(&result);
3944
fprintf(stderr, _("shutdown failed; error: '%s'"),
3945
drizzle_con_error(&con));
3950
drizzle_result_free(&result);
3953
printf(_("done\n"));
3959
3943
com_warnings(string *, const char *)
3961
3945
show_warnings = 1;
3962
put_info(_("Show warnings enabled."),INFO_INFO, 0, 0);
3946
put_info("Show warnings enabled.",INFO_INFO, 0, 0);
4045
4029
drizzle_free(&drizzle);
4047
4031
drizzle_create(&drizzle);
4049
#ifdef DRIZZLE_ADMIN_TOOL
4050
drizzle_con_options_t options= (drizzle_con_options_t) (DRIZZLE_CON_ADMIN | (use_drizzle_protocol ? DRIZZLE_CON_EXPERIMENTAL : DRIZZLE_CON_MYSQL));
4052
drizzle_con_options_t options= (drizzle_con_options_t) (use_drizzle_protocol ? DRIZZLE_CON_EXPERIMENTAL : DRIZZLE_CON_MYSQL);
4055
if (drizzle_con_add_tcp(&drizzle, &con, (char *)host.c_str(),
4056
opt_drizzle_port, (char *)user.c_str(),
4057
(char *)password.c_str(), (char *)database.c_str(),
4032
if (drizzle_con_add_tcp(&drizzle, &con, (char *)host.c_str(), opt_drizzle_port, (char *)user.c_str(),
4033
(char *)password.c_str(), (char *)database.c_str(), opt_mysql ? DRIZZLE_CON_MYSQL : DRIZZLE_CON_NONE) == NULL)
4060
4035
(void) put_error(&con, NULL);
4061
4036
(void) fflush(stdout);
4111
4086
drizzle_return_t ret;
4113
4088
tee_puts("--------------", stdout);
4114
printf(_("Drizzle client %s build %s, for %s-%s (%s) using readline %s\n"),
4115
drizzle_version(), VERSION,
4116
HOST_VENDOR, HOST_OS, HOST_CPU,
4117
rl_library_version);
4089
printf(_("drizzle Ver %s Distrib %s, for %s-%s (%s) using readline %s\n"),
4090
VER.c_str(), drizzle_version(),
4091
HOST_VENDOR, HOST_OS, HOST_CPU,
4092
rl_library_version); /* Print version */
4121
tee_fprintf(stdout, _("\nConnection id:\t\t%lu\n"),drizzle_con_thread_id(&con));
4097
tee_fprintf(stdout, "\nConnection id:\t\t%lu\n",drizzle_con_thread_id(&con));
4123
4099
Don't remove "limit 1",
4124
4100
it is protection againts SQL_SELECT_LIMIT=0
4130
4106
drizzle_row_t cur=drizzle_row_next(&result);
4133
tee_fprintf(stdout, _("Current database:\t%s\n"), cur[0] ? cur[0] : "");
4134
tee_fprintf(stdout, _("Current user:\t\t%s\n"), cur[1]);
4109
tee_fprintf(stdout, "Current database:\t%s\n", cur[0] ? cur[0] : "");
4110
tee_fprintf(stdout, "Current user:\t\t%s\n", cur[1]);
4136
4112
drizzle_result_free(&result);
4138
4114
else if (ret == DRIZZLE_RETURN_ERROR_CODE)
4139
4115
drizzle_result_free(&result);
4140
tee_puts(_("SSL:\t\t\tNot in use"), stdout);
4116
tee_puts("SSL:\t\t\tNot in use", stdout);
4144
4120
vidattr(A_BOLD);
4145
tee_fprintf(stdout, _("\nNo connection\n"));
4121
tee_fprintf(stdout, "\nNo connection\n");
4146
4122
vidattr(A_NORMAL);
4149
4125
if (skip_updates)
4151
4127
vidattr(A_BOLD);
4152
tee_fprintf(stdout, _("\nAll updates ignored to this database\n"));
4128
tee_fprintf(stdout, "\nAll updates ignored to this database\n");
4153
4129
vidattr(A_NORMAL);
4155
tee_fprintf(stdout, _("Current pager:\t\t%s\n"), pager.c_str());
4156
tee_fprintf(stdout, _("Using outfile:\t\t'%s'\n"), opt_outfile ? outfile.c_str() : "");
4157
tee_fprintf(stdout, _("Using delimiter:\t%s\n"), delimiter);
4158
tee_fprintf(stdout, _("Server version:\t\t%s\n"), server_version_string(&con));
4159
tee_fprintf(stdout, _("Protocol:\t\t%s\n"), opt_protocol.c_str());
4160
tee_fprintf(stdout, _("Protocol version:\t%d\n"), drizzle_con_protocol_version(&con));
4161
tee_fprintf(stdout, _("Connection:\t\t%s\n"), drizzle_con_host(&con));
4131
tee_fprintf(stdout, "Current pager:\t\t%s\n", pager.c_str());
4132
tee_fprintf(stdout, "Using outfile:\t\t'%s'\n", opt_outfile ? outfile.c_str() : "");
4133
tee_fprintf(stdout, "Using delimiter:\t%s\n", delimiter);
4134
tee_fprintf(stdout, "Server version:\t\t%s\n", server_version_string(&con));
4135
tee_fprintf(stdout, "Protocol version:\t%d\n", drizzle_con_protocol_version(&con));
4136
tee_fprintf(stdout, "Connection:\t\t%s\n", drizzle_con_host(&con));
4162
4137
/* XXX need to save this from result
4163
4138
if ((id= drizzleclient_insert_id(&drizzle)))
4164
4139
tee_fprintf(stdout, "Insert id:\t\t%s\n", internal::llstr(id, buff));
4167
4142
if (drizzle_con_uds(&con))
4168
tee_fprintf(stdout, _("UNIX socket:\t\t%s\n"), drizzle_con_uds(&con));
4143
tee_fprintf(stdout, "UNIX socket:\t\t%s\n", drizzle_con_uds(&con));
4170
tee_fprintf(stdout, _("TCP port:\t\t%d\n"), drizzle_con_port(&con));
4145
tee_fprintf(stdout, "TCP port:\t\t%d\n", drizzle_con_port(&con));
4172
4147
if (safe_updates)
4174
4149
vidattr(A_BOLD);
4175
tee_fprintf(stdout, _("\nNote that you are running in safe_update_mode:\n"));
4150
tee_fprintf(stdout, "\nNote that you are running in safe_update_mode:\n");
4176
4151
vidattr(A_NORMAL);
4177
tee_fprintf(stdout, _("\
4152
tee_fprintf(stdout, "\
4178
4153
UPDATEs and DELETEs that don't use a key in the WHERE clause are not allowed.\n\
4179
4154
(One can force an UPDATE/DELETE by adding LIMIT # at the end of the command.)\n \
4180
4155
SELECT has an automatic 'LIMIT %lu' if LIMIT is not used.\n \
4181
Max number of examined row combination in a join is set to: %lu\n\n"),
4156
Max number of examined row combination in a join is set to: %lu\n\n",
4182
4157
select_limit, max_join_size);
4184
4159
tee_puts("--------------\n", stdout);
4653
4628
const char *ptr=strchr(line, ' ');
4654
4629
if (ptr == NULL)
4655
tee_fprintf(stdout, _("Returning to default PROMPT of %s\n"),
4630
tee_fprintf(stdout, "Returning to default PROMPT of %s\n",
4656
4631
default_prompt);
4657
4632
prompt_counter = 0;
4658
4633
char * tmpptr= strdup(ptr ? ptr+1 : default_prompt);
4659
4634
if (tmpptr == NULL)
4660
tee_fprintf(stdout, _("Memory allocation error. Not changing prompt\n"));
4635
tee_fprintf(stdout, "Memory allocation error. Not changing prompt\n");
4663
4638
current_prompt.erase();
4664
4639
current_prompt= tmpptr;
4665
tee_fprintf(stdout, _("PROMPT set to '%s'\n"), current_prompt.c_str());
4640
tee_fprintf(stdout, "PROMPT set to '%s'\n", current_prompt.c_str());