MCPcopy Create free account
hub / github.com/Kitware/VTK / GetFieldType

Method GetFieldType

IO/MySQL/vtkMySQLQuery.cxx:650–744  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

648//------------------------------------------------------------------------------
649
650int vtkMySQLQuery::GetFieldType(int column)
651{
652 if (!this->Active)
653 {
654 vtkErrorMacro(<< "GetFieldType(): Query is not active!");
655 return VTK_VOID;
656 }
657 else if (column < 0 || column >= this->GetNumberOfFields())
658 {
659 vtkErrorMacro(<< "GetFieldType(): Illegal field index " << column);
660 return VTK_VOID;
661 }
662 else
663 {
664 vtkMySQLDatabase* dbContainer = static_cast<vtkMySQLDatabase*>(this->Database);
665 assert(dbContainer != nullptr);
666 if (!dbContainer->IsOpen())
667 {
668 vtkErrorMacro(<< "Cannot get field type. Database is closed.");
669 return VTK_VOID;
670 }
671
672 MYSQL_FIELD* field = mysql_fetch_field_direct(this->Internals->Result, column);
673 if (field == nullptr)
674 {
675 vtkErrorMacro(<< "GetFieldType(): MySQL returned null field for column " << column);
676 return -1;
677 }
678 else
679 {
680
681 switch (field->type)
682 {
683 case MYSQL_TYPE_ENUM:
684 case MYSQL_TYPE_TINY:
685 case MYSQL_TYPE_INT24:
686 case MYSQL_TYPE_YEAR:
687 return VTK_INT;
688
689 case MYSQL_TYPE_SHORT:
690 return VTK_SHORT;
691
692 case MYSQL_TYPE_LONG:
693 case MYSQL_TYPE_LONGLONG:
694 return VTK_LONG;
695
696 case MYSQL_TYPE_TIMESTAMP:
697 case MYSQL_TYPE_DATE:
698 case MYSQL_TYPE_TIME:
699 case MYSQL_TYPE_DATETIME:
700 case MYSQL_TYPE_NEWDATE:
701 return VTK_STRING; // Just return the raw string.
702
703#if MYSQL_VERSION_ID >= 50000
704 case MYSQL_TYPE_BIT:
705 return VTK_BIT;
706#endif
707

Callers 1

DataValueMethod · 0.95

Calls 3

GetNumberOfFieldsMethod · 0.95
assertFunction · 0.50
IsOpenMethod · 0.45

Tested by

no test coverage detected